blob: a8d4339d48778d310cd9ae69601d636b7ebb7a5e [file] [log] [blame]
Patrik Stridvallb87fe2e1999-04-01 08:16:08 +00001/*
2 * TTY palette driver
3 *
4 * Copyright 1999 Patrik Stridvall
5 */
6
Dimitrie O. Pauna20b7922000-04-09 18:41:15 +00007#include <stdlib.h>
8
Patrik Stridvall4d715fd1999-11-23 23:43:29 +00009#include "color.h"
10#include "debugtools.h"
Patrik Stridvallb87fe2e1999-04-01 08:16:08 +000011#include "palette.h"
Patrik Stridvallf0deb8a2000-04-15 20:44:21 +000012#include "winbase.h"
Patrik Stridvallb87fe2e1999-04-01 08:16:08 +000013#include "ttydrv.h"
14
Patrik Stridvall4d715fd1999-11-23 23:43:29 +000015DEFAULT_DEBUG_CHANNEL(ttydrv)
16
17/**********************************************************************/
18
19extern DeviceCaps TTYDRV_DC_DevCaps;
20
21extern PALETTEENTRY *COLOR_sysPal;
22extern int COLOR_gapStart;
23extern int COLOR_gapEnd;
24extern int COLOR_gapFilled;
25extern int COLOR_max;
26
27extern const PALETTEENTRY COLOR_sysPalTemplate[NB_RESERVED_COLORS];
28
29/***********************************************************************
Patrik Stridvallb87fe2e1999-04-01 08:16:08 +000030 * TTYDRV_PALETTE_Initialize
31 */
32BOOL TTYDRV_PALETTE_Initialize(void)
33{
Patrik Stridvall4d715fd1999-11-23 23:43:29 +000034 int i;
35
36 TRACE("(void)\n");
37
38 TTYDRV_DC_DevCaps.sizePalette = 256;
39
Dimitrie O. Pauna20b7922000-04-09 18:41:15 +000040 COLOR_sysPal = (PALETTEENTRY *) HeapAlloc(GetProcessHeap(), 0, sizeof(PALETTEENTRY) * TTYDRV_DC_DevCaps.sizePalette);
41 if(COLOR_sysPal == NULL) {
42 WARN("No memory to create system palette!");
43 return FALSE;
44 }
Patrik Stridvall4d715fd1999-11-23 23:43:29 +000045
46 for(i=0; i < TTYDRV_DC_DevCaps.sizePalette; i++ ) {
47 const PALETTEENTRY *src;
48 PALETTEENTRY *dst = &COLOR_sysPal[i];
49
50 if(i < NB_RESERVED_COLORS/2) {
51 src = &COLOR_sysPalTemplate[i];
52 } else if(i >= TTYDRV_DC_DevCaps.sizePalette - NB_RESERVED_COLORS/2) {
53 src = &COLOR_sysPalTemplate[NB_RESERVED_COLORS + i - TTYDRV_DC_DevCaps.sizePalette];
54 } else {
55 PALETTEENTRY pe = { 0, 0, 0, 0 };
56 src = &pe;
57 }
58
59 if((src->peRed + src->peGreen + src->peBlue) <= 0xB0) {
60 dst->peRed = 0;
61 dst->peGreen = 0;
62 dst->peBlue = 0;
63 dst->peFlags = PC_SYS_USED;
64 } else {
65 dst->peRed = 255;
66 dst->peGreen= 255;
67 dst->peBlue = 255;
68 dst->peFlags = PC_SYS_USED;
69 }
70 }
71
72 COLOR_gapStart = NB_RESERVED_COLORS/2;
73 COLOR_gapEnd = NB_RESERVED_COLORS/2;
74
Patrik Stridvallb87fe2e1999-04-01 08:16:08 +000075 return TRUE;
76}
77
Patrik Stridvall4d715fd1999-11-23 23:43:29 +000078/***********************************************************************
Patrik Stridvallb87fe2e1999-04-01 08:16:08 +000079 * TTYDRV_PALETTE_Finalize
80 *
81 */
82void TTYDRV_PALETTE_Finalize(void)
83{
Patrik Stridvall4d715fd1999-11-23 23:43:29 +000084 TRACE("(void)\n");
Patrik Stridvallb87fe2e1999-04-01 08:16:08 +000085}
86
87/***********************************************************************
88 * TTYDRV_PALETTE_SetMapping
89 */
90int TTYDRV_PALETTE_SetMapping(
91 PALETTEOBJ *palPtr, UINT uStart, UINT uNum, BOOL mapOnly)
92{
Patrik Stridvall4d715fd1999-11-23 23:43:29 +000093 FIXME("(%p, %u, %u, %d): stub\n", palPtr, uStart, uNum, mapOnly);
94
Patrik Stridvallb87fe2e1999-04-01 08:16:08 +000095 return 0;
96}
97
98/***********************************************************************
99 * TTYDRV_PALETTE_UpdateMapping
100 */
101int TTYDRV_PALETTE_UpdateMapping(PALETTEOBJ *palPtr)
102{
Patrik Stridvallcf844341999-12-11 23:08:48 +0000103 TRACE("(%p)\n", palPtr);
Patrik Stridvall4d715fd1999-11-23 23:43:29 +0000104
Patrik Stridvallb87fe2e1999-04-01 08:16:08 +0000105 return 0;
106}
Richard Mortimerbce5f881999-04-10 16:37:43 +0000107
108/***********************************************************************
109 * TTYDRV_PALETTE_IsDark
110 */
111int TTYDRV_PALETTE_IsDark(int pixel)
112{
Patrik Stridvall4d715fd1999-11-23 23:43:29 +0000113 FIXME("(%d): stub\n", pixel);
114
Richard Mortimerbce5f881999-04-10 16:37:43 +0000115 return 0;
116}