mirror of
https://github.com/SuperBFG7/ympd
synced 2025-07-01 01:22:51 +00:00
Fix: creation of smartPlaylist mostPlayed
Feat: display versions on startup and in websocket welcome message
This commit is contained in:
parent
4a4c8921d7
commit
8852586b74
@ -925,7 +925,7 @@ int mympd_get_updatedb_state(char *buffer) {
|
|||||||
|
|
||||||
status = mpd_run_status(mpd.conn);
|
status = mpd_run_status(mpd.conn);
|
||||||
if (!status)
|
if (!status)
|
||||||
RETURN_ERROR_AND_RECOVER("replay_gain_status");
|
RETURN_ERROR_AND_RECOVER("mpd_run_status");
|
||||||
update_id = mpd_status_get_update_id(status);
|
update_id = mpd_status_get_update_id(status);
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
fprintf(stderr, "Update database ID: %d\n", update_id);
|
fprintf(stderr, "Update database ID: %d\n", update_id);
|
||||||
@ -1203,9 +1203,8 @@ void mympd_jukebox() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nkeep < addSongs) {
|
if (nkeep < addSongs)
|
||||||
fprintf(stderr, "Warning: input didn't contain %d entries\n", addSongs);
|
fprintf(stderr, "Warning: input didn't contain %d entries\n", addSongs);
|
||||||
}
|
|
||||||
|
|
||||||
list_shuffle(&add_list);
|
list_shuffle(&add_list);
|
||||||
|
|
||||||
@ -1214,9 +1213,8 @@ void mympd_jukebox() {
|
|||||||
while (current != NULL) {
|
while (current != NULL) {
|
||||||
if (mympd_state.jukeboxMode == 1) {
|
if (mympd_state.jukeboxMode == 1) {
|
||||||
printf("Jukebox adding song: %s\n", current->data);
|
printf("Jukebox adding song: %s\n", current->data);
|
||||||
if (!mpd_run_add(mpd.conn, current->data)) {
|
if (!mpd_run_add(mpd.conn, current->data))
|
||||||
LOG_ERROR_AND_RECOVER("mpd_run_add");
|
LOG_ERROR_AND_RECOVER("mpd_run_add");
|
||||||
}
|
|
||||||
else
|
else
|
||||||
nkeep++;
|
nkeep++;
|
||||||
}
|
}
|
||||||
@ -1321,8 +1319,18 @@ int mympd_put_volume(char *buffer) {
|
|||||||
int mympd_put_welcome(char *buffer) {
|
int mympd_put_welcome(char *buffer) {
|
||||||
int len;
|
int len;
|
||||||
struct json_out out = JSON_OUT_BUF(buffer, MAX_SIZE);
|
struct json_out out = JSON_OUT_BUF(buffer, MAX_SIZE);
|
||||||
|
const unsigned *version = mpd_connection_get_server_version(mpd.conn);
|
||||||
|
char mpd_version[20];
|
||||||
|
char libmpdclient_version[20];
|
||||||
|
|
||||||
len = json_printf(&out, "{type: welcome, data: {version: %Q}}", MYMPD_VERSION);
|
snprintf(mpd_version, 20, "%i.%i.%i", version[0], version[1], version[2]);
|
||||||
|
snprintf(libmpdclient_version, 20, "%i.%i.%i", LIBMPDCLIENT_MAJOR_VERSION, LIBMPDCLIENT_MINOR_VERSION, LIBMPDCLIENT_PATCH_VERSION);
|
||||||
|
|
||||||
|
len = json_printf(&out, "{type: welcome, data: {mympdVersion: %Q, mpdVersion: %Q, libmpdclientVersion: %Q}}",
|
||||||
|
MYMPD_VERSION,
|
||||||
|
mpd_version,
|
||||||
|
libmpdclient_version
|
||||||
|
);
|
||||||
|
|
||||||
CHECK_RETURN_LEN();
|
CHECK_RETURN_LEN();
|
||||||
return len;
|
return len;
|
||||||
@ -2556,7 +2564,7 @@ int mympd_smartpls_update(char *playlist, char *sticker, int maxentries) {
|
|||||||
p_value = mpd_parse_sticker(pair->value, &j);
|
p_value = mpd_parse_sticker(pair->value, &j);
|
||||||
if (p_value != NULL) {
|
if (p_value != NULL) {
|
||||||
value = strtol(p_value, &crap, 10);
|
value = strtol(p_value, &crap, 10);
|
||||||
if (value > 1)
|
if (value >= 1)
|
||||||
list_push(&add_list, uri, value);
|
list_push(&add_list, uri, value);
|
||||||
if (value > value_max)
|
if (value > value_max)
|
||||||
value_max = value;
|
value_max = value;
|
||||||
@ -2567,11 +2575,17 @@ int mympd_smartpls_update(char *playlist, char *sticker, int maxentries) {
|
|||||||
mpd_response_finish(mpd.conn);
|
mpd_response_finish(mpd.conn);
|
||||||
free(uri);
|
free(uri);
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
|
printf("add_list length: %d\n", add_list.length);
|
||||||
|
#endif
|
||||||
|
|
||||||
mympd_smartpls_clear(playlist);
|
mympd_smartpls_clear(playlist);
|
||||||
|
|
||||||
if (value_max > 2)
|
if (value_max > 2)
|
||||||
value_max = value_max / 2;
|
value_max = value_max / 2;
|
||||||
|
|
||||||
|
list_sort_by_value(&add_list, false);
|
||||||
|
|
||||||
struct node *current = add_list.list;
|
struct node *current = add_list.list;
|
||||||
while (current != NULL) {
|
while (current != NULL) {
|
||||||
if (current->value >= value_max) {
|
if (current->value >= value_max) {
|
||||||
|
@ -30,6 +30,7 @@
|
|||||||
#include <pwd.h>
|
#include <pwd.h>
|
||||||
#include <grp.h>
|
#include <grp.h>
|
||||||
#include <libgen.h>
|
#include <libgen.h>
|
||||||
|
#include <mpd/client.h>
|
||||||
|
|
||||||
#include "../dist/src/mongoose/mongoose.h"
|
#include "../dist/src/mongoose/mongoose.h"
|
||||||
#include "../dist/src/frozen/frozen.h"
|
#include "../dist/src/frozen/frozen.h"
|
||||||
@ -410,6 +411,8 @@ int main(int argc, char **argv) {
|
|||||||
mpd.feat_library = false;
|
mpd.feat_library = false;
|
||||||
|
|
||||||
if (argc == 2) {
|
if (argc == 2) {
|
||||||
|
printf("Starting myMPD %s\n", MYMPD_VERSION);
|
||||||
|
printf("libmpdclient %i.%i.%i\n", LIBMPDCLIENT_MAJOR_VERSION, LIBMPDCLIENT_MINOR_VERSION, LIBMPDCLIENT_PATCH_VERSION);
|
||||||
printf("Parsing config file: %s\n", argv[1]);
|
printf("Parsing config file: %s\n", argv[1]);
|
||||||
if (ini_parse(argv[1], inihandler, &config) < 0) {
|
if (ini_parse(argv[1], inihandler, &config) < 0) {
|
||||||
printf("Can't load config file \"%s\"\n", argv[1]);
|
printf("Can't load config file \"%s\"\n", argv[1]);
|
||||||
@ -428,8 +431,6 @@ int main(int argc, char **argv) {
|
|||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("Starting myMPD %s\n", MYMPD_VERSION);
|
|
||||||
|
|
||||||
signal(SIGTERM, signal_handler);
|
signal(SIGTERM, signal_handler);
|
||||||
signal(SIGINT, signal_handler);
|
signal(SIGINT, signal_handler);
|
||||||
setvbuf(stdout, NULL, _IOLBF, 0);
|
setvbuf(stdout, NULL, _IOLBF, 0);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user