1
/*****************************************************************************
2
* m3u.c : M3U playlist export module
3
*****************************************************************************
4
* Copyright (C) 2004 VideoLAN
5
* $Id: m3u.c 7405 2004-04-21 12:13:26Z gbazin $
7
* Authors: Cl�ment Stenac <zorglub@videolan.org>
9
* This program is free software; you can redistribute it and/or modify
10
* it under the terms of the GNU General Public License as published by
11
* the Free Software Foundation; either version 2 of the License, or
12
* (at your option) any later version.
14
* This program is distributed in the hope that it will be useful,
15
* but WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
* GNU General Public License for more details.
19
* You should have received a copy of the GNU General Public License
20
* along with this program; if not, write to the Free Software
21
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
22
*****************************************************************************/
24
/*****************************************************************************
26
*****************************************************************************/
27
#include <stdlib.h> /* malloc(), free() */
32
#include <errno.h> /* ENOMEM */
34
/*****************************************************************************
36
*****************************************************************************/
37
int Export_M3U ( vlc_object_t * );
39
/*****************************************************************************
40
* Export_M3U: main export function
41
*****************************************************************************/
42
int Export_M3U( vlc_object_t *p_this )
44
playlist_t *p_playlist = (playlist_t*)p_this;
45
playlist_export_t *p_export = (playlist_export_t *)p_playlist->p_private;
48
msg_Dbg(p_playlist, "Saving using M3U format");
51
fprintf( p_export->p_file, "#EXTM3U\n" );
53
/* Go through the playlist and add items */
54
for( i = 0; i< p_playlist->i_size ; i++)
57
if( p_playlist->pp_items[i]->input.psz_name &&
58
strcmp( p_playlist->pp_items[i]->input.psz_name,
59
p_playlist->pp_items[i]->input.psz_uri ) )
62
playlist_GetInfo( p_playlist, i, _("General"), _("Author") );
64
fprintf( p_export->p_file, "#EXTINF:%i,%s,%s\n",
65
(int)(p_playlist->pp_items[i]->input.i_duration/1000000),
66
psz_author ? psz_author : "",
67
p_playlist->pp_items[i]->input.psz_name );
70
/* VLC specific options */
71
for( j = 0; j < p_playlist->pp_items[i]->input.i_options; j++ )
73
fprintf( p_export->p_file, "#EXTVLCOPT:%s\n",
74
p_playlist->pp_items[i]->input.ppsz_options[j][0] == ':' ?
75
p_playlist->pp_items[i]->input.ppsz_options[j] + 1 :
76
p_playlist->pp_items[i]->input.ppsz_options[j] );
79
fprintf( p_export->p_file, "%s\n",
80
p_playlist->pp_items[i]->input.psz_uri );