// 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 #endif #include "content_decryption_module_export.h" #if defined(_MSC_VER) typedef unsigned int uint32_t; #else #include #endif namespace cdm { #if defined(_WIN32) typedef wchar_t FilePathCharType; typedef HANDLE PlatformFile; const PlatformFile kInvalidPlatformFile = INVALID_HANDLE_VALUE; #else typedef char FilePathCharType; typedef int PlatformFile; const PlatformFile kInvalidPlatformFile = -1; #endif // defined(_WIN32) struct HostFile { HostFile(const FilePathCharType* file_path, PlatformFile file, PlatformFile sig_file) : file_path(file_path), file(file), sig_file(sig_file) {} // File that is part of the host of the CDM. const FilePathCharType* file_path = nullptr; PlatformFile file = kInvalidPlatformFile; // Signature file for |file|. PlatformFile sig_file = kInvalidPlatformFile; }; } // 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_