Merge lp:~smspillaz/compiz-libcompizconfig/compiz-libcompizconfig.plugin-funcs-behind-interface into lp:~compiz-team/compiz-libcompizconfig/0.9.8

Proposed by Sam Spilsbury
Status: Superseded
Proposed branch: lp:~smspillaz/compiz-libcompizconfig/compiz-libcompizconfig.plugin-funcs-behind-interface
Merge into: lp:~compiz-team/compiz-libcompizconfig/0.9.8
Prerequisite: lp:~smspillaz/compiz-libcompizconfig/compiz-libcompizconfig.refactor-plugin
Diff against target: 577 lines (+236/-52)
4 files modified
include/ccs.h (+56/-3)
src/ccs-private.h (+1/-1)
src/compiz.cpp (+15/-10)
src/main.c (+164/-38)
To merge this branch: bzr merge lp:~smspillaz/compiz-libcompizconfig/compiz-libcompizconfig.plugin-funcs-behind-interface
Reviewer Review Type Date Requested Status
Compiz Maintainers Pending
Review via email: mp+103997@code.launchpad.net

This proposal has been superseded by a proposal from 2012-04-29.

Description of the change

This is all about bug 990690.

!! - It probably isn't a good idea to test this branch in isolation, as it is part of a pipeline to get compiz-libcompizconfig under test. If you want to test the result of this work, you should probably look at testing

lp:~smspillaz/compiz-libcompizconfig/compiz-libcompizconfig.mock-context
lp:~smspillaz/compiz-compizconfig-python/compiz-compizconfig-python.setting-api
lp:~smspillaz/compiz-compizconfig-gconf/compiz-compizconfig-gconf.adapt-to-new-interfaces

.. that's all !!

This branch indirects all of the plugin API behind an interface

To post a comment you must log in.

Unmerged revisions

447. By Sam Spilsbury

Use CCSObjectFinalize

446. By Sam Spilsbury

Use the CCSObject constructs to do interfaces and private ptrs

445. By Sam Spilsbury

Merged refactor-plugin into plugin-funcs-behind-interface.

444. By Sam Spilsbury

Merged refactor-plugin into plugin-funcs-behind-interface.

443. By Sam Spilsbury

Merged refactor-plugin into plugin-funcs-behind-interface.

442. By Sam Spilsbury

Merged refactor-plugin into plugin-funcs-behind-interface.

441. By Sam Spilsbury

Merged refactor-plugin into plugin-funcs-behind-interface.

440. By Sam Spilsbury

Work with protocol buffers

439. By Sam Spilsbury

Merged refactor-plugin into plugin-funcs-behind-interface.

438. By Sam Spilsbury

