2 Skelton for retropc emulator
4 Author : Takeda.Toshiya
12 void OSD::initialize(int rate, int samples)
15 OSVERSIONINFO os_info;
16 os_info.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
17 GetVersionEx(&os_info);
18 vista_or_later = (os_info.dwPlatformId == 2 && (os_info.dwMajorVersion > 6 || (os_info.dwMajorVersion == 6 && os_info.dwMinorVersion >= 0)));
20 GdiplusStartup(&gdiToken, &gdiSI, NULL);
23 initialize_sound(rate, samples);
24 #if defined(USE_MOVIE_PLAYER) || defined(USE_VIDEO_CAPTURE)
38 #if defined(USE_MOVIE_PLAYER) || defined(USE_VIDEO_CAPTURE)
45 GdiplusShutdown(gdiToken);
50 PostMessage(main_window_handle, WM_CLOSE, 0, 0L);
55 #ifdef USE_MOVIE_PLAYER
56 if(now_movie_play && !now_movie_pause) {
58 now_movie_pause = false;
66 #ifdef USE_MOVIE_PLAYER
67 if(now_movie_play && !now_movie_pause) {
80 if(--lock_count <= 0) {
85 void OSD::force_unlock_vm()
90 void OSD::sleep(uint32_t ms)
96 FARPROC hWndProc = NULL;
99 LRESULT CALLBACK MyWndProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
107 HDC hdc = BeginPaint(hWnd, &ps);
108 #ifdef ONE_BOARD_MICRO_COMPUTER
109 my_osd->reload_bitmap();
111 my_osd->update_screen(hdc);
116 return DefWindowProc(hWnd, iMsg, wParam, lParam);
119 void OSD::start_waiting_in_debugger()
121 HMENU hMenu = GetMenu(main_window_handle);
124 for(int i = 0;; i++) {
125 if(EnableMenuItem(hMenu, i, MF_BYPOSITION | MF_GRAYED) == -1) {
130 hWndProc = (FARPROC)GetWindowLong(main_window_handle, GWL_WNDPROC);
131 SetWindowLong(main_window_handle, GWL_WNDPROC, (LONG)MyWndProc);
135 void OSD::finish_waiting_in_debugger()
137 HMENU hMenu = GetMenu(main_window_handle);
140 for(int i = 0;; i++) {
141 if(EnableMenuItem(hMenu, i, MF_BYPOSITION | MF_ENABLED) == -1) {
146 SetWindowLong(main_window_handle, GWL_WNDPROC, (LONG)hWndProc);
150 void OSD::process_waiting_in_debugger()
154 while(PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE)) {
155 if(GetMessage(&msg, NULL, 0, 0)) {
156 TranslateMessage(&msg);
157 DispatchMessage(&msg);