Beispiel #1
0
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();
			}
		}
	}
}
Beispiel #2
0
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();
		}
	}
}
Beispiel #3
0
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;
	}
}