diff options
author | Cheng-Yi Chiang <cychiang@chromium.org> | 2016-12-13 16:33:42 +0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2016-12-30 03:54:22 -0800 |
commit | c921f933df5412b85da35d789a63000c44fe48cc (patch) | |
tree | ab84f9f3eeed2df4977752450bb7b8cab9ce9389 | |
parent | 961c12cc9ec95b3c65c2a459e702aab37b1eda76 (diff) | |
download | adhd-c921f933df5412b85da35d789a63000c44fe48cc.tar.gz |
CRAS: iodev - Wrap set_mute with a function
It will be cleaner for users to access set_mute from this interface.
BUG=chromium:669662
TEST=make check
Change-Id: I41dba8ba8fdba492b71cda3b09b4ca4703953b24
Reviewed-on: https://chromium-review.googlesource.com/422614
Commit-Ready: Cheng-Yi Chiang <cychiang@chromium.org>
Tested-by: Cheng-Yi Chiang <cychiang@chromium.org>
Reviewed-by: Hsinyu Chao <hychao@chromium.org>
-rw-r--r-- | cras/src/server/cras_iodev.c | 10 | ||||
-rw-r--r-- | cras/src/server/cras_iodev.h | 8 | ||||
-rw-r--r-- | cras/src/tests/iodev_unittest.cc | 25 |
3 files changed, 43 insertions, 0 deletions
diff --git a/cras/src/server/cras_iodev.c b/cras/src/server/cras_iodev.c index 4efe6141..95ae5643 100644 --- a/cras/src/server/cras_iodev.c +++ b/cras/src/server/cras_iodev.c @@ -1148,3 +1148,13 @@ int cras_iodev_reset_request(struct cras_iodev* iodev) iodev->reset_request_pending = 1; return cras_device_monitor_reset_device(iodev); } + +int cras_iodev_set_mute(struct cras_iodev* iodev) +{ + if (!cras_iodev_is_open(iodev)) + return 0; + + if (iodev->set_mute) + iodev->set_mute(iodev); + return 0; +} diff --git a/cras/src/server/cras_iodev.h b/cras/src/server/cras_iodev.h index 0c1b8cb6..7ce0ed97 100644 --- a/cras/src/server/cras_iodev.h +++ b/cras/src/server/cras_iodev.h @@ -633,4 +633,12 @@ int cras_iodev_reset_request(struct cras_iodev* iodev); */ int cras_iodev_output_underrun(struct cras_iodev *odev); +/* Set iodev to mute/unmute state. + * Args: + * iodev[in] - The device. + * Returns: + * 0 on success. Negative error code on failure. + */ +int cras_iodev_set_mute(struct cras_iodev* iodev); + #endif /* CRAS_IODEV_H_ */ diff --git a/cras/src/tests/iodev_unittest.cc b/cras/src/tests/iodev_unittest.cc index b4a56197..f52eb069 100644 --- a/cras/src/tests/iodev_unittest.cc +++ b/cras/src/tests/iodev_unittest.cc @@ -79,6 +79,7 @@ static int dev_stream_playback_frames_ret; static int get_num_underruns_ret; static int device_monitor_reset_device_called; static int output_underrun_called; +static int set_mute_called; // Iodev callback @@ -154,6 +155,7 @@ void ResetStubData() { get_num_underruns_ret = 0; device_monitor_reset_device_called = 0; output_underrun_called = 0; + set_mute_called = 0; } namespace { @@ -772,6 +774,11 @@ static void dev_set_capture_gain(struct cras_iodev *iodev) { } +static void dev_set_mute(struct cras_iodev *iodev) +{ + set_mute_called++; +} + TEST(IoNodePlug, PlugUnplugNode) { struct cras_iodev iodev; struct cras_ionode ionode, ionode2; @@ -863,6 +870,24 @@ TEST(IoDev, SetNodeSwapLeftRight) { EXPECT_EQ(2, notify_node_left_right_swapped_called); } +TEST(IoDev, SetMute) { + struct cras_iodev iodev; + int rc; + + memset(&iodev, 0, sizeof(iodev)); + iodev.set_mute = dev_set_mute; + iodev.state = CRAS_IODEV_STATE_CLOSE; + + ResetStubData(); + rc = cras_iodev_set_mute(&iodev); + EXPECT_EQ(0, rc); + EXPECT_EQ(0, set_mute_called); + + iodev.state = CRAS_IODEV_STATE_OPEN; + rc = cras_iodev_set_mute(&iodev); + EXPECT_EQ(0, rc); + EXPECT_EQ(1, set_mute_called); +} // Test software volume changes for default output. TEST(IoDev, SoftwareVolume) { |