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
33464eac
Commit
33464eac
authored
Aug 22, 2005
by
Jean-Paul Saman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Forward port of rev 12332
parent
c6988503
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
129 additions
and
71 deletions
+129
-71
modules/control/rc.c
modules/control/rc.c
+129
-71
No files found.
modules/control/rc.c
View file @
33464eac
...
...
@@ -70,6 +70,7 @@ static void Deactivate ( vlc_object_t * );
static
void
Run
(
intf_thread_t
*
);
static
void
Help
(
intf_thread_t
*
,
vlc_bool_t
);
static
void
RegisterCallbacks
(
intf_thread_t
*
);
static
vlc_bool_t
ReadCommand
(
intf_thread_t
*
,
char
*
,
int
*
);
...
...
@@ -138,8 +139,7 @@ void __msg_rc( intf_thread_t *p_intf, const char *psz_fmt, ... )
else
{
net_vaPrintf
(
p_intf
,
p_intf
->
p_sys
->
i_socket
,
NULL
,
psz_fmt
,
args
);
net_Write
(
p_intf
,
p_intf
->
p_sys
->
i_socket
,
NULL
,
(
uint8_t
*
)
"
\r\n
"
,
2
);
net_Write
(
p_intf
,
p_intf
->
p_sys
->
i_socket
,
NULL
,
(
uint8_t
*
)
"
\r\n
"
,
2
);
}
va_end
(
args
);
}
...
...
@@ -354,28 +354,10 @@ static void Deactivate( vlc_object_t *p_this )
}
/*****************************************************************************
* Run: rc thread
*****************************************************************************
* This part of the interface is in a separate thread so that we can call
* exec() from within it without annoying the rest of the program.
* RegisterCallbacks: Register callbacks to dynamic variables
*****************************************************************************/
static
void
R
un
(
intf_thread_t
*
p_intf
)
static
void
R
egisterCallbacks
(
intf_thread_t
*
p_intf
)
{
input_thread_t
*
p_input
;
playlist_t
*
p_playlist
;
char
p_buffer
[
MAX_LINE_LENGTH
+
1
];
vlc_bool_t
b_showpos
=
config_GetInt
(
p_intf
,
"rc-show-pos"
);
vlc_bool_t
b_longhelp
=
VLC_FALSE
;
int
i_size
=
0
;
int
i_oldpos
=
0
;
int
i_newpos
;
p_buffer
[
0
]
=
0
;
p_input
=
NULL
;
p_playlist
=
NULL
;
/* Register commands that will be cleaned up upon object destruction */
var_Create
(
p_intf
,
"quit"
,
VLC_VAR_VOID
|
VLC_VAR_ISCOMMAND
);
var_AddCallback
(
p_intf
,
"quit"
,
Quit
,
NULL
);
...
...
@@ -514,6 +496,33 @@ static void Run( intf_thread_t *p_intf )
var_AddCallback
(
p_intf
,
"adev"
,
AudioConfig
,
NULL
);
var_Create
(
p_intf
,
"achan"
,
VLC_VAR_STRING
|
VLC_VAR_ISCOMMAND
);
var_AddCallback
(
p_intf
,
"achan"
,
AudioConfig
,
NULL
);
}
/*****************************************************************************
* Run: rc thread
*****************************************************************************
* This part of the interface is in a separate thread so that we can call
* exec() from within it without annoying the rest of the program.
*****************************************************************************/
static
void
Run
(
intf_thread_t
*
p_intf
)
{
input_thread_t
*
p_input
;
playlist_t
*
p_playlist
;
char
p_buffer
[
MAX_LINE_LENGTH
+
1
];
vlc_bool_t
b_showpos
=
config_GetInt
(
p_intf
,
"rc-show-pos"
);
vlc_bool_t
b_longhelp
=
VLC_FALSE
;
int
i_size
=
0
;
int
i_oldpos
=
0
;
int
i_newpos
;
p_buffer
[
0
]
=
0
;
p_input
=
NULL
;
p_playlist
=
NULL
;
/* Register commands that will be cleaned up upon object destruction */
RegisterCallbacks
(
p_intf
);
/* status callbacks */
/* Listen to audio volume updates */
...
...
@@ -1025,7 +1034,7 @@ static int Input( vlc_object_t *p_this, char const *psz_cmd,
if
(
(
(
val
.
i_int
==
PAUSE_S
)
||
(
val
.
i_int
==
PLAYLIST_PAUSED
)
)
&&
(
strcmp
(
psz_cmd
,
"pause"
)
!=
0
)
)
{
msg_rc
(
_
(
"press pause to continue"
)
);
msg_rc
(
_
(
"press
menu select or
pause to continue"
)
);
vlc_object_release
(
p_input
);
return
VLC_EGENERIC
;
}
...
...
@@ -1198,10 +1207,8 @@ static int Playlist( vlc_object_t *p_this, char const *psz_cmd,
{
vlc_value_t
val
;
var_Get
(
p_playlist
->
p_input
,
"state"
,
&
val
);
if
(
(
(
val
.
i_int
==
PAUSE_S
)
||
(
val
.
i_int
==
PLAYLIST_PAUSED
)
)
&&
(
strcmp
(
psz_cmd
,
"pause"
)
!=
0
)
)
{
msg_rc
(
_
(
"press pause to continue"
)
);
if
(
(
val
.
i_int
==
PAUSE_S
)
||
(
val
.
i_int
==
PLAYLIST_PAUSED
)
)
{
msg_rc
(
_
(
"press menu select or pause to continue"
)
);
vlc_object_release
(
p_playlist
);
return
VLC_EGENERIC
;
}
...
...
@@ -1260,7 +1267,22 @@ static int Playlist( vlc_object_t *p_this, char const *psz_cmd,
}
else
if
(
!
strcmp
(
psz_cmd
,
"playlist"
)
)
{
if
(
!
strcmp
(
newval
.
psz_string
,
"status"
)
)
int
i
;
for
(
i
=
0
;
i
<
p_playlist
->
i_size
;
i
++
)
{
msg_rc
(
"|%s%s %s|%s|"
,
i
==
p_playlist
->
i_index
?
"*"
:
" "
,
p_playlist
->
pp_items
[
i
]
->
input
.
psz_name
,
p_playlist
->
pp_items
[
i
]
->
input
.
psz_uri
,
p_playlist
->
pp_items
[
i
]
->
i_parents
>
0
?
p_playlist
->
pp_items
[
i
]
->
pp_parents
[
0
]
->
p_parent
->
input
.
psz_name
:
""
);
}
if
(
i
==
0
)
{
msg_rc
(
"| no entries"
);
}
}
else
if
(
!
strcmp
(
newval
.
psz_string
,
"status"
)
)
{
/* Replay the current state of the system. */
msg_rc
(
STATUS_CHANGE
"( New input: %s )"
,
p_playlist
->
p_input
->
input
.
p_item
->
psz_uri
);
...
...
@@ -1284,24 +1306,6 @@ static int Playlist( vlc_object_t *p_this, char const *psz_cmd,
}
vlc_mutex_unlock
(
&
p_playlist
->
object_lock
);
}
else
{
int
i
;
for
(
i
=
0
;
i
<
p_playlist
->
i_size
;
i
++
)
{
msg_rc
(
"|%s%s %s|%s|"
,
i
==
p_playlist
->
i_index
?
"*"
:
" "
,
p_playlist
->
pp_items
[
i
]
->
input
.
psz_name
,
p_playlist
->
pp_items
[
i
]
->
input
.
psz_uri
,
p_playlist
->
pp_items
[
i
]
->
i_parents
>
0
?
p_playlist
->
pp_items
[
i
]
->
pp_parents
[
0
]
->
p_parent
->
input
.
psz_name
:
""
);
}
if
(
i
==
0
)
{
msg_rc
(
"| no entries"
);
}
}
}
/*
* sanity check
...
...
@@ -1339,8 +1343,7 @@ static int Other( vlc_object_t *p_this, char const *psz_cmd,
if
(
p_input
)
{
var_Get
(
p_input
,
"state"
,
&
val
);
if
(
(
(
val
.
i_int
==
PAUSE_S
)
||
(
val
.
i_int
==
PLAYLIST_PAUSED
)
)
&&
(
strcmp
(
psz_cmd
,
"pause"
)
!=
0
)
)
if
(
(
val
.
i_int
==
PAUSE_S
)
||
(
val
.
i_int
==
PLAYLIST_PAUSED
)
)
{
msg_rc
(
_
(
"press pause to continue"
)
);
vlc_object_release
(
p_playlist
);
...
...
@@ -1648,10 +1651,9 @@ static int Quit( vlc_object_t *p_this, char const *psz_cmd,
static
int
Intf
(
vlc_object_t
*
p_this
,
char
const
*
psz_cmd
,
vlc_value_t
oldval
,
vlc_value_t
newval
,
void
*
p_data
)
{
intf_thread_t
*
p_newintf
;
intf_thread_t
*
p_newintf
=
NULL
;
p_newintf
=
intf_Create
(
p_this
->
p_vlc
,
newval
.
psz_string
);
if
(
p_newintf
)
{
p_newintf
->
b_block
=
VLC_FALSE
;
...
...
@@ -1669,8 +1671,27 @@ static int Volume( vlc_object_t *p_this, char const *psz_cmd,
vlc_value_t
oldval
,
vlc_value_t
newval
,
void
*
p_data
)
{
intf_thread_t
*
p_intf
=
(
intf_thread_t
*
)
p_this
;
input_thread_t
*
p_input
=
NULL
;
int
i_error
;
p_input
=
vlc_object_find
(
p_this
,
VLC_OBJECT_INPUT
,
FIND_ANYWHERE
);
if
(
!
p_input
)
return
VLC_ENOOBJ
;
if
(
p_input
)
{
vlc_value_t
val
;
var_Get
(
p_input
,
"state"
,
&
val
);
if
(
(
val
.
i_int
==
PAUSE_S
)
||
(
val
.
i_int
==
PLAYLIST_PAUSED
)
)
{
msg_rc
(
_
(
"press menu select or pause to continue"
)
);
vlc_object_release
(
p_input
);
return
VLC_EGENERIC
;
}
vlc_object_release
(
p_input
);
}
if
(
*
newval
.
psz_string
)
{
/* Set. */
...
...
@@ -1718,10 +1739,29 @@ static int VolumeMove( vlc_object_t *p_this, char const *psz_cmd,
{
intf_thread_t
*
p_intf
=
(
intf_thread_t
*
)
p_this
;
audio_volume_t
i_volume
;
input_thread_t
*
p_input
=
NULL
;
int
i_nb_steps
=
atoi
(
newval
.
psz_string
);
int
i_error
=
VLC_SUCCESS
;
int
i_volume_step
=
0
;
p_input
=
vlc_object_find
(
p_this
,
VLC_OBJECT_INPUT
,
FIND_ANYWHERE
);
if
(
!
p_input
)
return
VLC_ENOOBJ
;
if
(
p_input
)
{
vlc_value_t
val
;
var_Get
(
p_input
,
"state"
,
&
val
);
if
(
(
val
.
i_int
==
PAUSE_S
)
||
(
val
.
i_int
==
PLAYLIST_PAUSED
)
)
{
msg_rc
(
_
(
"press menu select or pause to continue"
)
);
vlc_object_release
(
p_input
);
return
VLC_EGENERIC
;
}
vlc_object_release
(
p_input
);
}
i_volume_step
=
config_GetInt
(
p_intf
->
p_vlc
,
"volume-step"
);
if
(
i_nb_steps
<=
0
||
i_nb_steps
>
(
AOUT_VOLUME_MAX
/
i_volume_step
)
)
{
...
...
@@ -1748,11 +1788,29 @@ static int AudioConfig( vlc_object_t *p_this, char const *psz_cmd,
vlc_value_t
oldval
,
vlc_value_t
newval
,
void
*
p_data
)
{
intf_thread_t
*
p_intf
=
(
intf_thread_t
*
)
p_this
;
input_thread_t
*
p_input
=
NULL
;
aout_instance_t
*
p_aout
;
const
char
*
psz_variable
;
vlc_value_t
val_name
;
int
i_error
;
p_input
=
vlc_object_find
(
p_this
,
VLC_OBJECT_INPUT
,
FIND_ANYWHERE
);
if
(
!
p_input
)
return
VLC_ENOOBJ
;
if
(
p_input
)
{
vlc_value_t
val
;
var_Get
(
p_input
,
"state"
,
&
val
);
if
(
(
val
.
i_int
==
PAUSE_S
)
||
(
val
.
i_int
==
PLAYLIST_PAUSED
)
)
{
msg_rc
(
_
(
"press menu select or pause to continue"
)
);
vlc_object_release
(
p_input
);
return
VLC_EGENERIC
;
}
vlc_object_release
(
p_input
);
}
p_aout
=
vlc_object_find
(
p_this
,
VLC_OBJECT_AOUT
,
FIND_ANYWHERE
);
if
(
p_aout
==
NULL
)
return
VLC_ENOOBJ
;
...
...
@@ -1845,7 +1903,7 @@ static int Menu( vlc_object_t *p_this, char const *psz_cmd,
if
(
(
(
val
.
i_int
==
PAUSE_S
)
||
(
val
.
i_int
==
PLAYLIST_PAUSED
)
)
&&
(
strcmp
(
newval
.
psz_string
,
"select"
)
!=
0
)
)
{
msg_rc
(
_
(
"press menu select to continue"
)
);
msg_rc
(
_
(
"press menu select
or pause
to continue"
)
);
vlc_object_release
(
p_playlist
);
return
VLC_EGENERIC
;
}
...
...
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