Neutrino Scripts Erweiterung

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
Ryker
Image-Team
Beiträge: 554
Registriert: Montag 2. Juni 2003, 10:38

Neutrino Scripts Erweiterung

Beitrag von Ryker »

Es ist oft sehr von Vorteil, wenn man vor/nach dem Recording/Standby Scripts ausführen kann.

Ich hab hier ein diff, welches Neutrino um 3 Script-Events erweitert.
Ich weiß nicht, ob das alles so an der richtigen Stelle ist. Vielleicht schaut sich das mal jemand an, und checkt es ggf. ins CVS ein.

neutrino_scripts.diff:

Code: Alles auswählen

156a157
> #define NEUTRINO_RECORDING_START_SCRIPT CONFIGDIR "/recording.start"
157a159,160
> #define NEUTRINO_ENTER_STANDBY_SCRIPT   CONFIGDIR "/standby.enter"
> #define NEUTRINO_LEAVE_STANDBY_SCRIPT   CONFIGDIR "/standby.leave"
3618a3622,3629
>
>               if (recordingstatus == 1)
>               {
>                       puts("[neutrino.cpp] executing " NEUTRINO_RECORDING_START_SCRIPT ".");
>
>                       if (system(NEUTRINO_RECORDING_START_SCRIPT) != 0)
>                               perror(NEUTRINO_RECORDING_START_SCRIPT "failed");
>               }
4208a4220,4222
>               puts("[neutrino.cpp] executing " NEUTRINO_ENTER_STANDBY_SCRIPT ".");
>               if (system(NEUTRINO_ENTER_STANDBY_SCRIPT) != 0)
>                       perror(NEUTRINO_ENTER_STANDBY_SCRIPT "failed");
4222a4237,4239
>               puts("[neutrino.cpp] executing " NEUTRINO_LEAVE_STANDBY_SCRIPT ".");
>               if (system(NEUTRINO_LEAVE_STANDBY_SCRIPT) != 0)
>                       perror(NEUTRINO_LEAVE_STANDBY_SCRIPT "failed");
4591c4608
< }
\ Kein Zeilenumbruch am Dateiende.
---
> }

Ryker
D-Box2 (Nokia; Kabel; 2xINTEL; AVIA500) - aktuelles JtG-Image
fernsehass
Einsteiger
Einsteiger
Beiträge: 297
Registriert: Sonntag 13. Oktober 2002, 22:02

Beitrag von fernsehass »

hast du eschon mal bei dir eingebaut ??
funktioniert es ??
oder ist es nur ein vorschlag ??
recording start , was willste da noch machen ??
die standby sachen finde ich gut

PS ich hab grad mal versucht, deinen weg zu verfolgen
die ersten 3 einträge sind ja i.o.
nur mit den letzten diff änderungen kann ich nix anfangen
kannst du mal in dein diff die original 3 zeilen vor und 3 zeilen nach der änderung mit angeben
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Beitrag von Tommy »

recording start , was willste da noch machen ??
...Fernbedienung sperren? ...XML (EPG) File löschen? ...(wenns fertig ist)alux's Aufnahme check starten?

möglichkeiten gibts genug :gruebel:

Bei Aufnahmstop würde ich gerne ein Skript starten was den Dateinamen der aufgenommenen Datei ändert (z.B. den Sender vorne weglöscht) damit man den Dateibrowser im Movieplayer endlich mal eine lesbare Schriftgröße geben kann.
---------------------------
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
fernsehass
Einsteiger
Einsteiger
Beiträge: 297
Registriert: Sonntag 13. Oktober 2002, 22:02

Beitrag von fernsehass »

das recording.end script is ja schon drinnen
Ich habs mal einkompileirt auf die schnelle

heir log beim Standby und wieder an
[controld] videoOutput off
[neutrino.cpp] executing /var/tuxbox/config/standby.enter.
[controld] SAAIOSMODE: Invalid argument

[controld] SAAIOSWSS: Invalid argument

sh: /var/tuxbox/config/standby.enter: not found
/var/tuxbox/config/standby.enterfailed: No such file or directory
[neutrino.cpp] executing /var/tuxbox/config/standby.leave.
[controld] videoOutput on
sh: /var/tuxbox/config/standby.leave: not found

/var/tuxbox/config/standby.leavefailed: Resource temporarily unavailable
ich werde mal standby.enter in standby.on und standby.leave in standby.off ändern.
nur das mit recording.start funktioniert net, ist bestimmt an der falschen stelle
Ryker
Image-Team
Beiträge: 554
Registriert: Montag 2. Juni 2003, 10:38

Beitrag von Ryker »

fernsehass hat geschrieben: nur das mit recording.start funktioniert net, ist bestimmt an der falschen stelle
Ja, richtig, Fehler von mir. Das Ausführen des Scripts muß natürlich auch vor der Aufnahme, also vor der Funktion startNextRecording(), passieren.
D-Box2 (Nokia; Kabel; 2xINTEL; AVIA500) - aktuelles JtG-Image
fernsehass
Einsteiger
Einsteiger
Beiträge: 297
Registriert: Sonntag 13. Oktober 2002, 22:02

Beitrag von fernsehass »

werd ich probiern und berichten
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Beitrag von Tommy »

Wenn's 100% funktioniert und im Image ist bitte hier http://wiki.tuxbox-cvs.sourceforge.net/ ... e_abfangen einbauen
---------------------------
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
fernsehass
Einsteiger
Einsteiger
Beiträge: 297
Registriert: Sonntag 13. Oktober 2002, 22:02

Beitrag von fernsehass »

also das standby funktioniert 1a
[controld] videoOutput off
[neutrino.cpp] executing /var/tuxbox/config/standby.on.
[controld] SAAIOSMODE: Invalid argument
[controld] SAAIOSWSS: Invalid argument
sh: /var/tuxbox/config/standby.on: not found
/var/tuxbox/config/standby.onfailed: No such file or directory


[controld] videoOutput on
[neutrino.cpp] executing /var/tuxbox/config/standby.off.
sh: /var/tuxbox/config/standby.off: not found
/var/tuxbox/config/standby.offfailed: Resource temporarily unavailable
nur das mit dem recording.start will net
das is bestimmt noch nicht an der richtigen stelle im code
ich habs mal vor startNextRecording(), gemacht, aber das will net
ich probier noch bisserl
Ryker
Image-Team
Beiträge: 554
Registriert: Montag 2. Juni 2003, 10:38

Beitrag von Ryker »

fernsehass hat geschrieben:werd ich probiern und berichten
Wenn du schon dabei bist, teste mal, ob damit die Aktion http://tuxbox-forum.mine.nu/forum/viewtopic.php?t=36129 gleich mit erschlagen ist. Vor allem Aufnahme, wenn die dbox mittels standby.on-Script "pzapit -esb" im Standby ist, und in der record.start wieder mit "pzapit -lsb" rausgeholt wird.


Ryker
Zuletzt geändert von Ryker am Donnerstag 24. Februar 2005, 13:43, insgesamt 2-mal geändert.
D-Box2 (Nokia; Kabel; 2xINTEL; AVIA500) - aktuelles JtG-Image
fernsehass
Einsteiger
Einsteiger
Beiträge: 297
Registriert: Sonntag 13. Oktober 2002, 22:02

Beitrag von fernsehass »

kann ich net testen, denn meine box ist nokia avia500
pzapit -esb schaltet nur das bild ab
pzapit -lsb schaltet es wiede an
Mein ac3 reciver bleibt aber auf digital stehen, da das glasfastekabel leuchten bleibt. Es müsste aber ausgehen, damit der analog annimmt.
ich hab auch schon das mit wget ....... AVIAExt... > /dev/null probiert . keine reaktion
Zuletzt geändert von fernsehass am Donnerstag 24. Februar 2005, 13:45, insgesamt 1-mal geändert.
Ryker
Image-Team
Beiträge: 554
Registriert: Montag 2. Juni 2003, 10:38

Beitrag von Ryker »

fernsehass hat geschrieben:kann ich net testen, denn meine box ist nokia avia500
Deswegen ja, ich hab die auch, das funktioniert auf jeder dbox.
D-Box2 (Nokia; Kabel; 2xINTEL; AVIA500) - aktuelles JtG-Image
fernsehass
Einsteiger
Einsteiger
Beiträge: 297
Registriert: Sonntag 13. Oktober 2002, 22:02

Beitrag von fernsehass »

ich hab auf der box eingegeben

wget -0 -q http://127.0.0.1/control/system?getAViAExtIec

dann sollte ja 0 oder 1 kommen . bei mir leider -1 und das wars. liegt wohl doch an den nokias

PS warum willste das recording.start einbauen ??? SPTS macht er doch, und recording.end gibts ja schon, wo man die dateien umbenennen oder löschen kann
Ryker
Image-Team
Beiträge: 554
Registriert: Montag 2. Juni 2003, 10:38

Beitrag von Ryker »

fernsehass hat geschrieben:ich hab auf der box eingegeben
wget -0 -q http://127.0.0.1/control/system?getAViAExtIec
...
Das ist was anderes. Das ist klar das geht auf Nokia mit AVIA500 nicht.
D-Box2 (Nokia; Kabel; 2xINTEL; AVIA500) - aktuelles JtG-Image
fernsehass
Einsteiger
Einsteiger
Beiträge: 297
Registriert: Sonntag 13. Oktober 2002, 22:02

Beitrag von fernsehass »

also, ich hab jetz mal den code "recording.start" mal probehalber an mehreren stellen in der neutrino eingefügt. nur leider ohne erfolg.
ich hab jetz mal nen ansatz, der evtl. was bringen würde.
-vor aufnahme wird doch der SPTS modus eingeschaltet
-da müsste doch dann danach das mit recording.start rein ??????
evtl könnte ja ein dev mal nen tip geben
fernsehass
Einsteiger
Einsteiger
Beiträge: 297
Registriert: Sonntag 13. Oktober 2002, 22:02

Beitrag von fernsehass »

hurra
es geht
Record channel_id: 43700016d6b epg: 43700016d6bdea3, apids mode 1
SPTS, queue 0 extended.

[neutrino.cpp] executing /var/tuxbox/config/recording.start.
sh: /var/tuxbox/config/recording.start: not found
/var/tuxbox/config/recording.startfailed: Interrupted system call
Stop
[stream2file] pthreads exit code: 1
jetz muss ich nur noch rausfinden, welcher von den einträgen, das bewirkt hat :)

PS Ich mach mal nen diff fertig
lüppt astrein
fernsehass
Einsteiger
Einsteiger
Beiträge: 297
Registriert: Sonntag 13. Oktober 2002, 22:02

Beitrag von fernsehass »

@Ryker
hast mail. die veränderte neutrino.cpp
wenn ich ein diff erstelle, dann schreibt der mir müll mit rein
aber kannst ja in kompare sehn, was geändert wurde
Ryker
Image-Team
Beiträge: 554
Registriert: Montag 2. Juni 2003, 10:38

Beitrag von Ryker »

Ich hab mit mal ein Image mit der geänderten neutrino.cpp gebaut. Aber die recording.start wird nicht über eine Timer Programmierung ausgeführt, sondern nur über Aufnahme mit "blau" -> "rot". Die standby.on/standby.off-Aufrufe passen perfekt.
Ich muß mir in einer ruhigen Minute das nochmal anschauen. Der Aufruf muß eigentlich dahin, bevor Neutrino auf den aufzunehmenden Kanal zappt
. Nur wo ist das ? - Ich habs nicht gefunden. Hat jemand einen Tipp?

Ryker
D-Box2 (Nokia; Kabel; 2xINTEL; AVIA500) - aktuelles JtG-Image
Papst
Developer
Beiträge: 279
Registriert: Mittwoch 26. Juni 2002, 22:19

