Eigenes Plugin compilieren

Games, Plugins, Utils, Tools, 3rdParty, etc...
dietmarw
Contributor
Beiträge: 1833
Registriert: Mittwoch 10. April 2002, 15:39

Re: Eigenes Plugin compilieren

Beitrag von dietmarw »

[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?
dwilx

Re: Eigenes Plugin compilieren

Beitrag von dwilx »

Probier das:
rm /home/martin/dbox-neutrino/tuxbox/apps/tuxbox/plugins/config.status
make test1
Auch mal ../plugins/configure, ../plugins/makefile gelöscht?
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 ;)
Nichts für ungut, dieser kleiner Hinweis könnte deiner Motivation möglicherweise gut tun: :wink:
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.
MPC823
Erleuchteter
Erleuchteter
Beiträge: 448
Registriert: Samstag 26. November 2005, 00:35

Re: Eigenes Plugin compilieren

Beitrag von MPC823 »

Ich habe die drei Dateien gelöscht aber ohne das sich etwas geändert hat.
config.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$
Das ist bestimm bloß eine Winzigkeit und ich sehe es nicht :dash:

Martin
dwilx

Re: Eigenes Plugin compilieren

Beitrag von dwilx »

Hast du eine test.c oder testplugin.c in deinem Ordner, weil in deiner makefile.am steht test.c und nicht testplugin.c
MPC823
Erleuchteter
Erleuchteter
Beiträge: 448
Registriert: Samstag 26. November 2005, 00:35

Re: Eigenes Plugin compilieren

Beitrag von MPC823 »

@dixidix

der test.c steht bei cs_4711 im Makefile.am habs bei mir nochmal kontrolliert da steht testplugin.c drin.

Martin
MPC823
Erleuchteter
Erleuchteter
Beiträge: 448
Registriert: Samstag 26. November 2005, 00:35

Re: Eigenes Plugin compilieren

Beitrag von MPC823 »

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
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Eigenes Plugin compilieren

Beitrag von rhabarber1848 »

Ich vermute eher, dass da noch Reste früherer Kompilierläufe im Weg liegen.
MPC823
Erleuchteter
Erleuchteter
Beiträge: 448
Registriert: Samstag 26. November 2005, 00:35

Re: Eigenes Plugin compilieren

Beitrag von MPC823 »

@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
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Eigenes Plugin compilieren

Beitrag von rhabarber1848 »

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.
hannebamb(el)
Foren-Moderator
Beiträge: 297
Registriert: Montag 11. Oktober 2004, 14:51

Re: Eigenes Plugin compilieren

Beitrag von hannebamb(el) »

Hi Martin,

ich bau das gerade mal für dich.

EDIT:
Hat durchgebaut. Ein diff hat rhabarber schon angehängt
MPC823
Erleuchteter
Erleuchteter
Beiträge: 448
Registriert: Samstag 26. November 2005, 00:35

Re: Eigenes Plugin compilieren

Beitrag von MPC823 »

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
hannebamb(el)
Foren-Moderator
Beiträge: 297
Registriert: Montag 11. Oktober 2004, 14:51

Re: Eigenes Plugin compilieren

Beitrag von hannebamb(el) »

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
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Eigenes Plugin compilieren

Beitrag von rhabarber1848 »

MPC823 hat geschrieben:ein kleiner Grund warum es keine neuen Plugisn mehr gibt
Das glaube ich nicht, vor kurzem habe ich das tuxclock-Plugin eingecheckt.
Aus den damaligen Patches kann recht einfach abgeschaut werden, wie ein
neues Plugin in das build-system zu integrieren ist.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Eigenes Plugin compilieren

Beitrag von rhabarber1848 »

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
Ohne Gewähr:

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
Achte darauf, dass Kernel-Version und libc-Variante mit der PREFIX-Kopie übereinstimmen.
MPC823
Erleuchteter
Erleuchteter
Beiträge: 448
Registriert: Samstag 26. November 2005, 00:35

