MiniDisplay.cpp
author StephaneLenclud
Sun, 31 Aug 2014 22:57:32 +0200
changeset 18 96c013c63595
parent 17 591e9f922c63
child 19 9f659cde9ee8
permissions -rw-r--r--
Display auto detect implementation.
sl@2
     1
sl@2
     2
#include "MiniDisplay.h"
sl@8
     3
#include "FutabaGP1212A01.h"
sl@10
     4
#include "FutabaGP1212A02.h"
sl@2
     5
sl@2
     6
StephaneLenclud@18
     7
MiniDisplayDevice MiniDisplayOpen(TMiniDisplayType aType, bool aAutoDetect)
sl@2
     8
	{
sl@10
     9
	GraphicDisplay* device=NULL;
sl@10
    10
sl@10
    11
	switch (aType)
sl@10
    12
		{
sl@10
    13
	case EMiniDisplayAutoDetect:
sl@10
    14
	case EMiniDisplayFutabaGP1212A01:
sl@10
    15
		device=new GP1212A01A();
sl@10
    16
		break;
sl@10
    17
		
sl@10
    18
	case EMiniDisplayFutabaGP1212A02:
sl@10
    19
		device=new GP1212A02A();
sl@10
    20
		break;
StephaneLenclud@18
    21
StephaneLenclud@18
    22
	case EMiniDisplayAutoDetectFailed:
StephaneLenclud@18
    23
		//Auto detect sequence failed
StephaneLenclud@18
    24
		return NULL;
StephaneLenclud@18
    25
		break;
sl@10
    26
		};
sl@10
    27
sl@2
    28
	int success = device->Open();
sl@2
    29
	if (!success)
sl@2
    30
		{
sl@2
    31
		delete device;
sl@10
    32
		device=NULL;
StephaneLenclud@18
    33
		if (aAutoDetect)
StephaneLenclud@18
    34
			{
StephaneLenclud@18
    35
			//Go recursive for auto detect
StephaneLenclud@18
    36
			int typeValue=(int)aType;
StephaneLenclud@18
    37
			typeValue++;
StephaneLenclud@18
    38
			TMiniDisplayType nextType=(TMiniDisplayType)typeValue;
StephaneLenclud@18
    39
			return MiniDisplayOpen(nextType,aAutoDetect);
StephaneLenclud@18
    40
			}
sl@2
    41
		}
sl@2
    42
sl@2
    43
	return device;
sl@2
    44
	}
sl@2
    45
StephaneLenclud@18
    46
StephaneLenclud@18
    47
//Open & Close functions
StephaneLenclud@18
    48
MiniDisplayDevice MiniDisplayOpen(TMiniDisplayType aType)
StephaneLenclud@18
    49
	{
StephaneLenclud@18
    50
	bool autoDetect=aType==EMiniDisplayAutoDetect;
StephaneLenclud@18
    51
	return MiniDisplayOpen(EMiniDisplayFutabaGP1212A01,autoDetect);
StephaneLenclud@18
    52
	}
StephaneLenclud@18
    53
StephaneLenclud@18
    54
StephaneLenclud@18
    55
StephaneLenclud@18
    56
sl@10
    57
//
sl@10
    58
sl@2
    59
void MiniDisplayClose(MiniDisplayDevice aDevice)
sl@4
    60
	{
sl@10
    61
	delete ((GraphicDisplay*)aDevice);
sl@2
    62
	}
sl@2
    63
sl@2
    64
sl@2
    65
void MiniDisplayClear(MiniDisplayDevice aDevice)
sl@2
    66
	{
sl@2
    67
	if (!aDevice)
sl@2
    68
		{
sl@2
    69
		return;
sl@2
    70
		}
sl@2
    71
sl@10
    72
	((GraphicDisplay*)aDevice)->Clear();
sl@2
    73
	}
sl@2
    74
sl@2
    75
sl@2
    76
void MiniDisplayFill(MiniDisplayDevice aDevice)
sl@2
    77
	{
sl@2
    78
	if (!aDevice)
sl@2
    79
		{
sl@2
    80
		return;
sl@2
    81
		}
sl@4
    82
sl@10
    83
	((GraphicDisplay*)aDevice)->Fill();
sl@2
    84
	}
sl@2
    85
sl@2
    86
sl@2
    87
