some module reorganization
This commit is contained in:
parent
85c61e1bf6
commit
6c51dd5c37
1 changed files with 29 additions and 26 deletions
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue