色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 消費電子 > 設(shè)計應(yīng)用 > 基于MiniGUI的嵌入式媒體播放器的設(shè)計與實現(xiàn)

          基于MiniGUI的嵌入式媒體播放器的設(shè)計與實現(xiàn)

          作者:陳運虎 韋 冰 時間:2008-07-04 來源:中國電子網(wǎng) 收藏

            3.3 主要函數(shù)及具體實現(xiàn)

          本文引用地址:http://cafeforensic.com/article/85284.htm

           ?、?播放控制事件回調(diào)函數(shù)

            static int main_event_cb (HWND hwnd, skin_item_t* item, int event, void* data)

            {  …

               if (event==SIE_BUTTON_CLICKED) {


                    switch (item->id) {

                    case SIID_PLAY:

                    …

                    case SIID_PAUSE:

                    …  

                    case SIID_STOP:

                    …

                    case SIID_CLOSE:

                    …

                    }

                }

                else if (event==SIE_SLIDER_CHANGED && item->id!=SIID_VOLUME) {

                …

                }

                return 1;

            }

            ⑵ 列表事件處理函數(shù)

            void playlist_handle_event(PEvent *event, void *data)

            {

            …

              switch(event->type) {

              case ButtonPress:

              …

              case ButtonRelease:

              …

            case KeyPress:

                if(!playlist)

                   return;

                mykeyevent = event->xkey; 

                LockDisplay(gGui->display);

                len="LookupString"(&mykeyevent, kbuf, sizeof(kbuf), &mykey, NULL);

                UnlockDisplay(gGui->display);

                switch (mykey) {

                case K_Down:

                case K_Next:

                  browser_step_up(playlist->playlist, NULL);

                  break;

                case K_Up:

                case K_Prior:

                  browser_step_down(playlist->playlist, NULL);

                  break;

                default:

                  gui_handle_event(event, data);

                  break;

                }

             break;

               case MappingNotify:

                 LockDisplay(gGui->display);

                 RefreshKeyboardMapping((MappingEvent *)event);

                 UnlockDisplay(gGui->display);

                 break;   

              }

            }

            ⑶ 主函數(shù)

            int Main(int argc, const char* argv[])

            {  

            …

                PlayerHandle="PlayerNew"();

            …
                free(buffer);

                PlayerGetInfo(PlayerHandle, &fi);

                  …

            InitCreateInfo(&CreateInfo);

            hMainWnd=CreateMainWindow(&CreateInfo);

                if (hMainWnd==HWND_INVALID)

                    return -1;

                 …

                while( GetMessage(&Msg, hMainWnd) )

               {

                TranslateMessage(&Msg);

                    DispatchMessage(&Msg);

                 …    

                }

                PlayerClose(PlayerHandle);

            …

                MainWindowThreADCleanup(hMainWnd);

                return 0;

            }

            4 結(jié)束語

            隨著系統(tǒng)硬件性能的不斷提升,用戶對應(yīng)用程序界面的友好性和功能的完備性提出了更高的要求。本文介紹的基于具有設(shè)計簡單,占用系統(tǒng)資源少等特點,可作為開發(fā)基于圖形界面系統(tǒng)的應(yīng)用軟件的參考。

            參考文獻(xiàn)

            [1] 魏永明.M in iGUI用戶手冊v1.6 [M].北京:北京飛漫軟件技術(shù)有限公司,2006.

            [2] 魏永明.M in iGUI編程指南v1.6 [M].北京:北京飛漫軟件技術(shù)有限公司,2006.

            [3] 楊小軍.基于嵌入式Linux系統(tǒng)界面的研究[[J].現(xiàn)代電子技術(shù),2004, 27 (IS):89-91.

            [4] BarrM. C/C++嵌入式系統(tǒng)編程[M].十志宏譯.北京:中國電力出版社,2001.

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          c++相關(guān)文章:c++教程



          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