/* * Copyright (c) Hisilicon Technologies Co., Ltd. 2012-2019. All rights reserved. * Description: API of DTV client implement. * Author: DTV stack software group * Create: 2012-09-18 */ #ifndef IMPL_DTVCLIENT_H #define IMPL_DTVCLIENT_H #include "svr_type.h" using namespace android; typedef struct { unsigned char *pServerBase; unsigned char *pHalBase; unsigned int u32WritePos; unsigned int u32ReadPos; } CaptionBufferAttrs; class ImplDTVClient { public: ImplDTVClient(); ~ImplDTVClient(); SVR_BOOL DoInClient(const Parcel &request, Parcel *reply); SVR_BOOL DoInNotify(SVR_S32 msg, SVR_S32 ext1, SVR_S32 ext2, SVR_S32 ext3, const Parcel *parcelObj, Parcel *reply); SVR_S32 DoSetSurface(SVR_VOID *spSurface, int width, int height); SVR_S32 DoSideband(const Parcel &request); SVR_S32 ClearSideband(const Parcel &request); private: SVR_S32 Blit(const Parcel *parcelObj, SVR_HANDLE srcSurface, SVR_HANDLE dstSurface); SVR_S32 GetTextSize(const Parcel *parcelObj, SVR_U32 *width, SVR_U32 *height); SVR_S32 DrawText(const Parcel *parcelObj, SVR_HANDLE surface); SVR_S32 DrawBitmap(const Parcel *parcelObj, SVR_HANDLE surface, SVR_U32 canvasWidth, SVR_U32 canvasHeight); SVR_S32 DrawCCPreviewText(const Parcel *parcelObj); SVR_S32 ClearCCPreviewText(); Mutex mSurfaceLock; }; #endif // IMPL_DTVCLIENT_H