plugin: make GstPlugin object structure opaque for now

There's no reason anyone would want to derive from this, so
just make opaque until we manage to make all the private bits
private properly (which I'm not doing right now because it's
more invasive and I have registry modifications locally which
touch all that code as well).
This commit is contained in:
Tim-Philipp Müller 2012-04-29 17:03:32 +01:00
parent 3453ae1a7f
commit 19d4c0ba73
2 changed files with 47 additions and 42 deletions

View file

@ -257,5 +257,47 @@ extern GstDebugCategory *_priv_GST_CAT_POLL;
#endif #endif
/**** objects made opaque until the private bits have been made private ****/
#include <gmodule.h>
#include <time.h> /* time_t */
#include <sys/types.h> /* off_t */
#include <sys/stat.h> /* off_t */
typedef struct _GstPluginPrivate GstPluginPrivate;
struct _GstPlugin {
GstObject object;
/*< private >*/
GstPluginDesc desc;
GstPluginDesc *orig_desc;
unsigned int flags;
gchar * filename;
gchar * basename; /* base name (non-dir part) of plugin path */
GModule * module; /* contains the module if plugin is loaded */
off_t file_size;
time_t file_mtime;
gboolean registered; /* TRUE when the registry has seen a filename
* that matches the plugin's basename */
GstPluginPrivate *priv;
gpointer _gst_reserved[GST_PADDING];
};
struct _GstPluginClass {
GstObjectClass object_class;
/*< private >*/
gpointer _gst_reserved[GST_PADDING];
};
G_END_DECLS G_END_DECLS
#endif /* __GST_PRIVATE_H__ */ #endif /* __GST_PRIVATE_H__ */

View file

@ -26,19 +26,19 @@
#include <gst/gstconfig.h> #include <gst/gstconfig.h>
#include <time.h> /* time_t */
#include <sys/types.h> /* off_t */
#include <sys/stat.h> /* off_t */
#include <gmodule.h>
#include <gst/gstobject.h> #include <gst/gstobject.h>
#include <gst/gstmacros.h> #include <gst/gstmacros.h>
#include <gst/gststructure.h> #include <gst/gststructure.h>
G_BEGIN_DECLS G_BEGIN_DECLS
/**
* GstPlugin:
*
* The opaque plugin object
*/
typedef struct _GstPlugin GstPlugin; typedef struct _GstPlugin GstPlugin;
typedef struct _GstPluginClass GstPluginClass; typedef struct _GstPluginClass GstPluginClass;
typedef struct _GstPluginPrivate GstPluginPrivate;
typedef struct _GstPluginDesc GstPluginDesc; typedef struct _GstPluginDesc GstPluginDesc;
/** /**
@ -187,43 +187,6 @@ struct _GstPluginDesc {
#define GST_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_PLUGIN, GstPluginClass)) #define GST_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_PLUGIN, GstPluginClass))
#define GST_PLUGIN_CAST(obj) ((GstPlugin*)(obj)) #define GST_PLUGIN_CAST(obj) ((GstPlugin*)(obj))
/**
* GstPlugin:
*
* The plugin object
*/
struct _GstPlugin {
GstObject object;
/*< private >*/
GstPluginDesc desc;
GstPluginDesc *orig_desc;
unsigned int flags;
gchar * filename;
gchar * basename; /* base name (non-dir part) of plugin path */
GModule * module; /* contains the module if plugin is loaded */
off_t file_size;
time_t file_mtime;
gboolean registered; /* TRUE when the registry has seen a filename
* that matches the plugin's basename */
GstPluginPrivate *priv;
gpointer _gst_reserved[GST_PADDING];
};
struct _GstPluginClass {
GstObjectClass object_class;
/*< private >*/
gpointer _gst_reserved[GST_PADDING];
};
#ifdef GST_PACKAGE_RELEASE_DATETIME #ifdef GST_PACKAGE_RELEASE_DATETIME
#define __GST_PACKAGE_RELEASE_DATETIME GST_PACKAGE_RELEASE_DATETIME #define __GST_PACKAGE_RELEASE_DATETIME GST_PACKAGE_RELEASE_DATETIME
#else #else