Files
2026-08-24 10:03:24 +08:00

66 lines
2.4 KiB
C++

/*
* Copyright (c) 2014 Amlogic, Inc. All rights reserved.
*
* This source code is subject to the terms and conditions defined in the
* file 'LICENSE' which is part of this source code package.
*
* Description: header file
*/
#ifndef TV_SERVICE_H
#define TV_SERVICE_H
#include <binder/Binder.h>
#include <binder/Parcel.h>
#include "CTv.h"
#include "tvcmd.h"
#include <map>
using namespace android;
class TvService: public CTv::TvIObserver, public BBinder{
public:
TvService();
~TvService();
static TvService *GetInstance();
enum command {
CMD_START = IBinder::FIRST_CALL_TRANSACTION,
CMD_TV_ACTION = IBinder::FIRST_CALL_TRANSACTION + 1,
CMD_SET_TV_CB = IBinder::FIRST_CALL_TRANSACTION + 2,
CMD_CLR_TV_CB = IBinder::FIRST_CALL_TRANSACTION + 3,
EVT_SRC_CT_CB = IBinder::FIRST_CALL_TRANSACTION + 4,
EVT_SIG_DT_CB = IBinder::FIRST_CALL_TRANSACTION + 5,
DATA_SET_ACTION = IBinder::FIRST_CALL_TRANSACTION + 6,
DATA_GET_ACTION = IBinder::FIRST_CALL_TRANSACTION + 7,
CMD_DATA_REQ = IBinder::FIRST_CALL_TRANSACTION + 8,
EVT_SIG_DV_ALLM = IBinder::FIRST_CALL_TRANSACTION + 9,
CMT_GET_ALLM_INFO = IBinder::FIRST_CALL_TRANSACTION + 10,
EVT_SIG_VRR_CB = IBinder::FIRST_CALL_TRANSACTION + 11,
EVT_SIG_QMS_CB = IBinder::FIRST_CALL_TRANSACTION + 12,
CMT_GET_STD_INFO = IBinder::FIRST_CALL_TRANSACTION + 13,
EVT_PIP_SIG_DT_CB = IBinder::FIRST_CALL_TRANSACTION + 14,
};
private:
virtual void onTvEvent(CTvEvent &event);
int SendSignalForSignalDetectEvent(CTvEvent &event);
int SendSignalForSourceConnectEvent(CTvEvent &event);
int SendSignalForDvAllmEvent(CTvEvent &event);
int SendSignalForVrrEvent(CTvEvent &event);
int SendSignalForQmsEvent(CTvEvent &event);
int SendSignalForPipSignalDetectEvent(CTvEvent &event);
int ParserTvCommand(const char *commandData);
int ParserTvDataCommand(const char *commandBuf, unsigned char *dataBuf);
int HandleDataRequest(const char* cmdtype, const char* cmd, tvcmd_e subcmd, tv_source_input_t source, char* data, size_t length);
int SetTvServiceCallBack(sp<IBinder> callBack);
int RemoveTvServiceCallBack(int callBackId);
CTv *mpTv;
std::map<int, sp<IBinder>> mTvServiceCallBack;
virtual status_t onTransact(uint32_t code,
const Parcel& data, Parcel* reply,
uint32_t flags = 0);
};
#endif