Merged refactor-plugin into plugin-funcs-behind-interface.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'include/ccs.h'
--- include/ccs.h 2012-04-28 18:58:56 +0000
+++ include/ccs.h 2012-04-28 18:58:57 +0000
@@ -215,10 +215,12 @@
215215
216typedef struct _CCSInterfaceTable CCSInterfaceTable;216typedef struct _CCSInterfaceTable CCSInterfaceTable;
217typedef struct _CCSContextInterface CCSContextInterface;217typedef struct _CCSContextInterface CCSContextInterface;
218typedef struct _CCSPluginInterface CCSPluginInterface;
218219
219struct _CCSInterfaceTable220struct _CCSInterfaceTable
220{221{
221 const CCSContextInterface *contextInterface;222 const CCSContextInterface *contextInterface;
223 const CCSPluginInterface *pluginInterface;
222};224};
223225
224extern const CCSInterfaceTable ccsDefaultInterfaceTable;226extern const CCSInterfaceTable ccsDefaultInterfaceTable;
@@ -332,6 +334,57 @@
332 unsigned int refCount; /* reference count */334 unsigned int refCount; /* reference count */
333};335};
334336
337/* CCSPluginInterface */
338typedef char * (*CCSPluginGetName) (CCSPlugin *plugin);
339typedef char * (*CCSPluginGetShortDesc) (CCSPlugin *plugin);
340typedef char * (*CCSPluginGetLongDesc) (CCSPlugin *plugin);
341typedef char * (*CCSPluginGetHints) (CCSPlugin *plugin);
342typedef char * (*CCSPluginGetCategory) (CCSPlugin *plugin);
343
344typedef CCSStringList (*CCSPluginGetLoadAfter) (CCSPlugin *plugin);
345typedef CCSStringList (*CCSPluginGetLoadBefore) (CCSPlugin *plugin);
346typedef CCSStringList (*CCSPluginGetRequiresPlugins) (CCSPlugin *plugin);
347typedef CCSStringList (*CCSPluginGetConflictPlugins) (CCSPlugin *plugin);
348typedef CCSStringList (*CCSPluginGetProvidesFeatures) (CCSPlugin *plugin);
349typedef CCSStringList (*CCSPluginGetRequiresFeatures) (CCSPlugin *plugin);
350
351typedef void * (*CCSPluginGetPrivatePtr) (CCSPlugin *plugin);
352typedef void (*CCSPluginSetPrivatePtr) (CCSPlugin *plugin, void *);
353
354typedef CCSContext * (*CCSPluginGetContext) (CCSPlugin *plugin);
355
356typedef CCSSetting * (*CCSPluginFindSetting) (CCSPlugin *plugin, const char *name);
357typedef CCSSettingList (*CCSPluginGetPluginSettings) (CCSPlugin *plugin);
358typedef CCSGroupList (*CCSPluginGetPluginGroups) (CCSPlugin *plugin);
359typedef void (*CCSPluginReadPluginSettings) (CCSPlugin *plugin);
360typedef CCSStrExtensionList (*CCSPluginGetPluginStrExtensions) (CCSPlugin *plugin);
361
362inline unsigned int ccsCCSPluginInterfaceGetType ();
363
364struct _CCSPluginInterface
365{
366 CCSPluginGetName pluginGetName;
367 CCSPluginGetShortDesc pluginGetShortDesc;
368 CCSPluginGetLongDesc pluginGetLongDesc;
369 CCSPluginGetHints pluginGetHints;
370 CCSPluginGetCategory pluginGetCategory;
371 CCSPluginGetLoadAfter pluginGetLoadAfter;
372 CCSPluginGetLoadBefore pluginGetLoadBefore;
373 CCSPluginGetRequiresPlugins pluginGetRequiresPlugins;
374 CCSPluginGetConflictPlugins pluginGetConflictPlugins;
375 CCSPluginGetProvidesFeatures pluginGetProvidesFeatures;
376 CCSPluginGetRequiresFeatures pluginGetRequiresFeatures;
377 CCSPluginGetPrivatePtr pluginGetPrivatePtr;
378 CCSPluginSetPrivatePtr pluginSetPrivatePtr;
379 CCSPluginGetContext pluginGetContext;
380 CCSPluginFindSetting pluginFindSetting;
381 CCSPluginGetPluginSettings pluginGetPluginSettings;
382 CCSPluginGetPluginGroups pluginGetPluginGroups;
383 CCSPluginReadPluginSettings pluginReadPluginSettings;
384 CCSPluginGetPluginStrExtensions pluginGetPluginStrExtensions;
385};
386
387/* CCSPlugin accessor functions */
335char * ccsPluginGetName (CCSPlugin *plugin);388char * ccsPluginGetName (CCSPlugin *plugin);
336char * ccsPluginGetShortDesc (CCSPlugin *plugin);389char * ccsPluginGetShortDesc (CCSPlugin *plugin);
337char * ccsPluginGetLongDesc (CCSPlugin *plugin);390char * ccsPluginGetLongDesc (CCSPlugin *plugin);
@@ -354,11 +407,11 @@
354407
355struct _CCSPlugin408struct _CCSPlugin
356{409{
357 void *ccsPrivate; /* private pointer for compizconfig410 CCSObject object;
358 internal usage */
359 unsigned int refCount; /* reference count */
360};411};
361412
413#define CCS_PLUGIN_INTERFACE_TYPE GET_INTERFACE_TYPE(CCSPluginInterface)
414
362typedef enum _CCSSettingType415typedef enum _CCSSettingType
363{416{
364 /* This needs to be in the same order as CompOptionType for consistency */417 /* This needs to be in the same order as CompOptionType for consistency */
365418
=== modified file 'src/ccs-private.h'
--- src/ccs-private.h 2012-04-28 18:58:56 +0000
+++ src/ccs-private.h 2012-04-28 18:58:57 +0000
@@ -28,7 +28,7 @@
28#define CONTEXT_PRIV(c) \28#define CONTEXT_PRIV(c) \
29 CCSContextPrivate *cPrivate = (CCSContextPrivate *) ccsObjectGetPrivate ((CCSObject *) c);29 CCSContextPrivate *cPrivate = (CCSContextPrivate *) ccsObjectGetPrivate ((CCSObject *) c);
30#define PLUGIN_PRIV(p) \30#define PLUGIN_PRIV(p) \
31 CCSPluginPrivate *pPrivate = (CCSPluginPrivate *) p->ccsPrivate;31 CCSPluginPrivate *pPrivate = (CCSPluginPrivate *) ccsObjectGetPrivate ((CCSObject *) p);
3232
33extern Bool basicMetadata;33extern Bool basicMetadata;
3434
3535
=== modified file 'src/compiz.cpp'
--- src/compiz.cpp 2012-04-28 18:58:56 +0000
+++ src/compiz.cpp 2012-04-28 18:58:57 +0000
@@ -865,7 +865,7 @@
865 if (!plugin)865 if (!plugin)
866 return;866 return;
867867
868 plugin->refCount = 1;868 ccsPluginRef (plugin);
869869
870 pPrivate = (CCSPluginPrivate *) calloc (1, sizeof (CCSPluginPrivate));870 pPrivate = (CCSPluginPrivate *) calloc (1, sizeof (CCSPluginPrivate));
871 if (!pPrivate)871 if (!pPrivate)
@@ -875,7 +875,8 @@
875 }875 }
876 pPrivate->loaded = FALSE;876 pPrivate->loaded = FALSE;
877877
878 plugin->ccsPrivate = (void *) pPrivate;878 ccsObjectSetPrivate ((CCSObject *) plugin, (CCSPrivate *) pPrivate);
879 ccsObjectAddInterface ((CCSObject *) plugin, (CCSInterface *) cPrivate->object_interfaces->pluginInterface, CCS_PLUGIN_INTERFACE_TYPE);
879880
880 if (file)881 if (file)
881 pPrivate->pbFilePath = strdup (file);882 pPrivate->pbFilePath = strdup (file);
@@ -933,7 +934,7 @@
933 if (!plugin)934 if (!plugin)
934 return;935 return;
935936
936 plugin->refCount = 1;937 ccsPluginRef (plugin);
937938
938 pPrivate = (CCSPluginPrivate *) calloc (1, sizeof (CCSPluginPrivate));939 pPrivate = (CCSPluginPrivate *) calloc (1, sizeof (CCSPluginPrivate));
939 if (!pPrivate)940 if (!pPrivate)
@@ -942,7 +943,8 @@
942 return;943 return;
943 }944 }
944945
945 plugin->ccsPrivate = (void *) pPrivate;946 ccsObjectSetPrivate ((CCSObject *) plugin, (CCSPrivate *) pPrivate);
947 ccsObjectAddInterface ((CCSObject *) plugin, (CCSInterface *) cPrivate->object_interfaces->pluginInterface, CCS_PLUGIN_INTERFACE_TYPE);
946948
947 if (file)949 if (file)
948 pPrivate->pbFilePath = strdup (file);950 pPrivate->pbFilePath = strdup (file);
@@ -2510,7 +2512,7 @@
2510 if (!plugin)2512 if (!plugin)
2511 return FALSE;2513 return FALSE;
25122514
2513 plugin->refCount = 1;2515 ccsPluginRef (plugin);
25142516
2515 pPrivate = (CCSPluginPrivate *) calloc (1, sizeof (CCSPluginPrivate));2517 pPrivate = (CCSPluginPrivate *) calloc (1, sizeof (CCSPluginPrivate));
2516 if (!pPrivate)2518 if (!pPrivate)
@@ -2519,7 +2521,8 @@
2519 return FALSE;2521 return FALSE;
2520 }2522 }
25212523
2522 plugin->ccsPrivate = (void *) pPrivate;2524 ccsObjectSetPrivate ((CCSObject *) plugin, (CCSPrivate *) pPrivate);
2525 ccsObjectAddInterface ((CCSObject *) plugin, (CCSInterface *) cPrivate->object_interfaces->pluginInterface, CCS_PLUGIN_INTERFACE_TYPE);
25232526
2524 if (file)2527 if (file)
2525 pPrivate->xmlFile = strdup (file);2528 pPrivate->xmlFile = strdup (file);
@@ -2577,7 +2580,7 @@
2577 if (!plugin)2580 if (!plugin)
2578 return FALSE;2581 return FALSE;
25792582
2580 plugin->refCount = 1;2583 ccsPluginRef (plugin);
25812584
2582 pPrivate = (CCSPluginPrivate *) calloc (1, sizeof (CCSPluginPrivate));2585 pPrivate = (CCSPluginPrivate *) calloc (1, sizeof (CCSPluginPrivate));
2583 if (!pPrivate)2586 if (!pPrivate)
@@ -2586,7 +2589,8 @@
2586 return FALSE;2589 return FALSE;
2587 }2590 }
25882591
2589 plugin->ccsPrivate = (void *) pPrivate;2592 ccsObjectSetPrivate ((CCSObject *) plugin, (CCSPrivate *) pPrivate);
2593 ccsObjectAddInterface ((CCSObject *) plugin, (CCSInterface *) cPrivate->object_interfaces->pluginInterface, CCS_PLUGIN_INTERFACE_TYPE);
25902594
2591 if (file)2595 if (file)
2592 pPrivate->xmlFile = strdup (file);2596 pPrivate->xmlFile = strdup (file);
@@ -2924,7 +2928,7 @@
2924 if (!plugin)2928 if (!plugin)
2925 return;2929 return;
29262930
2927 plugin->refCount = 1;2931 ccsPluginRef (plugin);
29282932
2929 pPrivate = (CCSPluginPrivate *) calloc (1, sizeof (CCSPluginPrivate));2933 pPrivate = (CCSPluginPrivate *) calloc (1, sizeof (CCSPluginPrivate));
2930 if (!pPrivate)2934 if (!pPrivate)
@@ -2933,7 +2937,8 @@
2933 return;2937 return;
2934 }2938 }
29352939
2936 plugin->ccsPrivate = (void *) pPrivate;2940 ccsObjectSetPrivate ((CCSObject *) plugin, (CCSPrivate *) pPrivate);
2941 ccsObjectAddInterface ((CCSObject *) plugin, (CCSInterface *) cPrivate->object_interfaces->pluginInterface, CCS_PLUGIN_INTERFACE_TYPE);
29372942
2938 pPrivate->context = context;2943 pPrivate->context = context;
2939 pPrivate->name = strdup (name);2944 pPrivate->name = strdup (name);
29402945
=== modified file 'src/main.c'
--- src/main.c 2012-04-28 18:58:56 +0000
+++ src/main.c 2012-04-28 18:58:57 +0000
@@ -168,6 +168,7 @@
168}168}
169169
170INTERFACE_TYPE (CCSContextInterface)170INTERFACE_TYPE (CCSContextInterface)
171INTERFACE_TYPE (CCSPluginInterface)
171172
172Bool basicMetadata = FALSE;173Bool basicMetadata = FALSE;
173174
@@ -512,7 +513,7 @@
512}513}
513514
514CCSSetting *515CCSSetting *
515ccsFindSetting (CCSPlugin * plugin, const char *name)516ccsFindSettingDefault (CCSPlugin * plugin, const char *name)
516{517{
517 if (!plugin)518 if (!plugin)
518 return NULL;519 return NULL;
@@ -538,6 +539,15 @@
538 return NULL;539 return NULL;
539}540}
540541
542CCSSetting *
543ccsFindSetting (CCSPlugin *plugin, const char *name)
544{
545 if (!plugin)
546 return NULL;
547
548 return (*(GET_INTERFACE (CCSPluginInterface, CCS_PLUGIN_INTERFACE_TYPE, plugin))->pluginFindSetting) (plugin, name);
549}
550
541Bool551Bool
542ccsPluginIsActiveDefault (CCSContext * context, char *name)552ccsPluginIsActiveDefault (CCSContext * context, char *name)
543{553{
@@ -686,7 +696,7 @@
686 free (pPrivate->pbFilePath);696 free (pPrivate->pbFilePath);
687#endif697#endif
688698
689 free (pPrivate);699 ccsObjectFinalize ((CCSObject *) p);
690 free (p);700 free (p);
691}701}
692702
@@ -881,7 +891,6 @@
881 ccsFree##type (d); \891 ccsFree##type (d); \
882 } \892 } \
883893
884CCSREF (Plugin, CCSPlugin)
885CCSREF (Setting, CCSSetting)894CCSREF (Setting, CCSSetting)
886CCSREF (String, CCSString)895CCSREF (String, CCSString)
887CCSREF (Group, CCSGroup)896CCSREF (Group, CCSGroup)
@@ -905,6 +914,8 @@
905 ccsFree##type (d); \914 ccsFree##type (d); \
906 } \915 } \
907916
917CCSREF_OBJ (Plugin, CCSPlugin)
918
908static void *919static void *
909openBackend (char *backend)920openBackend (char *backend)
910{921{
@@ -2442,7 +2453,7 @@
2442}2453}
24432454
2444void2455void
2445ccsReadPluginSettings (CCSPlugin * plugin)2456ccsReadPluginSettingsDefault (CCSPlugin * plugin)
2446{2457{
2447 if (!plugin || !ccsPluginGetContext (plugin))2458 if (!plugin || !ccsPluginGetContext (plugin))
2448 return;2459 return;
@@ -2473,6 +2484,12 @@
2473}2484}
24742485
2475void2486void
2487ccsReadPluginSettings (CCSPlugin *plugin)
2488{
2489 return (*(GET_INTERFACE (CCSPluginInterface, CCS_PLUGIN_INTERFACE_TYPE, plugin))->pluginReadPluginSettings) (plugin);
2490}
2491
2492void
2476ccsWriteSettingsDefault (CCSContext * context)2493ccsWriteSettingsDefault (CCSContext * context)
2477{2494{
2478 if (!context)2495 if (!context)
@@ -4129,70 +4146,70 @@
4129}4146}
41304147
4131char *4148char *
4132ccsPluginGetName (CCSPlugin *plugin)4149ccsPluginGetNameDefault (CCSPlugin *plugin)
4133{4150{
4134 PLUGIN_PRIV (plugin);4151 PLUGIN_PRIV (plugin);
41354152
4136 return pPrivate->name;4153 return pPrivate->name;
4137}4154}
41384155
4139char * ccsPluginGetShortDesc (CCSPlugin *plugin)4156char * ccsPluginGetShortDescDefault (CCSPlugin *plugin)
4140{4157{
4141 PLUGIN_PRIV (plugin);4158 PLUGIN_PRIV (plugin);
41424159
4143 return pPrivate->shortDesc;4160 return pPrivate->shortDesc;
4144}4161}
41454162
4146char * ccsPluginGetLongDesc (CCSPlugin *plugin)4163char * ccsPluginGetLongDescDefault (CCSPlugin *plugin)
4147{4164{
4148 PLUGIN_PRIV (plugin);4165 PLUGIN_PRIV (plugin);
41494166
4150 return pPrivate->longDesc;4167 return pPrivate->longDesc;
4151}4168}
41524169
4153char * ccsPluginGetHints (CCSPlugin *plugin)4170char * ccsPluginGetHintsDefault (CCSPlugin *plugin)
4154{4171{
4155 PLUGIN_PRIV (plugin);4172 PLUGIN_PRIV (plugin);
41564173
4157 return pPrivate->hints;4174 return pPrivate->hints;
4158}4175}
41594176
4160char * ccsPluginGetCategory (CCSPlugin *plugin)4177char * ccsPluginGetCategoryDefault (CCSPlugin *plugin)
4161{4178{
4162 PLUGIN_PRIV (plugin);4179 PLUGIN_PRIV (plugin);
41634180
4164 return pPrivate->category;4181 return pPrivate->category;
4165}4182}
41664183
4167CCSStringList ccsPluginGetLoadAfter (CCSPlugin *plugin)4184CCSStringList ccsPluginGetLoadAfterDefault (CCSPlugin *plugin)
4168{4185{
4169 PLUGIN_PRIV (plugin);4186 PLUGIN_PRIV (plugin);
41704187
4171 return pPrivate->loadAfter;4188 return pPrivate->loadAfter;
4172}4189}
41734190
4174CCSStringList ccsPluginGetLoadBefore (CCSPlugin *plugin)4191CCSStringList ccsPluginGetLoadBeforeDefault (CCSPlugin *plugin)
4175{4192{
4176 PLUGIN_PRIV (plugin);4193 PLUGIN_PRIV (plugin);
41774194
4178 return pPrivate->loadBefore;4195 return pPrivate->loadBefore;
4179}4196}
41804197
4181CCSStringList ccsPluginGetRequiresPlugins (CCSPlugin *plugin)4198CCSStringList ccsPluginGetRequiresPluginsDefault (CCSPlugin *plugin)
4182{4199{
4183 PLUGIN_PRIV (plugin);4200 PLUGIN_PRIV (plugin);
41844201
4185 return pPrivate->requiresPlugin;4202 return pPrivate->requiresPlugin;
4186}4203}
41874204
4188CCSStringList ccsPluginGetConflictPlugins (CCSPlugin *plugin)4205CCSStringList ccsPluginGetConflictPluginsDefault (CCSPlugin *plugin)
4189{4206{
4190 PLUGIN_PRIV (plugin);4207 PLUGIN_PRIV (plugin);
41914208
4192 return pPrivate->conflictPlugin;4209 return pPrivate->conflictPlugin;
4193}4210}
41944211
4195CCSStringList ccsPluginGetProvidesFeatures (CCSPlugin *plugin)4212CCSStringList ccsPluginGetProvidesFeaturesDefault (CCSPlugin *plugin)
4196{4213{
4197 PLUGIN_PRIV (plugin);4214 PLUGIN_PRIV (plugin);
41984215
@@ -4204,53 +4221,133 @@
4204 return (void *) ccsPluginGetProvidesFeatures (plugin);4221 return (void *) ccsPluginGetProvidesFeatures (plugin);
4205}4222}
42064223
4224CCSStringList ccsPluginGetRequiresFeaturesDefault (CCSPlugin *plugin)
4225{
4226 PLUGIN_PRIV (plugin);
4227
4228 return pPrivate->requiresFeature;
4229}
4230
4231void * ccsPluginGetPrivatePtrDefault (CCSPlugin *plugin)
4232{
4233 PLUGIN_PRIV (plugin);
4234
4235 return pPrivate->privatePtr;
4236}
4237
4238void ccsPluginSetPrivatePtrDefault (CCSPlugin *plugin, void *ptr)
4239{
4240 PLUGIN_PRIV (plugin);
4241
4242 pPrivate->privatePtr = ptr;
4243}
4244
4245CCSContext * ccsPluginGetContextDefault (CCSPlugin *plugin)
4246{
4247 PLUGIN_PRIV (plugin);
4248
4249 return pPrivate->context;
4250}
4251
4252/* CCSPlugin accessor functions */
4253char * ccsPluginGetName (CCSPlugin *plugin)
4254{
4255 return (*(GET_INTERFACE (CCSPluginInterface, CCS_PLUGIN_INTERFACE_TYPE, plugin))->pluginGetName) (plugin);
4256}
4257
4258char * ccsPluginGetShortDesc (CCSPlugin *plugin)
4259{
4260 return (*(GET_INTERFACE (CCSPluginInterface, CCS_PLUGIN_INTERFACE_TYPE, plugin))->pluginGetShortDesc) (plugin);
4261}
4262
4263char * ccsPluginGetLongDesc (CCSPlugin *plugin)
4264{
4265 return (*(GET_INTERFACE (CCSPluginInterface, CCS_PLUGIN_INTERFACE_TYPE, plugin))->pluginGetLongDesc) (plugin);
4266}
4267
4268char * ccsPluginGetHints (CCSPlugin *plugin)
4269{
4270 return (*(GET_INTERFACE (CCSPluginInterface, CCS_PLUGIN_INTERFACE_TYPE, plugin))->pluginGetHints) (plugin);
4271}
4272
4273char * ccsPluginGetCategory (CCSPlugin *plugin)
4274{
4275 return (*(GET_INTERFACE (CCSPluginInterface, CCS_PLUGIN_INTERFACE_TYPE, plugin))->pluginGetCategory) (plugin);
4276}
4277
4278CCSStringList ccsPluginGetLoadAfter (CCSPlugin *plugin)
4279{
4280 return (*(GET_INTERFACE (CCSPluginInterface, CCS_PLUGIN_INTERFACE_TYPE, plugin))->pluginGetLoadAfter) (plugin);
4281}
4282
4283CCSStringList ccsPluginGetLoadBefore (CCSPlugin *plugin)
4284{
4285 return (*(GET_INTERFACE (CCSPluginInterface, CCS_PLUGIN_INTERFACE_TYPE, plugin))->pluginGetLoadBefore) (plugin);
4286}
4287
4288CCSStringList ccsPluginGetRequiresPlugins (CCSPlugin *plugin)
4289{
4290 return (*(GET_INTERFACE (CCSPluginInterface, CCS_PLUGIN_INTERFACE_TYPE, plugin))->pluginGetRequiresPlugins) (plugin);
4291}
4292
4293CCSStringList ccsPluginGetConflictPlugins (CCSPlugin *plugin)
4294{
4295 return (*(GET_INTERFACE (CCSPluginInterface, CCS_PLUGIN_INTERFACE_TYPE, plugin))->pluginGetConflictPlugins) (plugin);
4296}
4297
4298CCSStringList ccsPluginGetProvidesFeatures (CCSPlugin *plugin)
4299{
4300 return (*(GET_INTERFACE (CCSPluginInterface, CCS_PLUGIN_INTERFACE_TYPE, plugin))->pluginGetProvidesFeatures) (plugin);
4301}
4302
4207CCSStringList ccsPluginGetRequiresFeatures (CCSPlugin *plugin)4303CCSStringList ccsPluginGetRequiresFeatures (CCSPlugin *plugin)
4208{4304{
4209 PLUGIN_PRIV (plugin);4305 return (*(GET_INTERFACE (CCSPluginInterface, CCS_PLUGIN_INTERFACE_TYPE, plugin))->pluginGetRequiresFeatures) (plugin);
4210
4211 return pPrivate->requiresFeature;
4212}4306}
42134307
4214void * ccsPluginGetPrivatePtr (CCSPlugin *plugin)4308void * ccsPluginGetPrivatePtr (CCSPlugin *plugin)
4215{4309{
4216 PLUGIN_PRIV (plugin);4310 return (*(GET_INTERFACE (CCSPluginInterface, CCS_PLUGIN_INTERFACE_TYPE, plugin))->pluginGetPrivatePtr) (plugin);
4217
4218 return pPrivate->privatePtr;
4219}4311}
42204312
4221void ccsPluginSetPrivatePtr (CCSPlugin *plugin, void *ptr)4313void ccsPluginSetPrivatePtr (CCSPlugin *plugin, void *ptr)
4222{4314{
4223 PLUGIN_PRIV (plugin);4315 (*(GET_INTERFACE (CCSPluginInterface, CCS_PLUGIN_INTERFACE_TYPE, plugin))->pluginSetPrivatePtr) (plugin, ptr);
4224
4225 pPrivate->privatePtr = ptr;
4226}4316}
42274317
4228CCSContext * ccsPluginGetContext (CCSPlugin *plugin)4318CCSContext * ccsPluginGetContext (CCSPlugin *plugin)
4229{4319{
4320 return (*(GET_INTERFACE (CCSPluginInterface, CCS_PLUGIN_INTERFACE_TYPE, plugin))->pluginGetContext) (plugin);
4321}
4322
4323CCSSettingList ccsGetPluginSettingsDefault (CCSPlugin *plugin)
4324{
4230 PLUGIN_PRIV (plugin);4325 PLUGIN_PRIV (plugin);
42314326
4232 return pPrivate->context;4327 if (!pPrivate->loaded)
4328 ccsLoadPluginSettings (plugin);
4329
4330 return pPrivate->settings;
4233}4331}
42344332
4235CCSSettingList ccsGetPluginSettings (CCSPlugin *plugin)4333CCSSettingList ccsGetPluginSettings (CCSPlugin *plugin)
4334{
4335 return (*(GET_INTERFACE (CCSPluginInterface, CCS_PLUGIN_INTERFACE_TYPE, plugin))->pluginGetPluginSettings) (plugin);
4336}
42364337
4338CCSGroupList ccsGetPluginGroupsDefault (CCSPlugin *plugin)
4237{4339{
4238 PLUGIN_PRIV (plugin);4340 PLUGIN_PRIV (plugin);
42394341
4240 if (!pPrivate->loaded)4342 if (!pPrivate->loaded)
4241 ccsLoadPluginSettings (plugin);4343 ccsLoadPluginSettings (plugin);
42424344
4243 return pPrivate->settings;4345 return pPrivate->groups;
4244}4346}
42454347
4246CCSGroupList ccsGetPluginGroups (CCSPlugin *plugin)4348CCSGroupList ccsGetPluginGroups (CCSPlugin *plugin)
4247{4349{
4248 PLUGIN_PRIV (plugin);4350 return (*(GET_INTERFACE (CCSPluginInterface, CCS_PLUGIN_INTERFACE_TYPE, plugin))->pluginGetPluginGroups) (plugin);
4249
4250 if (!pPrivate->loaded)
4251 ccsLoadPluginSettings (plugin);
4252
4253 return pPrivate->groups;
4254}4351}
42554352
4256Bool ccsSettingIsIntegrated (CCSSetting *setting)4353Bool ccsSettingIsIntegrated (CCSSetting *setting)
@@ -4285,16 +4382,44 @@
4285 return FALSE;4382 return FALSE;
4286}4383}
42874384
4385CCSStrExtensionList ccsGetPluginStrExtensionsDefault (CCSPlugin *plugin)
4386{
4387 PLUGIN_PRIV (plugin);
4388
4389 if (!pPrivate->loaded)
4390 ccsLoadPluginSettings (plugin);
4391
4392 return pPrivate->stringExtensions;
4393}
4394
4288CCSStrExtensionList ccsGetPluginStrExtensions (CCSPlugin *plugin)4395CCSStrExtensionList ccsGetPluginStrExtensions (CCSPlugin *plugin)
4289{4396{
4290 PLUGIN_PRIV (plugin);4397 return (*(GET_INTERFACE (CCSPluginInterface, CCS_PLUGIN_INTERFACE_TYPE, plugin))->pluginGetPluginStrExtensions) (plugin);
4291
4292 if (!pPrivate->loaded)
4293 ccsLoadPluginSettings (plugin);
4294
4295 return pPrivate->stringExtensions;
4296}4398}
42974399
4400static const CCSPluginInterface ccsDefaultPluginInterface =
4401{
4402 ccsPluginGetNameDefault,
4403 ccsPluginGetShortDescDefault,
4404 ccsPluginGetLongDescDefault,
4405 ccsPluginGetHintsDefault,
4406 ccsPluginGetCategoryDefault,
4407 ccsPluginGetLoadAfterDefault,
4408 ccsPluginGetLoadBeforeDefault,
4409 ccsPluginGetRequiresPluginsDefault,
4410 ccsPluginGetConflictPluginsDefault,
4411 ccsPluginGetProvidesFeaturesDefault,
4412 ccsPluginGetRequiresFeaturesDefault,
4413 ccsPluginGetPrivatePtrDefault,
4414 ccsPluginSetPrivatePtrDefault,
4415 ccsPluginGetContextDefault,
4416 ccsFindSettingDefault,
4417 ccsGetPluginSettingsDefault,
4418 ccsGetPluginGroupsDefault,
4419 ccsReadPluginSettingsDefault,
4420 ccsGetPluginStrExtensionsDefault
4421};
4422
4298static const CCSContextInterface ccsDefaultContextInterface =4423static const CCSContextInterface ccsDefaultContextInterface =
4299{4424{
4300 ccsContextGetPluginsDefault,4425 ccsContextGetPluginsDefault,
@@ -4335,5 +4460,6 @@
43354460
4336const CCSInterfaceTable ccsDefaultInterfaceTable =4461const CCSInterfaceTable ccsDefaultInterfaceTable =
4337{4462{
4338 &ccsDefaultContextInterface4463 &ccsDefaultContextInterface,
4464 &ccsDefaultPluginInterface
4339};4465};

Subscribers

People subscribed via source and target branches