Eingriff ins CVS

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
Grabber66
Einsteiger
Einsteiger
Beiträge: 216
Registriert: Dienstag 1. Juni 2004, 12:24

Eingriff ins CVS

Beitrag von Grabber66 »

Hallo zusammen,
ich habe mal folgende Frage.
Ich wollte im EPG-Menue einen weiteren Punkt einbringen.
Dieser soll ein selbstgeschriebenes Script starten. Doch leider fehlt mir dazu
noch etwas hintergrundwissen.
In epg_menue.cpp wird ja alles mit z.B.:
EPGSelector.addItem(new CMenuForwarder(LOCALE_EPGMENU_STREAMINFO, true, NULL, new CStreamInfo2() , NULL, CRCInput::RC_blue , NEUTRINO_ICON_BUTTON_BLUE ), false);
aufgerufen.
Doch wie wie bekomme ich mein Scripz ans laufen.
Sollte irgentwie so aussehen :
system("/var/plugins/tabelle.sh");
Doch wie bekommen ich den Befehl in die Auswahl.

Danke schonmal für eure Ideen.

THX
Zuletzt geändert von Grabber66 am Mittwoch 3. August 2005, 07:05, insgesamt 1-mal geändert.
rasc
Senior Member
Beiträge: 5071
Registriert: Dienstag 18. September 2001, 00:00

Beitrag von rasc »

Du musst eine Klasse dafuer schreiben...
Grabber66
Einsteiger
Einsteiger
Beiträge: 216
Registriert: Dienstag 1. Juni 2004, 12:24

Beitrag von Grabber66 »

Die Klasse wird ja in der epg_menue.h definiert.

Code: Alles auswählen

#ifndef __epg_menu__
#define __epg_menu__
#include "widget/menue.h"

using namespace std;
class CEPGMenuHandler : public CMenuTarget
{
	public:
		int  exec( CMenuTarget* parent,  const std::string &actionkey);
		int  doMenu();
};
class CEPGMenusript : public CMenuTarget
{
	public:
		int  exec( CMenuTarget* parent,  const std::string &actionkey);
		int  system("/var/plugins/tabelle.sh");
};
#endif
Muss ich das dann so einbringen ?
rasc
Senior Member
Beiträge: 5071
Registriert: Dienstag 18. September 2001, 00:00

Beitrag von rasc »

Grabber66 hat geschrieben:Die Klasse wird ja in der epg_menue.h definiert.

Code: Alles auswählen

#ifndef __epg_menu__
#define __epg_menu__
#include "widget/menue.h"

using namespace std;
class CEPGMenuHandler : public CMenuTarget
{
	public:
		int  exec( CMenuTarget* parent,  const std::string &actionkey);
		int  doMenu();
};
class CEPGMenusript : public CMenuTarget
{
	public:
		int  exec( CMenuTarget* parent,  const std::string &actionkey);
		int  system("/var/plugins/tabelle.sh");
};
#endif
Muss ich das dann so einbringen ?

nö, (btw: war das mit dem int system (...) oben konzeptionell zu verstehen?)

du muss den System-Aufruf in eine eigene Klasse bzw. Handler bringen (am besten eigenes Source-Modul). Dann kannst du die Klasse aufrufen.
Wie das geht? Guckt dir einfach mal die Klassen an, die vom EPG-Menue instanziiert werden und was die Klasse machen (muss).

Ansonsten gibt es doch schon ein Plugin, das Scripte ausfuehrt, das könnte man eigentlich 1:1 uebernehmen.