新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > 基于MiniGUI的嵌入式媒體播放器的設計與實現

        基于MiniGUI的嵌入式媒體播放器的設計與實現

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

          3.3 主要函數及具體實現

        本文引用地址:http://www.104case.com/article/85284.htm

         ?、?播放控制事件回調函數

          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;

          }

          ⑵ 列表事件處理函數

          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;   

            }

          }

          ⑶ 主函數

          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 結束語

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

          參考文獻

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

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

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

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

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

        c++相關文章:c++教程



        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 卢氏县| 平谷区| 阳原县| 武功县| 从化市| 夹江县| 金川县| 甘肃省| 攀枝花市| 新安县| 正蓝旗| 聂荣县| 北宁市| 西宁市| 上高县| 历史| 怀化市| 平罗县| 英山县| 万山特区| 云霄县| 萨迦县| 新晃| 滨海县| 英山县| 南澳县| 耒阳市| 长沙县| 于都县| 柳江县| 奉节县| 江津市| 永川市| 邓州市| 枣庄市| 多伦县| 道真| 黄梅县| 阿坝| 华容县| 青龙|