Mstar_6M48学习心得之关于DMP

时间:2024.3.31

一、InputSource界面的显示:

1、switch(MApp_TV())

MApp_TV_ProcessUserInput();

switch(u8KeyCode)

case KEY_INPUT_SOURCE:

enTVState = STATE_TV_INIT;

enTVRetVal = EXIT_GOTO_INPUTSOURCE;

u8KeyCode = KEY_NULL;

break;

case EXIT_GOTO_INPUTSOURCE:

enTopState = STATE_TOP_INPUTSOURCE;

break;

2、switch ( enTopState )

case STATE_TOP_INPUTSOURCE:

switch(MApp_InputSource_Main())

EN_RET MApp_InputSource_Main(void)

switch(enInputSourceState)

case STATE_INPUTSOURCE_INIT:

MApp_ZUI_ACT_StartupOSD(E_OSD_INPUT_SOURCE); enInputSourceState = STATE_INPUTSOURCE_WAIT; break;

当我们按“上”、“下”键时,执行:

MApp_ZUI_ACT_ExecuteWndProc(GETWNDPROCID(focus), pMsg); 再执行:

MApp_ZUI_API_DefaultWindowProc

再执行:

MApp_ZUI_ACT_ExecuteWndAction

以按下键为例:

执行:

case EN_EXE_NOTIFY_PARENT_KEY_DOWN:

MApp_ZUI_API_PostMessage(

MApp_ZUI_API_GetParent(MApp_ZUI_API_GetFocus()), MSG_NOTIFY_KEYDOWN,

VK_DOWN);

return TRUE;

再执行:

case EN_ZUI_DYNAMICLIST_WINPROC:

return DYNAMICLIST_WINPROC(msg->hwnd, msg); 再执行:

if((windata->pVarData->hwndFirstShown<=next

&&next<= windata->pVarData->hwndLastShown)

&&MApp_ZUI_API_IsWindowVisible(next)

&&MApp_ZUI_API_IsWindowEnabled(next))

{

//shown region: trivial case: focus it

MApp_ZUI_API_SetFocus(next);

printf("[]focus=%u\n", next);

break;

}

return DEFAULTWINPROC(hWnd, pMsg);

选中Input Source的USB项,再按OK键,执行:

case EN_EXE_EXECUTE_APP_USB:

{

MApp_ZUI_ACT_InputSourceSwitch( _MApp_ZUI_ACT_GetSourceType() );

MApp_ZUI_ACT_TransitionEffectBegin(EN_EFFMODE_CLOSE, _ZUI_STATE_TERMINATE); enInputSourceState= STATE_INPUTSOURCE_GOTO_DMP;

}

return TRUE;

再执行到:

MApp_InputSource_Main

switch(enInputSourceState)

case STATE_INPUTSOURCE_GOTO_DMP:

MApp_ZUI_ACT_ShutdownOSD();

enInputSourceState = STATE_INPUTSOURCE_INIT;

enRetVal = EXIT_GOTO_DMP;

break;

再:

switch(MApp_InputSource_Main())

case EXIT_GOTO_DMP:

enTopState = STATE_TOP_DMP;

break;

执行:

MApp_DMP_Main

switch(m_enDmpVar.enDmpState)

case DMP_STATE_INIT:

srand(msAPI_Timer_GetTime0());

MApp_ZUI_ACT_StartupOSD(E_OSD_DMP);

_MApp_DMP_Switch2Dmp();

u32time = msAPI_Timer_GetTime0();

m_enDmpVar.enDmpState = DMP_STATE_CONNECTING;

u8GWinId = MApp_ZUI_API_QueryGWinID();

break;

case DMP_STATE_CONNECTING:

if(msAPI_Timer_DiffTimeFromNow(u32time) > DMP_WAITCONNECT_MS || m_enDmpVar.enDmpFlag & DMP_FLAG_DRIVE_CONNECT_OK) {

m_enDmpVar.enDmpState = DMP_STATE_UI;

}

break;

case DMP_STATE_UI:

MApp_DMP_NotifyUiState(m_enDmpVar.enDmpUiState);

m_enDmpVar.enDmpState = DMP_STATE_WAIT;

break;

我们再一直按右,执行:

switch(pMsg->wParam)

