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
7d1e5fe7
Commit
7d1e5fe7
authored
Aug 23, 2009
by
Rémi Denis-Courmont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Use VLC object for meta writer and factor code
parent
62bd7af8
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
55 additions
and
65 deletions
+55
-65
include/vlc_common.h
include/vlc_common.h
+1
-2
include/vlc_meta.h
include/vlc_meta.h
+5
-2
modules/gui/macosx/playlistinfo.m
modules/gui/macosx/playlistinfo.m
+2
-29
modules/gui/qt4/components/info_panels.cpp
modules/gui/qt4/components/info_panels.cpp
+2
-30
modules/meta_engine/taglib.cpp
modules/meta_engine/taglib.cpp
+1
-2
src/input/meta.c
src/input/meta.c
+43
-0
src/libvlccore.sym
src/libvlccore.sym
+1
-0
No files found.
include/vlc_common.h
View file @
7d1e5fe7
...
...
@@ -342,9 +342,8 @@ typedef struct osd_menu_state_t osd_menu_state_t;
typedef
struct
vlm_t
vlm_t
;
typedef
struct
vlm_message_t
vlm_message_t
;
/*
divers
*/
/*
misc
*/
typedef
struct
vlc_meta_t
vlc_meta_t
;
typedef
struct
meta_export_t
meta_export_t
;
/* Stats */
typedef
struct
counter_t
counter_t
;
...
...
include/vlc_meta.h
View file @
7d1e5fe7
...
...
@@ -195,10 +195,13 @@ enum {
ALBUM_ART_ALL
};
struct
meta_export_t
typedef
struct
meta_export_t
{
VLC_COMMON_MEMBERS
input_item_t
*
p_item
;
const
char
*
psz_file
;
};
}
meta_export_t
;
VLC_EXPORT
(
int
,
input_item_WriteMeta
,
(
vlc_object_t
*
,
input_item_t
*
)
);
#endif
modules/gui/macosx/playlistinfo.m
View file @
7d1e5fe7
...
...
@@ -368,29 +368,8 @@ static VLCInfo *_o_sharedInstance = nil;
-
(
IBAction
)
saveMetaData
:(
id
)
sender
{
playlist_t
*
p_playlist
=
pl_Hold
(
VLCIntf
);
if
(
!
p_item
)
goto
error
;
meta_export_t
p_export
;
p_export
.
p_item
=
p_item
;
/* we can write meta data only in a file */
vlc_mutex_lock
(
&
p_item
->
lock
);
int
i_type
=
p_item
->
i_type
;
vlc_mutex_unlock
(
&
p_item
->
lock
);
if
(
i_type
!=
ITEM_TYPE_FILE
)
goto
error
;
char
*
psz_uri_orig
=
input_item_GetURI
(
p_item
);
char
*
psz_uri
=
psz_uri_orig
;
if
(
!
strncmp
(
psz_uri
,
"file://"
,
7
)
)
psz_uri
+=
7
;
/* strlen("file://") = 7 */
p_export
.
psz_file
=
strndup
(
psz_uri
,
PATH_MAX
);
free
(
psz_uri_orig
);
#define utf8( o_blub ) \
[[o_blub stringValue] UTF8String]
...
...
@@ -406,13 +385,8 @@ static VLCInfo *_o_sharedInstance = nil;
input_item_SetDescription
(
p_item
,
utf8
(
o_description_txt
)
);
input_item_SetLanguage
(
p_item
,
utf8
(
o_language_txt
)
);
PL_LOCK
;
p_playlist
->
p_private
=
&
p_export
;
module_t
*
p_mod
=
module_need
(
p_playlist
,
"meta writer"
,
NULL
,
false
);
if
(
p_mod
)
module_unneed
(
p_playlist
,
p_mod
);
PL_UNLOCK
;
playlist_t
*
p_playlist
=
pl_Hold
(
VLCIntf
);
input_item_WriteMeta
(
p_playlist
,
p_item
);
var_SetBool
(
p_playlist
,
"intf-change"
,
true
);
[
self
updatePanelWithItem
:
p_item
];
...
...
@@ -422,7 +396,6 @@ static VLCInfo *_o_sharedInstance = nil;
return
;
error:
pl_Release
(
VLCIntf
);
NSRunAlertPanel
(
_NS
(
"Error while saving meta"
),
_NS
(
"VLC was unable to save the meta data."
),
_NS
(
"OK"
),
nil
,
nil
);
...
...
modules/gui/qt4/components/info_panels.cpp
View file @
7d1e5fe7
...
...
@@ -249,31 +249,9 @@ void MetaPanel::update( input_item_t *p_item )
**/
void
MetaPanel
::
saveMeta
()
{
playlist_t
*
p_playlist
;
meta_export_t
p_export
;
p_export
.
p_item
=
p_input
;
if
(
p_input
==
NULL
)
return
;
/* we can write meta data only in a file */
vlc_mutex_lock
(
&
p_input
->
lock
);
int
i_type
=
p_input
->
i_type
;
vlc_mutex_unlock
(
&
p_input
->
lock
);
if
(
i_type
==
ITEM_TYPE_FILE
)
{
char
*
psz_uri_orig
=
input_item_GetURI
(
p_input
);
char
*
psz_uri
=
psz_uri_orig
;
if
(
!
strncmp
(
psz_uri
,
"file://"
,
7
)
)
psz_uri
+=
7
;
/* strlen("file://") = 7 */
p_export
.
psz_file
=
strndup
(
psz_uri
,
PATH_MAX
);
free
(
psz_uri_orig
);
}
else
return
;
/* now we read the modified meta data */
input_item_SetTitle
(
p_input
,
qtu
(
title_text
->
text
()
)
);
input_item_SetArtist
(
p_input
,
qtu
(
artist_text
->
text
()
)
);
...
...
@@ -286,14 +264,8 @@ void MetaPanel::saveMeta()
input_item_SetPublisher
(
p_input
,
qtu
(
publisher_text
->
text
()
)
);
input_item_SetDescription
(
p_input
,
qtu
(
description_text
->
text
()
)
);
p_playlist
=
pl_Hold
(
p_intf
);
PL_LOCK
;
p_playlist
->
p_private
=
&
p_export
;
module_t
*
p_mod
=
module_need
(
p_playlist
,
"meta writer"
,
NULL
,
false
);
if
(
p_mod
)
module_unneed
(
p_playlist
,
p_mod
);
PL_UNLOCK
;
playlist_t
*
p_playlist
=
pl_Hold
(
p_intf
);
input_item_WriteMeta
(
VLC_OBJECT
(
p_playlist
),
p_input
);
pl_Release
(
p_intf
);
/* Reset the status of the mode. No need to emit any signal because parent
...
...
modules/meta_engine/taglib.cpp
View file @
7d1e5fe7
...
...
@@ -514,8 +514,7 @@ static void WriteMetaToXiph( Ogg::XiphComment* tag, input_item_t* p_item )
static
int
WriteMeta
(
vlc_object_t
*
p_this
)
{
playlist_t
*
p_playlist
=
(
playlist_t
*
)
p_this
;
meta_export_t
*
p_export
=
(
meta_export_t
*
)
p_playlist
->
p_private
;
meta_export_t
*
p_export
=
(
meta_export_t
*
)
p_this
;
input_item_t
*
p_item
=
p_export
->
p_item
;
FileRef
f
;
...
...
src/input/meta.c
View file @
7d1e5fe7
...
...
@@ -28,6 +28,8 @@
#include <vlc_common.h>
#include <vlc_playlist.h>
#include <vlc_url.h>
#include "input_internal.h"
#include "../playlist/art.h"
...
...
@@ -129,3 +131,44 @@ exit:
free
(
psz_arturl
);
}
int
input_item_WriteMeta
(
vlc_object_t
*
obj
,
input_item_t
*
p_item
)
{
meta_export_t
*
p_export
=
vlc_custom_create
(
obj
,
sizeof
(
*
p_export
),
VLC_OBJECT_GENERIC
,
"meta writer"
);
if
(
p_export
==
NULL
)
return
VLC_ENOMEM
;
vlc_object_attach
(
p_export
,
obj
);
p_export
->
p_item
=
p_item
;
int
type
;
vlc_mutex_lock
(
&
p_item
->
lock
);
type
=
p_item
->
i_type
;
vlc_mutex_unlock
(
&
p_item
->
lock
);
if
(
type
!=
ITEM_TYPE_FILE
)
{
char
*
psz_uri
=
input_item_GetURI
(
p_item
);
#warning FIXME: function for URI->path conversion!
decode_URI
(
psz_uri
);
if
(
!
strncmp
(
psz_uri
,
"file://"
,
7
)
)
{
p_export
->
psz_file
=
strdup
(
psz_uri
+
7
);
free
(
psz_uri
);
}
else
#warning This should not happen!
p_export
->
psz_file
=
psz_uri
;
}
else
{
vlc_object_release
(
p_export
);
return
VLC_EGENERIC
;
}
module_t
*
p_mod
=
module_need
(
p_export
,
"meta writer"
,
NULL
,
false
);
if
(
p_mod
)
module_unneed
(
p_export
,
p_mod
);
vlc_object_release
(
p_export
);
return
VLC_SUCCESS
;
}
src/libvlccore.sym
View file @
7d1e5fe7
...
...
@@ -205,6 +205,7 @@ input_item_SetDuration
input_item_SetMeta
input_item_SetName
input_item_SetURI
input_item_WriteMeta
input_MetaTypeToLocalizedString
__input_Read
input_SplitMRL
...
...
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