sdk-hwV1.3/external/eyesee-mpp/framework/sun8iw21/demo/cdrPlayerDemo/TargaryenControl.h

88 lines
2.3 KiB
C
Raw Permalink Normal View History

2024-05-07 10:09:20 +00:00
/*
********************************************************************************
* Android multimedia module
*
* (c) Copyright 2010-2015, Allwinner Microelectronic Co., Ltd.
* All Rights Reserved
*
* File : TargaryenControl.h
* Version: V1.0
* By : eric_wang
* Date : 2015-7-6
* Description:
********************************************************************************
*/
#ifndef _TARGARYENCONTROL_H_
#define _TARGARYENCONTROL_H_
#include <utils/Errors.h>
#include <utils/Mutex.h>
#include <utils/Condition.h>
#include "BaseMessageHandler.h"
#include "LannisterView.h"
#include "StarkModel.h"
namespace EyeseeLinux {
class TargaryenControl
{
public:
TargaryenControl();
~TargaryenControl();
enum State
{
STATE_ERROR = -1,
STATE_IDLE = 0,
STATE_INITIALIZED = 1,
STATE_RUNNING = 2,
};
enum MessageType
{
MSGTYPE_QUIT_THREAD = 1,
};
status_t init();
status_t reset();
status_t threadRunning();
private:
State mState; //TargaryenControl::State::IDLE
Mutex mLock;
bool mWaitThreadQuitFlag;
Condition mSignalThreadQuit;
LannisterView *mpCommandReceiver;
StarkModel *mpPlayer; //for test player
//ArrynModel *mpRecorder; //for test recorder.
bool mThreadQuitFlag;
EyeseeMessageQueue mMsgQueue;
int mUILayer;
class LannisterViewListener : public BaseView::OnMessageListener
{
public:
LannisterViewListener(TargaryenControl *pTCtrl);
virtual status_t onMessage(int msg, void* pMsgData);
private:
TargaryenControl * const mpTCtrl;
};
LannisterViewListener *mpLannisterViewListener;
class StarkModelListener : public BaseModel::OnMessageListener
{
public:
StarkModelListener(TargaryenControl *pTCtrl);
virtual status_t onMessage(int msg, void* pMsgData);
private:
TargaryenControl * const mpTCtrl;
};
StarkModelListener *mpStarkModelListener;
friend class LannisterViewMessageHandler;
friend class StarkModelMessageHandler;
friend class TargaryenControlMessageHandler;
std::vector<BaseMessageHandler*> mMessageHandlerArray;
};
};
#endif /* _TARGARYENCONTROL_H_ */