mirror of
				https://github.com/SuperBFG7/ympd
				synced 2025-10-31 22:03:01 +00:00 
			
		
		
		
	Fix: creation of smartPlaylist mostPlayed
Feat: display versions on startup and in websocket welcome message
This commit is contained in:
		| @@ -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); | ||||||
|     len = json_printf(&out, "{type: welcome, data: {version: %Q}}", MYMPD_VERSION); |     char mpd_version[20]; | ||||||
|  |     char libmpdclient_version[20]; | ||||||
|  |  | ||||||
|  |     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); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 jcorporation
					jcorporation