Merge "DO NOT MERGE Implement cloneTvInputEvent" into lmp-mr1-dev
This commit is contained in:
@@ -264,6 +264,7 @@ private:
|
|||||||
class NotifyHandler : public MessageHandler {
|
class NotifyHandler : public MessageHandler {
|
||||||
public:
|
public:
|
||||||
NotifyHandler(JTvInputHal* hal, const tv_input_event_t* event);
|
NotifyHandler(JTvInputHal* hal, const tv_input_event_t* event);
|
||||||
|
~NotifyHandler();
|
||||||
|
|
||||||
virtual void handleMessage(const Message& message);
|
virtual void handleMessage(const Message& message);
|
||||||
|
|
||||||
@@ -277,6 +278,9 @@ private:
|
|||||||
static void notify(
|
static void notify(
|
||||||
tv_input_device_t* dev, tv_input_event_t* event, void* data);
|
tv_input_device_t* dev, tv_input_event_t* event, void* data);
|
||||||
|
|
||||||
|
static void cloneTvInputEvent(
|
||||||
|
tv_input_event_t* dstEvent, const tv_input_event_t* srcEvent);
|
||||||
|
|
||||||
Mutex mLock;
|
Mutex mLock;
|
||||||
jweak mThiz;
|
jweak mThiz;
|
||||||
tv_input_device_t* mDevice;
|
tv_input_device_t* mDevice;
|
||||||
@@ -447,6 +451,20 @@ void JTvInputHal::notify(
|
|||||||
thiz->mLooper->sendMessage(new NotifyHandler(thiz, event), event->type);
|
thiz->mLooper->sendMessage(new NotifyHandler(thiz, event), event->type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// static
|
||||||
|
void JTvInputHal::cloneTvInputEvent(
|
||||||
|
tv_input_event_t* dstEvent, const tv_input_event_t* srcEvent) {
|
||||||
|
memcpy(dstEvent, srcEvent, sizeof(tv_input_event_t));
|
||||||
|
if ((srcEvent->type == TV_INPUT_EVENT_DEVICE_AVAILABLE ||
|
||||||
|
srcEvent->type == TV_INPUT_EVENT_DEVICE_UNAVAILABLE ||
|
||||||
|
srcEvent->type == TV_INPUT_EVENT_STREAM_CONFIGURATIONS_CHANGED) &&
|
||||||
|
srcEvent->device_info.audio_address != NULL){
|
||||||
|
char* audio_address = new char[strlen(srcEvent->device_info.audio_address) + 1];
|
||||||
|
strcpy(audio_address, srcEvent->device_info.audio_address);
|
||||||
|
dstEvent->device_info.audio_address = audio_address;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void JTvInputHal::onDeviceAvailable(const tv_input_device_info_t& info) {
|
void JTvInputHal::onDeviceAvailable(const tv_input_device_info_t& info) {
|
||||||
{
|
{
|
||||||
Mutex::Autolock autoLock(&mLock);
|
Mutex::Autolock autoLock(&mLock);
|
||||||
@@ -543,7 +561,16 @@ void JTvInputHal::onCaptured(int deviceId, int streamId, uint32_t seq, bool succ
|
|||||||
|
|
||||||
JTvInputHal::NotifyHandler::NotifyHandler(JTvInputHal* hal, const tv_input_event_t* event) {
|
JTvInputHal::NotifyHandler::NotifyHandler(JTvInputHal* hal, const tv_input_event_t* event) {
|
||||||
mHal = hal;
|
mHal = hal;
|
||||||
memcpy(&mEvent, event, sizeof(mEvent));
|
cloneTvInputEvent(&mEvent, event);
|
||||||
|
}
|
||||||
|
|
||||||
|
JTvInputHal::NotifyHandler::~NotifyHandler() {
|
||||||
|
if ((mEvent.type == TV_INPUT_EVENT_DEVICE_AVAILABLE ||
|
||||||
|
mEvent.type == TV_INPUT_EVENT_DEVICE_UNAVAILABLE ||
|
||||||
|
mEvent.type == TV_INPUT_EVENT_STREAM_CONFIGURATIONS_CHANGED) &&
|
||||||
|
mEvent.device_info.audio_address != NULL) {
|
||||||
|
delete mEvent.device_info.audio_address;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void JTvInputHal::NotifyHandler::handleMessage(const Message& message) {
|
void JTvInputHal::NotifyHandler::handleMessage(const Message& message) {
|
||||||
|
|||||||
Reference in New Issue
Block a user