committed: http://article.gmane.org/gmane.comp.vid ... x.scm/1034SnowHead hat geschrieben:In der infoviewer.cpp 1.264 ab Zeile 972 läßt sich der Code
übersichtlicher und leichter wartbar auch so schreiben:
rass und radiotext
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: rass und radiotext
-
- Einsteiger
- Beiträge: 111
- Registriert: Samstag 9. Februar 2008, 15:07
Re: rass und radiotext
Da sind noch 2 Anzeigefehler im Radio-Modus.
1. Bei Senderwahl mit Zifferntasten erscheint sofort ein einsames Radiotext Icon in der Infobar. Wird da vielleicht "CInfoViewer::showIcon_RadioText" zu früh aufgerufen? M.E. wäre es zeitlich günstig die Icon Malerei mit bei "CInfoViewer::showIcon_CA_Status()" anzusiedeln.
2. Wird die Box im Radio-Modus und aktiviertem Radiotext neu gestartet oder neutrino neu gestartet, fehlt das Radiotext Icon. Ursache ist, daß der Radiotext zwar in der neutrino.conf eingestellt ist, aber nach Neustart von neutrino nicht wirklich aktiv ist. Diesen Fall erkennen die IF-Anweisungen in der infoviewer.cpp nicht und somit fehlt das Radiotext-Icon.
Es ist zwar möglich, das in der infoviewer.cpp durch Anpassen der IF-Anweisungen abzufangen, das Problem sollte aber an der Wurzel beseitigt werden. Soll heißen, daß bei einem Neustart von neutrino der Radiotext ggf. auch gestartet wird.
Wie schon gesagt, muß noch an der Aufnahmemöglichkeit bei Radiotext gearbeitet werden.
1. Bei Senderwahl mit Zifferntasten erscheint sofort ein einsames Radiotext Icon in der Infobar. Wird da vielleicht "CInfoViewer::showIcon_RadioText" zu früh aufgerufen? M.E. wäre es zeitlich günstig die Icon Malerei mit bei "CInfoViewer::showIcon_CA_Status()" anzusiedeln.
2. Wird die Box im Radio-Modus und aktiviertem Radiotext neu gestartet oder neutrino neu gestartet, fehlt das Radiotext Icon. Ursache ist, daß der Radiotext zwar in der neutrino.conf eingestellt ist, aber nach Neustart von neutrino nicht wirklich aktiv ist. Diesen Fall erkennen die IF-Anweisungen in der infoviewer.cpp nicht und somit fehlt das Radiotext-Icon.
Es ist zwar möglich, das in der infoviewer.cpp durch Anpassen der IF-Anweisungen abzufangen, das Problem sollte aber an der Wurzel beseitigt werden. Soll heißen, daß bei einem Neustart von neutrino der Radiotext ggf. auch gestartet wird.
Wie schon gesagt, muß noch an der Aufnahmemöglichkeit bei Radiotext gearbeitet werden.
-
- Administrator
- Beiträge: 2675
- Registriert: Donnerstag 28. September 2006, 19:18
Re: rass und radiotext
Beim letzten Fix hatte ich schon gemerkt, dass das noch nicht so richtig war, sonst hätte ich das wahrscheinlich auch schon selbst eingecheckt, aber da war jemand schneller , aber so lange das optional ist und momentan sowieso noch nachgebessert werden muss, schadet es nicht wenn man die TODO-Liste etwas anfüllt.
Was das Icongemale angeht ist das ganze sicher noch nicht fertig, auch das Iconhandling gehört allgemein mal anders angepackt, hab mir da schon Gedanken gemacht. Alles zu seiner Zeit...
Was das Icongemale angeht ist das ganze sicher noch nicht fertig, auch das Iconhandling gehört allgemein mal anders angepackt, hab mir da schon Gedanken gemacht. Alles zu seiner Zeit...
-
- Contributor
- Beiträge: 1509
- Registriert: Donnerstag 27. Dezember 2007, 12:59
Re: rass und radiotext
Bei aktivem RT freezed Neutrino im Radiomodus nach mehrmaligem Umschalten.
Da ist mal wieder ein Spezi gefragt.
Da ist mal wieder ein Spezi gefragt.
Code: Alles auswählen
!!! 1798 bytes skipped to get PS/PES sync!!!
20:35:16.609 eit_set_update_filter, servicekey = 0x44500016f0c, current version 0
Stopping RT Thread
dmxdev.c: Too many open files: 31
[sectionsd] open dmx: Too many open files
dmxdev.c: Too many open files: 31
dmxdev.c: Too many open files: 31vb/adapter0/demux0 Too many open files
[sectionsd] open dmx: Too many open files
dmxdev.c: Too many open files: 31
/dev/dvb/adapter0/demux0: Too many open files
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: rass und radiotext
Was muss ich denn genau machen für Radiotext? (ging bisher an mir vorbei )
./configure --enable-radiotext
und dann? Im Neutrino was einschalten? Welche Sender? (Bevorzugt DLF und radioeins )
./configure --enable-radiotext
und dann? Im Neutrino was einschalten? Welche Sender? (Bevorzugt DLF und radioeins )
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: rass und radiotext
Einstellungen, Diverse Einstellungen, Infobar, Radiotextseife hat geschrieben:Im Neutrino was einschalten?
DLF hat afair keinen Radiotext, ich habe immer mit Bayern5 getestet.seife hat geschrieben:Welche Sender? (Bevorzugt DLF und radioeins )
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: rass und radiotext
Vielleicht hat das Threadproblem etwas damit zu tun?GetAway hat geschrieben:Bei aktivem RT freezed Neutrino im Radiomodus nach mehrmaligem Umschalten.
-
- Einsteiger
- Beiträge: 111
- Registriert: Samstag 9. Februar 2008, 15:07
Re: rass und radiotext
Fehler 1 habe ich so gefixt:liab hat geschrieben:Da sind noch 2 Anzeigefehler im Radio-Modus.
1. Bei Senderwahl mit Zifferntasten erscheint sofort ein einsames Radiotext Icon in der Infobar.
2. Wird die Box im Radio-Modus und aktiviertem Radiotext neu gestartet oder neutrino neu gestartet, fehlt das Radiotext Icon.
In die infoviewer.h eine Variable "bool rticon;"
In die Infoviewer.cpp insgesamt 4 Änderungen:
1. Bei CInfoViewer::CInfoViewer() dies einfügen
rticon = true;
2.Vor if ( msg == CRCInput::RC_help ) dies einfügen:
//Nummernzappen merken, damit das Radiotext Icon nicht gezeigt wird
if (( msg == CRCInput::RC_1 ) | ( msg == CRCInput::RC_2 ) | ( msg == CRCInput::RC_3 ) | ( msg == CRCInput::RC_4 ) | ( msg == CRCInput::RC_5 ) | ( msg == CRCInput::RC_6 ) | ( msg == CRCInput::RC_7 ) | ( msg == CRCInput::RC_8 ) | ( msg == CRCInput::RC_9 ))
{
rticon = false;
}
3. void CInfoViewer::showIcon_RadioText(bool rt_available, bool rt_enabled) const hiermit beginnen
if ( rticon ) // Beim Nummernzappen kein Radiotext Icon zeigen
{
und vor endif noch eine weitere } nicht vergessen!
4. Bei void CInfoViewer::showInfoIcons() noch einen Eintrag am Ende hinzufügen
rticon = true; //Nummernzappen merken löschen, für Radiotext Icons
Jetzt merkt sich die infoviewer, daß mit Ziffern gezappt wurde. Das Radiotext Icon wird erst gezeigt, wenn das Fenster steht.
Der 2. Fehler (kein Icon bei Neustart neutrino) ist leicht zubeheben. Ich lasse es aber so, weil es eine gute Warnung ist, daß nach dem Neustart der Radiotext nicht funktioniert. Man muß dann nach TV und wieder nach Radio wechseln.
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: rass und radiotext
Besser so:liab hat geschrieben: if (( msg == CRCInput::RC_1 ) | ( msg == CRCInput::RC_2 ) | ( msg == CRCInput::RC_3 ) | ( msg == CRCInput::RC_4 ) | ( msg == CRCInput::RC_5 ) | ( msg == CRCInput::RC_6 ) | ( msg == CRCInput::RC_7 ) | ( msg == CRCInput::RC_8 ) | ( msg == CRCInput::RC_9 ))
Code: Alles auswählen
if ((msg >= CRCInput::RC_1) && (msg <= CRCInput::RC_9)
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: rass und radiotext
Code: Alles auswählen
apps/tuxbox/neutrino/src/driver/rcinput.cpp:bool CRCInput::isNumeric(const neutrino_msg_t key)
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: rass und radiotext
Habe Deinen Patch getestet, sieht gut aus.liab hat geschrieben:Fehler 1 habe ich so gefixt:
In die infoviewer.h eine Variable "bool rticon;"
Beim Umschalten eines Radiosenders ist das Radiotext-Icon
direkt nach dem Umschalten immer gelb, auch wenn der
Sender keinen Radiotext sendet. Das habe ich ebenfalls
behoben, so hoffe ich jedenfalls Das Icon wird nur noch
dann gelb, wenn Radiotext empfangen wird, so wie bisher.
CInfoViewer::showIcon_RadioText habe ich auch noch etwas
aufgeräumt.
Schaut Euch den Patch mal an: EDIT: Patch ist im CVS
Zuletzt geändert von rhabarber1848 am Sonntag 6. September 2009, 15:01, insgesamt 1-mal geändert.
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: rass und radiotext
Da ist wohl ein Bug in Neutrino drin, die Funktion zum Aktivierenliab hat geschrieben:daß nach dem Neustart der Radiotext nicht funktioniert. Man muß dann nach TV und wieder nach Radio wechseln.
des Radiotextes wird in CNeutrinoApp::tvMode aufgerufen und
nicht in CNeutrinoApp::radioMode...
Obiger Patch beinhaltet nun die Lösung dieses Problems.
PS: In Houdinis Original-Patch war es noch richtig drin.
Muss wohl zwischendurch passiert sein.
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: rass und radiotext
Wer mehr Radiotext-Zeilen auf dem Bildschirm haben möchte
testet einfach diesen Patch: radiotext_lines.diff
testet einfach diesen Patch: radiotext_lines.diff
Re: rass und radiotext
Fehlt nur noch die Laufschrift fürs LCD.
Mal nur nebenbei, war das nicht schon irgendwie in Radiobox verbaut.
zum Anschubsen, Ist das was in diese Richtung?
Mal nur nebenbei, war das nicht schon irgendwie in Radiobox verbaut.
zum Anschubsen, Ist das was in diese Richtung?
Code: Alles auswählen
void CLCD::DrawString(
const int _x,
const int _y,
const int _width,
const std::string _text,
LcdFont* _font,
int _font_size,
const bool _invert,
const unsigned long _frame )
{
static int x = 0;
static int y = 0;
static std::vector<int> sizes;
static int text_width = 0;
int i = 0;
int fg = (false==_invert)?CLCDDisplay::PIXEL_ON:CLCDDisplay::PIXEL_OFF;
int bg = (false==_invert)?CLCDDisplay::PIXEL_OFF:CLCDDisplay::PIXEL_ON;
unsigned long frame = 0;
if( 0 == _frame )
{
x = 0;
y = 0;
//prepare sizes
sizes.erase(sizes.begin(),sizes.end());
for( i = 0; i < _text.size(); i++ )
{
int s = _font->getRenderWidth( ( _text.substr( 0, i ) ).c_str(), false );
sizes.push_back( s );
}
text_width = _font->getRenderWidth( _text.c_str(), false );
}
frame = _frame%text_width;
// display.draw_fill_rect ( _x, _y , _x + 120-_width, _y + 64 - 17 , fg );
display.draw_fill_rect ( _x, _y-_font_size+3 , _x+_width, _y+3 , bg );
if( 120 < text_width )
{
int diff;
// std::cout << "***************" << std::endl;
for( i = 0; i < _text.size(); i++ )
{
/* std::cout <<
"[" << i << "] " <<
"size = " << sizes[i] <<
" _frame = " << _frame <<
" strlen = " << _filename.size() <<
" n of sizes = " << sizes.size() <<
" " << _filename.substr( i, _filename.size() - i ) << std::endl;
*/
if( sizes[i] > frame )
{
diff = sizes[i] - frame;
break;
}
}
_font->RenderString( _x + 1 + diff , _y, _width, _text.substr( i, _text.size() - i ).c_str() , fg, 0, false ); // UTF-8
if( text_width - frame < 120 )
{
_font->RenderString( text_width - frame + 5 + _x , _y, _width - ( text_width - frame ) , _text.c_str(), fg, 0, false ); // UTF-8
}
if( frame > text_width )
{
_font->RenderString( _x + 5 - (text_width - frame) * -1, _y, _width, _text.c_str(), fg, 0, false ); // UTF-8
}
}
else
_font->RenderString( _x, _y, _width, _text.c_str() , fg, 0, true ); // UTF-8
}
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: rass und radiotext
Patch nochmals aktualisert, die TV<->Radio-Umschaltung funktioniert jetzt.rhabarber1848 hat geschrieben:Schaut Euch den Patch mal an: EDIT: Patch ist im CVS
Zuletzt geändert von rhabarber1848 am Sonntag 6. September 2009, 15:02, insgesamt 1-mal geändert.
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: rass und radiotext
Das Problem tritt hier auch auf, habe leider keine Lösung.GetAway hat geschrieben:Stopping RT Thread
dmxdev.c: Too many open files: 31
[sectionsd] open dmx: Too many open files
Stopping RT Thread
dmxdev.c: Too many open files: 31
/dev/dvb/adapter0/demux0: Too many open files
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: rass und radiotext
CRadioText::setPid öffnet bei jedem Umschalten einen neuen FD,rhabarber1848 hat geschrieben:Stopping RT Thread
dmxdev.c: Too many open files: 31
/dev/dvb/adapter0/demux0: Too many open files
die Auswertung der Variablen oldPid ist wohl ohne Bedeutung.
Vorher:
# lsof -p 340 | grep demux
neutrino 340 root 20u CHR 250,4 406 /dev/dvb/adapter0/demux0
neutrino 340 root 21u CHR 250,4 406 /dev/dvb/adapter0/demux0
neutrino 340 root 22u CHR 250,4 406 /dev/dvb/adapter0/demux0
Nach dem Umschalten
Log mit Debug beim Umschalten:# lsof -p 340 | grep demux
neutrino 340 root 20u CHR 250,4 406 /dev/dvb/adapter0/demux0
neutrino 340 root 21u CHR 250,4 406 /dev/dvb/adapter0/demux0
neutrino 340 root 22u CHR 250,4 406 /dev/dvb/adapter0/demux0
neutrino 340 root 23u CHR 250,4 406 /dev/dvb/adapter0/demux0
Dieser Patch könnte helfen:Stopping RT Thread
setting pid 0xee9
opening /dev/dvb/adapter0/demux0
opened /dev/dvb/adapter0/demux0
Thread Setting PID 0xee9
Code: Alles auswählen
diff -uNr ../cvs/apps/tuxbox/neutrino/src/driver/radiotext.cpp ./apps/tuxbox/neutrino/src/driver/radiotext.cpp
--- apps/tuxbox/neutrino/src/driver/radiotext.cpp 2009-08-07 09:22:31.000000000 +0200
+++ apps/tuxbox/neutrino/src/driver/radiotext.cpp 2009-09-04 12:54:36.000000000 +0200
@@ -2422,6 +2422,7 @@
// open the device if first pid
if (0 == oldPid)
{
+ close(dmxfd);
dmxfd = open(DMXDEV, O_RDWR);
if (dmxfd < 0) {
perror(DMXDEV);
-
- Erleuchteter
- Beiträge: 625
- Registriert: Samstag 8. September 2007, 16:17
Re: rass und radiotext
Hm, warum erst zumachen bevor was neues reinkommt? Wäre es nicht passender nach
zu schliessen?
Code: Alles auswählen
rt.fd = dmxfd;
-
- Contributor
- Beiträge: 1509
- Registriert: Donnerstag 27. Dezember 2007, 12:59
Re: rass und radiotext
Wäre es nicht sinnvoller das Untertitelsymbol im Radiomodus wegzulassen
und dafür wieder das 16:9 Symbol aufzunehmen, wenn mit --enable-radiotext
kompiliert wird?
und dafür wieder das 16:9 Symbol aufzunehmen, wenn mit --enable-radiotext
kompiliert wird?
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: rass und radiotext
Keine gute Idee, dann kommt beim UmschaltenStriper hat geschrieben:Hm, warum erst zumachen bevor was neues reinkommt? Wäre es nicht passender nachzu schliessen?Code: Alles auswählen
rt.fd = dmxfd;
und kein Radiotext.setting pid 0xee8
Thread Setting PID 0xee8
DMX_SET_PES_FILTER: Bad file descriptor
-
- Developer
- Beiträge: 2183
- Registriert: Mittwoch 10. Dezember 2003, 07:59
Re: rass und radiotext
der Kommunikationskanal, worüber die Daten eingelesen werden, muß natürlich offen bleiben.
-
- Contributor
- Beiträge: 1509
- Registriert: Donnerstag 27. Dezember 2007, 12:59
Re: rass und radiotext
Bei einer voll ausgenutzen rechts-/Links Einstellung des OSD-Bereich,
bleibt nach dem Timeout, links eine Pixelkante der Radiotextbox stehen.
Da sich der Bereich analog zur Infobar verhalten sollte, ist da noch
Nachbearbeitung angesagt.
bleibt nach dem Timeout, links eine Pixelkante der Radiotextbox stehen.
Da sich der Bereich analog zur Infobar verhalten sollte, ist da noch
Nachbearbeitung angesagt.
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: rass und radiotext
Kommt bei euch auch ständig
oder liegt das an der Tripledragon (der TD-Demux ist subtil anders, wie schon beim sectionsd schmerzhaft bemerkt )
Code: Alles auswählen
!!! 150 bytes skipped to get PS/PES sync!!!
-
- Administrator
- Beiträge: 2675
- Registriert: Donnerstag 28. September 2006, 19:18
Re: rass und radiotext
Hab was dran gedreht, damit das passt.GetAway hat geschrieben:Bei einer voll ausgenutzen rechts-/Links Einstellung des OSD-Bereich,
bleibt nach dem Timeout, links eine Pixelkante der Radiotextbox stehen.
Da sich der Bereich analog zur Infobar verhalten sollte, ist da noch
Nachbearbeitung angesagt.
Ist mir bisher nicht augefallen. Passiert das immer, oder nur bei bestimmten Sendern etc...?Kommt bei euch auch ständig
Code:
!!! 150 bytes skipped to get PS/PES sync!!!
oder liegt das an der Tripledragon (der TD-Demux ist subtil anders, wie schon beim sectionsd schmerzhaft bemerkt )
-
- Einsteiger
- Beiträge: 111
- Registriert: Samstag 9. Februar 2008, 15:07
Re: rass und radiotext
Funktioniert jetzt gut und ist optisch schön. Danke für die Kurzform meiner langen IF-Anweisung.rhabarber1848 hat geschrieben: Patch nochmals aktualisert, die TV<->Radio-Umschaltung funktioniert jetzt.
Jetzt bleibt nur noch der Fehler mit der Audio-Aufnahme. Bestlösung wäre, wenn es trotz Radiotextes ginge. Mit automatischer Abschaltung des Radiotextes bei Aufnahme kann man aber auch leben. Habe schon versucht die autom. Abschaltung in die infoviewer.cpp einzubauen. Das geht leider nicht, da der Zeitpunkt zu spät ist. Der Radiotext muß deaktiviert sein bevor die Aufnahme startet. Eine weniger elegante Lösung wäre vielleicht über die recording.start. Das Unschöne ist, daß der Aufnahmeversuch oft mit einem Absturz der Box bestraft wird.