PDA

View Full Version : MOD,S3M/Music Player Script?


qberty
09-13-2008, 07:35 PM
Is it Possible to have a setup created by setup factory be able to Play MOD or S3M/UNI tracker files? Or even Music files WHILE Installing or during Setup?

If so could someone help me?

jassing
09-14-2008, 01:14 AM
Is it Possible to have a setup created by setup factory be able to Play MOD or S3M/UNI tracker files? Or even Music files WHILE Installing or during Setup?

If so could someone help me?

I don't think this could be done directly....
You could probably use rundll to let windows handle it; and then forceably terminate it when you're done.

slota
09-14-2008, 04:49 AM
Use bassmod.dll (http://www.un4seen.com/) See sources. It's easy.

slota
09-14-2008, 06:13 AM
OK! check this out:
7046
See Global Functions and descriptions.

jassing
09-14-2008, 09:55 AM
OK! check this out:
7046
See Global Functions and descriptions.

Great example. Worth noting to the newusers -- be sure to also review the OnCancel of screens & last screen's OnNext
UnloadModMusic()
is called.

qberty
09-14-2008, 10:57 AM
Thank you guys! :) Very understanding.. And yea I looked into BASSMOD before this thread but didnt really know it.. and im OK at scripting so ill try it out.

slota
09-15-2008, 12:07 PM
-- be sure to also review the OnCancel of screens & last screen's OnNext
UnloadModMusic()
is called.
Yes. In my "fast" example some mistakes are committed :wow ;). Function UnloadModMusic() must be called always before APPLICATION_EXIT action on the all screens.

Create example with mp3 (Bass.dll)?

qberty
09-15-2008, 07:10 PM
THanks works perfectly guys! :)... What about mp3's?

slota
09-16-2008, 09:33 AM
- Setup Factory Bass Player -
Place this code to Global Functions and follow all descriptions:
----------------------------------------
-- Setup Factory Bass Player by slota --
----------------------------------------

-- Primer files
cPathDLL = _TempLaunchFolder .."\\bass.dll"; -- required library (http://www.un4seen.com/)
cPathMuz = _TempLaunchFolder .."\\zombie.mp3"; -- MP3/MP2/MP1/OGG/WAV/AIFF file
-- Mod music also supported (some modification in code required) but use for this smaller bassmod.dll

-- Parameters for playing, see included sources and help for bass.dll for more parameters
BASS_MUSIC_MONO = "2";
BASS_MUSIC_LOOP = "4";

-- Initializing, loading and playing (place PlayBassMusic() function in 'On Startup' actions)
function PlayBassMusic()
-- Loading dll into the memory
hDLL = DLL.CallFunction("kernel32.dll", "LoadLibraryA", "\""..cPathDLL.."\"", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL);
if (hDLL ~= 0) then -- if loaded then
-- Initializes an output device
fDll = DLL.CallFunction(cPathDLL, "BASS_Init", "-1,44100,0,0,0", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL);
if (fDLL ~= 0) then -- if initialized then
-- Starts the output
sDLL = DLL.CallFunction(cPathDLL, "BASS_Start", "", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL);
if (sDLL ~= 0) then -- if successful then
-- Creates a sample stream from an MP3, MP2, MP1, OGG, WAV, AIFF or plugin supported file
-- Please note: new bass.dll v2.4 used in some functions 64-bit parameters (QWORD)
-- In this case parameters must be doubled (64 = 32 and 32), for example: "result, result, integer, integer"
iDLL = DLL.CallFunction(cPathDLL, "BASS_StreamCreateFile", "0,\""..cPathMuz.."\", 0, 0, 0, 0,"..BASS_MUSIC_MONO+BASS_MUSIC_LOOP, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL);
if (iDLL ~= 0) then
-- Starts playback of a stream
DLL.CallFunction(cPathDLL, "BASS_ChannelPlay", iDLL..",1", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL);
end
end
end
end
end

-- Unload dll from the memory
-- Please note: this function must be called every time before exiting from setup
-- Place it on each screen on 'On Cancel' properties:
--[[
if g_ConfirmSetupAbort() then
UnloadBassMusic()
Application.Exit(EXIT_REASON_USER_ABORTED);
end
]]--
-- On finish page place it on 'On Next' (and 'On Cancel') screen properties
--[[
UnloadBassMusic()
Screen.Next();
]]--
function UnloadBassMusic()
-- Frees all resources used by the output device, including all its samples, streams and MOD musics
DLL.CallFunction(cPathDLL, "BASS_Free", "", DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL);
DLL.CallFunction("kernel32.dll", "FreeLibrary", hDLL, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL);
end

qberty
09-16-2008, 03:29 PM
Thanks man! :) Your really Cool. What else could i Stuff into my setup to make it look cool? any equalizer? Slider for song info? Radio?...So much stuff.