chromium/media/cdm/api/content_decryption_module_ext.h

// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CDM_CONTENT_DECRYPTION_MODULE_EXT_H_
#define CDM_CONTENT_DECRYPTION_MODULE_EXT_H_

#if defined(_WIN32)
#include <windows.h>
#endif

#include "content_decryption_module_export.h"

#if defined(_MSC_VER)
typedef unsigned int uint32_t;
#else
#include <stdint.h>
#endif

namespace cdm {

#if defined(_WIN32)
typedef wchar_t FilePathCharType;
typedef HANDLE PlatformFile;
const PlatformFile kInvalidPlatformFile = INVALID_HANDLE_VALUE;
#else
FilePathCharType;
PlatformFile;
const PlatformFile kInvalidPlatformFile =;
#endif  // defined(_WIN32)

struct HostFile {};

}  // namespace cdm

extern "C" {

// Functions in this file are dynamically retrieved by their versioned function
// names. Increment the version number for any backward incompatible API
// changes.

// Verifies CDM host. All files in |host_files| are opened in read-only mode.
//
// Returns false and closes all files if there is an immediate failure.
// Otherwise returns true as soon as possible and processes the files
// asynchronously. All files MUST be closed by the CDM after this one-time
// processing is finished.
CDM_API bool VerifyCdmHost_0(const cdm::HostFile* host_files,
                             uint32_t num_files);
}

#endif  // CDM_CONTENT_DECRYPTION_MODULE_EXT_H_