{

case VK_RIGHT:

MApp_ZUI_API_SetFocusByNav(focus, NAV_RIGHT);

break;

}

在影视选项上按OK,执行:

case EN_EXE_DMP_MEDIA_PAGE_SEL:

if(HWND_DMP_MEDIA_TYPE_MOVIE == MApp_ZUI_API_GetFocus())

{

// stop bgm

if(MApp_DMP_GetDmpFlag() & DMP_FLAG_BGM_MODE)

{

MApp_MPlayer_StopMusic();

MApp_DMP_ClearDmpFlag(DMP_FLAG_BGM_MODE);

}

MApp_MPlayer_SetCurrentMediaType(E_MPLAYER_TYPE_MOVIE, TRUE); MApp_DMP_UiStateTransition(DMP_UI_STATE_DRIVE_SELECT);

}

再执行:

case DMP_UI_STATE_DRIVE_SELECT:

{

#if (DMP_PHOTO_THUMBNAIL || DMP_MOVIE_THUMBNAIL)

_MApp_DMP_ThumbCopyRegion_Destroy();

MApp_MPlayer_LeaveThumbnailMode();

MApp_DMP_ClearDmpFlag(DMP_FLAG_THUMBNAIL_MODE);

#endif

U8 i;

for(i=0; i<NUM_OF_MAX_DRIVE; i++)

{

if(MApp_MPlayer_QueryCurrentDriveIndex()== MApp_DMP_GetDriveFromMappingTable(i))

{

MApp_DMP_SetCurDrvIdxAndCalPageIdx(i);

}

}

_MApp_ACTdmp_ShowDrivePage();

U8 u8Idx = (MApp_DMP_GetCurDrvIdx()+1) % DMP_DRIVE_NUM_PER_PAGE;

MApp_ZUI_API_SetFocus(_hwndListDriveItem[u8Idx]);

}

break;

好,现在进入了Drive选择界面。在该界面按右键,通过,Skin Tool里面定义的Navigation,跳转到了,第一个可供选择的Drive。

再在该界面按OK键,执行:

MApp_DMP_UiStateTransition(DMP_UI_STATE_FILE_SELECT);

再调用:MApp_DMP_NotifyUiState

就可以显示出文件列表页面了。

视频的播放流程,待续。


第二篇:Mstar_6M48学习心得之关于屏保


在需要进入屏保的地方调用:

MApp_ZUI_ACT_StartupOSD(E_OSD_SCREEN_SAVER);

调用:

MApp_ZUI_ACT_AppShowScreenSaver();

通过:

for (wnd = 0; wnd < HWND_MAX; wnd++)

{

//printf("create msg: %lu\n", (U32)wnd);

MApp_ZUI_API_SendMessage(wnd, MSG_CREATE, 0);

}

再执行到:

iRet = MApp_ZUI_ACT_ExecuteWndProc(GETWNDPROCID(pMsg->hwnd), pMsg);

在判断:

g_GUI_WindowList[hwnd].u8WinProcID

时,有个Win的ProcID为EN_ZUI_SCREENSAVER_WINPROC

于是执行:

SCREENSAVER_WINPROC(msg->hwnd, msg);

此时msg的type为Create

执行的函数为:

case MSG_CREATE:

{

if(hwnd == HWND_SCREEN_SAVER_FRAME) 这句话的意思是定义要显示的Page {

U16 x, y;

//MApi_GOP_GWIN_Enable(MApp_ZUI_API_QueryGWinID(), FALSE); //hide it first! srand(msAPI_Timer_GetTime0());

{

x = UI_OSD_PANE_W/2;

y = UI_OSD_PANE_H/2;

}

_ss_move_x_positive_main = 1;

_ss_move_y_positive_main = 1;

if ((rand()%2) == 0)

_ss_move_x_positive_main = 0;

if ((rand()%2) == 0)

_ss_move_y_positive_main = 0;

main_rect.left = x;

main_rect.top = y;

main_rect.width = SCREEN_SAVER_FRAME_WIDTH;

main_rect.height = SCREEN_SAVER_FRAME_HEIGHT;

MApp_ZUI_API_MoveAllSuccessors(hwnd, main_rect.left, main_rect.top);

MApp_ZUI_API_SetTimer(hwnd, 0, SCREEN_SAVER_MOVE_INTERVAL); }

}

