+39
-7
main.cpp
+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"