apps/graphics/pdcurses: Add dummy files with placeholders for the logic that needs to be implemented to integrated pdcurses with NuttX.
This commit is contained in:
parent
69bea27b20
commit
25e4f6b57b
@ -3,7 +3,7 @@ PDCurses Implementor's Guide
|
|||||||
|
|
||||||
Version 1.3 - 200?/??/?? - notes about official ports
|
Version 1.3 - 200?/??/?? - notes about official ports
|
||||||
Version 1.2 - 2007/07/11 - added PDC_init_pair(), PDC_pair_content(),
|
Version 1.2 - 2007/07/11 - added PDC_init_pair(), PDC_pair_content(),
|
||||||
version history; removed pdc_atrtab
|
version history; removed pdc_atrtab
|
||||||
Version 1.1 - 2007/06/06 - minor cosmetic change
|
Version 1.1 - 2007/06/06 - minor cosmetic change
|
||||||
Version 1.0 - 2007/04/01 - initial revision
|
Version 1.0 - 2007/04/01 - initial revision
|
||||||
|
|
||||||
@ -73,14 +73,14 @@ consistent style helps readability.
|
|||||||
pdcdisp.c:
|
pdcdisp.c:
|
||||||
----------
|
----------
|
||||||
|
|
||||||
void PDC_gotoyx(int y, int x);
|
void PDC_gotoyx(int y, int x);
|
||||||
|
|
||||||
Move the physical cursor (as opposed to the logical cursor affected by
|
Move the physical cursor (as opposed to the logical cursor affected by
|
||||||
wmove()) to the given location. This is called mainly from doupdate().
|
wmove()) to the given location. This is called mainly from doupdate().
|
||||||
In general, this function need not compare the old location with the new
|
In general, this function need not compare the old location with the new
|
||||||
one, and should just move the cursor unconditionally.
|
one, and should just move the cursor unconditionally.
|
||||||
|
|
||||||
void PDC_transform_line(int lineno, int x, int len, const chtype *srcp);
|
void PDC_transform_line(int lineno, int x, int len, const chtype *srcp);
|
||||||
|
|
||||||
The core output routine. It takes len chtype entities from srcp (a
|
The core output routine. It takes len chtype entities from srcp (a
|
||||||
pointer into curscr) and renders them to the physical screen at line
|
pointer into curscr) and renders them to the physical screen at line
|
||||||
@ -92,13 +92,13 @@ chtype.
|
|||||||
pdcgetsc.c:
|
pdcgetsc.c:
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
int PDC_get_columns(void);
|
int PDC_get_columns(void);
|
||||||
|
|
||||||
Returns the size of the screen in columns. It's used in resize_term() to
|
Returns the size of the screen in columns. It's used in resize_term() to
|
||||||
set the new value of COLS. (Some existing implementations also call it
|
set the new value of COLS. (Some existing implementations also call it
|
||||||
internally from PDC_scr_open(), but this is not required.)
|
internally from PDC_scr_open(), but this is not required.)
|
||||||
|
|
||||||
int PDC_get_cursor_mode(void);
|
int PDC_get_cursor_mode(void);
|
||||||
|
|
||||||
Returns the size/shape of the cursor. The format of the result is
|
Returns the size/shape of the cursor. The format of the result is
|
||||||
unspecified, except that it must be returned as an int. This function is
|
unspecified, except that it must be returned as an int. This function is
|
||||||
@ -106,7 +106,7 @@ called from initscr(), and the result is stored in SP->orig_cursor,
|
|||||||
which is used by PDC_curs_set() to determine the size/shape of the
|
which is used by PDC_curs_set() to determine the size/shape of the
|
||||||
cursor in normal visibility mode (curs_set(1)).
|
cursor in normal visibility mode (curs_set(1)).
|
||||||
|
|
||||||
int PDC_get_rows(void);
|
int PDC_get_rows(void);
|
||||||
|
|
||||||
Returns the size of the screen in rows. It's used in resize_term() to
|
Returns the size of the screen in rows. It's used in resize_term() to
|
||||||
set the new value of LINES. (Some existing implementations also call it
|
set the new value of LINES. (Some existing implementations also call it
|
||||||
@ -116,18 +116,18 @@ internally from PDC_scr_open(), but this is not required.)
|
|||||||
pdckbd.c:
|
pdckbd.c:
|
||||||
---------
|
---------
|
||||||
|
|
||||||
bool PDC_check_key(void);
|
bool PDC_check_key(void);
|
||||||
|
|
||||||
Keyboard/mouse event check, called from wgetch(). Returns true if
|
Keyboard/mouse event check, called from wgetch(). Returns true if
|
||||||
there's an event ready to process. This function must be non-blocking.
|
there's an event ready to process. This function must be non-blocking.
|
||||||
|
|
||||||
void PDC_flushinp(void);
|
void PDC_flushinp(void);
|
||||||
|
|
||||||
This is the core of flushinp(). It discards any pending key or mouse
|
This is the core of flushinp(). It discards any pending key or mouse
|
||||||
events, removing them from any internal queue and from the OS queue, if
|
events, removing them from any internal queue and from the OS queue, if
|
||||||
applicable.
|
applicable.
|
||||||
|
|
||||||
int PDC_get_key(void);
|
int PDC_get_key(void);
|
||||||
|
|
||||||
Get the next available key, or mouse event (indicated by a return of
|
Get the next available key, or mouse event (indicated by a return of
|
||||||
KEY_MOUSE), and remove it from the OS' input queue, if applicable. This
|
KEY_MOUSE), and remove it from the OS' input queue, if applicable. This
|
||||||
@ -146,13 +146,13 @@ happen on key up. But if this is not possible, it may return the
|
|||||||
modifier keys on key down (if and only if SP->return_key_modifiers is
|
modifier keys on key down (if and only if SP->return_key_modifiers is
|
||||||
true).
|
true).
|
||||||
|
|
||||||
int PDC_modifiers_set(void);
|
int PDC_modifiers_set(void);
|
||||||
|
|
||||||
Called from PDC_return_key_modifiers(). If your platform needs to do
|
Called from PDC_return_key_modifiers(). If your platform needs to do
|
||||||
anything in response to a change in SP->return_key_modifiers, do it
|
anything in response to a change in SP->return_key_modifiers, do it
|
||||||
here. Returns OK or ERR, which is passed on by the caller.
|
here. Returns OK or ERR, which is passed on by the caller.
|
||||||
|
|
||||||
int PDC_mouse_set(void);
|
int PDC_mouse_set(void);
|
||||||
|
|
||||||
Called by mouse_set(), mouse_on(), and mouse_off() -- all the functions
|
Called by mouse_set(), mouse_on(), and mouse_off() -- all the functions
|
||||||
that modify SP->_trap_mbe. If your platform needs to do anything in
|
that modify SP->_trap_mbe. If your platform needs to do anything in
|
||||||
@ -160,7 +160,7 @@ response to a change in SP->_trap_mbe (for example, turning the mouse
|
|||||||
cursor on or off), do it here. Returns OK or ERR, which is passed on by
|
cursor on or off), do it here. Returns OK or ERR, which is passed on by
|
||||||
the caller.
|
the caller.
|
||||||
|
|
||||||
void PDC_set_keyboard_binary(bool on);
|
void PDC_set_keyboard_binary(bool on);
|
||||||
|
|
||||||
Set keyboard input to "binary" mode. If you need to do something to keep
|
Set keyboard input to "binary" mode. If you need to do something to keep
|
||||||
the OS from processing ^C, etc. on your platform, do it here. true turns
|
the OS from processing ^C, etc. on your platform, do it here. true turns
|
||||||
@ -171,22 +171,22 @@ noraw().
|
|||||||
pdcscrn.c:
|
pdcscrn.c:
|
||||||
----------
|
----------
|
||||||
|
|
||||||
bool PDC_can_change_color(void);
|
bool PDC_can_change_color(void);
|
||||||
|
|
||||||
Returns true if init_color() and color_content() give meaningful
|
Returns true if init_color() and color_content() give meaningful
|
||||||
results, false otherwise. Called from can_change_color().
|
results, false otherwise. Called from can_change_color().
|
||||||
|
|
||||||
int PDC_color_content(short color, short *red, short *green, short *blue);
|
int PDC_color_content(short color, short *red, short *green, short *blue);
|
||||||
|
|
||||||
The core of color_content(). This does all the work of that function,
|
The core of color_content(). This does all the work of that function,
|
||||||
except checking for values out of range and null pointers.
|
except checking for values out of range and null pointers.
|
||||||
|
|
||||||
int PDC_init_color(short color, short red, short green, short blue);
|
int PDC_init_color(short color, short red, short green, short blue);
|
||||||
|
|
||||||
The core of init_color(). This does all the work of that function,
|
The core of init_color(). This does all the work of that function,
|
||||||
except checking for values out of range.
|
except checking for values out of range.
|
||||||
|
|
||||||
void PDC_init_pair(short pair, short fg, short bg);
|
void PDC_init_pair(short pair, short fg, short bg);
|
||||||
|
|
||||||
The core of init_pair(). This does all the work of that function, except
|
The core of init_pair(). This does all the work of that function, except
|
||||||
checking for values out of range. The values passed to this function
|
checking for values out of range. The values passed to this function
|
||||||
@ -194,24 +194,24 @@ should be returned by a call to PDC_pair_content() with the same pair
|
|||||||
number. PDC_transform_line() should use the specified colors when
|
number. PDC_transform_line() should use the specified colors when
|
||||||
rendering a chtype with the given pair number.
|
rendering a chtype with the given pair number.
|
||||||
|
|
||||||
int PDC_pair_content(short pair, short *fg, short *bg);
|
int PDC_pair_content(short pair, short *fg, short *bg);
|
||||||
|
|
||||||
The core of pair_content(). This does all the work of that function,
|
The core of pair_content(). This does all the work of that function,
|
||||||
except checking for values out of range and null pointers.
|
except checking for values out of range and null pointers.
|
||||||
|
|
||||||
void PDC_reset_prog_mode(void);
|
void PDC_reset_prog_mode(void);
|
||||||
|
|
||||||
The non-portable functionality of reset_prog_mode() is handled here --
|
The non-portable functionality of reset_prog_mode() is handled here --
|
||||||
whatever's not done in _restore_mode(). In current ports: In OS/2, this
|
whatever's not done in _restore_mode(). In current ports: In OS/2, this
|
||||||
sets the keyboard to binary mode; in Win32, it enables or disables the
|
sets the keyboard to binary mode; in Win32, it enables or disables the
|
||||||
mouse pointer to match the saved mode; in others it does nothing.
|
mouse pointer to match the saved mode; in others it does nothing.
|
||||||
|
|
||||||
void PDC_reset_shell_mode(void);
|
void PDC_reset_shell_mode(void);
|
||||||
|
|
||||||
The same thing, for reset_shell_mode(). In OS/2 and Win32, it restores
|
The same thing, for reset_shell_mode(). In OS/2 and Win32, it restores
|
||||||
the default console mode; in others it does nothing.
|
the default console mode; in others it does nothing.
|
||||||
|
|
||||||
int PDC_resize_screen(int nlines, int ncols);
|
int PDC_resize_screen(int nlines, int ncols);
|
||||||
|
|
||||||
This does the main work of resize_term(). It may respond to non-zero
|
This does the main work of resize_term(). It may respond to non-zero
|
||||||
parameters, by setting the screen to the specified size; to zero
|
parameters, by setting the screen to the specified size; to zero
|
||||||
@ -220,17 +220,17 @@ runtime, in an unspecified way (e.g., by dragging the edges of the
|
|||||||
window); or both. It may also do nothing, if there's no appropriate
|
window); or both. It may also do nothing, if there's no appropriate
|
||||||
action for the platform.
|
action for the platform.
|
||||||
|
|
||||||
void PDC_restore_screen_mode(int i);
|
void PDC_restore_screen_mode(int i);
|
||||||
|
|
||||||
Called from _restore_mode() in kernel.c, this function does the actual
|
Called from _restore_mode() in pdc_kernel.c, this function does the actual
|
||||||
mode changing, if applicable. Currently used only in DOS and OS/2.
|
mode changing, if applicable. Currently used only in DOS and OS/2.
|
||||||
|
|
||||||
void PDC_save_screen_mode(int i);
|
void PDC_save_screen_mode(int i);
|
||||||
|
|
||||||
Called from _save_mode() in kernel.c, this function saves the actual
|
Called from _save_mode() in pdc_kernel.c, this function saves the actual
|
||||||
screen mode, if applicable. Currently used only in DOS and OS/2.
|
screen mode, if applicable. Currently used only in DOS and OS/2.
|
||||||
|
|
||||||
void PDC_scr_close(void);
|
void PDC_scr_close(void);
|
||||||
|
|
||||||
The platform-specific part of endwin(). It may restore the image of the
|
The platform-specific part of endwin(). It may restore the image of the
|
||||||
original screen saved by PDC_scr_open(), if the PDC_RESTORE_SCREEN
|
original screen saved by PDC_scr_open(), if the PDC_RESTORE_SCREEN
|
||||||
@ -238,12 +238,12 @@ environment variable is set; either way, if using an existing terminal,
|
|||||||
this function should restore it to the mode it had at startup, and move
|
this function should restore it to the mode it had at startup, and move
|
||||||
the cursor to the lower left corner. (The X11 port does nothing.)
|
the cursor to the lower left corner. (The X11 port does nothing.)
|
||||||
|
|
||||||
void PDC_scr_free(void);
|
void PDC_scr_free(void);
|
||||||
|
|
||||||
Frees the memory for SP allocated by PDC_scr_open(). Called by
|
Frees the memory for SP allocated by PDC_scr_open(). Called by
|
||||||
delscreen().
|
delscreen().
|
||||||
|
|
||||||
int PDC_scr_open(int argc, char **argv);
|
int PDC_scr_open(int argc, char **argv);
|
||||||
|
|
||||||
The platform-specific part of initscr(). It's actually called from
|
The platform-specific part of initscr(). It's actually called from
|
||||||
Xinitscr(); the arguments, if present, correspond to those used with
|
Xinitscr(); the arguments, if present, correspond to those used with
|
||||||
@ -263,7 +263,7 @@ restoration by PDC_scr_close().
|
|||||||
pdcsetsc.c:
|
pdcsetsc.c:
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
int PDC_curs_set(int visibility);
|
int PDC_curs_set(int visibility);
|
||||||
|
|
||||||
Called from curs_set(). Changes the appearance of the cursor -- 0 turns
|
Called from curs_set(). Changes the appearance of the cursor -- 0 turns
|
||||||
it off, 1 is normal (the terminal's default, if applicable, as
|
it off, 1 is normal (the terminal's default, if applicable, as
|
||||||
@ -274,14 +274,14 @@ appearance of these modes is not specified.
|
|||||||
pdcutil.c:
|
pdcutil.c:
|
||||||
----------
|
----------
|
||||||
|
|
||||||
void PDC_beep(void);
|
void PDC_beep(void);
|
||||||
|
|
||||||
Emits a short audible beep. If this is not possible on your platform,
|
Emits a short audible beep. If this is not possible on your platform,
|
||||||
you must set SP->audible to false during initialization (i.e., from
|
you must set SP->audible to false during initialization (i.e., from
|
||||||
PDC_scr_open() -- not here); otherwise, set it to true. This function is
|
PDC_scr_open() -- not here); otherwise, set it to true. This function is
|
||||||
called from beep().
|
called from beep().
|
||||||
|
|
||||||
void PDC_napms(int ms);
|
void PDC_napms(int ms);
|
||||||
|
|
||||||
This is the core delay routine, called by napms(). It pauses for about
|
This is the core delay routine, called by napms(). It pauses for about
|
||||||
(the X/Open spec says "at least") ms milliseconds, then returns. High
|
(the X/Open spec says "at least") ms milliseconds, then returns. High
|
||||||
|
@ -33,7 +33,8 @@
|
|||||||
#
|
#
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|
||||||
# CSRCS +=
|
CSRCS += pdcclip.c pdcdisp.c pdcgetsc.c pdckbd.c pdcscrn.c pdcsetsc.c
|
||||||
|
CRCCS += pdcutil.c
|
||||||
|
|
||||||
DEPPATH += --dep-path nuttx
|
DEPPATH += --dep-path nuttx
|
||||||
VPATH += :nuttx
|
VPATH += :nuttx
|
||||||
|
137
graphics/pdcurs34/nuttx/pdcclip.c
Normal file
137
graphics/pdcurs34/nuttx/pdcclip.c
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
* apps/graphics/nuttx/pdclip.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2017 Gregory Nutt. All rights reserved.
|
||||||
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in
|
||||||
|
* the documentation and/or other materials provided with the
|
||||||
|
* distribution.
|
||||||
|
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||||
|
* used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||||
|
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||||
|
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Included Files
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#include "pdcnuttx.h"
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Public Functions
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_getclipboard
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* PDC_getclipboard() gets the textual contents of the system's clipboard.
|
||||||
|
* This function returns the contents of the clipboard in the contents
|
||||||
|
* argument. It is the responsibilitiy of the caller to free the memory
|
||||||
|
* returned, via PDC_freeclipboard(). The length of the clipboard
|
||||||
|
* contents is returned in the length argument.
|
||||||
|
*
|
||||||
|
* Returned Value:
|
||||||
|
* PDC_CLIP_SUCCESS The call was successful
|
||||||
|
* PDC_CLIP_MEMORY_ERROR unable to allocate sufficient memory for
|
||||||
|
* the clipboard contents
|
||||||
|
* PDC_CLIP_EMPTY The clipboard contains no text
|
||||||
|
* PDC_CLIP_ACCESS_ERROR No clipboard support
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
int PDC_getclipboard(char **contents, long *length)
|
||||||
|
{
|
||||||
|
PDC_LOG(("PDC_getclipboard() - called\n"));
|
||||||
|
#warning Missing logic
|
||||||
|
return PDC_CLIP_ACCESS_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_setclipboard
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* PDC_setclipboard copies the supplied text into the system's clipboard,
|
||||||
|
* emptying the clipboard prior to the copy.
|
||||||
|
*
|
||||||
|
* Returned Value:
|
||||||
|
* PDC_CLIP_SUCCESS The call was successful
|
||||||
|
* PDC_CLIP_MEMORY_ERROR unable to allocate sufficient memory for
|
||||||
|
* the clipboard contents
|
||||||
|
* PDC_CLIP_EMPTY The clipboard contains no text
|
||||||
|
* PDC_CLIP_ACCESS_ERROR No clipboard support
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
int PDC_setclipboard(const char *contents, long length)
|
||||||
|
{
|
||||||
|
PDC_LOG(("PDC_setclipboard() - called\n"));
|
||||||
|
#warning Missing logic
|
||||||
|
return PDC_CLIP_ACCESS_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_freeclipboard
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Free memory obtained with PDC_getclipboard().
|
||||||
|
*
|
||||||
|
* Returned Value:
|
||||||
|
* PDC_CLIP_SUCCESS The call was successful
|
||||||
|
* PDC_CLIP_MEMORY_ERROR unable to allocate sufficient memory for
|
||||||
|
* the clipboard contents
|
||||||
|
* PDC_CLIP_EMPTY The clipboard contains no text
|
||||||
|
* PDC_CLIP_ACCESS_ERROR No clipboard support
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
int PDC_freeclipboard(char *contents)
|
||||||
|
{
|
||||||
|
PDC_LOG(("PDC_freeclipboard() - called\n"));
|
||||||
|
#warning Missing logic
|
||||||
|
return PDC_CLIP_ACCESS_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_clearclipboard
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* PDC_clearclipboard() clears the internal clipboard.
|
||||||
|
*
|
||||||
|
* Returned Value:
|
||||||
|
* PDC_CLIP_SUCCESS The call was successful
|
||||||
|
* PDC_CLIP_MEMORY_ERROR unable to allocate sufficient memory for
|
||||||
|
* the clipboard contents
|
||||||
|
* PDC_CLIP_EMPTY The clipboard contains no text
|
||||||
|
* PDC_CLIP_ACCESS_ERROR No clipboard support
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
int PDC_clearclipboard(void)
|
||||||
|
{
|
||||||
|
PDC_LOG(("PDC_clearclipboard() - called\n"));
|
||||||
|
#warning Missing logic
|
||||||
|
return PDC_CLIP_ACCESS_ERROR;
|
||||||
|
}
|
83
graphics/pdcurs34/nuttx/pdcdisp.c
Normal file
83
graphics/pdcurs34/nuttx/pdcdisp.c
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
* apps/graphics/nuttx/pdcdisp.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2017 Gregory Nutt. All rights reserved.
|
||||||
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in
|
||||||
|
* the documentation and/or other materials provided with the
|
||||||
|
* distribution.
|
||||||
|
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||||
|
* used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||||
|
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||||
|
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Included Files
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#include "pdcnuttx.h"
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Public Functions
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_gotoyx
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Move the physical cursor (as opposed to the logical cursor affected by
|
||||||
|
* wmove()) to the given location. This is called mainly from doupdate().
|
||||||
|
* In general, this function need not compare the old location with the new
|
||||||
|
* one, and should just move the cursor unconditionally.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/* Position hardware cursor at (y, x) */
|
||||||
|
|
||||||
|
void PDC_gotoyx(int row, int col)
|
||||||
|
{
|
||||||
|
PDC_LOG(("PDC_gotoyx() - called: row %d col %d\n", row, col));
|
||||||
|
#warning Missing logic
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_transform_line
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* The core output routine. It takes len chtype entities from srcp (a
|
||||||
|
* pointer into curscr) and renders them to the physical screen at line
|
||||||
|
* lineno, column x. It must also translate characters 0-127 via acs_map[],
|
||||||
|
* if they're flagged with A_ALTCHARSET in the attribute portion of the
|
||||||
|
* chtype.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
void PDC_transform_line(int lineno, int x, int len, const chtype *srcp)
|
||||||
|
{
|
||||||
|
PDC_LOG(("PDC_transform_line() - called: line %d\n", lineno));
|
||||||
|
#warning Missing logic
|
||||||
|
}
|
96
graphics/pdcurs34/nuttx/pdcgetsc.c
Normal file
96
graphics/pdcurs34/nuttx/pdcgetsc.c
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
* apps/graphics/nuttx/pdcgetsc.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2017 Gregory Nutt. All rights reserved.
|
||||||
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in
|
||||||
|
* the documentation and/or other materials provided with the
|
||||||
|
* distribution.
|
||||||
|
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||||
|
* used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||||
|
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||||
|
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Included Files
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#include "pdcnuttx.h"
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Public Functions
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_get_columns
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Returns the size of the screen in columns. It's used in resize_term()
|
||||||
|
* to set the new value of COLS. (Some existing implementations also call
|
||||||
|
* it internally from PDC_scr_open(), but this is not required.)
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
int PDC_get_columns(void)
|
||||||
|
{
|
||||||
|
PDC_LOG(("PDC_get_columns() - called\n"));
|
||||||
|
#warning Missing logic
|
||||||
|
return ERR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_get_cursor_mode
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Returns the size/shape of the cursor. The format of the result is
|
||||||
|
* unspecified, except that it must be returned as an int. This function
|
||||||
|
* is called from initscr(), and the result is stored in SP->orig_cursor,
|
||||||
|
* which is used by PDC_curs_set() to determine the size/shape of the
|
||||||
|
* cursor in normal visibility mode (curs_set(1)).
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
int PDC_get_cursor_mode(void)
|
||||||
|
{
|
||||||
|
#warning Missing logic
|
||||||
|
return ERR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_get_rows
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Returns the size of the screen in rows. It's used in resize_term() to
|
||||||
|
* set the new value of LINES. (Some existing implementations also call it
|
||||||
|
* internally from PDC_scr_open(), but this is not required.)
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
int PDC_get_rows(void)
|
||||||
|
{
|
||||||
|
PDC_LOG(("PDC_get_rows() - called\n"));
|
||||||
|
#warning Missing logic
|
||||||
|
return ERR;
|
||||||
|
}
|
171
graphics/pdcurs34/nuttx/pdckbd.c
Normal file
171
graphics/pdcurs34/nuttx/pdckbd.c
Normal file
@ -0,0 +1,171 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
* apps/graphics/nuttx/pdckbd.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2017 Gregory Nutt. All rights reserved.
|
||||||
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in
|
||||||
|
* the documentation and/or other materials provided with the
|
||||||
|
* distribution.
|
||||||
|
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||||
|
* used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||||
|
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||||
|
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Included Files
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#include "pdcnuttx.h"
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Public Functions
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_check_key
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Keyboard/mouse event check, called from wgetch(). Returns true if
|
||||||
|
* there's an event ready to process. This function must be non-blocking.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
bool PDC_check_key(void)
|
||||||
|
{
|
||||||
|
#warning Missing logic
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_get_key
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Get the next available key, or mouse event (indicated by a return of
|
||||||
|
* KEY_MOUSE), and remove it from the OS' input queue, if applicable. This
|
||||||
|
* function is called from wgetch(). This function may be blocking, and
|
||||||
|
* traditionally is; but it need not be. If a valid key or mouse event
|
||||||
|
* cannot be returned, for any reason, this function returns -1. Valid keys
|
||||||
|
* are those that fall within the appropriate character set, or are in the
|
||||||
|
* list of special keys found in curses.h (KEY_MIN through KEY_MAX). When
|
||||||
|
* returning a special key code, this routine must also set SP->key_code to
|
||||||
|
* true; otherwise it must set it to false. If SP->return_key_modifiers is
|
||||||
|
* true, this function may return modifier keys (shift, control, alt),
|
||||||
|
* pressed alone, as special key codes; if SP->return_key_modifiers is
|
||||||
|
* false, it must not. If modifier keys are returned, it should only happen
|
||||||
|
* if no other keys were pressed in the meantime; i.e., the return should
|
||||||
|
* happen on key up. But if this is not possible, it may return the
|
||||||
|
* modifier keys on key down (if and only if SP->return_key_modifiers is
|
||||||
|
* true).
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
int PDC_get_key(void)
|
||||||
|
{
|
||||||
|
#warning Missing logic
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_get_input_fd
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* PDC_get_input_fd() returns the file descriptor that PDCurses reads its
|
||||||
|
* input from. It can be used for select().
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
unsigned long PDC_get_input_fd(void)
|
||||||
|
{
|
||||||
|
PDC_LOG(("PDC_get_input_fd() - called\n"));
|
||||||
|
#warning Missing logic
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_set_keyboard_binary
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Set keyboard input to "binary" mode. If you need to do something to keep
|
||||||
|
* the OS from processing ^C, etc. on your platform, do it here. true turns
|
||||||
|
* the mode on; false reverts it. This function is called from raw() and
|
||||||
|
* noraw().
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
void PDC_set_keyboard_binary(bool on)
|
||||||
|
{
|
||||||
|
PDC_LOG(("PDC_set_keyboard_binary() - called\n"));
|
||||||
|
#warning Missing logic
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_flushinp
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* This is the core of flushinp(). It discards any pending key or mouse
|
||||||
|
* events, removing them from any internal queue and from the OS queue, if
|
||||||
|
* applicable.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
void PDC_flushinp(void)
|
||||||
|
{
|
||||||
|
PDC_LOG(("PDC_flushinp() - called\n"));
|
||||||
|
#warning Missing logic
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_mouse_set
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Called by mouse_set(), mouse_on(), and mouse_off() -- all the functions
|
||||||
|
* that modify SP->_trap_mbe. If your platform needs to do anything in
|
||||||
|
* response to a change in SP->_trap_mbe (for example, turning the mouse
|
||||||
|
* cursor on or off), do it here. Returns OK or ERR, which is passed on by
|
||||||
|
* the caller.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
int PDC_mouse_set(void)
|
||||||
|
{
|
||||||
|
#warning Missing logic
|
||||||
|
return OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_modifiers_set
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Called from PDC_return_key_modifiers(). If your platform needs to do
|
||||||
|
* anything in response to a change in SP->return_key_modifiers, do it
|
||||||
|
* here. Returns OK or ERR, which is passed on by the caller.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
int PDC_modifiers_set(void)
|
||||||
|
{
|
||||||
|
#warning Missing logic
|
||||||
|
return OK;
|
||||||
|
}
|
45
graphics/pdcurs34/nuttx/pdcnuttx.h
Normal file
45
graphics/pdcurs34/nuttx/pdcnuttx.h
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
* apps/graphics/nuttx/pdcnuttx.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2017 Gregory Nutt. All rights reserved.
|
||||||
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in
|
||||||
|
* the documentation and/or other materials provided with the
|
||||||
|
* distribution.
|
||||||
|
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||||
|
* used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||||
|
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||||
|
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef __APPS_GRAPHICS_PDCURS34_NUTTX_PDCNUTTX_H
|
||||||
|
#define __APPS_GRAPHICS_PDCURS34_NUTTX_PDCNUTTX_H 1
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Included Files
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#include "curspriv.h"
|
||||||
|
|
||||||
|
#endif /* __APPS_GRAPHICS_PDCURS34_NUTTX_PDCNUTTX_H */
|
262
graphics/pdcurs34/nuttx/pdcscrn.c
Normal file
262
graphics/pdcurs34/nuttx/pdcscrn.c
Normal file
@ -0,0 +1,262 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
* apps/graphics/nuttx/pdcscrn.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2017 Gregory Nutt. All rights reserved.
|
||||||
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in
|
||||||
|
* the documentation and/or other materials provided with the
|
||||||
|
* distribution.
|
||||||
|
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||||
|
* used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||||
|
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||||
|
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Included Files
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#include "pdcnuttx.h"
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Public Functions
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_scr_close
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* The platform-specific part of endwin(). It may restore the image of the
|
||||||
|
* original screen saved by PDC_scr_open(), if the PDC_RESTORE_SCREEN
|
||||||
|
* environment variable is set; either way, if using an existing terminal,
|
||||||
|
* this function should restore it to the mode it had at startup, and move
|
||||||
|
* the cursor to the lower left corner. (The X11 port does nothing.)
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
void PDC_scr_close(void)
|
||||||
|
{
|
||||||
|
PDC_LOG(("PDC_scr_close() - called\n"));
|
||||||
|
#warning Missing logic
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_scr_free
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Frees the memory for SP allocated by PDC_scr_open(). Called by
|
||||||
|
* delscreen().
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
void PDC_scr_free(void)
|
||||||
|
{
|
||||||
|
#warning Missing logic
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_scr_open
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* The platform-specific part of initscr(). It's actually called from
|
||||||
|
* Xinitscr(); the arguments, if present, correspond to those used with
|
||||||
|
* main(), and may be used to set the title of the terminal window, or for
|
||||||
|
* other, platform-specific purposes. (The arguments are currently used
|
||||||
|
* only in X11.) PDC_scr_open() must allocate memory for SP, and must
|
||||||
|
* initialize acs_map[] (unless it's preset) and several members of SP,
|
||||||
|
* including lines, cols, mouse_wait, orig_attr (and if orig_attr is true,
|
||||||
|
* orig_fore and orig_back), mono, _restore and _preserve. (Although SP is
|
||||||
|
* used the same way in all ports, it's allocated here in order to allow
|
||||||
|
* the X11 port to map it to a block of shared memory.) If using an
|
||||||
|
* existing terminal, and the environment variable PDC_RESTORE_SCREEN is
|
||||||
|
* set, this function may also store the existing screen image for later
|
||||||
|
* restoration by PDC_scr_close().
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
int PDC_scr_open(int argc, char **argv)
|
||||||
|
{
|
||||||
|
PDC_LOG(("PDC_scr_open() - called\n"));
|
||||||
|
#warning Missing logic
|
||||||
|
return ERR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_resize_screen
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* This does the main work of resize_term(). It may respond to non-zero
|
||||||
|
* parameters, by setting the screen to the specified size; to zero
|
||||||
|
* parameters, by setting the screen to a size chosen by the user at
|
||||||
|
* runtime, in an unspecified way (e.g., by dragging the edges of the
|
||||||
|
* window); or both. It may also do nothing, if there's no appropriate
|
||||||
|
* action for the platform.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
int PDC_resize_screen(int nlines, int ncols)
|
||||||
|
{
|
||||||
|
PDC_LOG(("PDC_resize_screen() - called. Lines: %d Cols: %d\n",
|
||||||
|
nlines, ncols));
|
||||||
|
#warning Missing logic
|
||||||
|
return ERR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_reset_prog_mode
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* The non-portable functionality of reset_prog_mode() is handled here --
|
||||||
|
* whatever's not done in _restore_mode(). In current ports: In OS/2, this
|
||||||
|
* sets the keyboard to binary mode; in Win32, it enables or disables the
|
||||||
|
* mouse pointer to match the saved mode; in others it does nothing.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
void PDC_reset_prog_mode(void)
|
||||||
|
{
|
||||||
|
PDC_LOG(("PDC_reset_prog_mode() - called.\n"));
|
||||||
|
#warning Missing logic
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_reset_shell_mode
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* The same thing for reset_shell_mode() as PDC_reset_prog_mode(). In OS/2
|
||||||
|
* and Win32, it restores the default console mode; in others it does
|
||||||
|
* nothing.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
void PDC_reset_shell_mode(void)
|
||||||
|
{
|
||||||
|
PDC_LOG(("PDC_reset_shell_mode() - called.\n"));
|
||||||
|
#warning Missing logic
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_restore_screen_mode
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Called from _restore_mode() in pdc_kernel.c, this function does the
|
||||||
|
* actual mode changing, if applicable. Currently used only in DOS and OS/2.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
void PDC_restore_screen_mode(int i)
|
||||||
|
{
|
||||||
|
#warning Missing logic
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_save_screen_mode
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Called from _save_mode() in pdc_kernel.c, this function saves the actual
|
||||||
|
* screen mode, if applicable. Currently used only in DOS and OS/2.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
void PDC_save_screen_mode(int i)
|
||||||
|
{
|
||||||
|
#warning Missing logic
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_init_pair
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* The core of init_pair(). This does all the work of that function, except
|
||||||
|
* checking for values out of range. The values passed to this function
|
||||||
|
* should be returned by a call to PDC_pair_content() with the same pair
|
||||||
|
* number. PDC_transform_line() should use the specified colors when
|
||||||
|
* rendering a chtype with the given pair number.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
void PDC_init_pair(short pair, short fg, short bg)
|
||||||
|
{
|
||||||
|
#warning Missing logic
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_pair_content
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* The core of pair_content(). This does all the work of that function,
|
||||||
|
* except checking for values out of range and null pointers.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
int PDC_pair_content(short pair, short *fg, short *bg)
|
||||||
|
{
|
||||||
|
#warning Missing logic
|
||||||
|
return ERR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_can_change_color
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Returns true if init_color() and color_content() give meaningful
|
||||||
|
* results, false otherwise. Called from can_change_color().
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
bool PDC_can_change_color(void)
|
||||||
|
{
|
||||||
|
#warning Missing logic
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_color_content
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* The core of color_content(). This does all the work of that function,
|
||||||
|
* except checking for values out of range and null pointers.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
int PDC_color_content(short color, short *red, short *green, short *blue)
|
||||||
|
{
|
||||||
|
#warning Missing logic
|
||||||
|
return ERR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_init_color
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* The core of init_color(). This does all the work of that function,
|
||||||
|
* except checking for values out of range.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
int PDC_init_color(short color, short red, short green, short blue)
|
||||||
|
{
|
||||||
|
#warning Missing logic
|
||||||
|
return ERR;
|
||||||
|
}
|
99
graphics/pdcurs34/nuttx/pdcsetsc.c
Normal file
99
graphics/pdcurs34/nuttx/pdcsetsc.c
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
* apps/graphics/nuttx/pdcsetsc.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2017 Gregory Nutt. All rights reserved.
|
||||||
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in
|
||||||
|
* the documentation and/or other materials provided with the
|
||||||
|
* distribution.
|
||||||
|
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||||
|
* used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||||
|
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||||
|
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Included Files
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#include "pdcnuttx.h"
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Public Functions
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_curs_set
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Called from curs_set(). Changes the appearance of the cursor -- 0 turns
|
||||||
|
* it off, 1 is normal (the terminal's default, if applicable, as
|
||||||
|
* determined by SP->orig_cursor), and 2 is high visibility. The exact
|
||||||
|
* appearance of these modes is not specified.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
int PDC_curs_set(int visibility)
|
||||||
|
{
|
||||||
|
PDC_LOG(("PDC_curs_set() - called: visibility=%d\n", visibility));
|
||||||
|
#warning Missing logic
|
||||||
|
return ERR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_set_title
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* PDC_set_title() sets the title of the window in which the curses
|
||||||
|
* program is running. This function may not do anything on some
|
||||||
|
* platforms. (Currently it only works in Win32 and X11.)
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
void PDC_set_title(const char *title)
|
||||||
|
{
|
||||||
|
PDC_LOG(("PDC_set_title() - called:<%s>\n", title));
|
||||||
|
#warning Missing logic
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_set_blink
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* PDC_set_blink() toggles whether the A_BLINK attribute sets an actual
|
||||||
|
* blink mode (true), or sets the background color to high intensity
|
||||||
|
* (false). The default is platform-dependent (false in most cases). It
|
||||||
|
* returns OK if it could set the state to match the given parameter,
|
||||||
|
* ERR otherwise. Current platforms also adjust the value of COLORS
|
||||||
|
* according to this function -- 16 for false, and 8 for true.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
int PDC_set_blink(bool blinkon)
|
||||||
|
{
|
||||||
|
#warning Missing logic
|
||||||
|
return ERR;
|
||||||
|
}
|
97
graphics/pdcurs34/nuttx/pdcutil.c
Normal file
97
graphics/pdcurs34/nuttx/pdcutil.c
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
* apps/graphics/nuttx/pdcutil.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2017 Gregory Nutt. All rights reserved.
|
||||||
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in
|
||||||
|
* the documentation and/or other materials provided with the
|
||||||
|
* distribution.
|
||||||
|
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||||
|
* used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||||
|
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||||
|
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Included Files
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#include <poll.h>
|
||||||
|
|
||||||
|
#include "pdcnuttx.h"
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Public Functions
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_beep
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Emits a short audible beep. If this is not possible on your platform,
|
||||||
|
* you must set SP->audible to false during initialization (i.e., from
|
||||||
|
* PDC_scr_open() -- not here); otherwise, set it to true. This function is
|
||||||
|
* called from beep().
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
void PDC_beep(void)
|
||||||
|
{
|
||||||
|
PDC_LOG(("PDC_beep() - called\n"));
|
||||||
|
#warning Missing logic
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_napms
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* This is the core delay routine, called by napms(). It pauses for about
|
||||||
|
* (the X/Open spec says "at least") ms milliseconds, then returns. High
|
||||||
|
* degrees of accuracy and precision are not expected (though desirable, if
|
||||||
|
* you can achieve them). More important is that this function gives back
|
||||||
|
* the process' time slice to the OS, so that PDCurses idles at low CPU
|
||||||
|
* usage.
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
void PDC_napms(int ms)
|
||||||
|
{
|
||||||
|
PDC_LOG(("PDC_napms() - called: ms=%d\n", ms));
|
||||||
|
#warning Missing logic
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: PDC_sysname
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Returns a short string describing the platform, such as "DOS" or "X11".
|
||||||
|
* This is used by longname(). It must be no more than 100 characters; it
|
||||||
|
* should be much, much shorter (existing platforms use no more than 5).
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
const char *PDC_sysname(void)
|
||||||
|
{
|
||||||
|
return "NuttX";
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user