Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: VDR Portal. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

21

Donnerstag, 26. April 2012, 09:51

Moin!

Da sind sicherlich noch ein paar Schritte nötig.
  • Trenner verschieben
  • Trenner löschen
  • Trenner umbenennen

Um den ersten Punkt kann man allerdings herumarbeiten, wenn man einfach die Kanäle verschiebt, dann "verschiebt" sich der Trenner ja indirekt.

Ich hoffe, da Woche um Woche immer einen kleinen Patch nachliefern zu können.

Lars.

meine Signatur

vdr2: yaVDR 0.5/softhddevice @ G540, Intel DH67BLB3, Asus GT610/2GB, DDBridge + 2x DuoFlex C/T
vdr: yaVDR 0.2/pvr350 @ Sempron 64 LE-1200, MSI K9MM-V, 1x PVR350, 2x Satelco EasyWatch DVB-C
hdvdr: yaVDR unstable/softhddevice @ E8400, Asus P5Q SE Plus, 1x L4M-TwinCI + Flex C/T, 1x Sundtek MediaTV Pro, GT520
Plugins: | avahi4vdr | dbus2vdr | dynamite | noepg | pvrinput | sundtek |
pre-alpha Plugins: | ddci CI-Support für DD/L4M (siehe Post 1048374) |

22

Donnerstag, 26. April 2012, 09:54

Wenn der Kanal am Ende der >100 Einträge umfassenden Liste landet, dann ist es nicht ganz so einfach, den mit dem Trick über Kanäle hin und herschieben irgendwie an den Anfang zu bekommen.

IMHO wäre es nicht verkehrt wenn du dich auch mal mit Klaus absprichst, wie er sich sowas vorstellen kann. Nur ein Patch, der zeitnah in den VDR übernommen wird, ist ein guter Patch.

23

Donnerstag, 26. April 2012, 10:05

IMHO wäre es nicht verkehrt wenn du dich auch mal mit Klaus absprichst, wie er sich sowas vorstellen kann. Nur ein Patch, der zeitnah in den VDR übernommen wird, ist ein guter Patch.

??? Ist doch schon seit gestern in der Mailing-Liste

Gerald

HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
Samsung UE55H6470

24

Donnerstag, 26. April 2012, 10:09

Ist mir aufgefallen. Hast aber Recht. Prinzipiell könnte Klaus bereits jetzt Stellung zu dieser ersten Änderung nehmen.

Eigentlich ist die Diskussion hier nur eine Folge eines von vielen Problemen, die dadurch auftreten, dass der VDR die Trenner zwar unterstützt, aber über keine eingebaute Funktion ändern kann.

Neben der Änderung über SVDRP wäre nämlich meiner Meinung nach auch Ändern via OSD ein wichtiger Punkt. Die Dinger sollten dort auswählbar und markierbar sein, dass man sie wie Kanäle schieben kann.

25

Donnerstag, 26. April 2012, 11:01

Moin!

Probier doch einfach mal, einen Patch zu erstellen.
Ich hab einen Abend pro Woche Zeit für ein bisschen vdr-Programmieren, deshalb wird es von meiner Seite aus etwas dauern... :)
Und deshalb werde ich das Gruppentrenner-Problem in den kleinen Schritten angehen, ist ja zum Glück gut zerlegbar.
Und kleine, übersichtliche Patches haben eher die Chance, aufgenommen zu werden.

Lars.

meine Signatur

vdr2: yaVDR 0.5/softhddevice @ G540, Intel DH67BLB3, Asus GT610/2GB, DDBridge + 2x DuoFlex C/T
vdr: yaVDR 0.2/pvr350 @ Sempron 64 LE-1200, MSI K9MM-V, 1x PVR350, 2x Satelco EasyWatch DVB-C
hdvdr: yaVDR unstable/softhddevice @ E8400, Asus P5Q SE Plus, 1x L4M-TwinCI + Flex C/T, 1x Sundtek MediaTV Pro, GT520
Plugins: | avahi4vdr | dbus2vdr | dynamite | noepg | pvrinput | sundtek |
pre-alpha Plugins: | ddci CI-Support für DD/L4M (siehe Post 1048374) |

26

Donnerstag, 26. April 2012, 12:26

Ist mir aufgefallen. Hast aber Recht. Prinzipiell könnte Klaus bereits jetzt Stellung zu dieser ersten Änderung nehmen.

Eigentlich ist die Diskussion hier nur eine Folge eines von vielen Problemen, die dadurch auftreten, dass der VDR die Trenner zwar unterstützt, aber über keine eingebaute Funktion ändern kann.

Neben der Änderung über SVDRP wäre nämlich meiner Meinung nach auch Ändern via OSD ein wichtiger Punkt. Die Dinger sollten dort auswählbar und markierbar sein, dass man sie wie Kanäle schieben kann.

Ich würde da nicht zu viel Energie reinstecken, denn im Zweifelsfall würde ich die Trenner lieber ganz loswerden ;-)
Sie waren ja auch ursprünglich nicht vorgesehen, aber irgendwer hat sie sich halt eingebildet...

Die "richtige" Lösung werden benutzerdefinierte Favoritenlisten sein - nach Version 2.0...

Klaus
Gib CI+/HD+ keine Chance! Lasst diese Pest am ausgestreckten Arm verhungern!
Wer für sowas bezahlt macht sich zum Totengräber von Projekten wie VDR!
Die Wahrheit ueber HD Plus
CI-Plus -- Das trojanische Pferd im Wohnzimmer
Mach mit beim VDR User Counter!

27

Donnerstag, 26. April 2012, 12:31

Soll heißen: Mehr als eine Favoritenliste? Also weiterhin nach Sparten sortierbar?

28

Donnerstag, 26. April 2012, 12:41

Moin!

Soll heißen: Mehr als eine Favoritenliste? Also weiterhin nach Sparten sortierbar?

Einfach mal abwarten, bis 2.0 veröffentlicht wurde. Vorher wird da sicherlich nicht viel drüber nachgedacht werden.

@kls:
Ok, dann warte ich ab bzw. schau mal, was mir da so in Richtung Favoritenliste einfällt. Vielleicht kann ich ja da zuarbeiten.

Lars.

meine Signatur

vdr2: yaVDR 0.5/softhddevice @ G540, Intel DH67BLB3, Asus GT610/2GB, DDBridge + 2x DuoFlex C/T
vdr: yaVDR 0.2/pvr350 @ Sempron 64 LE-1200, MSI K9MM-V, 1x PVR350, 2x Satelco EasyWatch DVB-C
hdvdr: yaVDR unstable/softhddevice @ E8400, Asus P5Q SE Plus, 1x L4M-TwinCI + Flex C/T, 1x Sundtek MediaTV Pro, GT520
Plugins: | avahi4vdr | dbus2vdr | dynamite | noepg | pvrinput | sundtek |
pre-alpha Plugins: | ddci CI-Support für DD/L4M (siehe Post 1048374) |

29

Donnerstag, 26. April 2012, 13:02

Soll heißen: Mehr als eine Favoritenliste? Also weiterhin nach Sparten sortierbar?

Momentan ist nur Version 2.0 ein Thema - alles andere wird von meinen "Scheuklappen" verdeckt... ,-)

Klaus
Gib CI+/HD+ keine Chance! Lasst diese Pest am ausgestreckten Arm verhungern!
Wer für sowas bezahlt macht sich zum Totengräber von Projekten wie VDR!
Die Wahrheit ueber HD Plus
CI-Plus -- Das trojanische Pferd im Wohnzimmer
Mach mit beim VDR User Counter!

30

Donnerstag, 26. April 2012, 13:05

Moin!

Soll heißen: Mehr als eine Favoritenliste? Also weiterhin nach Sparten sortierbar?

Einfach mal abwarten, bis 2.0 veröffentlicht wurde. Vorher wird da sicherlich nicht viel drüber nachgedacht werden.

@kls:
Ok, dann warte ich ab bzw. schau mal, was mir da so in Richtung Favoritenliste einfällt. Vielleicht kann ich ja da zuarbeiten.

Soll ich dann deinen Patch aus der ML noch reinnehmen?
Grundsätzlich habe ich nichts gegen diese kleine Änderung, aber ich möchte nicht, daß da jetzt der große Rundumschlag mit aufwendiger Verwaltung der Trenner kommt.

Klaus
Gib CI+/HD+ keine Chance! Lasst diese Pest am ausgestreckten Arm verhungern!
Wer für sowas bezahlt macht sich zum Totengräber von Projekten wie VDR!
Die Wahrheit ueber HD Plus
CI-Plus -- Das trojanische Pferd im Wohnzimmer
Mach mit beim VDR User Counter!

31

Donnerstag, 26. April 2012, 15:21

Moin!

Ich denke, der kleine Patch tut nicht weh und hilft, wenn man eine Kanalliste von extern neu einpflegt.
Ich werde dann aber nichts an MOVC, MODC und DELC tun.

Lars.

meine Signatur

vdr2: yaVDR 0.5/softhddevice @ G540, Intel DH67BLB3, Asus GT610/2GB, DDBridge + 2x DuoFlex C/T
vdr: yaVDR 0.2/pvr350 @ Sempron 64 LE-1200, MSI K9MM-V, 1x PVR350, 2x Satelco EasyWatch DVB-C
hdvdr: yaVDR unstable/softhddevice @ E8400, Asus P5Q SE Plus, 1x L4M-TwinCI + Flex C/T, 1x Sundtek MediaTV Pro, GT520
Plugins: | avahi4vdr | dbus2vdr | dynamite | noepg | pvrinput | sundtek |
pre-alpha Plugins: | ddci CI-Support für DD/L4M (siehe Post 1048374) |

32

Donnerstag, 26. April 2012, 15:58


Ich denke, der kleine Patch tut nicht weh und hilft, wenn man eine Kanalliste von extern neu einpflegt.

Hmmm, bei näherer Überlegung wäre es aber vermutlich gar nicht so geschickt, das jetzt einzubauen, wenn später die Trenner verschwinden sollen.
Also vielleicht erstmal doch nicht...

Klaus
Gib CI+/HD+ keine Chance! Lasst diese Pest am ausgestreckten Arm verhungern!
Wer für sowas bezahlt macht sich zum Totengräber von Projekten wie VDR!
Die Wahrheit ueber HD Plus
CI-Plus -- Das trojanische Pferd im Wohnzimmer
Mach mit beim VDR User Counter!

33

Donnerstag, 26. April 2012, 16:04

Moin!

Kein Problem! :)

Lars.

meine Signatur

vdr2: yaVDR 0.5/softhddevice @ G540, Intel DH67BLB3, Asus GT610/2GB, DDBridge + 2x DuoFlex C/T
vdr: yaVDR 0.2/pvr350 @ Sempron 64 LE-1200, MSI K9MM-V, 1x PVR350, 2x Satelco EasyWatch DVB-C
hdvdr: yaVDR unstable/softhddevice @ E8400, Asus P5Q SE Plus, 1x L4M-TwinCI + Flex C/T, 1x Sundtek MediaTV Pro, GT520
Plugins: | avahi4vdr | dbus2vdr | dynamite | noepg | pvrinput | sundtek |
pre-alpha Plugins: | ddci CI-Support für DD/L4M (siehe Post 1048374) |

34

Donnerstag, 26. April 2012, 18:55

Schade - wobei ich dies natürlich verstehe.
Wenn kls eine Favoritenliste in Planung hat :tup , dann wären jetzt Trenner Algos einzupflegen umsonst.

