mirror of
https://github.com/mpv-player/mpv
synced 2024-12-31 19:52:16 +00:00
82ffe8f425
Stop making unselected tracks and editions grey because they can be hard to read over a dark background (\033[2m would be hard to differentiate from regular text with a light theme instead), and because there is no way to not print the escape sequences in --log-file. Just use the same circles as the OSD and OSC. We need to print the empty circles for alignment on mlterm with East Asian fonts (we could also make them invisible with \033[8m but it would still get added to log files). Add back the space before tracks and editions when printed after "Playing..." or "Track switched" and similar, so they look like a sub-section of it, consistently with the metadata which starts with space which makes it look like a sub-section of the "File tags" line. Leave 2 spaces between track columns. Make the lang options only as long as the longest language. Place hls-bitrate within the same parentheses as the other data. Replace the incomprehensible (*) (f) and [P] with textual descriptions within []. Also place external there. Stop converting Hz to kHz for consistency with other log messages, e.g. AO: [pipewire] 48000Hz stereo 2ch floatp Remove the space in "2 ch" so it doesn't look like 2 separate values (We considered using mp_chmap_to_str(&s->codec->channels) but it prints values like "unknown2").
73 lines
2.3 KiB
C
73 lines
2.3 KiB
C
/*
|
|
* Based on GyS-TermIO v2.0 (for GySmail v3) (copyright (C) 1999 A'rpi/ESP-team)
|
|
*
|
|
* This file is part of mpv.
|
|
*
|
|
* mpv is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* mpv is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with mpv. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#ifndef MPLAYER_GETCH2_H
|
|
#define MPLAYER_GETCH2_H
|
|
|
|
#include <stdarg.h>
|
|
#include <stdbool.h>
|
|
|
|
#include "misc/bstr.h"
|
|
|
|
#define TERM_ESC_GOTO_YX "\033[%d;%df"
|
|
#define TERM_ESC_HIDE_CURSOR "\033[?25l"
|
|
#define TERM_ESC_RESTORE_CURSOR "\033[?25h"
|
|
#define TERM_ESC_SYNC_UPDATE_BEGIN "\033[?2026h"
|
|
#define TERM_ESC_SYNC_UPDATE_END "\033[?2026l"
|
|
|
|
#define TERM_ESC_CLEAR_SCREEN "\033[2J"
|
|
#define TERM_ESC_ALT_SCREEN "\033[?1049h"
|
|
#define TERM_ESC_NORMAL_SCREEN "\033[?1049l"
|
|
|
|
#define TERM_ESC_ENABLE_MOUSE "\033[?1003h"
|
|
#define TERM_ESC_DISABLE_MOUSE "\033[?1003l"
|
|
|
|
struct input_ctx;
|
|
|
|
/* Global initialization for terminal output. */
|
|
void terminal_init(void);
|
|
|
|
/* Setup ictx to read keys from the terminal */
|
|
void terminal_setup_getch(struct input_ctx *ictx);
|
|
|
|
/* Undo terminal_init(), and also terminal_setup_getch() */
|
|
void terminal_uninit(void);
|
|
|
|
/* Return whether the process has been backgrounded. */
|
|
bool terminal_in_background(void);
|
|
|
|
/* Get terminal-size in columns/rows. */
|
|
void terminal_get_size(int *w, int *h);
|
|
|
|
/* Get terminal-size in columns/rows and width/height in pixels. */
|
|
void terminal_get_size2(int *rows, int *cols, int *px_width, int *px_height);
|
|
|
|
/* Enable/Disable mouse input. */
|
|
void terminal_set_mouse_input(bool enable);
|
|
|
|
// Windows only.
|
|
int mp_console_vfprintf(void *wstream, const char *format, va_list args);
|
|
int mp_console_write(void *wstream, bstr str);
|
|
bool mp_check_console(void *handle);
|
|
|
|
/* Windows-only function to attach to the parent process's console */
|
|
bool terminal_try_attach(void);
|
|
|
|
#endif /* MPLAYER_GETCH2_H */
|