新聞中心

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

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

作者:陳運(yùn)虎 韋 冰 時(shí)間:2008-07-04 來(lái)源:中國(guó)電子網(wǎng) 收藏

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

本文引用地址:http://m.butianyuan.cn/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é)束語(yǔ)

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

  參考文獻(xiàn)

  [1] 魏永明.M in iGUI用戶手冊(cè)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].十志宏譯.北京:中國(guó)電力出版社,2001.

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

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



上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

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

關(guān)閉