Will aber vorerst weiterbasteln ..
Für meine Bedürfnisse hätte ich nur das Löschen eines Trenners gebraucht.
Ich denke das ginge mit DELC in der svdrp.c.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
void cSVDRP::CmdDELC(const char *Option)
{
  if (*Option) {
 if (isnumber(Option)) {
    if (!Channels.BeingEdited()) {
       cChannel *channel = Channels.GetByNumber(strtol(Option, NULL, 10));
       if (channel) {
          for (cTimer *timer = Timers.First(); timer; timer = Timers.Next(timer)) {
              if (timer->Channel() == channel) {
                 Reply(550, "Channel "%s" is in use by timer %d", Option, timer->Index() + 1);
                 return;
                 }
              }
          int CurrentChannelNr = cDevice::CurrentChannel();
          cChannel *CurrentChannel = Channels.GetByNumber(CurrentChannelNr);
          if (CurrentChannel && channel == CurrentChannel) {
             int n = Channels.GetNextNormal(CurrentChannel->Index());
             if (n < 0)
                n = Channels.GetPrevNormal(CurrentChannel->Index());
             CurrentChannel = Channels.Get(n);
             CurrentChannelNr = 0; // triggers channel switch below
             }
          Channels.Del(channel);
          Channels.ReNumber();
          Channels.SetModified(true);
          isyslog("channel %s deleted", Option);
          if (CurrentChannel && CurrentChannel->Number() != CurrentChannelNr) {
             if (!cDevice::PrimaryDevice()->Replaying() || cDevice::PrimaryDevice()->Transferring())
                Channels.SwitchTo(CurrentChannel->Number());
             else
                cDevice::SetCurrentChannel(CurrentChannel);
             }
          Reply(250, "Channel "%s" deleted", Option);
          }
       else
          Reply(501, "Channel "%s" not defined", Option);
       }
    else
       Reply(550, "Channels are being edited - try again later");
    }
 else
    Reply(501, "Error in channel number "%s"", Option);
 }
  else
 Reply(501, "Missing channel number");
}

Ich verstehe das als C++ Dau so:
Diese Funktion erwartet zum Löschen eine Kanalnummer, was letztendlich in Channels.Del(channel); passiert.
Diese Funktion erwartet aber auch eine Kanalnummer, somit müsste man auch dort was ändern.
Also wird der Aufwand wohl zu groß werden ?
VDR 1 (SD) : ASRock A330 GC, 1 GB RAM, TT- FF Karte rev. 2.3, 7'' TFT, Lirc X10 - Selbstbau Gehäuse - Suse 11.3 (64) vdr-1.7.10 diverse Plugins
VDR 2 (HD) : MSI G41M-P25, 2 GB RAM, E6700 2x3.20GHz, Gainward GT220, 2TB HD, Lirc X10, TT S2-3600 USB, TT S2-1600, - Suse 11.3 (64) NvidiaTreiber 260.19 vdr-1.7.18 - xineliboutplugin 1.0.90 cvs, xine-lib 1.1.90 , s2-liplianin DVB Treiber

35

Donnerstag, 26. April 2012, 19:25

Moin!

Am Anfang müsste man gucken, ob es einen Gruppentrenner mit dem übergebenen Namen gibt (statt isnumber) und dann das passende cChannel-Objekt heraussuchen und löschen.
Ist eigentlich nicht so schlimm (auf den ersten Blick), die Details sind aber manchmal fiese... :)

Lars.

meine Signatur

vdr2: yaVDR 0.5/softhddevice @ G540, Intel DH67BLB3, Asus GT610/2GB, DDBridge + 2x DuoFlex C/T
vdr: yaVDR 0.2/pvr350 @ Sempron 64 LE-1200, MSI K9MM-V, 1x PVR350, 2x Satelco EasyWatch DVB-C
hdvdr: yaVDR unstable/softhddevice @ E8400, Asus P5Q SE Plus, 1x L4M-TwinCI + Flex C/T, 1x Sundtek MediaTV Pro, GT520
Plugins: | avahi4vdr | dbus2vdr | dynamite | noepg | pvrinput | sundtek |
pre-alpha Plugins: | ddci CI-Support für DD/L4M (siehe Post 1048374) |

36

Donnerstag, 26. April 2012, 19:45

Moin!

