Fix a crasher in exception handling

Add some playlist functions
This commit is contained in:
Clément Stenac 2006-01-29 19:04:07 +00:00
parent 2458a977ec
commit 4dfa4e6336
3 changed files with 52 additions and 3 deletions

View File

@ -4,7 +4,7 @@
* Copyright (C) 1998-2005 the VideoLAN team * Copyright (C) 1998-2005 the VideoLAN team
* $Id: vlc.h 13701 2005-12-12 17:58:56Z zorglub $ * $Id: vlc.h 13701 2005-12-12 17:58:56Z zorglub $
* *
* Authors: Cl<EFBFBD>ent Stenac <zorglub@videolan.org> * Authors: Clément Stenac <zorglub@videolan.org>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -130,6 +130,38 @@ void libvlc_destroy( libvlc_instance_t *);
void libvlc_playlist_play( libvlc_instance_t*, int, char **, void libvlc_playlist_play( libvlc_instance_t*, int, char **,
libvlc_exception_t * ); libvlc_exception_t * );
/**
* Stop playing
* \param p_instance the instance to stop
* \param p_exception an initialized exception
*/
void libvlc_playlist_stop( libvlc_instance_t *, libvlc_exception_t * );
/**
* Remove all playlist ites
* \param p_instance the instance
* \param p_exception an initialized exception
*/
void libvlc_playlist_clear( libvlc_instance_t *, libvlc_exception_t * );
/**
* Go to next playlist item
* \param p_instance the instance
* \param p_exception an initialized exception
*/
void libvlc_playlist_next( libvlc_instance_t *, libvlc_exception_t * );
/**
* Go to Previous playlist item
* \param p_instance the instance
* \param p_exception an initialized exception
*/
void libvlc_playlist_prev( libvlc_instance_t *, libvlc_exception_t * );
typedef struct libvlc_input_t libvlc_input_t; typedef struct libvlc_input_t libvlc_input_t;
///\todo document me ///\todo document me

View File

@ -54,6 +54,7 @@ inline void libvlc_exception_raise( libvlc_exception_t *p_exception,
{ {
if( p_exception == NULL ) return; if( p_exception == NULL ) return;
p_exception->b_raised = 1; p_exception->b_raised = 1;
if( psz_message )
p_exception->psz_message = strdup( psz_message ); p_exception->psz_message = strdup( psz_message );
} }

View File

@ -4,7 +4,7 @@
* Copyright (C) 2005 the VideoLAN team * Copyright (C) 2005 the VideoLAN team
* $Id$ * $Id$
* *
* Authors: Cl<EFBFBD>ent Stenac <zorglub@videolan.org> * Authors: Clément Stenac <zorglub@videolan.org>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -40,6 +40,22 @@ void libvlc_playlist_play( libvlc_instance_t *p_instance,
playlist_Play( p_instance->p_playlist ); playlist_Play( p_instance->p_playlist );
} }
void libvlc_playlist_stop( libvlc_instance_t *p_instance,
libvlc_exception_t *p_exception )
{
if( playlist_Stop( p_instance->p_playlist ) != VLC_SUCCESS )
{
libvlc_exception_raise( p_exception, "Empty playlist" );
}
}
void libvlc_playlist_clear( libvlc_instance_t *p_instance,
libvlc_exception_t *p_exception )
{
playlist_Clear( p_instance->p_playlist );
}
libvlc_input_t * libvlc_playlist_get_input( libvlc_instance_t *p_instance, libvlc_input_t * libvlc_playlist_get_input( libvlc_instance_t *p_instance,
libvlc_exception_t *p_exception ) libvlc_exception_t *p_exception )
{ {