break;

至此,已经显示出第一幅画面,并已经通过:

MApp_ZUI_API_SetTimer(hwnd, 0, SCREEN_SAVER_MOVE_INTERVAL);

发送了Timer,就可以每隔SCREEN_SAVER_MOVE_INTERVAL这么多微秒更换一个画面了。

更多相关推荐:
民法学习心得体会

民法学习心得体会民法原理在我们现实生活中真的是无处不在,衣食住行各方面都有可能会和民法打上“交道”,毫不夸张的说,我们每个人从出生到死亡基本上都是生活在民法的框架范围内,因此学习好民法,掌握好民法,运用好民法就…

民族团结学习心得体会1

民族团结学习心得体会王帅自公元前xx年西汉设西域都护府以来,新疆就作为祖国不可分割的一部分纳入了祖国版图。几千年来,在这块土地上各族人民交融相处繁衍生息,共同缔造了灿烂辉煌的中华文化,谱写了一曲曲维护祖国统一、…

外训学习心得

参《采购价格与成本分析效益实务》之学习心得为时一天的培训课程结束了,时间虽短,但受益匪浅。我深刻领会到,作为一名合格的采购员,应具备一个管理者所拥有的思维度及对事物分析的敏锐度,更要学会倾听,掌握沟通技巧等多项…

广告学习心得作业

广告学习心得每天每个电视台都会播放广告,特别是在每次播放精彩节目的瞬间都会插播广告这对我来说已经是司空见惯了。所以一直以来我对广告没有什么好感。在上这门课之前我对广告艺术也是一无所知.在我眼中它们只不过是投资商…

法律的学习心得体会

法律的学习心得体会自XX年x月份以来,我们在学校领导的组织下,通过多种形式,进行了“法律进学校”的学习。我们集中学习了《中华人民共和国宪法》、《中华人民共和国教育法》、《中华人民共和国义务教育法》、《中华人民共…

学习心得

国培学习心得体会——湖北省黄梅县柳林乡中学梅利今年,我非常幸运地参加了“国培”教师培训,在培训学习期间,聆听了很多专家和名师的报告,他们以鲜活的案例和丰富的知识内涵及精湛的理论阐述,给了我强烈的感染和深深的理论…

学习心得

学习“吴大奎董事长讲话”的心得吴大奎董事长在柳州银海铝调研期间作了题为《新班子新柳铝新景象》的即兴讲话。在目前经济大环境不景气的现状下,这次讲话的内容非常的重要,对集团下属企业有着宏观上的指导意义。安徽广银领导…

学习孝道心得体会1000字3篇

学习孝道心得体会1000字3篇学习孝道心得体会1000字1篇当前孝道文化传遍祖国大江南北孝道之花开遍中国每个角落是的百孝篇中讲quot孝在街坊人敬仰孝在家中合家欢孝字本是百行源孝贵行动不在言quot人若不孝敬父...

讲学习心得体会

讲学习心得体会通过学习理工学院教授的讲座和局长的讲话深受教育体会很深充分的认识到作为身在机关的国家公务员只有努力不断的加强学习不断的提高自身素质树立为党为人民服务的思想才能做好本职工作不犯错误或者是少犯错误为达...

党课学习心得体会_3000字

党课学习心得体会首先感谢党组织给我此次的学习机会能够参加学院举办的入党积极分子培训班的学习我深感荣幸也十分珍惜这次宝贵的学习机会各位老师对党的精辟解析独到的见解和大量的旁征博引让我在无比叹服的同时深受鼓舞和教育...

新课程理念学习心得体会

新课程理念学习心得体会寨郝中心学校韩素芹通过学习我对新形势下的教学又有了更深刻的理解在此之前我原以为我对新课改已经有了一定的认识但通过专家对新课程的分析讲解以及和同示们的研讨交流使我感觉到了自身存在的差距与不足...

安全学习心得体会

安全学习心得体会我通过这次安全学习得到了深刻的体会一作业人员严重违章是导致事故的主要原因管理人员和员工的安全意识不强管理人员声音指挥或操作现场工作人员不按规定违反操作规定等等二岗位操作人员粗心大意不熟悉岗位未能...

学习心得(464篇)