Browse Source

Fix a crasher in exception handling

Add some playlist functions
pull/2/head
Clément Stenac 21 years ago
parent
commit
4dfa4e6336
  1. 34
      include/vlc/libvlc.h
  2. 3
      src/control/core.c
  3. 18
      src/control/playlist.c

34
include/vlc/libvlc.h

@ -4,7 +4,7 @@
* Copyright (C) 1998-2005 the VideoLAN team
* $Id: vlc.h 13701 2005-12-12 17:58:56Z zorglub $
*
* Authors: Clent Stenac <zorglub@videolan.org>
* Authors: Clément Stenac <zorglub@videolan.org>
*
* 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
@ -130,6 +130,38 @@ void libvlc_destroy( libvlc_instance_t *);
void libvlc_playlist_play( libvlc_instance_t*, int, char **,
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;
///\todo document me

3
src/control/core.c

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

18
src/control/playlist.c

@ -4,7 +4,7 @@
* Copyright (C) 2005 the VideoLAN team
* $Id$
*
* Authors: Clent Stenac <zorglub@videolan.org>
* Authors: Clément Stenac <zorglub@videolan.org>
*
* 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
@ -40,6 +40,22 @@ void libvlc_playlist_play( libvlc_instance_t *p_instance,
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_exception_t *p_exception )
{

Loading…
Cancel
Save