indexing description: "[ Singleton representing the audio subsystem. Use EM_SHARED_SUBSYSTEMS to access this class. ]" date: "$Date$" revision: "$Revision$" class EM_AUDIO_SUBSYSTEM inherit EM_SUBSYSTEM EM_CONSTANTS export {NONE} all end EM_SHARED_ERROR_HANDLER export {NONE} all end EM_AUDIO_FUNCTIONS_EXTERNAL export {NONE} all end SDL_MIXER_FUNCTIONS_EXTERNAL export {NONE} all end create {EM_SHARED_AUDIO_SUBSYSTEM} make feature {NONE} -- Initialisation make is -- Create new audio subsystem. do is_enabled := False ensure disabled: not is_enabled end feature -- Access mixer: EM_MIXER -- Holds main mixer feature -- Status report is_enabled: BOOLEAN -- Is the audio subsystem enabled? feature -- Subsystem management enable is -- Enable audio subsystem. require else disabled: not is_enabled local i: INTEGER do base_enable i := sdl_init_external (Em_init_audio) if i >= 0 then create mixer.make add_audio_channel_finished_callback_external add_audio_music_finished_callback_external is_enabled := True else error_handler.raise_error (error_handler.Em_error_initializing_audio_subsystem, []) end ensure then enabled: is_enabled end disable is -- Disable audio subsystem. require else enabled: is_enabled do sdl_quit_sub_system_external (Em_init_audio) is_enabled := False base_disable ensure then disabled: not is_enabled end end