0
0
mirror of https://github.com/mpv-player/mpv.git synced 2024-09-20 12:02:23 +02:00
mpv/osdep
wm4 6759941fca player: redo terminal OSD and status line handling
The terminal OSD code includes the handling of the terminal status line,
showing player OSD messages on the terminal, and showing subtitles on
terminal (the latter two only if there is no video window, or if
terminal OSD is forced).

This didn't handle some corner cases correctly. For example, showing an
OSD message on the terminal always cleared the previous line, even if
the line was an important message (or even just the command prompt, if
most other messages were silenced).

Attempt to handle this correctly by keeping track of how many lines the
terminal OSD currently consists of. Since there could be race conditions
with other messages being printed, implement this in msg.c. Now msg.c
expects that MSGL_STATUS messages rewrite the status line, so the caller
is forced to use a single mp_msg() call to set the status line.

Instead of littering print_status() all over the place, update the
status only once per playloop iteration in update_osd_msg(). In audio-
only mode, the status line might now be a little bit off, but it's
perhaps ok.

Print the status line only if it has changed, or if another message was
printed. This might help with extremely slow terminals, although in
audio+video mode, it'll still be updated very often (A-V sync display
changes on every frame).

Instead of hardcoding the terminal sequences, use
terminfo/termcap to get the sequences. Remove the --term-osd-esc option,
which allowed to override the hardcoded escapes - it's useless now.

The fallback for terminals with no escape sequences for moving the
cursor and clearing a line is removed. This somewhat breaks status line
display on these terminals, including the MS Windows console: instead of
querying the terminal size and clearing the line manually by padding the
output with spaces, the line is simply not cleared. I don't expect this
to be a problem on UNIX, and on MS Windows we could emulate escape
sequences. Note that terminal OSD (other than the status line) was
broken anyway on these terminals.

In osd.c, the function get_term_width() is not used anymore, so remove
it. To remind us that the MS Windows console apparently adds a line
break when writint the last column, adjust screen_width in terminal-
win.c accordingly.
2014-01-13 20:08:13 +01:00
..
ar HIDRemote: remove OS X version checks 2013-09-17 20:44:54 +02:00
glob-win.c osdep:/glob-win.c: reformat 2012-08-03 01:31:32 +02:00
glob.h Reduce recursive config.h inclusions in headers 2013-12-18 17:12:21 +01:00
io.c Windows: use the GUI subsystem, attach to console 2014-01-02 05:30:49 +01:00
io.h Windows: use the GUI subsystem, attach to console 2014-01-02 05:30:49 +01:00
macosx_application_objc.h cocoa: handle files drag and drop on the player video view 2014-01-04 17:29:53 +01:00
macosx_application.h cocoa: remove usage of mp_fifo 2013-07-03 22:25:45 +02:00
macosx_application.m cocoa: refactor files drag and drop on the Dock icon 2014-01-04 17:29:41 +01:00
macosx_compat.h OSX: fix compilation with 10.7 SDK 2013-06-19 21:24:26 +02:00
macosx_events.h Move mpvcore/input/ to input/ 2013-12-17 01:23:09 +01:00
macosx_events.m Fix OSX build; remove all remaining mpvcore references 2013-12-17 08:44:21 +01:00
mpv.exe.manifest win32: edit resource files, in particular set CompanyName 2013-09-23 01:44:09 +02:00
mpv.rc Update copyright year 2014-01-01 00:00:00 +01:00
numcores.c vd_ffmpeg: set thread count to number of cores on machine by default 2010-12-20 05:53:28 +02:00
numcores.h vd_ffmpeg: set thread count to number of cores on machine by default 2010-12-20 05:53:28 +02:00
path-macosx.m path-macosx: attempt to fix build 2013-12-22 01:36:45 +01:00
path-win.c Windows: use roaming AppData instead of local 2014-01-06 13:44:48 +01:00
path.h path lookup functions: mp_msg conversions 2013-12-21 21:43:17 +01:00
priority.c osdep/priority: drop message output when setting priority 2013-12-21 20:50:11 +01:00
priority.h cosmetics: Remove pointless empty lines at EOF. 2010-02-20 21:02:49 +00:00
terminal-unix.c player: redo terminal OSD and status line handling 2014-01-13 20:08:13 +01:00
terminal-win.c player: redo terminal OSD and status line handling 2014-01-13 20:08:13 +01:00
terminal.h player: redo terminal OSD and status line handling 2014-01-13 20:08:13 +01:00
threads.c stream: split out pthread helper function 2013-11-17 16:42:57 +01:00
threads.h stream: split out pthread helper function 2013-11-17 16:42:57 +01:00
timer-darwin.c Split mpvcore/ into common/, misc/, bstr/ 2013-12-17 02:39:45 +01:00
timer-linux.c configure: uniform the defines to #define HAVE_xxx (0|1) 2013-11-03 21:59:54 +01:00
timer-win2.c timer: use gettimeofday() on Windows 2013-05-26 16:44:20 +02:00
timer.c Replace calls to usec_sleep() 2013-05-26 16:44:20 +02:00
timer.h Replace calls to usec_sleep() 2013-05-26 16:44:20 +02:00
win32-console-wrapper.c win32-console-wrapper: use child process exit code 2014-01-06 13:31:15 +01:00