void driveclick_init (void) { int v, vv, i, j; char tmp[1000]; driveclick_free (); vv = 0; for (i = 0; i < 4; i++) { if (currprefs.dfxclick[i]) { /* TODO: Implement location of sample data */ #if 0 if (currprefs.dfxclick[i] > 0) { v = 0; if (driveclick_loadresource (drvs[i], currprefs.dfxclick[i])) v = 3; } else if (currprefs.dfxclick[i] == -1) { sprintf (tmp, "%suae_data%cdrive_click_%s", start_path, FSDB_DIR_SEPARATOR, currprefs.dfxclickexternal[i]); v = loadsample (tmp, &drvs[i][DS_CLICK]); sprintf (tmp, "%suae_data%cdrive_spin_%s", start_path, FSDB_DIR_SEPARATOR, currprefs.dfxclickexternal[i]); v += loadsample (tmp, &drvs[i][DS_SPIN]); sprintf (tmp, "%suae_data%cdrive_spinnd_%s", start_path, FSDB_DIR_SEPARATOR, currprefs.dfxclickexternal[i]); v += loadsample (tmp, &drvs[i][DS_SPINND]); sprintf (tmp, "%suae_data%cdrive_startup_%s", start_path, FSDB_DIR_SEPARATOR, currprefs.dfxclickexternal[i]); v += loadsample (tmp, &drvs[i][DS_START]); sprintf (tmp, "%suae_data%cdrive_snatch_%s", start_path, FSDB_DIR_SEPARATOR, currprefs.dfxclickexternal[i]); v += loadsample (tmp, &drvs[i][DS_SNATCH]); } if (v == 0) { int j; for (j = 0; j < DS_END; j++) freesample (&drvs[i][j]); currprefs.dfxclick[i] = changed_prefs.dfxclick[i] = 0; } for (j = 0; j < DS_END; j++) drvs[i][j].len <<= DS_SHIFT; drvs[i][DS_CLICK].pos = drvs[i][DS_CLICK].len; drvs[i][DS_SNATCH].pos = drvs[i][DS_SNATCH].len; vv += currprefs.dfxclick[i]; #endif } } if (vv > 0) { driveclick_reset (); click_initialized = 1; } }
void driveclick_init (void) { int v, vv, i, j; TCHAR tmp[MAX_DPATH]; driveclick_fdrawcmd_detect (); driveclick_free (); vv = 0; for (i = 0; i < 4; i++) { for (j = 0; j < CLICK_TRACKS; j++) { drvs[i][DS_CLICK].indexes[j] = 0; drvs[i][DS_CLICK].lengths[j] = 0; } if (currprefs.dfxclick[i]) { if (currprefs.dfxclick[i] > 0) { v = 0; switch(currprefs.dfxclick[i]) { case 1: if (driveclick_loadresource (drvs[i], currprefs.dfxclick[i])) v = 3; for (j = 0; j < CLICK_TRACKS; j++) drvs[i][DS_CLICK].lengths[j] = drvs[i][DS_CLICK].len; wave_initialized = 1; break; default: if (driveclick_fdrawcmd_open (currprefs.dfxclick[i] - 2)) v = 1; break; } } else if (currprefs.dfxclick[i] == -1) { TCHAR path2[MAX_DPATH]; wave_initialized = 1; for (j = 0; j < CLICK_TRACKS; j++) drvs[i][DS_CLICK].lengths[j] = drvs[i][DS_CLICK].len; // _stprintf (tmp, "%splugins%cfloppysounds%c", "./", FSDB_DIR_SEPARATOR, FSDB_DIR_SEPARATOR, FSDB_DIR_SEPARATOR); // if (my_existsdir (tmp)) // _tcscpy (path2, tmp); // else _stprintf (path2, "%suae_data%c", "./", FSDB_DIR_SEPARATOR); _stprintf (tmp, "%sdrive_click_LOUD%s", path2, currprefs.dfxclickexternal[i]); v = loadsample (tmp, &drvs[i][DS_CLICK]); if (v) processclicks (&drvs[i][DS_CLICK]); _stprintf (tmp, "%sdrive_spin_LOUD%s", path2, currprefs.dfxclickexternal[i]); v += loadsample (tmp, &drvs[i][DS_SPIN]); _stprintf (tmp, "%sdrive_spinnd_LOUD%s", path2, currprefs.dfxclickexternal[i]); v += loadsample (tmp, &drvs[i][DS_SPINND]); _stprintf (tmp, "%sdrive_startup_LOUD%s", path2, currprefs.dfxclickexternal[i]); v += loadsample (tmp, &drvs[i][DS_START]); _stprintf (tmp, "%sdrive_snatch_LOUD%s", path2, currprefs.dfxclickexternal[i]); v += loadsample (tmp, &drvs[i][DS_SNATCH]); } if (v == 0) { int j; for (j = 0; j < DS_END; j++) freesample (&drvs[i][j]); currprefs.dfxclick[i] = changed_prefs.dfxclick[i] = 0; } else { vv++; } for (j = 0; j < DS_END; j++) drvs[i][j].len <<= DS_SHIFT; drvs[i][DS_CLICK].pos = drvs[i][DS_CLICK].len; drvs[i][DS_SNATCH].pos = drvs[i][DS_SNATCH].len; } } if (vv > 0) { driveclick_reset (); click_initialized = 1; } }
void do_leave_program (void) { sampler_free (); graphics_leave (); inputdevice_close (); DISK_free (); close_sound (); dump_counts (); #ifdef SERIAL_PORT serial_exit (); #endif #ifdef CDTV cdtv_free(); cdtvcr_free(); #endif #ifdef A2091 a2091_free (); gvp_free (); a3000scsi_free (); #endif soft_scsi_free(); #ifdef NCR ncr_free(); #endif #ifdef NCR9X ncr9x_free(); #endif #ifdef CD32 akiko_free (); cd32_fmv_free(); #endif if (! no_gui) gui_exit (); #ifdef USE_SDL SDL_Quit (); #endif #ifdef AUTOCONFIG expansion_cleanup (); #endif #ifdef WITH_PCI pci_free(); #endif #ifdef FILESYS filesys_cleanup (); #endif #ifdef BSDSOCKET bsdlib_reset (); #endif gayle_free (); idecontroller_free(); device_func_reset (); #ifdef WITH_LUA uae_lua_free (); #endif #ifdef WITH_PPC uae_ppc_free(); #endif #ifdef WITH_TOCCATA sndboard_free(); #endif gfxboard_free(); savestate_free (); memory_cleanup (); free_shm (); cfgfile_addcfgparam (0); machdep_free (); driveclick_free(); }
void driveclick_init (void) { int v, vv, i, j; TCHAR tmp[MAX_DPATH]; driveclick_fdrawcmd_detect (); driveclick_free (); vv = 0; for (i = 0; i < 4; i++) { struct floppyslot *fs = &currprefs.floppyslots[i]; for (j = 0; j < CLICK_TRACKS; j++) { drvs[i][DS_CLICK].indexes[j] = 0; drvs[i][DS_CLICK].lengths[j] = 0; } if (fs->dfxclick) { if (fs->dfxclick > 0) { v = 0; switch(fs->dfxclick) { case 1: if (driveclick_loadresource (drvs[i], fs->dfxclick)) v = 3; for (j = 0; j < CLICK_TRACKS; j++) drvs[i][DS_CLICK].lengths[j] = drvs[i][DS_CLICK].len; wave_initialized = 1; break; default: if (driveclick_fdrawcmd_open (fs->dfxclick - 2)) v = 1; break; } } else if (fs->dfxclick == -1) { TCHAR path2[MAX_DPATH]; wave_initialized = 1; for (j = 0; j < CLICK_TRACKS; j++) drvs[i][DS_CLICK].lengths[j] = drvs[i][DS_CLICK].len; get_plugin_path (path2, sizeof path2 / sizeof (TCHAR), _T("floppysounds")); _stprintf (tmp, _T("%sdrive_click_%s"), path2, fs->dfxclickexternal); v = loadsample (tmp, &drvs[i][DS_CLICK]); if (v) processclicks (&drvs[i][DS_CLICK]); _stprintf (tmp, _T("%sdrive_spin_%s"), path2, fs->dfxclickexternal); v += loadsample (tmp, &drvs[i][DS_SPIN]); _stprintf (tmp, _T("%sdrive_spinnd_%s"), path2, fs->dfxclickexternal); v += loadsample (tmp, &drvs[i][DS_SPINND]); _stprintf (tmp, _T("%sdrive_startup_%s"), path2, fs->dfxclickexternal); v += loadsample (tmp, &drvs[i][DS_START]); _stprintf (tmp, _T("%sdrive_snatch_%s"), path2, fs->dfxclickexternal); v += loadsample (tmp, &drvs[i][DS_SNATCH]); } if (v == 0) { int j; for (j = 0; j < DS_END; j++) freesample (&drvs[i][j]); fs->dfxclick = changed_prefs.floppyslots[i].dfxclick = 0; } else { vv++; } for (j = 0; j < DS_END; j++) drvs[i][j].len <<= DS_SHIFT; drvs[i][DS_CLICK].pos = drvs[i][DS_CLICK].len; drvs[i][DS_SNATCH].pos = drvs[i][DS_SNATCH].len; } } driveclick_reset (); if (vv > 0) click_initialized = 1; }