some module reorganization

This commit is contained in:
Spencer Russell 2013-12-13 02:17:21 -05:00
parent 85c61e1bf6
commit 6c51dd5c37

View file

@ -2,15 +2,7 @@
module PortAudio module PortAudio
export init, deinit, play_sin, stop_sin export play_sin, stop_sin
# Load in the custom C shim
const libportaudio_shim = find_library(["libportaudio_shim",],
[Pkg.dir("PortAudio", "deps", "usr", "lib"),])
@assert(libportaudio_shim != "", "Failed to find required library " *
"libportaudio_shim. Try re-running the package script using " *
"Pkg.build(\"PortAudio\")")
typealias PaTime Cdouble typealias PaTime Cdouble
typealias PaError Cint typealias PaError Cint
@ -19,23 +11,7 @@ typealias PaStream Void
const PA_NO_ERROR = 0 const PA_NO_ERROR = 0
function handle_status(err::PaError) ############ Exported Functions #############
if err != PA_NO_ERROR
msg = ccall((:Pa_GetErrorText, "libportaudio"),
Ptr{Cchar}, (PaError,), err)
error("libportaudio: " * bytestring(msg))
end
end
function init()
err = ccall((:Pa_Initialize, "libportaudio"), PaError, ())
handle_status(err)
end
function deinit()
err = ccall((:Pa_Terminate, "libportaudio"), PaError, ())
handle_status(err)
end
function play_sin() function play_sin()
err = ccall((:play_sin, libportaudio_shim), PaError, ()) err = ccall((:play_sin, libportaudio_shim), PaError, ())
@ -47,6 +23,33 @@ function stop_sin()
handle_status(err) handle_status(err)
end end
############ Internal Functions ############
function handle_status(err::PaError)
if err != PA_NO_ERROR
msg = ccall((:Pa_GetErrorText, "libportaudio"),
Ptr{Cchar}, (PaError,), err)
error("libportaudio: " * bytestring(msg))
end
end
function init_pulseaudio()
err = ccall((:Pa_Initialize, "libportaudio"), PaError, ())
handle_status(err)
end
########### Module Initialization ##############
const libportaudio_shim = find_library(["libportaudio_shim",],
[Pkg.dir("PortAudio", "deps", "usr", "lib"),])
@assert(libportaudio_shim != "", "Failed to find required library " *
"libportaudio_shim. Try re-running the package script using " *
"Pkg.build(\"PortAudio\")")
init_pulseaudio()
end # module PortAudio end # module PortAudio