Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-2-2
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-2-2
Commits
5e57cc0c
Commit
5e57cc0c
authored
Jul 24, 2009
by
Rémi Duraffort
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ncurses: factorize (no need to use a macro here).
parent
4d17b40d
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
85 additions
and
82 deletions
+85
-82
modules/gui/ncurses.c
modules/gui/ncurses.c
+85
-82
No files found.
modules/gui/ncurses.c
View file @
5e57cc0c
...
...
@@ -549,18 +549,7 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
{
intf_sys_t
*
p_sys
=
p_intf
->
p_sys
;
vlc_value_t
val
;
#define ReturnTrue \
do { \
pl_Release( p_intf ); \
return 1; \
} while(0)
#define ReturnFalse \
do { \
pl_Release( p_intf ); \
return 0; \
} while(0)
int
i_ret
=
1
;
playlist_t
*
p_playlist
=
pl_Hold
(
p_intf
);
...
...
@@ -577,17 +566,17 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
var_Get
(
p_playlist
,
"random"
,
&
val
);
val
.
b_bool
=
!
val
.
b_bool
;
var_Set
(
p_playlist
,
"random"
,
val
);
ReturnTrue
;
goto
end
;
case
'l'
:
var_Get
(
p_playlist
,
"loop"
,
&
val
);
val
.
b_bool
=
!
val
.
b_bool
;
var_Set
(
p_playlist
,
"loop"
,
val
);
ReturnTrue
;
goto
end
;
case
'R'
:
var_Get
(
p_playlist
,
"repeat"
,
&
val
);
val
.
b_bool
=
!
val
.
b_bool
;
var_Set
(
p_playlist
,
"repeat"
,
val
);
ReturnTrue
;
goto
end
;
/* Playlist sort */
case
'o'
:
...
...
@@ -595,13 +584,13 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
PlaylistGetRoot
(
p_intf
),
SORT_TITLE_NODES_FIRST
,
ORDER_NORMAL
);
p_sys
->
b_need_update
=
true
;
ReturnTrue
;
goto
end
;
case
'O'
:
playlist_RecursiveNodeSort
(
p_playlist
,
PlaylistGetRoot
(
p_intf
),
SORT_TITLE_NODES_FIRST
,
ORDER_REVERSE
);
p_sys
->
b_need_update
=
true
;
ReturnTrue
;
goto
end
;
/* Playlist view */
case
'v'
:
...
...
@@ -615,7 +604,7 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
}
//p_sys->b_need_update = true;
PlaylistRebuild
(
p_intf
);
ReturnTrue
;
goto
end
;
/* Playlist navigation */
case
'g'
:
...
...
@@ -721,7 +710,7 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
b_box_plidx_follow
=
true
;
PL_UNLOCK
;
p_sys
->
b_box_plidx_follow
=
b_box_plidx_follow
;
ReturnTrue
;
goto
end
;
}
}
if
(
p_sys
->
i_box_type
==
BOX_BROWSE
)
...
...
@@ -804,7 +793,7 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
{
if
(
p_sys
->
i_box_bidx
>=
p_sys
->
i_dir_entries
)
p_sys
->
i_box_bidx
=
p_sys
->
i_dir_entries
-
1
;
if
(
p_sys
->
i_box_bidx
<
0
)
p_sys
->
i_box_bidx
=
0
;
ReturnTrue
;
goto
end
;
}
}
else
if
(
p_sys
->
i_box_type
==
BOX_HELP
||
p_sys
->
i_box_type
==
BOX_INFO
||
...
...
@@ -815,33 +804,33 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
{
case
KEY_HOME
:
p_sys
->
i_box_start
=
0
;
ReturnTrue
;
goto
end
;
#ifdef __FreeBSD__
case
KEY_SELECT
:
#endif
case
KEY_END
:
p_sys
->
i_box_start
=
p_sys
->
i_box_lines_total
-
1
;
ReturnTrue
;
goto
end
;
case
KEY_UP
:
if
(
p_sys
->
i_box_start
>
0
)
p_sys
->
i_box_start
--
;
ReturnTrue
;
goto
end
;
case
KEY_DOWN
:
if
(
p_sys
->
i_box_start
<
p_sys
->
i_box_lines_total
-
1
)
{
p_sys
->
i_box_start
++
;
}
ReturnTrue
;
goto
end
;
case
KEY_PPAGE
:
p_sys
->
i_box_start
-=
p_sys
->
i_box_lines
;
if
(
p_sys
->
i_box_start
<
0
)
p_sys
->
i_box_start
=
0
;
ReturnTrue
;
goto
end
;
case
KEY_NPAGE
:
p_sys
->
i_box_start
+=
p_sys
->
i_box_lines
;
if
(
p_sys
->
i_box_start
>=
p_sys
->
i_box_lines_total
)
{
p_sys
->
i_box_start
=
p_sys
->
i_box_lines_total
-
1
;
}
ReturnTrue
;
goto
end
;
default:
break
;
}
...
...
@@ -853,24 +842,24 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
case
KEY_HOME
:
p_sys
->
f_slider
=
0
;
ManageSlider
(
p_intf
);
ReturnTrue
;
goto
end
;
#ifdef __FreeBSD__
case
KEY_SELECT
:
#endif
case
KEY_END
:
p_sys
->
f_slider
=
99
.
9
;
ManageSlider
(
p_intf
);
ReturnTrue
;
goto
end
;
case
KEY_UP
:
p_sys
->
f_slider
+=
5
.
0
;
if
(
p_sys
->
f_slider
>=
99
.
0
)
p_sys
->
f_slider
=
99
.
0
;
ManageSlider
(
p_intf
);
ReturnTrue
;
goto
end
;
case
KEY_DOWN
:
p_sys
->
f_slider
-=
5
.
0
;
if
(
p_sys
->
f_slider
<
0
.
0
)
p_sys
->
f_slider
=
0
.
0
;
ManageSlider
(
p_intf
);
ReturnTrue
;
goto
end
;
default:
break
;
...
...
@@ -884,7 +873,7 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
case
KEY_CLEAR
:
case
0x0c
:
/* ^l */
clear
();
ReturnTrue
;
goto
end
;
case
KEY_ENTER
:
case
'\r'
:
case
'\n'
:
...
...
@@ -897,7 +886,7 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
SearchPlaylist
(
p_intf
,
p_sys
->
psz_old_search
);
}
p_sys
->
i_box_type
=
BOX_PLAYLIST
;
ReturnTrue
;
goto
end
;
case
0x1b
:
/* ESC */
/* Alt+key combinations return 2 keys in the terminal keyboard:
* ESC, and the 2nd key.
...
...
@@ -914,10 +903,13 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
*
*/
if
(
wgetch
(
p_sys
->
w
)
!=
ERR
)
ReturnFalse
;
{
i_ret
=
0
;
goto
end
;
}
p_sys
->
i_box_plidx
=
p_sys
->
i_before_search
;
p_sys
->
i_box_type
=
BOX_PLAYLIST
;
ReturnTrue
;
goto
end
;
case
KEY_BACKSPACE
:
case
0x7f
:
RemoveLastUTF8Entity
(
p_sys
->
psz_search_chain
,
i_chain_len
);
...
...
@@ -949,7 +941,7 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
free
(
p_sys
->
psz_old_search
);
p_sys
->
psz_old_search
=
NULL
;
SearchPlaylist
(
p_intf
,
p_sys
->
psz_search_chain
);
ReturnTrue
;
goto
end
;
}
else
if
(
p_sys
->
i_box_type
==
BOX_OPEN
&&
p_sys
->
psz_open_chain
)
{
...
...
@@ -960,7 +952,7 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
case
KEY_CLEAR
:
case
0x0c
:
/* ^l */
clear
();
ReturnTrue
;
break
;
case
KEY_ENTER
:
case
'\r'
:
case
'\n'
:
...
...
@@ -985,12 +977,15 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
p_sys
->
b_box_plidx_follow
=
true
;
}
p_sys
->
i_box_type
=
BOX_PLAYLIST
;
ReturnTrue
;
break
;
case
0x1b
:
/* ESC */
if
(
wgetch
(
p_sys
->
w
)
!=
ERR
)
ReturnFalse
;
{
i_ret
=
0
;
break
;
}
p_sys
->
i_box_type
=
BOX_PLAYLIST
;
ReturnTrue
;
break
;
case
KEY_BACKSPACE
:
case
0x7f
:
RemoveLastUTF8Entity
(
p_sys
->
psz_open_chain
,
i_chain_len
);
...
...
@@ -1016,10 +1011,9 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
free
(
psz_utf8
);
}
#endif
break
;
}
}
ReturnTrue
;
goto
end
;
}
...
...
@@ -1028,12 +1022,16 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
{
case
0x1b
:
/* ESC */
if
(
wgetch
(
p_sys
->
w
)
!=
ERR
)
ReturnFalse
;
{
i_ret
=
0
;
break
;
}
case
'q'
:
case
'Q'
:
case
KEY_EXIT
:
libvlc_Quit
(
p_intf
->
p_libvlc
);
ReturnFalse
;
i_ret
=
0
;
break
;
/* Box switching */
case
'i'
:
...
...
@@ -1042,49 +1040,49 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
else
p_sys
->
i_box_type
=
BOX_INFO
;
p_sys
->
i_box_lines_total
=
0
;
ReturnTrue
;
break
;
case
'm'
:
if
(
p_sys
->
i_box_type
==
BOX_META
)
p_sys
->
i_box_type
=
BOX_NONE
;
else
p_sys
->
i_box_type
=
BOX_META
;
p_sys
->
i_box_lines_total
=
0
;
ReturnTrue
;
break
;
case
'L'
:
if
(
p_sys
->
i_box_type
==
BOX_LOG
)
p_sys
->
i_box_type
=
BOX_NONE
;
else
p_sys
->
i_box_type
=
BOX_LOG
;
ReturnTrue
;
break
;
case
'P'
:
if
(
p_sys
->
i_box_type
==
BOX_PLAYLIST
)
p_sys
->
i_box_type
=
BOX_NONE
;
else
p_sys
->
i_box_type
=
BOX_PLAYLIST
;
ReturnTrue
;
break
;
case
'B'
:
if
(
p_sys
->
i_box_type
==
BOX_BROWSE
)
p_sys
->
i_box_type
=
BOX_NONE
;
else
p_sys
->
i_box_type
=
BOX_BROWSE
;
ReturnTrue
;
break
;
case
'x'
:
if
(
p_sys
->
i_box_type
==
BOX_OBJECTS
)
p_sys
->
i_box_type
=
BOX_NONE
;
else
p_sys
->
i_box_type
=
BOX_OBJECTS
;
ReturnTrue
;
break
;
case
'S'
:
if
(
p_sys
->
i_box_type
==
BOX_STATS
)
p_sys
->
i_box_type
=
BOX_NONE
;
else
p_sys
->
i_box_type
=
BOX_STATS
;
ReturnTrue
;
break
;
case
'c'
:
p_sys
->
b_color
=
!
p_sys
->
b_color
;
if
(
p_sys
->
b_color
&&
!
p_sys
->
b_color_started
)
start_color_and_pairs
(
p_intf
);
ReturnTrue
;
break
;
case
'h'
:
case
'H'
:
if
(
p_sys
->
i_box_type
==
BOX_HELP
)
...
...
@@ -1092,40 +1090,42 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
else
p_sys
->
i_box_type
=
BOX_HELP
;
p_sys
->
i_box_lines_total
=
0
;
ReturnTrue
;
break
;
case
'/'
:
if
(
p_sys
->
i_box_type
!=
BOX_SEARCH
)
{
if
(
p_sys
->
psz_search_chain
==
NULL
)
ReturnTrue
;
if
(
p_sys
->
psz_search_chain
)
{
p_sys
->
psz_search_chain
[
0
]
=
'\0'
;
p_sys
->
b_box_plidx_follow
=
false
;
p_sys
->
i_before_search
=
p_sys
->
i_box_plidx
;
p_sys
->
i_box_type
=
BOX_SEARCH
;
}
ReturnTrue
;
}
break
;
case
'A'
:
/* Open */
if
(
p_sys
->
i_box_type
!=
BOX_OPEN
)
{
if
(
p_sys
->
psz_open_chain
==
NULL
)
ReturnTrue
;
if
(
p_sys
->
psz_open_chain
)
{
p_sys
->
psz_open_chain
[
0
]
=
'\0'
;
p_sys
->
i_box_type
=
BOX_OPEN
;
}
ReturnTrue
;
}
break
;
/* Navigation */
case
KEY_RIGHT
:
p_sys
->
f_slider
+=
1
.
0
;
if
(
p_sys
->
f_slider
>
99
.
9
)
p_sys
->
f_slider
=
99
.
9
;
ManageSlider
(
p_intf
);
ReturnTrue
;
break
;
case
KEY_LEFT
:
p_sys
->
f_slider
-=
1
.
0
;
if
(
p_sys
->
f_slider
<
0
.
0
)
p_sys
->
f_slider
=
0
.
0
;
ManageSlider
(
p_intf
);
ReturnTrue
;
break
;
/* Common control */
case
'f'
:
...
...
@@ -1149,60 +1149,61 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
var_Set
(
p_playlist
,
"fullscreen"
,
val
);
}
}
ReturnFalse
;
i_ret
=
0
;
break
;
}
case
' '
:
PlayPause
(
p_intf
);
ReturnTrue
;
break
;
case
's'
:
playlist_Stop
(
p_playlist
);
ReturnTrue
;
break
;
case
'e'
:
Eject
(
p_intf
);
ReturnTrue
;
break
;
case
'['
:
if
(
p_sys
->
p_input
)
var_SetVoid
(
p_sys
->
p_input
,
"prev-title"
);
ReturnTrue
;
break
;
case
']'
:
if
(
p_sys
->
p_input
)
var_SetVoid
(
p_sys
->
p_input
,
"next-title"
);
ReturnTrue
;
break
;
case
'<'
:
if
(
p_sys
->
p_input
)
var_SetVoid
(
p_sys
->
p_input
,
"prev-chapter"
);
ReturnTrue
;
break
;
case
'>'
:
if
(
p_sys
->
p_input
)
var_SetVoid
(
p_sys
->
p_input
,
"next-chapter"
);
ReturnTrue
;
break
;
case
'p'
:
playlist_Prev
(
p_playlist
);
clear
();
ReturnTrue
;
break
;
case
'n'
:
playlist_Next
(
p_playlist
);
clear
();
ReturnTrue
;
break
;
case
'a'
:
aout_VolumeUp
(
p_playlist
,
1
,
NULL
);
clear
();
ReturnTrue
;
break
;
case
'z'
:
aout_VolumeDown
(
p_playlist
,
1
,
NULL
);
clear
();
ReturnTrue
;
break
;
/*
* ^l should clear and redraw the screen
...
...
@@ -1210,13 +1211,15 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
case
KEY_CLEAR
:
case
0x0c
:
/* ^l */
clear
();
ReturnTrue
;
break
;
default:
ReturnFalse
;
i_ret
=
0
;
}
#undef ReturnFalse
#undef ReturnTrue
end:
pl_Release
(
p_intf
);
return
i_ret
;
}
static
void
ManageSlider
(
intf_thread_t
*
p_intf
)
...
...
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