view src/condat/com/include/dspl.h @ 303:f76436d19a7a default tip

!GPRS config: fix long-standing AT+COPS chance hanging bug There has been a long-standing bug in FreeCalypso going back years: sometimes in the AT command bring-up sequence of an ACI-only MS, the AT+COPS command would produce only a power scan followed by cessation of protocol stack activity (only L1 ADC traces), instead of the expected network search sequence. This behaviour was seen in different FC firmware versions going back to Citrine, and seemed to follow some law of chance, not reliably repeatable. This bug has been tracked down and found to be specific to !GPRS configuration, stemming from our TCS2/TCS3 hybrid and reconstruction of !GPRS support that was bitrotten in TCS3.2/LoCosto version. ACI module psa_mms.c, needed only for !GPRS, was missing in the TCS3 version and had to be pulled from TCS2 - but as it turns out, there is a new field in the MMR_REG_REQ primitive that needs to be set correctly, and that psa_mms.c module is the place where this initialization needed to be added.
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 08 Jun 2023 08:23:37 +0000
parents 4e78acac3d88
children
line wrap: on
line source

/* 
+----------------------------------------------------------------------------- 
|  Project :  GSM (6103)
|  Modul   :  
+----------------------------------------------------------------------------- 
|  Copyright 2002 Texas Instruments Berlin, AG 
|                 All rights reserved. 
| 
|                 This file is confidential and a trade secret of Texas 
|                 Instruments Berlin, AG 
|                 The receipt of or possession of this file does not convey 
|                 any rights to reproduce or disclose its contents or to 
|                 manufacture, use, or sell anything it may describe, in 
|                 whole, or in part, without the specific written consent of 
|                 Texas Instruments Berlin, AG. 
+----------------------------------------------------------------------------- 
|  Purpose :  Types definitions for the display driver
|             .
+-----------------------------------------------------------------------------
     History:
 	Sept 15, 2005 REF: LOCOSTO-ENH-34257 - xpradipg
	Description: Locosto: MIgration to New LCD APIs
	Solution: Migrated to New APIs by replacing the old driver APIs with
	corresponding New LCD APIs
+----------------------------------------------------------------------------- 
*/ 
#ifndef DSPL_H
#define DSPL_H
#include "font_bitmaps.h"

//Sept 15, 2005 REF: LOCOSTO-ENH-34257 - xpradipg
//The file is included for the definition of T_RV_RET


/*
 *   Device Capabilities data Type
 */
typedef struct dspl_DevCaps
{
  UBYTE    DisplayType;
  USHORT   Width;
  USHORT   Height;
} dspl_DevCaps;

/*
 * Display Types
 */
#define    DSPL_TYPE_CHARACTER    0
#define    DSPL_TYPE_GRAPHIC      1
#define    DSPL_TYPE_COLOR        2

/*
 * Character Types
 */

#define    DSPL_TYPE_ASCII         1
#define    DSPL_TYPE_UNICODE      2
#define    DSPL_TYPE_ASCII_12_6    3


/*
 * Display Text Attributes
 */
#define    DSPL_TXTATTR_NORMAL              0x00
#define    DSPL_TXTATTR_INVERS              0x01
#define    DSPL_TXTATTR_UNICODE             0x02
#define   DSPL_TXTATTR_CURRENT_MODE         0x04    /*Represents the string in the current display mode,unicode or ASCII*/
#define   DSPL_TXTATTR_SIGNED_COORDS        0x08    /*SH - if this is set, coordinates can have negative numbers*/
#define    DSPL_TXTATTR_HLIGHT    			0x10   /*Same as 'inverse' on B+W - diff colour highlight on colour display */

/*
 * Cursor Types
 */
#define    DSPL_FBOX_CURSOR_TYPE  1
#define    DSPL_OBOX_CURSOR_TYPE  2
#define    DSPL_TLIN_CURSOR_TYPE  3
#define    DSPL_BLIN_CURSOR_TYPE  4

#define    DSPL_SLOWFLASH_MODE    1
#define    DSPL_FASTFLASH_MODE    2
#define    DSPL_STATIC_MODE       3

#define    DSPL_CURSOR_VISIBLE    1
#define    DSPL_CURSOR_INVISIBLE  0
/*
 * Raster Operations
 */
#define    DSPL_BMPINVERT         1
#define    DSPL_BMPAND            2
#define    DSPL_BMPCOPY           4
#define    DSPL_BMPERASE          8
#define    DSPL_BMPPAINT          16


/*mc, SPR 1319 moved definitions to header*/
#define TXT_STYLE_NORMAL		(0)
#define TXT_STYLE_INVERT		(1)
#define TXT_STYLE_HIGHLIGHT		(2)
#define TXT_STYLE_BORDER		(3)
#define TXT_STYLE_SHADOW1		(4)
#define TXT_STYLE_SHADOW2		(5)
#define TXT_STYLE_2PIXEL_BORDER		(6)
#define TXT_STYLE_3PIXEL_BORDER		(7)
#define TXT_STYLE_4PIXEL_BORDER		(8)
#define TXT_STYLE_MASK			(0x00FF)
#define TXT_STYLE_WIDECHAR		(0x0100)
#define TXT_STYLE_HIGHCHAR		(0x0200)
#define TXT_STYLE_UNICODE		(0x0400)

