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,7 +29,8 @@ void AOBlipPlayer::blip_tick()
 | 
			
		||||
 | 
			
		||||
  HSTREAM f_stream = m_stream_list[f_cycle];
 | 
			
		||||
 | 
			
		||||
  BASS_ChannelSetDevice(f_stream, BASS_GetDevice());
 | 
			
		||||
  if (ao_app->get_audio_output_device() != "Default")
 | 
			
		||||
    BASS_ChannelSetDevice(f_stream, BASS_GetDevice());
 | 
			
		||||
  BASS_ChannelPlay(f_stream, false);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -21,7 +21,8 @@ void AOMusicPlayer::play(QString p_song)
 | 
			
		||||
 | 
			
		||||
  this->set_volume(m_volume);
 | 
			
		||||
 | 
			
		||||
  BASS_ChannelSetDevice(m_stream, BASS_GetDevice());
 | 
			
		||||
  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,7 +23,8 @@ void AOSfxPlayer::play(QString p_sfx, QString p_char)
 | 
			
		||||
 | 
			
		||||
  set_volume(m_volume);
 | 
			
		||||
 | 
			
		||||
  BASS_ChannelSetDevice(m_stream, BASS_GetDevice());
 | 
			
		||||
  if (ao_app->get_audio_output_device() != "Default")
 | 
			
		||||
    BASS_ChannelSetDevice(m_stream, BASS_GetDevice());
 | 
			
		||||
  BASS_ChannelPlay(m_stream, false);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -19,15 +19,23 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
 | 
			
		||||
  int a = 0;
 | 
			
		||||
  BASS_DEVICEINFO info;
 | 
			
		||||
 | 
			
		||||
  for (a = 0; BASS_GetDeviceInfo(a, &info); a++)
 | 
			
		||||
  if (ao_app->get_audio_output_device() == "Default")
 | 
			
		||||
  {
 | 
			
		||||
      if (ao_app->get_audio_output_device() == info.name)
 | 
			
		||||
      BASS_Init(-1, 48000, BASS_DEVICE_LATENCY, 0, NULL);
 | 
			
		||||
      BASS_PluginLoad("bassopus.dll", BASS_UNICODE);
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
  {
 | 
			
		||||
      for (a = 0; BASS_GetDeviceInfo(a, &info); a++)
 | 
			
		||||
      {
 | 
			
		||||
          BASS_SetDevice(a);
 | 
			
		||||
          BASS_Init(a, 48000, BASS_DEVICE_LATENCY, 0, NULL);
 | 
			
		||||
          BASS_PluginLoad("bassopus.dll", BASS_UNICODE);
 | 
			
		||||
          qDebug() << info.name << "was set as the default audio output device.";
 | 
			
		||||
          break;
 | 
			
		||||
          if (ao_app->get_audio_output_device() == info.name)
 | 
			
		||||
          {
 | 
			
		||||
              BASS_SetDevice(a);
 | 
			
		||||
              BASS_Init(a, 48000, BASS_DEVICE_LATENCY, 0, NULL);
 | 
			
		||||
              BASS_PluginLoad("bassopus.dll", BASS_UNICODE);
 | 
			
		||||
              qDebug() << info.name << "was set as the default audio output device.";
 | 
			
		||||
              break;
 | 
			
		||||
          }
 | 
			
		||||
      }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user