Changeset 189
- Timestamp:
- Jun 29, 2013, 11:27:09 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Utilities/Miscellaneous/AudioSessionVolumeNotification/AudioSessionVolumeNotification.cpp
r165 r189 11 11 #define __C ATLENSURE_SUCCEEDED 12 12 13 //class CNotification :14 //public IAudioSessionEvents15 //{16 //private:17 //INT m_nSessionIndex;18 // 19 //public:20 // //CNotification21 //CNotification(INT nSessionIndex) :22 //m_nSessionIndex(nSessionIndex)23 //{24 //}25 // 26 // //IUnknown27 //STDMETHOD(QueryInterface)(REFIID, VOID** ppvObject)28 //{29 //_tprintf(_T("m_nSessionIndex %d, QueryInterface\n"));30 //return E_NOINTERFACE;31 //}32 //STDMETHOD_(ULONG, AddRef)()33 //{34 //return 2;35 //}36 //STDMETHOD_(ULONG, Release)()37 //{38 //return 1;39 //}40 // 41 // //IAudioSessionEvents42 //STDMETHOD(OnDisplayNameChanged)(LPCWSTR NewDisplayName, LPCGUID EventContext)43 //{44 //return S_OK;45 //}46 //STDMETHOD(OnIconPathChanged)(LPCWSTR NewIconPath, LPCGUID EventContext)47 //{48 //return S_OK;49 //}50 //STDMETHOD(OnSimpleVolumeChanged)(float NewVolume, BOOL NewMute, LPCGUID EventContext)51 //{52 //_tprintf(_T("m_nSessionIndex %d, NewVolume %.2f, NewMute %d\n"), m_nSessionIndex, NewVolume, NewMute);53 //return S_OK;54 //}55 //STDMETHOD(OnChannelVolumeChanged)(DWORD ChannelCount, float NewChannelVolumeArray[], DWORD ChangedChannel, LPCGUID EventContext)56 //{57 //_tprintf(_T("m_nSessionIndex %d, ChannelCount %d, NewChannelVolumeArray][ { %.2f, ... }, ChangedChannel %d\n"), m_nSessionIndex, ChannelCount, NewChannelVolumeArray[0], ChangedChannel);58 //return S_OK;59 //}60 //STDMETHOD(OnGroupingParamChanged)(LPCGUID NewGroupingParam, LPCGUID EventContext)61 //{62 //return S_OK;63 //}64 //STDMETHOD(OnStateChanged)(AudioSessionState NewState)65 //{66 //return S_OK;67 //}68 //STDMETHOD(OnSessionDisconnected)(AudioSessionDisconnectReason DisconnectReason)69 //{70 //return S_OK;71 //}72 //};13 class CNotification : 14 public IAudioSessionEvents 15 { 16 private: 17 INT m_nSessionIndex; 18 19 public: 20 // CNotification 21 CNotification(INT nSessionIndex) : 22 m_nSessionIndex(nSessionIndex) 23 { 24 } 25 26 // IUnknown 27 STDMETHOD(QueryInterface)(REFIID, VOID** ppvObject) 28 { 29 _tprintf(_T("m_nSessionIndex %d, QueryInterface\n")); 30 return E_NOINTERFACE; 31 } 32 STDMETHOD_(ULONG, AddRef)() 33 { 34 return 2; 35 } 36 STDMETHOD_(ULONG, Release)() 37 { 38 return 1; 39 } 40 41 // IAudioSessionEvents 42 STDMETHOD(OnDisplayNameChanged)(LPCWSTR NewDisplayName, LPCGUID EventContext) 43 { 44 return S_OK; 45 } 46 STDMETHOD(OnIconPathChanged)(LPCWSTR NewIconPath, LPCGUID EventContext) 47 { 48 return S_OK; 49 } 50 STDMETHOD(OnSimpleVolumeChanged)(float NewVolume, BOOL NewMute, LPCGUID EventContext) 51 { 52 _tprintf(_T("m_nSessionIndex %d, NewVolume %.2f, NewMute %d\n"), m_nSessionIndex, NewVolume, NewMute); 53 return S_OK; 54 } 55 STDMETHOD(OnChannelVolumeChanged)(DWORD ChannelCount, float NewChannelVolumeArray[], DWORD ChangedChannel, LPCGUID EventContext) 56 { 57 _tprintf(_T("m_nSessionIndex %d, ChannelCount %d, NewChannelVolumeArray][ { %.2f, ... }, ChangedChannel %d\n"), m_nSessionIndex, ChannelCount, NewChannelVolumeArray[0], ChangedChannel); 58 return S_OK; 59 } 60 STDMETHOD(OnGroupingParamChanged)(LPCGUID NewGroupingParam, LPCGUID EventContext) 61 { 62 return S_OK; 63 } 64 STDMETHOD(OnStateChanged)(AudioSessionState NewState) 65 { 66 return S_OK; 67 } 68 STDMETHOD(OnSessionDisconnected)(AudioSessionDisconnectReason DisconnectReason) 69 { 70 return S_OK; 71 } 72 }; 73 73 74 74 int _tmain(int argc, _TCHAR* argv[]) … … 86 86 __C(pAudioSessionEnumerator->GetCount(&nSessionCount)); 87 87 _tprintf(_T("nSessionCount %d\n"), nSessionCount); 88 //for(INT nSessionIndex = 0; nSessionIndex < nSessionCount; nSessionIndex++)89 //{90 //CComPtr<IAudioSessionControl> pSessionControl;91 //if(FAILED(pAudioSessionEnumerator->GetSession(nSessionIndex, &pSessionControl)))92 //continue;93 //CComHeapPtr<WCHAR> pszDisplayName;94 //__C(pSessionControl->GetDisplayName(&pszDisplayName));95 //_tprintf(_T("nSessionIndex %d, pszDisplayName \"%s\"\n"), nSessionIndex, CString(pszDisplayName));96 //CNotification* pNotification = new CNotification(nSessionIndex);97 //__C(pSessionControl->RegisterAudioSessionNotification(pNotification));98 //}88 for(INT nSessionIndex = 0; nSessionIndex < nSessionCount; nSessionIndex++) 89 { 90 CComPtr<IAudioSessionControl> pSessionControl; 91 if(FAILED(pAudioSessionEnumerator->GetSession(nSessionIndex, &pSessionControl))) 92 continue; 93 CComHeapPtr<WCHAR> pszDisplayName; 94 __C(pSessionControl->GetDisplayName(&pszDisplayName)); 95 _tprintf(_T("nSessionIndex %d, pszDisplayName \"%s\"\n"), nSessionIndex, CString(pszDisplayName)); 96 CNotification* pNotification = new CNotification(nSessionIndex); 97 __C(pSessionControl->RegisterAudioSessionNotification(pNotification)); 98 } 99 99 for(; ; ) 100 100 { … … 105 105 continue; 106 106 CComQIPtr<IAudioMeterInformation> pMeterInformation = pSessionControl; 107 DWORD nMask; 108 __C(pMeterInformation->QueryHardwareSupport(&nMask)); 107 109 FLOAT fPeakValue; 108 110 __C(pMeterInformation->GetPeakValue(&fPeakValue)); 109 _tprintf(_T("nSessionIndex %d, fPeakValue %.2f \n"), nSessionIndex, fPeakValue);111 _tprintf(_T("nSessionIndex %d, fPeakValue %.2f, nMask 0x%x\n"), nSessionIndex, fPeakValue, nMask); 110 112 } 111 113 Sleep(1000);
Note: See TracChangeset
for help on using the changeset viewer.