/*mc end*/

/*
 * Return Values
 */
#define    DSPL_FCT_NOTSUPPORTED  1

#if defined (NEW_FRAME)
/*
 * to achieve backward compatibility with older definitions
 */
#define drv_SignalCB_Type           T_DRV_CB_FUNC
#define drv_SignalID_Type           T_DRV_SIGNAL
#define T_VSI_THANDLE               USHORT
#endif

/*
 * Prototypes
 */

EXTERN UBYTE    dspl_Init                (void);
EXTERN void     dspl_Exit                (void);
EXTERN UBYTE    dspl_Clear               (USHORT              in_X1,
                                          USHORT              in_Y1,
                                          USHORT              in_X2,
                                          USHORT              in_Y2);
EXTERN UBYTE    dspl_ClearAll            (void);
EXTERN UBYTE dspl_unfocusDisplay (void);

EXTERN UBYTE    dspl_Enable              (UBYTE               in_Enable);
EXTERN void     dspl_GetDeviceCaps       (dspl_DevCaps      * out_DeviceCapsPtr);
EXTERN void     dspl_SetDeviceCaps       (dspl_DevCaps      * in_DeviceCapsPtr);
EXTERN UBYTE    dspl_GetIconImage        (UBYTE               in_Icon,
                                          USHORT              in_Size,
                                          UBYTE             * out_IconImagePtr);
EXTERN UBYTE    dspl_SetCursor           (UBYTE               in_CursorType,
                                          UBYTE               in_CursorMode);
EXTERN UBYTE    dspl_SetCursorPos        (USHORT              in_X,
                                          USHORT              in_Y,
                                          USHORT              in_SizeX,
                                          USHORT              in_SizeY);//GW 05/09/01
EXTERN UBYTE    dspl_ShowCursor          (UBYTE               in_Show);
EXTERN UBYTE    dspl_SetBkgColor         (UBYTE               in_Color);
EXTERN UBYTE    dspl_SetFrgColor         (UBYTE               in_Color);
EXTERN UBYTE    dspl_DrawIcon            (UBYTE               in_IconID,
                                          USHORT              in_X,
                                          USHORT              in_Y);
EXTERN UBYTE    dspl_DrawLine            (USHORT              in_X1,
                                          USHORT              in_Y1,
                                          USHORT              in_X2,
                                          USHORT              in_Y2);
EXTERN UBYTE    dspl_DrawRect            (USHORT              in_X1,
                                          USHORT              in_Y1,
                                          USHORT              in_X2,
                                          USHORT              in_Y2);
EXTERN UBYTE dspl_roundRect (int px,
                            	int  py,
                            	int sx,
                            	int sy,
                            	int border);
EXTERN UBYTE dspl_roundRectFill (int px,
                            	int  py,
                            	int sx,
                            	int sy,
                            	int border);
EXTERN UBYTE dspl_DrawFilledRect (USHORT in_X1,
								  USHORT in_Y1,
								  USHORT in_X2,
								  USHORT in_Y2);
EXTERN UBYTE dspl_DrawFilledBgdRect (USHORT in_X1,
								  USHORT in_Y1,
								  USHORT in_X2,
								  USHORT in_Y2);
EXTERN UBYTE dspl_DrawFilledColRect (USHORT in_X1,
								  USHORT in_Y1,
								  USHORT in_X2,
								  USHORT in_Y2,
								  U32 Col);

EXTERN UBYTE    dspl_Ellipse             (USHORT              in_X1,
                                          USHORT              in_Y1,
                                          USHORT              in_X2,
                                          USHORT              in_Y2);
EXTERN UBYTE    dspl_BitBlt              (USHORT              in_X,
                                          USHORT              in_Y,
                                          USHORT              in_Width,
                                          USHORT              in_Height,
                                          USHORT              in_Index,
                                          void              * in_BmpPtr,
                                          USHORT              in_Rop);
EXTERN UBYTE dspl_BitBlt2(short in_X,
                          short in_Y,
                          USHORT in_Width,
                          USHORT in_Height,
                          void * in_BmpPtr,
                          USHORT in_index,
                          int bmpFormat);

void fastCopyBitmap(int startX, 	int startY, 	// start position of bitmap
						int bmpSx,	int bmpSy,		//size of bitmap
						char*	srcBitmap,
						int posX,   	int posY,   	// start of area to be copied into
						int sx,     	int sy,     	// size of area to be copied into 
						U32 bgd_col,	int bmptype);

EXTERN UBYTE    dspl_SelectFontbyID      (UBYTE               in_Font);
EXTERN UBYTE    dspl_SelectFontbyImage   (UBYTE             * in_FontPtr);
EXTERN UBYTE    dspl_GetFontImage        (UBYTE               in_Font,
                                          USHORT              in_Size,
                                          UBYTE             * out_FontPtr);
EXTERN UBYTE    dspl_GetFontHeight       (void);
EXTERN USHORT   dspl_GetTextExtent       (char              * in_Text,
                                          USHORT              in_Length);
EXTERN USHORT   dspl_GetMaxTextLen       (char              * in_Text,
                                          USHORT              in_HSize);
EXTERN UBYTE    dspl_TextOut_Cmode             (USHORT              in_X,
                                          USHORT              in_Y,
                                          UBYTE               in_Attrib,
                                          char              * in_Text);
EXTERN UBYTE    dspl_TextOut             (USHORT              in_X,
                                          USHORT              in_Y,
                                          UBYTE               in_Attrib,
                                          char              * in_Text);
EXTERN void dspl_ScrText (int x, int y, char *txt, int style);

EXTERN UBYTE    dspl_SetWorkShadow       (UBYTE             * in_ShadowPtr);
EXTERN UBYTE    dspl_SetDisplayShadow    (UBYTE             * in_ShadowPtr);

EXTERN UBYTE     dspl_str_length(char * str);

EXTERN void dspl_set_char_type(UBYTE char_type);
EXTERN UBYTE dspl_get_char_type(void);

int dspl_getDisplayType( void );

GLOBAL USHORT dspl_GetNcharToFit (char * in_Text, USHORT pixelWidth);/*SPR 1541*/

//Functions to allow us to set-up the border around text.
int dspl_setBorderWidth(int borderSize);
int dspl_getBorderWidth(void);
//Condat UK Resources functions

EXTERN UBYTE dspl_Prompt (USHORT x, USHORT y, UBYTE in_Attrib, int StringID);

//GW Added new prototypes for setting and getting foreground and background colours
//NB Existing (unsupported) procedures cannot be used as these have colour defined as 256 colour not 32bit
EXTERN U32 dspl_SetBgdColour (U32 inColour);
EXTERN U32 dspl_GetBgdColour (void);
EXTERN U32 dspl_SetFgdColour (U32 inColour);
EXTERN U32 dspl_GetFgdColour (void);
GLOBAL void dspl_RestoreColour (void);
GLOBAL void dspl_InitColour (void);

//Select a colour to contrast with another colour -used when the foreground and background colours are the same
int dspl_GetContrastColour( int ipCol);

//Window types when displaying a bitmap
enum {
	DSPL_WIN_NORMAL = 0,
	DSPL_WIN_CENTRE,
	DSPL_WIN_CLIP,
	DSPL_WIN_CENTRE_CLIP,
	DSPL_WIN_TILE,
	DSPL_WIN_LAST
};
//Draw win - create window with display area as specified
EXTERN UBYTE    dspl_DrawWin (	USHORT		in_PX, 	USHORT	in_PY,
             						USHORT 	in_SX,	USHORT	in_SY,
                                    int		format, t_font_bitmap* bmp );

//Functions to allow us to limit where things are drawn - text/bitmaps outside the window are not drawn
GLOBAL UBYTE dspl_SetWindow(USHORT   in_X1,
                         USHORT   in_Y1,
                         USHORT   in_X2,
                         USHORT   in_Y2);
GLOBAL UBYTE dspl_GetWindow(USHORT* x1,USHORT* y1,USHORT* x2,USHORT* y2 );
GLOBAL UBYTE dspl_ResetWindow( void ); //reset to full screen


//GW Added (temp)
typedef enum {
	BMP_FORMAT_BW_PACKED    = 0x00,
	BMP_FORMAT_BW_UNPACKED  =   0x01,/*MC, SPR1319*/
	BMP_FORMAT_256_COLOUR   = 0x02,
	BMP_FORMAT_32BIT_COLOUR = 0x03,
	BMP_FORMAT_16BIT_LCD_COLOUR = 0x04, /* GW matches current LCD data format */
	BMP_FORMAT_16BIT_LCD_COMPRESSED_COLOUR = 0x05, /* GW matches future LCD data format */
	BMP_FORMAT_BW_2x4  = 0x0080, /* GW display bitmap scaled 2x width and 4x height */
	BMP_FORMAT_END

} BMP_FORMAT_ENUM;

#define SHOWBITMAP_NORMAL 0x0000
#define SHOWBITMAP_INVERT 	0x0001
#define SHOWBITMAP_NORMAL_MASK 	0x0001
#define SHOWBITMAP_SCALE_2x4 0x0080

//Enumerated type for display (for MFW layout)
enum {
	DSPL_BW 		= 0,
	DSPL_COLOUR 	= 1,
	DSPL_END
};

//Sept 15, 2005 REF: LOCOSTO-ENH-34257 - xpradipg
enum
{
	DSPL_ACCESS_ENABLE = 0,
	DSPL_ACCESS_DISABLE ,
	DSPL_ACCESS_QUERY
};

#ifdef _SIMULATION_
EXTERN void scrMobUpdate (void);
#endif
#ifdef FF_SSL_ADAPTATION
void dspl_set_to_mixed_mode(void);
void dspl_set_to_mmi_mode(void);
#endif


//xpradipg : New LCD API Migration
//New function added to control the refresh of the LCD, the earlier implement
//-ion of the global variable is moved inside this function and also adopted 
//for the new LCD API migration
EXTERN int	dspl_control(int state);
	
#endif