RFC: neues Plugin

  • Hallo,


    hier ist es nun, mein erstes Plugin :] , welches keine Funktionalität bietet.


    Wie? Ja, schon, aber nicht ganz.
    Es ist ein Plugin, welches Medien-Daten (egal ob Musik, Video, oder sonst was) aus einer mysql-Datenbank anzeigt.
    Die Medien sind hierzu in div. Kategorien eingeteilt, damit sich das ganze besser strukturieren läßt.


    Eine Suchfunktion gibt es auch, so kann z.B. nach Titel gesucht werden, aber auch nach Darsteller, Regisseur, etc.


    Bei der Medien-Darstellung gibt es die Möglichkeit, Beschreibungen anzuzeigen (wie bei Aufnahmen oder EPG) und Besetzungen anzuschauen. Bei den Medien kann ein Feld für die Jukebox-Anhänger verwendet werden, welches dann im nächsten Schritt an das Interface weitergereicht wird.


    Im nächsten Schritt ist geplant, die Jukebox-Anbindung einzubauen (mit denen, die bereits eine JB am Laufen haben, oder kurz davor sind :mua ).


    Ich freue mich über jede (ernstgemeinte) Kritik, Wünsche, Verbesserungsvorschläge, etc.


    P.S. Wegen der Größenbeschränkung beim Dateianhang kann ich leider nur die Sourcen anbieten.

  • Das Thema Musik, Video, Bilder usw. Verwaltung bei dem für jedes Medium der richtige Player aufgerufen wirdusw. , ist bei Muggle auch geplant(?). Die Datenbanken usw. Sind dort auch schon dafür vorbereitet(?).


    Ich weiß nicht wie der aktuelle Entwicklungsstand bei Muggle ist und ob da noch in welche Richtungen weiterentwickewlt wird. Aber ich bin der Meinung dass, das eine gute Grundlage wäre die man erweitern könnte. Vielleicht gibts in Muggle schon eine VDR-Aufnahmen verwaltung. Dann müsste man nur noch ein paar Script aufrufe umsetzen...


    Mfg
    Ulrich

    Aktuelle Systeme:
    VDR-Server: MSI KT6A Ultra FISR ; Athlon XP 2200+ ; GrKa Geforce 2 MX; 256MB DDR-SDRam Plugins: streamdev-server, remote
    2 x DVB-Budget Karte, Gentoo, Kernel 2.6.8 usw....

  • Zitat

    ... , ist bei Muggle auch geplant(?). Die Datenbanken usw. Sind dort auch schon dafür vorbereitet(?).


    Hm - vielleicht kann ich ja nicht lesen?


    Nach einem Blick auf das Datenmodell von muggle ist die Hauptausrichtung ganz klar die Musik. Außerdem will muggle selber spielen und nicht "bloß" verwalten, muggle erfordert einen neuen Compiler und last but not least: muggle installiert nen db-server. Den will ich auf der vdr-Maschine aber garnicht haben (zumindest nicht fordern. Klar geht auch c/s-Verbindung auf einem Rechner).
    So ist "meine" Medienverwaltung deutlich schlanker, benötigt nur die client-lib (ca, 1,2Mb) zum Laufen und ist auch mit älteren vdr-Versionen kompatibel (kann mit 2.95 übersetzt werden).


    Das Thema Medien-Verwaltung hatten wir ja schon mal - und da waren die meisten wohl mit VideoDB zufrieden, was für mich heißt, dass es wohl wenige gibt, die Musik und Videos sammeln.
    Vielleicht bleibe ich ja nicht der einzige, der beides möchte :]

    Ich bin verantwortlich für das, was ich schreibe, nicht für das, was Du verstehst!

    Einmal editiert, zuletzt von geronimo ()

  • jo da haste recht. Habe mir au nomal ein bissele muggle angeschaut und im Prinzip ist es jetzt nur Musik was dort verwaltet wird. Ob man jetzt an muggle weitermacht oder was selbst entwickelt kommt aufs gleiche raus...

    Aktuelle Systeme:
    VDR-Server: MSI KT6A Ultra FISR ; Athlon XP 2200+ ; GrKa Geforce 2 MX; 256MB DDR-SDRam Plugins: streamdev-server, remote
    2 x DVB-Budget Karte, Gentoo, Kernel 2.6.8 usw....

  • Hallo,


    Zitat

    Original von geronimo
    Nach einem Blick auf das Datenmodell von muggle ist die Hauptausrichtung ganz klar die Musik.


    Klar, im README steht aber auch was von geplanten Erweiterungen für EPG, Recordings und Images. Der Code ist dank Wolfgangs Arbeit nun auch flexibler, um diese Dinge einfacher einbauen zu können. Das Schema wird dazu natürlich erweitert werden.


    Zitat

    Original von geronimo
    Außerdem will muggle selber spielen und nicht "bloß" verwalten,


    Mmmh, der Sinn von verwalten ohne abspielen erschliesst sich mir noch nicht. Guckst Du im TV welche CDs Du hast um sie dann aus dem Regal zu holen? Vielleicht hilfst Du mir da ja auf die Sprünge.


    Zitat

    Original von geronimo
    muggle erfordert einen neuen Compiler


    "neu" ist relativ. 2.95 is steinalt und hat partiell Schwierigkeiten mit C++, sorum wäre es wohl richtiger. Brauchst Du 2.95 wegen LinVDR?


    Zitat

    Original von geronimo
    und last but not least: muggle installiert nen db-server.


    Das ist definitiv falsch. Du kannst muggle genausogut mit der Client-lib laufen lassen oder embedded, die nächste Version unterstützt auch noch Sqlite und (Postgres).


    Wenn ein mySQL-Server installiert wird liegt das vermutlich an Deiner Distribution.


    Ich will keinen Streit vom Zaun brechen und auch Deine Arbeit nicht kritisieren, will nur die sachlich falschen Aussagen etwas richtig stellen.


    Lars

  • Zitat

    Original von maverick-me
    Wo wir gerade beim Richtigstellen sind, die 0.1.7 Muggle Version läuft bei mir der 1.3.27'er VDR und nem 2.95'er gcc durch (ich gluab aber ich hab noch was dran geändert).


    Vielleicht kannst Du mir die Änderungen an den Sourcen zuschicken, wir haben eigentlich immer schon auf Kompatibilität mit 2.95 geachtet, um auch mit LinVDR kompatibel zu sein.


    Lars

  • Hallo geronimo,


    leider bekomme ich dein Plugin 0.0.1c nicht durch den Compiler?



    gcc (GCC) 3.3.5 20050117 (prerelease) (SUSE Linux)
    mysql Ver 14.7 Distrib 4.1.10a, for suse-linux (i686)
    Restliche Angaben siehe Signatur.


    Ist das Plugin eigentlich kompatibel zu VideoDB und dessen Datenbank Struktur, bzw. würdest du es soweit erweitern?
    Das wäre für mich dann die perfekte Lösung, ein geniales Verwaltungstool mit VideoDB und dein Plugin um mal einen Film/DVD am VDR suchen zu können.



    Bye,
    Frank

  • LarsAC


    also bei der Originalversion bekomm ich beim compilieren:

    aber nach den kleinen Änderungen (hab mal schnell nen diff gemacht)


    läuft muggle ohne Probleme durch.
    Nur gestetet mit einem externen MySQL nicht mit der embedded Variante.

  • LarsAC:
    Tut mir aufrichtig sorry, wenn ich eine falsche Behauptung in die Welt gesetzt habe. Ich hab mich im Wiki und den dortigen Links "schlau" gemacht. Was dort an Vorbereitungen notwendig ist, um muggle zu verwenden, sah für mich eben so aus, wie ich es geschrieben habe. Vielleicht habe ich ja auch was falsch verstanden, die Bibliothek, die für muggle übersetzt wurde, dient auf jeden Fall zum direkten Zugriff auf die DB - was für mich impliziert hat, dass die Datenbank auf der VDR-Maschine laufen muss.
    Das passt für mich aber nicht zu LinVDR.
    Muggle selber habe ich mir nicht angesehen. Ein Blick auf das Datenmodell hat mir gereicht.


    @all:
    Ich zähle mich definitiv zu den Fan's von LinVDR und begrüße sowohl das Konzept, alsauch die Umsetzung. Von sonstigen Sympathien will ich erst garnicht anfangen.


    Klar hab auch ich nen fetten Server, der nix mit LinVDR zu tun hat, aber das ist für mich kein Widerspruch. Auf dem (geplanten) Wohnzimmer-VDR läuft nur LinVDR.
    Deshalb sind das die Regeln, nach denen ich mich richte (z.B. compiler-Version und Konzept).


    Zitat

    Mmmh, der Sinn von verwalten ohne abspielen erschliesst sich mir noch nicht. Guckst Du im TV welche CDs Du hast um sie dann aus dem Regal zu holen? Vielleicht hilfst Du mir da ja auf die Sprünge.


    1.) Als ich das Thema 'Medienverwaltung' mal ansprach, kam auch eine Zuschrift von einem Forumsmitglied, der gerne eine Recherche-Funktion hätte, um zu sehen, ob eine Aufnahme schon in seinem Pool vorhanden ist. Es soll Leute geben, die bereits an die 800 Scheiben haben. Die alle im Kopf zu verwalten wird schon etwas schwierig.


    2.) Ich habe mich etwas an DVDSelect orientiert. Bedingt durch die Diskussion im Jukebox-Thread. Mir hat es einfach gefallen, dass DVDSelect die DVD's zur Auswahl anbietet, das Abspielen aber dem DVD-Plugin überläßt. Ich habe keine klanglichen Wünsche an das mp3-Plugin oder das DVD-Plugin. Deshalb möchte ich es auch so handhaben, dass aus der Verwaltung dieses oder ein anderes Plugin zum Abspielen der Medien verwendet wird.


    Das ist doch auch das Konzept von VDR: modular, sodass sich jeder selbst raussuchen kann, welche plugins er gerne hätte. Bei meiner Variante genügt ein Eintrag bei den Medienarten, um (später) das entsprechende Plugin zum Abspielen zu verwenden.


    Was haltet Ihr (die muggle-Truppe) davon, Verwaltung und Abspieler zu trennen?
    Wenn Ihr Interesse habt, können wir auch gerne über ein "merging" reden.


    Zitat

    ... leider bekomme ich dein Plugin 0.0.1c nicht durch den Compiler?
    ... gcc (GCC) 3.3.5 20050117 (prerelease) (SUSE Linux)


    Sorry, aber zu dem Compiler kann ich überhaupt nichts sagen.
    Mit 2.95 und 3.3 läuft es fehlerfrei durch.


    Wenn im 3.3.5 was am Preprozessor geändert wurde, mußt Du die entsprechende Stellen halt auskommentieren. Ist sowieso nur eine Debug-Hilfsfunktion - beeinträchtigt die Funktionsweise nicht.


    Wie gesagt, für mich gibt LinVDR die Regeln vor - und die heißen heute eben noch 2.95!


    Zitat

    Ist das Plugin eigentlich kompatibel zu VideoDB und dessen Datenbank Struktur, bzw. würdest du es soweit erweitern?


    Stand heute ist es nicht kompatibel. Ich habe über diese Möglichkeit auch schon nachgedacht. Momentan gibt es noch 2 Gründe, die mich davon abhalten:
    1. mysql kann noch keine views
    2. VideoDB gehört für mich zu den Anwendungen, die ich als Webmaster nicht leiden kann. Vor der Installation werden die Fehlermeldungen ausgeschaltet und dann läuft es nicht, weil es feststellt, dass mysql nicht so eingerichtet wurde, wie die Erfinder es gerne gehabt hätten.
    Sicherheit ist für mich ein sehr wichtiger Punkt - vielleicht bin ich etwas zu paranoid - aber damit kann ich leben.


    Das Thema 'VideoDB' ist für mich noch nicht fertig, aber ich bin mit mir noch nicht im Reinen, wie ich's machen möchte.

    Ich bin verantwortlich für das, was ich schreibe, nicht für das, was Du verstehst!

  • Hi Geronimo,


    die Einträge im Wiki sind scheinbar nicht auf dem neuesten Stand. Kannst Du nicht wissen, andererseits macht es bei der Schnelllebigkeit von Entwicklerversionen m.E. schon Sinn, mal selber in die aktuelle Version -- aber egal. Nun haben wir die offenen Fragen ja geklärt.


    Ich bekräftige nochmal das LinVDR sicher zu unserer Zielgruppe gehört und von MarcTwain gibt es ja auch einige Patches, in denen aktuelle muggle-Versionen enthalten sind.


    Zum Thema abspielen/verwalten: wenn Du von Aufnahmen redest macht eine Offline-Verwaltung natürlich durchaus Sinn. Wenn ein Plugin mir sagt, auf welcher DVD eine Aufnahme ist, die ich gerade als timer programmieren will ist das natürlich sehr willkommen. Für Musik finde ich es nicht gerade berauschend...


    In diesem Sinne ist ein Abspieler natürlich immer nur eine Option -- muggle könnte natürlich auch einfach nur das Album einer CD ausgeben, wenn die entsprechende mp3-Datei nicht zu finden ist. Dann kann man immer noch das Album suchen gehen (meine CDs stehen nicht mehr im Wohnzimmer). So gesehen ist eine Trennung zwischen Verwaltung und Abspielen durchaus denkbar.


    Eine Trennung würde ich aber vor allem auf VDR-Ebene für sinnvoll halten. Den ganzen Code zum abspielen von irgendwas dupliziert mittlerweile jedes Plugin und das ist IMHO unglücklich.


    Muggle kopiert mp3 und ogg vom mp3-Plugin, vbox kopiert sndfile vom mp3plugin, asterisk kopiert sndfile vom vbox-Plugin, der Patch für background-images in mp3/muggle ist weitgehend identisch mit dem Image-Plugin und so weiter.


    Besser wäre es, die Verwaltung und das Abspielen schon auf VDR-Ebene zu trennen. Dann könnte jedes Plugin sagen, spiel mir Datei xyz ab und der VDR würde das richtige Plugin dafür aufrufen. Das würde voraussetzen, dass man nicht nur sowas wie ein Plugin als separate Bibliothek definiert, sondern auch etwas wie einen cPlayer. Jedes Player-Objekt müsste sich beim laden für bestimmte Dateitypen registrieren und könnte von allen Plugins über eine Art PlayerManager angefragt weden.


    Das würde dem Code-Wildwuchs etwas einhalt gebieten und vereinfachen, sich auf Verwaltung ODER Medienwiedergabe zu konzentrieren.


    Sorry, das hat nicht wirklich viel mit Deinem Plugin zu tun, geistert aber schon länger in meinen Hirnwindungen herum und musste nun einfach mal raus. Vielleicht übersetze ich das mal und schicke es an die ML.



    Gruß,
    Lars
    (der gerade die Coveranzeige in muggle eingebaut hat)

  • Zitat

    Besser wäre es, die Verwaltung und das Abspielen schon auf VDR-Ebene zu trennen. Dann könnte jedes Plugin sagen, spiel mir Datei xyz ab und der VDR würde das richtige Plugin dafür aufrufen. Das würde voraussetzen, dass man nicht nur sowas wie ein Plugin als separate Bibliothek definiert, sondern auch etwas wie einen cPlayer. Jedes Player-Objekt müsste sich beim laden für bestimmte Dateitypen registrieren und könnte von allen Plugins über eine Art PlayerManager angefragt weden.


    Siehst Du, genau das macht DVDSelect. Es zeigt die Verwaltungsinformationen an und wenn es dann ans spielen geht, gibt es die Kontrolle ab.
    Das versteh ich unter ein modulares Konzept verwenden (copy und change hat nix mit modular zu tun).


    Zitat

    Vielleicht übersetze ich das mal und schicke es an die ML.


    Ist die ML auch für Plugin-Entwickler?
    Meineserachtens bietet der vdr bereits alles, was man braucht, um auch modular arbeiten zu können.
    Ist IMHO nur eine Frage der Disziplin.

    Ich bin verantwortlich für das, was ich schreibe, nicht für das, was Du verstehst!

  • Wie würdest Du ein Plugin aufrufen, eine Datei xyz.flac abzuspielen?


    Disziplin ist eine Sache, die richtigen Schnittstellen gehören aber schon dazu. Und alle haben wir dazu noch nicht. Aber wir können mithelfen, dass es sie gibt.


    Leider ist mein Elan da oft gebremst, weil kls da doch recht, naja, sagen wir "konservativ" ist.


    Lars

  • Hallo Lars,


    Zitat

    Original von LarsAC
    Wie würdest Du ein Plugin aufrufen, eine Datei xyz.flac abzuspielen?


    Keine Ahnung! Gibt's schon ein plugin, das das kann?


    Falls ja, dann würde ich es analog zu DVDSelect so probieren:

    Code
    strcpy(dvdpluginname,"dvd");
    
    
    for (int i = 0; ; i++) {
        cPlugin *p = cPluginManager::GetPlugin(i);
        if (p) {
    	if (strcasecmp(dvdpluginname,p->Name())==0){
    	   p->MainMenuAction();
    	   break;
    ...


    Wünsche Dir noch einen schönen Abend

    Ich bin verantwortlich für das, was ich schreibe, nicht für das, was Du verstehst!

  • Zitat

    Original von geronimo



    Keine Ahnung! Gibt's schon ein plugin, das das kann?


    Muggle kanns, lausche gerade Pink Floyd in .flac...


    Zitat

    Original von geronimo
    Falls ja, dann würde ich es analog zu DVDSelect so probieren:

    Code
    strcpy(dvdpluginname,"dvd");
    
    
    for (int i = 0; ; i++) {
        cPlugin *p = cPluginManager::GetPlugin(i);
        if (p) {
    	if (strcasecmp(dvdpluginname,p->Name())==0){
    	   p->MainMenuAction();
    	   break;
    ...


    Viel Spass bei dem Versuch... Das zeigt nur das Muggle-Hauptmenü an, mehr nicht. Es fehlt eben eine Schnittstelle, mit der Du sagen kannst, diese Datei abspielen und mehr nicht, aber mit einer vorgegebenen Anzeige des Players etc. Da ist schon noch mehr zu tun, als beim DVD-Plugin.


    Lars

  • Guten Morgen Lars,


    Zitat

    Muggle kanns, lausche gerade Pink Floyd in .flac...


    Das ist doch schön. Kannst Du mir vielleicht auch erklären, warum .flac ? (Wäre vielleicht etwas OT?!? - interessieren würde es mich schon.)


    Zitat

    Viel Spass bei dem Versuch... Das zeigt nur das Muggle-Hauptmenü an, mehr nicht. Es fehlt eben eine Schnittstelle, mit der Du sagen kannst, diese Datei abspielen


    Ich schätze, dass es mir nicht nur mit muggle so gehen wird.


    Ebenso überzeugt bin ich auch davon, dass es auch ohne Schnittstellen(-Änderung) gehen könnte. Kwasi auf freiwilliger Basis.
    Wenn jeder 'Spieler' einen default-Platz und/oder eine default-Datei hätte, die er bei Vorhandensein abspielt (und dies auch publiziert), könnte der 'Verwalter' dafür sorgen, dass vor dem Aufruf von 'MainMenuAction' die defaults richtig gesetzt sind.


    Ich sagte ja schon, dass es auch mit Disziplin geht. Der Wille zur Zusammenarbeit müßte natürlich auch da sein. Eine Schnittstellen-Änderung ist doch nichts anderes, als die Zusammenarbeit 'by Obermufti' ;D

    Ich bin verantwortlich für das, was ich schreibe, nicht für das, was Du verstehst!

    2 Mal editiert, zuletzt von geronimo ()

  • Flac ist der Free Lossless Audio Codec -- also verlustfreie Codierung einer CD. Verlustbehaftete Komprimierung a la mp3 schmeckt mir bei meinen guten CDs nicht wirklich...


    Was Du beschreibst ist ja eine Schnittstelle -- man einigt sich halt. Du nennst es eben nur anders, aber es bleibt dasselbe.


    Lars

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!