diff options
Diffstat (limited to 'osdep/getch2-os2.c')
-rw-r--r-- | osdep/getch2-os2.c | 200 |
1 files changed, 0 insertions, 200 deletions
diff --git a/osdep/getch2-os2.c b/osdep/getch2-os2.c deleted file mode 100644 index 05e408ff45..0000000000 --- a/osdep/getch2-os2.c +++ /dev/null @@ -1,200 +0,0 @@ -/* - * OS/2 TermIO - * - * Copyright (c) 2007 KO Myung-Hun (komh@chollian.net) - * - * This file is part of MPlayer. - * - * MPlayer is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * MPlayer 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with MPlayer; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#define INCL_KBD -#define INCL_VIO -#define INCL_DOS -#include <os2.h> - -#include <stdio.h> -#include <string.h> - -#include "config.h" -#include "input/keycodes.h" -#include "input/input.h" -#include "mp_fifo.h" -#include "getch2.h" - -#if defined(HAVE_LANGINFO) && defined(CONFIG_ICONV) -#include <locale.h> -#include <langinfo.h> -#endif - -int mp_input_slave_cmd_func( int fd, char *dest, int size ) -{ - PPIB ppib; - CHAR szPipeName[ 100 ]; - HFILE hpipe; - ULONG ulAction; - ULONG cbActual; - ULONG rc; - - DosGetInfoBlocks( NULL, &ppib ); - - sprintf( szPipeName, "\\PIPE\\MPLAYER\\%lx", ppib->pib_ulpid ); - - rc = DosOpen( szPipeName, &hpipe, &ulAction, 0, FILE_NORMAL, - OPEN_ACTION_OPEN_IF_EXISTS, - OPEN_SHARE_DENYREADWRITE | OPEN_ACCESS_READWRITE, - NULL ); - if( rc ) - return MP_INPUT_NOTHING; - - rc = DosRead( hpipe, dest, size, &cbActual ); - if( rc ) - return MP_INPUT_NOTHING; - - rc = cbActual; - - // Send ACK - DosWrite( hpipe, &rc, sizeof( ULONG ), &cbActual ); - - DosClose( hpipe ); - - return rc; -} - - -int screen_width = 80; -int screen_height = 24; -char *erase_to_end_of_line = NULL; - -void get_screen_size( void ) -{ - VIOMODEINFO vmi; - - vmi.cb = sizeof( VIOMODEINFO ); - - VioGetMode( &vmi, 0 ); - - screen_width = vmi.col; - screen_height = vmi.row; -} - -static int getch2_status = 0; - -static int getch2_internal( void ) -{ - KBDKEYINFO kki; - - if( !getch2_status ) - return -1; - - if( KbdCharIn( &kki, IO_NOWAIT, 0 )) - return -1; - - // key pressed ? - if( kki.fbStatus ) - { - // extended key ? - if(( kki.chChar == 0x00 ) || ( kki.chChar == 0xE0 )) - { - switch( kki.chScan ) - { - case 0x4B : // Left - return KEY_LEFT; - - case 0x48 : // Up - return KEY_UP; - - case 0x4D : // Right - return KEY_RIGHT; - - case 0x50 : // Down - return KEY_DOWN; - - case 0x53 : // Delete - return KEY_DELETE; - - case 0x52 : // Insert - return KEY_INSERT; - - case 0x47 : // Home - return KEY_HOME; - - case 0x4F : // End - return KEY_END; - - case 0x49 : // Page Up - return KEY_PAGE_UP; - - case 0x51 : // Page Down - return KEY_PAGE_DOWN; - } - } - else - { - switch( kki.chChar ) - { - case 0x08 : // Backspace - return KEY_BS; - - case 0x1B : // Esc - return KEY_ESC; - - case 0x0D : // Enter - // Keypad Enter ? - if( kki.chScan == 0xE0 ) - return KEY_KPENTER; - break; - } - - return kki.chChar; - } - } - - return -1; -} - -void getch2(struct mp_fifo *fifo) -{ - int key; - - key = getch2_internal(); - if( key != -1 ) - mplayer_put_key(fifo, key); -} - -void getch2_enable( void ) -{ - getch2_status = 1; -} - -void getch2_disable( void ) -{ - getch2_status = 0; -} - -#ifdef CONFIG_ICONV -char *get_term_charset( void ) -{ - char *charset = NULL; - -#ifdef HAVE_LANGINFO - setlocale( LC_CTYPE, ""); - charset = strdup( nl_langinfo( CODESET )); - setlocale( LC_CTYPE, "C"); -#endif - - return charset; -} -#endif |