Changeset 241b22807f106a1473add93ed0d8efdc9108e4bc
- Timestamp:
- 23/04/08 19:35:01 (6 months ago)
- git-parent:
- Files:
-
- bindings/python/TODO (deleted)
- bindings/python/vlc_instance.c (modified) (7 diffs)
- bindings/python/vlc_media.c (modified) (16 diffs)
- bindings/python/vlc_mediacontrol.c (modified) (10 diffs)
- bindings/python/vlc_mediaplayer.c (modified) (30 diffs)
- bindings/python/vlc_module.c (modified) (6 diffs)
- bindings/python/vlcglue.h (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
bindings/python/vlc_instance.c
rbf1292e r241b228 81 81 int i_size = 0; 82 82 83 if( PyArg_ParseTuple( args, "O", &py_list ) ) 83 fprintf(stderr, "Instancianting\n"); 84 if( PyArg_ParseTuple( args, "|O", &py_list ) ) 84 85 { 85 86 i_size = pyoptions_to_args( py_list, &ppsz_args ); … … 120 121 } 121 122 122 /* Set loop variable */ 123 static PyObject * 124 vlcInstance_playlist_loop( PyObject *self, PyObject *args ) 125 { 126 libvlc_exception_t ex; 127 int i_loop = 0; 128 129 if( !PyArg_ParseTuple( args, "i", &i_loop ) ) 130 return NULL; 131 132 LIBVLC_TRY; 133 libvlc_playlist_loop( LIBVLC_INSTANCE->p_instance, i_loop, &ex ); 134 LIBVLC_EXCEPT; 135 136 Py_INCREF( Py_None ); 137 return Py_None; 138 } 139 140 /* Playlist play. 2 parameters: i_id, the id to play 141 l_options: a list of options */ 142 static PyObject * 143 vlcInstance_playlist_play( PyObject *self, PyObject *args ) 144 { 145 libvlc_exception_t ex; 146 int i_id = -1; 147 PyObject *py_options = NULL; 148 int i_size = 0; 149 char** ppsz_args = NULL; 150 151 if( !PyArg_ParseTuple( args, "|iO", &i_id, &py_options ) ) 152 return NULL; 153 154 if( py_options ) 155 { 156 i_size = pyoptions_to_args( py_options, &ppsz_args ); 157 } 158 159 LIBVLC_TRY; 160 libvlc_playlist_play( LIBVLC_INSTANCE->p_instance, i_id, i_size, ppsz_args, &ex ); 161 free_args( i_size, ppsz_args ); 162 LIBVLC_EXCEPT; 163 164 Py_INCREF( Py_None ); 165 return Py_None; 166 } 167 168 static PyObject * 169 vlcInstance_playlist_pause( PyObject *self, PyObject *args ) 170 { 171 libvlc_exception_t ex; 172 LIBVLC_TRY; 173 libvlc_playlist_pause( LIBVLC_INSTANCE->p_instance, &ex ); 174 LIBVLC_EXCEPT; 175 Py_INCREF( Py_None ); 176 return Py_None; 177 } 178 179 static PyObject * 180 vlcInstance_playlist_isplaying( PyObject *self, PyObject *args ) 181 { 182 libvlc_exception_t ex; 183 int i_ret; 184 185 LIBVLC_TRY; 186 i_ret = libvlc_playlist_isplaying( LIBVLC_INSTANCE->p_instance, &ex ); 187 LIBVLC_EXCEPT; 188 return Py_BuildValue( "i", i_ret ); 189 } 190 191 static PyObject * 192 vlcInstance_playlist_items_count( PyObject *self, PyObject *args ) 193 { 194 libvlc_exception_t ex; 195 int i_ret; 196 197 LIBVLC_TRY; 198 i_ret = libvlc_playlist_items_count( LIBVLC_INSTANCE->p_instance, &ex ); 199 LIBVLC_EXCEPT; 200 return Py_BuildValue( "i", i_ret ); 201 } 202 203 static PyObject * 204 vlcInstance_playlist_stop( PyObject *self, PyObject *args ) 205 { 206 libvlc_exception_t ex; 207 LIBVLC_TRY; 208 libvlc_playlist_stop( LIBVLC_INSTANCE->p_instance, &ex ); 209 LIBVLC_EXCEPT; 210 Py_INCREF( Py_None ); 211 return Py_None; 212 } 213 214 static PyObject * 215 vlcInstance_playlist_next( PyObject *self, PyObject *args ) 216 { 217 libvlc_exception_t ex; 218 LIBVLC_TRY; 219 libvlc_playlist_next( LIBVLC_INSTANCE->p_instance, &ex ); 220 LIBVLC_EXCEPT; 221 Py_INCREF( Py_None ); 222 return Py_None; 223 } 224 225 static PyObject * 226 vlcInstance_playlist_prev( PyObject *self, PyObject *args ) 227 { 228 libvlc_exception_t ex; 229 LIBVLC_TRY; 230 libvlc_playlist_prev( LIBVLC_INSTANCE->p_instance, &ex ); 231 LIBVLC_EXCEPT; 232 Py_INCREF( Py_None ); 233 return Py_None; 234 } 235 236 static PyObject * 237 vlcInstance_playlist_clear( PyObject *self, PyObject *args ) 238 { 239 libvlc_exception_t ex; 240 LIBVLC_TRY; 241 libvlc_playlist_clear( LIBVLC_INSTANCE->p_instance, &ex ); 242 LIBVLC_EXCEPT; 243 Py_INCREF( Py_None ); 244 return Py_None; 245 } 246 247 /* Add a playlist item. Main parameter: URI. 248 Optional parameters: name, options */ 249 static PyObject * 250 vlcInstance_playlist_add( PyObject *self, PyObject *args) 251 { 252 libvlc_exception_t ex; 253 int i_ret; 254 char* psz_uri = NULL; 255 char* psz_name = NULL; 256 PyObject *py_options = NULL; 257 int i_size = 0; 258 char** ppsz_args = NULL; 259 260 if( !PyArg_ParseTuple( args, "s|sO", &psz_uri, &psz_name, &py_options ) ) 261 return NULL; 262 263 if( !psz_name ) 264 { 265 /* Set a default name */ 266 psz_name = strdup( psz_uri ); 267 } 268 269 if( py_options ) 270 { 271 i_size = pyoptions_to_args( py_options, &ppsz_args ); 272 } 273 274 LIBVLC_TRY; 275 if( ppsz_args ) 276 { 277 i_ret = libvlc_playlist_add_extended( LIBVLC_INSTANCE->p_instance, 278 psz_uri, 279 psz_name, 280 i_size, 281 ppsz_args, 282 &ex ); 283 free_args( i_size, ppsz_args ); 284 } 285 else 286 { 287 i_ret = libvlc_playlist_add( LIBVLC_INSTANCE->p_instance, 288 psz_uri, 289 psz_name, 290 &ex ); 291 } 292 LIBVLC_EXCEPT; 293 294 return Py_BuildValue( "i", i_ret ); 295 } 296 297 static PyObject * 298 vlcInstance_playlist_delete_item( PyObject *self, PyObject *args ) 299 { 300 libvlc_exception_t ex; 301 int i_id; 302 int i_ret; 303 304 if( !PyArg_ParseTuple( args, "i", &i_id ) ) 305 return NULL; 306 307 LIBVLC_TRY; 308 i_ret = libvlc_playlist_delete_item( LIBVLC_INSTANCE->p_instance, i_id, &ex ); 309 LIBVLC_EXCEPT; 310 311 return Py_BuildValue( "i", i_ret ); 312 } 313 314 static PyObject * 315 vlcInstance_playlist_get_media_player( PyObject *self, PyObject *args ) 316 { 317 libvlc_exception_t ex; 318 libvlc_media_player_t *p_mi; 319 vlcMediaInstance *p_ret; 320 321 LIBVLC_TRY; 322 p_mi = libvlc_playlist_get_media_player( LIBVLC_INSTANCE->p_instance, &ex ); 323 LIBVLC_EXCEPT; 324 325 p_ret = PyObject_New( vlcMediaInstance, &vlcMediaInstance_Type ); 326 p_ret->p_mi = p_mi; 123 static PyObject * 124 vlcInstance_new_media_player( PyObject *self, PyObject *args ) 125 { 126 libvlc_exception_t ex; 127 libvlc_media_player_t *p_mp; 128 vlcMediaPlayer *p_ret; 129 130 LIBVLC_TRY; 131 p_mp = libvlc_media_player_new( LIBVLC_INSTANCE->p_instance, &ex ); 132 LIBVLC_EXCEPT; 133 134 p_ret = PyObject_New( vlcMediaPlayer, &vlcMediaPlayer_Type ); 135 p_ret->p_mp = p_mp; 327 136 Py_INCREF( p_ret ); /* Ah bon ? */ 328 137 return ( PyObject * )p_ret; … … 734 543 { 735 544 libvlc_exception_t ex; 736 libvlc_media_t *p_m d;545 libvlc_media_t *p_media; 737 546 char* psz_mrl = NULL; 738 vlcMedia Descriptor*p_ret;547 vlcMedia *p_ret; 739 548 740 549 if( !PyArg_ParseTuple( args, "s", &psz_mrl ) ) … … 742 551 743 552 LIBVLC_TRY; 744 p_m d= libvlc_media_new( LIBVLC_INSTANCE->p_instance, psz_mrl, &ex );745 LIBVLC_EXCEPT; 746 747 p_ret = PyObject_New( vlcMedia Descriptor, &vlcMediaDescriptor_Type );748 p_ret->p_m d = p_md;553 p_media = libvlc_media_new( LIBVLC_INSTANCE->p_instance, psz_mrl, &ex ); 554 LIBVLC_EXCEPT; 555 556 p_ret = PyObject_New( vlcMedia, &vlcMedia_Type ); 557 p_ret->p_media = p_media; 749 558 Py_INCREF( p_ret ); /* Ah bon ? */ 750 559 return ( PyObject * )p_ret; … … 754 563 static PyMethodDef vlcInstance_methods[] = 755 564 { 756 { "get_vlc_id", vlcInstance_get_vlc_id, METH_ VARARGS,565 { "get_vlc_id", vlcInstance_get_vlc_id, METH_NOARGS, 757 566 "get_vlc_id( ) -> int Get the instance id."}, 758 { "playlist_loop", vlcInstance_playlist_loop, METH_VARARGS,759 "playlist_loop(bool) Set loop variable" },760 { "playlist_play", vlcInstance_playlist_play, METH_VARARGS,761 "playlist_play(id=int, options=list) Play the given playlist item (-1 for current item) with optional options (a list of strings)" },762 { "playlist_pause", vlcInstance_playlist_pause, METH_VARARGS,763 "playlist_pause() Pause the current stream"},764 { "playlist_isplaying", vlcInstance_playlist_isplaying, METH_VARARGS,765 "playlist_isplaying() -> int Return True if the playlist if playing"},766 { "playlist_items_count", vlcInstance_playlist_items_count, METH_VARARGS,767 "playlist_items_count() -> int Return the number of items in the playlist"},768 { "playlist_stop", vlcInstance_playlist_stop, METH_VARARGS,769 "playlist_stop() Stop the current stream"},770 { "playlist_next", vlcInstance_playlist_next, METH_VARARGS,771 "playlist_next() Play the next item"},772 { "playlist_prev", vlcInstance_playlist_prev, METH_VARARGS,773 "playlist_prev() Play the previous item"},774 { "playlist_clear", vlcInstance_playlist_clear, METH_VARARGS,775 "playlist_clear() Clear the playlist"},776 { "playlist_add", vlcInstance_playlist_add, METH_VARARGS,777 "playlist_add(mrl=str, name=str, options=list) -> int Add a new item to the playlist. options is a list of strings."},778 { "playlist_delete_item", vlcInstance_playlist_delete_item, METH_VARARGS,779 "playlist_delete_item(id=int) Delete the given item"},780 { "playlist_get_media_player", vlcInstance_playlist_get_media_player, METH_VARARGS,781 "playlist_get_media_player() -> object Return the current media instance"},782 567 { "video_set_parent", vlcInstance_video_set_parent, METH_VARARGS, 783 568 "video_set_parent(xid=int) Set the parent xid/HWND/CGrafPort"}, 784 { "video_get_parent", vlcInstance_video_get_parent, METH_ VARARGS,785 "video_get_parent( xid=int)Get the parent xid/HWND/CGrafPort"},569 { "video_get_parent", vlcInstance_video_get_parent, METH_NOARGS, 570 "video_get_parent() -> int Get the parent xid/HWND/CGrafPort"}, 786 571 { "video_set_size", vlcInstance_video_set_size, METH_VARARGS, 787 572 "video_set_size(width=int, height=int) Set the video width and height"}, 788 { "audio_toggle_mute", vlcInstance_audio_toggle_mute, METH_ VARARGS,573 { "audio_toggle_mute", vlcInstance_audio_toggle_mute, METH_NOARGS, 789 574 "audio_toggle_mute() Toggle the mute state"}, 790 { "audio_get_mute", vlcInstance_audio_get_mute, METH_ VARARGS,575 { "audio_get_mute", vlcInstance_audio_get_mute, METH_NOARGS, 791 576 "audio_get_mute() -> int Get the mute state"}, 792 577 { "audio_set_mute", vlcInstance_audio_set_mute, METH_VARARGS, 793 578 "audio_set_mute(state=int) Set the mute state"}, 794 { "audio_get_volume", vlcInstance_audio_get_volume, METH_ VARARGS,579 { "audio_get_volume", vlcInstance_audio_get_volume, METH_NOARGS, 795 580 "audio_get_volume() -> int Get the audio volume"}, 796 581 { "audio_set_volume", vlcInstance_audio_set_volume, METH_VARARGS, 797 582 "audio_set_volume(volume=int) Set the audio volume"}, 798 { "audio_get_channel", vlcInstance_audio_get_channel, METH_ VARARGS,583 { "audio_get_channel", vlcInstance_audio_get_channel, METH_NOARGS, 799 584 "audio_get_channel() -> int Get current audio channel" }, 800 585 { "audio_set_channel", vlcInstance_audio_set_channel, METH_VARARGS, … … 802 587 803 588 { "media_new", vlcInstance_media_new, METH_VARARGS, 804 "media_new(str) -> object Create a media descriptor with the given mrl."}, 589 "media_new(str) -> object Create a media object with the given mrl."}, 590 591 { "mediaplayer_new", vlcInstance_new_media_player, METH_NOARGS, 592 "mediaplayer_new() -> object Create a media player."}, 805 593 806 594 { "vlm_add_broadcast", vlcInstance_vlm_add_broadcast, METH_VARARGS | METH_KEYWORDS, … … 857 645 0, /*tp_as_buffer*/ 858 646 Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/ 859 "VLC Instance(args) \n\nNote: if args is specified, the first arg is interpreted as an executable name to get the directory of the VLC plugins.", /* tp_doc */647 "VLC Instance(args)", /* tp_doc */ 860 648 0, /* tp_traverse */ 861 649 0, /* tp_clear */ bindings/python/vlc_media.c
r66fc001 r241b228 1 1 /***************************************************************************** 2 * vlc_media descriptor.c: vlc.MediaDescriptorbinding2 * vlc_media.c: vlc.Media binding 3 3 ***************************************************************************** 4 4 * Copyright (C) 2007 the VideoLAN team … … 24 24 25 25 /*********************************************************************** 26 * vlc.Media Descriptor26 * vlc.Media 27 27 ***********************************************************************/ 28 28 29 static PyObject * 30 vlcMedia_new( PyTypeObject *type, PyObject *args, PyObject *kwds ) 31 { 32 fprintf(stderr, "vlcMedia_new called\n"); 33 PyErr_SetString( PyExc_TypeError, "vlc.Media can be instanciated by itself. You should use vlc.Instance().media_new(mrl)." ); 34 return NULL; 35 } 36 29 37 static void 30 vlcMedia Descriptor_dealloc( PyObject *self )31 { 32 libvlc_media_release( LIBVLC_MEDIA DESCRIPTOR->p_md);38 vlcMedia_dealloc( PyObject *self ) 39 { 40 libvlc_media_release( LIBVLC_MEDIA->p_media ); 33 41 PyObject_DEL( self ); 34 42 } 35 43 36 44 static PyObject * 37 vlcMedia Descriptor_add_option( PyObject *self, PyObject *args )45 vlcMedia_add_option( PyObject *self, PyObject *args ) 38 46 { 39 47 libvlc_exception_t ex; … … 44 52 45 53 LIBVLC_TRY; 46 libvlc_media_add_option( LIBVLC_MEDIA DESCRIPTOR->p_md, psz_options, &ex);54 libvlc_media_add_option( LIBVLC_MEDIA->p_media, psz_options, &ex); 47 55 LIBVLC_EXCEPT; 48 56 Py_INCREF( Py_None ); … … 51 59 52 60 static PyObject * 53 vlcMedia Descriptor_get_mrl( PyObject *self, PyObject *args )61 vlcMedia_get_mrl( PyObject *self, PyObject *args ) 54 62 { 55 63 libvlc_exception_t ex; … … 58 66 59 67 LIBVLC_TRY; 60 psz_mrl = libvlc_media_get_mrl( LIBVLC_MEDIA DESCRIPTOR->p_md, &ex);68 psz_mrl = libvlc_media_get_mrl( LIBVLC_MEDIA->p_media, &ex); 61 69 LIBVLC_EXCEPT; 62 70 … … 67 75 68 76 static PyObject * 69 vlcMedia Descriptor_get_state( PyObject *self, PyObject *args )77 vlcMedia_get_state( PyObject *self, PyObject *args ) 70 78 { 71 79 libvlc_exception_t ex; … … 73 81 74 82 LIBVLC_TRY; 75 i_state = libvlc_media_get_state( LIBVLC_MEDIA DESCRIPTOR->p_md, &ex);83 i_state = libvlc_media_get_state( LIBVLC_MEDIA->p_media, &ex); 76 84 LIBVLC_EXCEPT; 77 85 /* FIXME: return the defined state constant */ … … 80 88 81 89 static PyObject * 82 vlcMediaDescriptor_add_tag( PyObject *self, PyObject *args ) 83 { 84 libvlc_exception_t ex; 85 char* psz_key; 86 char* psz_tag; 87 88 if( !PyArg_ParseTuple( args, "ss", &psz_key, &psz_tag ) ) 89 return NULL; 90 91 LIBVLC_TRY; 92 libvlc_media_add_tag( LIBVLC_MEDIADESCRIPTOR->p_md, psz_key, ( libvlc_tag_t )psz_tag, &ex ); 93 LIBVLC_EXCEPT; 94 Py_INCREF( Py_None ); 95 return Py_None; 96 } 97 98 static PyObject * 99 vlcMediaDescriptor_remove_tag( PyObject *self, PyObject *args ) 100 { 101 libvlc_exception_t ex; 102 char* psz_key; 103 char* psz_tag; 104 105 if( !PyArg_ParseTuple( args, "ss", &psz_key, &psz_tag ) ) 106 return NULL; 107 108 LIBVLC_TRY; 109 libvlc_media_remove_tag( LIBVLC_MEDIADESCRIPTOR->p_md, psz_key, ( libvlc_tag_t )psz_tag, &ex ); 110 LIBVLC_EXCEPT; 111 Py_INCREF( Py_None ); 112 return Py_None; 113 } 114 115 static PyObject * 116 vlcMediaDescriptor_tags_count_for_key( PyObject *self, PyObject *args ) 117 { 118 libvlc_exception_t ex; 119 char* psz_tag; 120 int i_ret; 121 122 if( !PyArg_ParseTuple( args, "s", &psz_tag ) ) 123 return NULL; 124 125 LIBVLC_TRY; 126 i_ret=libvlc_media_tags_count_for_key( LIBVLC_MEDIADESCRIPTOR->p_md, psz_tag, &ex ); 127 LIBVLC_EXCEPT; 128 return Py_BuildValue( "i", i_ret ); 129 } 130 131 static PyObject * 132 vlcMediaDescriptor_get_duration( PyObject *self, PyObject *args ) 90 vlcMedia_get_duration( PyObject *self, PyObject *args ) 133 91 { 134 92 libvlc_exception_t ex; 135 93 libvlc_time_t i_ret; 136 94 LIBVLC_TRY; 137 i_ret = libvlc_media_get_duration( LIBVLC_MEDIA DESCRIPTOR->p_md, &ex);95 i_ret = libvlc_media_get_duration( LIBVLC_MEDIA->p_media, &ex); 138 96 LIBVLC_EXCEPT; 139 97 return Py_BuildValue( "L", i_ret ); … … 141 99 142 100 static PyObject * 143 vlcMedia Descriptor_media_player_new( PyObject *self, PyObject *args )144 { 145 libvlc_exception_t ex; 146 libvlc_media_player_t *p_m i;147 vlcMedia Instance*p_ret;148 149 LIBVLC_TRY; 150 p_m i = libvlc_media_player_new_from_media( LIBVLC_MEDIADESCRIPTOR->p_md, &ex);151 LIBVLC_EXCEPT; 152 153 p_ret = PyObject_New( vlcMedia Instance, &vlcMediaInstance_Type );154 p_ret->p_m i = p_mi;101 vlcMedia_media_player_new( PyObject *self, PyObject *args ) 102 { 103 libvlc_exception_t ex; 104 libvlc_media_player_t *p_mp; 105 vlcMediaPlayer *p_ret; 106 107 LIBVLC_TRY; 108 p_mp = libvlc_media_player_new_from_media( LIBVLC_MEDIA->p_media, &ex); 109 LIBVLC_EXCEPT; 110 111 p_ret = PyObject_New( vlcMediaPlayer, &vlcMediaPlayer_Type ); 112 p_ret->p_mp = p_mp; 155 113 Py_INCREF( p_ret ); /* Ah bon ? */ 156 114 return ( PyObject * )p_ret; … … 158 116 159 117 static PyObject * 160 vlcMedia Descriptor_is_preparsed( PyObject *self, PyObject *args )118 vlcMedia_is_preparsed( PyObject *self, PyObject *args ) 161 119 { 162 120 libvlc_exception_t ex; 163 121 int i_ret; 164 122 LIBVLC_TRY; 165 i_ret = libvlc_media_is_preparsed( LIBVLC_MEDIA DESCRIPTOR->p_md, &ex);123 i_ret = libvlc_media_is_preparsed( LIBVLC_MEDIA->p_media, &ex); 166 124 LIBVLC_EXCEPT; 167 125 return Py_BuildValue( "L", i_ret ); … … 169 127 170 128 static PyObject * 171 vlcMedia Descriptor_get_meta( PyObject *self, PyObject *args )129 vlcMedia_get_meta( PyObject *self, PyObject *args ) 172 130 { 173 131 libvlc_exception_t ex; … … 198 156 199 157 LIBVLC_TRY; 200 psz_ret = libvlc_media_get_meta( LIBVLC_MEDIA DESCRIPTOR->p_md, i_index, &ex);158 psz_ret = libvlc_media_get_meta( LIBVLC_MEDIA->p_media, i_index, &ex); 201 159 LIBVLC_EXCEPT; 202 160 … … 206 164 } 207 165 208 static PyMethodDef vlcMedia Descriptor_methods[] =209 { 210 { "add_option", vlcMedia Descriptor_add_option, METH_VARARGS,211 "add_option(str) Add an option to the media descriptor." },212 { "get_mrl", vlcMedia Descriptor_get_mrl, METH_VARARGS,166 static PyMethodDef vlcMedia_methods[] = 167 { 168 { "add_option", vlcMedia_add_option, METH_VARARGS, 169 "add_option(str) Add an option to the media." }, 170 { "get_mrl", vlcMedia_get_mrl, METH_VARARGS, 213 171 "get_mrl() -> str" }, 214 { "get_state", vlcMedia Descriptor_get_state, METH_VARARGS,172 { "get_state", vlcMedia_get_state, METH_VARARGS, 215 173 "get_state() -> int" }, 216 { "add_tag", vlcMediaDescriptor_add_tag, METH_VARARGS, 217 "add_tag(key=str, tag=str) Add tag to the media descriptor." }, 218 { "remove_tag", vlcMediaDescriptor_remove_tag, METH_VARARGS, 219 "remove_tag(key=str, tag=str) Remove tag from the media descriptor." }, 220 { "tags_count_for_key", vlcMediaDescriptor_tags_count_for_key, METH_VARARGS, 221 "tags_count_for_key(str) ." }, 222 { "get_duration", vlcMediaDescriptor_get_duration, METH_VARARGS, 174 { "get_duration", vlcMedia_get_duration, METH_VARARGS, 223 175 "get_duration() -> int" }, 224 { "media instance_new", vlcMediaDescriptor_media_player_new, METH_VARARGS,225 "media instance_new() -> vlc.MediaInstance Create a Media Instance object from a Media Descriptor" },226 { "is_preparsed", vlcMedia Descriptor_is_preparsed, METH_VARARGS,176 { "mediaplayer_new", vlcMedia_media_player_new, METH_VARARGS, 177 "mediaplayer_new() -> vlc.MediaPlayer Create a MediaPlayer object from a Media" }, 178 { "is_preparsed", vlcMedia_is_preparsed, METH_VARARGS, 227 179 "is_preparsed() -> int" }, 228 { "get_meta", vlcMedia Descriptor_get_meta, METH_VARARGS,229 "get_meta(str) -> str Read the meta of the media descriptor." },180 { "get_meta", vlcMedia_get_meta, METH_VARARGS, 181 "get_meta(str) -> str Read the meta of the media." }, 230 182 231 183 { NULL } /* Sentinel */ 232 184 }; 233 185 234 static PyTypeObject vlcMedia Descriptor_Type =186 static PyTypeObject vlcMedia_Type = 235 187 { 236 188 PyObject_HEAD_INIT( NULL ) 237 189 0, /*ob_size*/ 238 "vlc.Media Descriptor", /*tp_name*/239 sizeof( vlcMedia Descriptor_Type ), /*tp_basicsize*/190 "vlc.Media", /*tp_name*/ 191 sizeof( vlcMedia_Type ), /*tp_basicsize*/ 240 192 0, /*tp_itemsize*/ 241 vlcMedia Descriptor_dealloc, /*tp_dealloc*/193 vlcMedia_dealloc, /*tp_dealloc*/ 242 194 0, /*tp_print*/ 243 195 0, /*tp_getattr*/ … … 255 207 0, /*tp_as_buffer*/ 256 208 Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/ 257 "vlc.Media Descriptorobject.", /* tp_doc */209 "vlc.Media object.", /* tp_doc */ 258 210 0, /* tp_traverse */ 259 211 0, /* tp_clear */ … … 262 214 0, /* tp_iter */ 263 215 0, /* tp_iternext */ 264 vlcMedia Descriptor_methods, /* tp_methods */216 vlcMedia_methods, /* tp_methods */ 265 217 0, /* tp_members */ 266 218 0, /* tp_getset */ … … 272 224 0, /* tp_init */ 273 225 0, /* tp_alloc */ 274 0,/* tp_new */226 vlcMedia_new, /* tp_new */ 275 227 }; 276 228 bindings/python/vlc_mediacontrol.c
r6ee1e19 r241b228 41 41 self = PyObject_New( MediaControl, &MediaControl_Type ); 42 42 43 fprintf (stderr, "Instanciating mediacontrol\n"); 43 44 if( PyArg_ParseTuple( args, "O", &py_param ) ) 44 45 { … … 109 110 MediaControl_dealloc( PyObject *self ) 110 111 { 112 fprintf(stderr, "MC dealloc\n"); 111 113 Py_DECREF( SELF->vlc_instance ); 112 114 PyObject_DEL( self ); … … 119 121 120 122 p_ret = SELF->vlc_instance; 123 Py_INCREF( p_ret ); 124 return ( PyObject * )p_ret; 125 } 126 127 static PyObject * 128 MediaControl_get_mediaplayer( PyObject *self, PyObject *args ) 129 { 130 vlcMediaPlayer *p_ret; 131 132 p_ret = PyObject_New( vlcMediaPlayer, &vlcMediaPlayer_Type ); 133 p_ret->p_mp = mediacontrol_get_media_player( SELF->mc ); 121 134 Py_INCREF( p_ret ); 122 135 return ( PyObject * )p_ret; … … 216 229 MediaControl_pause( PyObject *self, PyObject *args ) 217 230 { 218 mediacontrol_Position *a_position;219 231 mediacontrol_Exception *exception = NULL; 220 PyObject *py_pos; 221 222 if( !PyArg_ParseTuple( args, "O", &py_pos ) ) 223 { 224 /* No argument. Use a default 0 value. */ 225 PyErr_Clear( ); 226 py_pos = NULL; 227 } 228 a_position = position_py_to_c( py_pos ); 229 if( !a_position ) 230 return NULL; 231 232 Py_BEGIN_ALLOW_THREADS 233 MC_TRY; 234 mediacontrol_pause( SELF->mc, a_position, exception ); 235 free( a_position ); 232 233 Py_BEGIN_ALLOW_THREADS 234 MC_TRY; 235 mediacontrol_pause( SELF->mc, exception ); 236 236 Py_END_ALLOW_THREADS 237 237 MC_EXCEPT; … … 244 244 MediaControl_resume( PyObject *self, PyObject *args ) 245 245 { 246 mediacontrol_Position *a_position;247 246 mediacontrol_Exception *exception = NULL; 248 PyObject *py_pos; 249 250 if( !PyArg_ParseTuple( args, "O", &py_pos ) ) 251 { 252 /* No argument. Use a default 0 value. */ 253 PyErr_Clear( ); 254 py_pos = NULL; 255 } 256 a_position = position_py_to_c( py_pos ); 257 if( !a_position ) 258 return NULL; 259 260 Py_BEGIN_ALLOW_THREADS 261 MC_TRY; 262 mediacontrol_start( SELF->mc, a_position, exception ); 263 free( a_position ); 247 248 Py_BEGIN_ALLOW_THREADS 249 MC_TRY; 250 mediacontrol_resume( SELF->mc, exception ); 264 251 Py_END_ALLOW_THREADS 265 252 MC_EXCEPT; … … 272 259 MediaControl_stop( PyObject *self, PyObject *args ) 273 260 { 274 mediacontrol_Position *a_position;275 261 mediacontrol_Exception *exception = NULL; 276 PyObject *py_pos; 277 278 if( !PyArg_ParseTuple( args, "O", &py_pos ) ) 279 { 280 /* No argument. Use a default 0 value. */ 281 PyErr_Clear( ); 282 py_pos = NULL; 283 } 284 a_position = position_py_to_c( py_pos ); 285 if( !a_position ) 286 return NULL; 287 288 Py_BEGIN_ALLOW_THREADS 289 MC_TRY; 290 mediacontrol_stop( SELF->mc, a_position, exception ); 291 free( a_position ); 262 263 Py_BEGIN_ALLOW_THREADS 264 MC_TRY; 265 mediacontrol_stop( SELF->mc, exception ); 292 266 Py_END_ALLOW_THREADS 293 267 MC_EXCEPT; … … 306 280 307 281 static PyObject * 308 MediaControl_ playlist_add_item( PyObject *self, PyObject *args )282 MediaControl_set_mrl( PyObject *self, PyObject *args ) 309 283 { 310 284 char *psz_file; … … 316 290 Py_BEGIN_ALLOW_THREADS 317 291 MC_TRY; 318 mediacontrol_playlist_add_item( SELF->mc, psz_file, exception ); 319 Py_END_ALLOW_THREADS 320 MC_EXCEPT; 321 322 Py_INCREF( Py_None ); 323 return Py_None; 324 } 325 326 static PyObject * 327 MediaControl_playlist_clear( PyObject *self, PyObject *args ) 328 { 292 mediacontrol_set_mrl( SELF->mc, psz_file, exception ); 293 Py_END_ALLOW_THREADS 294 MC_EXCEPT; 295 296 Py_INCREF( Py_None ); 297 return Py_None; 298 } 299 300 static PyObject * 301 MediaControl_get_mrl( PyObject *self, PyObject *args ) 302 { 303 PyObject *py_retval; 304 char* psz_file; 329 305 mediacontrol_Exception *exception = NULL; 330 306 331 307 Py_BEGIN_ALLOW_THREADS 332 308 MC_TRY; 333 mediacontrol_playlist_clear( SELF->mc, exception ); 334 Py_END_ALLOW_THREADS 335 MC_EXCEPT; 336 337 Py_INCREF( Py_None ); 338 return Py_None; 339 } 340 341 static PyObject * 342 MediaControl_playlist_get_list( PyObject *self, PyObject *args ) 343 { 344 PyObject *py_retval; 345 mediacontrol_Exception *exception = NULL; 346 mediacontrol_PlaylistSeq* pl; 347 Py_ssize_t i_index; 348 Py_ssize_t i_playlist_size; 349 350 Py_BEGIN_ALLOW_THREADS 351 MC_TRY; 352 pl = mediacontrol_playlist_get_list( SELF->mc, exception ); 353 Py_END_ALLOW_THREADS 354 MC_EXCEPT; 355 356 i_playlist_size = pl->size; 357 358 py_retval = PyList_New( i_playlist_size ); 359 360 for ( i_index = 0 ; i_index < i_playlist_size ; i_index++ ) 361 { 362 PyList_SetItem( py_retval, i_index, 363 Py_BuildValue( "s", pl->data[i_index] ) ); 364 } 365 mediacontrol_PlaylistSeq__free( pl ); 366 309 psz_file = mediacontrol_get_mrl( SELF->mc, exception ); 310 Py_END_ALLOW_THREADS 311 MC_EXCEPT; 312 313 py_retval = Py_BuildValue( "s", psz_file ); 314 free( psz_file ); 367 315 return py_retval; 368 316 } 369 370 317 371 318 static PyObject * … … 604 551 { 605 552 { "get_vlc_instance", MediaControl_get_vlc_instance, METH_VARARGS, 606 "get_vlc_instance( ) -> Instance Get matching vlc.Instance." }, 553 "get_vlc_instance( ) -> Instance Get embedded vlc.Instance." }, 554 { "get_mediaplayer", MediaControl_get_mediaplayer, METH_VARARGS, 555 "get_mediaplayer( ) -> MediaPlayer Get embedded vlc.MediaPlayer." }, 607 556 { "get_media_position", MediaControl_get_media_position, METH_VARARGS, 608 557 "get_media_position( origin, key ) -> Position Get current media position." }, … … 619 568 { "exit", MediaControl_exit, METH_VARARGS, 620 569 "exit( ) Exit the player" }, 621 { "playlist_add_item", MediaControl_playlist_add_item, METH_VARARGS, 622 "playlist_add_item( str ) Add an item to the playlist" }, 623 { "playlist_get_list", MediaControl_playlist_get_list, METH_VARARGS, 624 "playlist_get_list( ) -> list Get the contents of the playlist" }, 625 { "playlist_clear", MediaControl_playlist_clear, METH_VARARGS, 626 "clear( ) Clear the playlist." }, 570 { "set_mrl", MediaControl_set_mrl, METH_VARARGS, 571 "set_mrl( str ) Set the file to be played" }, 572 { "get_mrl", MediaControl_get_mrl, METH_VARARGS, 573 "get_mrl( ) -> str Get the played file" }, 627 574 { "snapshot", MediaControl_snapshot, METH_VARARGS, 628 575 "snapshot( Position ) -> dict Take a snapshot" }, bindings/python/vlc_mediaplayer.c
r66fc001 r241b228 1 1 /***************************************************************************** 2 * vlc_ input.c: vlc.Inputbinding2 * vlc_mediaplayer.c: vlc.MediaPlayer binding 3 3 ***************************************************************************** 4 4 * Copyright (C) 2006 the VideoLAN team … … 28 28 29 29 static PyObject * 30 vlcMedia Instance_get_length( PyObject *self, PyObject *args )30 vlcMediaPlayer_get_length( PyObject *self, PyObject *args ) 31 31 { 32 32 libvlc_exception_t ex; 33 33 vlc_int64_t i_ret; 34 34 LIBVLC_TRY; 35 i_ret = libvlc_media_player_get_length( LIBVLC_MEDIA INSTANCE->p_mi, &ex);35 i_ret = libvlc_media_player_get_length( LIBVLC_MEDIAPLAYER->p_mp, &ex); 36 36 LIBVLC_EXCEPT; 37 37 return Py_BuildValue( "L", i_ret ); … … 39 39 40 40 static PyObject * 41 vlcMedia Instance_get_time( PyObject *self, PyObject *args )41 vlcMediaPlayer_get_time( PyObject *self, PyObject *args ) 42 42 { 43 43 libvlc_exception_t ex; 44 44 vlc_int64_t i_ret; 45 45 LIBVLC_TRY; 46 i_ret = libvlc_media_player_get_time( LIBVLC_MEDIA INSTANCE->p_mi, &ex);46 i_ret = libvlc_media_player_get_time( LIBVLC_MEDIAPLAYER->p_mp, &ex); 47 47 LIBVLC_EXCEPT; 48 48 return Py_BuildValue( "L", i_ret ); … … 50 50 51 51 static PyObject * 52 vlcMedia Instance_set_time( PyObject *self, PyObject *args )52 vlcMediaPlayer_set_time( PyObject *self, PyObject *args ) 53 53 { 54 54 libvlc_exception_t ex; … … 59 59 60 60 LIBVLC_TRY; 61 libvlc_media_player_set_time( LIBVLC_MEDIA INSTANCE->p_mi, i_time, &ex);62 LIBVLC_EXCEPT; 63 Py_INCREF( Py_None ); 64 return Py_None; 65 } 66 67 static PyObject * 68 vlcMedia Instance_get_position( PyObject *self, PyObject *args )61 libvlc_media_player_set_time( LIBVLC_MEDIAPLAYER->p_mp, i_time, &ex); 62 LIBVLC_EXCEPT; 63 Py_INCREF( Py_None ); 64 return Py_None; 65 } 66 67 static PyObject * 68 vlcMediaPlayer_get_position( PyObject *self, PyObject *args ) 69 69 { 70 70 libvlc_exception_t ex; 71 71 float f_ret; 72 72 LIBVLC_TRY; 73 f_ret = libvlc_media_player_get_position( LIBVLC_MEDIA INSTANCE->p_mi, &ex);73 f_ret = libvlc_media_player_get_position( LIBVLC_MEDIAPLAYER->p_mp, &ex); 74 74 LIBVLC_EXCEPT; 75 75 return Py_BuildValue( "f", f_ret ); … … 77 77 78 78 static PyObject * 79 vlcMedia Instance_set_position( PyObject *self, PyObject *args )79 vlcMediaPlayer_set_position( PyObject *self, PyObject *args ) 80 80 { 81 81 libvlc_exception_t ex; … … 86 86 87 87 LIBVLC_TRY; 88 libvlc_media_player_set_position( LIBVLC_MEDIA INSTANCE->p_mi, f_pos, &ex);89 LIBVLC_EXCEPT; 90 Py_INCREF( Py_None ); 91 return Py_None; 92 } 93 94 static PyObject * 95 vlcMedia Instance_will_play( PyObject *self, PyObject *args )96 { 97 libvlc_exception_t ex; 98 int i_ret; 99 LIBVLC_TRY; 100 i_ret = libvlc_media_player_will_play( LIBVLC_MEDIA INSTANCE->p_mi, &ex);101 LIBVLC_EXCEPT; 102 return Py_BuildValue( "i", i_ret ); 103 } 104 105 static PyObject * 106 vlcMedia Instance_get_rate( PyObject *self, PyObject *args )88 libvlc_media_player_set_position( LIBVLC_MEDIAPLAYER->p_mp, f_pos, &ex); 89 LIBVLC_EXCEPT; 90 Py_INCREF( Py_None ); 91 return Py_None; 92 } 93 94 static PyObject * 95 vlcMediaPlayer_will_play( PyObject *self, PyObject *args ) 96 { 97 libvlc_exception_t ex; 98 int i_ret; 99 LIBVLC_TRY; 100 i_ret = libvlc_media_player_will_play( LIBVLC_MEDIAPLAYER->p_mp, &ex); 101 LIBVLC_EXCEPT; 102 return Py_BuildValue( "i", i_ret ); 103 } 104 105 static PyObject * 106 vlcMediaPlayer_get_rate( PyObject *self, PyObject *args ) 107 107 { 108 108 libvlc_exception_t ex; 109 109 float f_ret; 110 110 LIBVLC_TRY; 111 f_ret = libvlc_media_player_get_rate( LIBVLC_MEDIA INSTANCE->p_mi, &ex);111 f_ret = libvlc_media_player_get_rate( LIBVLC_MEDIAPLAYER->p_mp, &ex); 112 112 LIBVLC_EXCEPT; 113 113 return Py_BuildValue( "f", f_ret ); … … 115 115 116 116 static PyObject * 117 vlcMedia Instance_set_rate( PyObject *self, PyObject *args )117 vlcMediaPlayer_set_rate( PyObject *self, PyObject *args ) 118 118 { 119 119 libvlc_exception_t ex; … … 124 124 125 125 LIBVLC_TRY; 126 libvlc_media_player_set_rate( LIBVLC_MEDIA INSTANCE->p_mi, f_rate, &ex);127 LIBVLC_EXCEPT; 128 Py_INCREF( Py_None ); 129 return Py_None; 130 } 131 132 static PyObject * 133 vlcMedia Instance_get_state( PyObject *self, PyObject *args )134 { 135 libvlc_exception_t ex; 136 int i_ret; 137 LIBVLC_TRY; 138 i_ret = libvlc_media_player_get_state( LIBVLC_MEDIA INSTANCE->p_mi, &ex);139 LIBVLC_EXCEPT; 140 return Py_BuildValue( "i", i_ret ); 141 } 142 143 static PyObject * 144 vlcMedia Instance_has_vout( PyObject *self, PyObject *args )145 { 146 libvlc_exception_t ex; 147 int i_ret; 148 LIBVLC_TRY; 149 i_ret = libvlc_media_player_has_vout( LIBVLC_MEDIA INSTANCE->p_mi, &ex);150 LIBVLC_EXCEPT; 151 return Py_BuildValue( "i", i_ret ); 152 } 153 154 static PyObject * 155 vlcMedia Instance_get_fps( PyObject *self, PyObject *args )126 libvlc_media_player_set_rate( LIBVLC_MEDIAPLAYER->p_mp, f_rate, &ex); 127 LIBVLC_EXCEPT; 128 Py_INCREF( Py_None ); 129 return Py_None; 130 } 131 132 static PyObject * 133 vlcMediaPlayer_get_state( PyObject *self, PyObject *args ) 134 { 135 libvlc_exception_t ex; 136 int i_ret; 137 LIBVLC_TRY; 138 i_ret = libvlc_media_player_get_state( LIBVLC_MEDIAPLAYER->p_mp, &ex); 139 LIBVLC_EXCEPT; 140 return Py_BuildValue( "i", i_ret ); 141 } 142 143 static PyObject * 144 vlcMediaPlayer_has_vout( PyObject *self, PyObject *args ) 145 { 146 libvlc_exception_t ex; 147 int i_ret; 148 LIBVLC_TRY; 149 i_ret = libvlc_media_player_has_vout( LIBVLC_MEDIAPLAYER->p_mp, &ex); 150 LIBVLC_EXCEPT; 151 return Py_BuildValue( "i", i_ret ); 152 } 153 154 static PyObject * 155 vlcMediaPlayer_get_fps( PyObject *self, PyObject *args ) 156 156 { 157 157 libvlc_exception_t ex; 158 158 float f_ret; 159 159 LIBVLC_TRY; 160 f_ret = libvlc_media_player_get_fps( LIBVLC_MEDIA INSTANCE->p_mi, &ex);160 f_ret = libvlc_media_player_get_fps( LIBVLC_MEDIAPLAYER->p_mp, &ex); 161 161 LIBVLC_EXCEPT; 162 162 return Py_BuildValue( "f", f_ret ); … … 164 164 165 165 static PyObject * 166 vlcMedia Instance_audio_get_track( PyObject *self, PyObject *args )167 { 168 libvlc_exception_t ex; 169 int i_ret; 170 171 LIBVLC_TRY; 172 i_ret = libvlc_audio_get_track( LIBVLC_MEDIA INSTANCE->p_mi, &ex );173 LIBVLC_EXCEPT; 174 return Py_BuildValue( "i", i_ret ); 175 } 176 177 static PyObject * 178 vlcMedia Instance_audio_set_track( PyObject *self, PyObject *args )166 vlcMediaPlayer_audio_get_track( PyObject *self, PyObject *args ) 167 {
