Пример #1
0
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;
    }
}
Пример #2
0
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;
    }
}
Пример #3
0
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();
}
Пример #4
0
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;
}