VolumeCtrl.h
上传用户:shenwh911
上传日期:2013-07-04
资源大小:54k
文件大小:2k
源码类别:

Audio

开发平台:

Visual C++

  1. // VolumeCtrl.h: interface for the CVolumeCtrl class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_VOLUMECTRL_H__B6896D28_B52A_4E82_B1AE_099B8E552094__INCLUDED_)
  5. #define AFX_VOLUMECTRL_H__B6896D28_B52A_4E82_B1AE_099B8E552094__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #pragma once
  10. #include "IVolume.h"
  11. typedef BOOL (CALLBACK *PINPUTLINEPROC) (UINT uLineIndex, MIXERLINE* pLineInfo, DWORD dwUserValue);
  12. class CVolumeCtrl: public IVolume  
  13. {
  14. public:
  15. BOOL GetMicrophoneSourceLineIndex(UINT* puLineIndex);
  16. static BOOL EnumerateInputLines( DWORD dwDeviceID, PINPUTLINEPROC, DWORD dwUserValue);
  17. public:
  18. virtual BOOL IsAvailable();
  19. virtual void Enable();
  20. virtual void Disable();
  21. virtual DWORD GetVolumeMetric();
  22. virtual DWORD GetMinimalVolume();
  23. virtual DWORD GetMaximalVolume();
  24. virtual DWORD GetCurrentVolume();
  25. virtual void SetCurrentVolume(DWORD dwValue);
  26. public:
  27. CVolumeCtrl(UINT uLineIndex, DWORD dwDeviceID=WAVE_MAPPER);
  28. virtual ~CVolumeCtrl();
  29. private:
  30. DWORD m_dwDeviceID;
  31. // Status Info
  32. BOOL m_bOK;
  33. BOOL m_bInitialized;
  34. BOOL m_bAvailable;
  35. // Mixer Info
  36. UINT m_uMixerID;
  37. DWORD m_dwMixerHandle;
  38. DWORD m_dwLineID;
  39. DWORD m_dwVolumeControlID;
  40. int m_nChannelCount;
  41. UINT m_uSourceLineIndex;
  42. UINT m_uMicrophoneSourceLineIndex;
  43. HWND m_hWnd;
  44. DWORD m_dwMinimalVolume;
  45. DWORD m_dwMaximalVolume;
  46. DWORD m_dwVolumeStep;
  47. private:
  48. BOOL Init();
  49. void    Clear();
  50.     BOOL Initialize(UINT uLineIndex);
  51. static LRESULT CALLBACK MixerWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
  52. };
  53. typedef CVolumeCtrl* PCVolumeCtrl;
  54. #endif // !defined(AFX_VOLUMECTRL_H__B6896D28_B52A_4E82_B1AE_099B8E552094__INCLUDED_)