diff --git a/bin/mpdevil b/bin/mpdevil
index 18480a7..dde7341 100755
--- a/bin/mpdevil
+++ b/bin/mpdevil
@@ -559,7 +559,7 @@ class EventEmitter(GObject.Object):
"single": (GObject.SignalFlags.RUN_FIRST, None, (str,)),
"consume": (GObject.SignalFlags.RUN_FIRST, None, (bool,)),
"audio": (GObject.SignalFlags.RUN_FIRST, None, (str,)),
- "bitrate": (GObject.SignalFlags.RUN_FIRST, None, (float,)),
+ "bitrate": (GObject.SignalFlags.RUN_FIRST, None, (str,)),
"add_to_playlist": (GObject.SignalFlags.RUN_FIRST, None, (str,)),
"show_info": (GObject.SignalFlags.RUN_FIRST, None, ())
}
@@ -851,7 +851,10 @@ class Client(MPDClient):
else:
self.emitter.emit("elapsed_changed", 0.0, 0.0)
elif key == "bitrate":
- self.emitter.emit("bitrate", float(val))
+ if val == "0":
+ self.emitter.emit("bitrate", None)
+ else:
+ self.emitter.emit("bitrate", val)
elif key == "songid":
self.emitter.emit("current_song_changed")
elif key in ("state", "single", "audio"):
@@ -874,7 +877,7 @@ class Client(MPDClient):
elif "updating_db" == key:
self.emitter.emit("update")
elif "bitrate" == key:
- self.emitter.emit("bitrate", 0.0)
+ self.emitter.emit("bitrate", None)
elif "audio" == key:
self.emitter.emit("audio", None)
self._last_status=status
@@ -3359,7 +3362,8 @@ class AudioFormat(Gtk.Box):
super().__init__(spacing=6)
self._client=client
self._settings=settings
- self._top_label=Gtk.Label(xalign=1)
+ self._file_type_label=Gtk.Label(xalign=1)
+ self._separator_label=Gtk.Label(xalign=1)
self._brate_label=Gtk.Label(xalign=1, width_chars=5)
self._format_label=Gtk.Label()
self.set_property("no-show-all", not(self._settings.get_boolean("show-audio-format")))
@@ -3376,7 +3380,8 @@ class AudioFormat(Gtk.Box):
# packing
hbox=Gtk.Box(halign=Gtk.Align.END)
hbox.pack_start(self._brate_label, False, False, 0)
- hbox.pack_start(self._top_label, False, False, 0)
+ hbox.pack_start(self._separator_label, False, False, 0)
+ hbox.pack_start(self._file_type_label, False, False, 0)
vbox=Gtk.Box(orientation=Gtk.Orientation.VERTICAL, valign=Gtk.Align.CENTER)
vbox.pack_start(hbox, False, False, 0)
vbox.pack_start(self._format_label, False, False, 0)
@@ -3391,16 +3396,22 @@ class AudioFormat(Gtk.Box):
self._format_label.set_markup(""+ClientHelper.convert_audio_format(audio_format)+"")
def _on_bitrate(self, emitter, brate):
- self._brate_label.set_text(locale.str(brate))
+ # handle unknown bitrates: https://github.com/MusicPlayerDaemon/MPD/issues/428#issuecomment-442430365
+ if brate is None:
+ self._brate_label.set_text("–")
+ else:
+ self._brate_label.set_text(brate)
def _on_song_changed(self, *args):
current_song=self._client.currentsong()
if current_song == {}:
- self._top_label.set_text(" kb/s")
+ self._file_type_label.set_text("")
+ self._separator_label.set_text(" kb/s")
self._format_label.set_markup(" ")
else:
file_type=current_song["file"].split(".")[-1].split("/")[0].upper()
- self._top_label.set_text(" kb/s • "+file_type)
+ self._separator_label.set_text(" kb/s • ")
+ self._file_type_label.set_text(file_type)
def _on_mini_player(self, obj, typestring):
self._on_show_audio_format_changed()
@@ -3415,8 +3426,9 @@ class AudioFormat(Gtk.Box):
def _on_disconnected(self, *args):
self.set_sensitive(False)
- self._brate_label.set_text(locale.str(0.0))
- self._top_label.set_text(" kb/s")
+ self._brate_label.set_text("–")
+ self._separator_label.set_text(" kb/s")
+ self._file_type_label.set_text("")
self._format_label.set_markup(" ")
def _on_reconnected(self, *args):