DO ONE-TIME INITIALIZATION
| 624 | |
| 625 | // DO ONE-TIME INITIALIZATION |
| 626 | static void OneTimeInitialization(HINSTANCE passinstance) |
| 627 | { |
| 628 | // Currently only support one RIFF file |
| 629 | if (!g_cmdLine.wavFileSpeaker.empty()) |
| 630 | { |
| 631 | if (RiffInitWriteFile(g_cmdLine.wavFileSpeaker.c_str(), SPKR_SAMPLE_RATE, Spkr_GetNumChannels())) |
| 632 | Spkr_OutputToRiff(); |
| 633 | } |
| 634 | else if (!g_cmdLine.wavFileMockingboard.empty()) |
| 635 | { |
| 636 | if (RiffInitWriteFile(g_cmdLine.wavFileMockingboard.c_str(), MockingboardCard::SAMPLE_RATE, MockingboardCard::NUM_MB_CHANNELS)) |
| 637 | GetCardMgr().GetMockingboardCardMgr().OutputToRiff(); |
| 638 | } |
| 639 | |
| 640 | // Initialize COM - so we can use CoCreateInstance |
| 641 | // . DSInit() & DIMouse::DirectInputInit are done when g_hFrameWindow is created (WM_CREATE) |
| 642 | // . DDInit() is done in RepeatInitialization() by GetVideo().Initialize() |
| 643 | HRESULT hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED); |
| 644 | LogFileOutput("Init: CoInitializeEx(), hr=0x%08X\n", hr); |
| 645 | |
| 646 | g_bSysClkOK = SysClk_InitTimer(); |
| 647 | LogFileOutput("Init: SysClk_InitTimer(), res=%d\n", g_bSysClkOK ? 1:0); |
| 648 | #ifdef USE_SPEECH_API |
| 649 | if (g_bEnableSpeech) |
| 650 | { |
| 651 | const bool bSpeechOK = g_Speech.Init(); |
| 652 | LogFileOutput("Init: SysClk_InitTimer(), res=%d\n", bSpeechOK ? 1:0); |
| 653 | } |
| 654 | #endif |
| 655 | |
| 656 | GetFrame().g_hInstance = passinstance; |
| 657 | GdiSetBatchLimit(512); |
| 658 | LogFileOutput("Init: GdiSetBatchLimit()\n"); |
| 659 | |
| 660 | GetProgramDirectory(); |
| 661 | LogFileOutput("Init: GetProgramDirectory()\n"); |
| 662 | |
| 663 | if (g_bRegisterFileTypes) |
| 664 | { |
| 665 | RegisterExtensions(); |
| 666 | LogFileOutput("Init: RegisterExtensions()\n"); |
| 667 | } |
| 668 | |
| 669 | Win32Frame::GetWin32Frame().FrameRegisterClass(); |
| 670 | LogFileOutput("Init: FrameRegisterClass()\n"); |
| 671 | } |
| 672 | |
| 673 | // DO INITIALIZATION THAT MUST BE REPEATED FOR A RESTART |
| 674 | static void RepeatInitialization(void) |
no test coverage detected