a mega cool windows xp app

feat: move console to alt menu

dunkirk.sh cc494173 1956c9c0

verified
Changed files
+39 -7
+39 -7
main.cpp
··· 11 11 12 12 #define ID_ABOUT 1001 13 13 #define ID_EXIT 1002 14 + #define ID_TOGGLE_CONSOLE 1003 14 15 15 16 // Radio control IDs 16 17 #define ID_TUNING_DIAL 2001 ··· 66 67 int isDraggingVolume; 67 68 } RadioState; 68 69 70 + // Global console state 71 + int g_consoleVisible = 0; 72 + HWND g_consoleWindow = NULL; 73 + 69 74 RadioState g_radio = {14.230f, 0.8f, 0, 0, 0, 0}; // Increase default volume to 0.8 70 75 AudioState g_audio = {0}; 71 76 ··· 104 109 void UpdateVULevels(); 105 110 106 111 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int nCmdShow) { 107 - // Allocate console for debugging 108 - AllocConsole(); 109 - freopen("CONOUT$", "w", stdout); 110 - freopen("CONOUT$", "w", stderr); 111 - printf("Shortwave Radio Debug Console\n"); 112 - printf("=============================\n"); 113 - 112 + // Don't allocate console by default - will be toggled via menu 113 + 114 114 const char* CLASS_NAME = "ShortwaveRadio"; 115 115 116 116 WNDCLASS wc = {}; ··· 150 150 151 151 // Radio menu 152 152 HMENU hRadioMenu = CreatePopupMenu(); 153 + AppendMenu(hRadioMenu, MF_STRING, ID_TOGGLE_CONSOLE, "&Debug Console"); 154 + AppendMenu(hRadioMenu, MF_SEPARATOR, 0, NULL); 153 155 AppendMenu(hRadioMenu, MF_STRING, ID_ABOUT, "&About"); 154 156 AppendMenu(hRadioMenu, MF_SEPARATOR, 0, NULL); 155 157 AppendMenu(hRadioMenu, MF_STRING, ID_EXIT, "E&xit"); ··· 172 174 // Cleanup audio 173 175 StopAudio(); 174 176 CleanupAudio(); 177 + 178 + // Cleanup console if it exists 179 + if (g_consoleWindow) { 180 + FreeConsole(); 181 + } 175 182 176 183 return 0; 177 184 } ··· 384 391 385 392 case WM_COMMAND: 386 393 switch (LOWORD(wParam)) { 394 + case ID_TOGGLE_CONSOLE: { 395 + if (g_consoleVisible) { 396 + // Hide console 397 + if (g_consoleWindow) { 398 + ShowWindow(g_consoleWindow, SW_HIDE); 399 + } 400 + g_consoleVisible = 0; 401 + } else { 402 + // Show console 403 + if (!g_consoleWindow) { 404 + // First time - allocate console 405 + AllocConsole(); 406 + freopen("CONOUT$", "w", stdout); 407 + freopen("CONOUT$", "w", stderr); 408 + g_consoleWindow = GetConsoleWindow(); 409 + printf("Shortwave Radio Debug Console\n"); 410 + printf("=============================\n"); 411 + } else { 412 + // Console exists, just show it 413 + ShowWindow(g_consoleWindow, SW_SHOW); 414 + } 415 + g_consoleVisible = 1; 416 + } 417 + break; 418 + } 387 419 case ID_ABOUT: { 388 420 const char* aboutText = "Shortwave Radio Tuner\n\n" 389 421 "Version: 1.0.0\n"