void MiniDisplaySwapBuffers(MiniDisplayDevice aDevice)
sl@2
    88
	{
sl@2
    89
	if (!aDevice)
sl@2
    90
		{
sl@2
    91
		return;
sl@2
    92
		}
sl@4
    93
sl@10
    94
	((GraphicDisplay*)aDevice)->SwapBuffers();
sl@2
    95
	}
sl@2
    96
sl@2
    97
//-------------------------------------------------------------
sl@2
    98
int MiniDisplayMaxBrightness(MiniDisplayDevice aDevice)
sl@2
    99
	{
sl@2
   100
	if (!aDevice)
sl@2
   101
		{
sl@2
   102
		return 0;
sl@2
   103
		}
sl@2
   104
sl@10
   105
	return ((GraphicDisplay*)aDevice)->MaxBrightness();
sl@2
   106
	}
sl@2
   107
sl@2
   108
//-------------------------------------------------------------
sl@2
   109
int MiniDisplayMinBrightness(MiniDisplayDevice aDevice)
sl@2
   110
	{
sl@2
   111
	if (!aDevice)
sl@2
   112
		{
sl@2
   113
		return 0;
sl@2
   114
		}
sl@2
   115
sl@10
   116
	return ((GraphicDisplay*)aDevice)->MinBrightness();
sl@2
   117
	}
sl@2
   118
sl@2
   119
//-------------------------------------------------------------
sl@2
   120
void MiniDisplaySetBrightness(MiniDisplayDevice aDevice, int aBrightness)
sl@2
   121
	{
sl@2
   122
	if (!aDevice)
sl@2
   123
		{
sl@2
   124
		return;
sl@2
   125
		}
sl@2
   126
sl@10
   127
	((GraphicDisplay*)aDevice)->SetBrightness(aBrightness);
sl@2
   128
	}
sl@2
   129
sl@3
   130
//-------------------------------------------------------------
sl@3
   131
int MiniDisplayWidthInPixels(MiniDisplayDevice aDevice)
sl@3
   132
	{
sl@3
   133
	if (!aDevice)
sl@3
   134
		{
sl@3
   135
		return 0;
sl@3
   136
		}
sl@3
   137
sl@10
   138
	return ((GraphicDisplay*)aDevice)->WidthInPixels();
sl@3
   139
	}
sl@3
   140
sl@3
   141
//-------------------------------------------------------------
sl@3
   142
int MiniDisplayHeightInPixels(MiniDisplayDevice aDevice)
sl@3
   143
	{
sl@3
   144
	if (!aDevice)
sl@3
   145
		{
sl@3
   146
		return 0;
sl@3
   147
		}
sl@3
   148
sl@10
   149
	return ((GraphicDisplay*)aDevice)->HeightInPixels();
sl@3
   150
	}
sl@3
   151
sl@3
   152
//-------------------------------------------------------------
sl@3
   153
void MiniDisplaySetPixel(MiniDisplayDevice aDevice, int aX, int aY, int aValue)
sl@3
   154
	{
sl@3
   155
	//aValue&=0x00FFFFFF; //Filter out alpha component
sl@10
   156
	return ((GraphicDisplay*)aDevice)->SetPixel(aX,aY,aValue);
sl@3
   157
	}
sl@3
   158
sl@4
   159
//-------------------------------------------------------------
sl@4
   160
wchar_t* MiniDisplayVendor(MiniDisplayDevice aDevice)
sl@4
   161
    {
sl@15
   162
    return ((GraphicDisplay*)aDevice)->Vendor();
sl@4
   163
    }
sl@4
   164
sl@4
   165
//-------------------------------------------------------------
sl@4
   166
wchar_t* MiniDisplayProduct(MiniDisplayDevice aDevice)
sl@4
   167
    {
sl@15
   168
    return ((GraphicDisplay*)aDevice)->Product();
sl@4
   169
    }
sl@4
   170
sl@4
   171
//-------------------------------------------------------------
sl@4
   172
wchar_t* MiniDisplaySerialNumber(MiniDisplayDevice aDevice)
sl@4
   173
    {
sl@15
   174
    return ((GraphicDisplay*)aDevice)->SerialNumber();
sl@4
   175
    }
sl@4
   176
sl@4
   177
//-------------------------------------------------------------
sl@11
   178
