X-Git-Url: https://git.xandkar.net/?a=blobdiff_plain;f=bin%2Fkhatus_controller;h=d91d49b2eda92a4b8dbee1e19a6cb4007003aac6;hb=bb1e4fee366ff3ab86e420833071bfdfdc7f9704;hp=836a91553e5b3143aafc2a13edf1a933b965384a;hpb=f5dfebd2b3df7a959357a2eb02706ae45d7a1d49;p=khatus.git diff --git a/bin/khatus_controller b/bin/khatus_controller index 836a915..d91d49b 100755 --- a/bin/khatus_controller +++ b/bin/khatus_controller @@ -90,42 +90,9 @@ db["volume"] = $0 } -# ----------------------------------------------------------------------------- -# BEGIN MPD_SONG -/^in:MPD_SONG +OK +/\ -{ - delete db["mpd_song_curr_file"] - delete db["mpd_song_curr_title"] - delete db["mpd_song_curr_name"] -} - -/^in:MPD_SONG +file:/\ -{ - fields_shift() - fields_shift() - db["mpd_song_curr_file"] = $0 -} - -/^in:MPD_SONG +Title:/\ -{ - fields_shift() - fields_shift() - db["mpd_song_curr_title"] = $0 -} - -/^in:MPD_SONG +Name:/\ -{ - fields_shift() - fields_shift() - db["mpd_song_curr_name"] = $0 -} - -/^in:MPD_SONG +OK$/\ -{ - set_mpd_playing() -} -# END MPD_SONG -# ----------------------------------------------------------------------------- +/^in:MPD_SONG OK +MPD/ { delete db_mpd_song; next } +/^in:MPD_SONG OK$/ { set_mpd_playing() ; next } +/^in:MPD_SONG / { set_mpd_song() ; next } /^in:MPD_STATE /\ { @@ -148,12 +115,22 @@ output_msg_status_bar(make_status_bar()) } +function set_mpd_song( key, val) { + key = $2 + fields_shift() + fields_shift() + val = $0 + db_mpd_song[key] = val + debug("set_mpd_song", "", db_mpd_song) +} + function set_mpd_playing( \ currently_playing, name, title, file, last, parts\ ) { - name = db["mpd_song_curr_name"] - title = db["mpd_song_curr_title"] - file = db["mpd_song_curr_file"] + debug("set_mpd_playing", "", db_mpd_song) + name = db_mpd_song["Name:"] + title = db_mpd_song["Title:"] + file = db_mpd_song["file:"] if (name) { currently_playing = name @@ -171,11 +148,20 @@ function set_mpd_playing( \ alert_check_mpd() } -function alert_check_mpd( curr, prev) { +function alert_check_mpd( curr, prev, name, body) { prev = db["mpd_playing_prev"] curr = db["mpd_playing_curr"] - if (curr != prev) { - alert_trigger_low("alert_check_mpd", "NowPlaying", curr) + if (curr && curr != prev) { + name = db_mpd_song["Name:"] + if (name) { + body = name + } else { + body = \ + db_mpd_song["Artist:"] \ + " - " db_mpd_song["Album:"] \ + " - " db_mpd_song["Title:"] + } + alert_trigger_low("alert_check_mpd", "NowPlaying", body) } } @@ -196,11 +182,11 @@ function alert_check_energy( \ dbg["state_curr"] = state_curr dbg["remaining"] = remaining - debug(from, dbg) + debug(from, "", dbg) if (state_curr == "discharging") { if (state_prev == "charging") { - alert_trigger_low(from, "Unplugged", "") + alert_trigger_low(from, "PowerUnplugged", "") } if (remaining < 5) { @@ -326,7 +312,7 @@ function fields_shift( dbg) { dbg["head"] = $1 sub("^" $1 " +", "") dbg["body"] = $0 - debug("fields_shift", dbg) + debug("fields_shift", "", dbg) } function make_status_bar( position, bar, sep, i, j) { @@ -474,7 +460,7 @@ function round(n) { return int(n + 0.5) } -function debug(location, values, sep, vals, key, msg) { +function debug(location, msg, values, sep, vals, key, payload) { if (opt_debug) { sep = "" vals = "" @@ -482,8 +468,8 @@ function debug(location, values, sep, vals, key, msg) { vals = sprintf("%s%s%s: %s", vals, sep, key, values[key]) sep = ", " } - msg = location " ==> " vals "." - output_msg("DEBUG", msg, "/dev/stderr") + payload = sprintf("[%s] [%s] [%s]", location, msg, vals) + output_msg("DEBUG", payload, "/dev/stderr") } }