summaryrefslogtreecommitdiffstats
path: root/src/uca-plugin-manager.h
diff options
context:
space:
mode:
authorMatthias Vogelgesang <matthias.vogelgesang@gmail.com>2012-09-21 14:29:50 +0200
committerMatthias Vogelgesang <matthias.vogelgesang@gmail.com>2012-09-21 14:29:50 +0200
commit6eaadaa0e4ad8ce906aa8ccee63d91f0d9cb28ea (patch)
tree1b37a1eb40ad1fdec0a2bebc167f7f8128497748 /src/uca-plugin-manager.h
parente6a6eb9aede59a1f7441b926b36afefd9c42b91d (diff)
parent9f262857d13a3e0d7ee214b33b90359c51227718 (diff)
downloadlibuca-6eaadaa0e4ad8ce906aa8ccee63d91f0d9cb28ea.tar.gz
libuca-6eaadaa0e4ad8ce906aa8ccee63d91f0d9cb28ea.tar.bz2
libuca-6eaadaa0e4ad8ce906aa8ccee63d91f0d9cb28ea.tar.xz
libuca-6eaadaa0e4ad8ce906aa8ccee63d91f0d9cb28ea.zip
Merge branch 'plugins'
Diffstat (limited to 'src/uca-plugin-manager.h')
-rw-r--r--src/uca-plugin-manager.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/uca-plugin-manager.h b/src/uca-plugin-manager.h
new file mode 100644
index 0000000..9291857
--- /dev/null
+++ b/src/uca-plugin-manager.h
@@ -0,0 +1,65 @@
+#ifndef __UCA_PLUGIN_MANAGER_H
+#define __UCA_PLUGIN_MANAGER_H
+
+#include <glib-object.h>
+#include "uca-camera.h"
+
+G_BEGIN_DECLS
+
+#define UCA_TYPE_PLUGIN_MANAGER (uca_plugin_manager_get_type())
+#define UCA_PLUGIN_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), UCA_TYPE_PLUGIN_MANAGER, UcaPluginManager))
+#define UCA_IS_PLUGIN_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), UCA_TYPE_PLUGIN_MANAGER))
+#define UCA_PLUGIN_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), UCA_TYPE_PLUGIN_MANAGER, UcaPluginManagerClass))
+#define UCA_IS_PLUGIN_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), UCA_TYPE_PLUGIN_MANAGER))
+#define UCA_PLUGIN_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), UCA_TYPE_PLUGIN_MANAGER, UcaPluginManagerClass))
+
+#define UCA_PLUGIN_MANAGER_ERROR uca_plugin_manager_error_quark()
+GQuark uca_plugin_manager_error_quark(void);
+
+typedef enum {
+ UCA_PLUGIN_MANAGER_ERROR_MODULE_NOT_FOUND,
+ UCA_PLUGIN_MANAGER_ERROR_MODULE_OPEN,
+ UCA_PLUGIN_MANAGER_ERROR_SYMBOL_NOT_FOUND
+} UcaPluginManagerError;
+
+typedef struct _UcaPluginManager UcaPluginManager;
+typedef struct _UcaPluginManagerClass UcaPluginManagerClass;
+typedef struct _UcaPluginManagerPrivate UcaPluginManagerPrivate;
+
+/**
+ * UcaPluginManager:
+ *
+ * Creates #UcaFilter instances by loading corresponding shared objects. The
+ * contents of the #UcaPluginManager structure are private and should only be
+ * accessed via the provided API.
+ */
+struct _UcaPluginManager {
+ /*< private >*/
+ GObject parent_instance;
+
+ UcaPluginManagerPrivate *priv;
+};
+
+/**
+ * UcaPluginManagerClass:
+ *
+ * #UcaPluginManager class
+ */
+struct _UcaPluginManagerClass {
+ /*< private >*/
+ GObjectClass parent_class;
+};
+
+UcaPluginManager *uca_plugin_manager_new (void);
+void uca_plugin_manager_add_path (UcaPluginManager *manager,
+ const gchar *path);
+GList *uca_plugin_manager_get_available_cameras
+ (UcaPluginManager *manager);
+UcaCamera *uca_plugin_manager_new_camera (UcaPluginManager *manager,
+ const gchar *name,
+ GError **error);
+GType uca_plugin_manager_get_type (void);
+
+G_END_DECLS
+
+#endif