Fixed a Windows bug where there was no way to get back to the default audio device.
This commit is contained in:
		
							parent
							
								
									4ee565591f
								
							
						
					
					
						commit
						91ad46eea0
					
				@ -265,7 +265,7 @@ private:
 | 
			
		||||
 | 
			
		||||
  const int CCCC_RELEASE = 1;
 | 
			
		||||
  const int CCCC_MAJOR_VERSION = 3;
 | 
			
		||||
  const int CCCC_MINOR_VERSION = 0;
 | 
			
		||||
  const int CCCC_MINOR_VERSION = 1;
 | 
			
		||||
 | 
			
		||||
  QString current_theme = "default";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -29,6 +29,7 @@ void AOBlipPlayer::blip_tick()
 | 
			
		||||
 | 
			
		||||
  HSTREAM f_stream = m_stream_list[f_cycle];
 | 
			
		||||
 | 
			
		||||
  if (ao_app->get_audio_output_device() != "Default")
 | 
			
		||||
    BASS_ChannelSetDevice(f_stream, BASS_GetDevice());
 | 
			
		||||
  BASS_ChannelPlay(f_stream, false);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -21,6 +21,7 @@ void AOMusicPlayer::play(QString p_song)
 | 
			
		||||
 | 
			
		||||
  this->set_volume(m_volume);
 | 
			
		||||
 | 
			
		||||
  if (ao_app->get_audio_output_device() != "Default")
 | 
			
		||||
    BASS_ChannelSetDevice(m_stream, BASS_GetDevice());
 | 
			
		||||
  BASS_ChannelPlay(m_stream, false);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -211,6 +211,11 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi
 | 
			
		||||
    int a = 0;
 | 
			
		||||
    BASS_DEVICEINFO info;
 | 
			
		||||
 | 
			
		||||
    if (needs_default_audiodev())
 | 
			
		||||
    {
 | 
			
		||||
        AudioDeviceCombobox->addItem("Default");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    for (a = 0; BASS_GetDeviceInfo(a, &info); a++)
 | 
			
		||||
    {
 | 
			
		||||
        AudioDeviceCombobox->addItem(info.name);
 | 
			
		||||
@ -339,3 +344,17 @@ void AOOptionsDialog::discard_pressed()
 | 
			
		||||
{
 | 
			
		||||
    done(0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#if (defined (_WIN32) || defined (_WIN64))
 | 
			
		||||
bool AOOptionsDialog::needs_default_audiodev()
 | 
			
		||||
{
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
#elif (defined (LINUX) || defined (__linux__))
 | 
			
		||||
bool AOOptionsDialog::needs_default_audiodev()
 | 
			
		||||
{
 | 
			
		||||
    return false;
 | 
			
		||||
}
 | 
			
		||||
#else
 | 
			
		||||
#error This operating system is not supported.
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
@ -79,6 +79,8 @@ private:
 | 
			
		||||
    QLabel *BlankBlipsLabel;
 | 
			
		||||
    QDialogButtonBox *SettingsButtons;
 | 
			
		||||
 | 
			
		||||
    bool needs_default_audiodev();
 | 
			
		||||
 | 
			
		||||
signals:
 | 
			
		||||
 | 
			
		||||
public slots:
 | 
			
		||||
 | 
			
		||||
@ -23,6 +23,7 @@ void AOSfxPlayer::play(QString p_sfx, QString p_char)
 | 
			
		||||
 | 
			
		||||
  set_volume(m_volume);
 | 
			
		||||
 | 
			
		||||
  if (ao_app->get_audio_output_device() != "Default")
 | 
			
		||||
    BASS_ChannelSetDevice(m_stream, BASS_GetDevice());
 | 
			
		||||
  BASS_ChannelPlay(m_stream, false);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -19,6 +19,13 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
 | 
			
		||||
  int a = 0;
 | 
			
		||||
  BASS_DEVICEINFO info;
 | 
			
		||||
 | 
			
		||||
  if (ao_app->get_audio_output_device() == "Default")
 | 
			
		||||
  {
 | 
			
		||||
      BASS_Init(-1, 48000, BASS_DEVICE_LATENCY, 0, NULL);
 | 
			
		||||
      BASS_PluginLoad("bassopus.dll", BASS_UNICODE);
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
  {
 | 
			
		||||
      for (a = 0; BASS_GetDeviceInfo(a, &info); a++)
 | 
			
		||||
      {
 | 
			
		||||
          if (ao_app->get_audio_output_device() == info.name)
 | 
			
		||||
@ -30,6 +37,7 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
 | 
			
		||||
              break;
 | 
			
		||||
          }
 | 
			
		||||
      }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  keepalive_timer = new QTimer(this);
 | 
			
		||||
  keepalive_timer->start(60000);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user