static void LoadFile(HWND hWnd) { HANDLE fh; static unsigned char module[65000]; DWORD module_len; fh = CreateFile(strFile, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN, NULL); if (fh == INVALID_HANDLE_VALUE) return; if (!ReadFile(fh, module, sizeof(module), &module_len, NULL)) { CloseHandle(fh); return; } CloseHandle(fh); WaveOut_Close(); if (ASAP_Load(strFile, module, (unsigned int) module_len)) { if (!WaveOut_Open(FREQUENCY, use_16bit, ASAP_GetChannels())) { SetSongs(0); Tray_Modify(hWnd, hStopIcon); MessageBox(hWnd, "Error initalizing WaveOut", APP_TITLE, MB_OK | MB_ICONERROR); return; } SetSongs(ASAP_GetSongs()); PlaySong(hWnd, ASAP_GetDefSong()); } else { SetSongs(0); Tray_Modify(hWnd, hStopIcon); MessageBox(hWnd, "Unsupported file format", APP_TITLE, MB_OK | MB_ICONERROR); } }
static void LoadAndPlay(int song) { byte module[ASAP_MODULE_MAX]; int module_len; int duration; if (!loadModule(current_filename, module, &module_len)) return; if (songs > 0) { ClearSongsMenu(); StopPlayback(); songs = 0; EnableMenuItem(hTrayMenu, IDM_SAVE_WAV, MF_BYCOMMAND | MF_GRAYED); } if (!DoLoad(&asap, module, module_len)) return; if (!WaveOut_Open(asap.module_info.channels)) { ShowError("Error initalizing WaveOut"); return; } if (song < 0) song = asap.module_info.default_song; songs = asap.module_info.songs; EnableMenuItem(hTrayMenu, IDM_SAVE_WAV, MF_BYCOMMAND | MF_ENABLED); updateInfoDialog(current_filename, song); SetSongsMenu(songs); CheckMenuRadioItem(hSongMenu, 0, songs - 1, song, MF_BYPOSITION); current_song = song; duration = asap.module_info.durations[song]; if (asap.module_info.loops[song]) duration = -1; ASAP_PlaySong(&asap, song, duration); Tray_Modify(hPlayIcon); WaveOut_Start(); }