1 #include "gtest/gtest.h"
2 #include <stdlib.h>
3 #include <memory>
4 #include "cubeb/cubeb.h"
5 #include "common.h"
6
TEST(cubeb,latency)7 TEST(cubeb, latency)
8 {
9 cubeb * ctx = NULL;
10 int r;
11 uint32_t max_channels;
12 uint32_t preferred_rate;
13 uint32_t latency_frames;
14
15 r = common_init(&ctx, "Cubeb audio test");
16 ASSERT_EQ(r, CUBEB_OK);
17
18 std::unique_ptr<cubeb, decltype(&cubeb_destroy)>
19 cleanup_cubeb_at_exit(ctx, cubeb_destroy);
20
21 r = cubeb_get_max_channel_count(ctx, &max_channels);
22 ASSERT_TRUE(r == CUBEB_OK || r == CUBEB_ERROR_NOT_SUPPORTED);
23 if (r == CUBEB_OK) {
24 ASSERT_GT(max_channels, 0u);
25 }
26
27 r = cubeb_get_preferred_sample_rate(ctx, &preferred_rate);
28 ASSERT_TRUE(r == CUBEB_OK || r == CUBEB_ERROR_NOT_SUPPORTED);
29 if (r == CUBEB_OK) {
30 ASSERT_GT(preferred_rate, 0u);
31 }
32
33 cubeb_stream_params params = {
34 CUBEB_SAMPLE_FLOAT32NE,
35 preferred_rate,
36 max_channels,
37 CUBEB_LAYOUT_UNDEFINED,
38 CUBEB_STREAM_PREF_NONE
39 };
40 r = cubeb_get_min_latency(ctx, ¶ms, &latency_frames);
41 ASSERT_TRUE(r == CUBEB_OK || r == CUBEB_ERROR_NOT_SUPPORTED);
42 if (r == CUBEB_OK) {
43 ASSERT_GT(latency_frames, 0u);
44 }
45 }
46