Develop and Download Open Source Software

Browse Subversion Repository

Contents of /sound/MixerInit.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 279 - (show annotations) (download) (as text)
Wed Mar 12 05:28:19 2008 UTC (16 years, 1 month ago) by satofumi
File MIME type: text/x-c++src
File size: 1255 byte(s)
adjust tab index
1 /*!
2 \file
3 \brief SDL_mixer の初期化クラス
4
5 \author Satofumi KAMIMURA
6
7 $Id$
8 */
9
10 #include "MixerInit.h"
11 #include "SdlAudioInit.h"
12 #include "LogManager.h"
13 #include <SDL_mixer.h>
14 #include <stdlib.h>
15 #include <string>
16
17 using namespace beego;
18
19
20 /*!
21 \brief MixerInit の内部クラス
22
23 \todo Mix の使い方を見ながら実装する
24 */
25 struct MixerInit::pImpl : private SdlAudioInit {
26 static bool initialized;
27 static void cleanup(void) {
28 Mix_AllocateChannels(0);
29 }
30
31 pImpl(void) {
32 if (! isInitialized()) {
33 return;
34 }
35
36 if (initialized == false) {
37 if (Mix_OpenAudio(MIX_DEFAULT_FREQUENCY,
38 MIX_DEFAULT_FORMAT, MIX_DEFAULT_CHANNELS, 1024) < 0) {
39 // ログ記録
40 LogManager* log = LogManager::getObject();
41 std::string message = "Mixer_Init(): " + std::string(Mix_GetError());
42 log->write(LogManager::Error, message.c_str());
43 return;
44 }
45 atexit(Mix_CloseAudio);
46
47 Mix_AllocateChannels(ChannelNum);
48 atexit(cleanup);
49 initialized = true;
50 }
51 }
52 };
53
54 bool MixerInit::pImpl::initialized = false;
55
56
57 MixerInit::MixerInit(void) : pimpl(new pImpl) {
58 }
59
60
61 MixerInit::~MixerInit(void) {
62 }
63
64
65 bool MixerInit::isInitialized(void) {
66 return pimpl->initialized;
67 }

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26