diff --git a/src/anbox/audio/alsa_helper.cpp b/src/anbox/audio/alsa_helper.cpp index 4f295a35c13e4698ef7b5e788d70943b716bf6c0..b1a3dd4ca625951e215803968d100f476e5b5b73 100644 --- a/src/anbox/audio/alsa_helper.cpp +++ b/src/anbox/audio/alsa_helper.cpp @@ -309,93 +309,8 @@ snd_pcm_uframes_t AlsaHelper::get_period_frames_bytes() const std::string AlsaHelper::get_usb_audio_device_name() const { - std::string deviceName = "default"; - snd_ctl_t *handle = nullptr; - int err = -1; - snd_ctl_card_info_t *info = nullptr; - snd_ctl_card_info_alloca(&info); - int card = -1; - if (snd_card_next(&card) < 0 || card < 0) { - return deviceName; - } - int nameMaxLen = 32; - while (card >= 0) { - char name[nameMaxLen]; - snprintf(name, nameMaxLen, "hw:%d", card); - if ((err = snd_ctl_open(&handle, name, 0)) < 0) { - if (snd_card_next(&card) < 0) { - break; - } - } - if ((err = snd_ctl_card_info(handle, info)) < 0) { - snd_ctl_close(handle); - if (snd_card_next(&card) < 0) { - break; - } - } - int dev = -1; - while (true) { - snd_ctl_pcm_next_device(handle, &dev); - if (dev < 0) { - break; - } - if ((snd_ctl_card_info_get_id(info) != nullptr) && (snd_ctl_card_info_get_name(info)!= nullptr)) { - std::string card_info_id(snd_ctl_card_info_get_id(info)); - std::string card_info_name(snd_ctl_card_info_get_name(info)); - if ((card_info_id == "Audio") && (card_info_name == "USB Audio")) { - deviceName = "hw:" + std::to_string(card) + "," + std::to_string(dev); - if (validateAudioDevice(deviceName)) { - snd_ctl_close(handle); - return deviceName; - } - } - } - } - snd_ctl_close(handle); - if (snd_card_next(&card) < 0) { - break; - } - } - return deviceName; + return "pulse";//using PulseAudio } -bool AlsaHelper::validateAudioDevice(std::string name) const -{ - snd_pcm_t *handle = nullptr; - snd_pcm_hw_params_t *params = nullptr; - unsigned int rate = 0; - float lowLimit = 0.95; - float upLimit = 1.05; - hwparams specHwparams = { - .format = SND_PCM_FORMAT_S16_LE, - .channels = CHANELTYPE_MONO, - .rate = DEFAULT_SAMPLE_RATE, - }; - if (snd_pcm_open(&handle, name.c_str(), SND_PCM_STREAM_CAPTURE, 0) < 0) { - return false; - } - snd_pcm_hw_params_alloca(¶ms); - if (snd_pcm_hw_params_any(handle, params) < 0) { - snd_pcm_close(handle); - return false; - } - if (snd_pcm_hw_params_set_format(handle, params, specHwparams.format) < 0) { - snd_pcm_close(handle); - return false; - } - if (snd_pcm_hw_params_set_channels(handle, params, specHwparams.channels) < 0) { - snd_pcm_close(handle); - return false; - } - rate = specHwparams.rate; - snd_pcm_hw_params_set_rate_near(handle, params, &specHwparams.rate, 0); - if (static_cast(rate * upLimit) < specHwparams.rate - || static_cast(rate * lowLimit) > specHwparams.rate) { - snd_pcm_close(handle); - return false; - } - snd_pcm_close(handle); - return true; -} } } diff --git a/src/anbox/audio/alsa_helper.h b/src/anbox/audio/alsa_helper.h index ada8158010dd37cc7756f36bbe61e44d44b096a0..3ed830fee21ec493c464369bb1ee6d7c21103ed8 100644 --- a/src/anbox/audio/alsa_helper.h +++ b/src/anbox/audio/alsa_helper.h @@ -115,7 +115,6 @@ private: int xrun(void); int suspend(void); void compute_max_peak(char *data, size_t count) const; - bool validateAudioDevice(std::string name) const; }; } }