Moved kernel initialization to kernel_main.c
[wine] / dlls / ttydrv / ttydrv_main.c
1 /*
2  * TTYDRV initialization code
3  */
4
5 #include "config.h"
6
7 #include <stdio.h>
8
9 #include "winbase.h"
10 #include "clipboard.h"
11 #include "gdi.h"
12 #include "message.h"
13 #include "monitor.h"
14 #include "mouse.h"
15 #include "user.h"
16 #include "win.h"
17 #include "debugtools.h"
18 #include "ttydrv.h"
19
20 DEFAULT_DEBUG_CHANNEL(ttydrv);
21
22 static USER_DRIVER user_driver =
23 {
24     /* event functions */
25     TTYDRV_EVENT_Synchronize,
26     TTYDRV_EVENT_CheckFocus,
27     TTYDRV_EVENT_UserRepaintDisable,
28     /* keyboard functions */
29     TTYDRV_KEYBOARD_Init,
30     TTYDRV_KEYBOARD_VkKeyScan,
31     TTYDRV_KEYBOARD_MapVirtualKey,
32     TTYDRV_KEYBOARD_GetKeyNameText,
33     TTYDRV_KEYBOARD_ToAscii,
34     TTYDRV_KEYBOARD_GetBeepActive,
35     TTYDRV_KEYBOARD_SetBeepActive,
36     TTYDRV_KEYBOARD_Beep,
37     TTYDRV_KEYBOARD_GetDIState,
38     TTYDRV_KEYBOARD_GetDIData,
39     TTYDRV_KEYBOARD_GetKeyboardConfig,
40     TTYDRV_KEYBOARD_SetKeyboardConfig,
41     /* mouse functions */
42     TTYDRV_MOUSE_Init,
43     TTYDRV_MOUSE_SetCursor,
44     TTYDRV_MOUSE_MoveCursor,
45     TTYDRV_MOUSE_EnableWarpPointer,
46     /* screen saver functions */
47     TTYDRV_GetScreenSaveActive,
48     TTYDRV_SetScreenSaveActive,
49     TTYDRV_GetScreenSaveTimeout,
50     TTYDRV_SetScreenSaveTimeout,
51     /* windowing functions */
52     TTYDRV_IsSingleWindow
53 };
54
55 int cell_width = 8;
56 int cell_height = 8;
57 WINDOW *root_window;
58
59
60 /***********************************************************************
61  *           TTYDRV process initialisation routine
62  */
63 static void process_attach(void)
64 {
65     int rows, cols;
66
67     USER_Driver      = &user_driver;
68     CLIPBOARD_Driver = &TTYDRV_CLIPBOARD_Driver;
69     WND_Driver       = &TTYDRV_WND_Driver;
70
71 #ifdef WINE_CURSES
72     if ((root_window = initscr()))
73     {
74         werase(root_window);
75         wrefresh(root_window);
76     }
77     getmaxyx(root_window, rows, cols);
78 #else  /* WINE_CURSES */
79     rows = 60; /* FIXME: Hardcoded */
80     cols = 80; /* FIXME: Hardcoded */
81 #endif  /* WINE_CURSES */
82
83     MONITOR_PrimaryMonitor.rect.left   = 0;
84     MONITOR_PrimaryMonitor.rect.top    = 0;
85     MONITOR_PrimaryMonitor.rect.right  = cell_width * cols;
86     MONITOR_PrimaryMonitor.rect.bottom = cell_height * rows;
87     MONITOR_PrimaryMonitor.depth       = 1;
88
89     TTYDRV_GDI_Initialize();
90
91     /* load display.dll */
92     LoadLibrary16( "display" );
93 }
94
95
96 /***********************************************************************
97  *           TTYDRV process termination routine
98  */
99 static void process_detach(void)
100 {
101     TTYDRV_GDI_Finalize();
102
103 #ifdef WINE_CURSES
104     if (root_window) endwin();
105 #endif  /* WINE_CURSES */
106
107     USER_Driver      = NULL;
108     CLIPBOARD_Driver = NULL;
109     WND_Driver       = NULL;
110 }
111
112
113 /***********************************************************************
114  *           TTYDRV initialisation routine
115  */
116 BOOL WINAPI TTYDRV_Init( HINSTANCE hinst, DWORD reason, LPVOID reserved )
117 {
118     static int process_count;
119
120     switch(reason)
121     {
122     case DLL_PROCESS_ATTACH:
123         if (!process_count++) process_attach();
124         break;
125
126     case DLL_PROCESS_DETACH:
127         if (!--process_count) process_detach();
128         break;
129     }
130     return TRUE;
131 }
132
133
134 /***********************************************************************
135  *              TTYDRV_GetScreenSaveActive
136  *
137  * Returns the active status of the screen saver
138  */
139 BOOL TTYDRV_GetScreenSaveActive(void)
140 {
141     return FALSE;
142 }
143
144 /***********************************************************************
145  *              TTYDRV_SetScreenSaveActive
146  *
147  * Activate/Deactivate the screen saver
148  */
149 void TTYDRV_SetScreenSaveActive(BOOL bActivate)
150 {
151     FIXME("(%d): stub\n", bActivate);
152 }
153
154 /***********************************************************************
155  *              TTYDRV_GetScreenSaveTimeout
156  *
157  * Return the screen saver timeout
158  */
159 int TTYDRV_GetScreenSaveTimeout(void)
160 {
161     return 0;
162 }
163
164 /***********************************************************************
165  *              TTYDRV_SetScreenSaveTimeout
166  *
167  * Set the screen saver timeout
168  */
169 void TTYDRV_SetScreenSaveTimeout(int nTimeout)
170 {
171     FIXME("(%d): stub\n", nTimeout);
172 }
173
174 /***********************************************************************
175  *              TTYDRV_IsSingleWindow
176  */
177 BOOL TTYDRV_IsSingleWindow(void)
178 {
179     return TRUE;
180 }