Videotaste Menü modifiziern - Frage ?

  • Hallo und Tach,


    nachdem ich nun mit meinen Wünschen nicht weitergekommen bin, möchte ich mich auch einmal ans "umprogrammieren" wagen.
    Da ich aber noch keinen Plan von der Struktur der Software habe folgende Frage.


    Welche Dateien beziehen sich denn auf das Menü, welches mit der Videotaste aufgerufen wird ?


    Hintergrund:
    Ich möchte über das Menü hinter der Videotaste nicht nur auf meine Festplatte sondern auf einen speziellen Mount zugreifen können wo viele weiter Filme abgelegt sind.


    Irgendein Ansatz würde mir schon reichen.
    Mit dem Rest wurschtle ich mich schon irgendwie durch.


    Danke für eine Antwort.

    1x DM 8000 Merlin OE2.0/GP3/Zombi HD1R2.aslanMod
    2x DM 500HD Merlin OE2.0/GP3/
    Zombi HD1R2.aslanMod
    1x DM 7025 Oozoon/GP3/Zombi XD
    -------------------------
    Sky Welt/Film, HD+

    Einmal editiert, zuletzt von aslan2006 ()

  • Gute Idee, dann könnte ich gleich die Videotexttaste bei Videowiedergabe deaktivieren bevor es mir jeden Tag die Box aufhängt, scheiß Taste.

    In Betrieb
    Dreambox 920uhd-S2X/C
    Ausser Betrieb
    Dreambox 7080HD-S2/C / 8000-S2

  • Wenn du Videotaste drücken kannst, ist die Infobar aktiv (egal ob die nun sichtbar ist oder nicht).


    Dort gibt es die "InfobarActions" (lib/python/Screens/InfoBar.py:41):


    Code
    self["actions"] = HelpableActionMap(self, "InfobarActions",
          {
            "showMovies": (self.showMovies, _("Play recorded movies...")),
            "showRadio": (self.showRadio, _("Show the radio player...")),
            "showTv": (self.showTv, _("Show the tv player...")),
          }, prio=2)


    Dort sind ein paar "Actions" definiert, u.a. "showMovies", welche die Funktion "showMovies" aufruft.


    Code
    def showMovies(self):
        self.session.openWithCallback(self.movieSelected, MovieSelection)
    
    
      def movieSelected(self, service):
        if service is not None:
          self.session.open(MoviePlayer, service)


    Um diesen Code auszuführen, ist der Action "showMovies" eine Taste zugeordnet, in der keymap.xml:

    Code
    <map context="InfobarActions">
        <key id="KEY_VIDEO" mapto="showMovies" flags="m" />
        <key id="KEY_RADIO" mapto="showRadio" flags="m" />
        <key id="KEY_TV" mapto="showTv" flags="m" />
      </map>

    (hier also die KEY_VIDEO taste).



    die funktion "showMovies" öffnet den Screen (=Dialog) "MovieSelection", und wenn dieser Dialog fertig ist, wird der rückgabewert von "MovieSelection" wird dann der funktion "movieSelected" übergeben, welche den MoviePlayer mit dem ausgewählten Film öffnet.


    MovieSelection ist in lib/python/Screens/MovieSelection.py definiert,
    und besteht als hauptelement aus einer MovieList-Komponente, also einer Listbox, die Movies anzeigt (in dem gewissen format, mit Zeitdauer etc.)

    Code
    self["list"] = MovieList(None)


    Damit diese liste auch was anzeigt, wird irgendwo "reload" (=load) aufgerufen,

    Code
    self["list"].reload(self.current_ref, self.selected_tags)


    self.current_ref ist der Pfad, mit dem die Liste gefüllt wird. vermutlich willst du diesen ändern.


    Code
    self.current_ref = eServiceReference("2:0:1:0:0:0:0:0:0:0:" + resolveFilename(SCOPE_HDD))


    setzt den pfad. resolveFilename(SCOPE_HDD) liefert "/hdd/movie".

  • Moin tmbinc,
    das nenn ich mal eine Erklärung :smiling_face:


    Ich hab das Problem ein klein wenig anders gelöst.



    - auf der HELP-Taste liegt nun eine selectPath Funktion
    - die erstellt eine Liste aus allen Verzeichnissen in /automount (da werden Freigaben aus dem LAN von einem Fremdimage :winking_face: hingemountet). Und Zusätzlich das normale /hdd/movies.
    - wenn nun ein Pfad ausgewählt wird self.current_ref neu gesetzt und anschließend eigentlich nur noch self.reloadList() und self.updateTags() ausgeführt.


    Dann noch ne Funktion, die das zuletzt eingestelle Verzeichniss sich merkt. Damit du beim 2. Start der Liste du nicht wieder im Originalen landest.


    Funktioniert ganz klasse. Auch die Tags werden sauber neu geladen.


    Die Version der MovieSelection.py folgt die nächsten Tage.


    Grüße

  • noch schöner wäre natürlich, wenn "harddiskmanager.getMountedPartitions" da irgendwie mit einfliessen würde, ähnlich wie in den media-player.


    sobald automount dann mal eingebaut ist (bei der 8000er wirds halt aufgrund der USB-cardreader interessant, aber die kann man ja auch an eine 7025 stecken), sollen die da automatisch auftauchen.


    (Spricht natürlich nichts dagegen, /automount da irgendwie dazuzubauen. Aber ersetzt /automount doch bitte durch einen FHS (http://www.pathname.com/fhs/) tauglichen namen)



    OK, einziger haken den ich sehe: Wenn ein technisch unbewanderter User ausversehen den Pfad verstellt, "funktioniern die Filme nicht mehr". Evtl. sollte das speichern des pfades also optional gestaltet werden.

  • ich hab mal spassweise den USB cardreader vom PC an die Dreambox 7025gelassen, wirklich schön und stabil war das aber nicht, aber ich hoffe natürlich auch das es besser wird und nicht nur auf der 8000er :winking_face:

    2 Mal editiert, zuletzt von Lost in Translation ()

  • So, hier die versprochene MoveSelection.py.


    Es können nun Unterverzeichnisse in /hdd/movies angelegt werden. Diese Unterverzeichnisse kann man mit der Hilfe-Taste wechseln/auswählen. Die Liste der aufnahmen enthält dann nurnoch Filme aus dem ausgewählten Verzeichniss.


    Die Datei kommt nach
    /usr/lib/enigma2/python/Screens/MovieSelection.py


    Aber sichert die original Datei vorher, damit ihr ggf. wieder zurück gehen könnt! Entstehende Chrashlogs bitte nur an mich schicken.


    Die Filme müssen aber von Hand in die jeweiligen Unterverzeichnisse verschoben werden, das kann das Plugin nicht.


    Movietags gehen aber weiterhin.


    tmbinc: Das mit den subdirs erschien mir erstmal sinnvoller als /media/ komplett in die Auswahlliste aufzunehmen. Und den Pfad meitenst du wohl mit "einen FHS tauglichen namen".


    Grüße, 3c5x9

  • Vielen Dank, funktioniert prinzipiell und ist auch eine Super-Idee


    Allerdings ist es so (bei mir) noch nicht praxistauglich, da es 22 Sekunden dauert, bis der Pfad-Auswahldialog nach Drücken der Hilfe-Taste endlich erscheint.


    Ich verwende als Image [Moderator] Fremdimage, verstößt gegen die Boardregeln [/Moderator] auf der 7025. Ggf. liegt es daran, dass ich derzeit recht viele Aufnahmen auf der Platte habe? (21 Aufnahmen derzeit).


    Oder liegt es daran , dass mir in der Pfad-Auswahlliste auch die Ordner ".timeshift" und ".wastebasket" erscheinen, die ich - wenn ich per FTP in das .../media/hdd/movie/*.* Verzeichnis wechsle, gar nicht finden kann?


    Wäre froh, wenn das noch zu beheben ist, da ich es ansonsten eine sehr gute Idee finde.


    Gruß, ecky

    3 Mal editiert, zuletzt von floh ()

  • Hallo Floh,


    sorry , werde es zukünftig berücksichtigen.


    Aber wo in den Bordregeln steht eigentlich, dass ein Verweis auf Fremdimages nicht erlaubt ist. Hab es wirklich nachgelesen und nochmal per Volltext nach Fremdimage gesucht - aber nichts gefunden.


    Grüße, ecky2

  • Zitat

    2.6 Verbotene Inhalte
    Die Themen "Softcams (Emulatoren) sowie "Cardsharing" sind im Dreamboard tabu und werden nicht diskutiert. Beiträge, die derartige Inhalte enthalten, werden vom Boardteam editiert und nach angemessener Zeit gelöscht. Das Umgehen der "Boardzensur" kann den sofortigen Ausschluss des Mitglieds - auch ohne Verwarnung - zur Folge haben.


    Dazu gehören auch Images und Boards die solches ermöglichen oder beinhalten.


    Wenn dich das nicht überzeugt, dann doch sicherlich Punkt 1.3. :winking_face:

    cu


    floh

  • Zitat

    2.6 Verbotene Inhalte
    Die Themen "Softcams (Emulatoren) sowie "Cardsharing" sind im Dreamboard tabu und werden nicht diskutiert. Beiträge, die derartige Inhalte enthalten, werden vom Boardteam editiert und nach angemessener Zeit gelöscht. Das Umgehen der "Boardzensur" kann den sofortigen Ausschluss des Mitglieds - auch ohne Verwarnung - zur Folge haben.


    Zitat

    Original von floh
    Dazu gehören auch Images und Boards die solches ermöglichen oder beinhalten.


    Hallo Floh,


    ich würde darum bitten, dies in den Bordregeln unter 2.6 zu ergänzen.


    Meines Erachtens ist sonst nicht erkennbar, dass Fremdimages nicht erwähnt werden dürfen. Denn verboten sind derzeit demnach nur die Themen "Softcams (Emulatoren) sowie "Cardsharing", zu denen ich ja gar nichts geschrieben habe. Dass sich dies auch auf Fremdimages bezieht ist nur Interpretation, steht dort aber nicht.


    Das nur als Vorschlag, damit auch neue User wissen, wie es gemeint ist. Werde es natürlich zukünftig berücksichtigen.


    Beste Grüße, ecky

    Einmal editiert, zuletzt von ecky2 ()

  • Zitat

    Original von ecky2
    Allerdings ist es so (bei mir) noch nicht praxistauglich, da es 22 Sekunden dauert, bis der Pfad-Auswahldialog nach Drücken der Hilfe-Taste endlich erscheint.
    ...


    Oder liegt es daran , dass mir in der Pfad-Auswahlliste auch die Ordner ".timeshift" und ".wastebasket" erscheinen, die ich - wenn ich per FTP in das .../media/hdd/movie/*.* Verzeichnis wechsle, gar nicht finden kann?


    Ich habe das nochmal nachvollzogen. Das Problem scheint beim Einlesen der Verzeichnisse mit der os.listdir - Schleife (in doPathSelect) zu entstehen. Füge ich zu 'listpath' einfach manuell einen zweiten Listwert hinzu und lasse die Schleife weg, funktioniert das ganze ohne Zeitverzögerung:


    listpath.append(("Videothek",resolveFilename(SCOPE_HDD)+"%s/"+"Videothek"))


    Tritt das nur bei mir auf?


    Vielen Dank, ecky

    Einmal editiert, zuletzt von ecky2 ()

  • Hallo,


    ich habe die MovieSelection.py ein wenig erweitert.
    u.a. läßt sich jetzt übers Contexmenü die Art der Sortierung auswählen.


    http://img411.imageshack.us/im…shot20070406191257xb2.png


    Die Speicherung der Sortierart ist bis jetzt noch recht umständlich realisiert:


    In der MovieSelection.py

    Code
    def sort_datum(self):
    		os.system("echo 1 > /usr/share/misc/moviesort")
    		self.close()
    
    	def sort_alpha(self):
    		os.system("echo 0 > /usr/share/misc/moviesort")
    		self.close()


    Und in der MovieList.py


    In dem FritzCall-Plugin ist dies einfacher und eleganter realisiert:


    config.plugins.FritzCall = ConfigSubsection()
    config.plugins.FritzCall.enable = ConfigEnableDisable(default = False)


    if config.plugins.FritzCall.enable.value:



    Weiß jemand was ich bei meinem Code ändern muß, daß die Speicherung der Sortierart damit funktioniert?



    Hat sich mittlerweile erledigt. Ich habe es selber hinbekommen.


    erweiterter MoviePlayer (Videotaste Menü)



    Ist es eigentlich normal, daß beim Ausschalten oder Neustarten der 7025 die im Speicher gepufferte Konfigurations-Variablen nicht automatisch in der /etc/enigma2/settings gespeichert werden?


    Gruß Ralf

    Two mit SSD, One, 7025-S, 7000-S

    Einmal editiert, zuletzt von ralfK ()