@@ -42,44 +42,14 @@ friend LLSingleton<VolumeCatcherImpl>;
42
42
VolumeCatcherImpl ();
43
43
~VolumeCatcherImpl ();
44
44
45
- typedef void (WINAPI *set_volume_func_t )(F32);
46
- typedef void (WINAPI *set_mute_func_t )(bool );
47
-
48
- set_volume_func_t mSetVolumeFunc ;
49
- set_mute_func_t mSetMuteFunc ;
50
-
51
- // tests if running on Vista, 7, 8 + once in CTOR
52
- bool isWindowsVistaOrHigher ();
53
-
54
45
F32 mVolume ;
55
46
F32 mPan ;
56
- bool mSystemIsVistaOrHigher ;
57
47
};
58
48
59
- bool VolumeCatcherImpl::isWindowsVistaOrHigher ()
60
- {
61
- OSVERSIONINFO osvi;
62
- ZeroMemory (&osvi, sizeof (OSVERSIONINFO));
63
- osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFO);
64
- GetVersionEx (&osvi);
65
- return osvi.dwMajorVersion >= 6 ;
66
- }
67
-
68
49
VolumeCatcherImpl::VolumeCatcherImpl ()
69
50
: mVolume(1 .0f ), // default volume is max
70
51
mPan(0 .f) // default pan is centered
71
52
{
72
- mSystemIsVistaOrHigher = isWindowsVistaOrHigher ();
73
-
74
- if ( ! mSystemIsVistaOrHigher )
75
- {
76
- HMODULE handle = ::LoadLibrary (L" winmm.dll" );
77
- if (handle)
78
- {
79
- mSetVolumeFunc = (set_volume_func_t )::GetProcAddress (handle, " setPluginVolume" );
80
- mSetMuteFunc = (set_mute_func_t )::GetProcAddress (handle, " setPluginMute" );
81
- }
82
- }
83
53
}
84
54
85
55
VolumeCatcherImpl::~VolumeCatcherImpl ()
@@ -90,26 +60,12 @@ void VolumeCatcherImpl::setVolume(F32 volume)
90
60
{
91
61
mVolume = volume;
92
62
93
- if ( mSystemIsVistaOrHigher )
94
- {
95
- // set both left/right to same volume
96
- // TODO: use pan value to set independently
97
- DWORD left_channel = (DWORD)(mVolume * 65535 .0f );
98
- DWORD right_channel = (DWORD)(mVolume * 65535 .0f );
99
- DWORD hw_volume = left_channel << 16 | right_channel;
100
- ::waveOutSetVolume (NULL , hw_volume);
101
- }
102
- else
103
- {
104
- if (mSetMuteFunc )
105
- {
106
- mSetMuteFunc (volume == 0 .f );
107
- }
108
- if (mSetVolumeFunc )
109
- {
110
- mSetVolumeFunc (mVolume );
111
- }
112
- }
63
+ // set both left/right to same volume
64
+ // TODO: use pan value to set independently
65
+ DWORD left_channel = (DWORD)(mVolume * 65535 .0f );
66
+ DWORD right_channel = (DWORD)(mVolume * 65535 .0f );
67
+ DWORD hw_volume = left_channel << 16 | right_channel;
68
+ ::waveOutSetVolume (NULL , hw_volume);
113
69
}
114
70
115
71
void VolumeCatcherImpl::setPan (F32 pan)
0 commit comments