新闻中心

EEPW首页 > 消费电子 > 设计应用 > 基于MiniGUI的嵌入式媒体播放器的设计与实现

基于MiniGUI的嵌入式媒体播放器的设计与实现

作者:陈运虎 韦 冰时间:2008-07-04来源:中国电子网收藏

  3.3 主要函数及具体实现

本文引用地址:http://www.eepw.com.cn/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 下一页

评论


相关推荐

技术专区

关闭