programmierung starthilfe

Kreuzuebersetzer, Diskussion über Änderungen im Tuxbox-CDK und Tuxbox-CVS
stdin
Interessierter
Interessierter
Beiträge: 93
Registriert: Freitag 15. Oktober 2004, 18:40

programmierung starthilfe

Beitrag von stdin »

hi,

kann mir mal jemand ein wenig starthilfe in bezug auf die programmierung unter der gui neutrino geben?

ich beabsichtige ein programm in c++ für meine dbox zu schreiben. das programm soll eine definierte file (als argument übergeben) vom w3 in die dbox ziehen. dabei soll eine progressbar zum download ausgegeben werden. mehr soll dieses programm schon nicht machen.

meine frage lehnt sich auf http://wiki.tuxbox-cvs.sourceforge.net/Plugins:Tutorial an.
ist es für die sache unbeding erforderlich so ein plugin zu erstellen oder kann ich auch ein "normales programm" erstellen, welches die gui auch direkt anspricht?

hatte zwar schon grafische oberflächen unter linux programmiert, aber dies war mittels c++ und qt3 und hatte nicht mit der dbox zu tun.

cu...
luke999

edit: dieser beitrag folgt auf mein vorangegangen http://forum.tuxbox-cvs.sourceforge.net ... hp?t=37264
stdin
Interessierter
Interessierter
Beiträge: 93
Registriert: Freitag 15. Oktober 2004, 18:40

Beitrag von stdin »

nagut, mal eine etwas andere frage, die erste hat sich erledigt!

wie spreche ich aus einem c++ programm die gui an, wenn ich ein mainwindow erzeugen möchte (bzw. ein dialogfenster)?

cu...
luke999

ps: das erstellen von shell-applikationen in c++ funktioniert nun auf der dbox.
stdin
Interessierter
Interessierter
Beiträge: 93
Registriert: Freitag 15. Oktober 2004, 18:40

Beitrag von stdin »

