Ankündigung

Einklappen
Keine Ankündigung bisher.

[mmh] Liste erstellen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [mmh] Liste erstellen

    Hallo,

    bzgl. der Listenfunktion in mmh ist die Doku ziemlich dünn. Gibt es hier ausführlichere Infos oder einfache Beispiele zum nachvollziehen?

    Ich versuche eine Abfrage einer Filmdatenbank in eine Liste zu füllen:


    514;;;;;;NOCACHE;
    515;;;;;;NOCACHE;
    [LIST=11]; // XBMC Filme
    SERIAL=514;DIGITAL=515;\*|;;

    Wie sieht denn die Definition des Serial Join 514 aus um das Ergebnis in die Liste zu kriegen?

    [SERIAL]
    514;#;???

    Log der Daten die in die Liste sollen:

    10:14:21.173 - network: udp message from IP, size 32 bytes
    10:14:21.173 - parser: parsing sequence: <UDP.SOCK><JAHR=2006></UDP.SOCK>
    10:14:21.175 - parser: command: UDP.SOCK - JAHR=2006
    10:14:21.175 - parser: reply sequence: <UDP.SOCK>JAHR=|OK</UDP.SOCK>
    10:14:21.175 - commandserver: UDP send: IP:8002 data: SELECT c00 FROM movie WHERE c07=(2006)
    10:14:21.182 - commandserver: UDP receive: IP:8002 data: |300|An Inconvenient Truth|Babel|Blood Diamond|Das Leben der Anderen|Deja Vu|Dreamgirls|Pirates of the Caribbean: Dead Man's Chest|Hollywoodland|The Departed|The Good Shepherd|The Prestige|Volver|Cars|The Da Vinci Code|Penelope|Rescue Dawn|Notebook|Trixie|[END]
    10:14:21.183 - commandserver: translated reply sequence: <UDP.SOCK>DATEN=300|An Inconvenient Truth|Babel|Blood Diamond|Das Leben der Anderen|Deja Vu|Dreamgirls|Pirates of the Caribbean: Dead Man's Chest|Hollywoodland|The Departed|The Good Shepherd|The Prestige|Volver|Cars|The Da Vinci Code|Penelope|Rescue Dawn|Notebook|Trixie|OK</UDP.SOCK>
    10:14:21.196 - network: message parsed

    Klaus

    #2
    Hallo Klaus,

    ich zitiere mich mal selbst, vielleicht wird es dann etwas klarer:
    [LIST={x}]; x entspricht dabei der Analog-Join-Nummer, die man im
    guiDesigner für die Liste gewählt hat

    in dieser Sektion kann man jetzt die Joins auflisten, für die man
    gerne List-Support haben möchte,
    Syntax:
    {Join-Typ=Nummer};{Master-Join-Typ=Nummer};{Match-Sequenz};{Optionen};
    {Local-Action}

    Erklärung:
    {Join-Typ=Nummer} - Beschreibt den Join, für den List-Support
    gewünscht wird, z.B. SERIAL=7 oder ANALOG=3 oder DIGITAL=23, sinnvoll
    ist eigentlich nur SERIAL
    {Master-Join-Typ=Nummer} - Beschreibt den Join, an den der o.g. Join
    angehängt werden soll.d.h. wenn der Master-Join aus der Liste ein
    Event schickt, wird ein Event für den o.g. Join simuliert,
    Syntax wie oben
    {Match-Sequenz} - die Match-Sequenz zur Erzeugung eines
    Listeneintrages, der Match erfolgt subtraktiv
    {Optionen} - weitere Konfigurationsoptionen, z.Zt. ungenutzt
    {Local-Action} - mmh-Sequenz, die ausgeführt werden soll, wenn ein
    Match erfolgt. hier ist als Wildcard neben dem Argument \# zusätzlich
    \& für den Listen-Index möglich


    Zum besseren Verständnis ein Beispiel:
    Man legt im gui Designer eine Subpage für die Listeneinträge an, auf
    dem sich ein Button befindet. Der Button-Text hat den Serial Join 91
    und die Button-Action selbst den Digital-Join 90, die Liste selbst hat
    den Index 1.

    Um die Liste zu füllen, muß man zunächst eine Liste erzeugen, die
    später aufgesplittet und an die einzelnen Listenelemente geschrieben
    wird:
    [SERIAL];
    91;#;<ITUNES><PLAYPLAYLIST=\#></ITUNES>;GETALLPLAYLISTS=\*OK;

    Das ist ein ganz normaler Eintrag für einen Serial Join, wichtig ist
    hier die Matchsequenz: als Ergebnis kommt hier eine Liste aller
    Playlisten heraus:
    Mediathek|Musik|....|zuletzt hinzugefügt|
    In der List-Definiton wird auf diese Liste nochmal subtraktiv gematcht
    und damit die Liste gefüllt:
    [LIST=1];
    SERIAL=91;DIGITAL=90;\*|;;

    Hier wird mit dem Matcheintrag \*| auf das jeweils nächste Element der
    oben erzeugten Liste gematcht und somit sukzessive die Liste erzeugt,
    Button 1 der Liste heißt also "Mediathek", Button 2 "Musik" usw...
    Damit sind die Buttons dynamisch erzeugt und beschriftet.

    Da der iViewer keine Serial-Join-Actions aus einer Liste erzeugen
    kann, "verdongelt" obige Zeile den "Master-Join" d90 mit dem Serial-
    Join s91. d.h. wenn d90 eine list-action sendet, wird automatisch die
    korrespondierende serial-action mit dem passenden Argument simuliert.
    Mit diesem Argument wird dann die "normale" Action des Serial-Joins
    aufgerufen, in diesem Beispiel <ITUNES><PLAYPLAYLIST=\#></ITUNES>,
    siehe oben.
    Du musst eigentlich nur noch auf Deine Liste matchen:
    Code:
    [SERIAL]
    514;#;;DATEN=\*OK;
    Gruß

    Sascha

    Kommentar


      #3
      Tja. Genau so ist es.

      Meine erste Liste

      Jetzt hab ich die Liste und möchte natürlich bei touch auf einen Film diesen mit xbmc starten.

      15:30:57.247 - mRemote: simulating join: s515=Radio Rock Revolution
      15:30:57.247 - mRemote: serial join 515 wildcard-matched at index 12 (arg: Radio Rock Revolution)

      Den Pfad zum Film erhalte ich mit 2 Abfragen der SQL-Datenbank:

      <UDP.SOCK>DATEN=/Volumes/Videos/THE BOAT THAT ROCKED (2009)/VIDEO_TS/|OK</UDP.SOCK>

      <UDP.SOCK>DATEN=VIDEO_TS.IFO|OK</UDP.SOCK>

      Den Abfragen übergebe ich in einem Script das arg:Radio Rock Revolution und setze sie dann wie zusammen damit ich folgenden Befehl senden kann:

      <SYS><OPEN=open -a /Applications/XBMC.app "/Volumes/Videos/THE BOAT THAT ROCKED (2009)/VIDEO_TS/VIDEO_TS.IFO"
      ></SYS> (Der Befehl scheint so auch noch nicht zu funktionieren da die Anführungstrichle nicht übergeben werden. Im Terminal funktioniert der Befehl.)

      515;#;;DATEN=\*OK; matcht jetzt alles was über den Commandserver UDP.SOCK kommt. Wie kann ich festlegen für welche Abfrage gematcht werden soll?

      Bitte um Gnade falls die Fragen gar zu doof. Hab noch nicht wirklich verstanden wies funktioniert?

      Klaus

      Kommentar


        #4
        514;#;<SYS><OPEN=open -a /Applications/XBMC.app "/Volumes/Videos/\#/VIDEO_TS/VIDEO_TS.IFO"
        ></SYS>;

        Wäre der korrekte Eintrag für den serial Join.

        Was das allerdings mit den Ausführungszeichen soll, prüfen wir. Die werden in der Tat ignoriert.

        LG

        Kommentar


          #5
          Ergänzend zu:

          514;#;<SYS><OPEN=open -a /Applications/XBMC.app "/Volumes/Videos/\#/VIDEO_TS/VIDEO_TS.IFO"
          ></SYS>;;;[LOCAL ACTION]


          Wobei [LOCAL ACTION] dann natürlich mit den Abfragen für die zus. Infos belegt werden kann also "<GET JEAR OF FILM=\#>""<GET PRODUCER OF FILM=\#>".

          ....

          Kommentar


            #6
            load dynamic images from cache

            Hallo,

            in der Google group von Commandfusion hab ich diesen Hinweis zu dynamischen Listen gefunden:

            The next release (awaiting app store approval, with iPad support)
            supports setting dynamic image urls to cached image paths.
            This allows you to create a page that you might never flip to, and
            just fill it with any images you want cached. Then you can later set
            the serial join to the image filename and it will load up the cached
            image instantly.
            The URL format would be just music.png in your example.
            If not loading from cache, images cannot be served from local
            computers or devices on the network using network paths, only web
            servers (using HTTP URLs).
            iViewer v3.3 build 110 adds this 'load dynamic images from cache'
            feature.
            Jarrod
            On Mar 30, 2:27 am, Josh <enco.j...@gmail.com> wrote:

            Hat das schon mal jemand probiert und vielleicht einen Hinweis wie das funktioniert? Möchte eine Liste mit dynamischen Bildern im Hintergrund laden und bei Bedarf Teile daraus aus dem Cache darstellen.

            Gruß Klaus

            Kommentar


              #7
              Zitat von sunnyhd Beitrag anzeigen
              Hat das schon mal jemand probiert und vielleicht einen Hinweis wie das funktioniert? Möchte eine Liste mit dynamischen Bildern im Hintergrund laden und bei Bedarf Teile daraus aus dem Cache darstellen.
              Frag mal im hsfusion Forum nach, daniel.duese und michel38 haben das soweit ich weiß für die Wetterseite verwendet.
              Nils

              aktuelle Bausteine:
              BusAufsicht - ServiceCheck - Pushover - HS-Insight

              Kommentar


                #8
                Du musst einen Ordner erstellen in den Du die Ions ablegst. Dann eine Seite im GUI Designer anlegen, auf die die ganzen Ions ablegen. Dann sendest Du Ordnername/Icon.png über den serialjoint und das Bild wird im Iviewer Local aufgerufen.


                Über Mobile Device

                Kommentar


                  #9
                  So macht es mmh auch mit den Logos der Fernsehsender für eyetv.
                  Dafür müsste ich für jedes Thumbnail ein Element erstellen.
                  Kann man auch eine dynamische Liste versteckt füllen und gecachte Listenelemente anzeigen?

                  Bsp:
                  Ich hole mir die Thumbnails aller Filme aus der XBMC Datenbank per Commandserver in eine Liste die nicht angezeigt wird.
                  Wenn ich einen Film starte soll per Match des Filmnamens das dazugehörige Thumbnail aus der versteckten Liste angezeigt werden statt per Webserver die URL des aktuell spielenden Films abzurufen.

                  Suche nach der besten Möglichkeit die Ladezeiten von Bildern/Fanart so gering wie möglich zu halten.

                  Gruß
                  Klaus

                  Kommentar

                  Lädt...
                  X