87494112b7e76432db11caa367985e121dee4b2b
[vlc.git] / python / vlcmodule.c
1 #include <Python.h>
2 #include <vlc/vlc.h>
3 #include <stdio.h>
4 #include <stdlib.h>
5 #include <unistd.h>
6
7
8 static PyObject *vlc_create(PyObject *self, PyObject *args)
9 {
10     int iRc;
11
12     iRc = VLC_Create();
13     return Py_BuildValue("i", iRc);
14 }
15
16
17 static PyObject *vlc_init(PyObject *self, PyObject *args)
18 {
19     int iVlc;
20     char *file;
21     char *pArgv[] = { "vlc", "--sout", NULL };
22     int iRc;
23
24     if (!PyArg_ParseTuple(args, "iss", &iVlc, &file, &pArgv[2]))
25         return NULL;
26     iRc = VLC_Init(iVlc, 3, pArgv);
27     if (iRc >= 0)
28         iRc = VLC_AddTarget(iVlc, file, PLAYLIST_APPEND, PLAYLIST_END);
29     return Py_BuildValue("i", iRc);
30 }
31
32
33 static PyObject *vlc_play(PyObject *self, PyObject *args)
34 {
35     int iVlc;
36     int iRc;
37
38     if (!PyArg_ParseTuple(args, "i", &iVlc))
39         return NULL;
40     iRc = VLC_Play(iVlc);
41     return Py_BuildValue("i", iRc);
42 }
43
44
45 static PyObject *vlc_stop(PyObject *self, PyObject *args)
46 {
47     int iVlc;
48     int iRc;
49
50     if (!PyArg_ParseTuple(args, "i", &iVlc))
51         return NULL;
52     iRc = VLC_Stop(iVlc);
53     return Py_BuildValue("i", iRc);
54 }
55
56
57 static PyObject *vlc_pause(PyObject *self, PyObject *args)
58 {
59     int iVlc;
60     int iRc;
61
62     if (!PyArg_ParseTuple(args, "i", &iVlc))
63         return NULL;
64     iRc = VLC_Pause(iVlc);
65     return Py_BuildValue("i", iRc);
66 }
67
68
69 static PyMethodDef VlcMethods[] = {
70     {"create", vlc_create, METH_VARARGS, "Create a vlc thread."},
71     {"init", vlc_init, METH_VARARGS, "Initialize a vlc thread."},
72     {"play", vlc_play, METH_VARARGS, "Play"},
73     {"stop", vlc_stop, METH_VARARGS, "Stop"},
74     {"pause", vlc_pause, METH_VARARGS, "Pause"},
75     {NULL, NULL, 0, NULL}        /* Sentinel */
76 };
77
78
79 void initvlc(void)
80 {
81     Py_InitModule("vlc", VlcMethods);
82 }
83