class cStatus->OsdStatusMessage(const char *Message) wird manchmal nicht gerufen

  • Hi kls ,

    class cStatus->OsdStatusMessage(const char *Message) wird manchmal nicht gerufen.

    Z.b. wenn ich im Kanal Menü einen Kanal markiere, wird

    Code: osdbase.c
    void cOsdMenu::Mark(void)                                                                                                                                     
    {                                                                                                                                                             
      if (Count() && marked < 0) {                                                                                                                                
         marked = current;                                                                                                                                        
         SetStatus(tr("Up/Dn for new location - OK to move"));                                                                                                    
         }                                                                                                                                                        
    }

    ausgeführt. SetStatus ruft direkt displayMenu->SetMessage(mtStatus, s); . Damit wird cStatus::MsgOsdStatusMessage(s); nicht gerufen.

    Was wäre hier eine geeignete Lösung?

    Wir könnten in SetStatus direkt cStatus::MsgOsdStatusMessage(s); aufrufen.

    Alternativ könnten wir auch in SetStatus cSkins::Message(...) aufrufen, anstelle von displayMenu->SetMessage(mtStatus, s); .

    Was meinst Du?


    ~ Markus

    Client1: ASUS P5QC, Dual Core 3G, Cine S2, Ext. Board von TBE, Xubuntu 20.04, VDR 2.6x

    Client2: RPI3

    Server: RPI4, Sundtek SkyTV Dual 2x

    Edited once, last by MarkusE (January 18, 2025 at 7:39 PM).

  • Ergänzung:

    Wir sollten auch eine weitere Methode

    Code
    class cStatus {
    ...  
      virtual void OsdStatusMessage2(eMessageType Type, const char *Message) {}
    ...
    }

    einführen.

    Client1: ASUS P5QC, Dual Core 3G, Cine S2, Ext. Board von TBE, Xubuntu 20.04, VDR 2.6x

    Client2: RPI3

    Server: RPI4, Sundtek SkyTV Dual 2x

  • Ich habe den Patch mit folgenden Änderungen übernommen:
    1.) In den Interfaces erst Type, dann Message (passt besser zu entsprechenden anderen Stellen).
    2.) Kein Defaultwert für Type in MsgOsdStatusMessage() (wegen 1.), daher eine zusätzliche Funktion und die bisherige "deprecated".

    MarkusE Passt das so für dich?

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!