Fix virtual nodes
This commit is contained in:
parent
9f33bcd017
commit
1dd4ef7327
7 changed files with 113 additions and 22 deletions
|
|
@ -33,13 +33,15 @@ struct TestClient {
|
|||
warppipe::NodeInfo MakeNode(uint32_t id, const std::string &name,
|
||||
const std::string &media_class,
|
||||
const std::string &app_name = {},
|
||||
const std::string &desc = {}) {
|
||||
const std::string &desc = {},
|
||||
bool is_virtual = false) {
|
||||
warppipe::NodeInfo n;
|
||||
n.id = warppipe::NodeId{id};
|
||||
n.name = name;
|
||||
n.media_class = media_class;
|
||||
n.application_name = app_name;
|
||||
n.description = desc;
|
||||
n.is_virtual = is_virtual;
|
||||
return n;
|
||||
}
|
||||
|
||||
|
|
@ -86,12 +88,12 @@ TEST_CASE("classifyNode identifies hardware source") {
|
|||
}
|
||||
|
||||
TEST_CASE("classifyNode identifies virtual sink") {
|
||||
auto n = MakeNode(3, "warppipe-gaming-sink", "Audio/Sink");
|
||||
auto n = MakeNode(3, "gaming-sink", "Audio/Sink", {}, {}, true);
|
||||
REQUIRE(WarpGraphModel::classifyNode(n) == WarpNodeType::kVirtualSink);
|
||||
}
|
||||
|
||||
TEST_CASE("classifyNode identifies virtual source") {
|
||||
auto n = MakeNode(4, "warppipe-mic", "Audio/Source");
|
||||
auto n = MakeNode(4, "my-mic", "Audio/Source", {}, {}, true);
|
||||
REQUIRE(WarpGraphModel::classifyNode(n) == WarpNodeType::kVirtualSource);
|
||||
}
|
||||
|
||||
|
|
@ -110,6 +112,26 @@ TEST_CASE("classifyNode returns unknown for unrecognized media class") {
|
|||
REQUIRE(WarpGraphModel::classifyNode(n) == WarpNodeType::kUnknown);
|
||||
}
|
||||
|
||||
TEST_CASE("classifyNode virtual sink without warppipe in name") {
|
||||
auto n = MakeNode(10, "Sink", "Audio/Sink", {}, {}, true);
|
||||
REQUIRE(WarpGraphModel::classifyNode(n) == WarpNodeType::kVirtualSink);
|
||||
}
|
||||
|
||||
TEST_CASE("classifyNode virtual source without warppipe in name") {
|
||||
auto n = MakeNode(11, "Mic", "Audio/Source", {}, {}, true);
|
||||
REQUIRE(WarpGraphModel::classifyNode(n) == WarpNodeType::kVirtualSource);
|
||||
}
|
||||
|
||||
TEST_CASE("classifyNode non-virtual sink with warppipe in name") {
|
||||
auto n = MakeNode(12, "warppipe-hw", "Audio/Sink", {}, {}, false);
|
||||
REQUIRE(WarpGraphModel::classifyNode(n) == WarpNodeType::kHardwareSink);
|
||||
}
|
||||
|
||||
TEST_CASE("classifyNode virtual duplex treated as virtual sink") {
|
||||
auto n = MakeNode(13, "my-duplex", "Audio/Duplex", {}, {}, true);
|
||||
REQUIRE(WarpGraphModel::classifyNode(n) == WarpNodeType::kVirtualSink);
|
||||
}
|
||||
|
||||
TEST_CASE("classifyNode duplex treated as sink") {
|
||||
auto n = MakeNode(8, "alsa_duplex", "Audio/Duplex");
|
||||
REQUIRE(WarpGraphModel::classifyNode(n) == WarpNodeType::kHardwareSink);
|
||||
|
|
@ -217,7 +239,7 @@ TEST_CASE("node style varies by type") {
|
|||
REQUIRE(tc.client->Test_InsertNode(
|
||||
MakeNode(100040, "hw-sink", "Audio/Sink")).ok());
|
||||
REQUIRE(tc.client->Test_InsertNode(
|
||||
MakeNode(100041, "warppipe-vsink", "Audio/Sink")).ok());
|
||||
MakeNode(100041, "my-vsink", "Audio/Sink", {}, {}, true)).ok());
|
||||
REQUIRE(tc.client->Test_InsertNode(
|
||||
MakeNode(100042, "app-stream", "Stream/Output/Audio", "App")).ok());
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue