Eigenes Plugin compilieren
-
- Contributor
- Beiträge: 1833
- Registriert: Mittwoch 10. April 2002, 15:39
Re: Eigenes Plugin compilieren
[quote]
...
benötigt von »testplugin_la-testplugin.lo«, zu erstellen. Schluss.
...
/quote]
ich hab da ja wenig ahnung von, aber das testplugin_la-testplugin.lo hat seine richtigkeit?
...
benötigt von »testplugin_la-testplugin.lo«, zu erstellen. Schluss.
...
/quote]
ich hab da ja wenig ahnung von, aber das testplugin_la-testplugin.lo hat seine richtigkeit?
Re: Eigenes Plugin compilieren
Auch mal ../plugins/configure, ../plugins/makefile gelöscht?Probier das:
rm /home/martin/dbox-neutrino/tuxbox/apps/tuxbox/plugins/config.status
make test1
Nichts für ungut, dieser kleiner Hinweis könnte deiner Motivation möglicherweise gut tun:rhabarber1848 hat geschrieben:...
Ach ja, ich bin ehrlicherweise faul, was das Schreiben von
Dokus angeht, mein VMWare-Howto ist die Ausnahme.
Wenn jemand möchte, kann der Inhalt des Howtos gerne
ins Wiki übernommen werden, mir fehlt dazu die Motivation
http://wiki.tuxbox-cvs.sourceforge.net/ ... umentation
Edit: und seit Newmake der Standard ist, wäre es besser, nicht die mangelnde Dokumentation, wie sie bei Oldmake üblich war, fortzuführen.
-
- Erleuchteter
- Beiträge: 448
- Registriert: Samstag 26. November 2005, 00:35
Re: Eigenes Plugin compilieren
Ich habe die drei Dateien gelöscht aber ohne das sich etwas geändert hat.
Martin
Das ist bestimm bloß eine Winzigkeit und ich sehe es nichtconfig.status: executing depfiles commands
make -C /home/martin/dbox-neutrino/tuxbox/apps/tuxbox/plugins/test1 all install
make[1]: Entering directory `/home/martin/dbox-neutrino/tuxbox/apps/tuxbox/plugins/test1'
make[1]: *** Keine Regel vorhanden, um das Target »testplugin.c«,
benötigt von »testplugin_la-testplugin.lo«, zu erstellen. Schluss.
make[1]: Leaving directory `/home/martin/dbox-neutrino/tuxbox/apps/tuxbox/plugins/test1'
make: *** [test1] Fehler 2
martin@Mac-Mini:~/dbox-neutrino/tuxbox/cdk$
Martin
Re: Eigenes Plugin compilieren
Hast du eine test.c oder testplugin.c in deinem Ordner, weil in deiner makefile.am steht test.c und nicht testplugin.c
-
- Erleuchteter
- Beiträge: 448
- Registriert: Samstag 26. November 2005, 00:35
Re: Eigenes Plugin compilieren
@dixidix
der test.c steht bei cs_4711 im Makefile.am habs bei mir nochmal kontrolliert da steht testplugin.c drin.
Martin
der test.c steht bei cs_4711 im Makefile.am habs bei mir nochmal kontrolliert da steht testplugin.c drin.
Martin
-
- Erleuchteter
- Beiträge: 448
- Registriert: Samstag 26. November 2005, 00:35
Re: Eigenes Plugin compilieren
So ich habe nun mal tuxcal nach tuxcal2 kopiert. Danach aus tuxcal.c ->tuxcal2.c den usw alles angepasst die makefiles ebenso und plugins.mk auch aber es wurde nicht gebaut. Nun kommt in mit der Gedanke auf das das Problem im CVS ist sag ich einfach mal so.
Martin
Martin
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: Eigenes Plugin compilieren
Ich vermute eher, dass da noch Reste früherer Kompilierläufe im Weg liegen.
-
- Erleuchteter
- Beiträge: 448
- Registriert: Samstag 26. November 2005, 00:35
Re: Eigenes Plugin compilieren
@rhabarber1848
Könntest Du mal per cut und paste "meine" Dateien bei Dir Bauen ? Ansonsten wüsste ich gerade nicht mehr wie ich das sonnst rausfinden kann.
Ich habe es übrigens auch mit einem alten"Backup" probiert da ging es auch nicht.
Im Augenblick gehen mir die Ideen aus. Eine Zeitlang vermutete ich das es daran liegen könnte dasja alle Ihre name des plugins ins selbigen Ordner stecken und ich deswegen einen unbeabsichtigten Fehler habe weil evt irgendwo der Name des Pluginsources im Pfad auftaucht aber selbst eine Anpassung von test1 (Pfadname) auf testplugin brachte keinen Erfolg.
Martin
Könntest Du mal per cut und paste "meine" Dateien bei Dir Bauen ? Ansonsten wüsste ich gerade nicht mehr wie ich das sonnst rausfinden kann.
Ich habe es übrigens auch mit einem alten"Backup" probiert da ging es auch nicht.
Im Augenblick gehen mir die Ideen aus. Eine Zeitlang vermutete ich das es daran liegen könnte dasja alle Ihre name des plugins ins selbigen Ordner stecken und ich deswegen einen unbeabsichtigten Fehler habe weil evt irgendwo der Name des Pluginsources im Pfad auftaucht aber selbst eine Anpassung von test1 (Pfadname) auf testplugin brachte keinen Erfolg.
Martin
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: Eigenes Plugin compilieren
testplugin.diff (EDIT: Datei im ULC gelöscht)
Funktioniert ohne Probleme, *wenn* der Patch in einem Original-CVS-
checkout-Verzeichnis angewendet wird. Ich würde nie ein Image
kompilieren wollen, wenn vorher schon einmal in dem Verzeichnis
kompiliert wurde, es bleiben immer irgendwelche Reste, die
Probleme bereiten.
Funktioniert ohne Probleme, *wenn* der Patch in einem Original-CVS-
checkout-Verzeichnis angewendet wird. Ich würde nie ein Image
kompilieren wollen, wenn vorher schon einmal in dem Verzeichnis
kompiliert wurde, es bleiben immer irgendwelche Reste, die
Probleme bereiten.
-
- Foren-Moderator
- Beiträge: 297
- Registriert: Montag 11. Oktober 2004, 14:51
Re: Eigenes Plugin compilieren
Hi Martin,
ich bau das gerade mal für dich.
EDIT:
Hat durchgebaut. Ein diff hat rhabarber schon angehängt
ich bau das gerade mal für dich.
EDIT:
Hat durchgebaut. Ein diff hat rhabarber schon angehängt
-
- Erleuchteter
- Beiträge: 448
- Registriert: Samstag 26. November 2005, 00:35
Re: Eigenes Plugin compilieren
Ich probiere das dann gleich mal aus. Das es nicht geht bei mir und in einem neuen ausgechecktem geht ist evt ein kleiner Grund warum es keine neuen Plugisn mehr gibt oder jemand da mal die Lust verleirt was zu machen. Von daher versuche ich mal den Fehler weiter einzukreisen um vielleicht das Problem eingrenzen zu können.
Von daher wäre mein Vorschlag mit einem "hello World" Dummy Plugin das bei einem neuen cvs ausgecheckt wird teils Sinnvoll den so wie es jetzt ist hat ja der schlechte Karten der schon mal ein snapshot gebaut hat .
Im übrigen grüble ich gerade darüber welche Dateien ich vom alten cvs in ein neues kopieren muss um die toolcain und den gcc nicht mehr neu bauen zu müssen das dauert glaube ich zu lange und das könnte ich mir ja nun bei der testfehlersuche sparen.
Ich probiere das nun mal alles aus.
Danke
Martin
Von daher wäre mein Vorschlag mit einem "hello World" Dummy Plugin das bei einem neuen cvs ausgecheckt wird teils Sinnvoll den so wie es jetzt ist hat ja der schlechte Karten der schon mal ein snapshot gebaut hat .
Im übrigen grüble ich gerade darüber welche Dateien ich vom alten cvs in ein neues kopieren muss um die toolcain und den gcc nicht mehr neu bauen zu müssen das dauert glaube ich zu lange und das könnte ich mir ja nun bei der testfehlersuche sparen.
Ich probiere das nun mal alles aus.
Danke
Martin
-
- Foren-Moderator
- Beiträge: 297
- Registriert: Montag 11. Oktober 2004, 14:51
Re: Eigenes Plugin compilieren
Jo, Idee finde ich gut.
Aus tuxcom / tuxtxt könnten man sich die Basisfunktionen zum zeichnen einer Box, für eine Linie, für RenderChar, etc. leihen
Aus tuxcom / tuxtxt könnten man sich die Basisfunktionen zum zeichnen einer Box, für eine Linie, für RenderChar, etc. leihen
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: Eigenes Plugin compilieren
Das glaube ich nicht, vor kurzem habe ich das tuxclock-Plugin eingecheckt.MPC823 hat geschrieben:ein kleiner Grund warum es keine neuen Plugisn mehr gibt
Aus den damaligen Patches kann recht einfach abgeschaut werden, wie ein
neues Plugin in das build-system zu integrieren ist.
-
- CDK-Experte
- Beiträge: 4335
- Registriert: Donnerstag 3. April 2008, 14:05
Re: Eigenes Plugin compilieren
Ohne Gewähr:MPC823 hat geschrieben:Im übrigen grüble ich gerade darüber welche Dateien ich vom alten cvs in ein neues kopieren muss um die toolcain und den gcc nicht mehr neu bauen zu müssen
CVS in ein leeres Verzeichnis kopieren, autogen/configure wie gehabt
make bootstrap
$PREFIX, also die Verzeichnisse, die durch bootstrap erstellt wurden, woanders hin kopieren,
das betrifft die Verzeichnisse "cdk cdkflash cdkroot tftpboot"
Beim nächsten Kompilieren:
- CVS in ein leeres Verzeichnis kopieren, autogen/configure wie gehabt
- cp -pr $Kopie_des_alten_prefix/* $PREFIX/
- make install-linux-headers
Code: Alles auswählen
for i in binutils bootstrap bootstrap_gcc directories gcc install-linux-headers libc linuxdir; do
touch .deps/$i
done
-
- Erleuchteter
- Beiträge: 448
- Registriert: Samstag 26. November 2005, 00:35
Re: Eigenes Plugin compilieren
vielen Dank mal . Man will zwar mal geschwind was machen und dann klappt es nicht . Man lernt dann dabei was aber ab und an nervt es auch das halt aus geschwind zwei Tage werden.
Das mit dem Backup beherzige ich gerade. Ich nehme ein frisches CVS und baue mal nur mit make bootstrap neu das nehme ich dann mal als Grundlage zum testen.
Den nun ging es auf einmal. Ebentuell reicht es nicht aus nur die config.status Makefile und configure zu löschen. Ich hatte dann mal rumprobiert mit make mostlyclean , make depsclean, und make clean.
Deswegen will ich nochmal alles frisch machen um das Problem zu lokalisieren mit "try und error" dann konnte man das ins wiki reinstellen als Dummy tutorial oder wie man es auch nennen mag.
Gruss Martin
Das mit dem Backup beherzige ich gerade. Ich nehme ein frisches CVS und baue mal nur mit make bootstrap neu das nehme ich dann mal als Grundlage zum testen.
Den nun ging es auf einmal. Ebentuell reicht es nicht aus nur die config.status Makefile und configure zu löschen. Ich hatte dann mal rumprobiert mit make mostlyclean , make depsclean, und make clean.
Deswegen will ich nochmal alles frisch machen um das Problem zu lokalisieren mit "try und error" dann konnte man das ins wiki reinstellen als Dummy tutorial oder wie man es auch nennen mag.
Gruss Martin
-
- Erleuchteter
- Beiträge: 448
- Registriert: Samstag 26. November 2005, 00:35
Re: Eigenes Plugin compilieren
Hier mal was ich mir als Gedächtnisstütze zusammengeschrieben habe.
Vielleicht Hilft ja dem einem oder anderen.
Mein eigener Fehler habe ich auch gefunden für eure Hilfe vielen Dank
Martin
Code: Alles auswählen
How2make Plugins
Inhaltsverzeichnis
1) Plugin erstellen
a) Erstellen eines Verzeichnisses
b) Plugin Dateien erstellen
c) Editieren der vier Plugin Dateien
d) Saeubern des Plugin Hauptverzeichnisses
e) Das Plugin in configure.ac bekanntmachen
f) Suchpfad in Makefile.am anpassen
g) Dem Builder in plugin.mk das neue Plugin bekannt machen
h) Neues Plugin Target anlegen in plugin.mk
i) Umgebung neu initialisieren
j) Plugin bau starten
k) Direkter Aufruf
2) aendern der Ordnernamens von "plugintest" -> "myname"
a) Aenderungen in plugins.mk
b) Aenderungen in configure.ac
c) Aenderungen in Makefile.am
d) Umbenennen des eigenen Pluginverezichnisses
e) Saeubern des eigenen Pluginverzeichnis
f) Saeubern des Plugin Hauptverzeichnisses
g) Umgebung neu initialisieren
h) Neubau des Plugins
1) Plugin erstellen
Verzeichnisname : plugintest , Sourcode Name : testplugin.c
a)Erstellen eines Verzeichnisses
erstellen von "plugintest in ~/dbox-neutrino/tuxbox/apps/tuxbox/plugins
Bsp :
cd ~/dbox-neutrino/tuxbox/apps/tuxbox/plugins
mkdir plugintest
b) Plugin Dateien erstellen
Fuellen des Verzeichnises mit mind 4 Dateien
Bsp :
touch testplugin.c testplugin.cfg testplugin.h Makefile.am
c) Editieren der vier Dateien
Inhalt von testplugin.c :
***************************
#include "testplugin.h"
void plugin_exec(PluginParam *par)
{
printf("Hallo Welt\n");
return;
}
***************************
Inhalt von testplugin.cfg :
***************************
type=2
name=Testplugin
desc=Test zur Pluginerstellung
needfb=0
needlcd=0
needrc=0
needoffsets=0
***************************
Inhalt von testplugin.h :
***************************
#include "stdio.h"
#include "plugin.h"
***************************
Inhalt von Makefile.am :
***************************
AM_CPPFLAGS = \
@FREETYPE_CFLAGS@ \
-I$(top_srcdir)/include
noinst_LTLIBRARIES = testplugin.la
testplugin_la_SOURCES = testplugin.c
if BOXTYPE_DREAMBOX
testplugin_la_CFLAGS = -DOLDFT
endif
testplugin_la_LIBADD = \
@FREETYPE_LIBS@
testplugin_la_LDFLAGS = -rpath $(PLUGINDIR) -module -avoid-version
install-exec-local:
install -d $(DESTDIR)$(PLUGINDIR)
install -d $(DESTDIR)$(CONFIGDIR)
install -d $(DESTDIR)$(CONFIGDIR)/testplugin
$(LIBTOOL) --mode=install install testplugin.la $(DESTDIR)$(PLUGINDIR)
install -m 0644 $(srcdir)/testplugin.cfg $(DESTDIR)$(PLUGINDIR)
***************************
d) Saeubern des Plugin Hauptverzeichnisses
Loeschen der Dateien „ config.status configure Makefile Makefile.in „ in ~/dbox-neutrino/tuxbox/apps/tuxbox/plugins
Bsp :
cd ~/dbox-neutrino/tuxbox/apps/tuxbox/plugins
rm config.status configure Makefile Makefile.in
e)Das Plugin in configure.ac bekanntmachen
Mit dem Eintrag "plugintest/Makefile" in configure.ac wird fuer configure das Plugin vorbereitet :
**************************
vncviewer/rfb/Makefile
plugintest/Makefile
dvbsub/Makefile
**************************
f) Suchpfad in Makefile.am anpassen
Im Makefile.am den Suchpfad fuer das Plugin bekanntmachen mit dem Eintrag "plugintest" unter
"SUBDIRS = \
include tuxmail tuxtxt tuxcom tuxcal tuxclock fx2 vncviewer enigma"
Makefile.am
**************************
AUTOMAKE_OPTIONS = gnu
SUBDIRS = \
include tuxmail tuxtxt tuxcom tuxcal tuxclock fx2 vncviewer enigma plugintest
if BOXTYPE_DREAMBOX
SUBDIRS += pip mosaic
else
SUBDIRS += pluginx
endif
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = \
tuxbox-plugins.pc
**************************
g) Dem Builder in plugin.mk das neue Plugin bekannt machen
plugin.mk liegt in ~/dbox-neutrino/tuxbox/cdk/make
dort dem Eintrag
"neutrino-plugins: $(targetprefix)/include/tuxbox/plugin.h tuxmail tuxtxt tuxcom tuxcal vncviewer dvbsub"
den Namen zum Aufruf eintragen Bsp "plugintest"
Bsp :
"neutrino-plugins: $(targetprefix)/include/tuxbox/plugin.h tuxmail tuxtxt tuxcom tuxcal vncviewer dvbsub plugintest"
h) Neues Plugin Target anlegen in plugin.mk
Dann noch eine Regel erstellen was beim Aufruf von plugintest zu tun ist und am Ende hinzufuegen. Hierbei sehr genau darauf achten das im Eintrag "$(appsdir)/tuxbox/plugins/plugintest" mit der Pfad zum Plugin richtig Eingetragen ist -> "$(appsdir)/tuxbox/plugins/plugintest"
Bsp :
plugintest: $(appsdir)/tuxbox/plugins/config.status
$(MAKE) -C $(appsdir)/tuxbox/plugins/plugintest all install
if TARGETRULESET_FLASH
flash-plugintest: $(appsdir)/tuxbox/plugins/config.status | $(flashprefix)/root
$(MAKE) -C $(appsdir)/tuxbox/plugins/plugintest all install prefix=$(flashprefix)/root
@FLASHROOTDIR_MODIFIED@
endif
i) Umgebung neu initialisieren
Einmal autogen.sh und configure neu starten damit neu Regeln zum Pluginbau erstellt werden (configure.status etc)
j) Plugin bau starten
Bau der Plugins starten mit "make plugins" dabei werden alle Plugins gebaut die unter in plugins.mk unter "plugins:" gelistet sind hier zum Bsp baut Plugins
Erlaeterung was passiert :
„plugins“ ruft -> „neutrino-plugins enigma-plugins fx2-plugins“ auf
“neutrino-plugins“ ruft -> tuxmail tuxtxt tuxcom tuxcal vncviewer dvbsub plugintest
wenn plugintest an der Reihe ist wird folgendes ausgefuehrt
****************************************
plugintest: $(appsdir)/tuxbox/plugins/config.status
$(MAKE) -C $(appsdir)/tuxbox/plugins/plugintest all install
if TARGETRULESET_FLASH
flash-plugintest: $(appsdir)/tuxbox/plugins/config.status | $(flashprefix)/root
$(MAKE) -C $(appsdir)/tuxbox/plugins/plugintest all install prefix=$(flashprefix)/root
@FLASHROOTDIR_MODIFIED@
endif
*****************************************
k) Direkter Aufruf
Das Plugin kann auch direkt mit "make plugintest" aufgerufen werden
(noch testen ob das wirklich geht wegen dem Eintrag "$(targetprefix)/include/tuxbox/plugin.h" unter neutrino-plugins)
2) aendern der Ordnernamens von "plugintest" -> "myname"
a) Anderungen in plugins.mk
Dazu muss der Pfad in ~/dbox-neutrino/tuxbox/cdk/make/plugins.mk an beiden Stellen geaendert werden von "$(appsdir)/tuxbox/plugins/plugintest" nach "$ (appsdir)/tuxbox/plugins/myname"
b) Anderungen in configure.ac
~/dbox-neutrino/tuxbox/apps/tuxbox/plugins/configure.ac von "plugintest/Makefile" -> "myname/Makefile"
c) Anderungen in Makefile.am
~/dbox-neutrino/tuxbox/apps/tuxbox/plugins/Makefile.am von
"SUBDIRS = \
include tuxmail tuxtxt tuxcom tuxcal tuxclock fx2 vncviewer enigma plugintest"
nach
"SUBDIRS = \
include tuxmail tuxtxt tuxcom tuxcal tuxclock fx2 vncviewer enigma myname"
d) Umbenennen des eigenen Pluginverezichnisses
"Eigene Pluginverzeichnis" umbennen von "plugintest" -> "myname
e) Saeubern des eigenen Pluginverzeichnis
Im Pluginverzeichnis nun die beim "letzten Bauen erstellten Dateien und Ordner loeschem ( .deps .libs Makefile Makefile.in testplugin.la testplugin_la-testplugin.lo) dann muessten nur noch die vier Urspruenglichen Dateien "testplugin.c testplugin.cfg testplugin.h Makefile.am" vorhanden sein
Bsp :
cd ~/dbox-neutrino/tuxbox/apps/tuxbox/plugins/myname
rm -r .deps .libs Makefile Makefile.in testplugin.la testplugin_la-testplugin.lo
f) Saeubern des Plugin Hauptverzeichnisses
Loeschen von config.status configure Makefile Makefile.in in ~/dbox-neutrino/tuxbox/apps/tuxbox/plugins
Bsp :
cd ~/dbox-neutrino/tuxbox/apps/tuxbox/plugins
rm config.status configure Makefile Makefile.in
g) Umgebung neu initialisieren
Einmal autogen.sh und configure neu starten damit neu Regeln zum Pluginbau erstellt werden (configure.status etc)
h) Neubau des Plugins
dann den Bau der Plugins starten mit "make plugins" siehe unter 1j
Mein eigener Fehler habe ich auch gefunden für eure Hilfe vielen Dank
Martin
-
- Erleuchteter
- Beiträge: 448
- Registriert: Samstag 26. November 2005, 00:35
Re: Eigenes Plugin compilieren
Wenn ich mein GUi Plugin aufrufe bekomme ich die Fehlermeldung in der Konsole
error 1: parameter missing
soweit so unklar
Ich Frage mich gerade wo die Parameter beim Aufruf herkommen.
void plugin_exec(PluginParam *par)
Ich lehne mich an das tuxclock plugin an.
Martin
error 1: parameter missing
soweit so unklar
Ich Frage mich gerade wo die Parameter beim Aufruf herkommen.
void plugin_exec(PluginParam *par)
Ich lehne mich an das tuxclock plugin an.
Martin
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: Eigenes Plugin compilieren
Das ist einfach ;-)
"parameter missing" ist errormsg[1] (tuxclock.h)
errormsg[x] wird von errorlog(x) verwendet.
errorlog(1) wird in Zeile 762 aufgerufen:
Also gehe ich mal davon aus, dass dein config-File nicht alles, was laut deiner eigenen Abfrage benötigt wird, enthält.
P_ID_FBUFFER entspricht "needfb"
P_ID_RCINPUT entspricht "needrc"
P_ID_OFF_X etc. entsprechen "needoffset"
Nachzulesen in apps/tuxbox/neutrino/src/gui/plugins.cpp
"parameter missing" ist errormsg[1] (tuxclock.h)
errormsg[x] wird von errorlog(x) verwendet.
errorlog(1) wird in Zeile 762 aufgerufen:
Code: Alles auswählen
748 void plugin_exec(PluginParam *par) {
749 int iPos; // menu position
750 int tmp; // temporary variable
751
752 fb = rc = sx = ex = sy = ey = -1;
753 for (; par; par = par->next) {
754 if (!strcmp(par->id, P_ID_FBUFFER)) { fb = atoi(par->val); }
755 else if (!strcmp(par->id, P_ID_RCINPUT)) { rc = atoi(par->val); }
756 else if (!strcmp(par->id, P_ID_OFF_X)) { sx = atoi(par->val); }
757 else if (!strcmp(par->id, P_ID_END_X)) { ex = atoi(par->val); }
758 else if (!strcmp(par->id, P_ID_OFF_Y)) { sy = atoi(par->val); }
759 else if (!strcmp(par->id, P_ID_END_Y)) { ey = atoi(par->val); }
760 }
761 if (fb == -1 || rc == -1 || sx == -1 || ex == -1 || sy == -1 || ey == -1) {
762 errorlog(1);
763 return;
764 }
P_ID_FBUFFER entspricht "needfb"
P_ID_RCINPUT entspricht "needrc"
P_ID_OFF_X etc. entsprechen "needoffset"
Nachzulesen in apps/tuxbox/neutrino/src/gui/plugins.cpp
-
- Erleuchteter
- Beiträge: 448
- Registriert: Samstag 26. November 2005, 00:35
Re: Eigenes Plugin compilieren
Danke Seife hat schon mal wieder ein bischen weitergeholfen.
"Es" baut jetz und was angezeigt wird auch. Nun würde ich gerne der Übersichtlichkeit wegen den code spliten in
application.c + application.h , remotecontrol.c + remotecontrol.h und eine gui.c + gui.h .
dadurch wäre es deutlich einfacher beim programmieren .
Hat jemand noch ein paar Tipps ?
Martin
"Es" baut jetz und was angezeigt wird auch. Nun würde ich gerne der Übersichtlichkeit wegen den code spliten in
application.c + application.h , remotecontrol.c + remotecontrol.h und eine gui.c + gui.h .
dadurch wäre es deutlich einfacher beim programmieren .
Hat jemand noch ein paar Tipps ?
Martin
-
- Foren-Moderator
- Beiträge: 297
- Registriert: Montag 11. Oktober 2004, 14:51
Re: Eigenes Plugin compilieren
Naja, ich versuch es mal:
du musst den code, den du in z.B. remotecontrol.c schreibst, in application.c mit
einschliessen, mit dem Rest(gui.h) analog.
Dann sollte das kein weiteres Problem darstellen
du musst den code, den du in z.B. remotecontrol.c schreibst, in application.c mit
Code: Alles auswählen
#include "remotecontrol.h"
Dann sollte das kein weiteres Problem darstellen
-
- Erleuchteter
- Beiträge: 448
- Registriert: Samstag 26. November 2005, 00:35
Re: Eigenes Plugin compilieren
Hi,
mit dem include der header ist nicht so gut zumindest hatte ich da so meine Probleme.
Ich habe nun eine gui.h und gui.c
in der gui.c habe ich eine prozedure erstellt
void initgui()
{
hier die init sequenzen
}
und diese dann in der namevomplugin.c unter
#include "plugins.h"
void initgui{};
bekanntgemacht ja nur hat das natürlich nicht funktioniert weil die parameter welche dem Plugin übergeben werden ja durchreichen muss also
in der gui.c
oben
#include "plugin.h"
unten dann
void initgui(PluginParam *par)
{
hier die init sequenzen
}
in der
und diese dann in der namevomplugin.c unter
#include "plugins.h"
void initgui{PluginParam *par};
und in
void plugin_exec(PluginParam *par) {
initgui(par);
return;
}
nun gehts nun müsste ich nur noch den FB code auslagern
Martin
mit dem include der header ist nicht so gut zumindest hatte ich da so meine Probleme.
Ich habe nun eine gui.h und gui.c
in der gui.c habe ich eine prozedure erstellt
void initgui()
{
hier die init sequenzen
}
und diese dann in der namevomplugin.c unter
#include "plugins.h"
void initgui{};
bekanntgemacht ja nur hat das natürlich nicht funktioniert weil die parameter welche dem Plugin übergeben werden ja durchreichen muss also
in der gui.c
oben
#include "plugin.h"
unten dann
void initgui(PluginParam *par)
{
hier die init sequenzen
}
in der
und diese dann in der namevomplugin.c unter
#include "plugins.h"
void initgui{PluginParam *par};
und in
void plugin_exec(PluginParam *par) {
initgui(par);
return;
}
nun gehts nun müsste ich nur noch den FB code auslagern
Martin
-
- Erleuchteter
- Beiträge: 448
- Registriert: Samstag 26. November 2005, 00:35
Re: Eigenes Plugin compilieren
Bin gerade beim durchtesten der Funktionen was passiert wenn ....
wenn ich folgendes benutze
wird nur das weisse Rechteck gezeichnet die anderen nicht wenn ich aber
auskommentiere wird alles von Orange bis rot gezeichnet
kann es sein dass die in PaintBox benutzte Funktion memset ein Bug hat ?.
Desweiteren suche ich auch noch mit welchen Farben man den Paintbox bzw dann memset füttern darf
Martin
wenn ich folgendes benutze
Code: Alles auswählen
PaintBox( 0, 0, 580, 10, FILL, WHITE ); // weiss gefülltes Rechteck
PaintBox( 0, 40, 580, 50, FILL, ORANGE ); // orange gefülltes Rechteck
PaintBox( 0, 80, 580, 100, FILL, GREEN ); // gruen gefülltes Rechteck
PaintBox( 0, 120, 580, 140, FILL, YELLOW ); // gelb gefülltes Rechteck
PaintBox( 0, 160, 580, 180, FILL, RED ); // rot gefülltes Rechteck
wird nur das weisse Rechteck gezeichnet die anderen nicht wenn ich aber
Code: Alles auswählen
PaintBox( 0, 0, 580, 10, FILL, WHITE ); // weiss gefülltes Rechteck
kann es sein dass die in PaintBox benutzte Funktion memset ein Bug hat ?.
Code: Alles auswählen
memset(lbb + startx + sx + var_screeninfo.xres*(starty + sy), color, ex-sx + 1);
Martin
-
- Foren-Moderator
- Beiträge: 297
- Registriert: Montag 11. Oktober 2004, 14:51
Re: Eigenes Plugin compilieren
hmm, OK, ich versuch es nochmal etwas ausführlicher:
du springst von Neutrino aus z.B. eine main.c an
in dieser steht dann oben
Irgendwo bildest du dann den Einsprungpunkt plugin_exec ab
Dort drin nutzt du dann Funktionen, die wie du beschreibst z.B. in remotecontrol.c oder in gui.c vorhanden sind.
Wichtig ist, daß die Funktionen die du aus deiner z.B. remotecontrol.c zur Verfügung stellen willst in der remotecontrol.h vorhanden sind, so daß du die dann von main.c aus nutzen kannst
du springst von Neutrino aus z.B. eine main.c an
in dieser steht dann oben
Code: Alles auswählen
#include "plugin.h"
#include "gui.h"
#include "remotecontronl.h"
Dort drin nutzt du dann Funktionen, die wie du beschreibst z.B. in remotecontrol.c oder in gui.c vorhanden sind.
Wichtig ist, daß die Funktionen die du aus deiner z.B. remotecontrol.c zur Verfügung stellen willst in der remotecontrol.h vorhanden sind, so daß du die dann von main.c aus nutzen kannst
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: Eigenes Plugin compilieren
Das halte ich für extrem unwahrscheinlich.MPC823 hat geschrieben:kann es sein dass die in PaintBox benutzte Funktion memset ein Bug hat ?.
Das kommt darauf an, wie du die Palette aufgesetzt hast.Desweiteren suche ich auch noch mit welchen Farben man den Paintbox bzw dann memset füttern darf
Wie hast du denn PaintBox() implementiert?
Wenn du deinen Sourcecode irgendwo hinlegst, kann man den besser kommentieren
-
- Foren-Moderator
- Beiträge: 297
- Registriert: Montag 11. Oktober 2004, 14:51
Re: Eigenes Plugin compilieren
laut tuxcal.h:MPC823 hat geschrieben:Bin gerade beim durchtesten der Funktionen was passiert wenn ....
wenn ich folgendes benutzeCode: Alles auswählen
PaintBox( 0, 0, 580, 10, FILL, WHITE ); // weiss gefülltes Rechteck PaintBox( 0, 40, 580, 50, FILL, ORANGE ); // orange gefülltes Rechteck PaintBox( 0, 80, 580, 100, FILL, GREEN ); // gruen gefülltes Rechteck PaintBox( 0, 120, 580, 140, FILL, YELLOW ); // gelb gefülltes Rechteck PaintBox( 0, 160, 580, 180, FILL, RED ); // rot gefülltes Rechteck
wird nur das weisse Rechteck gezeichnet die anderen nicht wenn ich aberauskommentiere wird alles von Orange bis rot gezeichnetCode: Alles auswählen
PaintBox( 0, 0, 580, 10, FILL, WHITE ); // weiss gefülltes Rechteck
kann es sein dass die in PaintBox benutzte Funktion memset ein Bug hat ?.
Desweiteren suche ich auch noch mit welchen Farben man den Paintbox bzw dann memset füttern darfCode: Alles auswählen
memset(lbb + startx + sx + var_screeninfo.xres*(starty + sy), color, ex-sx + 1);
Martin
enum {TRANSP, WHITE, SKIN0, SKIN1, SKIN2, ORANGE, GREEN, YELLOW, RED};