-- WinAmp input-plugin wrapper for Euphoria 2.? -- By Mic, 2000 -- -- Updated version (000610) -- -- See README.TXT for more info. -- include machine.e include dll.e include get.e include msgbox.e global constant plugwrap_version = {2000,6,10} constant lpszstr300 = allocate(300) atom plugwrap global integer InitXPlug,DeinitXPlug,SetXPlugParent,PlayX,PauseX,StopX, SetXVolume,SetXPan,GetXLength,GetXOutputTime,SetXOutputTime function linkcfunc(atom lib,sequence proc,sequence inparms,atom outparm) atom hproc hproc = define_c_func(lib,proc,inparms,outparm) if hproc=-1 then hproc = message_box("A required function, " & proc & ", was not found.","Error",MB_ICONEXCLAMATION) abort(1) end if return hproc end function function linkcproc(atom lib,sequence proc,sequence inparms) atom hproc hproc = define_c_proc(lib,proc,inparms) if hproc=-1 then hproc = message_box("A required procedure, " & proc & ", was not found.","Error",MB_ICONEXCLAMATION) abort(1) end if return hproc end function plugwrap = open_dll("plugwrap.dll") if plugwrap = NULL then abort(1) end if InitXPlug = linkcfunc(plugwrap,"InitXPlug",{C_POINTER},C_INT) DeinitXPlug = linkcproc(plugwrap,"DeInitXPlug",{C_INT}) SetXPlugParent = linkcproc(plugwrap,"SetXPlugParent",{C_UINT}) GetXLength = linkcfunc(plugwrap,"GetXLength",{},C_INT) GetXOutputTime = linkcfunc(plugwrap,"GetXOutputTime",{},C_INT) SetXOutputTime = linkcproc(plugwrap,"SetXOutputTime",{C_INT}) PlayX = linkcfunc(plugwrap,"PlayX",{C_POINTER},C_INT) PauseX = linkcproc(plugwrap,"PauseX",{}) StopX = linkcproc(plugwrap,"StopX",{}) SetXVolume = linkcproc(plugwrap,"SetXVolume",{C_INT}) SetXPan = linkcproc(plugwrap,"SetXPan",{C_INT}) global function InitPlug(sequence plugname) poke(lpszstr300,plugname & 0) return (c_func(InitXPlug,{lpszstr300})) end function global procedure SetPlugParent(atom prnt) c_proc(SetXPlugParent,{prnt}) end procedure global function Play(sequence fname) poke(lpszstr300,fname & 0) return (c_func(PlayX,{lpszstr300})) end function global procedure Pause() c_proc(PauseX,{}) end procedure global procedure Stop() c_proc(StopX,{}) end procedure global function GetLength() return c_func(GetXLength,{}) end function global function GetOutputTime() return c_func(GetXOutputTime,{}) end function global procedure SetOutputTime(integer tmms) c_proc(SetXOutputTime,{tmms}) end procedure global procedure SetVolume(integer vol) c_proc(SetXVolume,{vol}) end procedure global procedure SetPan(integer pan) c_proc(SetXPan,{pan}) end procedure global procedure ClosePlug(integer closeOut) c_proc(DeinitXPlug,{closeOut}) end procedure