Ejemplo n.º 1
0
/*************************************************
  Function:		LoadScene
  Description: 	��������UI ���Ե�
  Input:		
  Output:		��
  Return:		��
  Others:
*************************************************/
static void LoadScene(void)
{
    uint32_t tick1, tick2;

    if (theScene.root)
    {
        ituSceneExit(&theScene);
	    #ifdef _WIN32
	    //_CrtMemDumpAllObjectsSince(&state);
	    #endif
    }	
	#ifdef _WIN32
    else
    {
        //_CrtMemCheckpoint(&state);
        //_CrtSetBreakAlloc(8003);
    }
	#endif

    // load itu file
    tick1 = SDL_GetTicks();

    ituSceneLoadFile(&theScene, CFG_PRIVATE_DRIVE ":/doorbell_indoor.itu");

    tick2 = SDL_GetTicks();
    printf("itu loading time: %dms\n", tick2 - tick1);
    tick1 = tick2;
	
	//resetScene();
    ItuSetLanguage(storage_get_language());

    tick2 = SDL_GetTicks();
    printf("itu init time: %dms\n", tick2 - tick1);

	SceneGetAllProgressBar();
}
Ejemplo n.º 2
0
/*************************************************
Function:		DrawStringHint
Description: 	画状态提示
Input:			无
Output:			无
Return:			无
Others:			无
*************************************************/
static void DrawStringHint(void)
{
	char time[10] = { 0 };
	char temp[50] = { 0 };
	char DevDesc[50] = { 0 };
	char NoText[100] = { 0 };
	uint32 StrId = 0;

	switch (g_InterState)
	{
		case CALL_STATE_REQUEST:
			StrId = SID_Inter_Connecting;
			break;

		case CALL_STATE_CALLING:
			if (g_OperType == INTER_CALLOUT_E)
			{
				StrId = SID_Inter_Calling;
			}
			else if (g_OperType == INTER_CALLIN_E)
			{
				StrId = SID_Inter_BeCalling;
			}
			break;

		case CALL_STATE_RECORDHINT:
			StrId = SID_Inter_RecordHinting;
			break;

		case CALL_STATE_RECORDING:
			StrId = SID_Inter_Recording;
			break;

		case CALL_STATE_TALK:
			StrId = SID_Inter_Talking;
			break;

		case CALL_STATE_END:
			StrId = 0;
			break;

		default:
			StrId = 0;
			break;
	}
	// 画设备描述
	if (strlen(g_DevNo) > 0)
	{
		if (atoi(g_DevNo) == 0xFF)
		{
			strcpy(DevDesc, get_str(SID_DevManager));
		}
		else
		{
			get_dev_description(g_DevType, g_DevNo, DevDesc, 50); // 获得设备描述
		}
	}
	sprintf(temp, "[%s]", DevDesc);

	if (g_ErrHintTxtID)
	{
		sprintf(NoText, "%s %s", temp, get_str(g_ErrHintTxtID));
		ituTextSetString(BecallCallNoText, NoText);
	}
	else if (StrId)
	{
		sprintf(NoText, "%s %s", temp, get_str(StrId));
		ituTextSetString(BecallCallNoText, NoText);
	}
	else
	{
		ituTextSetString(BecallCallNoText, temp);
	}

	if (ENGLISH == storage_get_language())
	{
		text_ctrl_too_long_show_ellipsis(BecallCallNoText);
	}

	// 画时间提示: time
	if (g_RemainTime)
	{
		sprintf(time, "%d", g_RemainTime);
		ituTextSetString(BeCallTimeText, time);
	}

	// 画新来电提示
	if (strlen(g_NewCallNo) > 0)
	{
		uint16 DevType = g_NewCallNo[1];
		char NewCallNo[30] = { 0 };

		sprintf(NewCallNo, "%s", g_NewCallNo+2);
		memset(DevDesc, 0, sizeof(DevDesc));
		memset(temp, 0, sizeof(temp));
		memset(NoText, 0, sizeof(NoText));
		get_dev_description(DevType, NewCallNo, DevDesc, 50);
		StrId = SID_Inter_BeCalling;
		
		sprintf(temp, "[%s]", DevDesc);
		sprintf(NoText, "%s %s", temp, get_str(StrId));
		ituTextSetString(BecallNewCallNoText, NoText);
		if (ENGLISH == storage_get_language())
		{
			text_ctrl_too_long_show_ellipsis(BecallNewCallNoText);
		}
	}
}
/*************************************************
Function:			OnNetDoorDeal
Description: 		处理网络门前机
Input:
1.win:   		当前处理的窗口
2.wParam:
Output:
Return:
Others:
*************************************************/
static void OnNetDoorDealNetParam(uint32 wParam)
{
	uint32 ret = 0;

	PNET_PARAM pnet_param = storage_get_netparam();
	switch (wParam)
	{
	case CMD_GATEWAY_GET_NET_PARAM:
		MsgWaitHitLayerOnShow("SetNetDoorNetParamLayer", SID_Inter_Search, SID_Msg_Connect_Outtime);
		ret = logic_get_netdevice_netparam();
		if (NETDOOR_ECHO_SUCESS != ret)
		{
			memset(&g_ndparam, 0, sizeof(g_ndparam));
			memset(&g_old_ndparam, 0, sizeof(NET_PARAM));

			MsgWaitHitLayerOnHide();
			MsgLinkOutTimeOnShow(SID_Msg_Connect_Outtime);			//显示连接超时 
		}
		break;

	case CMD_GATEWAY_SET_NET_PARAM:
		MsgWaitHitLayerOnShow("SetNetDoorNetParamLayer", SID_Inter_Search, 0);
		set_default_ip();
		//设置网络门前机设备编号以及规则
		ret = logic_set_netdoor_devnoinfo(&g_netdoorno, NULL);
		// 将中心机等参数从本机中取重新设置门前机
		memcpy((char*)&g_ndparam + 12, (char*)pnet_param + 12, sizeof(NET_PARAM)-12);
		if (ENGLISH == storage_get_language())
		{
			g_ndparam.DNS1 = 0xEE;				// 语言,英语
		}
		g_ndparam.DNS2 = 0xCF;					// 视频格式,CIF格式

		//设置网络门前机网络参数
		ret |= logic_set_netdoor_netparam(&g_ndparam);
		if (NETDOOR_ECHO_SUCESS != ret)
		{
			MsgWaitHitLayerOnHide();
			ShowMsgFailHintSuccessLayer(HIT_SPRITE_TO_ERROR, SID_Msg_Save_Err, "SetNetDoorNetParamLayer");

			if (readmacflag)
			{
				net_set_local_param();
				readmacflag = FALSE;
			}
		}
		break;

	case CMD_GATEWAY_GET_MAC:
		MsgWaitHitLayerOnShow("SetNetDoorNetParamLayer", SID_Inter_Search, SID_Msg_Connect_Outtime);
		set_default_ip();
		ret = logic_get_netdoor_mac(g_devIndex, HWaddr);
		if (NETDOOR_ECHO_SUCESS != ret)
		{
			MsgWaitHitLayerOnHide();
			MsgLinkOutTimeOnShow(SID_Msg_Connect_Outtime);

			if (readmacflag)
			{
				net_set_local_param();
				readmacflag = FALSE;
			}
		}
		
		break;
	}
}
Ejemplo n.º 4
0
/*************************************************
Function:		ShowSetJDScenceCoverFlowList
Description: 	显示情景设置列表
Input:		无
Output:		无
Return:		TRUE 是 FALSE 否
Others:
*************************************************/
static void ShowSetJDScenceCoverFlowList()
{
	int i, max = 0;
	char text_tmp[80];
	uint32 TextID[JD_SCENE_MAX] = { SID_Jd_Mode_Huike, SID_Jd_Mode_Jiucan, SID_Jd_Mode_Yejian, SID_Jd_Mode_Jiedian, SID_Jd_Mode_Putong };

	free_scene_memory(&g_SceneList);
	g_SceneList = storage_get_aurine_scene_info(0);
	if (g_SceneList)
	{
		g_SceneList->nCount = 32;
		max = 32;
	}

	for (i = 0; i < max; i++)
	{
		if (i < JD_SCENE_MAX)
		{
			ituTextSetString(SetJDSceneList1Text[i], get_str(TextID[i]));
			ituTextSetString(SetJDSceneList2Text[i], get_str(SID_Set_Used));
		}
		else
		{
			memset(text_tmp, 0, sizeof(text_tmp));

			if (g_SceneList->pjd_scene_info[i].IsUsed == 1)
			{
				ituTextSetString(SetJDSceneList2Text[i], get_str(SID_Set_Used));

				#ifdef _IP_MODULE_JD_
				if (JD_FACTORY_ACBUS == storage_get_extmode(EXT_MODE_JD_FACTORY) && get_ipmodule())
				{
					if (ENGLISH == storage_get_language())
					{
						strcpy(text_tmp, g_SceneList->pjd_scene_info[i].SceneName);
					}
					else
					{
						gbkToUtf8(text_tmp, MAX_JD_NAME, g_SceneList->pjd_scene_info[i].SceneName, MAX_JD_NAME);
					}
				}
				else
				#endif
				{
					#ifdef _USERDEFINE_JDNAME_
					strcpy(text_tmp1, g_SceneList->pjd_scene_info[i].SceneName);
					#else
					strcpy(text_tmp, get_str(g_SceneList->pjd_scene_info[i].TextIDPos));
					strcat(text_tmp, get_str(g_SceneList->pjd_scene_info[i].TextIDName));
				#endif
				}
			}
			else
			{
				ituTextSetString(SetJDSceneList2Text[i], get_str(SID_Set_UnUsed));

				sprintf(text_tmp, "%s%d", get_str(SID_Jd_Mode_Self), i + 1);
			}

			ituTextSetString(SetJDSceneList1Text[i], text_tmp);
		}
	}
}
Ejemplo n.º 5
0
/*************************************************
  Function:		ProcessCommand
  Description: 	��Ϣ����ִ�к���
  Input:		
  Output:		��
  Return:		��
  Others:
*************************************************/
static void ProcessCommand(void)
{
    Command cmd;

    if (mq_receive(g_CommandQueue, (char*)&cmd, sizeof(Command), 0) > 0)
    {
        switch (cmd.id)
        {
        	case CMD_LOAD_SCENE:
				{
            		LoadScene();
        		}
           		break;      

	        case CMD_GOTO_MAINMENU:
				{
					GotoLayer(_MAIN_MENU_LAYER_);
	        	}
	            break;

	        case CMD_CHANGE_LANG:
				{
					ItuSetLanguage(storage_get_language());		            
	        	}
	            break;

	        case CMD_PREDRAW:
				{
	            	ituScenePreDraw(&theScene, g_ScreenSurf);
	        	}
	            break;

			case CMD_REFRESH:
				{
					ituSceneDraw(&theScene, g_ScreenSurf);
	            	ituFlip(g_ScreenSurf);
				}
				break;

			case CMD_SYNC_MAINMENU:
				{
					ituSceneSendEvent(&theScene, EVENT_CUSTOM0_STATE_UPDATE, NULL);
				}
				break;
				
			case CMD_CALLIN_CALLBAK:
				{	
					char buf[MAX_STRARG_LEN];
					memset(buf, 0, sizeof(buf));
					memcpy(buf, cmd.strarg1, MAX_STRARG_LEN);
					ituSceneSendEvent(&theScene, EVENT_CUSTOM13_CALLIN, buf);
				}
				break;

			case CMD_CALLREQUEST_CALLBAK:
				{
					char buf[MAX_STRARG_LEN];
					memset(buf, 0, sizeof(buf));
					memcpy(buf, cmd.strarg1, MAX_STRARG_LEN);
					ituSceneSendEvent(&theScene, EVENT_CUSTOM11_CALLREQUEST, buf);
				}
				break;

			case CMD_CALLOUT_CALLBAK:
				{	
					char buf[MAX_STRARG_LEN];
					memset(buf, 0, sizeof(buf));
					memcpy(buf, cmd.strarg1, MAX_STRARG_LEN);
					ituSceneSendEvent(&theScene, EVENT_CUSTOM12_CALLOUT, buf);
				}
				break;

			case CMD_MONITOR_LIST_CALLBAK:
				{
					char buf[MAX_STRARG_LEN];
					memset(buf, 0, sizeof(buf));
					memcpy(buf, cmd.strarg1, MAX_STRARG_LEN);
					ituSceneSendEvent(&theScene, EVENT_CUSTOM14_MONITOR_LIST, buf);
				}
				break;

			case CMD_MONITOR_CALLBAK:
				{	
					char buf[MAX_STRARG_LEN];
					memset(buf, 0, sizeof(buf));
					memcpy(buf, cmd.strarg1, MAX_STRARG_LEN);
					ituSceneSendEvent(&theScene, EVENT_CUSTOM15_MONITOR, buf);
				}
				break;

			case CMD_RTSP_LIST_CALLBAK:
				{
					char buf[MAX_STRARG_LEN];
					memset(buf, 0, sizeof(buf));
					memcpy(buf, cmd.strarg1, MAX_STRARG_LEN);
					ituSceneSendEvent(&theScene, EVENT_CUSTOM16_RTSP_LIST, buf);
				}
				break;

			case CMD_RTSP_CALLBAK:
				{	
					char buf[MAX_STRARG_LEN];
					memset(buf, 0, sizeof(buf));
					memcpy(buf, cmd.strarg1, MAX_STRARG_LEN);
					ituSceneSendEvent(&theScene, EVENT_CUSTOM17_RTSP_MONITOR, buf);
				}
				break;

			case CMD_KEY_DOWN:
				{
					char buf[MAX_STRARG_LEN];
					memset(buf, 0, sizeof(buf));
					memcpy(buf, cmd.strarg1, MAX_STRARG_LEN);
					ituSceneSendEvent(&theScene, EVENT_CUSTOM18_KEY_DOWN, buf);
				}
				break;
				
			case CMD_GOTO_BECALL:
				{
					char buf[MAX_STRARG_LEN];
					memset(buf, 0, sizeof(buf));
					memcpy(buf, cmd.strarg1, sizeof(INTER_INFO_S));
					LogicShowWin(SHOW_BECALL_WIN, buf);
				}
				break;

			case CMD_ALARM_CALLBAK:
				{
					ituSceneSendEvent(&theScene, EVENT_CUSTOM0_STATE_UPDATE, NULL);
					UpdataAlarmLayerOnShow(NULL, NULL);					
				}
				break;

			case CMD_GOTO_ALARM:
				if (FALSE == ui_show_win_arbitration(SYS_OPER_ALARMING))
				{
					return FALSE;
				}
				AlarmLayerOnGoto(NULL, NULL);
				break;

			case CMD_SET_NETDOOR:
				{
					char buf[MAX_STRARG_LEN];
					memset(buf, 0, sizeof(buf));
					memcpy(buf, cmd.strarg1, MAX_STRARG_LEN);
					ituSceneSendEvent(&theScene, EVENT_CUSTOM19_NETDOOR_SET, buf);
				}
				break;
				
			case CMD_DIRECT_CALLBAK:
				{
					char buf[MAX_STRARG_LEN];
					memset(buf, 0, sizeof(buf));
					memcpy(buf, cmd.strarg1, MAX_STRARG_LEN);
					ituSceneSendEvent(&theScene, EVENT_CUSTOM20_OTHER_FUNC, buf);
				}
				break;
				
			default:
				break;
        }
    }
}
Ejemplo n.º 6
0
void fsm_msgGetFeatures(GetFeatures *msg)
{
    (void)msg;
    RESP_INIT(Features);

    /* Vendor */
    resp->has_vendor = true;
    strlcpy(resp->vendor, "keepkey.com", sizeof(resp->vendor));

    /* Version */
    resp->has_major_version = true;  resp->major_version = MAJOR_VERSION;
    resp->has_minor_version = true;  resp->minor_version = MINOR_VERSION;
    resp->has_patch_version = true;  resp->patch_version = PATCH_VERSION;

    /* Device ID */
    resp->has_device_id = true;
    strlcpy(resp->device_id, storage_get_uuid_str(), sizeof(resp->device_id));

    /* Security settings */
    resp->has_pin_protection = true; resp->pin_protection = storage_has_pin();
    resp->has_passphrase_protection = true;
    resp->passphrase_protection = storage_get_passphrase_protected();

#ifdef SCM_REVISION
    int len = sizeof(SCM_REVISION) - 1;
    resp->has_revision = true; memcpy(resp->revision.bytes, SCM_REVISION, len);
    resp->revision.size = len;
#endif

    /* Bootloader hash */
    resp->has_bootloader_hash = true;
    resp->bootloader_hash.size = memory_bootloader_hash(
                                     resp->bootloader_hash.bytes);

    /* Settings for device */
    if(storage_get_language())
    {
        resp->has_language = true;
        strlcpy(resp->language, storage_get_language(), sizeof(resp->language));
    }

    if(storage_get_label())
    {
        resp->has_label = true;
        strlcpy(resp->label, storage_get_label(), sizeof(resp->label));
    }

    /* Coin type support */
    resp->coins_count = COINS_COUNT;
    memcpy(resp->coins, coins, COINS_COUNT * sizeof(CoinType));

    /* Is device initialized? */
    resp->has_initialized = true;  resp->initialized = storage_is_initialized();

    /* Are private keys imported */
    resp->has_imported = true; resp->imported = storage_get_imported();

    /* Cached pin and passphrase status */
    resp->has_pin_cached = true; resp->pin_cached = session_is_pin_cached();
    resp->has_passphrase_cached = true;
    resp->passphrase_cached = session_is_passphrase_cached();

    msg_write(MessageType_MessageType_Features, resp);
}