keiner ne idee :( :gruebel:
ich dachte das wär ein entwicklerforum
<nicht übel nehmen, recherchiere bereits den ganzen tag und finde einfach nichts> :gruebel:

hat noch keiner sowas gemacht?

bin langsam für jede art von realisierungsvorschläge offen :cry:

cu...
luke999

ps: also mal ehrlich, so ein projekt müsste schon ein wenig mehr dokumentiert werden.
Npq
Senior Member
Beiträge: 1339
Registriert: Donnerstag 24. April 2003, 12:12

Beitrag von Npq »

Hmm, für Enigma-Plugins gibt es eine Demoanwendung: http://cvs.tuxbox-cvs.sourceforge.net/c ... nigma/demo

Neutrino hingegen bietet keine API für Plugins an, in dem Fall mußt du dir alles per Linux-Framebuffer-API selber zeichnen. Siehe z.B. Tuxtxt.
stdin
Interessierter
Interessierter
Beiträge: 93
Registriert: Freitag 15. Oktober 2004, 18:40

Beitrag von stdin »

danke Npq,

so eine sch...., wenn ich mir aber nunmehr mein vorhaben als neutrino plugin komplett aufbaue, dürfte es ja sicherlich einfacher gehen, oder?

cu...
luke999
stdin
Interessierter
Interessierter
Beiträge: 93
Registriert: Freitag 15. Oktober 2004, 18:40

Beitrag von stdin »

hat sich erledigt dank irc, #dbox2dev

cu...
ed_2
Einsteiger
Einsteiger
Beiträge: 161
Registriert: Donnerstag 29. November 2001, 00:00

Beitrag von ed_2 »

Hi luke999

wie hast du das denn jetzt realiesiert? Ich habe auch vor ein Plugin zu basteln wo ich auf dem Bildschirm eine ausgabe bekomme.

Mfg

ed_2
stdin
Interessierter
Interessierter
Beiträge: 93
Registriert: Freitag 15. Oktober 2004, 18:40

Beitrag von stdin »

hi ed_2,

eigentlich ganz einfach, ich habe mir tuxmail vorgenommen und den "überflüssigen" code aus dem plugin genommen. dadurch hatte ich mir so eine art grundgerüst erstellt, worauf ich mein plugin aufbaute.
compiliert habe ich das plugin dann vom cdk directory aus (aufruf: "make plugins").
zuvor hatte ich die configure.ac und makefile.ac angepasst. also so wie in http://wiki.tuxbox-cvs.sourceforge.net/Plugins:Tutorial beschrieben.
ansonsten brauchst du noch c kenntnisse. :D
ed_2
Einsteiger
Einsteiger
Beiträge: 161
Registriert: Donnerstag 29. November 2001, 00:00

Beitrag von ed_2 »

Hi,

Danke für den Tipp werde ich mich dann mal da Reinknien.

Mfg

ED_2
db0x
Neugieriger
Neugieriger
Beiträge: 13
Registriert: Donnerstag 25. August 2005, 15:24

Beitrag von db0x »

Hallöle,
habe mich auch mal an dem Tutorial versucht. Als ersten Schritt wollte ich mal ein Framework für Plugins erstellen, dass dann schon grundliegenden Code für die Steuerung (Fernbedienung), Framebuffer, LCD, etc. enthält - aber das nur nebenbei.
Habe mich genau an das Tutorial gehalten, also configure.ac und Makefile.am im plugins Verzeichnis angepasst und entsprechend Makefile.am im Verzeichnis des Testplugins erstellt. Leider haut das nicht so ganz hin:

Code: Alles auswählen

.../tuxbox-cvs/cdk$ make plugins

Making all in plugin_framework
make[3]: Entering directory `/home/freak/code/dbox/plugin_framework'
make[3]: *** Keine Regel, um »all« zu erstellen.  Schluss.
Hier fehlt also das Makefile selbst, von dem im Tutorial nicht die Rede ist.

Code: Alles auswählen

.../tuxbox-cvs/apps/tuxbox/plugins$ ./autogen.sh
Erstellt im Verzeichnis des Testplugins nur Makefile.in.

In Sachen Makefiles kenne ich mich kaum aus und hoffe daher, nur einen dummen Fehler gemacht zu haben.

Vielen Dank im Voraus für alle Antworten!
Npq
Senior Member
Beiträge: 1339
Registriert: Donnerstag 24. April 2003, 12:12

Beitrag von Npq »

Das Makefile wird von automake erstellt. Dieses sollte aber eigentlich automatisch aufgerufen werden.

Hmm.

Was mir auffällt, wieso sucht er das Verzeichnis bei dir eigentlich in "/home/freak/code/dbox" ?

Das Tutorial baut das doch schließlich ins Unterverzeichnis von "apps/tuxbox/plugins" ein.

Was hast du genau in der configure.ac und der Makefile.am eingetragen?
db0x
Neugieriger
Neugieriger
Beiträge: 13
Registriert: Donnerstag 25. August 2005, 15:24

Beitrag von db0x »

Stimmt, hatte ich vergessen zu erwähnen: das Verzeichnis des Testplugins ist ein symlink - allerdings kann es daran nicht liegen, denn mittlerweile hab ich es direkt ins plugins verzeichnis kopiert. Die Einträge hab ich wie gesagt strikt nach dem Tutorial gemacht, der vollständigkeit halber hier nochmal der Inhalt:

.../tuxbox-cvs/apps/tuxbox/plugins/Makefile.am

Code: Alles auswählen

AUTOMAKE_OPTIONS = gnu

if BOXTYPE_DREAMBOX
SUBDIRS = \
	include tuxmail tuxtxt tuxcom fx2 enigma plugin_framework
else
SUBDIRS = \
	include tuxmail tuxtxt tuxcom plugin_framework
endif

pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = \
	tuxbox-plugins.pc
fx2 und vncviewer hab ich entfernt weils da Probleme beim Compilieren gab. Kann mir aber nicht vorstellen, dass es damit was zu tun hat.


.../tuxbox-cvs/apps/tuxbox/plugins/configure.ac

Code: Alles auswählen

AC_INIT(tuxbox-plugins,0.0.1)
AM_INIT_AUTOMAKE(tuxbox-plugins,0.0.1)

TUXBOX_APPS
TUXBOX_APPS_DIRECTORY

AC_PROG_CC
AC_PROG_CXX
AC_DISABLE_STATIC
AM_PROG_LIBTOOL

AC_ARG_WITH(boxtype,
	[  --with-boxtype=NAME dreambox/dbox2 [[dbox2,dreambox]]],
	[BOXTYPE="$withval"],[BOXTYPE="dbox2"])
AC_SUBST(BOXTYPE)
AM_CONDITIONAL(BOXTYPE_DREAMBOX,test "$BOXTYPE" != "dbox2")
AM_CONDITIONAL(BOXTYPE_DBOX2,test "$BOXTYPE" = "dbox2")

TUXBOX_APPS_DVB
TUXBOX_APPS_DRIVER

TUXBOX_APPS_LIB_CONFIG(CURL,curl-config)
TUXBOX_APPS_LIB_CONFIG(FREETYPE,freetype-config)
TUXBOX_APPS_LIB_PKGCONFIG(PNG,libpng)
TUXBOX_APPS_LIB_PKGCONFIG(SIGC,sigc++-1.2)
if test "$BOXTYPE" = "dbox2"; then
TUXBOX_APPS_LIB_PKGCONFIG(TUXBOX,tuxbox)
fi
TUXBOX_APPS_LIB_PKGCONFIG(XMLTREE,tuxbox-xmltree)
TUXBOX_APPS_LIB_PKGCONFIG(CONFIGFILE,tuxbox-configfile)
TUXBOX_APPS_LIB_PKGCONFIG(TUXTXT,tuxbox-tuxtxt)

CPPFLAGS="$CPPFLAGS $TUXTXT_CFLAGS"
CFLAGS="$CFLAGS $TUXTXT_CFLAGS"

AC_OUTPUT([
Makefile
include/Makefile
tuxmail/Makefile
tuxmail/daemon/Makefile
tuxtxt/Makefile
tuxtxt/font/Makefile
tuxcom/Makefile
enigma/Makefile
enigma/demo/Makefile
enigma/dreamdata/Makefile
enigma/ngrabstart/Makefile
enigma/ngrabstop/Makefile
enigma/dslconnect/Makefile
enigma/dsldisconnect/Makefile
plugin_framework/Makefile
tuxbox-plugins.pc
])
Gerade ist mir bei der Ausgabe von make plugins aufgefallen, dass dort für jedes Plugin 2 Befehle zur Erstellung des Makefiles aufgerufen werden - ausser bei meinem eigenen. Diese habe ich nun einfach mal "per Hand" entsprechend angepasst und ausgeführt:

Code: Alles auswählen

.../tuxbox-cvs/apps/tuxbox/plugins$ automake-1.4 --gnu plugin_framework/Makefile

.../tuxbox-cvs/apps/tuxbox/plugins$ CONFIG_FILES=plugin_framework/Makefile CONFIG_HEADERS= /bin/sh ./config.status
config.status: creating plugin_framework/Makefile
config.status: executing default-1 commands
Und siehe da, .../tuxbox-cvs/cdk$ make plugins versucht nun mein Plugin zu erstellen. Zwar habe ich noch ein paar fehler im Code, aber ab hier kenne ich mich zumindest wieder aus ;)

Trotzdem kann es ja nicht ganz Sinn der Sache sein, die besagten Befehle per Hand auszuführen. Entweder wurde dieser Part im Tutorial "vergessen", oder ich hab was übersehen/falsch gemacht, oder das Tutorial ist veraltet. Naja, zumindest gehts jetzt, wenn auch nicht so elegant wie man sich das wünschen würde :wink:
Npq
Senior Member
Beiträge: 1339
Registriert: Donnerstag 24. April 2003, 12:12

Beitrag von Npq »

Hmm, Automake-1.4 ist aber auch zu alt. >=1.7 sollte das schon sein.

Hast du evtl. mal geconft und später eine neuere Version installiert? Sowas mögen die Autotools überhaupt nicht. Da könnte sowas zum Beispiel auch herkommen.
db0x
Neugieriger
Neugieriger
Beiträge: 13
Registriert: Donnerstag 25. August 2005, 15:24

Beitrag von db0x »

Möglich wäre es, aber übersetzt wird das Programm ja jetzt und das ist ja die Hauptsache. sicherlich könnte ich auch automake ohne -1.4 aufrufen aber "never touch a running system" ;)