@@ -74,10 +74,11 @@
     features = {}    # non-channel plugins
     #working = []     # threads
     hooks = {
         "play": [],  # observers queue here
         "record": [],
+        "switch": [],
         "init": [],
         "quit": [action.cleanup_tmp_files],
         "config_load": [],
         "config_save": [],
     }
@@ -253,13 +254,15 @@
     # Invoked from the menu instead, uses module name instead of numeric tab id
     def channel_switch_by_name(self, name):
         self.notebook_channels.set_current_page(self.channel_names.index(name))
 
     # Mirror selected channel tab into main window title
-    def update_title(self):
+    def update_title(self, *x, **y):
+        meta = self.channel().meta
         if conf.window_title:
-            self.win_streamtuner2.set_title("Streamtuner2 - %s" % self.channel().meta.get("title"))
+            self.win_streamtuner2.set_title("Streamtuner2 - %s" % meta.get("title"))
+        [cb(meta) for cb in self.hooks["switch"]]
 
 
     # Channel: row{} dict for current station
     def row(self):
         return self.channel().row()