{
pcm_handle pcm_h = nullptr;
- string card, dev;
- int rate = default_rate, channels = default_channels;
+ MockDeviceMapParser parser;
+ EXPECT_CALL(parser, get_playback())
+ .Times(1)
+ .WillOnce(testing::Return(make_tuple("0", "0", AudioHalTest::default_rate, AudioHalTest::default_channels)));
- CDeviceMapParser().get_playback(card, dev, rate, channels);
+ auto [ card, device, rate, channels ] = parser.get_playback();
m_spec = {
- AUDIO_SAMPLE_S16LE, static_cast<uint32_t>(rate), static_cast<uint8_t>(channels)
+ AUDIO_SAMPLE_S16LE,
+ static_cast<uint32_t>(rate),
+ static_cast<uint8_t>(channels)
};
SetRouteToSpeaker();
- int32_t ret = hal_audio_pcm_open(m_h, card.c_str(), dev.c_str(),
- AUDIO_DIRECTION_OUT, &m_spec,
- GetDefaultFrames(), default_periods, &pcm_h);
+ int32_t ret = hal_audio_pcm_open(m_h, card.c_str(), device.c_str(),
+ AUDIO_DIRECTION_OUT, &m_spec,
+ GetDefaultFrames(), default_periods, &pcm_h);
ASSERT_EQ(ret, AUDIO_RET_OK);
int pcm_fd = -1;
// check for fd
pcm_handle pcm_h = nullptr;
- string card, dev;
- int rate = default_rate, channels = default_channels;
- CDeviceMapParser().get_playback(card, dev, rate, channels);
+ auto [ card, device, rate, channels ] = CDeviceMapParser().get_playback();
m_spec = {
- AUDIO_SAMPLE_S16LE, static_cast<uint32_t>(rate), static_cast<uint8_t>(channels)
+ AUDIO_SAMPLE_S16LE,
+ static_cast<uint32_t>(rate),
+ static_cast<uint8_t>(channels)
};
SetRouteToSpeaker();
- ret = hal_audio_pcm_open(m_h, card.c_str(), dev.c_str(),
- AUDIO_DIRECTION_OUT, &m_spec,
- GetDefaultFrames(), default_periods, &pcm_h);
+ ret = hal_audio_pcm_open(m_h, card.c_str(), device.c_str(),
+ AUDIO_DIRECTION_OUT, &m_spec,
+ GetDefaultFrames(), default_periods, &pcm_h);
ASSERT_EQ(ret, AUDIO_RET_OK);
ret = hal_audio_pcm_get_fd(m_h, pcm_h, nullptr);
TEST_F(AudioHalTest, PcmOpenWriteCloseP)
{
pcm_handle pcm_h = nullptr;
- string card, dev;
- int rate = default_rate, channels = default_channels;
- CDeviceMapParser().get_playback(card, dev, rate, channels);
+ auto [ card, device, rate, channels ] = CDeviceMapParser().get_playback();
- if (card.empty() || dev.empty()) {
- cerr << "skip due to no playback device [card: " << card << " / device: " << dev << "]" << endl;
- return; // FIXME : update with GTEST_SKIP() once supported
+ if (card.empty() || device.empty()) {
+ cerr << "skip due to no capture card or device" << endl;
+ return; // FIXME : replace with GTEST_SKIP() once supported
}
m_spec = {
- AUDIO_SAMPLE_S16LE, static_cast<uint32_t>(rate), static_cast<uint8_t>(channels)
+ AUDIO_SAMPLE_S16LE,
+ static_cast<uint32_t>(rate),
+ static_cast<uint8_t>(channels)
};
SetRouteToSpeaker();
- int32_t ret = hal_audio_pcm_open(m_h, card.c_str(), dev.c_str(),
- AUDIO_DIRECTION_OUT, &m_spec,
- GetDefaultFrames(), default_periods, &pcm_h);
+ int32_t ret = hal_audio_pcm_open(m_h, card.c_str(), device.c_str(),
+ AUDIO_DIRECTION_OUT, &m_spec,
+ GetDefaultFrames(), default_periods, &pcm_h);
+
ASSERT_EQ(ret, AUDIO_RET_OK);
ret = hal_audio_pcm_start(m_h, pcm_h);
TEST_F(AudioHalTest, PcmOpenReadCloseP)
{
pcm_handle pcm_h = nullptr;
- string card, dev;
- int rate = default_rate, channels = default_channels;
- CDeviceMapParser().get_capture(card, dev, rate, channels);
+ auto [ card, device, rate, channels ] = CDeviceMapParser().get_capture();
- if (card.empty() || dev.empty()) {
- cerr << "skip due to no capture device [card: " << card << " / device: " << dev << "]" << endl;
+ if (card.empty() || device.empty()) {
+ cerr << "skip due to no capture card or device" << endl;
return; // FIXME : replace with GTEST_SKIP() once supported
}
m_spec = {
- AUDIO_SAMPLE_S16LE, static_cast<uint32_t>(rate), static_cast<uint8_t>(channels)
+ AUDIO_SAMPLE_S16LE,
+ static_cast<uint32_t>(rate),
+ static_cast<uint8_t>(channels)
};
SetRouteToMicrophone();
- int32_t ret = hal_audio_pcm_open(m_h, card.c_str(), dev.c_str(),
- AUDIO_DIRECTION_IN, &m_spec,
- GetDefaultFrames(), default_periods, &pcm_h);
+ int32_t ret = hal_audio_pcm_open(m_h, card.c_str(), device.c_str(),
+ AUDIO_DIRECTION_IN, &m_spec,
+ GetDefaultFrames(), default_periods, &pcm_h);
ASSERT_EQ(ret, AUDIO_RET_OK);
ret = hal_audio_pcm_start(m_h, pcm_h);
TEST_F(AudioHalTest, PcmSetParamP)
{
pcm_handle pcm_h = nullptr;
- string card, dev;
- int rate = default_rate, channels = default_channels;
- CDeviceMapParser().get_playback(card, dev, rate, channels);
+ auto [ card, device, rate, channels ] = CDeviceMapParser().get_playback();
m_spec = {
- AUDIO_SAMPLE_S16LE, static_cast<uint32_t>(rate), static_cast<uint8_t>(channels)
+ AUDIO_SAMPLE_S16LE,
+ static_cast<uint32_t>(rate),
+ static_cast<uint8_t>(channels)
};
SetRouteToSpeaker();
- int32_t ret = hal_audio_pcm_open(m_h, card.c_str(), dev.c_str(),
- AUDIO_DIRECTION_OUT, &m_spec,
- GetDefaultFrames(), default_periods, &pcm_h);
+ int32_t ret = hal_audio_pcm_open(m_h, card.c_str(), device.c_str(),
+ AUDIO_DIRECTION_OUT, &m_spec,
+ GetDefaultFrames(), default_periods, &pcm_h);
ASSERT_EQ(ret, AUDIO_RET_OK);
ret = hal_audio_pcm_set_params(m_h, pcm_h, AUDIO_DIRECTION_OUT, &m_spec,
TEST_F(AudioHalTest, PcmSetParamN)
{
pcm_handle pcm_h = nullptr;
- string card, dev;
- int rate = default_rate, channels = default_channels;
- CDeviceMapParser().get_playback(card, dev, rate, channels);
+ auto [ card, device, rate, channels ] = CDeviceMapParser().get_playback();
m_spec = {
- AUDIO_SAMPLE_S16LE, static_cast<uint32_t>(rate), static_cast<uint8_t>(channels)
+ AUDIO_SAMPLE_S16LE,
+ static_cast<uint32_t>(rate),
+ static_cast<uint8_t>(channels)
};
SetRouteToSpeaker();
- int32_t ret = hal_audio_pcm_open(m_h, card.c_str(), dev.c_str(),
- AUDIO_DIRECTION_OUT, &m_spec, GetDefaultFrames(), default_periods, &pcm_h);
+ int32_t ret = hal_audio_pcm_open(m_h, card.c_str(), device.c_str(),
+ AUDIO_DIRECTION_OUT, &m_spec,
+ GetDefaultFrames(), default_periods, &pcm_h);
ASSERT_EQ(ret, AUDIO_RET_OK);
ret = hal_audio_pcm_set_params(m_h, nullptr, AUDIO_DIRECTION_OUT, &m_spec, GetDefaultFrames(), default_periods);
TEST_F(AudioHalTest, PcmGetParamP)
{
pcm_handle pcm_h = nullptr;
- string card, dev;
- int rate = default_rate, channels = default_channels;
- CDeviceMapParser().get_playback(card, dev, rate, channels);
+ auto [ card, device, rate, channels ] = CDeviceMapParser().get_playback();
m_spec = {
- AUDIO_SAMPLE_S16LE, static_cast<uint32_t>(rate), static_cast<uint8_t>(channels)
+ AUDIO_SAMPLE_S16LE,
+ static_cast<uint32_t>(rate),
+ static_cast<uint8_t>(channels)
};
- // Precondition
SetRouteToSpeaker();
- int32_t ret = hal_audio_pcm_open(m_h, card.c_str(), dev.c_str(),
- AUDIO_DIRECTION_OUT, &m_spec,
- GetDefaultFrames(), default_periods, &pcm_h);
+
+ int32_t ret = hal_audio_pcm_open(m_h, card.c_str(), device.c_str(),
+ AUDIO_DIRECTION_OUT, &m_spec,
+ GetDefaultFrames(), default_periods, &pcm_h);
ASSERT_EQ(ret, AUDIO_RET_OK);
// Test Body
void CDeviceMapParser::dump_devices()
{
- string card, device_num;
- int rate = -1, channels = -1;
-
- get_playback(card, device_num, rate, channels);
- get_capture(card, device_num, rate, channels);
+ auto playback = get_playback();
+ auto capture = get_capture();
}
-void CDeviceMapParser::get_playback(string& card, string& device_num, int& rate, int& channels)
+DeviceInfo CDeviceMapParser::get_playback()
{
parse_playback();
+ string card, device_num;
+ int rate = default_rate, channels = default_channels;
+
get_device(m_playback.first, card, device_num);
get_params(m_playback.second, rate, channels);
cout << " 1. PLAYBACK" << endl;
cout << " > card=" << card << ", device=" << device_num << endl;
cout << " > rate=" << rate << ", channels=" << channels << endl << endl;
+
+ return make_tuple(card, device_num, rate, channels);
}
-void CDeviceMapParser::get_capture(string& card, string& device_num, int& rate, int& channels)
+DeviceInfo CDeviceMapParser::get_capture()
{
parse_capture();
+ string card, device_num;
+ int rate = default_rate, channels = default_channels;
+
get_device(m_capture.first, card, device_num);
get_params(m_capture.second, rate, channels);
cout << " 2. CAPTURE" << endl;
cout << " > card=" << card << ", device=" << device_num << endl;
cout << " > rate=" << rate << ", channels=" << channels << endl;
+
+ return make_tuple(card, device_num, rate, channels);
}
void CDeviceMapParser::parse_device_string_object(json_object *device_string_o, string& device_string)