History

additional audio input device matching logic

Ge Wang committed 3 years ago

Commit 501e5df1 parent 25090c12 files · +23 −7Browse files

Unified · Split

2 files
  1. src/host/chuck_audio.cpp +20 −4
  2. src/visual-studio/chuck.vcxproj +3 −3
src/host/chuck_audio.cpp+20−4
@@ -661,6 +661,7 @@ t_CKBOOL ChuckAudio::initialize( t_CKUINT dac_device, · 660 unmodified lines
661 if( useDefaultOut )661 if( useDefaultOut )
662 {662 {
663 // get the default663 // get the default
664 // FYI: getDefaultInputDevice returns 0 either as a valid index OR if no default/any devices
664 m_dac_n = m_rtaudio->getDefaultOutputDevice();665 m_dac_n = m_rtaudio->getDefaultOutputDevice();
665 }666 }
666 else667 else
@@ -777,10 +778,11 @@ t_CKBOOL ChuckAudio::initialize( t_CKUINT dac_device, · 110 unmodified lines
777 if( useDefaultIn )778 if( useDefaultIn )
778 {779 {
779 // get default input device780 // get default input device
781 // FYI getDefaultInputDevice returns 0 either as a valid index OR if no default/any devices
780 m_adc_n = m_rtaudio->getDefaultInputDevice();782 m_adc_n = m_rtaudio->getDefaultInputDevice();
781
782 // ensure correct channel count if default device is requested783 // ensure correct channel count if default device is requested
783 RtAudio::DeviceInfo device_info = m_rtaudio->getDeviceInfo((unsigned int)m_adc_n);784 RtAudio::DeviceInfo device_info = m_rtaudio->getDeviceInfo((unsigned int)m_adc_n);
785
784 // remember786 // remember
785 t_CKUINT inChannelsRequested = m_num_channels_in;787 t_CKUINT inChannelsRequested = m_num_channels_in;
786 788
@@ -818,22 +820,30 @@ t_CKBOOL ChuckAudio::initialize( t_CKUINT dac_device, · 31 unmodified lines
818 // will first check if the default input device has only 1 channel820 // will first check if the default input device has only 1 channel
819 // while we are requesting 2 channels...821 // while we are requesting 2 channels...
820 // -822 // -
823
821 // if non-zero input channels824 // if non-zero input channels
822 if( device_info.inputChannels > 0 )825 if( device_info.inputChannels > 0 )
823 {826 {
824 // find first device with *exactly* the requested channel count827 // find a device with *exactly* the current device input channels
825 m_adc_n = findMatchingInputDevice(m_rtaudio, device_info.inputChannels, sample_rate, FALSE );828 m_adc_n = findMatchingInputDevice( m_rtaudio, device_info.inputChannels, sample_rate, FALSE );
829 }
830 else // if device input channel count is 0
831 {
832 // find a device with *exactly* the requested channel count
833 m_adc_n = findMatchingInputDevice( m_rtaudio, m_num_channels_in, sample_rate, FALSE);
826 }834 }
827 835
828 // check if match836 // check if match
829 if( m_adc_n >= 0 )837 if( m_adc_n >= 0 )
830 {838 {
839 // get updated device info (since m_adc_n may be updated by this point)
840 device_info = m_rtaudio->getDeviceInfo((unsigned int)m_adc_n);
831 // update the request input channel request841 // update the request input channel request
832 m_num_channels_in = device_info.inputChannels;842 m_num_channels_in = device_info.inputChannels;
833 }843 }
834 else844 else
835 {845 {
836 // find first device with *at least* the requested channel count846 // find a device with *at least* the requested channel count
837 m_adc_n = findMatchingInputDevice(m_rtaudio, m_num_channels_in, sample_rate, TRUE );847 m_adc_n = findMatchingInputDevice(m_rtaudio, m_num_channels_in, sample_rate, TRUE );
838 848
839 // changed 1.3.1.2 (ge): for input, if no match found by this point, we just gonna try to open half-duplex849 // changed 1.3.1.2 (ge): for input, if no match found by this point, we just gonna try to open half-duplex
@@ -841,6 +851,12 @@ t_CKBOOL ChuckAudio::initialize( t_CKUINT dac_device, · 1 unmodified line
841 {851 {
842 // set to 0852 // set to 0
843 m_num_channels_in = 0;853 m_num_channels_in = 0;
854 // log
855 EM_log( CK_LOG_SEVERE, "cannot find compatible audio input device..." );
856 EM_pushlog();
857 EM_log(CK_LOG_SEVERE, "defaulting to half-duplex (no audio input)...");
858 EM_poplog();
859
844 // problem finding audio devices, most likely860 // problem finding audio devices, most likely
845 // EM_error2( 0, "unable to find audio input device with requested channel count (%i)...",861 // EM_error2( 0, "unable to find audio input device with requested channel count (%i)...",
846 // m_num_channels_in);862 // m_num_channels_in);
src/visual-studio/chuck.vcxproj+3−3
@@ -483,7 +483,7 @@ · 482 unmodified lines
483 <WarningLevel>Level3</WarningLevel>483 <WarningLevel>Level3</WarningLevel>
484 <Optimization>Disabled</Optimization>484 <Optimization>Disabled</Optimization>
485 <PreprocessorDefinitions>__WINDOWS_MODERN__;__PLATFORM_WIN32__;__WINDOWS_DS__;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>485 <PreprocessorDefinitions>__WINDOWS_MODERN__;__PLATFORM_WIN32__;__WINDOWS_DS__;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
486 <AdditionalIncludeDirectories>.</AdditionalIncludeDirectories>486 <AdditionalIncludeDirectories>..\host\RtAudio\include;.</AdditionalIncludeDirectories>
487 </ClCompile>487 </ClCompile>
488 <Link>488 <Link>
489 <SubSystem>Console</SubSystem>489 <SubSystem>Console</SubSystem>
@@ -498,7 +498,7 @@ · 8 unmodified lines
498 <WarningLevel>Level3</WarningLevel>498 <WarningLevel>Level3</WarningLevel>
499 <Optimization>Disabled</Optimization>499 <Optimization>Disabled</Optimization>
500 <PreprocessorDefinitions>__WINDOWS_MODERN__;__PLATFORM_WIN32__;__WINDOWS_DS__;WIN32;_DEBUG;_CONSOLE;__WINDOWS_ASIO__;__WINDOWS_WASAPI__;%(PreprocessorDefinitions)</PreprocessorDefinitions>500 <PreprocessorDefinitions>__WINDOWS_MODERN__;__PLATFORM_WIN32__;__WINDOWS_DS__;WIN32;_DEBUG;_CONSOLE;__WINDOWS_ASIO__;__WINDOWS_WASAPI__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
501 <AdditionalIncludeDirectories>C:\Users\nick\Documents\chuck\src\host\RtAudio\include;.</AdditionalIncludeDirectories>501 <AdditionalIncludeDirectories>..\host\RtAudio\include;.</AdditionalIncludeDirectories>
502 </ClCompile>502 </ClCompile>
503 <Link>503 <Link>
504 <SubSystem>Console</SubSystem>504 <SubSystem>Console</SubSystem>
@@ -549,4 +549,4 @@ · 44 unmodified lines
549 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />549 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
550 <ImportGroup Label="ExtensionTargets">550 <ImportGroup Label="ExtensionTargets">
551 </ImportGroup>551 </ImportGroup>
552</Project>552</Project>

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t