mirror of
https://github.com/mpv-player/mpv
synced 2024-12-22 23:02:37 +00:00
5b3ca8ed41
All authors of the current code have agreed. The code probably originates from a software named GySmail (as the copyright header indicates). As far as I can tell, it was written by Arpi (who has agreed), possibly with unknown co-authors. This is most likely OK, as none of the original code is around anymore anyway. I could not find a working download of GySmail, that actually contained the original getch2.c code. This also has a wild history of random people adding ifdef guards to control ioctl() vs. tcgetattr() calls. (See for example 2b1310abba4c1.) Later, the ioctl() was removed in favor of the POSIX tcgetattr(), and the ifdeffery was removed. So these people were not contacted.
50 lines
1.5 KiB
C
50 lines
1.5 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 <stdbool.h>
|
|
#include <stdio.h>
|
|
|
|
struct input_ctx;
|
|
|
|
/* Global initialization for terminal output. */
|
|
int 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);
|
|
|
|
// Windows only.
|
|
void mp_write_console_ansi(void *wstream, char *buf);
|
|
|
|
/* Windows-only function to attach to the parent process's console */
|
|
bool terminal_try_attach(void);
|
|
|
|
#endif /* MPLAYER_GETCH2_H */
|