| 291 | } |
---|
| 292 | |
---|
| 293 | bool |
---|
| 294 | SaffireProDevice::setSamplingFrequencyDo( int s ) |
---|
| 295 | { |
---|
| 296 | uint32_t value; |
---|
| 297 | switch(s) { |
---|
| 298 | case 44100: value=FOCUSRITE_CMD_SAMPLERATE_44K1;break; |
---|
| 299 | case 48000: value=FOCUSRITE_CMD_SAMPLERATE_48K;break; |
---|
| 300 | case 88200: value=FOCUSRITE_CMD_SAMPLERATE_88K2;break; |
---|
| 301 | case 96000: value=FOCUSRITE_CMD_SAMPLERATE_96K;break; |
---|
| 302 | case 176400: value=FOCUSRITE_CMD_SAMPLERATE_176K4;break; |
---|
| 303 | case 192000: value=FOCUSRITE_CMD_SAMPLERATE_192K;break; |
---|
| 304 | default: |
---|
| 305 | debugWarning("Unsupported samplerate: %d\n", s); |
---|
| 306 | return false; |
---|
| 307 | } |
---|
| 308 | |
---|
| 309 | |
---|
| 310 | if ( !setSpecificValue(FOCUSRITE_CMD_ID_SAMPLERATE, value) ) { |
---|
| 311 | debugError( "setSpecificValue failed\n" ); |
---|
| 312 | return false; |
---|
| 313 | } |
---|
| 314 | return true; |
---|
318 | | uint32_t value; |
---|
319 | | switch(s) { |
---|
320 | | case 44100: value=FOCUSRITE_CMD_SAMPLERATE_44K1;break; |
---|
321 | | case 48000: value=FOCUSRITE_CMD_SAMPLERATE_48K;break; |
---|
322 | | case 88200: value=FOCUSRITE_CMD_SAMPLERATE_88K2;break; |
---|
323 | | case 96000: value=FOCUSRITE_CMD_SAMPLERATE_96K;break; |
---|
324 | | case 176400: value=FOCUSRITE_CMD_SAMPLERATE_176K4;break; |
---|
325 | | case 192000: value=FOCUSRITE_CMD_SAMPLERATE_192K;break; |
---|
326 | | default: |
---|
327 | | debugWarning("Unsupported samplerate: %d\n", s); |
---|
328 | | return false; |
---|
| 335 | if(!setSamplingFrequencyDo( s )) { |
---|
| 336 | debugWarning("setSamplingFrequencyDo failed\n"); |
---|
330 | | |
---|
331 | | |
---|
332 | | if ( !setSpecificValue(FOCUSRITE_CMD_ID_SAMPLERATE, value) ) { |
---|
333 | | debugError( "setSpecificValue failed\n" ); |
---|
334 | | return false; |
---|
| 338 | |
---|
| 339 | // wait for a while |
---|
| 340 | usleep(100 * 1000); |
---|
| 341 | int verify=getSamplingFrequency(); |
---|
| 342 | |
---|
| 343 | debugOutput( DEBUG_LEVEL_NORMAL, |
---|
| 344 | "setSampleRate: requested samplerate %d, device now has %d\n", s, verify ); |
---|
| 345 | |
---|
| 346 | if (s != verify) { |
---|
| 347 | debugWarning("setting samplerate failed. trying again...\n"); |
---|
| 348 | if(!setSamplingFrequencyDo( s )) { |
---|
| 349 | debugWarning("setSamplingFrequencyDo failed\n"); |
---|
| 350 | } |
---|
| 351 | |
---|
| 352 | // wait for a while |
---|
| 353 | usleep(100 * 1000); |
---|
| 354 | verify=getSamplingFrequency(); |
---|
| 355 | debugOutput( DEBUG_LEVEL_NORMAL, |
---|
| 356 | "setSampleRate (2): requested samplerate %d, device now has %d\n", s, verify ); |
---|
| 357 | return (s==verify); |
---|