# HG changeset patch # User unc0rr # Date 1218918978 0 # Node ID f882a92ef8729a0bc908ce9604b4f27c572cdaae # Parent 0b9fbee5ceda8c588c9ba8880fb45d501906080f Play music in menu also, with fading effects when run game diff -r 0b9fbee5ceda -r f882a92ef872 QTfrontend/SDLs.cpp --- a/QTfrontend/SDLs.cpp Sat Aug 16 20:15:27 2008 +0000 +++ b/QTfrontend/SDLs.cpp Sat Aug 16 20:36:18 2008 +0000 @@ -29,7 +29,6 @@ Mix_Volume(-1, 50); music = Mix_LoadMUS(QString(datadir->absolutePath() + "/Music/main theme.ogg").toAscii().constData()); - StartMusic(); } SDLInteraction::~SDLInteraction() @@ -59,10 +58,10 @@ } void SDLInteraction::StartMusic() { - Mix_PlayMusic(music, -1); + Mix_FadeInMusic(music, -1, 3000); } void SDLInteraction::StopMusic() { - + Mix_FadeOutMusic(2000); } diff -r 0b9fbee5ceda -r f882a92ef872 QTfrontend/hwform.cpp --- a/QTfrontend/hwform.cpp Sat Aug 16 20:15:27 2008 +0000 +++ b/QTfrontend/hwform.cpp Sat Aug 16 20:36:18 2008 +0000 @@ -49,13 +49,14 @@ : QMainWindow(parent), pnetserver(0), pRegisterServer(0), editedTeam(0), hwnet(0) { ui.setupUi(this); + + ui.pageOptions->CBResolution->addItems(sdli.getResolutions()); + config = new GameUIConfig(this, cfgdir->absolutePath() + "/hedgewars.ini"); UpdateTeamsLists(); UpdateWeapons(); - StartMusic(); - connect(config, SIGNAL(frontendFullscreen(bool)), this, SLOT(onFrontendFullscreen(bool))); onFrontendFullscreen(config->isFrontendFullscreen()); @@ -130,6 +131,8 @@ this, SLOT(GoBack())); // executed third GoToPage(ID_PAGE_MAIN); + + sdli.StartMusic(); } void HWForm::onFrontendFullscreen(bool value) @@ -546,7 +549,7 @@ { switch(gameState) { case gsStarted: { - StopMusic(); + sdli.StopMusic(); GoToPage(ID_PAGE_INGAME); ui.pageGameStats->labelGameStats->setText(""); if (pRegisterServer) @@ -558,13 +561,16 @@ } case gsFinished: { GoBack(); - StartMusic(); + sdli.StartMusic(); GoToPage(ID_PAGE_GAMESTATS); break; } default: { quint8 id = ui.Pages->currentIndex(); - if (id == ID_PAGE_INGAME) GoBack(); + if (id == ID_PAGE_INGAME) { + GoBack(); + sdli.StartMusic(); + } }; } @@ -682,13 +688,3 @@ config->SaveOptions(); event->accept(); } - -void HWForm::StartMusic() -{ - -} - -void HWForm::StopMusic() -{ - -} diff -r 0b9fbee5ceda -r f882a92ef872 QTfrontend/hwform.h --- a/QTfrontend/hwform.h Sat Aug 16 20:15:27 2008 +0000 +++ b/QTfrontend/hwform.h Sat Aug 16 20:36:18 2008 +0000 @@ -26,6 +26,7 @@ #include "netserver.h" #include "game.h" #include "ui_hwform.h" +#include "SDLs.h" class HWGame; class HWTeam; @@ -84,8 +85,6 @@ void UpdateWeapons(); void NetWeaponNameChanged(const QString& name); void onFrontendFullscreen(bool value); - void StartMusic(); - void StopMusic(); private: void _NetConnect(const QString & hostName, quint16 port, const QString & nick); @@ -116,6 +115,7 @@ HWNetServer* pnetserver; HWNetRegisterServer* pRegisterServer; QTime eggTimer; + SDLInteraction sdli; void AddStatText(const QString & msg); void OnPageShown(quint8 id, quint8 lastid=0); }; diff -r 0b9fbee5ceda -r f882a92ef872 QTfrontend/pages.cpp --- a/QTfrontend/pages.cpp Sat Aug 16 20:15:27 2008 +0000 +++ b/QTfrontend/pages.cpp Sat Aug 16 20:36:18 2008 +0000 @@ -47,7 +47,6 @@ #include "netudpwidget.h" #include "netwwwwidget.h" #include "chatwidget.h" -#include "SDLs.h" #include "playrecordpage.h" #include "selectWeapon.h" #include "igbox.h" @@ -335,8 +334,6 @@ GBAreslayout->addWidget(resolution); CBResolution = new QComboBox(AGGroupBox); - SDLInteraction sdli; - CBResolution->addItems(sdli.getResolutions()); GBAreslayout->addWidget(CBResolution); GBAlayout->addLayout(GBAreslayout); diff -r 0b9fbee5ceda -r f882a92ef872 hedgewars/SDLh.pas --- a/hedgewars/SDLh.pas Sat Aug 16 20:15:27 2008 +0000 +++ b/hedgewars/SDLh.pas Sat Aug 16 20:36:18 2008 +0000 @@ -341,6 +341,7 @@ function Mix_Playing(channel: LongInt): LongInt; cdecl; external SDL_MixerLibName; function Mix_PlayingMusic: LongInt; cdecl; external SDL_MixerLibName; +function Mix_FadeInMusic(music: PMixMusic; loops: LongInt; ms: LongInt): LongInt; cdecl; external SDL_MixerLibName; function Mix_PlayChannelTimed(channel: LongInt; chunk: PMixChunk; loops: LongInt; ticks: LongInt): LongInt; cdecl; external SDL_MixerLibName; function Mix_PlayMusic(music: PMixMusic; loops: LongInt): LongInt; cdecl; external SDL_MixerLibName; diff -r 0b9fbee5ceda -r f882a92ef872 hedgewars/uSound.pas --- a/hedgewars/uSound.pas Sat Aug 16 20:15:27 2008 +0000 +++ b/hedgewars/uSound.pas Sat Aug 16 20:36:18 2008 +0000 @@ -109,7 +109,7 @@ TryDo(Mus <> nil, msgFailed, false); WriteLnToConsole(msgOK); -Mix_PlayMusic(Mus, -1) +SDLTry(Mix_FadeInMusic(Mus, -1, 3000) <> -1, false) end; function ChangeVolume(voldelta: LongInt): LongInt;