aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSpencer Williams <spnw@plexwave.org>2025-04-14 15:29:50 -0400
committerSpencer Williams <spnw@plexwave.org>2025-04-14 15:32:37 -0400
commitd1e077458de7fca3753940a7fe21f9ace1f6bb56 (patch)
treef15a47e66edfbdfaf86c08baf088fdb27af5d6ed
parent462b8f84e1ecc8740f6dde2c4bb861c77b5ba55f (diff)
Add options to hide queue information
-rw-r--r--mpc-bar.m23
1 files changed, 17 insertions, 6 deletions
diff --git a/mpc-bar.m b/mpc-bar.m
index beff51f..80742ef 100644
--- a/mpc-bar.m
+++ b/mpc-bar.m
@@ -48,9 +48,8 @@ static NSString *formatTime(unsigned int t) {
}
struct config {
- char *host;
- char *host, *format;
char *host, *format, *idle_message;
+ int show_queue, show_queue_idle;
unsigned port;
};
@@ -66,6 +65,10 @@ static int handler(void *userdata, const char *section, const char *name,
c->format = strdup(value);
} else if (MATCH("display", "idle_message")) {
c->idle_message = strdup(value);
+ } else if (MATCH("display", "show_queue")) {
+ c->show_queue = (strcmp(value, "false") != 0);
+ } else if (MATCH("display", "show_queue_idle")) {
+ c->show_queue_idle = (strcmp(value, "false") != 0);
} else {
return 0;
}
@@ -97,6 +100,8 @@ static int handler(void *userdata, const char *section, const char *name,
config.port = 0;
config.format = "[%name%: &[[%artist%|%performer%|%composer%|%albumartist%] - ]%title%]|%name%|[[%artist%|%performer%|%composer%|%albumartist%] - ]%title%|%file%";
config.idle_message = "No song playing";
+ config.show_queue = 1;
+ config.show_queue_idle = -1;
}
- (void)readConfigFile {
const char *path = [[NSHomeDirectory()
@@ -104,6 +109,9 @@ static int handler(void *userdata, const char *section, const char *name,
if (ini_parse(path, handler, &config) < 0) {
NSLog(@"Failed to read config file");
}
+ if (config.show_queue_idle == -1) {
+ config.show_queue_idle = config.show_queue;
+ }
}
- (void)connect {
assert(connection == NULL);
@@ -223,10 +231,13 @@ static int handler(void *userdata, const char *section, const char *name,
int song_pos = mpd_status_get_song_pos(status);
unsigned int queue_length = mpd_status_get_queue_length(status);
- if (song_pos < 0)
- [output appendFormat:@" (%u)", queue_length];
- else
- [output appendFormat:@" (%u/%u)", song_pos + 1, queue_length];
+
+ if ((active && config.show_queue) || (!active && config.show_queue_idle)) {
+ if (song_pos < 0)
+ [output appendFormat:@" (%u)", queue_length];
+ else
+ [output appendFormat:@" (%u/%u)", song_pos + 1, queue_length];
+ }
if ([output length] > TITLE_MAX_LENGTH) {
int leftCount = (TITLE_MAX_LENGTH - 3) / 2;