[Patch] MiniTV for Channellist
-
- Contributor
- Beiträge: 1509
- Registriert: Donnerstag 27. Dezember 2007, 12:59
[Patch] MiniTV for Channellist
Port aus dem Coolstream-Git. Bitte testen
Gute Ansicht mit Schriftgrößenfaktor Horizontal 72%
Es werden folgende Patche benötigt.
0005-framebuffer-add-2-new-functions-getScreenWidth-and-getScreenHeight.patch
0006-channellist-add-new-method-to-calculate-selected-item.patch
0007-Neutrino-add-MiniTV-to-Channellist.patch
0008-Neutrino-improved-channellist-speedup-scrolling.patch
this patch includes resize of channellist
channellist with additional eventlist/MiniTV
additionally selectable next event for infobox
additionally selectable Tuning-Parameters for infobox
reorder painting of modules
redesign of DetailsItemline
yellow Button for Bouquets
blue-button to switch between description and eventlist
Gute Ansicht mit Schriftgrößenfaktor Horizontal 72%
Es werden folgende Patche benötigt.
0005-framebuffer-add-2-new-functions-getScreenWidth-and-getScreenHeight.patch
0006-channellist-add-new-method-to-calculate-selected-item.patch
0007-Neutrino-add-MiniTV-to-Channellist.patch
0008-Neutrino-improved-channellist-speedup-scrolling.patch
this patch includes resize of channellist
channellist with additional eventlist/MiniTV
additionally selectable next event for infobox
additionally selectable Tuning-Parameters for infobox
reorder painting of modules
redesign of DetailsItemline
yellow Button for Bouquets
blue-button to switch between description and eventlist
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Re: [Patch] MiniTV for Channellist
Wow, das ist ja ein ganz schöner Brocken. Ich werde das auf alle Fälle die Tage ausprobieren, habe aber im Moment leider wenig Zeit.
Kann man die Änderungen nicht vielleicht noch ein klein wenig aufdröseln?
Die Einführung der Methode CChannelList::updateSelection() wäre beispielsweise so ein Kanidat,
der nichts mit MiniTV zu tun hat. So eine Methode könnte man übrigens auch in den Klassen
Kann man die Änderungen nicht vielleicht noch ein klein wenig aufdröseln?
Die Einführung der Methode CChannelList::updateSelection() wäre beispielsweise so ein Kanidat,
der nichts mit MiniTV zu tun hat. So eine Methode könnte man übrigens auch in den Klassen
- CBookmarkManager (bookmarkmanager.h/.cpp),
- CBouquetList (bouquetlist.h/.cpp),
- EventList (eventlist.h/.cpp),
- CPluginList (pluginlist.h/.cpp),
- CTimerList (timerlist.h/.cpp),
- CBEBouquetWidget (bouqueteditor_bouquets.h/.cpp),
- CBEChannelWidget (bouqueteditor_channels.h/.cpp) und
- CListBox (listbox.h/.cpp)
-
- Contributor
- Beiträge: 1509
- Registriert: Donnerstag 27. Dezember 2007, 12:59
Re: [Patch] MiniTV for Channellist
Patche aktualisiert. Die neue Methode ::updateSelection() ist in einem separaten Patch.
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Re: [Patch] MiniTV for Channellist
@GetAway
Spricht etwas dagegen, dass ich in deinem Code etwas rumeditiere? Ich glaube nämlich, dass wir uns die neuen Methoden in der Klasse CFrameBuffer sparen und auf schon vorhandene Funktionen zurückgreifen können. Außerdem hätte ich gerne, dass das Fenster ohne MiniTV nicht plötzlich größer ist als vorher. Wann ich dazu komme, weiß ich aber noch nicht. Vielleicht am Wochenende.
Spricht etwas dagegen, dass ich in deinem Code etwas rumeditiere? Ich glaube nämlich, dass wir uns die neuen Methoden in der Klasse CFrameBuffer sparen und auf schon vorhandene Funktionen zurückgreifen können. Außerdem hätte ich gerne, dass das Fenster ohne MiniTV nicht plötzlich größer ist als vorher. Wann ich dazu komme, weiß ich aber noch nicht. Vielleicht am Wochenende.
-
- Contributor
- Beiträge: 1509
- Registriert: Donnerstag 27. Dezember 2007, 12:59
Re: [Patch] MiniTV for Channellist
Die Methoden und Ihre Namen find ich gut. Meine Intension ist es, möglichst nahe am Coolstream-Git zu bleibenGaucho316 hat geschrieben: Spricht etwas dagegen, dass ich in deinem Code etwas rumeditiere? Ich glaube nämlich, dass wir uns die neuen Methoden in der Klasse CFrameBuffer sparen und auf schon vorhandene Funktionen zurückgreifen können. Außerdem hätte ich gerne, dass das Fenster ohne MiniTV nicht plötzlich größer ist als vorher. Wann ich dazu komme, weiß ich aber noch nicht. Vielleicht am Wochenende.
bzw. zu kommen, sowohl vom Quellcode als auch von der Optik. Vieles wird nicht möglich sein, in diesen Fällen
kann man dann zu Alternativen greifen.
Zur Fenstergröße: Bei mir ist es genau umgekehrt. Ich hätte die Kanalliste gerne über die komplette Bildschirmfläche,
liegt daran, das ich auch ne Cooli habe und mich einfach schon daran gewöhnt habe. So unterschiedlich sind halt die
Geschmäcker. Es gäbe ja auch noch die Möglichkeit, das schaltbar zu machen. Im Cooli-Git gibt es übrigens einen
Schalter für große oder kleine Fenster, diesen könnte man für die Kanalliste verfügbar machen.
Wenn die Mehrheit andere Meinung ist, werde ich es mir natürlich lokal patchen
Ansonsten kannst du meinen Code, wo immer du willst, verbessern.
Just my 2 cents.
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Re: [Patch] MiniTV for Channellist
Tja, jeder hat so seine Vorlieben. Ich sehe das mit der Kanallistenbreite halt eher so wie seife in Neutrino-MP.
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: [Patch] MiniTV for Channellist
Beachtet beim direkten übernehmen von Code auch, dass ihr nicht das tuxbox-neutrino zu GPL V2 only macht.
-
- Contributor
- Beiträge: 1509
- Registriert: Donnerstag 27. Dezember 2007, 12:59
Re: [Patch] MiniTV for Channellist
Wenn in Quelle und Ziel folgender Satz steht ...
sollte wohl alles im grünen Bereich sein.either version 2 of the License, or
(at your option) any later version.
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: [Patch] MiniTV for Channellist
Ja, aber da muss man halt genau aufpassen.
-
- Contributor
- Beiträge: 1509
- Registriert: Donnerstag 27. Dezember 2007, 12:59
Re: [Patch] MiniTV for Channellist
Leider gibt noch Seqfaults nach mehrfachen Bouquetwechsel und anschließenden Zap auf einen Kanal.
Das liegt daran, dass die Funktion ChannelList::show() immer und immer wieder nach Bouquetwechsel
aufgerufen wird und pig jedesmal neuen Speicher ( pig = new CPIG(0); )zugewiesen wird.
Schöner wäre die Speicherzuweisung im Konstruktor zu machen, allerdings verschiebt sich dann die
Position des MiniTV, wenn man zwischendurch den Imageinfo bzw. die Technischen Informationen aufruft.
Warum das so ist, habe ich noch nicht herausgefunden.
Das liegt daran, dass die Funktion ChannelList::show() immer und immer wieder nach Bouquetwechsel
aufgerufen wird und pig jedesmal neuen Speicher ( pig = new CPIG(0); )zugewiesen wird.
Schöner wäre die Speicherzuweisung im Konstruktor zu machen, allerdings verschiebt sich dann die
Position des MiniTV, wenn man zwischendurch den Imageinfo bzw. die Technischen Informationen aufruft.
Warum das so ist, habe ich noch nicht herausgefunden.
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Re: [Patch] MiniTV for Channellist
Dann lass ich erst einmal die Finger von dem Code, bis du eine Lösung gefunden hast. Ich selbst brauche MiniTV auch nicht wirklich.
-
- Contributor
- Beiträge: 1509
- Registriert: Donnerstag 27. Dezember 2007, 12:59
Re: [Patch] MiniTV for Channellist
Patch 0007 nochmals aktualisiert.
fix init of variable 'emptyLineCount'
move init of pig to constructor
use set_coord to reset pig position.
fix init of variable 'emptyLineCount'
move init of pig to constructor
use set_coord to reset pig position.
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Re: [Patch] MiniTV for Channellist
Ich habe mal den alten und den neuen Patch verglichen. Es fehlen jetzt die Änderungen in settings.h.
-
- Contributor
- Beiträge: 1509
- Registriert: Donnerstag 27. Dezember 2007, 12:59
Re: [Patch] MiniTV for Channellist
Vielen Dank für die Rückmeldung. Den Patch habe ich aktualisiert.
-
- Interessierter
- Beiträge: 42
- Registriert: Donnerstag 25. Oktober 2012, 15:22
Re: [Patch] MiniTV for Channellist
ich habe mir mal die freiheit genommen, die idee zu klauen. momentan habe ich das erstmal so gelöst:GetAway hat geschrieben:Im Cooli-Git gibt es übrigens einen
Schalter für große oder kleine Fenster, diesen könnte man für die Kanalliste verfügbar machen.
Code: Alles auswählen
diff --git a/src/driver/framebuffer.cpp b/src/driver/framebuffer.cpp
index a5e7715..f89c49a 100644
--- a/src/driver/framebuffer.cpp
+++ b/src/driver/framebuffer.cpp
@@ -423,6 +423,18 @@ unsigned int CFrameBuffer::getScreenHeight(bool real)
return g_settings.screen_EndY - g_settings.screen_StartY;
}
+#define NON_BIG_WINDOWS 75 // %
+
+unsigned int CFrameBuffer::getScreenWidthRel()
+{
+ return (g_settings.screen_EndX - g_settings.screen_StartX) * (g_settings.big_windows ? 100 : NON_BIG_WINDOWS) / 100;
+}
+
+unsigned int CFrameBuffer::getScreenHeightRel()
+{
+ return (g_settings.screen_EndY - g_settings.screen_StartY) * (g_settings.big_windows ? 100 : NON_BIG_WINDOWS) / 100;
+}
+
unsigned int CFrameBuffer::getScreenX()
{
return g_settings.screen_StartX;
diff --git a/src/driver/framebuffer.h b/src/driver/framebuffer.h
index bde88e9..6283efb 100644
--- a/src/driver/framebuffer.h
+++ b/src/driver/framebuffer.h
@@ -140,6 +140,8 @@ class CFrameBuffer
unsigned int getStride() const; // size of a single line in the framebuffer (in bytes)
unsigned int getScreenWidth(bool real = false);
unsigned int getScreenHeight(bool real = false);
+ unsigned int getScreenWidthRel();
+ unsigned int getScreenHeightRel();
unsigned int getScreenX();
unsigned int getScreenY();
-
- Contributor
- Beiträge: 1509
- Registriert: Donnerstag 27. Dezember 2007, 12:59
Re: [Patch] MiniTV for Channellist
Du meinst für Neutrino-HD? Ob das Sinn macht global immer 75% zu
nehmen, weiß ich jetzt auch nicht. Probier's halt aus.
nehmen, weiß ich jetzt auch nicht. Probier's halt aus.
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Re: [Patch] MiniTV for Channellist
@GetAway
Musst du die folgenden beiden Commits noch nachportieren?
http://git.coolstreamtech.de/?p=cst-pub ... 4d819c4835
http://git.coolstreamtech.de/?p=cst-pub ... 2c50bee87e
Musst du die folgenden beiden Commits noch nachportieren?
http://git.coolstreamtech.de/?p=cst-pub ... 4d819c4835
http://git.coolstreamtech.de/?p=cst-pub ... 2c50bee87e
-
- Contributor
- Beiträge: 1509
- Registriert: Donnerstag 27. Dezember 2007, 12:59
Re: [Patch] MiniTV for Channellist
H+V mit 165% getestet. Sieht nicht so aus, dass man das portieren muss.
-
- Contributor
- Beiträge: 1509
- Registriert: Donnerstag 27. Dezember 2007, 12:59
Re: [Patch] MiniTV for Channellist
Patch 0007 auf aktuellen Git Stand gebracht.
Patch 0008: Neutrino: improved channellist, speedup scrolling!
there is no need to update events while scrolling
now update responds at key release
Patch 0008: Neutrino: improved channellist, speedup scrolling!
there is no need to update events while scrolling
now update responds at key release
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Re: [Patch] MiniTV for Channellist
Ich habe mal 'ne Frage. Warum wird full_width folgendermaßen berechnet?GetAway hat geschrieben:0007-Neutrino-add-MiniTV-to-Channellist.patch
Code: Alles auswählen
full_width = frameBuffer->getScreenWidth() - frameBuffer->getScreenX();
Code: Alles auswählen
full_width = g_settings.screen_EndX - g_settings.screen_StartX - g_settings.screen_StartX;
-
- Contributor
- Beiträge: 1509
- Registriert: Donnerstag 27. Dezember 2007, 12:59
Re: [Patch] MiniTV for Channellist
Hoppla, das ist wirklich witzig und mir onScreen nicht negativ aufgefallen.
Da fragst du auch besser den Autor. Ich habe schon jede Menge Bugs aus dem Code gefummelt
und es ist nur menschlich, dass mir nicht alles beim Portieren auffällt. Mach es doch einfach richtig.
Du wolltest doch noch die Fenstergröße anpassen.
Ich bin vorerst mit der Kanalliste fertig.
Da fragst du auch besser den Autor. Ich habe schon jede Menge Bugs aus dem Code gefummelt
und es ist nur menschlich, dass mir nicht alles beim Portieren auffällt. Mach es doch einfach richtig.
Du wolltest doch noch die Fenstergröße anpassen.
Ich bin vorerst mit der Kanalliste fertig.
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Re: [Patch] MiniTV for Channellist
Ok, das mach ich dann gleich mit. Hätte ja sein können, dass da ein tieferer Sinn hintersteckt, der sich mir nur nicht erschlossen hat.
Edit: Ich sehe gerade, dass das in Neutrino-HD vor kurzem berichtigt wurde.
Edit: Ich sehe gerade, dass das in Neutrino-HD vor kurzem berichtigt wurde.
-
- Interessierter
- Beiträge: 42
- Registriert: Donnerstag 25. Oktober 2012, 15:22
Re: [Patch] MiniTV for Channellist
damit hat irgendwann mal einer angefangen und alle anderen (incl. ich) haben das fortgesetzt, ohne drüber nachzudenken. mir ist das auch vor paar tagen aufgefallen. da wird es aber bestimmt noch die eine oder andere stelle geben, wo diese berechnung genau so drin ist.Gaucho316 hat geschrieben:Ich habe mal 'ne Frage. Warum wird full_width folgendermaßen berechnet?Code: Alles auswählen
full_width = frameBuffer->getScreenWidth() - frameBuffer->getScreenX();
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Re: [Patch] MiniTV for Channellist
Gaucho316 hat geschrieben:Kann man die Änderungen nicht vielleicht noch ein klein wenig aufdröseln?
Die Einführung der Methode CChannelList::updateSelection() wäre beispielsweise so ein Kanidat,
der nichts mit MiniTV zu tun hat. So eine Methode könnte man übrigens auch in den Klassennutzen, um den Code zu vereinfachen.
- CBookmarkManager (bookmarkmanager.h/.cpp),
- CBouquetList (bouquetlist.h/.cpp),
- EventList (eventlist.h/.cpp),
- CPluginList (pluginlist.h/.cpp),
- CTimerList (timerlist.h/.cpp),
- CBEBouquetWidget (bouqueteditor_bouquets.h/.cpp),
- CBEChannelWidget (bouqueteditor_channels.h/.cpp) und
- CListBox (listbox.h/.cpp)
Ich habe das mal umgesetzt. Die Änderung für CChannelList ist auch mit drin. Guckt mal, ob ich nichts kaputt gemacht habe. Als nächstes nehme ich mir den eigentlichen MiniTV-Patch vor.GetAway hat geschrieben:0006-channellist-add-new-method-to-calculate-selected-item.patch
Neutrino: move duplicate code into new method updateSelection()
Link entfernt, da Patch in Git
-
- Contributor
- Beiträge: 1688
- Registriert: Donnerstag 17. Februar 2005, 20:24
Re: [Patch] MiniTV for Channellist
Ich habe die Patches nun ein klein wenig überarbeitet. Mir gefällt das Gesamtkunstwerk sehr gut. Vielen Dank an GetAway für die Mühe bei der Portierung und natürlich auch an alle anderen, die am ursprünglichen Code beteiligt waren.
Link entfernt, da Patch in Git
Link entfernt, da Patch in Git
Im MiniTV-Modus der Kanalliste wird das verkleinerte Fernsehbild nur angezeigt, wenn man im TV-Modus ist. Ich habe das für die Image- und Streaminformationen auch übernommen.
Neutrino: only paint PIG in TV mode
Link entfernt, da Patch in Git
Dieser Patch wird nicht mehr benötigt.GetAway hat geschrieben:0005-framebuffer-add-2-new-functions-getScreenWidth-and-getScreenHeight.patch
Neutrino: add MiniTV to ChannellistGetAway hat geschrieben:0007-Neutrino-add-MiniTV-to-Channellist.patch
Link entfernt, da Patch in Git
Neutrino: improved channellist, speedup scrolling!GetAway hat geschrieben:0008-Neutrino-improved-channellist-speedup-scrolling.patch
Link entfernt, da Patch in Git
Im MiniTV-Modus der Kanalliste wird das verkleinerte Fernsehbild nur angezeigt, wenn man im TV-Modus ist. Ich habe das für die Image- und Streaminformationen auch übernommen.
Neutrino: only paint PIG in TV mode
Link entfernt, da Patch in Git