1. Cookies optimieren die Bereitstellung unserer Dienste. Mit der Nutzung unserer Dienste erklärst Du dich damit einverstanden, dass wir Cookies verwenden. Weitere Informationen
    Information ausblenden
  2. Willkommen im Forum von DIGITAL FERNSEHEN - dem führenden Portal für digitales Fernsehen, Medien und Entertainment. Wenn du hier neu bist, schau dich ruhig etwas um und melde dich an, um am Forengeschehen teilnehmen zu können.
    Information ausblenden

Programmieren für Anfänger

Dieses Thema im Forum "Palcom / Panasonic / Radix / Relook / Smart" wurde erstellt von peller, 15. September 2005.

  1. peller

    peller Senior Member

    Registriert seit:
    11. April 2005
    Beiträge:
    192
    Zustimmungen:
    0
    Punkte für Erfolge:
    26
    Anzeige
    Hallo,
    so ein paar Kleinigkeiten stören mich beim Relook und ich möchte gerne etwas in der Ablaufsteuerung umprogrammieren. Ich hoffe, Ihr greift mir etwas unter die Arme.
    Also das Problem ist relativ einfach: Wenn ich einen Film von der Festplatte schaue, stört es mich, dass ich mit dem Enter-Button in die Kanalübersicht wechsle. Wenn ich da nämlich wieder versehentlich Enter drücke, wechsle ich in das aktuelle Fernsehprogramm, von wo ich dann nur über RCL-Taste wieder zur abgespielten Datei wechseln kann.
    Da ich überhaupt keine Notwendigkeit sehe, dass beim Drücken des Enter-Buttons die Kanalübersicht kommt, würde ich die Ablaufsteuerung gerne so programmieren, dass beim Drücken gar nichts passiert.
    Also bin ich erstmal angefangen und habe den Source-Code durchsucht. Ich denke, KEY_ENTER oder KEY_FRONT_ENTER sollte das Event sein, auf das reagiert werden müsste. Nun müsste ich noch wissen, in welchem File ich dieses Event abfangen muss. Da bin ich leider hängen geblieben. Ich hätte eigentlich gedacht, die Stelle müsste im statemgr_core.c sein, aber dort finde ich keine Stelle, an der der Tastendruck abgefragt wird (vorspulen und zurückspulen wird dort aber abgeprüft). Weiß jemand von Euch weiter?

    Gruß,

    Peller
     
  2. Harry B.

    Harry B. Silber Member

    Registriert seit:
    2. November 2003
    Beiträge:
    506
    Zustimmungen:
    0
    Punkte für Erfolge:
    26
    AW: Programmieren für Anfänger

    Was ist mit static void sta_processKeyEvent(void) in statemgr_core.c? Da gibt es ein value = sta_getKeyEvent().
    Dann wird value abgearbeitet.
     
  3. ngc1701

    ngc1701 Neuling

    Registriert seit:
    11. September 2005
    Beiträge:
    10
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    AW: Programmieren für Anfänger

    @peller
    Wenn ich einen Film ansehe und schnell mal auf anderes Programm wechseln will, sollte man schon mit OK in die Channel-List kommen??? Sonst könnte man nur mit Favoriten wechseln oder zuerst das Abspielen beenden.
    Sorry, beim Programmieren kann ich Dir leider auch nicht helfen.
     
  4. peller

    peller Senior Member

    Registriert seit:
    11. April 2005
    Beiträge:
    192
    Zustimmungen:
    0
    Punkte für Erfolge:
    26
    AW: Programmieren für Anfänger

    @Harry B.
    Wenn ich das richtig verstanden hat, prüft sta_processKeyEvent(void) ein paar Sonderfälle (z.B. Power-Taste oder ob gerade Videotext aktiv ist) ab und ruft dann sta_defaultKeyHandler auf. sta_defaultKeyHandler prüft dann weitere Tasten ab. Hier sind so ziemlich alle Tasten aufgeführt, allerdings nicht die Enter/OK-Taste (es fehlt die case-Anweisung für KEY_ENTER (falls dies die Taste ist, die ich meine)), diese muss also anderswo abgefragt werden.

    @nqc1701
    Hab mir schon gedacht, dass es bestimmt auch Nutzer gibt, die diese Funktion so gut finden. Daher würde ich sie nur bei mir ändern wollen und nicht z.B. Neumo damit belästigen ;-) Mir gefällt der Weg über Wiedergabe stoppen und dann wechseln deutlich besser. Ist aber natürlich Geschmackssache.
     
  5. relooker

    relooker Silber Member

    Registriert seit:
    2. März 2005
    Beiträge:
    732
    Zustimmungen:
    0
    Punkte für Erfolge:
    26
    Technisches Equipment:
    Bush SR-5000E
    Metronic 442203-evolution4
    Echostar DVR7000
    Mutant 200S
    Relook 300S
    Relook 400S
    AW: Programmieren für Anfänger

    Hallo Peller,

    Versuch mal im statemgr_core.c, Zeile #158

    U32 sta_key[nScreen] =
    { _NOKEY, KEY_ENTER, KEY_FAVORITES,

    Ändere KEY_ENTER in _NOKEY:

    U32 sta_key[nScreen] =
    { _NOKEY, _NOKEY, KEY_FAVORITES,

    Ich hatte noch keine Zeit um es zu kompilieren und aus zu probieren. Wenn es nicht klappt, melde dich, dann suche ich heute Abend weiter.

    PS:
    KEY_ENTER = Taste am Fernbedienung
    KEY_FRONT_ENTER = Taste am Relook

    MfG
    _________
    relooker
     
    Zuletzt bearbeitet: 16. September 2005
  6. peller

    peller Senior Member

    Registriert seit:
    11. April 2005
    Beiträge:
    192
    Zustimmungen:
    0
    Punkte für Erfolge:
    26
    AW: Programmieren für Anfänger

    Hallo relooker,
    wenn ich den Source-Code richtig verstehe, lege ich damit fest, mit welcher Taste ich welches Menu geöffnet und geschlossen wird. Wenn ich die Änderung so vornehme, wird man wahrscheinlich gar nicht mehr in die Kanalliste wechseln können.
    Folgendes könnte aber funktionieren: Änderung so vornehmen wie Du geschrieben hast und dann in sta_defaultKeyHandler eine weitere case-Abfrage "case KEY_ENTER: ..." wo ich dann in Abhängigkeit, ob gerade der File-Modus aktiv ist oder nicht, die Kanalliste aufrufe. So könnte man dann auch -wenn man gerade die Kanalnummer eingibt- mit der Enter-Taste direkt die Nummern-Eingabe abschließen.
    Meinst Du das könnte so gehen? Ich werd's dann mal ausprobieren, wenn meine bessere Hälfte den Relook freigibt.
    Gruß,
    Peller
     
  7. relooker

    relooker Silber Member

    Registriert seit:
    2. März 2005
    Beiträge:
    732
    Zustimmungen:
    0
    Punkte für Erfolge:
    26
    Technisches Equipment:
    Bush SR-5000E
    Metronic 442203-evolution4
    Echostar DVR7000
    Mutant 200S
    Relook 300S
    Relook 400S
    AW: Programmieren für Anfänger

    Stimmt, ich muss es auch noch ausprobieren, aber ich sehe es genauso wie du mit der 'sta_defaultKeyHandler'.

    MfG
    _________
    relooker
     
  8. peller

    peller Senior Member

    Registriert seit:
    11. April 2005
    Beiträge:
    192
    Zustimmungen:
    0
    Punkte für Erfolge:
    26
    AW: Programmieren für Anfänger

    So, bin einen Schritt weitergekommen (bessere Hälfte hat leider immer den Receiver blockiert):
    folgendes habe ich in sta_defaultKeyHandler hinzugefügt:
    case KEY_FRONT_ENTER:
    case KEY_ENTER:
    if( curPVR->play_mode == MODE_FILE_PLAY )
    return;

    else sta_openScreen(SCR_ID_CHLIST,0);
    return;
    Leider hat sta_openScreen(SCR_ID_CHLIST,0); nicht den Effekt, dass in das Kanallistenmenu gewechselt wird, sondern nur dass die Kanalliste angezeigt wird (mit up/down wird z.B. nicht der nächste Sender gehighlighted sondern der Kanal gewechselt). Welches ist denn der richtige Befehl, um in das Menu zu wechseln?
     
  9. relooker

    relooker Silber Member

    Registriert seit:
    2. März 2005
    Beiträge:
    732
    Zustimmungen:
    0
    Punkte für Erfolge:
    26
    Technisches Equipment:
    Bush SR-5000E
    Metronic 442203-evolution4
    Echostar DVR7000
    Mutant 200S
    Relook 300S
    Relook 400S
    AW: Programmieren für Anfänger

    Hallo Peller,

    Versuchs mal mit 'initCHList'
    Code:
     
    chlist.h --> Summary: display channel list and change channel ..
    chlist.c --> void initCHList( U32 arg )
    [color=white]------------[/color] void closeCHList(void)
    [color=white]------------[/color] int CHList_Handler( U32 ev )
    Ich denke aber dass du auch noch 'closeCHList' und 'CHList_Handler' aktivieren muss, weil du auch diese ausgeschaltet hast im 'U32 sta_key[nScreen]'


    MfG
    _________
    relooker
     
  10. peller

    peller Senior Member

    Registriert seit:
    11. April 2005
    Beiträge:
    192
    Zustimmungen:
    0
    Punkte für Erfolge:
    26
    AW: Programmieren für Anfänger

    Hallo relooker,
    ich habe jetzt eine Lösung gefunden, die funktioniert:
    case KEY_FRONT_ENTER:
    case KEY_ENTER:
    if( curPVR->play_mode == MODE_FILE_PLAY ) return;
    else
    {sta_closeScreen( sta_focus );
    prev_scr = sta_focus;
    sta_focus =SCR_ID_CHLIST;
    sta_openScreen( sta_focus, prev_scr );
    }

    return;

    Vielen Dank für Deine Mithilfe.