Na gut, hier ist eine Lösung, damit du was zum Basteln hast... :)

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
diff --git a/svdrp.c b/svdrp.c
index 01366dd..794e6ff 100644
--- a/svdrp.c
+++ b/svdrp.c
@@ -614,9 +614,24 @@ void cSVDRP::CmdCLRE(const char *Option)
 void cSVDRP::CmdDELC(const char *Option)
 {
   if (*Option) {
-     if (isnumber(Option)) {
+     if (isnumber(Option) || (Option[0] == ':')) {
         if (!Channels.BeingEdited()) {
-           cChannel *channel = Channels.GetByNumber(strtol(Option, NULL, 10));
+           cChannel *channel = NULL;
+           if (isnumber(Option))
+              channel = Channels.GetByNumber(strtol(Option, NULL, 10));
+           else if (Option[0] == ':') {
+              int groupNr = -1;
+              do {
+                 groupNr = Channels.GetNextGroup(groupNr);
+                 if (groupNr < 0)
+                    break;
+                 cChannel *c = Channels.Get(groupNr);
+                 if (c && c->GroupSep() && (strcmp(c->Name(), Option + 1) == 0)) {
+                    channel = c;
+                    break;
+                    }
+                 } while (true);
+              }
            if (channel) {
               for (cTimer *timer = Timers.First(); timer; timer = Timers.Next(timer)) {
                   if (timer->Channel() == channel) {
@@ -655,7 +670,7 @@ void cSVDRP::CmdDELC(const char *Option)
         Reply(501, "Error in channel number "%s"", Option);
      }
   else
-     Reply(501, "Missing channel number");
+     Reply(501, "Missing channel number or group separator");
 }
 
 void cSVDRP::CmdDELR(const char *Option)

Ist jetzt nicht besonders schön, aber ist ja auch nur zum Spaß...

Lars.

meine Signatur

vdr2: yaVDR 0.5/softhddevice @ G540, Intel DH67BLB3, Asus GT610/2GB, DDBridge + 2x DuoFlex C/T
vdr: yaVDR 0.2/pvr350 @ Sempron 64 LE-1200, MSI K9MM-V, 1x PVR350, 2x Satelco EasyWatch DVB-C
hdvdr: yaVDR unstable/softhddevice @ E8400, Asus P5Q SE Plus, 1x L4M-TwinCI + Flex C/T, 1x Sundtek MediaTV Pro, GT520
Plugins: | avahi4vdr | dbus2vdr | dynamite | noepg | pvrinput | sundtek |
pre-alpha Plugins: | ddci CI-Support für DD/L4M (siehe Post 1048374) |

37

Freitag, 27. April 2012, 19:59

Danke dir mini73 !
Was du so schnell aus der Hüfte schiesst :wow

Ich habe den Code als Pascal Mensch sogar in etwa verstanden.
Wenn es an die Objecte und deren Funktionen geht, fehlt mir einfach das Verständnis wie der VDR aufgebaut ist.
Was du als nicht besonders schön bezeichnest, ist wohl das Beenden der Schleife mit einem Break - damit kann ich leben ;D
VDR 1 (SD) : ASRock A330 GC, 1 GB RAM, TT- FF Karte rev. 2.3, 7'' TFT, Lirc X10 - Selbstbau Gehäuse - Suse 11.3 (64) vdr-1.7.10 diverse Plugins
VDR 2 (HD) : MSI G41M-P25, 2 GB RAM, E6700 2x3.20GHz, Gainward GT220, 2TB HD, Lirc X10, TT S2-3600 USB, TT S2-1600, - Suse 11.3 (64) NvidiaTreiber 260.19 vdr-1.7.18 - xineliboutplugin 1.0.90 cvs, xine-lib 1.1.90 , s2-liplianin DVB Treiber

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »rudirabbit« (27. April 2012, 20:06)


38

Samstag, 28. April 2012, 10:22

Moin!

Nö, das break ist schon in Ordnung und ganz normales Programmieren. :)
Aber es ist sicherlich noch etwas Optimierungspotenzial vorhanden. Spielt ja aber keine Rolle.
Es wird z.B. nicht verhindert, dass mehrere Separatoren mit gleichem Namen angelegt werden können.
Beim Löschen wird dann immer der erste mit gleichem Namen gelöscht usw.

Lars.

meine Signatur

vdr2: yaVDR 0.5/softhddevice @ G540, Intel DH67BLB3, Asus GT610/2GB, DDBridge + 2x DuoFlex C/T
vdr: yaVDR 0.2/pvr350 @ Sempron 64 LE-1200, MSI K9MM-V, 1x PVR350, 2x Satelco EasyWatch DVB-C
hdvdr: yaVDR unstable/softhddevice @ E8400, Asus P5Q SE Plus, 1x L4M-TwinCI + Flex C/T, 1x Sundtek MediaTV Pro, GT520
Plugins: | avahi4vdr | dbus2vdr | dynamite | noepg | pvrinput | sundtek |
pre-alpha Plugins: | ddci CI-Support für DD/L4M (siehe Post 1048374) |

Immortal Romance Spielautomat