--- PLUGINS/src/status/status.c	2025/01/29 11:15:26	5.3
+++ PLUGINS/src/status/status.c	2025/02/10 21:13:05
@@ -27,7 +27,7 @@
   virtual void SetSubtitleTrack(int Index, const char * const *Tracks);
   virtual void OsdClear(void);
   virtual void OsdTitle(const char *Title);
-  virtual void OsdStatusMessage(const char *Message);
+  virtual void OsdStatusMessage2(eMessageType Type, const char *Message);
   virtual void OsdHelpKeys(const char *Red, const char *Green, const char *Yellow, const char *Blue);
   virtual void OsdItem2(const char *Text, int Index, bool Selectable);
   virtual void OsdCurrentItem2(const char *Text, int Index);
@@ -86,9 +86,9 @@
   dsyslog("status: cStatusTest::OsdTitle '%s'", Title);
 }
 
-void cStatusTest::OsdStatusMessage(const char *Message)
+void cStatusTest::OsdStatusMessage2(eMessageType Type, const char *Message)
 {
-  dsyslog("status: cStatusTest::OsdStatusMessage '%s'", Message);
+  dsyslog("status: cStatusTest::OsdStatusMessage2 %d '%s'", Type, Message);
 }
 
 void cStatusTest::OsdHelpKeys(const char *Red, const char *Green, const char *Yellow, const char *Blue)
--- osdbase.c	2025/02/05 22:12:32	5.6
+++ osdbase.c	2025/02/10 21:01:00
@@ -170,6 +170,7 @@
   free(status);
   status = s ? strdup(s) : NULL;
   displayMenu->SetMessage(mtStatus, s);
+  cStatus::MsgOsdStatusMessage(mtStatus, s);
 }
 
 void cOsdMenu::SetTitle(const char *Title)
@@ -242,6 +243,7 @@
   if (cOsdProvider::OsdSizeChanged(osdState))
      SetDisplayMenu();
   displayMenu->SetMessage(mtStatus, NULL);
+  cStatus::MsgOsdStatusMessage(mtStatus, NULL);
   displayMenu->Clear();
   if (conveyStatus)
      cStatus::MsgOsdClear();
@@ -287,8 +289,10 @@
          }
      }
   displayMenu->SetScrollbar(count, first);
-  if (!isempty(status))
+  if (!isempty(status)) {
      displayMenu->SetMessage(mtStatus, status);
+     cStatus::MsgOsdStatusMessage(mtStatus, status);
+     }
 }
 
 void cOsdMenu::SetCurrent(cOsdItem *Item)
--- skins.c	2024/09/21 16:21:08	5.4
+++ skins.c	2025/02/10 21:04:14
@@ -305,7 +305,7 @@
      }
   cSkinDisplay::Current()->SetMessage(Type, s);
   cSkinDisplay::Current()->Flush();
-  cStatus::MsgOsdStatusMessage(s);
+  cStatus::MsgOsdStatusMessage(Type, s);
   eKeys k = kNone;
   if (Type != mtStatus) {
      k = Interface->Wait(Seconds);
@@ -316,7 +316,7 @@
         }
      else {
         cSkinDisplay::Current()->SetMessage(Type, NULL);
-        cStatus::MsgOsdStatusMessage(NULL);
+        cStatus::MsgOsdStatusMessage(Type, NULL);
         }
      }
   else if (!s && displayMessage) {
--- status.c	2025/01/29 11:15:26	5.2
+++ status.c	2025/02/10 20:58:53
@@ -95,10 +95,10 @@
       sm->OsdTitle(Title);
 }
 
-void cStatus::MsgOsdStatusMessage(const char *Message)
+void cStatus::MsgOsdStatusMessage(eMessageType Type, const char *Message)
 {
   for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm))
-      sm->OsdStatusMessage(Message);
+      sm->OsdStatusMessage2(Type, Message);
 }
 
 void cStatus::MsgOsdHelpKeys(const char *Red, const char *Green, const char *Yellow, const char *Blue)
--- status.h	2025/01/29 11:15:26	5.2
+++ status.h	2025/02/10 21:22:28
@@ -13,6 +13,7 @@
 #include "config.h"
 #include "device.h"
 #include "player.h"
+#include "skins.h"
 #include "tools.h"
 
 // Several member functions of the following classes are called with a pointer to
@@ -81,6 +82,7 @@
   virtual void OsdTitle(const char *Title) {}
                // Title has been displayed in the title line of the menu.
   virtual void OsdStatusMessage(const char *Message) {}
+  virtual void OsdStatusMessage2(eMessageType Type, const char *Message) { OsdStatusMessage(Message); }
                // Message has been displayed in the status line of the menu.
                // If Message is NULL, the status line has been cleared.
   virtual void OsdHelpKeys(const char *Red, const char *Green, const char *Yellow, const char *Blue) {}
@@ -121,7 +123,9 @@
   static void MsgSetSubtitleTrack(int Index, const char * const *Tracks);
   static void MsgOsdClear(void);
   static void MsgOsdTitle(const char *Title);
-  static void MsgOsdStatusMessage(const char *Message);
+  [[deprecated("use MsgOsdStatusMessage(eMessageType Type, const char *Message) instead")]]
+  static void MsgOsdStatusMessage(const char *Message) { MsgOsdStatusMessage(mtStatus, Message); }
+  static void MsgOsdStatusMessage(eMessageType Type, const char *Message);
   static void MsgOsdHelpKeys(const char *Red, const char *Green, const char *Yellow, const char *Blue);
   static void MsgOsdItem(const char *Text, int Index, bool Selectable = true);
   static void MsgOsdCurrentItem(const char *Text, int Index = -1);
