OK, I've been experimenting with dvbcfg_sources as its dead simple.. what about the following: dvbcfg_source.h: This is exactly the same as it is currently, except I've removed the _load() and _save() calls. It is purely an in-memory API now. dvbcfg_source_backend.h: See attached file.... It defines the abstract backend API structure as you suggested, and convenience functions to load() and save() all sources using that API. However the application is free to ignore that and just call the backend API functions directly. It also defines the default backend which is the file based one we defined the other week. -------------- next part -------------- A non-text attachment was scrubbed... Name: dvbcfg_source_backend.h Type: text/x-chdr Size: 3905 bytes Desc: not available Url : http://www.linuxtv.org/pipermail/linux-dvb/attachments/20050716/e6c82d9d/dvbcfg_source_backend.h