add SDLPlayer class
This commit is contained in:
+6
-2
@@ -13,6 +13,7 @@ INCLUDEPATH += . \
|
||||
src/engine/network_engine \
|
||||
src/config \
|
||||
src/core/tinyxml \
|
||||
src/sound \
|
||||
src/gui/qt \
|
||||
src/gui/qt/connecttoserverdialog \
|
||||
src/core \
|
||||
@@ -35,6 +36,7 @@ INCLUDEPATH += . \
|
||||
DEPENDPATH += . \
|
||||
src \
|
||||
src/config \
|
||||
src/sound \
|
||||
src/core \
|
||||
src/engine \
|
||||
src/gui \
|
||||
@@ -133,7 +135,8 @@ HEADERS += src/game.h \
|
||||
src/gui/qttoolsinterface.h \
|
||||
src/gui/qt/qttools/qttoolswrapper.h \
|
||||
src/gui/qt/qttools/qthelper/qthelper.h \
|
||||
src/gui/generic/serverguiwrapper.h
|
||||
src/gui/generic/serverguiwrapper.h \
|
||||
src/sound/sdlplayer.h
|
||||
FORMS += src/gui/qt/mainwindow.ui \
|
||||
src/gui/qt/aboutpokerth.ui \
|
||||
src/gui/qt/connecttoserverdialog.ui \
|
||||
@@ -225,7 +228,8 @@ SOURCES += src/game.cpp \
|
||||
src/gui/qttoolsinterface.cpp \
|
||||
src/gui/qt/qttools/qttoolswrapper.cpp \
|
||||
src/gui/qt/qttools/qthelper/qthelper.cpp \
|
||||
src/gui/generic/serverguiwrapper.cpp
|
||||
src/gui/generic/serverguiwrapper.cpp \
|
||||
src/sound/sdlplayer.cpp
|
||||
RESOURCES += src/gui/qt/resources.qrc
|
||||
TRANSLATIONS = ts/pokerth_de.ts \
|
||||
ts/pokerth_es.ts \
|
||||
|
||||
@@ -2647,11 +2647,7 @@ void mainWindowImpl::playSound() {
|
||||
have it just play once) */
|
||||
Mix_PlayMusic(music, 0);
|
||||
}
|
||||
/* We want to know when our music has stopped playing so we
|
||||
can free it up and set 'music' back to NULL. SDL_Mixer
|
||||
provides us with a callback routine we can use to do
|
||||
exactly that */
|
||||
// Mix_HookMusicFinished(mainWindowImpl::musicDone());
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
//
|
||||
// C++ Implementation: sdlplayer
|
||||
//
|
||||
// Description:
|
||||
//
|
||||
//
|
||||
// Author: FThauer FHammer <webmaster@pokerth.net>, (C) 2007
|
||||
//
|
||||
// Copyright: See COPYING file that comes with this distribution
|
||||
//
|
||||
//
|
||||
#include "sdlplayer.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
SDLPlayer::SDLPlayer()
|
||||
{
|
||||
initAudio();
|
||||
|
||||
}
|
||||
|
||||
|
||||
SDLPlayer::~SDLPlayer()
|
||||
{
|
||||
}
|
||||
|
||||
void SDLPlayer::initAudio() {
|
||||
|
||||
audio_rate = 44100;
|
||||
audio_format = AUDIO_S16; /* 16-bit stereo */
|
||||
audio_channels = 2;
|
||||
audio_buffers = 4096;
|
||||
music = NULL;
|
||||
|
||||
SDL_Init(SDL_INIT_AUDIO);
|
||||
|
||||
if(Mix_OpenAudio(audio_rate, audio_format, audio_channels, audio_buffers)) {
|
||||
printf("Unable to open audio!\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
Mix_QuerySpec(&audio_rate, &audio_format, &audio_channels);
|
||||
}
|
||||
|
||||
void SDLPlayer::playSound(std::string audioString) {
|
||||
|
||||
cout << "play now" << endl;
|
||||
/* Actually loads up the music */
|
||||
string oggString = ".ogg";
|
||||
// music = Mix_LoadMUS( audioString+oggString );
|
||||
|
||||
/* This begins playing the music - the first argument is a
|
||||
pointer to Mix_Music structure, and the second is how many
|
||||
times you want it to loop (use -1 for infinite, and 0 to
|
||||
have it just play once) */
|
||||
Mix_PlayMusic(music, 0);
|
||||
|
||||
/* We want to know when our music has stopped playing so we
|
||||
can free it up and set 'music' back to NULL. SDL_Mixer
|
||||
provides us with a callback routine we can use to do
|
||||
exactly that */
|
||||
// Mix_HookMusicFinished(mainWindowImpl::musicDone());
|
||||
|
||||
}
|
||||
|
||||
void SDLPlayer::audioDone() {
|
||||
|
||||
Mix_HaltMusic();
|
||||
Mix_FreeMusic(music);
|
||||
music = NULL;
|
||||
}
|
||||
|
||||
void SDLPlayer::closeAudio() {
|
||||
|
||||
Mix_HaltMusic();
|
||||
Mix_FreeMusic(music);
|
||||
music = NULL;
|
||||
Mix_CloseAudio();
|
||||
SDL_Quit();
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
//
|
||||
// C++ Interface: sdlplayer
|
||||
//
|
||||
// Description:
|
||||
//
|
||||
//
|
||||
// Author: FThauer FHammer <webmaster@pokerth.net>, (C) 2007
|
||||
//
|
||||
// Copyright: See COPYING file that comes with this distribution
|
||||
//
|
||||
//
|
||||
#ifndef SDLPLAYER_H
|
||||
#define SDLPLAYER_H
|
||||
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
|
||||
#include "SDL/SDL.h"
|
||||
#include "SDL/SDL_mixer.h"
|
||||
|
||||
/**
|
||||
@author FThauer FHammer <webmaster@pokerth.net>
|
||||
*/
|
||||
class SDLPlayer{
|
||||
public:
|
||||
SDLPlayer();
|
||||
|
||||
~SDLPlayer();
|
||||
|
||||
void initAudio();
|
||||
void playSound(std::string);
|
||||
void audioDone();
|
||||
void closeAudio();
|
||||
|
||||
private:
|
||||
|
||||
int audio_rate;
|
||||
Uint16 audio_format;
|
||||
int audio_channels;
|
||||
int audio_buffers;
|
||||
Mix_Music *music;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user