1 #ifndef DRM_FACTORY_H_
2 #define DRM_FACTORY_H_
3 
4 #include <aidl/android/hardware/drm/BnDrmFactory.h>
5 #include <aidl/android/hardware/drm/IDrmFactory.h>
6 #include <aidl/android/hardware/drm/IDrmPlugin.h>
7 #include <aidl/android/hardware/drm/ICryptoPlugin.h>
8 
9 #include <string>
10 #include <vector>
11 
12 #include "CastKeyTypes.h"
13 
14 namespace aidl {
15 namespace android {
16 namespace hardware {
17 namespace drm {
18 namespace castkey {
19 
20 struct DrmFactory : public BnDrmFactory {
DrmFactoryDrmFactory21     DrmFactory() {};
~DrmFactoryDrmFactory22     virtual ~DrmFactory() {};
23 
24     ::ndk::ScopedAStatus createDrmPlugin(
25             const ::aidl::android::hardware::drm::Uuid& in_uuid,
26             const std::string& in_appPackageName,
27             std::shared_ptr<::aidl::android::hardware::drm::IDrmPlugin>* _aidl_return) override;
28 
29     ::ndk::ScopedAStatus createCryptoPlugin(
30             const ::aidl::android::hardware::drm::Uuid& in_uuid,
31             const std::vector<uint8_t>& in_initData,
32             std::shared_ptr<::aidl::android::hardware::drm::ICryptoPlugin>* _aidl_return) override;
33 
34     ::ndk::ScopedAStatus getSupportedCryptoSchemes(
35             ::aidl::android::hardware::drm::CryptoSchemes* _aidl_return) override;
36 
37     binder_status_t dump(int fd, const char** args, uint32_t numArgs) override;
38 
39 
40   private:
41     CASTKEY_DISALLOW_COPY_AND_ASSIGN(DrmFactory);
42 };
43 
44 }  // namespace castkey
45 }  // namespace drm
46 }  // namespace hardware
47 }  // namespace android
48 }  // namespace aidl
49 
50 #endif  // DRM_FACTORIES_H_
51