1
0
mirror of https://github.com/SuperBFG7/ympd synced 2025-11-04 15:52:59 +00:00

Feat: add setting to disable coverimages

This commit is contained in:
jcorporation
2018-10-29 19:41:04 +00:00
parent b195c5c93f
commit c218b50ac4
7 changed files with 66 additions and 34 deletions

View File

@@ -1350,8 +1350,8 @@ int mympd_put_settings(char *buffer) {
len = json_printf(&out, "{type: settings, data: {"
"repeat: %d, single: %d, crossfade: %d, consume: %d, random: %d, "
"mixrampdb: %f, mixrampdelay: %f, mpdhost: %Q, mpdport: %d, passwort_set: %B, featSyscmds: %B, featPlaylists: %B, featTags: %B, "
"localplayer: %B, streamport: %d, streamurl: %Q, coverimage: %Q, featStickers: %B, mixramp: %B, featSmartpls: %B, maxElementsPerPage: %d, "
"mixrampdb: %f, mixrampdelay: %f, mpdhost: %Q, mpdport: %d, passwort_set: %B, featSyscmds: %B, featPlaylists: %B, featTags: %B, featLibrary: %B, "
"featLocalplayer: %B, streamport: %d, streamurl: %Q, featCoverimage: %B, coverimagename: %Q, featStickers: %B, mixramp: %B, featSmartpls: %B, maxElementsPerPage: %d, "
"replaygain: %Q, notificationWeb: %B, notificationPage: %B, jukeboxMode: %d, jukeboxPlaylist: %Q, jukeboxQueueLength: %d, "
"tags: [",
mpd_status_get_repeat(status),
@@ -1367,10 +1367,12 @@ int mympd_put_settings(char *buffer) {
config.syscmds,
mpd.feat_playlists,
mpd.feat_tags,
mpd.feat_library,
config.localplayer,
config.streamport,
config.streamurl,
config.coverimage,
config.coverimagename,
config.stickers,
config.mixramp,
config.smartpls,
@@ -1480,7 +1482,11 @@ int replacechar(char *str, char orig, char rep) {
int mympd_get_cover(const char *uri, char *cover, int cover_len) {
char *path = strdup(uri);
int len;
if (strncasecmp("http:", path, 5) == 0 || strncasecmp("https:", path, 6) == 0) {
if (!config.coverimage) {
len = snprintf(cover, cover_len, "/assets/coverimage-notavailable.png");
}
else if (strncasecmp("http:", path, 5) == 0 || strncasecmp("https:", path, 6) == 0) {
if(strlen(path) > 8) {
if (strncasecmp("http:", path, 5) == 0)
path += 7;
@@ -1489,23 +1495,23 @@ int mympd_get_cover(const char *uri, char *cover, int cover_len) {
replacechar(path, '/', '_');
replacechar(path, '.', '_');
snprintf(cover, cover_len, "%s/pics/%s.png", SRC_PATH, path);
if (access(cover, F_OK ) == -1 ) {
if (access(cover, F_OK ) == -1 )
len = snprintf(cover, cover_len, "/assets/coverimage-httpstream.png");
} else {
else
len = snprintf(cover, cover_len, "/pics/%s.png", path);
}
} else {
} else
len = snprintf(cover, cover_len, "/assets/coverimage-httpstream.png");
}
}
else {
dirname(path);
snprintf(cover, cover_len, "%s/library/%s/%s", SRC_PATH, path, config.coverimage);
if (access(cover, F_OK ) == -1 ) {
if (mpd.feat_library) {
dirname(path);
snprintf(cover, cover_len, "%s/library/%s/%s", SRC_PATH, path, config.coverimagename);
if (access(cover, F_OK ) == -1 )
len = snprintf(cover, cover_len, "/assets/coverimage-notavailable.png");
else
len = snprintf(cover, cover_len, "/library/%s/%s", path, config.coverimagename);
} else
len = snprintf(cover, cover_len, "/assets/coverimage-notavailable.png");
} else {
len = snprintf(cover, cover_len, "/library/%s/%s", path, config.coverimage);
}
}
free(path);
return len;

View File

@@ -164,6 +164,7 @@ struct t_mpd {
bool feat_sticker;
bool feat_playlists;
bool feat_tags;
bool feat_library;
} mpd;
struct list mpd_tags;
@@ -183,7 +184,8 @@ typedef struct {
const char* sslcert;
const char* sslkey;
const char* user;
const char* coverimage;
bool coverimage;
const char* coverimagename;
bool stickers;
bool mixramp;
const char* taglist;

View File

@@ -151,7 +151,12 @@ static int inihandler(void* user, const char* section, const char* name, const c
else if (MATCH("streamport"))
p_config->streamport = strtol(value, &crap, 10);
else if (MATCH("coverimage"))
p_config->coverimage = strdup(value);
if (strcmp(value, "true") == 0)
p_config->coverimage = true;
else
p_config->coverimage = false;
else if (MATCH("coverimagename"))
p_config->coverimagename = strdup(value);
else if (MATCH("varlibdir"))
p_config->varlibdir = strdup(value);
else if (MATCH("stickers"))
@@ -341,7 +346,8 @@ int main(int argc, char **argv) {
config.user = "mympd";
config.streamport = 8000;
config.streamurl = "";
config.coverimage = "folder.jpg";
config.coverimage = true;
config.coverimagename = "folder.jpg";
config.varlibdir = "/var/lib/mympd";
config.stickers = true;
config.mixramp = true;
@@ -358,6 +364,7 @@ int main(int argc, char **argv) {
mpd.timeout = 3000;
mpd.last_update_sticker_song_id = -1;
mpd.last_song_id = -1;
mpd.feat_library = false;
if (argc == 2) {
printf("Parsing config file: %s\n", argv[1]);
@@ -445,6 +452,14 @@ int main(int argc, char **argv) {
if (!testdir("Document root", SRC_PATH))
return EXIT_FAILURE;
snprintf(testdirname, 400, "%s/library", SRC_PATH);
if (testdir("Link to mpd music_directory", testdirname)) {
mpd.feat_library = true;
printf("Enabling coverimage support\n");
}
else
printf("Disabling coverimage support\n");
snprintf(testdirname, 400, "%s/tmp", config.varlibdir);
if (!testdir("Temp dir", testdirname))
return EXIT_FAILURE;