void sound_toggle(void) { #ifdef Z80_EMULATED //puts("sound_toggle"); if (!(sound_muted&0x2)) { if (sound_muted&0x1) sound_enable(); else sound_disable(); } #endif }
void sound_isr_C() { //U64 s = systick_get_ns(); if (sample.count > 0) { // refill the buffer, and adjust any clocks *AT91C_SSC_CMR = sample.clock_div; sound_enable(); if (*AT91C_SSC_TCR == 0) { if (sound_mode == SOUND_MODE_PCM) { sound_fill_sample_buffer(); *AT91C_SSC_TPR = (unsigned int)sample.buf[sample.buf_id]; } else *AT91C_SSC_TPR = (unsigned int)sample.ptr; *AT91C_SSC_TCR = sample.len; sample.count--; } if (sound_mode == SOUND_MODE_PCM) { sound_fill_sample_buffer(); *AT91C_SSC_TNPR = (unsigned int)sample.buf[sample.buf_id]; } else *AT91C_SSC_TNPR = (unsigned int)sample.ptr; *AT91C_SSC_TNCR = sample.len; sample.count--; // If this is the last sample wait for it to complete, otherwise wait // to switch buffers sound_interrupt_enable(AT91C_SSC_ENDTX); } else { sound_disable(); sound_interrupt_disable(); } //ttime += (systick_get_ns() - s); }
int main(int argc, char *argv[]) { int result = ACTION_NONE; int leave = 0; /* i18n */ #ifdef ENABLE_NLS setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); #endif /* ltris info */ printf( "LTris %s\nCopyright 2002-2005 Michael Speck\nPublished under GNU GPL\n---\n", VERSION ); printf( "Looking up data in: %s\n", SRC_DIR ); #ifndef SOUND printf( "Compiled without sound and music\n" ); #endif set_random_seed(); /* set random seed */ /* game ids - not translated to be fixed independant of language */ strcpy(gametype_ids[0],"demo"); strcpy(gametype_ids[1],"classic"); strcpy(gametype_ids[2],"figures"); strcpy(gametype_ids[3],"vshuman"); strcpy(gametype_ids[4],"vscpu"); strcpy(gametype_ids[5],"vshumanhuman"); strcpy(gametype_ids[6],"vshumancpu"); strcpy(gametype_ids[7],"vscpucpu"); /* game names - translated for display */ strcpy(gametype_names[0],_("Demo")); strcpy(gametype_names[1],_("Classic")); strcpy(gametype_names[2],_("Figures")); strcpy(gametype_names[3],_("Vs Human")); strcpy(gametype_names[4],_("Vs CPU")); strcpy(gametype_names[5],_("Vs Human&Human")); strcpy(gametype_names[6],_("Vs Human&CPU")); strcpy(gametype_names[7],_("Vs CPU&CPU")); config_load(); init_sdl( SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER ); set_video_mode( std_video_mode( config.fullscreen ) ); SDL_WM_SetCaption( "LTris", 0 ); sdl.fade = config.fade; SDL_SetEventFilter( event_filter ); #ifdef SOUND audio_open(); sound_enable( config.sound ); sound_volume( config.volume * 16 ); #endif /* create */ hint_load_res(); manager_create(); tetris_create(); chart_load(); /* run game */ manager_fade( FADE_IN ); while( !leave && !term_game ) { result = manager_run(); switch( result ) { case ACTION_QUIT: leave = 1; break; case ACTION_MAKE_STAT: manager_fade( FADE_OUT ); tetris_make_stat(); manager_fade( FADE_IN ); break; case ACTION_PLAY: manager_fade( FADE_OUT ); if ( tetris_init() ) { tetris_run(); tetris_clear(); } manager_fade( FADE_IN ); break; default: break; } } manager_fade( FADE_OUT ); /* delete stuff */ tetris_delete(); manager_delete(); chart_save(); chart_delete(); hint_delete_res(); #ifdef SOUND audio_close(); #endif config_save(); return EXIT_SUCCESS; }
void gnibbles_properties_update (GnibblesProperties * tmp) { gint i; gchar *category; gchar *color_name; tmp->human = g_settings_get_int (settings, "players"); if (tmp->human < 0) tmp->human = 0; else if (tmp->human > NUMWORMS) tmp->human = NUMWORMS; tmp->ai = g_settings_get_int (settings, "ai"); if (tmp->ai < 0) tmp->ai = 0; else if (tmp->ai > NUMWORMS) tmp->ai = NUMWORMS; tmp->numworms = tmp->human + tmp->ai; tmp->gamespeed = g_settings_get_int (settings, "speed"); if (tmp->gamespeed < 1) tmp->gamespeed = 2; else if (tmp->gamespeed > MAX_SPEED) tmp->gamespeed = MAX_SPEED; tmp->fakes = g_settings_get_boolean (settings, "fakes"); tmp->random = g_settings_get_boolean (settings, "random"); tmp->startlevel = g_settings_get_int (settings, "start-level"); if (tmp->startlevel < 1) tmp->startlevel = 1; if (tmp->startlevel > MAXLEVEL) tmp->startlevel = MAXLEVEL; tmp->sound = g_settings_get_boolean (settings, "sound"); sound_enable (tmp->sound); tmp->tilesize = g_settings_get_int (settings, "tile-size"); if (tmp->tilesize < 1) tmp->tilesize = 5; if (tmp->tilesize > 30) tmp->tilesize = 30; for (i = 0; i < NUMWORMS; i++) { tmp->wormprops[i] = g_slice_new0 (GnibblesWormProps); color_name = g_settings_get_string (worm_settings[i], "color"); tmp->wormprops[i]->color = colorval_from_name (color_name); g_free (color_name); if (tmp->wormprops[i]->color < 1) tmp->wormprops[i]->color = (i % NUM_COLORS) + WORMRED; if (tmp->wormprops[i]->color > WORMRED + NUM_COLORS) tmp->wormprops[i]->color = (i % NUM_COLORS) + WORMRED; tmp->wormprops[i]->relmove = g_settings_get_boolean (worm_settings[i], "move-relative"); tmp->wormprops[i]->up = g_settings_get_int (worm_settings[i], "key-up"); tmp->wormprops[i]->down = g_settings_get_int (worm_settings[i], "key-down"); tmp->wormprops[i]->left = g_settings_get_int (worm_settings[i], "key-left"); tmp->wormprops[i]->right = g_settings_get_int (worm_settings[i], "key-right"); } category = g_strdup_printf ("%d.%d", tmp->gamespeed, tmp->fakes); games_scores_set_category (highscores, category); g_free (category); }