From 52a9c7fb27cea01576cfb71c3c52cfce0fcfbef4 Mon Sep 17 00:00:00 2001 From: Christian Thaeter Date: Thu, 6 Nov 2008 07:25:16 +0100 Subject: [PATCH] lumiera is alive... This starts the proposed changes in http://www.pipapo.org/pipawiki/Lumiera/DesignProcess/ApplicationStructure * Moving all necessary files from src/backend to src/lumiera * create a small helloworld main app * setup the buildsystem to build it all * fix include paths at many places The testsuite is not yet fixed here, that will be the next commit --- Makefile.am | 1 + src/backend/Makefile.am | 24 +----- src/gui/gtk-lumiera.cpp | 2 +- src/lumiera/DIR_INFO | 7 ++ src/lumiera/Makefile.am | 48 ++++++++++++ src/{backend => lumiera}/config.c | 7 +- src/{backend => lumiera}/config.h | 4 +- src/{backend => lumiera}/config_lookup.c | 4 +- src/{backend => lumiera}/config_lookup.h | 2 +- src/{backend => lumiera}/config_typed.c | 2 +- src/{backend => lumiera}/config_wordlist.c | 2 +- src/{backend => lumiera}/configentry.c | 2 +- src/{backend => lumiera}/configentry.h | 2 +- src/{backend => lumiera}/configitem.c | 7 +- src/{backend => lumiera}/configitem.h | 2 +- src/{backend => lumiera}/interface.c | 6 +- src/{backend => lumiera}/interface.h | 1 - .../interfacedescriptor.h | 0 src/{backend => lumiera}/interfaceregistry.c | 7 +- src/{backend => lumiera}/interfaceregistry.h | 4 +- src/lumiera/lumiera.c | 74 +++++++++++++++++++ src/lumiera/lumiera.h | 57 ++++++++++++++ src/{backend => lumiera}/plugin.c | 6 +- src/{backend => lumiera}/plugin.h | 2 +- src/{backend => lumiera}/plugin_dynlib.c | 2 +- 25 files changed, 223 insertions(+), 52 deletions(-) create mode 100644 src/lumiera/DIR_INFO create mode 100644 src/lumiera/Makefile.am rename src/{backend => lumiera}/config.c (98%) rename src/{backend => lumiera}/config.h (99%) rename src/{backend => lumiera}/config_lookup.c (98%) rename src/{backend => lumiera}/config_lookup.h (99%) rename src/{backend => lumiera}/config_typed.c (99%) rename src/{backend => lumiera}/config_wordlist.c (99%) rename src/{backend => lumiera}/configentry.c (98%) rename src/{backend => lumiera}/configentry.h (98%) rename src/{backend => lumiera}/configitem.c (98%) rename src/{backend => lumiera}/configitem.h (99%) rename src/{backend => lumiera}/interface.c (98%) rename src/{backend => lumiera}/interface.h (99%) rename src/{backend => lumiera}/interfacedescriptor.h (100%) rename src/{backend => lumiera}/interfaceregistry.c (97%) rename src/{backend => lumiera}/interfaceregistry.h (98%) create mode 100644 src/lumiera/lumiera.c create mode 100644 src/lumiera/lumiera.h rename src/{backend => lumiera}/plugin.c (99%) rename src/{backend => lumiera}/plugin.h (99%) rename src/{backend => lumiera}/plugin_dynlib.c (98%) diff --git a/Makefile.am b/Makefile.am index 068388274..8b31a802c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -47,6 +47,7 @@ include $(top_srcdir)/src/proc/Makefile.am include $(top_srcdir)/src/common/Makefile.am include $(top_srcdir)/src/lib/Makefile.am include $(top_srcdir)/src/backend/Makefile.am +include $(top_srcdir)/src/lumiera/Makefile.am # tools include $(top_srcdir)/src/tool/Makefile.am diff --git a/src/backend/Makefile.am b/src/backend/Makefile.am index ec103286b..6ec5ccd2d 100644 --- a/src/backend/Makefile.am +++ b/src/backend/Makefile.am @@ -18,7 +18,7 @@ liblumibackend_a_srcdir = $(top_srcdir)/src/backend noinst_LIBRARIES += liblumibackend.a -liblumibackend_a_CPPFLAGS = $(AM_CPPFLAGS) -DLUMIERA_PLUGIN_PATH="\"$(pkglibdir)\"" +liblumibackend_a_CPPFLAGS = $(AM_CPPFLAGS) liblumibackend_a_CFLAGS = $(AM_CFLAGS) -std=gnu99 -Wextra -Wall -Werror liblumibackend_a_SOURCES = \ @@ -27,21 +27,11 @@ liblumibackend_a_SOURCES = \ $(liblumibackend_a_srcdir)/file.c \ $(liblumibackend_a_srcdir)/filehandle.c \ $(liblumibackend_a_srcdir)/filedescriptor.c \ - $(liblumibackend_a_srcdir)/filehandlecache.c \ - $(liblumibackend_a_srcdir)/interface.c \ - $(liblumibackend_a_srcdir)/interfaceregistry.c \ - $(liblumibackend_a_srcdir)/plugin.c \ - $(liblumibackend_a_srcdir)/plugin_dynlib.c \ - $(liblumibackend_a_srcdir)/config.c \ - $(liblumibackend_a_srcdir)/config_typed.c \ - $(liblumibackend_a_srcdir)/config_wordlist.c \ - $(liblumibackend_a_srcdir)/configentry.c \ - $(liblumibackend_a_srcdir)/configitem.c \ - $(liblumibackend_a_srcdir)/config_lookup.c \ $(liblumibackend_a_srcdir)/resourcecollector.c \ $(liblumibackend_a_srcdir)/mmap.c \ $(liblumibackend_a_srcdir)/mmapings.c \ - $(liblumibackend_a_srcdir)/mmapcache.c + $(liblumibackend_a_srcdir)/mmapcache.c \ + $(liblumibackend_a_srcdir)/filehandlecache.c noinst_HEADERS += \ $(liblumibackend_a_srcdir)/mediaaccessfacade.cpp \ @@ -50,14 +40,6 @@ noinst_HEADERS += \ $(liblumibackend_a_srcdir)/filehandle.h \ $(liblumibackend_a_srcdir)/filedescriptor.h \ $(liblumibackend_a_srcdir)/filehandlecache.h \ - $(liblumibackend_a_srcdir)/interface.h \ - $(liblumibackend_a_srcdir)/interfaceregistry.h \ - $(liblumibackend_a_srcdir)/interfacedescriptor.h \ - $(liblumibackend_a_srcdir)/plugin.h \ - $(liblumibackend_a_srcdir)/config.h \ - $(liblumibackend_a_srcdir)/configentry.h \ - $(liblumibackend_a_srcdir)/configitem.h \ - $(liblumibackend_a_srcdir)/config_lookup.h \ $(liblumibackend_a_srcdir)/resourcecollector.h \ $(liblumibackend_a_srcdir)/mmap.h \ $(liblumibackend_a_srcdir)/mmapings.h \ diff --git a/src/gui/gtk-lumiera.cpp b/src/gui/gtk-lumiera.cpp index c73e45977..83a2f80a0 100644 --- a/src/gui/gtk-lumiera.cpp +++ b/src/gui/gtk-lumiera.cpp @@ -33,7 +33,7 @@ #include "model/project.hpp" extern "C" { -#include "backend/interface.h" +#include "lumiera/interface.h" } NOBUG_CPP_DEFINE_FLAG(gui); diff --git a/src/lumiera/DIR_INFO b/src/lumiera/DIR_INFO new file mode 100644 index 000000000..c78139d7e --- /dev/null +++ b/src/lumiera/DIR_INFO @@ -0,0 +1,7 @@ +The main application shell + +contains: + * the config system + * commandline parsing + * interfaces and plugin loading + * lua interpreter (planned) diff --git a/src/lumiera/Makefile.am b/src/lumiera/Makefile.am new file mode 100644 index 000000000..18371ff2f --- /dev/null +++ b/src/lumiera/Makefile.am @@ -0,0 +1,48 @@ +# Copyright (C) Lumiera.org +# 2008, Christian Thaeter +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +lumiera_srcdir = $(top_srcdir)/src/lumiera +bin_PROGRAMS += lumiera + +lumiera_CPPFLAGS = $(AM_CPPFLAGS) -DLUMIERA_PLUGIN_PATH="\"$(pkglibdir)\"" +lumiera_CFLAGS = $(AM_CFLAGS) -std=gnu99 -Wextra -Wall -Werror +lumiera_LDADD = liblumiera.a $(LUMIERA_PLUGIN_LIBS) $(NOBUGMT_LUMIERA_LIBS) + +lumiera_SOURCES = \ + $(lumiera_srcdir)/lumiera.c \ + $(lumiera_srcdir)/interface.c \ + $(lumiera_srcdir)/interfaceregistry.c \ + $(lumiera_srcdir)/plugin.c \ + $(lumiera_srcdir)/plugin_dynlib.c \ + $(lumiera_srcdir)/config.c \ + $(lumiera_srcdir)/config_typed.c \ + $(lumiera_srcdir)/config_wordlist.c \ + $(lumiera_srcdir)/configentry.c \ + $(lumiera_srcdir)/configitem.c \ + $(lumiera_srcdir)/config_lookup.c + + +noinst_HEADERS += \ + $(lumiera_srcdir)/interface.h \ + $(lumiera_srcdir)/interfaceregistry.h \ + $(lumiera_srcdir)/interfacedescriptor.h \ + $(lumiera_srcdir)/plugin.h \ + $(lumiera_srcdir)/config.h \ + $(lumiera_srcdir)/configentry.h \ + $(lumiera_srcdir)/configitem.h \ + $(lumiera_srcdir)/config_lookup.h \ + $(lumiera_srcdir)/lumiera.h diff --git a/src/backend/config.c b/src/lumiera/config.c similarity index 98% rename from src/backend/config.c rename to src/lumiera/config.c index cec0dbfd8..8bdf63588 100644 --- a/src/backend/config.c +++ b/src/lumiera/config.c @@ -24,7 +24,8 @@ //TODO: Lumiera header includes// -#include "backend/config.h" +#include "lumiera/lumiera.h" +#include "lumiera/config.h" //TODO: internal/static forward declarations// @@ -39,7 +40,7 @@ * */ -NOBUG_DEFINE_FLAG_PARENT (config_all, backend); +NOBUG_DEFINE_FLAG_PARENT (config_all, lumiera_all); NOBUG_DEFINE_FLAG_PARENT (config, config_all); NOBUG_DEFINE_FLAG_PARENT (config_typed, config_all); NOBUG_DEFINE_FLAG_PARENT (config_file, config_all); @@ -193,7 +194,7 @@ lumiera_config_get (const char* key, const char** value) { char* env = lumiera_tmpbuf_snprintf (2048, "LUMIERA_%s", tr_key); - *value = getenv(env); + *value = getenv (env); if (*value) { NOTICE (config, "envvar override for config %s = %s", env, *value); diff --git a/src/backend/config.h b/src/lumiera/config.h similarity index 99% rename from src/backend/config.h rename to src/lumiera/config.h index 445ed6e23..a744dc314 100644 --- a/src/backend/config.h +++ b/src/lumiera/config.h @@ -51,8 +51,8 @@ LUMIERA_ERROR_DECLARE (CONFIG_NO_ENTRY); //TODO: Lumiera header includes// -#include "backend/config_lookup.h" -#include "backend/configitem.h" +#include "lumiera/config_lookup.h" +#include "lumiera/configitem.h" //TODO: System includes// #include diff --git a/src/backend/config_lookup.c b/src/lumiera/config_lookup.c similarity index 98% rename from src/backend/config_lookup.c rename to src/lumiera/config_lookup.c index 357d845dc..efb33c6d8 100644 --- a/src/backend/config_lookup.c +++ b/src/lumiera/config_lookup.c @@ -20,8 +20,8 @@ */ #include "lib/safeclib.h" -#include "backend/config_lookup.h" -#include "backend/config.h" +#include "lumiera/config_lookup.h" +#include "lumiera/config.h" /* we only use one fatal error for now, when allocation in the config system fail, something else is pretty wrong */ LUMIERA_ERROR_DEFINE (CONFIG_LOOKUP, "config lookup failure"); diff --git a/src/backend/config_lookup.h b/src/lumiera/config_lookup.h similarity index 99% rename from src/backend/config_lookup.h rename to src/lumiera/config_lookup.h index a0ec20dd5..cc6d921ee 100644 --- a/src/backend/config_lookup.h +++ b/src/lumiera/config_lookup.h @@ -33,7 +33,7 @@ typedef struct lumiera_config_lookupentry_struct lumiera_config_lookupentry; typedef lumiera_config_lookupentry* LumieraConfigLookupentry; -#include "backend/configitem.h" +#include "lumiera/configitem.h" #include diff --git a/src/backend/config_typed.c b/src/lumiera/config_typed.c similarity index 99% rename from src/backend/config_typed.c rename to src/lumiera/config_typed.c index 963090899..3d6dd8d4e 100644 --- a/src/backend/config_typed.c +++ b/src/lumiera/config_typed.c @@ -24,7 +24,7 @@ //TODO: Lumiera header includes// -#include "backend/config.h" +#include "lumiera/config.h" //TODO: internal/static forward declarations// extern LumieraConfig lumiera_global_config; diff --git a/src/backend/config_wordlist.c b/src/lumiera/config_wordlist.c similarity index 99% rename from src/backend/config_wordlist.c rename to src/lumiera/config_wordlist.c index 47232f483..5f9f089c5 100644 --- a/src/backend/config_wordlist.c +++ b/src/lumiera/config_wordlist.c @@ -23,7 +23,7 @@ #include "lib/safeclib.h" -#include "backend/config.h" +#include "lumiera/config.h" extern LumieraConfig lumiera_global_config; diff --git a/src/backend/configentry.c b/src/lumiera/configentry.c similarity index 98% rename from src/backend/configentry.c rename to src/lumiera/configentry.c index e2c846b12..f5d09d4f6 100644 --- a/src/backend/configentry.c +++ b/src/lumiera/configentry.c @@ -23,7 +23,7 @@ #include "lib/safeclib.h" //TODO: Lumiera header includes// -#include "backend/configentry.h" +#include "lumiera/configentry.h" //TODO: internal/static forward declarations// diff --git a/src/backend/configentry.h b/src/lumiera/configentry.h similarity index 98% rename from src/backend/configentry.h rename to src/lumiera/configentry.h index 61f5f5f73..0df7ecc59 100644 --- a/src/backend/configentry.h +++ b/src/lumiera/configentry.h @@ -31,7 +31,7 @@ typedef lumiera_configentry* LumieraConfigentry; //TODO: Lumiera header includes// -#include "backend/configitem.h" +#include "lumiera/configitem.h" //TODO: System includes// #include diff --git a/src/backend/configitem.c b/src/lumiera/configitem.c similarity index 98% rename from src/backend/configitem.c rename to src/lumiera/configitem.c index d3ac15b59..3bdb9a8f8 100644 --- a/src/backend/configitem.c +++ b/src/lumiera/configitem.c @@ -24,9 +24,10 @@ #include "lib/safeclib.h" -#include "backend/config.h" -#include "backend/configitem.h" -#include "backend/configentry.h" +//TODO: Lumiera header includes// +#include "lumiera/config.h" +#include "lumiera/configitem.h" +#include "lumiera/configentry.h" static LumieraConfigitem parse_directive (LumieraConfigitem self, char* itr); diff --git a/src/backend/configitem.h b/src/lumiera/configitem.h similarity index 99% rename from src/backend/configitem.h rename to src/lumiera/configitem.h index 979609c36..0e4ee267e 100644 --- a/src/backend/configitem.h +++ b/src/lumiera/configitem.h @@ -33,7 +33,7 @@ typedef lumiera_configitem* LumieraConfigitem; struct lumiera_configitem_vtable; //TODO: Lumiera header includes// -#include "backend/config_lookup.h" +#include "lumiera/config_lookup.h" //TODO: System includes// diff --git a/src/backend/interface.c b/src/lumiera/interface.c similarity index 98% rename from src/backend/interface.c rename to src/lumiera/interface.c index 22e94cbcc..74990c8a2 100644 --- a/src/backend/interface.c +++ b/src/lumiera/interface.c @@ -22,10 +22,10 @@ #include "lib/mutex.h" #include "lib/safeclib.h" -#include "backend/plugin.h" -#include "backend/interface.h" +#include "lumiera/plugin.h" +#include "lumiera/interface.h" -#include "backend/interfaceregistry.h" +#include "lumiera/interfaceregistry.h" #include diff --git a/src/backend/interface.h b/src/lumiera/interface.h similarity index 99% rename from src/backend/interface.h rename to src/lumiera/interface.h index e962a2d10..372112a01 100644 --- a/src/backend/interface.h +++ b/src/lumiera/interface.h @@ -407,7 +407,6 @@ LUMIERA_INTERFACE_DECLARE (lumieraorg__plugin, 0, API to handle interfaces */ - /** * Open an interface by version and name. * Looks up the requested interface, possibly loading it from a plugin. diff --git a/src/backend/interfacedescriptor.h b/src/lumiera/interfacedescriptor.h similarity index 100% rename from src/backend/interfacedescriptor.h rename to src/lumiera/interfacedescriptor.h diff --git a/src/backend/interfaceregistry.c b/src/lumiera/interfaceregistry.c similarity index 97% rename from src/backend/interfaceregistry.c rename to src/lumiera/interfaceregistry.c index 969ab23e0..4973fe105 100644 --- a/src/backend/interfaceregistry.c +++ b/src/lumiera/interfaceregistry.c @@ -29,8 +29,9 @@ -#include "backend/plugin.h" -#include "backend/interfaceregistry.h" +#include "lumiera/lumiera.h" +#include "lumiera/plugin.h" +#include "lumiera/interfaceregistry.h" /** * @file @@ -39,7 +40,7 @@ * by their name and major version. */ -NOBUG_DEFINE_FLAG_PARENT (interface_all, backend); +NOBUG_DEFINE_FLAG_PARENT (interface_all, lumiera_all); NOBUG_DEFINE_FLAG_PARENT (plugin, interface_all); NOBUG_DEFINE_FLAG_PARENT (interfaceregistry, interface_all); NOBUG_DEFINE_FLAG_PARENT (interface, interface_all); diff --git a/src/backend/interfaceregistry.h b/src/lumiera/interfaceregistry.h similarity index 98% rename from src/backend/interfaceregistry.h rename to src/lumiera/interfaceregistry.h index 54ede293a..51dbde6b4 100644 --- a/src/backend/interfaceregistry.h +++ b/src/lumiera/interfaceregistry.h @@ -24,8 +24,8 @@ #include "lib/mutex.h" #include "lib/psplay.h" -#include "backend/interface.h" -#include "backend/plugin.h" +#include "lumiera/interface.h" +#include "lumiera/plugin.h" #include diff --git a/src/lumiera/lumiera.c b/src/lumiera/lumiera.c new file mode 100644 index 000000000..b154c100c --- /dev/null +++ b/src/lumiera/lumiera.c @@ -0,0 +1,74 @@ +/* + lumiera.c - Lumiera main application shell + + Copyright (C) Lumiera.org + 2008, Christian Thaeter + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +//TODO: Support library includes// + + +//TODO: Lumiera header includes// +#include "lumiera/lumiera.h" + +//TODO: internal/static forward declarations// + + +//TODO: System includes// +#include + +/** + * @file + * + */ + +NOBUG_DEFINE_FLAG (all); +NOBUG_DEFINE_FLAG_PARENT (lumiera_all, all); +NOBUG_DEFINE_FLAG_PARENT (lumiera, lumiera_all); + + +//code goes here// + +static void +lumiera_init (void) +{ + NOBUG_INIT; + NOBUG_INIT_FLAG (all); + NOBUG_INIT_FLAG (lumiera_all); + NOBUG_INIT_FLAG (lumiera); + +} + + + +int +main (int argc, char** argv) +{ + lumiera_init (); + (void) argc; + (void) argv; + printf ("Lumiera is alive ...\n"); +} + + +/* +// Local Variables: +// mode: C +// c-file-style: "gnu" +// indent-tabs-mode: nil +// End: +*/ diff --git a/src/lumiera/lumiera.h b/src/lumiera/lumiera.h new file mode 100644 index 000000000..54e55ed71 --- /dev/null +++ b/src/lumiera/lumiera.h @@ -0,0 +1,57 @@ +/* + lumiera.h - Lumiera main application shell + + Copyright (C) Lumiera.org + 2008, Christian Thaeter + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#ifndef LUMIERA_LUMIERA_H +#define LUMIERA_LUMIERA_H + +//TODO: Support library includes// + + +//TODO: Forward declarations// + + +//TODO: Lumiera header includes// + + +//TODO: System includes// +#include + +NOBUG_DECLARE_FLAG (all); +NOBUG_DECLARE_FLAG (lumiera_all); +NOBUG_DECLARE_FLAG (lumiera); + + +/** + * @file + * + */ + +//TODO: declarations go here// + + +#endif +/* +// Local Variables: +// mode: C +// c-file-style: "gnu" +// indent-tabs-mode: nil +// End: +*/ diff --git a/src/backend/plugin.c b/src/lumiera/plugin.c similarity index 99% rename from src/backend/plugin.c rename to src/lumiera/plugin.c index d5db02c48..30f664e11 100644 --- a/src/backend/plugin.c +++ b/src/lumiera/plugin.c @@ -25,9 +25,9 @@ #include "lib/mutex.h" #include "lib/error.h" -#include "backend/interfaceregistry.h" -#include "backend/config.h" -#include "backend/plugin.h" +#include "lumiera/interfaceregistry.h" +#include "lumiera/config.h" +#include "lumiera/plugin.h" #include diff --git a/src/backend/plugin.h b/src/lumiera/plugin.h similarity index 99% rename from src/backend/plugin.h rename to src/lumiera/plugin.h index 26451edac..21d32c3a1 100644 --- a/src/backend/plugin.h +++ b/src/lumiera/plugin.h @@ -24,7 +24,7 @@ #include "lib/psplay.h" #include "lib/error.h" -#include "backend/interface.h" +#include "lumiera/interface.h" #include #include diff --git a/src/backend/plugin_dynlib.c b/src/lumiera/plugin_dynlib.c similarity index 98% rename from src/backend/plugin_dynlib.c rename to src/lumiera/plugin_dynlib.c index 50030843c..cebd9c60b 100644 --- a/src/backend/plugin_dynlib.c +++ b/src/lumiera/plugin_dynlib.c @@ -18,7 +18,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#include "backend/plugin.h" +#include "lumiera/plugin.h" #include #include