QTfrontend/util/SDLInteraction.cpp
changeset 6616 f77bb02b669f
parent 6585 6225b838a630
child 6700 e04da46ee43c
equal deleted inserted replaced
6615:65602f1ef0f8 6616:f77bb02b669f
    61 SDLInteraction::~SDLInteraction()
    61 SDLInteraction::~SDLInteraction()
    62 {
    62 {
    63     stopMusic();
    63     stopMusic();
    64     if (m_audioInitialized)
    64     if (m_audioInitialized)
    65     {
    65     {
    66         if (m_music != NULL) {
    66         if (m_music != NULL)
       
    67         {
    67             Mix_HaltMusic();
    68             Mix_HaltMusic();
    68             Mix_FreeMusic(m_music);
    69             Mix_FreeMusic(m_music);
    69         }
    70         }
    70         Mix_CloseAudio();
    71         Mix_CloseAudio();
    71     }
    72     }
    84     modes = SDL_ListModes(NULL, SDL_FULLSCREEN);
    85     modes = SDL_ListModes(NULL, SDL_FULLSCREEN);
    85 
    86 
    86     if((modes == (SDL_Rect **)0) || (modes == (SDL_Rect **)-1))
    87     if((modes == (SDL_Rect **)0) || (modes == (SDL_Rect **)-1))
    87     {
    88     {
    88         result << "640x480";
    89         result << "640x480";
    89     } else
    90     }
       
    91     else
    90     {
    92     {
    91         for(int i = 0; modes[i]; ++i)
    93         for(int i = 0; modes[i]; ++i)
    92             if ((modes[i]->w >= 640) && (modes[i]->h >= 480))
    94             if ((modes[i]->w >= 640) && (modes[i]->h >= 480))
    93                 result << QString("%1x%2").arg(modes[i]->w).arg(modes[i]->h);
    95                 result << QString("%1x%2").arg(modes[i]->w).arg(modes[i]->h);
    94     }
    96     }
   237 }
   239 }
   238 
   240 
   239 
   241 
   240 void SDLInteraction::stopMusic()
   242 void SDLInteraction::stopMusic()
   241 {
   243 {
   242     if (m_isPlayingMusic && (m_music != NULL)) {
   244     if (m_isPlayingMusic && (m_music != NULL))
       
   245     {
   243         // fade out music to finish 0,5 seconds from now
   246         // fade out music to finish 0,5 seconds from now
   244         while(!Mix_FadeOutMusic(1000) && Mix_PlayingMusic()) {
   247         while(!Mix_FadeOutMusic(1000) && Mix_PlayingMusic())
       
   248         {
   245             SDL_Delay(100);
   249             SDL_Delay(100);
   246         }
   250         }
   247     }
   251     }
   248 
   252 
   249     m_isPlayingMusic = false;
   253     m_isPlayingMusic = false;