note
	description: "[
		chocolate doom i_pcsound.c
		System interface for PC speaker sound.
	]"
	license: "[
				Copyright (C) 2005-2014 Simon Howard
				Copyright (C) 2021 Ilgiz Mustafin
		
				This program is free software; you can redistribute it and/or modify
				it under the terms of the GNU General Public License as published by
				the Free Software Foundation; either version 2 of the License, or
				(at your option) any later version.
		
				This program is distributed in the hope that it will be useful,
				but WITHOUT ANY WARRANTY; without even the implied warranty of
				MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
				GNU General Public License for more details.
		
				You should have received a copy of the GNU General Public License along
				with this program; if not, write to the Free Software Foundation, Inc.,
				51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
	]"

class 
	SOUND_PCSOUND_MODULE

inherit
	SOUND_MODULE_T

create 
	make

feature {NONE} 

	make
		do
		end
	
feature 

	Sound_devices: ARRAY [INTEGER_32]
			-- List of sound devices that this sound module is used for.
		once
			Result := <<{I_SOUND}.snddevice_pcspeaker>>
		end

	init (use_sfx_prefix: BOOLEAN): BOOLEAN
			-- Initialise sound module
			-- Returns True if successfully initialised
		do
			{NOT_IMPLEMENTED}.not_implemented ("PCSOUND init", True)
		end

	shutdown
			-- Shutdown sound module
		do
			{NOT_IMPLEMENTED}.not_implemented ("PCSOUND shutdown", True)
		end

	get_sfx_lump_num (sfxinfo: SFXINFO_T): INTEGER_32
			-- Returns the lump index of the given sound.
		do
			{NOT_IMPLEMENTED}.not_implemented ("PCSOUND get_sfx_lump_num", True)
		end

	update
			-- Called periodically to update the subsystem.
		do
			{NOT_IMPLEMENTED}.not_implemented ("PCSOUND update", True)
		end

	update_sound_params (channel, vol, sep: INTEGER_32)
			-- Update the sound settings on the given channel.
		do
			{NOT_IMPLEMENTED}.not_implemented ("PCSOUND update_sound_params", True)
		end

	start_sound (sfxinfo: SFXINFO_T; channel, vol, sep, pitch: INTEGER_32): INTEGER_32
			-- Start a sound on a given channel. Returns the channel id
			-- or -1 on failure.
		do
			{NOT_IMPLEMENTED}.not_implemented ("PCSOUND start_sound", True)
		end

	stop_sound (channel: INTEGER_32)
			-- Stop the sound playing on the given channel
		do
			{NOT_IMPLEMENTED}.not_implemented ("PCSOUND stop_sound", True)
		end

	cache_sounds (sounds: ARRAY [SFXINFO_T])
			-- Called on startup to precache sound effects (if necessary)
		do
			{NOT_IMPLEMENTED}.not_implemented ("PCSOUND cache_sounds", True)
		end

	sound_is_playing (channel: INTEGER_32): BOOLEAN
			-- Query if a sound is playing on the given channel
		do
			{NOT_IMPLEMENTED}.not_implemented ("PCSOUND sound_is_playing", True)
		end
	
feature 

	Sound_pcsound_module: SOUND_PCSOUND_MODULE
		once
			create Result.make
		ensure
			instance_free: class
		end
	
end -- class SOUND_PCSOUND_MODULE

Generated by ISE EiffelStudio