@@ -372,6 +372,57 @@ class AudioManager : public SubsystemInterface
372372 Bool m_disallowSpeech : 1 ;
373373};
374374
375+ // TheSuperHackers @feature helmutbuhler 17/05/2025
376+ // AudioManager that does nothing. Used for Headless Mode.
377+ class AudioManagerDummy : public AudioManager
378+ {
379+ #if defined(RTS_DEBUG) || defined(RTS_INTERNAL)
380+ virtual void audioDebugDisplay (DebugDisplayInterface* dd, void * userData, FILE* fp) {}
381+ #endif
382+ virtual void stopAudio (AudioAffect which) {}
383+ virtual void pauseAudio (AudioAffect which) {}
384+ virtual void resumeAudio (AudioAffect which) {}
385+ virtual void pauseAmbient (Bool shouldPause) {}
386+ virtual void killAudioEventImmediately (AudioHandle audioEvent) {}
387+ virtual void nextMusicTrack () {}
388+ virtual void prevMusicTrack () {}
389+ virtual Bool isMusicPlaying () const { return false ; }
390+ virtual Bool hasMusicTrackCompleted (const AsciiString& trackName, Int numberOfTimes) const { return false ; }
391+ virtual AsciiString getMusicTrackName () const { return " " ; }
392+ virtual void openDevice () {}
393+ virtual void closeDevice () {}
394+ virtual void * getDevice () { return NULL ; }
395+ virtual void notifyOfAudioCompletion (UnsignedInt audioCompleted, UnsignedInt flags) {}
396+ virtual UnsignedInt getProviderCount (void ) const { return 0 ; };
397+ virtual AsciiString getProviderName (UnsignedInt providerNum) const { return " " ; }
398+ virtual UnsignedInt getProviderIndex (AsciiString providerName) const { return 0 ; }
399+ virtual void selectProvider (UnsignedInt providerNdx) {}
400+ virtual void unselectProvider (void ) {}
401+ virtual UnsignedInt getSelectedProvider (void ) const { return 0 ; }
402+ virtual void setSpeakerType (UnsignedInt speakerType) {}
403+ virtual UnsignedInt getSpeakerType (void ) { return 0 ; }
404+ virtual UnsignedInt getNum2DSamples (void ) const { return 0 ; }
405+ virtual UnsignedInt getNum3DSamples (void ) const { return 0 ; }
406+ virtual UnsignedInt getNumStreams (void ) const { return 0 ; }
407+ virtual Bool doesViolateLimit (AudioEventRTS* event) const { return false ; }
408+ virtual Bool isPlayingLowerPriority (AudioEventRTS* event) const { return false ; }
409+ virtual Bool isPlayingAlready (AudioEventRTS* event) const { return false ; }
410+ virtual Bool isObjectPlayingVoice (UnsignedInt objID) const { return false ; }
411+ virtual void adjustVolumeOfPlayingAudio (AsciiString eventName, Real newVolume) {}
412+ virtual void removePlayingAudio (AsciiString eventName) {}
413+ virtual void removeAllDisabledAudio () {}
414+ virtual Bool has3DSensitiveStreamsPlaying (void ) const { return false ; }
415+ virtual void * getHandleForBink (void ) { return NULL ; }
416+ virtual void releaseHandleForBink (void ) {}
417+ virtual void friend_forcePlayAudioEventRTS (const AudioEventRTS* eventToPlay) {}
418+ virtual void setPreferredProvider (AsciiString providerNdx) {}
419+ virtual void setPreferredSpeaker (AsciiString speakerType) {}
420+ virtual Real getFileLengthMS (AsciiString strToLoad) const { return -1 ; }
421+ virtual void closeAnySamplesUsingFile (const void * fileToClose) {}
422+ virtual void setDeviceListenerPosition (void ) {}
423+ };
424+
425+
375426extern AudioManager *TheAudio;
376427
377428#endif // __COMMON_GAMEAUDIO_H_
0 commit comments