CPI_Keyboard.c
上传用户:tuheem
上传日期:2007-05-01
资源大小:21889k
文件大小:5k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. ////////////////////////////////////////////////////////////////////////////////
  2. #include "stdafx.h"
  3. #include "globals.h"
  4. #include "resource.h"
  5. #include "CPI_Player.h"
  6. #include "CPI_Playlist.h"
  7. #include "CPI_PlaylistItem.h"
  8. ////////////////////////////////////////////////////////////////////////////////
  9. //
  10. //
  11. //
  12. void CP_HandleKeyPress_Playlist(HWND hWnd, const int iVKey, const BOOL bAlt, const BOOL bCtrl, const BOOL bShift)
  13. {
  14.     switch(iVKey)
  15.     {
  16.     case 'F':
  17.         CPVERB_ToggleFindDialog(vaDoVerb, hWnd);
  18.         return;
  19.     case 'H':
  20.         CPVERB_PlaylistShuffle(vaDoVerb, hWnd);
  21.         return;
  22.     case 'V':
  23.         CPVERB_SavePlaylist(vaDoVerb, hWnd);
  24.         return;
  25.     case 'D':
  26.         CPVERB_AddDirectory(vaDoVerb, hWnd);
  27.         return;
  28.     case VK_DELETE:
  29.     case VK_BACK:
  30.         if(bCtrl)
  31.             CPVERB_PlaylistClearAll(vaDoVerb, hWnd);
  32.         else
  33.             CPVERB_PlaylistClearSelected(vaDoVerb, hWnd);
  34.         return;
  35.     case VK_UP:
  36.         if(bAlt)
  37.         {
  38.             CPVERB_PlaylistOffsetUp(vaDoVerb, hWnd);
  39.             return;
  40.         }
  41.         break;
  42.     case VK_DOWN:
  43.         if(bAlt)
  44.         {
  45.             CPVERB_PlaylistOffsetDown(vaDoVerb, hWnd);
  46.             return;
  47.         }
  48.         break;
  49.     case VK_ADD:
  50.         if(bAlt)
  51.         {
  52.             CPVERB_PlaylistMaximise(vaDoVerb, hWnd);
  53.             return;
  54.         }
  55.         break;
  56.     case VK_SUBTRACT:
  57.         if(bAlt)
  58.         {
  59.             CPVERB_PlaylistMinimise(vaDoVerb, hWnd);
  60.             return;
  61.         }
  62.         break;
  63.     }
  64.     CP_HandleKeyPress_Player(hWnd, iVKey, bAlt, bCtrl, bShift);
  65. }
  66. //
  67. //
  68. //
  69. void CP_HandleKeyPress_Player(HWND hWnd, const int iVKey, const BOOL bAlt, const BOOL bCtrl, const BOOL bShift)
  70. {
  71.     switch(iVKey)
  72.     {
  73.     case 'P':
  74.         CPVERB_TogglePlaylistWindow(vaDoVerb, hWnd);
  75.         break;
  76.     case 'E':
  77.     case 'Q':
  78.         CPVERB_ToggleEqualiser(vaDoVerb, hWnd);
  79.         break;
  80.     case 'S':
  81.         CPVERB_ToggleShuffle(vaDoVerb, hWnd);
  82.         break;
  83.     case 'R':
  84.         CPVERB_ToggleRepeat(vaDoVerb, hWnd);
  85.         break;
  86.     case 'X':
  87.     case VK_RETURN:
  88.     case VK_NUMPAD5:
  89.         CPVERB_Play(vaDoVerb, hWnd);
  90.         break;
  91.     case 'V':
  92.     case VK_DECIMAL:
  93.         CPVERB_Stop(vaDoVerb, hWnd);
  94.         break;
  95.     case 'C':
  96.     case VK_PAUSE:
  97.     case VK_NUMPAD0:
  98.         CPVERB_Pause(vaDoVerb, hWnd);
  99.         break;
  100.     case 'B':
  101.     case VK_NUMPAD6:
  102.         CPVERB_NextTrack(vaDoVerb, hWnd);
  103.         break;
  104.     case 'Z':
  105.     case VK_NUMPAD4:
  106.         CPVERB_PrevTrack(vaDoVerb, hWnd);
  107.         break;
  108.     case VK_LEFT:
  109.         if(bCtrl)
  110.             CPVERB_PrevTrack(vaDoVerb, hWnd);
  111.         else
  112.             CPVERB_SkipBackwards(vaDoVerb, hWnd);
  113.         break;
  114.     case VK_RIGHT:
  115.         if(bCtrl)
  116.             CPVERB_NextTrack(vaDoVerb, hWnd);
  117.         else
  118.             CPVERB_SkipForwards(vaDoVerb, hWnd);
  119.         break;
  120.     case VK_ADD:
  121.     case VK_NUMPAD8:
  122.     case VK_UP:
  123.         if(!bAlt)
  124.             CPVERB_VolumeUp(vaDoVerb, hWnd);
  125.         break;
  126.     case VK_SUBTRACT:
  127.     case VK_NUMPAD2:
  128.     case VK_DOWN:
  129.         if(!bAlt)
  130.             CPVERB_VolumeDown(vaDoVerb, hWnd);
  131.         break;
  132.     case '0':
  133.     case 'M':
  134.     case VK_TAB:
  135.         globals.m_iVolume=0;
  136.         main_draw_vu_from_value(windows.wnd_main, VolumeSlider, globals.m_iVolume);
  137.         CPI_Player__SetVolume(globals.m_hPlayer, globals.m_iVolume);
  138.         break;
  139.     case '1':
  140.     case '2':
  141.     case '3':
  142.     case '4':
  143.     case '5':
  144.     case '6':
  145.     case '7':
  146.     case '8':
  147.     case '9':
  148.         globals.m_iVolume=10 + ((iVKey-'1') * 10);
  149.         main_draw_vu_from_value(windows.wnd_main, VolumeSlider, globals.m_iVolume);
  150.         CPI_Player__SetVolume(globals.m_hPlayer, globals.m_iVolume);
  151.         break;
  152.     case VK_F1:
  153.         CPVERB_About(vaDoVerb, hWnd);
  154.         break;
  155.     case VK_F4:
  156.         if(bAlt)
  157.             CPVERB_Exit(vaDoVerb, hWnd);
  158.         else if(bCtrl)
  159.             CPVERB_TogglePlaylistWindow(vaDoVerb, hWnd);
  160.         break;
  161.     case VK_ESCAPE:
  162.         CPVERB_Exit(vaDoVerb, hWnd);
  163.         break;
  164.     case 'L':
  165.     case 'O':
  166.         CPVERB_OpenFile(vaDoVerb, hWnd);
  167.         break;
  168.     case VK_DELETE:
  169.         if(bShift)
  170.         {
  171.             CP_HPLAYLISTITEM hCurrent = CPL_GetActiveItem(globals.m_hPlaylist);
  172.             CPVERB_Stop(vaDoVerb, hWnd);
  173.             if(hCurrent)
  174.             {
  175.                 const char *pcText = CPLI_GetPath(hCurrent);
  176.                 DeleteFile(pcText);
  177.                 CPL_RemoveItem(globals.m_hPlaylist, hCurrent);
  178.             }
  179.         }
  180.         break;
  181.     }
  182. }
  183. //
  184. //
  185. //