summaryrefslogtreecommitdiffstats
path: root/bindings/python/gpod.i
diff options
context:
space:
mode:
authorNicholas Piper <nicholas@users.sourceforge.net>2006-05-07 17:55:35 +0000
committerNicholas Piper <nicholas@users.sourceforge.net>2006-05-07 17:55:35 +0000
commitea7be32cae9b599bafa3dbe97236a3a16470a3e5 (patch)
treee5b68b7266a7c05e1a563e636a0e07b06c3b0822 /bindings/python/gpod.i
parent0a4c3fb059e7c5247e8734d1d5e1221663a479e9 (diff)
downloadlibgpod-ea7be32cae9b599bafa3dbe97236a3a16470a3e5.tar.gz
libgpod-ea7be32cae9b599bafa3dbe97236a3a16470a3e5.tar.xz
libgpod-ea7be32cae9b599bafa3dbe97236a3a16470a3e5.zip
Track, Database and Playlist support for the nicer API. add_song.py uses this now.
git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1258 f01d2545-417e-4e96-918e-98f8d0dbbcb6
Diffstat (limited to 'bindings/python/gpod.i')
-rw-r--r--bindings/python/gpod.i46
1 files changed, 46 insertions, 0 deletions
diff --git a/bindings/python/gpod.i b/bindings/python/gpod.i
index 39de9c1..1d5f231 100644
--- a/bindings/python/gpod.i
+++ b/bindings/python/gpod.i
@@ -94,6 +94,48 @@ PyObject* sw_get_playlists(Itdb_iTunesDB *itdb) {
}
return list;
}
+
+ void sw__track_extra_destroy (PyObject *data) {
+ Py_XDECREF(data);
+ }
+
+ PyObject *sw__track_extra_duplicate (PyObject *data) {
+ if (data == Py_None) {
+ Py_INCREF(Py_None);
+ return Py_None;
+ } else {
+ return PyDict_Copy(data);
+ }
+ }
+
+ PyObject *sw_set_track_userdata(Itdb_Track *track, PyObject *data) {
+ Py_INCREF(data);
+ if ((PyDict_Check(data)) || (data == Py_None)) {
+ if (track->userdata) {
+ Py_DECREF((PyObject *)track->userdata);
+ }
+ track->userdata = (gpointer) data;
+ track->userdata_duplicate = (ItdbUserDataDuplicateFunc)sw__track_extra_duplicate;
+ track->userdata_destroy = (ItdbUserDataDestroyFunc)sw__track_extra_destroy;
+ Py_INCREF(Py_None);
+ return Py_None;
+ } else {
+ PyErr_SetString(PyExc_TypeError, "userdata must be a Dictionary");
+ return NULL;
+ }
+ }
+
+ PyObject* sw_get_track_userdata(Itdb_Track *track) {
+ if (track->userdata) {
+ Py_INCREF((PyObject *)track->userdata);
+ return (PyObject *)track->userdata;
+ } else {
+ Py_INCREF(Py_None);
+ return Py_None;
+ }
+ }
+
+
%}
# be nicer to decode these utf8 strings into Unicode objects in the C
@@ -101,6 +143,7 @@ PyObject* sw_get_playlists(Itdb_iTunesDB *itdb) {
# them utf8 encoded Strings.
typedef char gchar;
+
%typemap(in) guint8 {
unsigned long ival;
ival = PyInt_AsUnsignedLongMask($input);
@@ -221,4 +264,7 @@ PyObject* sw_get_rule(GList *list, gint index);
PyObject* sw_get_list_len(GList *list);
PyObject* sw_get_playlists(Itdb_iTunesDB *itdb);
PyObject* sw_get_playlist_tracks(Itdb_Playlist *pl);
+PyObject* sw_set_track_userdata(Itdb_Track *track, PyObject *data);
+PyObject* sw_get_track_userdata(Itdb_Track *track);
+
%include "../../src/itdb.h"