void MiniDisplayRequest(MiniDisplayDevice aDevice, TMiniDisplayRequest aRequest)
sl@4
   179
    {
sl@11
   180
    ((GraphicDisplay*)aDevice)->Request(aRequest);
sl@4
   181
    }
sl@4
   182
sl@4
   183
//-------------------------------------------------------------
sl@4
   184
bool MiniDisplayRequestPending(MiniDisplayDevice aDevice)
sl@4
   185
    {
sl@12
   186
    return ((GraphicDisplay*)aDevice)->RequestPending();
sl@4
   187
    }
sl@4
   188
sl@4
   189
//-------------------------------------------------------------
sl@4
   190
TMiniDisplayRequest MiniDisplayCurrentRequest(MiniDisplayDevice aDevice)
sl@4
   191
    {
sl@12
   192
    return ((GraphicDisplay*)aDevice)->CurrentRequest();
sl@4
   193
    }
sl@4
   194
sl@4
   195
//-------------------------------------------------------------
sl@4
   196
void MiniDisplayCancelRequest(MiniDisplayDevice aDevice)
sl@4
   197
    {
sl@15
   198
    ((GraphicDisplay*)aDevice)->CancelRequest();
sl@4
   199
    }
sl@4
   200
sl@5
   201
//-------------------------------------------------------------
sl@6
   202
TMiniDisplayRequest MiniDisplayAttemptRequestCompletion(MiniDisplayDevice aDevice)
sl@5
   203
	{
sl@12
   204
	return ((GraphicDisplay*)aDevice)->AttemptRequestCompletion();
sl@5
   205
	}
sl@5
   206
sl@5
   207
//-------------------------------------------------------------
sl@5
   208
char* MiniDisplayDeviceId(MiniDisplayDevice aDevice)
sl@5
   209
	{
sl@12
   210
	return ((GraphicDisplay*)aDevice)->DeviceId();
sl@5
   211
	}
sl@5
   212
sl@5
   213
//-------------------------------------------------------------
sl@5
   214
char* MiniDisplayFirmwareRevision(MiniDisplayDevice aDevice)
sl@5
   215
	{
sl@12
   216
	return ((GraphicDisplay*)aDevice)->FirmwareRevision();
sl@6
   217
	}
sl@6
   218
sl@6
   219
//-------------------------------------------------------------
sl@6
   220
bool MiniDisplayPowerSupplyStatus(MiniDisplayDevice aDevice)
sl@6
   221
	{
sl@16
   222
	return ((GraphicDisplay*)aDevice)->IsPowerOn();
sl@16
   223
	}
sl@16
   224
sl@16
   225
//-------------------------------------------------------------
sl@16
   226
void MiniDisplayPowerOn(MiniDisplayDevice aDevice)
sl@16
   227
    {
sl@16
   228
    ((GraphicDisplay*)aDevice)->TurnPowerOn();
sl@16
   229
    }
sl@16
   230
sl@16
   231
//-------------------------------------------------------------
sl@16
   232
void MiniDisplayPowerOff(MiniDisplayDevice aDevice)
sl@16
   233
    {
sl@16
   234
    ((GraphicDisplay*)aDevice)->TurnPowerOff();
sl@16
   235
    }
sl@16
   236
sl@16
   237
//-------------------------------------------------------------
sl@16
   238
bool MiniDisplaySupportPowerOnOff(MiniDisplayDevice aDevice)
sl@16
   239
    {
sl@16
   240
    return ((GraphicDisplay*)aDevice)->SupportPowerOnOff();
sl@17
   241
    }
sl@17
   242
sl@17
   243
//-------------------------------------------------------------
sl@17
   244
void MiniDisplayShowClock(MiniDisplayDevice aDevice)
sl@17
   245
    {
sl@17
   246
    ((GraphicDisplay*)aDevice)->ShowClock();
sl@17
   247
    }
sl@17
   248
sl@17
   249
//-------------------------------------------------------------
sl@17
   250
void MiniDisplayHideClock(MiniDisplayDevice aDevice)
sl@17
   251
    {
sl@17
   252
    ((GraphicDisplay*)aDevice)->HideClock();
sl@17
   253
    }
sl@17
   254
sl@17
   255
//-------------------------------------------------------------
sl@17
   256
bool MiniDisplaySupportClock(MiniDisplayDevice aDevice)
sl@17
   257
    {
sl@17
   258
    return ((GraphicDisplay*)aDevice)->SupportClock();
sl@16
   259
    }