/* * Copyright (c) Hisilicon Technologies Co., Ltd.. 2012-2019. All rights reserved. * Description: * Author: * Create: */ #ifndef ITVMANAGER_H #define ITVMANAGER_H #include #include #include #include #include "IPicture.h" #include "IAudio.h" #include "IVideo3D.h" #include "IFactory.h" #include "ISystemSetting.h" #include "ISourceManager.h" #include "IPCSetting.h" #include "IHdmiCEC.h" #include "IHdmiTx.h" #include "IAtvChannel.h" #include "ICusEx.h" namespace android { class ITVListener : virtual public RefBase { public: virtual void notify(unsigned int type, const void *data, unsigned int len, const void *prev) = 0; }; class ITVManager : virtual public RefBase { public: virtual status_t invoke(const hardware::Parcel &request, hardware::Parcel *reply) = 0; virtual int setListener(const sp &listener) = 0; virtual int getWinHandle(unsigned int *pHandle) = 0; virtual IPicture *getPicture() = 0; virtual IAudio *getAudio() = 0; virtual IVideo3D *getVideo3D() = 0; virtual IFactory *getFactory() = 0; virtual ISystemSetting *getSystemSetting() = 0; virtual ISourceManager *getSourceManager() = 0; virtual IPCSetting *getPCSetting() = 0; virtual IHdmiCEC *getHdmiCEC() = 0; virtual IHdmiTx *getHdmiTx() = 0; virtual IAtvChannel *getAtvChannel() = 0; virtual ICusEx *getCusEx() = 0; }; class TVCreator { public: static ITVManager *create(); static ITVManager *getmITVManagerValue(); private: static ITVManager *mITVManager; static Mutex mITVManagerLock; }; }; // namespace android #endif