Commit graph

749 commits

Author SHA1 Message Date
Christian Thaeter
369c644ab4 Basic resourcecollector implementation
Lets one register callback functions which to incrementally cleanup unused
resources.
2008-12-15 01:17:23 +01:00
Christian Thaeter
eba465998c add some trace points to mmpcache 2008-12-15 01:17:23 +01:00
Christian Thaeter
db202e298e mmap updates/refactoring 2008-12-15 01:17:23 +01:00
Christian Thaeter
9f497cdaa3 lumiera_file_chunksize_get() function 2008-12-15 01:17:23 +01:00
Christian Thaeter
430ec0bf8b Fixed file initialization semantic (don't leak memory on error) 2008-12-15 01:17:23 +01:00
Christian Thaeter
80359fb155 documentation and nobug improvement for mrucache 2008-12-15 01:17:23 +01:00
Christian Thaeter
a5119f8947 cosmetics and documentation in file.h, remove lumiera_file_descriptor() 2008-12-15 01:17:23 +01:00
Christian Thaeter
bb74bfbc22 fixup handle_acquire/_release for file and filedescriptor 2008-12-15 01:17:22 +01:00
Christian Thaeter
c2e2a0e525 some pending cosmetics, comments and checks 2008-12-15 01:17:22 +01:00
Christian Thaeter
da7fd1242b move the mmapings nobug flag to backend.c 2008-12-15 01:17:22 +01:00
Christian Thaeter
408528d1e2 factor file-mmap chunksize setting out into its own function 2008-12-15 01:17:22 +01:00
Christian Thaeter
9d0985feb7 remove the refcounter from filedescriptor and use a list to attach files 2008-12-15 01:17:22 +01:00
Christian Thaeter
e953c3003b Refactored filehandle/filehandlecache to use a normal init function 2008-12-15 01:17:22 +01:00
Christian Thaeter
e9cca69fb1 More things for the filedescriptor destructor
* truncate the file to its realsize
 * destroy its mmapings
2008-12-15 01:17:21 +01:00
Christian Thaeter
a0cff36066 some smaller fixes in filedescriptor
* change mode for created files to 0666 (TODO: from config)
 * some members where not properly initialized yet
 * docing fixes
2008-12-15 01:17:21 +01:00
Christian Thaeter
208f7e2d76 Refactored filehandle acquisition to filehandle.c (duh!)
some old ad-hoc code slipped in which did that in file.c
2008-12-15 01:17:21 +01:00
Christian Thaeter
c88a2ffa1e move mmapcache and filehandle nobug flags into backend.c 2008-12-15 01:17:21 +01:00
Christian Thaeter
219db59d82 renamed backend config entries
adding one level more, more descriptive
2008-12-15 01:17:21 +01:00
Christian Thaeter
5bbe80b370 preliminary use of the config system for some settings
* backend.filehandles maximum filehandles used
 * backend.mmap_window_size mapping window start size
 * backend.as_limit address space limit

This needs to be changed to use the lumieraorg_configuration interface.
2008-12-15 01:17:21 +01:00
Christian Thaeter
2a0b5dca5e Fix: mutex initialization, remove explicit RESOURCE_HANDLES
The new mutex has an implicit resource handle
2008-12-15 01:17:21 +01:00
Christian Thaeter
e938b36071 WIP: mmap management first go
Quite some code which was hold back in favor of the config and plugin stuff
implements:

 * mmapcache: mru cache for unused memory mappings
 * mmap: single mmaped areas
 * mmapings: manages mmaps established for one filedescriptor
2008-12-15 01:17:21 +01:00
Simeon Voelkel
8c2b98a2e1 re-indented and moved static functions to fit Lumiera's coding standard 2008-12-15 01:17:20 +01:00
Simeon Voelkel
f89708e117 split lumiera_configitem_parse into several smaller static functions 2008-12-15 01:17:20 +01:00
eb14eaa376 temporary fix to make it compile on Etch 2008-12-15 01:08:30 +01:00
Joel Holdsworth
6cbd4282c1 Restructured model track tree, and improved child access 2008-12-13 16:58:41 +00:00
Joel Holdsworth
efa4847a61 Added to_list method for read only STL list access to the
observable_list
2008-12-13 16:56:02 +00:00
Joel Holdsworth
fdb75fdd2a Corrected some problems that emerged on the build server 2008-12-13 13:57:19 +00:00
Joel Holdsworth
d61daa0b2f Misc tidy-ups 2008-12-10 18:09:01 +00:00
Joel Holdsworth
7c1046e162 Unified Sequence and Track together as TrackBase 2008-12-10 18:04:02 +00:00
Joel Holdsworth
5eb43b7c18 Tidied observable-list.hpp somewhat 2008-12-10 17:28:50 +00:00
Joel Holdsworth
22f425a25c Added some documentation to timeline-widget.hpp 2008-12-10 17:22:49 +00:00
Joel Holdsworth
fa16c5f137 Updated sequence test code 2008-12-10 16:54:43 +00:00
Joel Holdsworth
528d02931a Converted timeline::Track* to boost::shared_ptr<timeline::Track> 2008-12-08 22:30:54 +00:00
Joel Holdsworth
48dd2055f5 Converted model::Project to use observable_list 2008-12-06 23:48:45 +00:00
Joel Holdsworth
bbc55e6324 Added the definition of an observable_list class 2008-12-06 23:46:01 +00:00
Joel Holdsworth
0799a4d297 Fixed problems when the notebook is empty 2008-12-06 20:05:14 +00:00
Joel Holdsworth
b27545e105 Corrected a header layout problem when adding the first timeline widget
to the Notebook
2008-12-06 19:58:43 +00:00
Joel Holdsworth
b8e5900067 Corrected a bug in create_timeline_tracks_from_branch 2008-12-06 19:26:46 +00:00
Joel Holdsworth
2ebd768d88 Corrected some indentation 2008-12-06 19:12:18 +00:00
Joel Holdsworth
aa9048fa68 Added more STL slickness 2008-12-06 18:15:08 +00:00
Joel Holdsworth
418bd87419 Made use of util::contains to reduce the volume of boilerplate 2008-12-06 14:52:59 +00:00
Joel Holdsworth
619c5b0769 Corrected an ENSURE condition 2008-12-06 14:48:52 +00:00
Joel Holdsworth
b2ffa116f5 Modified MAX to play nice with GLib's MAX 2008-12-06 14:47:00 +00:00
Joel Holdsworth
d75261ea23 Corrected some REQUIRE(model_track != NULL) to REQUIRE(model_track) 2008-12-06 14:36:29 +00:00
Joel Holdsworth
19c97fd52a Replaced model::Track* with boost::shared_ptr<Track> 2008-12-06 14:08:03 +00:00
Joel Holdsworth
f54595b17e Replace TimelineWidget* with shared_ptr<TimelineWidget> 2008-12-05 20:27:15 +00:00
Joel Holdsworth
da3d14da72 Replaced Sequence* with boost::shared_ptr<Sequence> 2008-12-05 20:17:56 +00:00
Joel Holdsworth
e3e639a2db Corrected "New Track" to "New Sequence" 2008-12-05 18:39:23 +00:00
Joel Holdsworth
e1f752f55d Tidied up create_timeline_tracks 2008-11-29 17:02:27 +00:00
Joel Holdsworth
7a86c08ec8 Added some documentation 2008-11-29 16:40:50 +00:00
Joel Holdsworth
ed37bed4c6 Fixed a memory leak 2008-11-29 16:33:24 +00:00
Joel Holdsworth
0ef3917553 Added an error condition for unknown track types 2008-11-29 16:30:45 +00:00
Joel Holdsworth
4f4234b62c Made the timeline view model driven 2008-11-29 16:13:58 +00:00
Joel Holdsworth
d74a9e687f Tidied up trailing backslashes 2008-11-25 22:16:37 +00:00
Joel Holdsworth
14df5bbb8d Created a model for tracks 2008-11-25 22:11:58 +00:00
Joel Holdsworth
cf4898e70f Removed a spurious timeline:: 2008-11-25 21:44:33 +00:00
Joel Holdsworth
4470baf8f5 Renamed some timeline widget helper class files to avoid file name
collisions with the Model
2008-11-25 21:31:45 +00:00
Joel Holdsworth
b9d62c9be9 Removed spurious timeline:: in group-track 2008-11-25 21:19:30 +00:00
Joel Holdsworth
25dc64575e Corrected some mistakes in clip-track documentation 2008-11-25 21:12:56 +00:00
Joel Holdsworth
c58bc861ff Made some corrections in the documentation 2008-11-25 21:00:12 +00:00
Joel Holdsworth
164fff2359 Ditched some test code 2008-11-24 23:02:13 +00:00
Joel Holdsworth
16c48f69c4 Implemented a sequence name chooser dialog 2008-11-24 22:16:51 +00:00
Joel Holdsworth
a9ee81b57f Added documentation to dialog.hpp 2008-11-24 21:43:34 +00:00
Joel Holdsworth
f2f41ee99b Correct RENDER_H -> RENDER_HPP 2008-11-24 21:39:47 +00:00
Joel Holdsworth
f8fb24ff62 Added dialog.hpp for global layout constants 2008-11-24 21:37:46 +00:00
Joel Holdsworth
7ae08aa608 Corrected some mistakes in old dialog headers 2008-11-24 17:38:26 +00:00
Joel Holdsworth
37123f84b6 Corrected some indentation 2008-11-24 17:12:47 +00:00
Joel Holdsworth
3d35f2e535 Added add/remove of sequences 2008-11-22 19:08:12 +00:00
Joel Holdsworth
952d7b5599 Added some refinement to the notebook 2008-11-22 16:43:24 +00:00
Joel Holdsworth
9d11081ff7 Added sequences, and tabs in the timeline view to display them 2008-11-22 16:34:49 +00:00
Joel Holdsworth
10d256f833 Added dummy clip boxes 2008-11-22 13:36:46 +00:00
Joel Holdsworth
34e67cd01e Made TrackPadding insert between tracks, rather than shortening tracks 2008-11-22 12:33:58 +00:00
Joel Holdsworth
f0ab871cb3 The other half of the previous commit 2008-11-19 22:56:46 +00:00
Joel Holdsworth
aed6b09572 Refactored timeline view window code into a helper, and added dummy
track drawing code
2008-11-19 22:42:38 +00:00
Joel Holdsworth
b3aac4bc90 Changed the bounding box for the expander button 2008-11-19 18:07:10 +00:00
Joel Holdsworth
7dfbd0e848 Fixed a comment 2008-11-19 17:49:06 +00:00
Joel Holdsworth
5b9c4fa42d Fixed a headers layout bug 2008-11-19 17:44:57 +00:00
Joel Holdsworth
b2fad8d9a5 Fixed the problem with Etch support for 16x16 icons 2008-11-18 22:06:31 +00:00
Joel Holdsworth
7b52ff247e Merge branch 'master' of git://git.lumiera.org/LUMIERA into gui 2008-11-15 23:37:21 +00:00
Joel Holdsworth
bfc34f8b1c Refactored Track to distinguish GroupTracks, and added expand/collapse
functionality
2008-11-15 23:36:22 +00:00
Joel Holdsworth
6c50182db1 Added support for highlighting the hovering track 2008-11-15 15:17:26 +00:00
f13f851d77 error message when plugin.c is built without defining the plugin search path
(and btw... thanks for the hint ;-)
2008-11-07 23:10:08 +01:00
80e1e382f4 merge new plugin/interface system, testsuite changes, documentation 2008-11-07 01:26:31 +01:00
Christian Thaeter
aae3c8ed81 LUMIERA_PLUGIN is dead, long life LUMIERA_PLUGIN
removes the difference in compiled in and plugin interfaces.
 * All interfaces are now defined with LUMIERA_EXPORT(...)
 * The definition of LUMIERA_PLUGIN at compile time takes action to compile
   as plugin which gets automatically managed.
 * compiled in (core) interfaces need still be registered, this is
   simplified with the LUMIERA_INTERFACE_REGISTEREXPORTED and
   LUMIERA_INTERFACE_UNREGISTEREXPORTED macros which become no-ops for
   plugins.
2008-11-06 05:23:47 +01:00
f19cdc1ad6 automake fixes 2008-11-06 04:25:33 +01:00
Christian Thaeter
c04f1e77d6 set LUMIERA_PLUGIN_PATH to $pkglibdir as default 2008-11-06 04:13:13 +01:00
Christian Thaeter
d5c61c0e9d let plugin_discover() barf out when the plugin.path config cant be found 2008-11-05 11:33:49 +01:00
Christian Thaeter
fa6b6d54e9 hook the plugin refcounting in
The plugin refcounter is driven from interface opening/closing, this is
quite internal.

The 'last' time in plugin now records the last time the refcounter dropped
to 0, this is just sufficient enough to find out how long a plugin is
unused.
2008-11-05 11:33:29 +01:00
Christian Thaeter
7afce647fb few tool functions for the plugin implementation
* plugin_name() to figure out the name of the plugin
 * plugin_refinc() and plugin_refdec() to manage the refcount
2008-11-05 11:33:28 +01:00
Christian Thaeter
c26cd391b0 automatic plugin unloading at interfaceregistry_destroy()
All open plugins will be unloaded when the registry gets destroyed.
If there are still interfaces open, this will assert at ALPHA builds.
2008-11-05 11:33:28 +01:00
Christian Thaeter
240e7cb295 plugin_unload must lock the registry tree 2008-11-05 11:33:28 +01:00
Christian Thaeter
c35e5fb0f9 Plugin unloading, at least manually works 2008-11-05 11:33:28 +01:00
Christian Thaeter
2646b9035b some plugin docwork 2008-11-05 11:33:28 +01:00
Christian Thaeter
3155ae068f Loading of dynamic modules
* loads dynamic libs as module.
 * file extensions .so and .lum (LUmieraModule)
 - no unloading yet
2008-11-05 11:33:28 +01:00
Christian Thaeter
7c2415838b WIP: big plugin update
* fix configure.ac to check for dlopen, introduce $(LUMIERA_PLUGIN_LIBS)
 * Generic pluginloader finished, all plugins get loaded and registered at
   start for now, it is prepared for on-demand loading and unloading but
   not implemented because that needs the plugindb.
 - plugin unloading not yet finished, this asserts at the end
2008-11-05 11:33:28 +01:00
Christian Thaeter
c30c98bebd add a LUMIERA_INTERFACE_CLOSE macro
This is a small typesafe wrapper around the interface_close() function
and since we need INTERFACE_OPEN wraped too this makes it more orthogonal
2008-11-05 11:33:28 +01:00
Christian Thaeter
4d2fe242d0 Some more interfaces improvements
* add a lumiera_interface_version() function for runtime type and version
   checking of interfaces
 * the 'lumieraorg__plugin' interface is now private
 * add a macro to construct a interface instance name string
2008-11-05 11:33:27 +01:00
53e17e2751 merge new Plugin implementation
Merge commit 'pipapo/master'
2008-11-03 20:58:09 +01:00
Christian Thaeter
2342c3a87a New Plugin implementation
* plugin{.h,.c} are back but work in progress
 * the interfaceregistry also manages a pluginregistry, makes no much sense
   to isolate it yet, both share a mutex and are commonly used together
2008-11-03 08:07:22 +01:00
Christian Thaeter
257b310699 add an error_peek function, fix prototypes
lumiera_error_peek() lets one investigate the error state without resetting
it.
2008-11-03 08:03:48 +01:00