commit b6841983f7dadb82ecf5e28e583d3eca49a53cb9
parent bca9a67b9b4ebf1f9618af1408f330a431e227e1
Author: cfillion <cfillion@users.noreply.github.com>
Date: Sun, 18 Dec 2016 18:49:39 -0500
add support for REAPER v5.30 custom Web Interfaces
Diffstat:
6 files changed, 23 insertions(+), 1 deletion(-)
diff --git a/src/browser.cpp b/src/browser.cpp
@@ -480,6 +480,7 @@ bool Browser::isFiltered(Package::Type type) const
case Package::LangPackType:
break;
case Package::DataType:
+ case Package::WebInterfaceType:
type = Package::UnknownType;
break;
}
diff --git a/src/package.cpp b/src/package.cpp
@@ -40,6 +40,8 @@ Package::Type Package::getType(const char *type)
return ThemeType;
else if(!strcmp(type, "langpack"))
return LangPackType;
+ else if(!strcmp(type, "www"))
+ return WebInterfaceType;
else
return UnknownType;
}
@@ -59,6 +61,8 @@ string Package::displayType(const Type type)
return "Theme";
case LangPackType:
return "Language Pack";
+ case WebInterfaceType:
+ return "Web Interface";
default:
return "Unknown";
}
diff --git a/src/package.hpp b/src/package.hpp
@@ -34,6 +34,7 @@ public:
DataType,
ThemeType,
LangPackType,
+ WebInterfaceType,
};
static Type getType(const char *);
diff --git a/src/source.cpp b/src/source.cpp
@@ -118,6 +118,9 @@ Path Source::targetPath() const
case Package::LangPackType:
path.append("LangPack");
break;
+ case Package::WebInterfaceType:
+ path.append("reaper_www_root");
+ break;
case Package::UnknownType:
// The package has an unsupported type, so we make an empty path.
// The empty path won't be used because the category will reject
@@ -142,6 +145,7 @@ Path Source::targetPath() const
case Package::ThemeType:
case Package::DataType:
case Package::LangPackType:
+ case Package::WebInterfaceType:
path.append(file(), false);
break;
case Package::UnknownType:
diff --git a/test/package.cpp b/test/package.cpp
@@ -33,6 +33,9 @@ TEST_CASE("package type from string", M) {
SECTION("langpack")
REQUIRE(Package::getType("langpack") == Package::LangPackType);
+
+ SECTION("web interface")
+ REQUIRE(Package::getType("www") == Package::WebInterfaceType);
}
TEST_CASE("package type to string", M) {
@@ -57,7 +60,10 @@ TEST_CASE("package type to string", M) {
SECTION("langpack")
REQUIRE("Language Pack" == Package::displayType(Package::LangPackType));
- SECTION("unknown")
+ SECTION("web interface")
+ REQUIRE("Web Interface" == Package::displayType(Package::WebInterfaceType));
+
+ SECTION("invalid")
REQUIRE("Unknown" == Package::displayType(static_cast<Package::Type>(-1)));
}
diff --git a/test/source.cpp b/test/source.cpp
@@ -183,6 +183,12 @@ TEST_CASE("source target path", M) {
const Path expected("LangPack/file.name");
REQUIRE(source.targetPath() == expected);
}
+
+ SECTION("web interface") {
+ source.setTypeOverride(Package::WebInterfaceType);
+ const Path expected("reaper_www_root/file.name");
+ REQUIRE(source.targetPath() == expected);
+ }
}
TEST_CASE("target path with parent directory traversal", M) {