コード例 #1
0
ファイル: sound_menu.c プロジェクト: riksweeney/edgar
static void toggleSound()
{
	Widget *w = menu.widgets[menu.index];

	game.audio = game.audio == TRUE ? FALSE : TRUE;

	if (game.audio == FALSE)
	{
		game.audioDisabled = FALSE;

		freeMusic();

		Mix_CloseAudio();
	}

	else
	{
		if (initAudio() == TRUE)
		{
			playLoadedMusic();
		}

		else
		{
			game.audio = FALSE;
		}
	}

	updateLabelText(w->label, game.audio == TRUE ? _("Yes") : _("No"));
}
コード例 #2
0
bool MySoundEffect::loadMusic(const char * path)
{
	freeMusic();
	music = Mix_LoadMUS(path);
	
	return music != NULL;
}
コード例 #3
0
ファイル: resources.c プロジェクト: riksweeney/edgar
void freeLevelResources()
{
	/* Free the entities */

	freeEntities();

	/* Free the decorations */

	freeDecorations();

	/* Free the animations */

	freeAnimations();

	/* Free the sounds */

	freeSounds();

	if (game.overrideMusic == FALSE)
	{
		/* Free music */

		freeMusic();
	}

	/* Free the map data */

	freeMap();

	/* Free the sprites */

	freeSprites();

	/* Free the triggers */

	freeTriggers();

	/* Free the properties */

	freeProperties();

	/* Free the targets */

	freeTargets();

	/* Free the message queue */

	freeMessageQueue();

	/* Free the scripts */

	freeScript();
}
コード例 #4
0
ファイル: music.cpp プロジェクト: project-cabal/cabal
void Music::changeMusic(const Common::String filename, bool storeCurPos, bool seektoStoredPos) {
	if (storeCurPos)
		_storedPos = _musicFile->pos();

	stopSoundEffect();
	freeMusic();
	_musicFile = _vm->_resource->openDataFile(filename);
	if (seektoStoredPos)
		_musicFile->seek(_storedPos);

	Audio::SeekableAudioStream *audioStream = Audio::makePCMStream(_musicFile, SAMPLESPEED, getSoundFlags());
	_vm->_mixer->playStream(Audio::Mixer::kMusicSoundType, &_musicHandle, new Audio::LoopingAudioStream(audioStream, 0));
}
コード例 #5
0
ファイル: audio.c プロジェクト: LibreGames/edgar
void changeSoundQuality()
{
	freeMusic();

	Mix_CloseAudio();

	if (game.audio == FALSE)
	{
		return;
	}

	initAudio();

	playLoadedMusic();
}
コード例 #6
0
ファイル: music.c プロジェクト: carriercomm/edgar
void loadMusic(char *musicToLoad)
{
    char *name;

    if (strcmpignorecase(musicName, musicToLoad) != 0)
    {
        STRNCPY(musicName, musicToLoad, MAX_VALUE_LENGTH);
    }

    if (game.audio == FALSE || game.musicDefaultVolume == 0)
    {
        return;
    }

    freeMusic();

    name = getSongName(musicToLoad, 0);

    if (name == NULL || strcmpignorecase(name, "NO_MUSIC") == 0)
    {
        return;
    }

    music = loadMusicFromPak(name);

    if (music != NULL)
    {
        return;
    }

    name = getSongName(musicToLoad, 1);

    if (name == NULL || strcmpignorecase(name, "NO_MUSIC") == 0)
    {
        return;
    }

    music = loadMusicFromPak(name);
}
コード例 #7
0
ファイル: client.c プロジェクト: naknut/Project-Puzzle
/**
 * Author: 	 	Joel Denke, Marcus Isaksson
 * Description:		Run the game on client
 */
int main(int argc, char *argv[])
{
	int i, j, no, yb, keysHeld[323] = {0};
	int result = 0;
	SDL_Thread * eventBuffer;
	SDL_Thread * runBuffer;
	struct timer_t2 fps;
	
	char * server_ip = malloc(sizeof(char) * 16);
	char * elem = malloc(sizeof(char) * MESSAGE_SIZE);

	pColor = malloc(sizeof(SDL_Color));
	oColor = malloc(sizeof(SDL_Color));
	connection = malloc(sizeof(connection_data));

	for (i = 0; i < NO_BUFFERS; i++) {
		cb[i] = malloc(sizeof(cBuffer));
		b_lock[i] = SDL_CreateMutex();
	}

	strcpy(server_ip, "127.0.0.1");

	pColor->r = 0;
	pColor->g = 255;
	pColor->b = 255;
	oColor->r = 0;
	oColor->g = 0;
	oColor->b = 255;

	initGraphics();
	initSound();

	printf("Render menu\n");
	graphicsMenu(&gameWorld, server_ip);

	initSlots(cb[0], BUFFER_SIZE);
	initSlots(cb[1], NO_OBJECTS);
	initSlots(cb[2], BUFFER_SIZE);

	state = gStart;

	if (clientConnect(connection, server_ip) == 0)
	{
		eventBuffer = SDL_CreateThread(listenEventBuffer, &connection);

		while (1) {
			switch (state) {
				case gStart:
					runData(2);
					break;
				case gInit:
					timer_start(&fps);
					startDraw();
					drawLoadScr(SCREEN_WIDTH, SCREEN_HEIGHT);
					endDraw();

					initWorld();
					
					if (timer_get_ticks(&fps) < 1000 / FPS)
					{
						//delay the as much time as we need to get desired frames per second
						SDL_Delay( ( 1000 / FPS ) - timer_get_ticks(&fps) );
					}
					break;
				case gRunning :
					timer_start(&fps);
					drawGraphics();
					listenInput(keysHeld);

					// i = 0: players; i = 1: objects; i = 2: messages
					for (i = 0; i < NO_BUFFERS; i++) {
						runData(i);
					}

					if (timer_get_ticks(&fps) < 1000 / FPS)
					{
						//delay the as much time as we need to get desired frames per second
						SDL_Delay( ( 1000 / FPS ) - timer_get_ticks(&fps) );
					}

					break;
				case gExit :
					//sprintf(string, "%d,quit", connection->client_id);
					printf("Freeing music now\n");
					pauseMusic();
					freeMusic();
					end_session(connection);
					printf("Player is exit game now\n");
					exitClient(eventBuffer);
					break;
				default :
					printf("test\n");
					break;
			}
		}
	} else {
		printf("Misslyckade med att kontakta servern på ip-adress: '%s'\n", server_ip);
		state = gExit;
		pauseMusic();
		freeMusic();
		exitClient(eventBuffer);
	}

	return 0;
}
コード例 #8
0
MySoundEffect::~MySoundEffect()
{
	freeMusic();
	freeChunk();
}