mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-03 09:01:54 -05:00
WIP
Change object model
This commit is contained in:
parent
d0f95fc323
commit
190f01d88e
38 changed files with 1594 additions and 3562 deletions
|
|
@ -28,61 +28,42 @@ G_BEGIN_DECLS
|
|||
#define PINOS_CLIENT_PREFIX PINOS_CLIENT_URI "#"
|
||||
|
||||
typedef struct _PinosClient PinosClient;
|
||||
typedef struct _PinosClientClass PinosClientClass;
|
||||
typedef struct _PinosClientPrivate PinosClientPrivate;
|
||||
|
||||
#include <pinos/client/object.h>
|
||||
#include <pinos/server/daemon.h>
|
||||
|
||||
#define PINOS_TYPE_CLIENT (pinos_client_get_type ())
|
||||
#define PINOS_IS_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PINOS_TYPE_CLIENT))
|
||||
#define PINOS_IS_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PINOS_TYPE_CLIENT))
|
||||
#define PINOS_CLIENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PINOS_TYPE_CLIENT, PinosClientClass))
|
||||
#define PINOS_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PINOS_TYPE_CLIENT, PinosClient))
|
||||
#define PINOS_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PINOS_TYPE_CLIENT, PinosClientClass))
|
||||
#define PINOS_CLIENT_CAST(obj) ((PinosClient*)(obj))
|
||||
#define PINOS_CLIENT_CLASS_CAST(klass) ((PinosClientClass*)(klass))
|
||||
|
||||
/**
|
||||
* PinosClient:
|
||||
*
|
||||
* Pinos client object class.
|
||||
*/
|
||||
struct _PinosClient {
|
||||
GObject obj;
|
||||
PinosCore *core;
|
||||
|
||||
PinosObject object;
|
||||
char *sender;
|
||||
|
||||
PinosClientPrivate *priv;
|
||||
PinosProperties *properties;
|
||||
|
||||
PinosSignal appeared;
|
||||
PinosSignal vanished;
|
||||
|
||||
void (*add_object) (PinosClient *client,
|
||||
PinosObject *object);
|
||||
void (*remove_object) (PinosClient *client,
|
||||
PinosObject *object);
|
||||
bool (*has_object) (PinosClient *client,
|
||||
PinosObject *object);
|
||||
};
|
||||
|
||||
/**
|
||||
* PinosClientClass:
|
||||
*
|
||||
* Pinos client object class.
|
||||
*/
|
||||
struct _PinosClientClass {
|
||||
GObjectClass parent_class;
|
||||
};
|
||||
|
||||
/* normal GObject stuff */
|
||||
GType pinos_client_get_type (void);
|
||||
|
||||
PinosClient * pinos_client_new (PinosDaemon *daemon,
|
||||
PinosObject * pinos_client_new (PinosCore *core,
|
||||
const gchar *sender,
|
||||
PinosProperties *properties);
|
||||
|
||||
void pinos_client_remove (PinosClient *client);
|
||||
|
||||
const gchar * pinos_client_get_sender (PinosClient *client);
|
||||
const gchar * pinos_client_get_object_path (PinosClient *client);
|
||||
|
||||
void pinos_client_add_object (PinosClient *client,
|
||||
GObject *object);
|
||||
void pinos_client_remove_object (PinosClient *client,
|
||||
GObject *object);
|
||||
gboolean pinos_client_has_object (PinosClient *client,
|
||||
GObject *object);
|
||||
#define pinos_client_add_object(c,...) (c)->add_object ((c),__VA_ARGS__)
|
||||
#define pinos_client_remove_object(c,...) (c)->remove_object ((c),__VA_ARGS__)
|
||||
#define pinos_client_has_object(c,...) (c)->has_object ((c),__VA_ARGS__)
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue