[libdmapsharing] Add DACPConnection class Signed-off-by: W. Michael Petullo <mike flyn org>



commit f4cf887a5472c1310928a5e9551b90ea343e87e3
Author: W. Michael Petullo <mike flyn org>
Date:   Wed Jan 19 19:53:45 2011 -0600

    Add DACPConnection class
    Signed-off-by: W. Michael Petullo <mike flyn org>

 libdmapsharing/Makefile.am       |    2 +
 libdmapsharing/dacp-connection.c |   99 ++++++++++++++++++++++++++++++++++++++
 libdmapsharing/dacp-connection.h |   96 ++++++++++++++++++++++++++++++++++++
 libdmapsharing/dacp-share.c      |    2 +-
 4 files changed, 198 insertions(+), 1 deletions(-)
---
diff --git a/libdmapsharing/Makefile.am b/libdmapsharing/Makefile.am
index e57050f..01cf8aa 100644
--- a/libdmapsharing/Makefile.am
+++ b/libdmapsharing/Makefile.am
@@ -7,6 +7,7 @@ libdmapsharing_3_0_la_SOURCES = \
 	daap-connection.c \
 	daap-record.c \
 	daap-share.c \
+	dacp-connection.c \
 	dacp-share.c \
 	dacp-player.c \
 	dmap-connection.c \
@@ -72,6 +73,7 @@ libdmapsharinginclude_HEADERS = \
 	daap-connection.h \
 	daap-record.h \
 	daap-share.h \
+	dacp-connection.h \
 	dacp-share.h \
 	dacp-player.h \
 	dmap.h \
diff --git a/libdmapsharing/dacp-connection.c b/libdmapsharing/dacp-connection.c
new file mode 100644
index 0000000..d1989e5
--- /dev/null
+++ b/libdmapsharing/dacp-connection.c
@@ -0,0 +1,99 @@
+/*
+ * Copyright (C) 2004,2005 Charles Schmidt <cschmidt2 emich edu>
+ * Copyright (C) 2006 INDT
+ *  Andre Moreira Magalhaes <andre magalhaes indt org br>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#include "config.h"
+
+#include <libdmapsharing/dacp-connection.h>
+#include <libdmapsharing/dmap-structure.h>
+
+#define DACP_CONNECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), DACP_TYPE_CONNECTION, DACPConnectionPrivate))
+
+/* FIXME:
+struct DACPConnectionPrivate {
+};
+*/
+
+static DMAPContentCode
+get_protocol_version_cc (DMAPConnection *connection)
+{
+	/* FIXME: */
+	g_error ("Not implemented");
+}
+
+static gchar *
+get_query_metadata (void)
+{
+	/* FIXME: */
+	g_error ("Not implemented");
+}
+
+static DMAPRecord *
+handle_mlcl (DMAPConnection *connection, DMAPRecordFactory *factory, GNode *n, int *item_id)
+{
+	/* FIXME: */
+	g_error ("Not implemented");
+}
+
+static void
+dacp_connection_class_init (DACPConnectionClass *klass)
+{
+	GObjectClass *object_class = G_OBJECT_CLASS (klass);
+	DMAPConnectionClass *parent_class = DMAP_CONNECTION_CLASS (object_class);
+
+	parent_class->get_protocol_version_cc = get_protocol_version_cc;
+	parent_class->get_query_metadata = get_query_metadata;
+	parent_class->handle_mlcl = handle_mlcl;
+
+	/* FIXME:
+	g_type_class_add_private (klass, sizeof (DACPConnectionPrivate));
+	*/
+}
+
+DACPConnection *
+dacp_connection_new (const char        *name,
+		     const char        *host,
+		     guint              port,
+		     gboolean           password_protected,
+		     DMAPDb            *db,
+		     DMAPRecordFactory *factory)
+{
+	DACPConnection *connection;
+	
+	connection = g_object_new (DACP_TYPE_CONNECTION,
+			          "name", name,
+			          "password-protected", password_protected,
+			          "db", db,
+			          "host", host,
+			          "port", port,
+				  "factory", factory,
+			           NULL);
+
+	return connection;
+}
+
+static void
+dacp_connection_init (DACPConnection *connection)
+{
+	/* FIXME: 
+	connection->priv = DACP_CONNECTION_GET_PRIVATE (connection);
+	*/
+}
+
+G_DEFINE_TYPE (DACPConnection, dacp_connection, DMAP_TYPE_CONNECTION)
diff --git a/libdmapsharing/dacp-connection.h b/libdmapsharing/dacp-connection.h
new file mode 100644
index 0000000..cc5a17a
--- /dev/null
+++ b/libdmapsharing/dacp-connection.h
@@ -0,0 +1,96 @@
+/*
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#ifndef __DACP_CONNECTION_H
+#define __DACP_CONNECTION_H
+
+#include <glib-object.h>
+
+#include <libdmapsharing/dmap-connection.h>
+#include <libdmapsharing/dmap-db.h>
+
+G_BEGIN_DECLS
+
+/**
+ * DACP_TYPE_CONNECTION:
+ *
+ * The type for #DACPConnection.
+ */
+#define DACP_TYPE_CONNECTION		(dacp_connection_get_type ())
+/**
+ * DACP_CONNECTION:
+ * @o: Object which is subject to casting.
+ *
+ * Casts a #DACPConnection or derived pointer into a (DACPConnection *) pointer.
+ * Depending on the current debugging level, this function may invoke
+ * certain runtime checks to identify invalid casts.
+ */
+#define DACP_CONNECTION(o)		(G_TYPE_CHECK_INSTANCE_CAST ((o), DACP_TYPE_CONNECTION, DACPConnection))
+/**
+ * DACP_CONNECTION_CLASS:
+ * @k: a valid #DACPConnectionClass
+ *
+ * Casts a derived #DACPConnectionClass structure into a #DACPConnectionClass
+ * structure.
+ */
+#define DACP_CONNECTION_CLASS(k)	(G_TYPE_CHECK_CLASS_CAST((k), DACP_TYPE_CONNECTION, DACPConnectionClass))
+/**
+ * IS_DACP_CONNECTION:
+ * @o: Instance to check for being a %DACP_TYPE_CONNECTION.
+ *
+ * Checks whether a valid #GTypeInstance pointer is of type %DACP_TYPE_CONNECTION.
+ */
+#define IS_DACP_CONNECTION(o)	(G_TYPE_CHECK_INSTANCE_TYPE ((o), DACP_TYPE_CONNECTION))
+/**
+ * IS_DACP_CONNECTION_CLASS:
+ * @k: a #DACPConnectionClass
+ *
+ * Checks whether @k "is a" valid #DACPConnectionClass structure of type
+ * %DACP_CONNECTION or derived.
+ */
+#define IS_DACP_CONNECTION_CLASS(k)	(G_TYPE_CHECK_CLASS_TYPE ((k), DACP_TYPE_CONNECTION))
+/**
+ * DACP_CONNECTION_GET_CLASS:
+ * @o: a #DACPConnection instance.
+ *
+ * Get the class structure associated to a #DACPConnection instance.
+ *
+ * Returns: pointer to object class structure.
+ */
+#define DACP_CONNECTION_GET_CLASS(o)	(G_TYPE_INSTANCE_GET_CLASS ((o), DACP_TYPE_CONNECTION, DACPConnectionClass))
+
+typedef struct DACPConnectionPrivate DACPConnectionPrivate;
+
+typedef struct {
+	DMAPConnectionClass dmap_connection_class;
+} DACPConnectionClass;
+
+typedef struct {
+	DMAPConnection dmap_connection_instance;
+	DACPConnectionPrivate *priv;
+} DACPConnection;
+
+GType              dacp_connection_get_type        (void);
+
+DACPConnection * dacp_connection_new             (const char              *name,
+						  const char              *host,
+						  guint                    port,
+						  gboolean                 password_protected,
+						  DMAPDb		  *db,
+						  DMAPRecordFactory *factory);
+G_END_DECLS
+
+#endif /* __DACP_CONNECTION_H */
diff --git a/libdmapsharing/dacp-share.c b/libdmapsharing/dacp-share.c
index fcb8fdc..69c0078 100644
--- a/libdmapsharing/dacp-share.c
+++ b/libdmapsharing/dacp-share.c
@@ -1031,7 +1031,7 @@ dacp_share_pair (DACPShare *share, gchar *service_name, gchar passcode[4])
 	
 	g_object_get (share, "name", &name, NULL);
 	
-	remote_info->connection = dmap_connection_new (name, 
+	remote_info->connection = dacp_connection_new (name, 
 	                                               remote_info->host, 
 	                                               remote_info->port, 
 	                                               FALSE, 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]