SPC Script
Plays SPC (Snes Format Sound)
HappyDragon
Apr 3 2006
This is a locked, single-post thread from Creation Asylum. Archived here to prevent its loss.
No support is given. If you are the owner of the thread, please contact administration.
I found this script a while ago , its not in the archives so i thout i'd post it here.
I did not make this script and also I don't know who did.
Code:
#================================================= =============================
# ■ Audio
#------------------------------------------------------------------------------
# Please note that this will play .SPC files ONLY IN GAME, not in the player.
#
#================================================= =============================
module Audio
#================================================= =========================
# ■ Winamp
#================================================= =========================
class Winamp
#------------------------------------------------------------------------
# ● initialize
#------------------------------------------------------------------------
def initialize
in_dll = 'DLL\in_snes.dll'
out_dll = 'DLL\out_wave.dll'
winamp_dll = 'DLL\Winamp.dll'
@ReadIni = Win32API.new('kernel32', 'GetPrivateProfileStringA', %w(p p p p l p), 'l')
@FindWindow = Win32API.new('user32', 'FindWindowA', %w(p p), 'l')
@Init_Winamp = Win32API.new(winamp_dll, 'Init_Winamp', %w(p p l), 'l')
@Winamp_Play = Win32API.new(winamp_dll, 'Winamp_Play', 'p', 'l')
@Winamp_Pause = Win32API.new(winamp_dll, 'Winamp_Pause', '', '')
@Winamp_Stop = Win32API.new(winamp_dll, 'Winamp_Stop', '', 'l')
@Winamp_IsPlaying = Win32API.new(winamp_dll, 'Winamp_IsPlaying', '', 'l')
@Winamp_GetFileInfo = Win32API.new(winamp_dll, 'Winamp_GetFileInfo', %w(p l), 'p')
@Winamp_SetVolume = Win32API.new(winamp_dll, 'Winamp_SetVolume', 'l', '')
@Winamp_IsPaused = Win32API.new(winamp_dll, 'Winamp_IsPaused', '', 'l')
@Init_Winamp.call(in_dll, out_dll, setup)
end
def play(file)
return @Winamp_Play.call(file)
end
def pause
@Winamp_Pause.call()
end
def stop
return @Winamp_Stop.call()
end
def is_playing?
return @Winamp_IsPlaying.call()
end
def get_file_info(playfile, length_adr)
return @Winamp_GetFileInfo.call(playfile, length_adr)
end
def set_volume(volume)
@Winamp_SetVolume.call(volume)
end
def is_paused?
return @Winamp_IsPaused.call()
end
def setup
game_name = 0.wow * 255
zeichen = @ReadIni.call('Game', 'Title', '', game_name, 255, ".\\Game.ini")
return @FindWindow.call('RGSS Player', game_name.slice!(0, zeichen))
end
end
#--------------------------------------------------------------------------
# ● define constant
#--------------------------------------------------------------------------
WINAMP = Winamp.new
#--------------------------------------------------------------------------
# ● Audio.spc_play(filename, [volume])
#--------------------------------------------------------------------------
def self.spc_play(filename, volume = 255)
for extension in ['.spc']
if FileTest.exist?(filename + extension)
filename = filename + extension
break
end
end
WINAMP.play(filename)
WINAMP.set_volume(volume)
end
#--------------------------------------------------------------------------
# ● Audio.spc_playing?
#--------------------------------------------------------------------------
def self.spc_playing?
if WINAMP.is_playing? == 0
return false
else
return true
end
end
#--------------------------------------------------------------------------
# ● Audio.spc_pause
#--------------------------------------------------------------------------
def self.spc_pause
WINAMP.pause
end
#--------------------------------------------------------------------------
# ● Audio.spc_paused?
#--------------------------------------------------------------------------
def self.spc_paused?
if WINAMP.is_paused? == 0
return false
else
return true
end
end
#--------------------------------------------------------------------------
# ● Audio.spc_stop
#--------------------------------------------------------------------------
def self.spc_stop
WINAMP.stop
end
end
#================================================= =============================
# ■ Game_System
#------------------------------------------------------------------------------
# Changes added to the bgm_play and bgm_stop functions.
#================================================= =============================
class Game_System
#--------------------------------------------------------------------------
# ● Play Back Ground Music
#--------------------------------------------------------------------------
def bgm_play(bgm)
@playing_bgm = bgm
if bgm != nil and bgm.name != ""
Audio.bgm_play("Audio/BGM/" + bgm.name, bgm.volume, bgm.pitch)
Audio.spc_play("Audio/BGM/" + bgm.name, bgm.volume)
else
Audio.bgm_stop
Audio.spc_stop
end
Graphics.frame_reset
end
#--------------------------------------------------------------------------
# ● Stop playing BGM
#--------------------------------------------------------------------------
def bgm_stop
Audio.bgm_stop
Audio.spc_stop
end
end