void DisplayMeter::TriggerMsg(HOBJECT hSender, const char *szMsg) { ILTCommon* pCommon = g_pLTServer->Common(); if (!pCommon) return; // ConParse does not destroy szMsg, so this is safe ConParse parse; parse.Init((char*)szMsg); while (pCommon->Parse(&parse) == LT_OK) { if (parse.m_nArgs > 0 && parse.m_Args[0]) { if ((_stricmp(parse.m_Args[0], "show") == 0)) { if (parse.m_nArgs > 1) { HandleShow((uint8)atoi(parse.m_Args[1])); } else HandleShow(100); } else if (_stricmp(parse.m_Args[0], "plus") == 0) { if (parse.m_nArgs > 1) { HandlePlus((uint8)atoi(parse.m_Args[1])); } } else if (_stricmp(parse.m_Args[0], "minus") == 0) { if (parse.m_nArgs > 1) { HandleMinus((uint8)atoi(parse.m_Args[1])); } } else if (_stricmp(parse.m_Args[0], "set") == 0) { if (parse.m_nArgs > 1) { HandleSet((uint8)atoi(parse.m_Args[1])); } } else if (_stricmp(parse.m_Args[0], "hide") == 0) { HandleEnd(); } } } }
void CWndTray::Notify( TNotifyUI &msg ) { __super::Notify(msg); if (msg.sType == DUI_MSGTYPE_CLICK) { if (msg.pSender->GetName() == _T("btn_set")) { HandleSet(); } else if (msg.pSender->GetName() == _T("btn_feedback")) { HandleFeedBack(); } else if (msg.pSender->GetName() == _T("btn_quit")) { HandleQuit(); } } }
HANDLE MediaSrvCreate(void *media, char *name, int type, int preempt) #endif { PLIST head; PLIST n; PMEDIA_OBJECT obj; // 参数检查 if(media == NULL) return NULL; // 检查当前是否存在录放任务 kMutexWait(hMediaMutex); head = &MediaObjList; if(!ListEmpty(head) && (preempt != MEDIA_MODE_NORMAL)) { // 检查是否强行结束正在录放的音频 if(preempt == MEDIA_MODE_PREEMPTIVE) { // 获取正在音频任务节点 n = ListFirst(head); obj = ListEntry(n, MEDIA_OBJECT, Link); // 结束当前正在录放的音频任务 obj->Cb.MediaClose(obj->Media, 1); obj->Cb.MediaDestroy(obj->Media); // 释放当前节点 ListRemove(&obj->Link); HandleDestroy(obj->Header.Handle, MEDIA_MAGIC); if(obj->MediaInfo) kfree(obj->MediaInfo); kfree(obj); // 申请并初始化节点 obj = MediaSrvObjCreate(media, name, type); if(obj == NULL) { kMutexRelease(hMediaMutex); return NULL; } // 启动新的播放任务 if(obj->Cb.MediaOpen(obj->Media) < 0) { if(obj->MediaInfo) kfree(obj->MediaInfo); kfree(obj); kMutexRelease(hMediaMutex); return NULL; } // 把节点插入任务队列 ListInsert(head, &obj->Link); } else { // 申请并初始化节点 obj = MediaSrvObjCreate(media, name, type); if(obj == NULL) { kMutexRelease(hMediaMutex); return NULL; } // 把当前音频插入等待队列尾部 ListInsert(ListPrev(head), &obj->Link); } } else { // 申请并初始化节点 obj = MediaSrvObjCreate(media, name, type); if(obj == NULL) { kMutexRelease(hMediaMutex); return NULL; } // 启动新的录放任务 if(obj->Cb.MediaOpen(obj->Media) < 0) { if(obj->MediaInfo) kfree(obj->MediaInfo); kfree(obj); kMutexRelease(hMediaMutex); return NULL; } // 把当前音频插入等待队列尾部 ListInsert(head, &obj->Link); } kMutexRelease(hMediaMutex); { HANDLE hret = HandleSet(obj, MEDIA_MAGIC, sMediaSrvDestroy); kdebug(mod_media, PRINT_INFO, "OPEN: 0x%x\n", hret); return hret; } }