* limitations under the License.
*/
-#include <string.h>
-#include <unistd.h>
+#include <string>
#include <iostream>
#include <fstream>
#include <array>
+#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
class AudioHalTest : public testing::Test
{
public:
+ AudioHalTest() : m_h(), m_spec() { }
+ virtual ~AudioHalTest() = default;
+
virtual void SetUp();
virtual void TearDown();
void SetRouteToMicrophone();
int32_t WritePcmFromFile(pcm_handle pcm_h);
int32_t ReadPcmFromDevice(pcm_handle pcm_h);
- uint32_t BytesToFrames(uint32_t bytes, audio_pcm_sample_spec_t *spec);
- uint32_t BytesToFrames(uint32_t bytes);
- uint32_t FramesToBytes(uint32_t frames, audio_pcm_sample_spec_t *spec);
- uint32_t FramesToBytes(uint32_t frames);
- uint32_t GetDefaultFrames();
+ uint32_t BytesToFrames(uint32_t bytes, audio_pcm_sample_spec_t *spec) const;
+ uint32_t BytesToFrames(uint32_t bytes) const;
+ uint32_t FramesToBytes(uint32_t frames, audio_pcm_sample_spec_t *spec) const;
+ uint32_t FramesToBytes(uint32_t frames) const;
+ uint32_t GetDefaultFrames() const;
static void HalMessageCallback(const char *name, int value, void *user_data);
+ // Todo : following value may vary depends on targets
+ static constexpr int default_frames = 6400;
+ static constexpr int default_periods = 5;
+ static constexpr int default_rate = 44100;
+ static constexpr int default_channels = 2;
+
void *m_h;
audio_pcm_sample_spec_t m_spec;
- // Todo : following value may vary depends on targets
- const int default_frames = 6400;
- const int default_periods = 5;
- const int default_rate = 44100;
- const int default_channels = 2;
-
// ToDo : following types may need to be fixed.
- const array<string, 8> vol_types = { "system", "notification", "alarm", "ringtone",
- "media", "call", "voip", "voice" };
-
+ static const array<string, 8> vol_types;
};
+const array<string, 8> AudioHalTest::vol_types = { "system", "notification","alarm", "ringtone",
+ "media", "call", "voip", "voice" };
+
void AudioHalTest::SetUp()
{
m_h = nullptr;
void AudioHalTest::SetRouteToSpeaker()
{
- audio_route_info info;
- int32_t num_of_devices = 1;
-
- memset(&info, 0, sizeof(audio_route_info));
-
- info.role = "media";
- info.device_infos = (device_info_s*)malloc(sizeof(device_info_s) * num_of_devices);
- if (info.device_infos == nullptr) {
- cout << "malloc error!!! : " << errno << endl;
- return;
- }
- info.device_infos[0].direction = AUDIO_DIRECTION_OUT;
- info.device_infos[0].type = "builtin-speaker";
- info.device_infos[0].id = 100;
- info.num_of_devices = num_of_devices;
+ device_info_s device_infos[] {
+ { "builtin-speaker", AUDIO_DIRECTION_OUT, 100 }
+ };
+ audio_route_info info {
+ "media", device_infos, 1
+ };
int32_t ret = hal_audio_update_route(m_h, &info);
cout << "update route : " << ret << endl;
-
- free(info.device_infos);
}
void AudioHalTest::SetRouteToMicrophone()
{
- audio_route_info info;
- int32_t num_of_devices = 1;
-
- memset(&info, 0, sizeof(audio_route_info));
-
- info.role = "media";
- info.device_infos = (device_info_s*)malloc(sizeof(device_info_s) * num_of_devices);
- if (info.device_infos == nullptr) {
- cout << "malloc error!!! : " << errno << endl;
- return;
- }
- info.device_infos[0].direction = AUDIO_DIRECTION_IN;
- info.device_infos[0].type = "builtin-mic";
- info.device_infos[0].id = 100;
- info.num_of_devices = num_of_devices;
+ device_info_s device_infos[] {
+ { "builtin-mic", AUDIO_DIRECTION_IN, 200 }
+ };
+ audio_route_info info {
+ "media", device_infos, 1
+ };
int32_t ret = hal_audio_update_route(m_h, &info);
cout << "update route : " << ret << endl;
-
- free(info.device_infos);
}
int32_t AudioHalTest::WritePcmFromFile(pcm_handle pcm_h)
cout << "start to play dtmf+noise sounds ( " << res_path << " ) for 5 sec. " << endl;
- while (1) {
+ while (true) {
ret = hal_audio_pcm_avail(m_h, pcm_h, &avail_frames);
if (ret == AUDIO_ERR_INTERNAL)
break;
return ret;
}
-uint32_t AudioHalTest::BytesToFrames(uint32_t bytes, audio_pcm_sample_spec_t *spec)
+uint32_t AudioHalTest::BytesToFrames(uint32_t bytes, audio_pcm_sample_spec_t *spec) const
{
// ToDo : support various sample format
return (spec->format == AUDIO_SAMPLE_S16LE) ? bytes / spec->channels / 2 : 0;
}
-uint32_t AudioHalTest::BytesToFrames(uint32_t bytes)
+uint32_t AudioHalTest::BytesToFrames(uint32_t bytes) const
{
// ToDo : support various sample format
return (m_spec.format == AUDIO_SAMPLE_S16LE) ? bytes / m_spec.channels / 2 : 0;
}
-uint32_t AudioHalTest::FramesToBytes(uint32_t frames, audio_pcm_sample_spec_t *spec)
+uint32_t AudioHalTest::FramesToBytes(uint32_t frames, audio_pcm_sample_spec_t *spec) const
{
// ToDo : support various sample format
return (spec->format == AUDIO_SAMPLE_S16LE) ? frames * spec->channels * 2 : 0;
}
-uint32_t AudioHalTest::FramesToBytes(uint32_t frames)
+uint32_t AudioHalTest::FramesToBytes(uint32_t frames) const
{
// ToDo : support various sample format
return (m_spec.format == AUDIO_SAMPLE_S16LE) ? frames * m_spec.channels * 2 : 0;
}
-uint32_t AudioHalTest::GetDefaultFrames()
+uint32_t AudioHalTest::GetDefaultFrames() const
{
return BytesToFrames(default_frames);
}
/**
* @testcase InitP
- * @since_tizen 4.0
+ * @since_tizen 6.5
* @author SR(seungbae.shin)
- * @reviewer SR(sc11.lee)
+ * @reviewer SR(sc11.lee, jcsing.lee)
* @type auto
* @description Positive, Initialize audio HAL handle
* @apicovered audio_init, audio_deinit
/**
* @testcase InitN
- * @since_tizen 4.0
+ * @since_tizen 6.5
* @author SR(seungbae.shin)
- * @reviewer SR(sc11.lee)
+ * @reviewer SR(sc11.lee, jcsing.lee)
* @type auto
* @description Negative, Initialize audio HAL handle
* @apicovered audio_init
/**
* @testcase DeinitP
- * @since_tizen 4.0
+ * @since_tizen 6.5
* @author SR(seungbae.shin)
- * @reviewer SR(sc11.lee)
+ * @reviewer SR(sc11.lee, jcsing.lee)
* @type auto
* @description Positive, Deinitialize audio HAL handle
* @apicovered audio_init, audio_deinit
/**
* @testcase GetVolumeLevelMaxP
- * @since_tizen 4.0
+ * @since_tizen 6.5
* @author SR(seungbae.shin)
- * @reviewer SR(sc11.lee)
+ * @reviewer SR(sc11.lee, jcsing.lee)
* @type auto
* @description Positive, Get maximum volume level of each volume types
* @apicovered audio_get_volume_level_max
TEST_F(AudioHalTest, GetVolumeLevelMaxP)
{
uint32_t level_max;
- audio_volume_info_s info = { NULL, NULL, AUDIO_DIRECTION_OUT };
+ audio_volume_info_s info {
+ nullptr, nullptr, AUDIO_DIRECTION_OUT
+ };
for (const auto& i : vol_types) {
info.type = i.c_str();
/**
* @testcase GetVolumeLevelMaxN
- * @since_tizen 4.0
+ * @since_tizen 6.5
* @author SR(seungbae.shin)
- * @reviewer SR(sc11.lee)
+ * @reviewer SR(sc11.lee, jcsing.lee)
* @type auto
* @description Negative, Get maximum volume level of each volume types
* @apicovered audio_get_volume_level_max
*/
TEST_F(AudioHalTest, GetVolumeLevelMaxN)
{
- audio_volume_info_s info = { "media", NULL, AUDIO_DIRECTION_OUT };
+ audio_volume_info_s info {
+ "media", nullptr, AUDIO_DIRECTION_OUT
+ };
int32_t ret = hal_audio_get_volume_level_max(m_h, &info, nullptr);
EXPECT_EQ(ret, AUDIO_ERR_PARAMETER);
}
/**
* @testcase GetVolumeLevelP
- * @since_tizen 4.0
+ * @since_tizen 6.5
* @author SR(seungbae.shin)
- * @reviewer SR(sc11.lee)
+ * @reviewer SR(sc11.lee, jcsing.lee)
* @type auto
* @description Positive, Get volume level of each volume types
* @apicovered audio_get_volume_level
{
uint32_t level;
int32_t ret;
- audio_volume_info_s info = { NULL, NULL, AUDIO_DIRECTION_OUT };
+ audio_volume_info_s info {
+ nullptr, nullptr, AUDIO_DIRECTION_OUT
+ };
for (const auto& i : vol_types) {
info.type = i.c_str();
/**
* @testcase GetVolumeLevelN
- * @since_tizen 4.0
+ * @since_tizen 6.5
* @author SR(seungbae.shin)
- * @reviewer SR(sc11.lee)
+ * @reviewer SR(sc11.lee, jcsing.lee)
* @type auto
* @description Negative, Get volume level of each volume types
* @apicovered audio_get_volume_level
*/
TEST_F(AudioHalTest, GetVolumeLevelN)
{
- audio_volume_info_s info = { "media", NULL, AUDIO_DIRECTION_OUT };
+ audio_volume_info_s info {
+ "media", nullptr, AUDIO_DIRECTION_OUT
+ };
int32_t ret = hal_audio_get_volume_level(m_h, &info, nullptr);
EXPECT_EQ(ret, AUDIO_ERR_PARAMETER);
}
/**
* @testcase SetVolumeLevelP
- * @since_tizen 4.0
+ * @since_tizen 6.5
* @author SR(seungbae.shin)
- * @reviewer SR(sc11.lee)
+ * @reviewer SR(sc11.lee, jcsing.lee)
* @type auto
* @description Positive, Set volume level of each volume types
* @apicovered audio_set_volume_level
TEST_F(AudioHalTest, SetVolumeLevelP)
{
/* FIXME : need to revise */
- audio_volume_info_s info = { "media", NULL, AUDIO_DIRECTION_OUT };
+ audio_volume_info_s info {
+ "media", nullptr, AUDIO_DIRECTION_OUT
+ };
+
int32_t ret = hal_audio_set_volume_level(m_h, &info, 15);
EXPECT_EQ(ret, AUDIO_RET_OK);
/**
* @testcase SetVolumeLevelN
- * @since_tizen 4.0
+ * @since_tizen 6.5
* @author SR(seungbae.shin)
- * @reviewer SR(sc11.lee)
+ * @reviewer SR(sc11.lee, jcsing.lee)
* @type auto
* @description Negative, Set volume level of each volume types
* @apicovered audio_set_volume_level
*/
TEST_F(AudioHalTest, SetVolumeLevelN)
{
- audio_volume_info_s info = { "media", NULL, AUDIO_DIRECTION_OUT };
+ audio_volume_info_s info {
+ "media", nullptr, AUDIO_DIRECTION_OUT
+ };
int32_t ret = hal_audio_set_volume_level(m_h, &info, 10000);
EXPECT_EQ(ret, AUDIO_ERR_PARAMETER);
}
/**
* @testcase GetVolumeValueP
- * @since_tizen 4.0
+ * @since_tizen 6.5
* @author SR(seungbae.shin)
- * @reviewer SR(sc11.lee)
+ * @reviewer SR(sc11.lee, jcsing.lee)
* @type auto
* @description Positive, Get volume value of each volume types with given volume level
* @apicovered audio_get_volume_value
double value;
uint32_t level_max;
int32_t ret;
- audio_volume_info_s info = { NULL, NULL, AUDIO_DIRECTION_OUT };
+ audio_volume_info_s info {
+ nullptr, nullptr, AUDIO_DIRECTION_OUT
+ };
for (const auto& i : vol_types) {
info.type = i.c_str();
/**
* @testcase GetVolumeValueN
- * @since_tizen 4.0
+ * @since_tizen 6.5
* @author SR(seungbae.shin)
- * @reviewer SR(sc11.lee)
+ * @reviewer SR(sc11.lee, jcsing.lee)
* @type auto
* @description Negative, Get volume value of each volume types with given volume level
* @apicovered audio_get_volume_value
*/
TEST_F(AudioHalTest, GetVolumeValueN)
{
- audio_volume_info_s info = { "media", NULL, AUDIO_DIRECTION_OUT };
+ audio_volume_info_s info {
+ "media", nullptr, AUDIO_DIRECTION_OUT
+ };
int32_t ret = hal_audio_get_volume_value(m_h, &info, 0, nullptr);
EXPECT_EQ(ret, AUDIO_ERR_PARAMETER);
}
/**
* @testcase GetVolumeMuteP
- * @since_tizen 4.0
+ * @since_tizen 6.5
* @author SR(seungbae.shin)
- * @reviewer SR(sc11.lee)
+ * @reviewer SR(sc11.lee, jcsing.lee)
* @type auto
* @description Positive, Get volume mute of each volume types.
* @apicovered audio_get_volume_mute
{
uint32_t mute = 0;
int32_t ret;
- audio_volume_info_s info = { NULL, NULL, AUDIO_DIRECTION_OUT };
+ audio_volume_info_s info {
+ nullptr, nullptr, AUDIO_DIRECTION_OUT
+ };
for (const auto& i : vol_types) {
info.type = i.c_str();
/**
* @testcase GetVolumeMuteN
- * @since_tizen 4.0
+ * @since_tizen 6.5
* @author SR(seungbae.shin)
- * @reviewer SR(sc11.lee)
+ * @reviewer SR(sc11.lee, jcsing.lee)
* @type auto
* @description Negative, Get volume mute of each volume types.
* @apicovered audio_get_volume_mute
*/
TEST_F(AudioHalTest, GetVolumeMuteN)
{
- audio_volume_info_s info = { "media", NULL, AUDIO_DIRECTION_OUT };
+ audio_volume_info_s info {
+ "media", nullptr, AUDIO_DIRECTION_OUT
+ };
int32_t ret = hal_audio_get_volume_mute(m_h, &info, nullptr);
EXPECT_EQ(ret, AUDIO_ERR_PARAMETER);
}
/**
* @testcase SetVolumeMuteP
- * @since_tizen 4.0
+ * @since_tizen 6.5
* @author SR(seungbae.shin)
- * @reviewer SR(sc11.lee)
+ * @reviewer SR(sc11.lee, jcsing.lee)
* @type auto
* @description Positive, Set volume mute of each volume types.
* @apicovered audio_set_volume_mute
*/
TEST_F(AudioHalTest, SetVolumeMuteP)
{
- audio_volume_info_s info = { "media", NULL, AUDIO_DIRECTION_OUT };
+ audio_volume_info_s info {
+ "media", nullptr, AUDIO_DIRECTION_OUT
+ };
int32_t ret = hal_audio_set_volume_mute(m_h, &info, 1);
EXPECT_EQ(ret, AUDIO_RET_OK);
/**
* @testcase UpdateRouteP
- * @since_tizen 4.0
+ * @since_tizen 6.5
* @author SR(seungbae.shin)
- * @reviewer SR(sc11.lee)
+ * @reviewer SR(sc11.lee, jcsing.lee)
* @type auto
* @description Positive, Update route
* @apicovered audio_update_route
*/
TEST_F(AudioHalTest, UpdateRouteP)
{
- audio_route_info info;
- int32_t num_of_devices = 1;
-
- memset(&info, 0, sizeof(audio_route_info));
-
- info.role = "media";
- info.device_infos = (device_info_s*)malloc(sizeof(device_info_s) * num_of_devices);
- ASSERT_NE(info.device_infos, nullptr);
- info.device_infos[0].direction = AUDIO_DIRECTION_OUT;
- info.device_infos[0].type = "builtin-speaker";
- info.device_infos[0].id = 100;
- info.num_of_devices = num_of_devices;
+ device_info_s device_infos[] {
+ { "builtin-speaker", AUDIO_DIRECTION_OUT, 100 }
+ };
+ audio_route_info info {
+ "media", device_infos, 1
+ };
int32_t ret = hal_audio_update_route(m_h, &info);
EXPECT_EQ(ret, AUDIO_RET_OK);
-
- free(info.device_infos);
}
-
/**
* @testcase UpdateRouteN
- * @since_tizen 4.0
+ * @since_tizen 6.5
* @author SR(seungbae.shin)
- * @reviewer SR(sc11.lee)
+ * @reviewer SR(sc11.lee, jcsing.lee)
* @type auto
* @description Negative, Update route
* @apicovered audio_update_route
int32_t ret = hal_audio_update_route(m_h, nullptr);
EXPECT_EQ(ret, AUDIO_ERR_PARAMETER);
- audio_route_info info;
- memset(&info, 0, sizeof(audio_route_info));
- info.role = nullptr;
+ audio_route_info info {
+ nullptr, nullptr, 0
+ };
ret = hal_audio_update_route(m_h, &info);
EXPECT_EQ(ret, AUDIO_ERR_PARAMETER);
}
/**
* @testcase UpdateRouteOptionP
- * @since_tizen 4.0
+ * @since_tizen 6.5
* @author SR(seungbae.shin)
- * @reviewer SR(sc11.lee)
+ * @reviewer SR(sc11.lee, jcsing.lee)
* @type auto
* @description Positive, Update route option
* @apicovered audio_update_route_option
/**
* @testcase UpdateRouteOptionN
- * @since_tizen 4.0
+ * @since_tizen 6.5
* @author SR(seungbae.shin)
- * @reviewer SR(sc11.lee)
+ * @reviewer SR(sc11.lee, jcsing.lee)
* @type auto
* @description Negative, Update route option
* @apicovered audio_update_route_option
/**
* @testcase NotifyStreamConnectionChangedP
- * @since_tizen 4.0
+ * @since_tizen 6.5
* @author SR(seungbae.shin)
- * @reviewer SR(sc11.lee)
+ * @reviewer SR(sc11.lee, jcsing.lee)
* @type auto
* @description Positive, Notify stream connection changed
* @apicovered audio_notify_stream_connection_changed
*/
TEST_F(AudioHalTest, NotifyStreamConnectionChangedP)
{
- audio_stream_info_s info;
-
- memset(&info, 0, sizeof(audio_stream_info_s));
- info.role = "media";
- info.direction = AUDIO_DIRECTION_OUT;
- info.idx = 100;
+ audio_stream_info_s info {
+ "media", AUDIO_DIRECTION_OUT, 100
+ };
int32_t ret = hal_audio_notify_stream_connection_changed(m_h, &info, 1);
EXPECT_EQ(ret, AUDIO_RET_OK);
/**
* @testcase NotifyStreamConnectionChangedN
- * @since_tizen 4.0
+ * @since_tizen 6.5
* @author SR(seungbae.shin)
- * @reviewer SR(sc11.lee)
+ * @reviewer SR(sc11.lee, jcsing.lee)
* @type auto
* @description Negative, Notify stream connection changed
* @apicovered audio_notify_stream_connection_changed
EXPECT_EQ(ret, AUDIO_ERR_PARAMETER);
// check for invalid role
- audio_stream_info_s info;
- memset(&info, 0, sizeof(audio_stream_info_s));
- info.role = nullptr;
- info.direction = AUDIO_DIRECTION_OUT;
- info.idx = 100;
-
+ audio_stream_info_s info {
+ nullptr, AUDIO_DIRECTION_OUT, 100
+ };
ret = hal_audio_notify_stream_connection_changed(m_h, &info, 1);
EXPECT_EQ(ret, AUDIO_ERR_PARAMETER);
}
/**
* @testcase MessageCallbackP
- * @since_tizen 4.0
+ * @since_tizen 6.5
* @author SR(seungbae.shin)
- * @reviewer SR(sc11.lee)
+ * @reviewer SR(sc11.lee, jcsing.lee)
* @type auto
* @description Positive, add/remove message callback
* @apicovered audio_add_message_cb, audio_remove_message_cb
/**
* @testcase MessageCallbackN
- * @since_tizen 4.0
+ * @since_tizen 6.5
* @author SR(seungbae.shin)
- * @reviewer SR(sc11.lee)
+ * @reviewer SR(sc11.lee, jcsing.lee)
* @type auto
* @description Negative, add/remove message callback
* @apicovered audio_add_message_cb, audio_remove_message_cb
/**
* @testcase PcmGetFdP
- * @since_tizen 4.0
+ * @since_tizen 6.5
* @author SR(seungbae.shin)
- * @reviewer SR(sc11.lee)
+ * @reviewer SR(sc11.lee, jcsing.lee)
* @type auto
* @description Positive, get fd from the pcm handle
* @apicovered audio_pcm_get_fd, audio_pcm_open, audio_pcm_close
string card, dev;
int rate = default_rate, channels = default_channels;
- CDeviceMapParser parser;
- parser.get_playback(card, dev, rate, channels);
+ CDeviceMapParser().get_playback(card, dev, rate, channels);
- m_spec.format = AUDIO_SAMPLE_S16LE;
- m_spec.rate = rate;
- m_spec.channels = channels;
+ m_spec = {
+ AUDIO_SAMPLE_S16LE, static_cast<uint32_t>(rate), static_cast<uint8_t>(channels)
+ };
SetRouteToSpeaker();
/**
* @testcase PcmGetFdN
- * @since_tizen 4.0
+ * @since_tizen 6.5
* @author SR(seungbae.shin)
- * @reviewer SR(sc11.lee)
+ * @reviewer SR(sc11.lee, jcsing.lee)
* @type auto
* @description Negative, get fd from the pcm handle
* @apicovered audio_pcm_get_fd, audio_pcm_open, audio_pcm_close
string card, dev;
int rate = default_rate, channels = default_channels;
- CDeviceMapParser parser;
- parser.get_playback(card, dev, rate, channels);
+ CDeviceMapParser().get_playback(card, dev, rate, channels);
- m_spec.format = AUDIO_SAMPLE_S16LE;
- m_spec.rate = rate;
- m_spec.channels = channels;
+ m_spec = {
+ AUDIO_SAMPLE_S16LE, static_cast<uint32_t>(rate), static_cast<uint8_t>(channels)
+ };
SetRouteToSpeaker();
/**
* @testcase PcmOpenWriteCloseP
- * @since_tizen 4.0
+ * @since_tizen 6.5
* @author SR(seungbae.shin)
- * @reviewer SR(sc11.lee)
+ * @reviewer SR(sc11.lee, jcsing.lee)
* @type auto
* @description Positive, open pcm handle, start pcm handle, write pcm buffers, stop pcm handle and close pcm_handle
* @apicovered audio_pcm_open, audio_pcm_start, audio_pcm_avail, audio_pcm_write, audio_pcm_stop, audio_pcm_close
string card, dev;
int rate = default_rate, channels = default_channels;
- CDeviceMapParser parser;
- parser.get_playback(card, dev, rate, channels);
+ CDeviceMapParser().get_playback(card, dev, rate, channels);
- m_spec.format = AUDIO_SAMPLE_S16LE;
- m_spec.rate = rate;
- m_spec.channels = channels;
+ m_spec = {
+ AUDIO_SAMPLE_S16LE, static_cast<uint32_t>(rate), static_cast<uint8_t>(channels)
+ };
SetRouteToSpeaker();
/**
* @testcase PcmOpenReadCloseP
- * @since_tizen 4.0
+ * @since_tizen 6.5
* @author SR(seungbae.shin)
- * @reviewer SR(sc11.lee)
+ * @reviewer SR(sc11.lee, jcsing.lee)
* @type auto
* @description Positive, open pcm handle, start pcm handle, read pcm buffers, stop pcm handle and close pcm_handle
* @apicovered audio_pcm_open, audio_pcm_start, audio_pcm_avail, audio_pcm_read, audio_pcm_stop, audio_pcm_close
string card, dev;
int rate = default_rate, channels = default_channels;
- CDeviceMapParser parser;
- parser.get_capture(card, dev, rate, channels);
+ CDeviceMapParser().get_capture(card, dev, rate, channels);
- m_spec.format = AUDIO_SAMPLE_S16LE;
- m_spec.rate = rate;
- m_spec.channels = channels;
+ m_spec = {
+ AUDIO_SAMPLE_S16LE, static_cast<uint32_t>(rate), static_cast<uint8_t>(channels)
+ };
SetRouteToMicrophone();
/**
* @testcase PcmRecoverN
- * @since_tizen 4.0
+ * @since_tizen 6.5
* @author SR(seungbae.shin)
- * @reviewer SR(sc11.lee)
+ * @reviewer SR(sc11.lee, jcsing.lee)
* @type auto
* @description Negative, pcm recovery
* @apicovered audio_pcm_recover
/**
* @testcase PcmSetParamP
- * @since_tizen 4.0
+ * @since_tizen 6.5
* @author SR(seungbae.shin)
- * @reviewer SR(sc11.lee)
+ * @reviewer SR(sc11.lee, jcsing.lee)
* @type auto
* @description Positive, set audio parameters
* @apicovered audio_pcm_pcm_set_param, audio_pcm_open, audio_pcm_close
string card, dev;
int rate = default_rate, channels = default_channels;
- CDeviceMapParser parser;
- parser.get_playback(card, dev, rate, channels);
+ CDeviceMapParser().get_playback(card, dev, rate, channels);
- m_spec.format = AUDIO_SAMPLE_S16LE;
- m_spec.rate = rate;
- m_spec.channels = channels;
+ m_spec = {
+ AUDIO_SAMPLE_S16LE, static_cast<uint32_t>(rate), static_cast<uint8_t>(channels)
+ };
SetRouteToSpeaker();
/**
* @testcase PcmSetParamN
- * @since_tizen 4.0
+ * @since_tizen 6.5
* @author SR(seungbae.shin)
- * @reviewer SR(sc11.lee)
+ * @reviewer SR(sc11.lee, jcsing.lee)
* @type auto
* @description Negative, set audio parameters
* @apicovered audio_pcm_pcm_set_param, audio_pcm_open, audio_pcm_close
string card, dev;
int rate = default_rate, channels = default_channels;
- CDeviceMapParser parser;
- parser.get_playback(card, dev, rate, channels);
+ CDeviceMapParser().get_playback(card, dev, rate, channels);
- m_spec.format = AUDIO_SAMPLE_S16LE;
- m_spec.rate = rate;
- m_spec.channels = channels;
+ m_spec = {
+ 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);
+ 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);
/**
* @testcase PcmGetParamP
- * @since_tizen 4.0
+ * @since_tizen 6.5
* @author SR(seungbae.shin)
- * @reviewer SR(sc11.lee)
+ * @reviewer SR(sc11.lee, jcsing.lee)
* @type auto
* @description Positive, get audio parameters
* @apicovered audio_pcm_pcm_get_param, audio_pcm_open, audio_pcm_close
string card, dev;
int rate = default_rate, channels = default_channels;
- CDeviceMapParser parser;
- parser.get_playback(card, dev, rate, channels);
+ CDeviceMapParser().get_playback(card, dev, rate, channels);
- m_spec.format = AUDIO_SAMPLE_S16LE;
- m_spec.rate = rate;
- m_spec.channels = channels;
+ m_spec = {
+ AUDIO_SAMPLE_S16LE, static_cast<uint32_t>(rate), static_cast<uint8_t>(channels)
+ };
// Precondition
SetRouteToSpeaker();
ASSERT_EQ(ret, AUDIO_RET_OK);
// Test Body
- audio_pcm_sample_spec_t local_spec;
- audio_pcm_sample_spec_t * p_spec = &local_spec;
+ audio_pcm_sample_spec_t local_spec {};
+ audio_pcm_sample_spec_t* p_spec = &local_spec;
uint32_t period_size = 0;
uint32_t periods = 0;
- memset(p_spec, 0, sizeof(audio_pcm_sample_spec_t));
ret = hal_audio_pcm_get_params(m_h, pcm_h, AUDIO_DIRECTION_OUT, (void**)&p_spec, &period_size, &periods);
EXPECT_EQ(ret, AUDIO_RET_OK);
/**
* @testcase PcmGetParamN
- * @since_tizen 4.0
+ * @since_tizen 6.5
* @author SR(seungbae.shin)
- * @reviewer SR(sc11.lee)
+ * @reviewer SR(sc11.lee, jcsing.lee)
* @type auto
* @description Negative, get audio parameters
* @apicovered audio_pcm_pcm_get_param
int main(int argc, char **argv)
{
#ifdef DISABLE_DEBUG_LOG
- cout.rdbuf(NULL);
+ cout.rdbuf(nullptr);
#endif
testing::InitGoogleTest(&argc, argv);