Changeset 434:bb6e46319d7b in mediastreamer2
- Timestamp:
- Apr 24, 2009 3:29:14 PM (4 years ago)
- Branch:
- default
- File:
-
- 1 edited
-
linphone/mediastreamer2/src/winsnd2.c (modified) (15 diffs)
Legend:
- Unmodified
- Added
- Removed
-
linphone/mediastreamer2/src/winsnd2.c
r412 r434 17 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 18 */ 19 #if !defined(_WIN32_WCE) / /Allready defined for wince19 #if !defined(_WIN32_WCE) /* Allready defined for wince */ 20 20 #define UNICODE 21 21 #endif … … 32 32 33 33 #if defined(_WIN32_WCE) 34 / /#define DISABLE_SPEEX35 / /#define WCE_OPTICON_WORKAROUND 100034 /*#define DISABLE_SPEEX */ 35 /*#define WCE_OPTICON_WORKAROUND 1000 */ 36 36 #endif 37 37 #ifndef DISABLE_SPEEX … … 58 58 DWORD dwMixerHandle; 59 59 MIXERLINE MixerLine; 60 MIXERLINE Line; 61 UINT uLineIndex; 60 62 61 63 MMRESULT mr = MMSYSERR_NOERROR; 62 64 DWORD dwVolume = 0xFFFF; 63 65 dwVolume = ((0xFFFF) * percent) / 100; 64 65 66 66 67 switch(e){ … … 101 102 ms_message("ComponentType: %d\n", MixerLine.dwComponentType); 102 103 103 MIXERLINE Line; 104 for ( UINT uLineIndex = 0; uLineIndex < MixerLine.cConnections; uLineIndex++) 104 for (uLineIndex = 0; uLineIndex < MixerLine.cConnections; uLineIndex++) 105 105 { 106 106 memset( &Line, 0, sizeof(MIXERLINE) ); … … 143 143 { 144 144 /* unmute */ 145 / / Find a mute control, if any, of the microphone line146 147 LPMIXERCONTROL pmxctrl = (LPMIXERCONTROL)malloc(sizeof MIXERCONTROL);145 /* Find a mute control, if any, of the microphone line */ 146 147 LPMIXERCONTROL pmxctrl = (LPMIXERCONTROL)malloc(sizeof(MIXERCONTROL)); 148 148 MIXERLINECONTROLS mxlctrl = {sizeof mxlctrl, Line.dwLineID, MIXERCONTROL_CONTROLTYPE_MUTE, 1, sizeof(MIXERCONTROL), pmxctrl}; 149 149 if(!mixerGetLineControls((HMIXEROBJ)dwMixerHandle, &mxlctrl, MIXER_GETLINECONTROLSF_ONEBYTYPE)){ 150 // Found, so proceed 151 DWORD cChannels = Line.cChannels; 150 DWORD cChannels = Line.cChannels; 151 LPMIXERCONTROLDETAILS_BOOLEAN pbool; 152 MIXERCONTROLDETAILS mxcd; 153 152 154 if (MIXERCONTROL_CONTROLF_UNIFORM & pmxctrl->fdwControl) 153 155 cChannels = 1; 154 LPMIXERCONTROLDETAILS_BOOLEAN pbool = 155 (LPMIXERCONTROLDETAILS_BOOLEAN) malloc(cChannels * sizeof 156 MIXERCONTROLDETAILS_BOOLEAN); 157 MIXERCONTROLDETAILS mxcd = {sizeof(mxcd), pmxctrl->dwControlID, 158 cChannels, (HWND)0, 159 sizeof MIXERCONTROLDETAILS_BOOLEAN, (LPVOID) pbool}; 156 pbool = (LPMIXERCONTROLDETAILS_BOOLEAN) malloc(cChannels * sizeof( 157 MIXERCONTROLDETAILS_BOOLEAN)); 158 159 mxcd.cbStruct = sizeof(mxcd); 160 mxcd.dwControlID = pmxctrl->dwControlID; 161 mxcd.cChannels = cChannels; 162 mxcd.hwndOwner = (HWND)0; 163 mxcd.cbDetails = sizeof(MIXERCONTROLDETAILS_BOOLEAN); 164 mxcd.paDetails = (LPVOID) pbool; 160 165 161 166 mixerGetControlDetails((HMIXEROBJ)dwMixerHandle, &mxcd, 162 167 MIXER_SETCONTROLDETAILSF_VALUE); 163 / / Unmute the microphone line (for both channels)164 pbool[0].fValue = pbool[cChannels - 1].fValue = 0; / /0 -> unmute;168 /* Unmute the microphone line (for both channels) */ 169 pbool[0].fValue = pbool[cChannels - 1].fValue = 0; /* 0 -> unmute; */ 165 170 mixerSetControlDetails((HMIXEROBJ)dwMixerHandle, &mxcd, 166 171 MIXER_SETCONTROLDETAILSF_VALUE); … … 178 183 if(!mixerGetLineControls((HMIXEROBJ)dwMixerHandle, &mxlctrl, 179 184 MIXER_GETLINECONTROLSF_ONEBYTYPE)){ 180 // Found! 181 DWORD cChannels = Line.cChannels; 185 DWORD cChannels = Line.cChannels; 186 LPMIXERCONTROLDETAILS_UNSIGNED pUnsigned; 187 MIXERCONTROLDETAILS mxcd; 182 188 if (MIXERCONTROL_CONTROLF_UNIFORM & pmxctrl->fdwControl) 183 189 cChannels = 1; 184 LPMIXERCONTROLDETAILS_UNSIGNEDpUnsigned =190 pUnsigned = 185 191 (LPMIXERCONTROLDETAILS_UNSIGNED) 186 malloc(cChannels * sizeof MIXERCONTROLDETAILS_UNSIGNED); 187 MIXERCONTROLDETAILS mxcd = {sizeof(mxcd), pmxctrl->dwControlID, 188 cChannels, (HWND)0, 189 sizeof MIXERCONTROLDETAILS_UNSIGNED, (LPVOID) pUnsigned}; 192 malloc(cChannels * sizeof(MIXERCONTROLDETAILS_UNSIGNED)); 193 194 mxcd.cbStruct = sizeof(mxcd); 195 mxcd.dwControlID = pmxctrl->dwControlID; 196 mxcd.cChannels = cChannels; 197 mxcd.hwndOwner = (HWND)0; 198 mxcd.cbDetails = sizeof(MIXERCONTROLDETAILS_UNSIGNED); 199 mxcd.paDetails = (LPVOID) pUnsigned; 200 190 201 mixerGetControlDetails((HMIXEROBJ)dwMixerHandle, &mxcd, 191 202 MIXER_SETCONTROLDETAILSF_VALUE); 192 // Set the volume to the middle (for both channels as needed)193 203 pUnsigned[0].dwValue = pUnsigned[cChannels - 1].dwValue 194 204 = pmxctrl->Bounds.dwMaximum*percent/100; 195 // = (pmxctrl->Bounds.dwMinimum+pmxctrl->Bounds.dwMaximum)/2;196 205 mixerSetControlDetails((HMIXEROBJ)dwMixerHandle, &mxcd, 197 206 MIXER_SETCONTROLDETAILSF_VALUE); … … 204 213 } 205 214 mixerClose( (HMIXER)dwMixerHandle ); 206 //mr = waveInSetVolume((HWAVEIN)d->in_devid, dwVolume);207 215 if (mr != MMSYSERR_NOERROR) 208 216 { … … 213 221 case MS_SND_CARD_PLAYBACK: 214 222 { 223 MIXERLINECONTROLS mlc = {0}; 224 MIXERCONTROL mc = {0}; 225 MIXERCONTROLDETAILS mcd = {0}; 226 MIXERCONTROLDETAILS_UNSIGNED mcdu = {0}; 227 215 228 mr = mixerGetID( (HMIXEROBJ)d->out_devid, &uMixerID, MIXER_OBJECTF_WAVEOUT ); 216 229 if ( mr != MMSYSERR_NOERROR ) … … 240 253 ms_message("ComponentType: %d\n", MixerLine.dwComponentType); 241 254 242 MIXERLINECONTROLS mlc = {0};243 MIXERCONTROL mc = {0};244 255 mlc.cbStruct = sizeof(MIXERLINECONTROLS); 245 256 mlc.dwLineID = MixerLine.dwLineID; … … 252 263 253 264 254 MIXERCONTROLDETAILS mcd = {0}; 255 MIXERCONTROLDETAILS_UNSIGNED mcdu = {0}; 256 mcdu.dwValue = 65535*percent/100; // the volume is a number between 0 and 65535 265 mcdu.dwValue = 65535*percent/100; /* the volume is a number between 0 and 65535 */ 257 266 258 267 mcd.cbStruct = sizeof(MIXERCONTROLDETAILS); … … 265 274 &mcd, MIXER_SETCONTROLDETAILSF_VALUE); 266 275 267 //mr = waveOutSetVolume((HWAVEOUT)d->out_devid, dwVolume);268 276 if (mr != MMSYSERR_NOERROR) 269 277 { … … 396 404 WideCharToMultiByte(CP_UTF8,0,incaps.szPname,-1,szName,256,0,0); 397 405 add_or_update_card(m,szName,item,-1,MS_SND_CARD_CAP_CAPTURE); 398 //add_or_update_card(m,incaps.szPname,item,-1,MS_SND_CARD_CAP_CAPTURE);399 406 #endif 400 407 } … … 411 418 WideCharToMultiByte(CP_UTF8,0,outcaps.szPname,-1,szName,256,0,0); 412 419 add_or_update_card(m,szName,-1,item,MS_SND_CARD_CAP_PLAYBACK); 413 //add_or_update_card(m,outcaps.szPname,-1,item,MS_SND_CARD_CAP_PLAYBACK);414 420 #endif 415 421 } … … 452 458 453 459 460 //#define _TRUE_TIME 454 461 #ifndef _TRUE_TIME 455 462 static uint64_t winsnd_get_cur_time( void *data){ … … 962 969 } 963 970 if (i==d->stat_minimumbuffer){ 964 / /ms_error("winsnd_write_process: All buffers are busy.");971 /* ms_error("winsnd_write_process: All buffers are busy."); */ 965 972 #ifndef DISABLE_SPEEX 966 973 if (d->pst==NULL)
Note: See TracChangeset
for help on using the changeset viewer.
