kolibrios-fun/contrib/media/updf/include/cursos2.h

325 lines
7.6 KiB
C
Raw Normal View History

/*
***************************************************************************
* This file comprises part of PDCurses. PDCurses is Public Domain software.
* You may use this code for whatever purposes you desire. This software
* is provided AS IS with NO WARRANTY whatsoever.
* Should this software be used in another application, an acknowledgement
* that PDCurses code is used would be appreciated, but is not mandatory.
*
* Any changes which you make to this software which may improve or enhance
* it, should be forwarded to the current maintainer for the benefit of
* other users.
*
* The only restriction placed on this code is that no distribution of
* modified PDCurses code be made under the PDCurses name, by anyone
* other than the current maintainer.
*
* See the file maintain.er for details of the current maintainer.
***************************************************************************
*/
/*
$Id$
*/
#ifndef CURSOS2_INCL
#define CURSOS2_INCL 1
#ifdef CURSES__32BIT__
#if (NOVIO)
#define KbdSetStatus Kbd32SetStatus
#define KbdGetStatus Kbd32GetStatus
#define KbdCharIn Kbd32CharIn
#define KbdPeek Kbd32Peek
#define KbdFlushBuffer Kbd32FlushBuffer
#define VioGetMode Vio32GetMode
#define VioSetMode Vio32SetMode
#define VioGetCurPos Vio32GetCurPos
#define VioSetCurPos Vio32SetCurPos
#define VioGetCurType Vio32GetCurType
#define VioSetCurType Vio32SetCurType
#define VioScrollDn Vio32ScrollDn
#define VioScrollUp Vio32ScrollUp
#define VioGetConfig Vio32GetConfig
#define VioWrtTTY Vio32WrtTTY
#define VioReadCellStr Vio32ReadCellStr
#define VioWrtCellStr Vio32WrtCellStr
#define VioWrtNAttr Vio32WrtNAttr
#endif /* NOVIO */
#define FARKeyword
#define CURS_INCL_VIO_KBD
#ifdef __EMX__
# ifndef USE_OS2_H
# ifdef EMXVIDEO /* Define to use emx dos compatible video */
# include <stdlib.h>
# include <sys/video.h>
# ifdef USE_OS2_H
# undef USE_OS2_H /* And we can use the extra compile speed... */
# endif
# else
# define USE_OS2_H
# endif
# endif
# define APIENTRY
#else
# define APIRET ULONG
#endif
#else
# define FARKeyword far
# define APIRET USHORT
#ifdef USE_OS2_H
# define INCL_VIO
# define INCL_KBD
#else
# define CURS_INCL_VIO_KBD
#endif
#endif /* __32BIT__ */
#ifndef EMXVIDEO
/* if USE_OS2_H is defined then use the os2.h that comes with your compiler ...*/
#ifdef USE_OS2_H
# include <os2.h>
#else
/* ... otherwise use these definitions */
# include <os2def.h>
#endif
#ifdef CURS_INCL_VIO_KBD
typedef SHANDLE HKBD;
typedef HKBD FARKeyword * PHKBD;
typedef SHANDLE HVIO;
typedef HVIO FARKeyword * PHVIO;
typedef struct _KBDINFO {
USHORT cb;
USHORT fsMask;
USHORT chTurnAround;
USHORT fsInterim;
USHORT fsState;
}KBDINFO;
typedef KBDINFO FARKeyword *PKBDINFO;
USHORT APIENTRY KbdSetStatus(
PKBDINFO pkbdinfo,
HKBD hkbd );
USHORT APIENTRY KbdGetStatus(
PKBDINFO pkbdinfo,
HKBD hdbd );
typedef struct _KBDKEYINFO {
UCHAR chChar; /* ASCII character code */
UCHAR chScan; /* Scan Code */
UCHAR fbStatus;
UCHAR bNlsShift;
USHORT fsState;
ULONG time;
}KBDKEYINFO;
typedef KBDKEYINFO FARKeyword *PKBDKEYINFO;
#define IO_WAIT 0
#define IO_NOWAIT 1
USHORT APIENTRY KbdCharIn(
PKBDKEYINFO pkbci,
USHORT fWait, /* IO_WAIT, IO_NOWAIT */
HKBD hkbd);
USHORT APIENTRY KbdPeek(
PKBDKEYINFO pkbci,
HKBD hkbd );
USHORT APIENTRY KbdFlushBuffer(
HKBD hkbd);
typedef struct _VIOMODEINFO {
USHORT cb;
UCHAR fbType;
UCHAR color;
USHORT col; /* number of text columns */
USHORT row; /* number of text rows */
USHORT hres; /* horizontal resolution */
USHORT vres; /* vertical resolution */
UCHAR fmt_ID;
UCHAR attrib; /* number of attributes */
ULONG buf_addr;
ULONG buf_length;
ULONG full_length;
ULONG partial_length;
PCH ext_data_addr;
} VIOMODEINFO;
typedef VIOMODEINFO FARKeyword *PVIOMODEINFO;
USHORT APIENTRY VioGetMode(
PVIOMODEINFO pvioModeInfo,
HVIO hvio);
USHORT APIENTRY VioSetMode(
PVIOMODEINFO pvioModeInfo,
HVIO hvio);
USHORT APIENTRY VioGetCurPos(
PUSHORT pusRow,
PUSHORT pusColumn,
HVIO hvio );
USHORT APIENTRY VioSetCurPos(
USHORT usRow,
USHORT usColumn,
HVIO hvio);
typedef struct _VIOCURSORINFO {
USHORT yStart;
USHORT cEnd;
USHORT cx;
USHORT attr; /* -1=hidden cursor, any other=normal cursor */
} VIOCURSORINFO;
typedef VIOCURSORINFO FARKeyword *PVIOCURSORINFO;
USHORT APIENTRY VioGetCurType(
PVIOCURSORINFO pvioCursorInfo,
HVIO hvio );
USHORT APIENTRY VioSetCurType(
PVIOCURSORINFO pvioCursorInfo,
HVIO hvio );
USHORT APIENTRY VioScrollDn(
USHORT usTopRow,
USHORT usLeftCol,
USHORT usBotRow,
USHORT usRightCol,
USHORT cbLines,
PBYTE pCell,
HVIO hvio );
USHORT APIENTRY VioScrollUp(
USHORT usTopRow,
USHORT usLeftCol,
USHORT usBotRow,
USHORT usRightCol,
USHORT cbLines,
PBYTE pCell,
HVIO hvio );
/* VIOCONFIGINFO.adapter constants */
#define DISPLAY_MONOCHROME 0x0000
#define DISPLAY_CGA 0x0001
#define DISPLAY_EGA 0x0002
#define DISPLAY_VGA 0x0003
#define DISPLAY_8514A 0x0007
/* VIOCONFIGINFO.display constants */
#define MONITOR_MONOCHROME 0x0000
#define MONITOR_COLOR 0x0001
#define MONITOR_ENHANCED 0x0002
#define MONITOR_8503 0x0003
#define MONITOR_851X_COLOR 0x0004
#define MONITOR_8514 0x0009
typedef struct _VIOCONFIGINFO {
USHORT cb;
USHORT adapter;
USHORT display;
ULONG cbMemory;
USHORT Configuration;
USHORT VDHVersion;
USHORT Flags;
ULONG HWBufferSize;
ULONG FullSaveSize;
ULONG PartSaveSize;
USHORT EMAdaptersOFF;
USHORT EMDisplaysOFF;
} VIOCONFIGINFO;
typedef VIOCONFIGINFO FARKeyword *PVIOCONFIGINFO;
USHORT APIENTRY VioGetConfig(
USHORT usConfigId, /* Reserved (must be 0) */
PVIOCONFIGINFO pvioin,
HVIO hvio );
USHORT APIENTRY VioWrtTTY(
PCH pch,
USHORT cb,
HVIO hvio );
USHORT APIENTRY VioReadCellStr(
PCH pchCellStr,
PUSHORT pcb,
USHORT usRow,
USHORT usColumn,
HVIO hvio );
USHORT APIENTRY VioWrtCellStr(
PCH pchCellStr,
USHORT cb,
USHORT usRow,
USHORT usColumn,
HVIO hvio );
USHORT APIENTRY VioWrtNAttr(
PBYTE pAttr,
USHORT cb,
USHORT usRow,
USHORT usColumn,
HVIO hvio );
USHORT APIENTRY VioWrtNCell(
PBYTE pCell,
USHORT cb,
USHORT usRow,
USHORT usColumn,
HVIO hvio );
#endif
#endif
#ifndef KEYBOARD_ASCII_MODE
#define KEYBOARD_ASCII_MODE 0x0008
#endif
#ifndef KEYBOARD_BINARY_MODE
#define KEYBOARD_BINARY_MODE 0x0004
#endif
#endif /* !EMXVIDEO */