Something went wrong. Try again.
various tools I have been using throughout the years
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859#define _POSIX_C_SOURCE 200809L
#include "mpd_common.h"
#include <limits.h>#include <string.h>
static void usage(FILE *file, const char *program) { fprintf(file, "Usage: %s [--force]\n", program);}
int main(int argc, char **argv) { bool force = false; for (int i = 1; i < argc; i++) { if (strcmp(argv[i], "-h") == 0 || strcmp(argv[i], "--help") == 0) { usage(stdout, argv[0]); return 0; } if (strcmp(argv[i], "--force") == 0) { force = true; } else { usage(stderr, argv[0]); return 2; } }
struct mt_strvec tracks; mt_strvec_init(&tracks); struct mpd_connection *connection = mt_connect(); if (connection == NULL) return 1;
struct mt_player_state state; bool ok = mt_get_player_state(connection, &state); unsigned version = UINT_MAX; if (ok) { version = state.queue_version; mt_player_state_clear(&state); ok = mt_read_queue(connection, &tracks); } mpd_connection_free(connection);
if (ok) ok = mt_edit_lines(&tracks); if (ok) { connection = mt_connect(); if (connection == NULL) ok = false; else { ok = mt_replace_queue(connection, &tracks, version, force); mpd_connection_free(connection); } } if (ok) printf("Queue updated successfully.\n"); mt_strvec_clear(&tracks); return ok ? 0 : 1;}