Re: Eigenes Plugin compilieren

Beitrag von MPC823 »

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
MPC823
Erleuchteter
Erleuchteter
Beiträge: 448
Registriert: Samstag 26. November 2005, 00:35

Re: Eigenes Plugin compilieren

Beitrag von MPC823 »

Hier mal was ich mir als Gedächtnisstütze zusammengeschrieben habe.

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
Vielleicht Hilft ja dem einem oder anderen.

Mein eigener Fehler habe ich auch gefunden für eure Hilfe vielen Dank


Martin
MPC823
Erleuchteter
Erleuchteter
Beiträge: 448
Registriert: Samstag 26. November 2005, 00:35

Re: Eigenes Plugin compilieren

Beitrag von MPC823 »

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
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Eigenes Plugin compilieren

Beitrag von seife »

Das ist einfach ;-)

"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    }
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
MPC823
Erleuchteter
Erleuchteter
Beiträge: 448
Registriert: Samstag 26. November 2005, 00:35

Re: Eigenes Plugin compilieren

Beitrag von MPC823 »

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
hannebamb(el)
Foren-Moderator
Beiträge: 297
Registriert: Montag 11. Oktober 2004, 14:51

Re: Eigenes Plugin compilieren

Beitrag von hannebamb(el) »

Naja, ich versuch es mal:
du musst den code, den du in z.B. remotecontrol.c schreibst, in application.c mit

Code: Alles auswählen

#include "remotecontrol.h"
einschliessen, mit dem Rest(gui.h) analog.
Dann sollte das kein weiteres Problem darstellen
MPC823
Erleuchteter
Erleuchteter
Beiträge: 448
Registriert: Samstag 26. November 2005, 00:35

Re: Eigenes Plugin compilieren

Beitrag von MPC823 »

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 :gruebel:

Martin
MPC823
Erleuchteter
Erleuchteter
Beiträge: 448
Registriert: Samstag 26. November 2005, 00:35

Re: Eigenes Plugin compilieren

Beitrag von MPC823 »

Bin gerade beim durchtesten der Funktionen was passiert wenn ....


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
auskommentiere wird alles von Orange bis rot gezeichnet

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);
Desweiteren suche ich auch noch mit welchen Farben man den Paintbox bzw dann memset füttern darf

Martin
hannebamb(el)
Foren-Moderator
Beiträge: 297
Registriert: Montag 11. Oktober 2004, 14:51

Re: Eigenes Plugin compilieren

Beitrag von hannebamb(el) »

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

Code: Alles auswählen

#include "plugin.h"
#include "gui.h"
#include "remotecontronl.h"

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
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Eigenes Plugin compilieren

Beitrag von seife »

MPC823 hat geschrieben:kann es sein dass die in PaintBox benutzte Funktion memset ein Bug hat ?.
Das halte ich für extrem unwahrscheinlich.
Desweiteren suche ich auch noch mit welchen Farben man den Paintbox bzw dann memset füttern darf
Das kommt darauf an, wie du die Palette aufgesetzt hast.

Wie hast du denn PaintBox() implementiert?
Wenn du deinen Sourcecode irgendwo hinlegst, kann man den besser kommentieren ;)
hannebamb(el)
Foren-Moderator
Beiträge: 297
Registriert: Montag 11. Oktober 2004, 14:51

Re: Eigenes Plugin compilieren

Beitrag von hannebamb(el) »

MPC823 hat geschrieben:Bin gerade beim durchtesten der Funktionen was passiert wenn ....


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
auskommentiere wird alles von Orange bis rot gezeichnet

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);
Desweiteren suche ich auch noch mit welchen Farben man den Paintbox bzw dann memset füttern darf

Martin
laut tuxcal.h:
enum {TRANSP, WHITE, SKIN0, SKIN1, SKIN2, ORANGE, GREEN, YELLOW, RED};