Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc
Commits
5a218411
Commit
5a218411
authored
Aug 23, 2009
by
Rémi Denis-Courmont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Make playlist_export_t a VLC object
parent
fe5240b6
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
53 additions
and
58 deletions
+53
-58
include/vlc_common.h
include/vlc_common.h
+0
-1
include/vlc_playlist.h
include/vlc_playlist.h
+4
-3
modules/misc/playlist/html.c
modules/misc/playlist/html.c
+6
-9
modules/misc/playlist/m3u.c
modules/misc/playlist/m3u.c
+5
-7
modules/misc/playlist/old.c
modules/misc/playlist/old.c
+2
-3
modules/misc/playlist/xspf.c
modules/misc/playlist/xspf.c
+1
-3
src/playlist/loadsave.c
src/playlist/loadsave.c
+35
-32
No files found.
include/vlc_common.h
View file @
5a218411
...
@@ -162,7 +162,6 @@ typedef enum {
...
@@ -162,7 +162,6 @@ typedef enum {
typedef
struct
playlist_t
playlist_t
;
typedef
struct
playlist_t
playlist_t
;
typedef
struct
playlist_item_t
playlist_item_t
;
typedef
struct
playlist_item_t
playlist_item_t
;
typedef
struct
playlist_view_t
playlist_view_t
;
typedef
struct
playlist_view_t
playlist_view_t
;
typedef
struct
playlist_export_t
playlist_export_t
;
typedef
struct
services_discovery_t
services_discovery_t
;
typedef
struct
services_discovery_t
services_discovery_t
;
typedef
struct
services_discovery_sys_t
services_discovery_sys_t
;
typedef
struct
services_discovery_sys_t
services_discovery_sys_t
;
typedef
struct
playlist_add_t
playlist_add_t
;
typedef
struct
playlist_add_t
playlist_add_t
;
...
...
include/vlc_playlist.h
View file @
5a218411
...
@@ -133,12 +133,13 @@ TYPEDEF_ARRAY(playlist_item_t*, playlist_item_array_t);
...
@@ -133,12 +133,13 @@ TYPEDEF_ARRAY(playlist_item_t*, playlist_item_array_t);
*/
*/
/** Helper structure to export to file part of the playlist */
/** Helper structure to export to file part of the playlist */
struct
playlist_export_t
typedef
struct
playlist_export_t
{
{
char
*
psz_filename
;
VLC_COMMON_MEMBERS
const
char
*
psz_filename
;
FILE
*
p_file
;
FILE
*
p_file
;
playlist_item_t
*
p_root
;
playlist_item_t
*
p_root
;
};
}
playlist_export_t
;
/** playlist item / node */
/** playlist item / node */
struct
playlist_item_t
struct
playlist_item_t
...
...
modules/misc/playlist/html.c
View file @
5a218411
...
@@ -38,13 +38,11 @@ int Export_HTML( vlc_object_t *p_this );
...
@@ -38,13 +38,11 @@ int Export_HTML( vlc_object_t *p_this );
/**
/**
* Recursiveyy follow the playlist
* Recursively follow the playlist
* @param p_playlist: the playlist
* @param p_export: the export structure
* @param p_export: the export structure
* @param p_root: the current node
* @param p_root: the current node
*/
*/
static
void
DoChildren
(
playlist_t
*
p_playlist
,
playlist_export_t
*
p_export
,
static
void
DoChildren
(
playlist_export_t
*
p_export
,
playlist_item_t
*
p_root
)
playlist_item_t
*
p_root
)
{
{
/* Go through the playlist and add items */
/* Go through the playlist and add items */
for
(
int
i
=
0
;
i
<
p_root
->
i_children
;
i
++
)
for
(
int
i
=
0
;
i
<
p_root
->
i_children
;
i
++
)
...
@@ -57,7 +55,7 @@ static void DoChildren( playlist_t *p_playlist, playlist_export_t *p_export,
...
@@ -57,7 +55,7 @@ static void DoChildren( playlist_t *p_playlist, playlist_export_t *p_export,
if
(
p_current
->
i_children
>=
0
)
if
(
p_current
->
i_children
>=
0
)
{
{
DoChildren
(
p_
playlist
,
p_
export
,
p_current
);
DoChildren
(
p_export
,
p_current
);
continue
;
continue
;
}
}
...
@@ -99,10 +97,9 @@ static void DoChildren( playlist_t *p_playlist, playlist_export_t *p_export,
...
@@ -99,10 +97,9 @@ static void DoChildren( playlist_t *p_playlist, playlist_export_t *p_export,
*/
*/
int
Export_HTML
(
vlc_object_t
*
p_this
)
int
Export_HTML
(
vlc_object_t
*
p_this
)
{
{
playlist_t
*
p_playlist
=
(
playlist_t
*
)
p_this
;
playlist_export_t
*
p_export
=
(
playlist_export_t
*
)
p_this
;
playlist_export_t
*
p_export
=
(
playlist_export_t
*
)
p_playlist
->
p_private
;
msg_Dbg
(
p_
playlis
t
,
"saving using HTML format"
);
msg_Dbg
(
p_
expor
t
,
"saving using HTML format"
);
/* Write header */
/* Write header */
fprintf
(
p_export
->
p_file
,
"<?xml version=
\"
1.0
\"
encoding=
\"
utf-8
\"
?>
\n
"
fprintf
(
p_export
->
p_file
,
"<?xml version=
\"
1.0
\"
encoding=
\"
utf-8
\"
?>
\n
"
...
@@ -134,7 +131,7 @@ int Export_HTML( vlc_object_t *p_this )
...
@@ -134,7 +131,7 @@ int Export_HTML( vlc_object_t *p_this )
" <ol>
\n
"
);
" <ol>
\n
"
);
// Call the playlist constructor
// Call the playlist constructor
DoChildren
(
p_
playlist
,
p_
export
,
p_export
->
p_root
);
DoChildren
(
p_export
,
p_export
->
p_root
);
// Print the footer
// Print the footer
fprintf
(
p_export
->
p_file
,
" </ol>
\n
"
fprintf
(
p_export
->
p_file
,
" </ol>
\n
"
...
...
modules/misc/playlist/m3u.c
View file @
5a218411
...
@@ -44,8 +44,7 @@ int Export_M3U ( vlc_object_t * );
...
@@ -44,8 +44,7 @@ int Export_M3U ( vlc_object_t * );
/*****************************************************************************
/*****************************************************************************
* Export_M3U: main export function
* Export_M3U: main export function
*****************************************************************************/
*****************************************************************************/
static
void
DoChildren
(
playlist_t
*
p_playlist
,
playlist_export_t
*
p_export
,
static
void
DoChildren
(
playlist_export_t
*
p_export
,
playlist_item_t
*
p_root
)
playlist_item_t
*
p_root
)
{
{
int
i
,
j
;
int
i
,
j
;
...
@@ -60,7 +59,7 @@ static void DoChildren( playlist_t *p_playlist, playlist_export_t *p_export,
...
@@ -60,7 +59,7 @@ static void DoChildren( playlist_t *p_playlist, playlist_export_t *p_export,
if
(
p_current
->
i_children
>=
0
)
if
(
p_current
->
i_children
>=
0
)
{
{
DoChildren
(
p_
playlist
,
p_
export
,
p_current
);
DoChildren
(
p_export
,
p_current
);
continue
;
continue
;
}
}
...
@@ -110,14 +109,13 @@ static void DoChildren( playlist_t *p_playlist, playlist_export_t *p_export,
...
@@ -110,14 +109,13 @@ static void DoChildren( playlist_t *p_playlist, playlist_export_t *p_export,
int
Export_M3U
(
vlc_object_t
*
p_this
)
int
Export_M3U
(
vlc_object_t
*
p_this
)
{
{
playlist_t
*
p_playlist
=
(
playlist_t
*
)
p_this
;
playlist_export_t
*
p_export
=
(
playlist_export_t
*
)
p_this
;
playlist_export_t
*
p_export
=
(
playlist_export_t
*
)
p_playlist
->
p_private
;
msg_Dbg
(
p_playlis
t
,
"saving using M3U format"
);
msg_Dbg
(
p_expor
t
,
"saving using M3U format"
);
/* Write header */
/* Write header */
fprintf
(
p_export
->
p_file
,
"#EXTM3U
\n
"
);
fprintf
(
p_export
->
p_file
,
"#EXTM3U
\n
"
);
DoChildren
(
p_
playlist
,
p_
export
,
p_export
->
p_root
);
DoChildren
(
p_export
,
p_export
->
p_root
);
return
VLC_SUCCESS
;
return
VLC_SUCCESS
;
}
}
modules/misc/playlist/old.c
View file @
5a218411
...
@@ -47,11 +47,10 @@ int Export_Old ( vlc_object_t * );
...
@@ -47,11 +47,10 @@ int Export_Old ( vlc_object_t * );
*****************************************************************************/
*****************************************************************************/
int
Export_Old
(
vlc_object_t
*
p_this
)
int
Export_Old
(
vlc_object_t
*
p_this
)
{
{
playlist_t
*
p_playlist
=
(
playlist_t
*
)
p_this
;
playlist_export_t
*
p_export
=
(
playlist_export_t
*
)
p_this
;
playlist_export_t
*
p_export
=
(
playlist_export_t
*
)
p_playlist
->
p_private
;
int
i
;
int
i
;
msg_Dbg
(
p_playlis
t
,
"saving using old format"
);
msg_Dbg
(
p_expor
t
,
"saving using old format"
);
/* Write header */
/* Write header */
fprintf
(
p_export
->
p_file
,
PLAYLIST_FILE_HEADER
"
\n
"
);
fprintf
(
p_export
->
p_file
,
PLAYLIST_FILE_HEADER
"
\n
"
);
...
...
modules/misc/playlist/xspf.c
View file @
5a218411
...
@@ -50,9 +50,7 @@ static void xspf_extension_item( playlist_item_t *, FILE *, int * );
...
@@ -50,9 +50,7 @@ static void xspf_extension_item( playlist_item_t *, FILE *, int * );
*/
*/
int
xspf_export_playlist
(
vlc_object_t
*
p_this
)
int
xspf_export_playlist
(
vlc_object_t
*
p_this
)
{
{
const
playlist_t
*
p_playlist
=
(
playlist_t
*
)
p_this
;
const
playlist_export_t
*
p_export
=
(
playlist_export_t
*
)
p_this
;
const
playlist_export_t
*
p_export
=
(
playlist_export_t
*
)
p_playlist
->
p_private
;
int
i
,
i_count
;
int
i
,
i_count
;
char
*
psz_temp
;
char
*
psz_temp
;
playlist_item_t
*
p_node
=
p_export
->
p_root
;
playlist_item_t
*
p_node
=
p_export
->
p_root
;
...
...
src/playlist/loadsave.c
View file @
5a218411
...
@@ -37,47 +37,50 @@
...
@@ -37,47 +37,50 @@
#include <unistd.h>
#include <unistd.h>
#include <errno.h>
#include <errno.h>
int
playlist_Export
(
playlist_t
*
p_playlist
,
const
char
*
psz_filename
,
int
playlist_Export
(
playlist_t
*
p_playlist
,
const
char
*
psz_filename
,
playlist_item_t
*
p_export_root
,
const
char
*
psz_type
)
playlist_item_t
*
p_export_root
,
const
char
*
psz_type
)
{
{
module_t
*
p_module
;
playlist_export_t
export
;
if
(
p_export_root
==
NULL
)
return
VLC_EGENERIC
;
if
(
p_export_root
==
NULL
)
return
VLC_EGENERIC
;
msg_Dbg
(
p_playlist
,
"saving %s to file %s"
,
playlist_export_t
*
p_export
=
p_export_root
->
p_input
->
psz_name
,
psz_filename
);
vlc_custom_create
(
p_playlist
,
sizeof
(
*
p_export
),
VLC_OBJECT_GENERIC
,
"playlist export"
);
/* Prepare the playlist_export_t structure */
if
(
!
p_export
)
export
.
psz_filename
=
psz_filename
?
strdup
(
psz_filename
)
:
NULL
;
return
VLC_ENOMEM
;
export
.
p_file
=
utf8_fopen
(
psz_filename
,
"wt"
);
if
(
export
.
p_file
==
NULL
)
{
msg_Err
(
p_playlist
,
"could not create playlist file %s (%m)"
,
psz_filename
);
free
(
export
.
psz_filename
);
return
VLC_EGENERIC
;
}
export
.
p_root
=
p_export_root
;
vlc_object_attach
(
p_export
,
p_playlist
);
msg_Dbg
(
p_export
,
"saving %s to file %s"
,
p_export_root
->
p_input
->
psz_name
,
psz_filename
);
playlist_Lock
(
p_playlist
);
int
ret
=
VLC_EGENERIC
;
p_playlist
->
p_private
=
(
void
*
)
&
export
;
/* And call the module ! All work is done now */
/* Prepare the playlist_export_t structure */
p_module
=
module_need
(
p_playlist
,
"playlist export"
,
psz_type
,
true
);
p_export
->
p_root
=
p_export_root
;
if
(
!
p_module
)
p_export
->
psz_filename
=
psz_filename
;
msg_Warn
(
p_playlist
,
"exporting playlist failed"
);
p_export
->
p_file
=
utf8_fopen
(
psz_filename
,
"wt"
);
if
(
p_export
->
p_file
==
NULL
)
msg_Err
(
p_export
,
"could not create playlist file %s (%m)"
,
psz_filename
);
else
else
module_unneed
(
p_playlist
,
p_module
);
{
p_playlist
->
p_private
=
NULL
;
module_t
*
p_module
;
playlist_Unlock
(
p_playlist
);
/* Clean up */
/* And call the module ! All work is done now */
fclose
(
export
.
p_file
);
playlist_Lock
(
p_playlist
);
free
(
export
.
psz_filename
);
p_module
=
module_need
(
p_export
,
"playlist export"
,
psz_type
,
true
);
playlist_Unlock
(
p_playlist
);
return
p_module
?
VLC_SUCCESS
:
VLC_ENOOBJ
;
if
(
p_module
==
NULL
)
msg_Err
(
p_playlist
,
"could not export playlist"
);
else
{
module_unneed
(
p_export
,
p_module
);
ret
=
VLC_SUCCESS
;
}
fclose
(
p_export
->
p_file
);
}
vlc_object_release
(
p_export
);
return
ret
;
}
}
int
playlist_Import
(
playlist_t
*
p_playlist
,
const
char
*
psz_file
)
int
playlist_Import
(
playlist_t
*
p_playlist
,
const
char
*
psz_file
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment