Atmolight - Release 0.0.4

  • Hallo,


    schon wieder ist es soweit: es gibt vor meinem 2-wöchigen Urlaub
    eine neue Version des Atmolight-Plugins.


    Hier downzuloaden: vdr-atmo-0.0.4.tgz


    Änderungsauflistung befindet sich in der History-Datei.


    Was fehlt für eine nächste Version und kann von interessierten Usern beigesteuert werden:
    - Änderung der internen Arbeitsweise beider Filter von tColorPacket auf tColorPacketInt zum Sparen von CPU-Zeit
    (im Moment wird nur am Anfang und am Ende in das benötigte Format umgewandelt) (samc, fishbonev?)
    - Änderung der internen Arbeitsweise von inputvideo0 von tColorPacket auf tColorPacketInt zum Sparen von CPU-Zeit
    (im Moment wird nur am Ende in das benötigte Format umgewandelt) (samc, fishbonev?)
    - Internationalisierung aller notwendigen Texte (Einfügen in 18n und Übersetzen; bitte keine automatisierten Übersetzungen)
    - Hinzufügen von neuen Inputdevices um nicht auf /dev/video0 angewiesen zu sein (Softdevice, ffmpeg, libmpeg2, etc.)


    Bei Fragen, Anregungen, etc. bitte hier posten.


    Viel Spaß beim Testen
    Samael


    P.S.: Diesen Thread bitte NUR zur Diskussion der Software verwenden.
    Es soll hier nicht um irgendwelche Sets gehen.


    P.P.S: Die Aufrufparameter wurden wieder geändert!
    Diese mal sollten sie aber ein bischen länger so bleiben :).
    Bei Einsatz dieser Version müssen sie in der runvdr angepaßt werden;
    bei Einsatz von Distributionen entsprechend.


    P.P.P.S: @Simon: Dein Widescreen-Mode ist eingebaut, das Wiki wartet
    auf Deinen Eintrag :).

  • Hallo Samael,


    >Widescreen
    na wunderbar, vielen Dank..


    leider hab ich das erst heute gelesen und gestern schon mit der Farbraumsache angefangen, naja, heute Abend les ich mich mal in dein neues Datenformat ein :-)


    Wiki mach ich dann schon, klar, Rest schau ich mir dann auch an!


    bist weg im Urlaub? Wenn ja, viel Spass!


    Viele Grüße,
    Simon

  • Hallo DKTV,


    wenn du kein Input Device angibts, dann wird das Plugin auch nix ausgeben. Auch nicht wenn du per SVDRP was vorgibts.
    Also mach doch mal ein "-i VIDEO0" dazu.


    Was steht im syslog?


    Grüß,
    Simon

  • hmm ich hab nur ne Budget Karte also kein VIDEO0.... bei mir läuft das ganze über xine... was könnte ich denn als Input angeben? Bekomme im Moment halt nur ein "info: Atmolight: Could not open input device!"


    Gruß
    DKVT

  • Hallo DKVT:


    das ist schade, ohne /dev/video0 läuft atmolight im Moment nicht, da muss erst jemand was passendes Programmieren.... :-)


    Aber gib doch mal VIDEO0 an, vielleicht gehts, weiß das im Moment auch nicht genau...


    Grüße,
    Simon


  • Die Budget Karten haben ja keien V4l Interface also /dev/video0 also glaube ich nciht das es geht, deshalb geht tvtime oder svdrp grab ja nur mit FF.


    Gruss,
    Mattheus

  • Zitat

    Original von Samael
    ...P.P.S: Die Aufrufparameter wurden wieder geändert!
    Diese mal sollten sie aber ein bischen länger so bleiben :).
    Bei Einsatz dieser Version müssen sie in der runvdr angepaßt werden;
    bei Einsatz von Distributionen entsprechend.
    ...


    Hallo Samael,


    Danke für die neue Version.
    Kannst Du bitte für die User, die nicht die Parameter in der runvdr übergeben
    können (LinVDR-User), die Namen der Parameter-Variablen bekannt geben?
    Dann können diese gesetzt und fest eincompiliert werden.


    Danke und Gruß Kail

    VDR: ASUS P4P800-VM, Celeron 2.5 GHz, 256 MB-RAM, 2 x 160 GB Samsung SV1604N, TT 1.5 (4MB), TT-Budget, Extension-Board (TBE)
    LinVDR0.7 + Dr.Seltsam 2.6.18 + vdr-1.4.7 + BP + diverse Plugins
    Betatester v. steini-Paketen
    Test-VDR: ASUS P5QL Pro, E7500, 4 GB RAM, 1TB WD EADS, Media-Pointer S2, Ubuntu10.10 + vdr-1.7.16

  • So, ich hab jetzt ne alte analoge WinTV-Karte eingebaut ;-) Nun hab ich auch ein VIDEO0-Device aber jetzt mosert Atmo: "info: Atmolight: Could not open output device!"
    Als Parameter hab ich "-o SERIAL=/dev/ttyS0" angegeben... jmd. ne Idee?


    Zur Info: ein manuelles "echo TEST > /dev/ttyS0" funktioniert einwandfrei.



    Hmm, könnte mir auch bitte jmd. den Syntax der seriellen Kommandos erklären? Ich blicke da nicht so richtig durch und wenn die Hardware aufgebaut ist würd ich sie schon gern testen.


    Ein Beispiel wie: Schicke das an COM1 und alle roten LEDs leuchten wäre traumhaft.


    Gruß
    DKVT

  • Hallo DKVT,


    Zitat

    So, ich hab jetzt ne alte analoge WinTV-Karte eingebaut ;-) Nun hab ich auch ein VIDEO0-Device


    Hmm, analoge WinTV = FF-DVB-Karte? Ich weiß ja nicht...


    Zitat

    Hmm, könnte mir auch bitte jmd. den Syntax der seriellen Kommandos erklären? Ich blicke da nicht so richtig durch und wenn die Hardware aufgebaut ist würd ich sie schon gern testen.


    Hast Du den wiki-Eintrag schon gelesen? Serielles Protokoll
    Einfach für die entsprechenden Farbanteile die Werte angeben (aber nicht als ASCII-Text!), und darauf achten, daß man auch den richtigen Kanal erwischt!
    Ach ja, und die Baudrate sollte natürlich auch stimmen.


    Viel Spaß beim Testen,
    Daniel

  • daniel_k


    Ja die WinTV ist ja nur zu Testzwecken. Lag halt gerade hier rum und da das Plugin ohne VIDEO0-Device ja den Dienst verweigert, wars halt die schnellste Alternative.


    So, mein Problem mit dem Output-Fehler hab ich auch gelöst, der User VDR musste halt noch in die richtige Gruppe.


    Jetzt bekomm ich wenigstens Daten über die serielle Leitung, ABER ins Wiki hab ich schon reingeschaut. Ich versteh das Format im Moment noch nicht so richtig... bin zwar gerade dabei ein paar Sachen zu testen, aber ein Beispiel mit Erklärung wäre halt super, dann würde ich das sicher auch kapieren.


    Gruß
    DKVT

  • Hallo DKVT,


    Das Format ist echt simpel, besteht ja auch nur aus 19 Bytes.
    Du müßtest sowas schicken:


    0xFF 0x00 0x00 0x0F 0xFF 0x00 0x00 0xFF 0x00 0x00 0xFF 0x00 0x00 0xFF 0x00 0x00 0xFF 0x00 0x00 (natürlich nicht als Text).
    Das gibt auf allen Kanälen ein "Rot" aus.


    Gruß,
    Daniel


  • Hallo,


    hat schon einer eine Antwort bzw. die Namen der Parameter-Variablen oder
    u.U. ein diff für LinVDR-User?


    Gruß Kail

    VDR: ASUS P4P800-VM, Celeron 2.5 GHz, 256 MB-RAM, 2 x 160 GB Samsung SV1604N, TT 1.5 (4MB), TT-Budget, Extension-Board (TBE)
    LinVDR0.7 + Dr.Seltsam 2.6.18 + vdr-1.4.7 + BP + diverse Plugins
    Betatester v. steini-Paketen
    Test-VDR: ASUS P5QL Pro, E7500, 4 GB RAM, 1TB WD EADS, Media-Pointer S2, Ubuntu10.10 + vdr-1.7.16

  • Hallo zusammen,


    Zitat

    hat schon einer eine Antwort bzw. die Namen der Parameter-Variablen oder
    u.U. ein diff für LinVDR-User?


    Da ich mich mit LinVDR null auskenne, muß ich mal doof nachfragen...
    Was für Variablen-Namen braucht Ihr? Und warum schaut ihr nicht einfach
    in den sourcecode?


    Gruß,
    Daniel

  • Hallo daniel_k,


    da LinVDR-User beim Aufruf der Plugins keine Parameter übergeben können,
    sollten diese im Plugin selber einstellbar sein oder müssen fest eincompiliert
    werden. Da eine Einstellung im Plugin nicht vorgesehen ist und in den
    Sourcen eine Stelle bei der die Variable zu Fuß gesetzt werden kann noch
    nicht umgesetzt ist, kann man nur versuchen die Parameter in den Sourcen
    an der richtigen Stelle einzutragen.
    Bei diesem Versuch bin ich momentan gescheitert und wäre für Unterstützung sehr dankbar.


    Am besten wäre es noch für o.a. Fall in den Sourcen eine Variable
    einzufügen, deren Wert (z.B. VIDEO0 und "/dev/ttyS0") manuell eingetragen
    werden muss und dann mit abgefragt und compiliert wird.


    Die ganze Problematik hatte Eberhard bei der "i-Version oder bei der 0.0.2 schon einmal angesprochen.


    Gruß Kail

    VDR: ASUS P4P800-VM, Celeron 2.5 GHz, 256 MB-RAM, 2 x 160 GB Samsung SV1604N, TT 1.5 (4MB), TT-Budget, Extension-Board (TBE)
    LinVDR0.7 + Dr.Seltsam 2.6.18 + vdr-1.4.7 + BP + diverse Plugins
    Betatester v. steini-Paketen
    Test-VDR: ASUS P5QL Pro, E7500, 4 GB RAM, 1TB WD EADS, Media-Pointer S2, Ubuntu10.10 + vdr-1.7.16

  • Hallo Kail,


    Zitat

    da LinVDR-User beim Aufruf der Plugins keine Parameter übergeben können,
    sollten diese im Plugin selber einstellbar sein oder müssen fest eincompiliert
    werden.


    Aha, verstehe. Das Konzept finde ich zwar etwas komisch, aber sei`s drum...


    Zitat

    Bei diesem Versuch bin ich momentan gescheitert und wäre für Unterstützung sehr dankbar.


    Kein Problem, dann versuche ich es mal:


    In der Funktion


    Code
    1. bool cPluginAtmo::ProcessArgs(int argc, char *argv[])

    in der atmo.c mußt Du eigentlich nur den Inhalt gegen


    Code
    1. AtmoSetup.AtmoInput = video0;
    2. AtmoSetup.AtmoOutput = serial;
    3. AtmoSetup.output_arg = "/dev/ttyS1";
    4. return true;

    austauschen. Die Funktion


    Code
    1. const char *cPluginAtmo::CommandLineHelp(void)

    solltest dann wohl auch nur ein


    Code
    1. return null;

    enthalten.


    Gruß,
    Daniel

  • Hallo,


    Zitat

    wenn ich es richtig verstanden haben, dann
    entspricht AtmoSetup.output_arg = "/dev/ttyS0"; com1
    und AtmoSetup.output_arg = "/dev/ttyS1"; com2 ?


    Genau! Für USB<->Seriell-Wandler wäre es dann "/dev/ttyUSB0" usw.


    Gruß,
    Daniel

  • Klasse,


    in atmo.c
    bei
    bool ... ProcessArgs(int argc, char *argv[])
    die originalen Eiträge auskommentiert.


    AtmoSetup.AtmoInput = video0;
    AtmoSetup.AtmoOutput = serial;
    if (AtmoSetup.Device == 0)
    AtmoSetup.output_arg ="/dev/ttyS0";
    if (AtmoSetup.Device == 1)
    AtmoSetup.output_arg ="/dev/ttyS1";
    if (AtmoSetup.Device == 2)
    AtmoSetup.output_arg ="/dev/ttyS2";
    if (AtmoSetup.Device == 3)
    AtmoSetup.output_arg ="/dev/ttyS3";
    eingetragen


    in setup.h
    int Device; // Atmolight device
    vor
    int StartMode; // Atmoligt start mode: on, off, timer dependent


    in setup.c


    #define SETUP_DEVICE "Device"
    vor
    #define SETUP_STARTMODE "Startmode"


    static const char *DeviceModeTexts[4];
    vor
    static const char *useStartModeTexts[3];


    (geht noch weiter)
    DeviceModeTexts[0] = "com1";
    DeviceModeTexts[1] = "com2";
    DeviceModeTexts[2] = "com3";
    DeviceModeTexts[3] = "com4";
    vor
    useStartModeTexts[0] = "on"; // start with always on



    Device = 0; // com port of Atmolight
    vor
    StartMode = 0; // start mode = always on



    bei
    bool cAtmoSetup::SetupParse(const char *Name, const char *Value)


    if (!strcasecmp(Name, SETUP_DEVICE)) Device = atoi(Value);
    else if (!strcasecmp(Name, SETUP_STARTMODE)) StartMode = atoi(Value);
    geädert


    Add(new cMenuEditStraItem("Device", &AtmoSetup.Device, 4, DeviceModeTexts));
    vor
    Add(new cMenuEditStraItem("Startmode", &AtmoSetup.StartMode, 3, useStartModeTexts));
    hinzugefügt


    bei
    void cMenuSetupAtmo::Store(void)
    SetupStore(SETUP_DEVICE, AtmoSetup.Device);
    vor
    SetupStore(SETUP_STARTMODE, AtmoSetup.StartMode);


    kompiliert, und man kann theoretisch den Port zwischen com1 bis com 4 auswählen.


    KK

  • Zitat

    Original von daniel_k
    ...
    In der Funktion


    Code
    1. bool cPluginAtmo::ProcessArgs(int argc, char *argv[])

    in der atmo.c mußt Du eigentlich nur den Inhalt gegen

    Code
    1. AtmoSetup.AtmoInput = video0;
    2. AtmoSetup.AtmoOutput = serial;
    3. AtmoSetup.output_arg = "/dev/ttyS1";
    4. return true;

    austauschen.
    ...


    Hallo Daniel,


    Danke für Deine Unterstützung. Das compilieren geht, aber das Plugin
    bringt noch keine Farben an die Wand.
    Meine Änderung in der atmo.c sieht so aus:

    Code
    1. bool cPluginAtmo::ProcessArgs(int argc, char *argv[])
    2. {
    3. AtmoSetup.AtmoInput = video0;
    4. AtmoSetup.AtmoOutput = serial;
    5. AtmoSetup.output_arg = "/dev/ttyS0";
    6. return true;
    7. }


    Ist da noch etwas zu ändern oder habe ich Dich falsch verstanden?


    Gruß Kail

    VDR: ASUS P4P800-VM, Celeron 2.5 GHz, 256 MB-RAM, 2 x 160 GB Samsung SV1604N, TT 1.5 (4MB), TT-Budget, Extension-Board (TBE)
    LinVDR0.7 + Dr.Seltsam 2.6.18 + vdr-1.4.7 + BP + diverse Plugins
    Betatester v. steini-Paketen
    Test-VDR: ASUS P5QL Pro, E7500, 4 GB RAM, 1TB WD EADS, Media-Pointer S2, Ubuntu10.10 + vdr-1.7.16