fix image paths
This commit is contained in:
@@ -194,8 +194,9 @@ std::vector<ctx_t> &proc_t::get_apps() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Gets application image from application list.
|
/// Gets application image from application list.
|
||||||
|
/// Returns image from assets directory if found there.
|
||||||
/// Returns default image if image configuration is not set.
|
/// Returns default image if image configuration is not set.
|
||||||
/// returns http content-type header compatible image type
|
/// Returns http content-type header compatible image type.
|
||||||
std::string proc_t::get_app_image(int app_id) {
|
std::string proc_t::get_app_image(int app_id) {
|
||||||
auto app_index = app_id - 1;
|
auto app_index = app_id - 1;
|
||||||
if(app_index < 0 || app_index >= _apps.size()) {
|
if(app_index < 0 || app_index >= _apps.size()) {
|
||||||
@@ -205,18 +206,37 @@ std::string proc_t::get_app_image(int app_id) {
|
|||||||
|
|
||||||
auto app_image_path = _apps[app_index].image_path;
|
auto app_image_path = _apps[app_index].image_path;
|
||||||
if(app_image_path.empty()) {
|
if(app_image_path.empty()) {
|
||||||
|
// image is empty, return default box image
|
||||||
return SUNSHINE_ASSETS_DIR "/box.png";
|
return SUNSHINE_ASSETS_DIR "/box.png";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// get the image extension and convert it to lowercase
|
||||||
auto image_extension = std::filesystem::path(app_image_path).extension().string();
|
auto image_extension = std::filesystem::path(app_image_path).extension().string();
|
||||||
boost::to_lower(image_extension);
|
boost::to_lower(image_extension);
|
||||||
|
|
||||||
std::error_code code;
|
// return the default box image if extension is not "png"
|
||||||
if(!std::filesystem::exists(app_image_path, code) || image_extension != ".png") {
|
if(image_extension != ".png") {
|
||||||
return SUNSHINE_ASSETS_DIR "/box.png";
|
return SUNSHINE_ASSETS_DIR "/box.png";
|
||||||
}
|
}
|
||||||
|
|
||||||
// return only "content-type" http header compatible image type.
|
// check if image is in assets directory
|
||||||
|
if(std::filesystem::exists(SUNSHINE_ASSETS_DIR + app_image_path)) {
|
||||||
|
return SUNSHINE_ASSETS_DIR + app_image_path;
|
||||||
|
}
|
||||||
|
else if(app_image_path == "./assets/steam.png") {
|
||||||
|
// handle old default steam image definition
|
||||||
|
return SUNSHINE_ASSETS_DIR "/steam.png";
|
||||||
|
}
|
||||||
|
|
||||||
|
// check if specified image exists
|
||||||
|
std::error_code code;
|
||||||
|
if(!std::filesystem::exists(app_image_path, code)) {
|
||||||
|
// return default box image if image does not exist
|
||||||
|
return SUNSHINE_ASSETS_DIR "/box.png";
|
||||||
|
}
|
||||||
|
|
||||||
|
// image is a png, and not in assets directory
|
||||||
|
// return only "content-type" http header compatible image type
|
||||||
return app_image_path;
|
return app_image_path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
"output":"steam.txt",
|
"output":"steam.txt",
|
||||||
"detached":["setsid steam steam://open/bigpicture"],
|
"detached":["setsid steam steam://open/bigpicture"],
|
||||||
"image-path":"./assets/steam.png"
|
"image-path":"steam.png"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
"output":"steam.txt",
|
"output":"steam.txt",
|
||||||
"detached":["steam steam://open/bigpicture"],
|
"detached":["steam steam://open/bigpicture"],
|
||||||
"image-path":"./assets/steam.png"
|
"image-path":"steam.png"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user