Beitrag von Papst »

Ich hab das schon länger in der stream2file.cpp eingebaut. Und zwar direkt am Anfang der start_recording Methode. Funktioniert bestens.
Aber schätzungsweise nur beim Direktstreaming.
Gruß

Der Papst
fernsehass
Einsteiger
Einsteiger
Beiträge: 297
Registriert: Sonntag 13. Oktober 2002, 22:02

Beitrag von fernsehass »

das wird wohl dann nicht in der neutrino sein, sondern in der vcrcontrol, oder timer... ???
mal sehen, ob ich was finde
ich hab was gefunden
vcrcontrol.cpp
//-------------------------------------------------------------------------
bool CVCRControl::CVCRDevice::Record(const t_channel_id channel_id, int mode, const event_id_t epgid, const std::string & apids)
{
printf("Record channel_id: "
PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS
" epg: %llx, apids %s mode \n",
channel_id,
epgid,
apids.c_str());
// leave menu (if in any)
g_RCInput->postMsg( CRCInput::RC_timeout, 0 );
da beim start einer aufnahme immer die einblendung im log kommt
Record channel_id: 44d00016dca epg: 44d00016dcafb89, apids mode 1
sollte man hier ansetzen siehe printf("Record channel_id: ".......oder in die neutrino.cpp
if (g_settings.recording_type == RECORDING_FILE)
{
char * recDir = ((CTimerdMsg::commandRecordDir*)data)->recDir;
for(int i=0 ; i < NETWORK_NFS_NR_OF_ENTRIES ; i++)
{
if (strcmp(g_settings.network_nfs_local_dir,recDir) == 0)
{
printf("[neutrino] waking up %s (%s)\n",g_settings.network_nfs_ip.c_str(),recDir);
std::string command = "etherwake ";
command += g_settings.network_nfs_mac;
if(system(command.c_str()) != 0)
perror("etherwake failed");
break;

da das vor aufnahme kommt
[neutrino] waking up 192.168.123.254 (/mnt/filme/mov)
fernsehass
Einsteiger
Einsteiger
Beiträge: 297
Registriert: Sonntag 13. Oktober 2002, 22:02

Beitrag von fernsehass »

wenn der eintrag "recording.start" zusätzlich vor
printf("[neutrino] waking up %s (%s)\n",g_settings.network_nfs_ip.c_str(),recDir);

kommt, dann macht der vor dem wakeup die recordin.start (bisserl zeitig)
Ryker
Image-Team
Beiträge: 554
Registriert: Montag 2. Juni 2003, 10:38

Beitrag von Ryker »

fernsehass hat geschrieben:... (bisserl zeitig)
Nö ist doch ok, das ist der Zeitpunkt der RECORTIMER.ANNOUNCE (Text->Die Aufname beginnt in wenigen Minuten) - hautsache rechtzeitig genug bevor umgeschaltet wird. Aber man müßte es noch aus dem "if" rausnehmen, damits nicht nur beim RECORDING_FILE funktioniert, sondern bei allen AufnahmeArten - also Direct,Server und VCR.

Ryker
D-Box2 (Nokia; Kabel; 2xINTEL; AVIA500) - aktuelles JtG-Image
fernsehass
Einsteiger
Einsteiger
Beiträge: 297
Registriert: Sonntag 13. Oktober 2002, 22:02

Beitrag von fernsehass »

ich hab das jetzt 2x drinn
Einmal für Direktaufnahme
bool CNeutrinoApp::doGuiRecord(char * preselectedDir, bool addTimer)
{
CTimerd::RecordingInfo eventinfo;
bool refreshGui = false;
if(CVCRControl::getInstance()->isDeviceRegistered())
{
if(recordingstatus == 1)
{
//test
puts("[neutrino.cpp] executing " NEUTRINO_RECORDING_START_SCRIPT ".");
if (system(NEUTRINO_RECORDING_START_SCRIPT) != 0)
perror(NEUTRINO_RECORDING_START_SCRIPT "failed");
//test

CZapitClient::CCurrentServiceInfo si = g_Zapit->getCurrentServiceInfo();
eventinfo.channel_id = CREATE_CHANNEL_ID_FROM_SERVICE_ORIGINALNETWORK_TRANSPORTSTREAM_ID(si.sid, si.onid, si.tsid);
CEPGData epgData;
if (g_Sectionsd->getActualEPGServiceKey(g_RemoteControl->current_channel_id, &epgData ))
{
Und einmal für Timeraufnahmen
else if (msg == NeutrinoMessages::RECORD_START)
{
//test
puts("[neutrino.cpp] executing " NEUTRINO_RECORDING_START_SCRIPT ".");
if (system(NEUTRINO_RECORDING_START_SCRIPT) != 0)
perror(NEUTRINO_RECORDING_START_SCRIPT "failed");
//test

/* set nextRecordingInfo to current event (replace other scheduled recording if available) */

/*
* Note: CTimerd::RecordingInfo is a class!
* What a brilliant idea to send classes via the eventserver!
* => typecast to avoid destructor call
*/
if (nextRecordingInfo != NULL)
delete (unsigned char *) nextRecordingInfo;
PS Hab mal den 2.teil überarbeitet :)
Zuletzt geändert von fernsehass am Sonntag 27. Februar 2005, 16:22, insgesamt 1-mal geändert.
DrStoned
Tuxboxer
Tuxboxer
Beiträge: 2614
Registriert: Montag 20. Mai 2002, 10:49
Image: JTG-Image [IDE] Version 2.4.4
Image: (7025SS) Merlin

Beitrag von DrStoned »

fernsehass hat geschrieben:also das standby funktioniert 1a
[controld] videoOutput off
[neutrino.cpp] executing /var/tuxbox/config/standby.on.
[controld] SAAIOSMODE: Invalid argument
[controld] SAAIOSWSS: Invalid argument
sh: /var/tuxbox/config/standby.on: not found
/var/tuxbox/config/standby.onfailed: No such file or directory


[controld] videoOutput on
[neutrino.cpp] executing /var/tuxbox/config/standby.off.
sh: /var/tuxbox/config/standby.off: not found
/var/tuxbox/config/standby.offfailed: Resource temporarily unavailable
nur das mit dem recording.start will net
das is bestimmt noch nicht an der richtigen stelle im code
ich habs mal vor startNextRecording(), gemacht, aber das will net
ich probier noch bisserl
Wird das jetzt eventuell ins CVS eingecheckt?
Ich benötige die standby.off um das Reminder-Plugin auch nach dem Aufwachen der Box aus dem Standby zu starten.
Greetz von DrStoned :lol: :lol: :lol:
fernsehass
Einsteiger
Einsteiger
Beiträge: 297
Registriert: Sonntag 13. Oktober 2002, 22:02

Beitrag von fernsehass »

also ich teste das noch.
ich cchecke grad mal neu aus, und dann bau ich das ein, und es wird getestet.
Das standby.on und *.off geht 1a . auch das recording.start bei direktaufnahme geht. Bei timeraufnahme *.ts geht jetzt auch, da ich den code woanders untergebracht habe. Ob das inc cvs kommt, kannst du ja mal Ryker fragen, oder einen der devs.
Ryker
Image-Team
Beiträge: 554
Registriert: Montag 2. Juni 2003, 10:38

Beitrag von Ryker »

fernsehass hat geschrieben:... kannst du ja mal Ryker fragen, oder einen der devs.
@fernsehass: Mach doch mal einen diff, und gib den mal an einen Dev weiter - z.b. an metallica, die_made oder wer auch immer die Neutrino-Sourcen gut kennt.. Derjenige sollte nochmal drüberschauen und ggf einchecken.


Ryker
D-Box2 (Nokia; Kabel; 2xINTEL; AVIA500) - aktuelles JtG-Image