Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-gpu
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-gpu
Commits
7b3f256f
Commit
7b3f256f
authored
Aug 15, 2008
by
Pierre d'Herbemont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
codecleanup: de-static-inline a bunch of input_item functions.
parent
d11fd0d1
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
206 additions
and
166 deletions
+206
-166
include/vlc_input.h
include/vlc_input.h
+18
-166
src/input/item.c
src/input/item.c
+172
-0
src/libvlccore.sym
src/libvlccore.sym
+16
-0
No files found.
include/vlc_input.h
View file @
7b3f256f
...
...
@@ -103,52 +103,15 @@ struct input_item_t
#define ITEM_TYPE_NODE 8
#define ITEM_TYPE_NUMBER 9
static
inline
void
input_item_CopyOptions
(
input_item_t
*
p_parent
,
input_item_t
*
p_child
)
{
int
i
;
for
(
i
=
0
;
i
<
p_parent
->
i_options
;
i
++
)
{
char
*
psz_option
=
strdup
(
p_parent
->
ppsz_options
[
i
]
);
if
(
!
strcmp
(
psz_option
,
"meta-file"
)
)
{
free
(
psz_option
);
continue
;
}
p_child
->
i_options
++
;
p_child
->
ppsz_options
=
(
char
**
)
realloc
(
p_child
->
ppsz_options
,
p_child
->
i_options
*
sizeof
(
char
*
)
);
p_child
->
ppsz_options
[
p_child
->
i_options
-
1
]
=
psz_option
;
p_child
->
optflagc
++
;
p_child
->
optflagv
=
(
uint8_t
*
)
realloc
(
p_child
->
optflagv
,
p_child
->
optflagc
);
p_child
->
optflagv
[
p_child
->
optflagc
-
1
]
=
p_parent
->
optflagv
[
i
];
}
}
static
inline
void
input_item_SetName
(
input_item_t
*
p_item
,
const
char
*
psz_name
)
{
free
(
p_item
->
psz_name
);
p_item
->
psz_name
=
strdup
(
psz_name
);
}
VLC_EXPORT
(
void
,
input_item_CopyOptions
,
(
input_item_t
*
p_parent
,
input_item_t
*
p_child
)
);
VLC_EXPORT
(
void
,
input_item_SetName
,
(
input_item_t
*
p_item
,
const
char
*
psz_name
)
);
/* This won't hold the item, but can tell to interested third parties
* Like the playlist, that there is a new sub item. With this design
* It is not the input item's responsability to keep all the ref of
* the input item children. */
static
inline
void
input_item_AddSubItem
(
input_item_t
*
p_parent
,
input_item_t
*
p_child
)
{
vlc_event_t
event
;
VLC_EXPORT
(
void
,
input_item_AddSubItem
,
(
input_item_t
*
p_parent
,
input_item_t
*
p_child
)
);
p_parent
->
i_type
=
ITEM_TYPE_PLAYLIST
;
/* Notify interested third parties */
event
.
type
=
vlc_InputItemSubItemAdded
;
event
.
u
.
input_item_subitem_added
.
p_new_child
=
p_child
;
vlc_event_send
(
&
p_parent
->
event_manager
,
&
event
);
}
/* Flags handled past input_item_AddOpt() */
#define VLC_INPUT_OPTION_TRUSTED 0x2
...
...
@@ -157,136 +120,25 @@ static inline void input_item_AddSubItem( input_item_t *p_parent,
#define VLC_INPUT_OPTION_UNIQUE 0x100
VLC_EXPORT
(
int
,
input_item_AddOpt
,
(
input_item_t
*
,
const
char
*
str
,
unsigned
flags
)
);
static
inline
int
input_item_AddOption
(
input_item_t
*
item
,
const
char
*
str
)
{
return
input_item_AddOpt
(
item
,
str
,
VLC_INPUT_OPTION_TRUSTED
);
}
static
inline
int
input_item_HasErrorWhenReading
(
input_item_t
*
item
)
{
return
item
->
b_error_when_reading
;
}
VLC_EXPORT
(
int
,
input_item_AddOption
,
(
input_item_t
*
item
,
const
char
*
str
)
);
VLC_EXPORT
(
int
,
input_item_AddOption
,
(
input_item_t
*
item
,
const
char
*
str
)
);
VLC_EXPORT
(
bool
,
input_item_HasErrorWhenReading
,
(
input_item_t
*
item
)
);
VLC_EXPORT
(
void
,
input_item_SetMeta
,
(
input_item_t
*
p_i
,
vlc_meta_type_t
meta_type
,
const
char
*
psz_val
));
static
inline
bool
input_item_MetaMatch
(
input_item_t
*
p_i
,
vlc_meta_type_t
meta_type
,
const
char
*
psz
)
{
vlc_mutex_lock
(
&
p_i
->
lock
);
if
(
!
p_i
->
p_meta
)
{
vlc_mutex_unlock
(
&
p_i
->
lock
);
return
false
;
}
const
char
*
meta
=
vlc_meta_Get
(
p_i
->
p_meta
,
meta_type
);
bool
ret
=
meta
&&
strcasestr
(
meta
,
psz
);
vlc_mutex_unlock
(
&
p_i
->
lock
);
return
ret
;
}
static
inline
char
*
input_item_GetMeta
(
input_item_t
*
p_i
,
vlc_meta_type_t
meta_type
)
{
char
*
psz
=
NULL
;
vlc_mutex_lock
(
&
p_i
->
lock
);
if
(
!
p_i
->
p_meta
)
{
vlc_mutex_unlock
(
&
p_i
->
lock
);
return
NULL
;
}
if
(
vlc_meta_Get
(
p_i
->
p_meta
,
meta_type
)
)
psz
=
strdup
(
vlc_meta_Get
(
p_i
->
p_meta
,
meta_type
)
);
vlc_mutex_unlock
(
&
p_i
->
lock
);
return
psz
;
}
static
inline
char
*
input_item_GetName
(
input_item_t
*
p_i
)
{
vlc_mutex_lock
(
&
p_i
->
lock
);
char
*
psz_s
=
p_i
->
psz_name
?
strdup
(
p_i
->
psz_name
)
:
NULL
;
vlc_mutex_unlock
(
&
p_i
->
lock
);
return
psz_s
;
}
static
inline
char
*
input_item_GetURI
(
input_item_t
*
p_i
)
{
vlc_mutex_lock
(
&
p_i
->
lock
);
char
*
psz_s
=
p_i
->
psz_uri
?
strdup
(
p_i
->
psz_uri
)
:
NULL
;
vlc_mutex_unlock
(
&
p_i
->
lock
);
return
psz_s
;
}
static
inline
void
input_item_SetURI
(
input_item_t
*
p_i
,
char
*
psz_uri
)
{
vlc_mutex_lock
(
&
p_i
->
lock
);
free
(
p_i
->
psz_uri
);
p_i
->
psz_uri
=
strdup
(
psz_uri
);
vlc_mutex_unlock
(
&
p_i
->
lock
);
}
static
inline
mtime_t
input_item_GetDuration
(
input_item_t
*
p_i
)
{
vlc_mutex_lock
(
&
p_i
->
lock
);
mtime_t
i_duration
=
p_i
->
i_duration
;
vlc_mutex_unlock
(
&
p_i
->
lock
);
return
i_duration
;
}
VLC_EXPORT
(
bool
,
input_item_HasErrorWhenReading
,
(
input_item_t
*
item
)
);
static
inline
void
input_item_SetDuration
(
input_item_t
*
p_i
,
mtime_t
i_duration
)
{
bool
send_event
=
false
;
VLC_EXPORT
(
bool
,
input_item_MetaMatch
,
(
input_item_t
*
p_i
,
vlc_meta_type_t
meta_type
,
const
char
*
psz
)
);
VLC_EXPORT
(
char
*
,
input_item_GetMeta
,
(
input_item_t
*
p_i
,
vlc_meta_type_t
meta_type
)
);
VLC_EXPORT
(
char
*
,
input_item_GetName
,
(
input_item_t
*
p_i
)
);
VLC_EXPORT
(
char
*
,
input_item_GetURI
,
(
input_item_t
*
p_i
)
);
VLC_EXPORT
(
void
,
input_item_SetURI
,
(
input_item_t
*
p_i
,
char
*
psz_uri
));
VLC_EXPORT
(
mtime_t
,
input_item_GetDuration
,
(
input_item_t
*
p_i
)
);
VLC_EXPORT
(
void
,
input_item_SetDuration
,
(
input_item_t
*
p_i
,
mtime_t
i_duration
));
VLC_EXPORT
(
bool
,
input_item_IsPreparsed
,
(
input_item_t
*
p_i
));
VLC_EXPORT
(
bool
,
input_item_IsArtFetched
,
(
input_item_t
*
p_i
));
VLC_EXPORT
(
const
vlc_meta_t
*
,
input_item_GetMetaObject
,
(
input_item_t
*
p_i
));
VLC_EXPORT
(
void
,
input_item_MetaMerge
,
(
input_item_t
*
p_i
,
const
vlc_meta_t
*
p_new_meta
));
vlc_mutex_lock
(
&
p_i
->
lock
);
if
(
p_i
->
i_duration
!=
i_duration
)
{
p_i
->
i_duration
=
i_duration
;
send_event
=
true
;
}
vlc_mutex_unlock
(
&
p_i
->
lock
);
if
(
send_event
==
true
)
{
vlc_event_t
event
;
event
.
type
=
vlc_InputItemDurationChanged
;
event
.
u
.
input_item_duration_changed
.
new_duration
=
i_duration
;
vlc_event_send
(
&
p_i
->
event_manager
,
&
event
);
}
return
;
}
static
inline
bool
input_item_IsPreparsed
(
input_item_t
*
p_i
)
{
return
p_i
->
p_meta
?
p_i
->
p_meta
->
i_status
&
ITEM_PREPARSED
:
false
;
}
static
inline
bool
input_item_IsArtFetched
(
input_item_t
*
p_i
)
{
return
p_i
->
p_meta
?
p_i
->
p_meta
->
i_status
&
ITEM_ART_FETCHED
:
false
;
}
static
inline
const
vlc_meta_t
*
input_item_GetMetaObject
(
input_item_t
*
p_i
)
{
if
(
!
p_i
->
p_meta
)
p_i
->
p_meta
=
vlc_meta_New
();
return
p_i
->
p_meta
;
}
static
inline
void
input_item_MetaMerge
(
input_item_t
*
p_i
,
const
vlc_meta_t
*
p_new_meta
)
{
if
(
!
p_i
->
p_meta
)
p_i
->
p_meta
=
vlc_meta_New
();
vlc_meta_Merge
(
p_i
->
p_meta
,
p_new_meta
);
}
#define input_item_SetTitle( item, b ) input_item_SetMeta( item, vlc_meta_Title, b )
#define input_item_SetArtist( item, b ) input_item_SetMeta( item, vlc_meta_Artist, b )
...
...
src/input/item.c
View file @
7b3f256f
...
...
@@ -156,6 +156,178 @@ input_item_t *input_GetItem( input_thread_t *p_input )
return
p_input
->
p
->
input
.
p_item
;
}
void
input_item_CopyOptions
(
input_item_t
*
p_parent
,
input_item_t
*
p_child
)
{
int
i
;
for
(
i
=
0
;
i
<
p_parent
->
i_options
;
i
++
)
{
char
*
psz_option
=
strdup
(
p_parent
->
ppsz_options
[
i
]
);
if
(
!
strcmp
(
psz_option
,
"meta-file"
)
)
{
free
(
psz_option
);
continue
;
}
p_child
->
i_options
++
;
p_child
->
ppsz_options
=
(
char
**
)
realloc
(
p_child
->
ppsz_options
,
p_child
->
i_options
*
sizeof
(
char
*
)
);
p_child
->
ppsz_options
[
p_child
->
i_options
-
1
]
=
psz_option
;
p_child
->
optflagc
++
;
p_child
->
optflagv
=
(
uint8_t
*
)
realloc
(
p_child
->
optflagv
,
p_child
->
optflagc
);
p_child
->
optflagv
[
p_child
->
optflagc
-
1
]
=
p_parent
->
optflagv
[
i
];
}
}
void
input_item_SetName
(
input_item_t
*
p_item
,
const
char
*
psz_name
)
{
free
(
p_item
->
psz_name
);
p_item
->
psz_name
=
strdup
(
psz_name
);
}
/* This won't hold the item, but can tell to interested third parties
* Like the playlist, that there is a new sub item. With this design
* It is not the input item's responsability to keep all the ref of
* the input item children. */
void
input_item_AddSubItem
(
input_item_t
*
p_parent
,
input_item_t
*
p_child
)
{
vlc_event_t
event
;
p_parent
->
i_type
=
ITEM_TYPE_PLAYLIST
;
/* Notify interested third parties */
event
.
type
=
vlc_InputItemSubItemAdded
;
event
.
u
.
input_item_subitem_added
.
p_new_child
=
p_child
;
vlc_event_send
(
&
p_parent
->
event_manager
,
&
event
);
}
int
input_item_AddOption
(
input_item_t
*
item
,
const
char
*
str
)
{
return
input_item_AddOpt
(
item
,
str
,
VLC_INPUT_OPTION_TRUSTED
);
}
bool
input_item_HasErrorWhenReading
(
input_item_t
*
item
)
{
return
item
->
b_error_when_reading
;
}
bool
input_item_MetaMatch
(
input_item_t
*
p_i
,
vlc_meta_type_t
meta_type
,
const
char
*
psz
)
{
vlc_mutex_lock
(
&
p_i
->
lock
);
if
(
!
p_i
->
p_meta
)
{
vlc_mutex_unlock
(
&
p_i
->
lock
);
return
false
;
}
const
char
*
meta
=
vlc_meta_Get
(
p_i
->
p_meta
,
meta_type
);
bool
ret
=
meta
&&
strcasestr
(
meta
,
psz
);
vlc_mutex_unlock
(
&
p_i
->
lock
);
return
ret
;
}
char
*
input_item_GetMeta
(
input_item_t
*
p_i
,
vlc_meta_type_t
meta_type
)
{
char
*
psz
=
NULL
;
vlc_mutex_lock
(
&
p_i
->
lock
);
if
(
!
p_i
->
p_meta
)
{
vlc_mutex_unlock
(
&
p_i
->
lock
);
return
NULL
;
}
if
(
vlc_meta_Get
(
p_i
->
p_meta
,
meta_type
)
)
psz
=
strdup
(
vlc_meta_Get
(
p_i
->
p_meta
,
meta_type
)
);
vlc_mutex_unlock
(
&
p_i
->
lock
);
return
psz
;
}
char
*
input_item_GetName
(
input_item_t
*
p_i
)
{
vlc_mutex_lock
(
&
p_i
->
lock
);
char
*
psz_s
=
p_i
->
psz_name
?
strdup
(
p_i
->
psz_name
)
:
NULL
;
vlc_mutex_unlock
(
&
p_i
->
lock
);
return
psz_s
;
}
char
*
input_item_GetURI
(
input_item_t
*
p_i
)
{
vlc_mutex_lock
(
&
p_i
->
lock
);
char
*
psz_s
=
p_i
->
psz_uri
?
strdup
(
p_i
->
psz_uri
)
:
NULL
;
vlc_mutex_unlock
(
&
p_i
->
lock
);
return
psz_s
;
}
void
input_item_SetURI
(
input_item_t
*
p_i
,
char
*
psz_uri
)
{
vlc_mutex_lock
(
&
p_i
->
lock
);
free
(
p_i
->
psz_uri
);
p_i
->
psz_uri
=
strdup
(
psz_uri
);
vlc_mutex_unlock
(
&
p_i
->
lock
);
}
mtime_t
input_item_GetDuration
(
input_item_t
*
p_i
)
{
vlc_mutex_lock
(
&
p_i
->
lock
);
mtime_t
i_duration
=
p_i
->
i_duration
;
vlc_mutex_unlock
(
&
p_i
->
lock
);
return
i_duration
;
}
void
input_item_SetDuration
(
input_item_t
*
p_i
,
mtime_t
i_duration
)
{
bool
send_event
=
false
;
vlc_mutex_lock
(
&
p_i
->
lock
);
if
(
p_i
->
i_duration
!=
i_duration
)
{
p_i
->
i_duration
=
i_duration
;
send_event
=
true
;
}
vlc_mutex_unlock
(
&
p_i
->
lock
);
if
(
send_event
==
true
)
{
vlc_event_t
event
;
event
.
type
=
vlc_InputItemDurationChanged
;
event
.
u
.
input_item_duration_changed
.
new_duration
=
i_duration
;
vlc_event_send
(
&
p_i
->
event_manager
,
&
event
);
}
return
;
}
bool
input_item_IsPreparsed
(
input_item_t
*
p_i
)
{
return
p_i
->
p_meta
?
p_i
->
p_meta
->
i_status
&
ITEM_PREPARSED
:
false
;
}
bool
input_item_IsArtFetched
(
input_item_t
*
p_i
)
{
return
p_i
->
p_meta
?
p_i
->
p_meta
->
i_status
&
ITEM_ART_FETCHED
:
false
;
}
const
vlc_meta_t
*
input_item_GetMetaObject
(
input_item_t
*
p_i
)
{
if
(
!
p_i
->
p_meta
)
p_i
->
p_meta
=
vlc_meta_New
();
return
p_i
->
p_meta
;
}
void
input_item_MetaMerge
(
input_item_t
*
p_i
,
const
vlc_meta_t
*
p_new_meta
)
{
if
(
!
p_i
->
p_meta
)
p_i
->
p_meta
=
vlc_meta_New
();
vlc_meta_Merge
(
p_i
->
p_meta
,
p_new_meta
);
}
/**
* Get a info item from a given category in a given input item.
*
...
...
src/libvlccore.sym
View file @
7b3f256f
...
...
@@ -150,11 +150,27 @@ input_get_event_manager
input_GetItem
input_item_AddInfo
input_item_AddOpt
input_item_AddOption
input_item_AddSubItem
input_item_CopyOptions
__input_item_GetById
input_item_GetDuration
input_item_GetInfo
input_item_GetMeta
input_item_GetMetaObject
input_item_GetName
input_item_GetURI
input_item_HasErrorWhenReading
input_item_IsArtFetched
input_item_IsPreparsed
input_item_MetaMatch
input_item_MetaMerge
__input_item_NewExt
input_item_NewWithType
input_item_SetDuration
input_item_SetMeta
input_item_SetName
input_item_SetURI
input_MetaTypeToLocalizedString
__input_Preparse
__input_Read
...
...
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