1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
/* File : gpod.i */
/*
Copyright (C) 2005 Nick Piper <nick-gtkpod at nickpiper co uk>
Part of the gtkpod project.
URL: http://www.gtkpod.org/
URL: http://gtkpod.sourceforge.net/
The code contained in this file 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 file 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 code; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
$Id$
Please send any fixes, improvements or suggestions to
<nick-gtkpod at nickpiper co uk>.
*/
%module gpod
%{
#include "../../src/db-artwork-debug.h"
#include "../../src/db-artwork-parser.h"
#include "../../src/db-image-parser.h"
#include "../../src/db-itunes-parser.h"
#include "../../src/db-parse-context.h"
#include "../../src/itdb.h"
#include "../../src/itdb_private.h"
PyObject* sw_get_tracks(Itdb_iTunesDB *itdb) {
PyObject *list;
gint i;
GList *l;
list = PyList_New(g_list_length(itdb->tracks));
for (l = itdb->tracks, i = 0; l; l = l->next, ++i) {
PyList_SET_ITEM(list, i, SWIG_NewPointerObj((void*)(l->data), SWIGTYPE_p__Itdb_Track, 0));
}
return list;
}
PyObject* sw_get_playlist_tracks(Itdb_Playlist *pl) {
PyObject *list;
gint i;
GList *l;
list = PyList_New(g_list_length(pl->members));
for (l = pl->members, i = 0; l; l = l->next, ++i) {
PyList_SET_ITEM(list, i, SWIG_NewPointerObj((void*)(l->data), SWIGTYPE_p__Itdb_Track, 0));
}
return list;
}
PyObject* sw_get_playlists(Itdb_iTunesDB *itdb) {
PyObject *list;
gint i;
GList *l;
list = PyList_New(g_list_length(itdb->playlists));
for (l = itdb->playlists, i = 0; l; l = l->next, ++i) {
PyList_SET_ITEM(list, i, SWIG_NewPointerObj((void*)(l->data), SWIGTYPE_p__Itdb_Playlist, 0));
}
return list;
}
%}
# be nicer to decode these utf8 strings into Unicode objects in the C
# layer. Here we are leaving it to the Python side, and just giving
# them utf8 encoded Strings.
typedef char gchar;
%typemap(in) guint8 {
long ival;
ival = PyInt_AsLong($input);
if (( ival > 255 ) || ( ival < 0 )) {
PyErr_SetString(PyExc_ValueError, "$symname: Value must be between 0 and 255");
SWIG_fail;
} else {
$1 = (guint8) ival;
}
}
%typemap(out) guint8 {
$result = PyInt_FromLong($1);
}
typedef int gboolean;
typedef int gint32;
typedef unsigned int guint32;
#define G_BEGIN_DECLS
#define G_END_DECLS
PyObject* sw_get_tracks(Itdb_iTunesDB *itdb);
PyObject* sw_get_playlists(Itdb_iTunesDB *itdb);
PyObject* sw_get_playlist_tracks(Itdb_Playlist *pl);
%include "../../src/itdb.h"
|