updates for splitting up assets and code etc
[swamp-bikeopera:code.git] / lib / audioc.lua
1 -- Swamp Bike Opera embedded system for Kaffe Matthews 
2 -- Copyright (C) 2012 Wolfgang Hauptfleisch, Dave Griffiths
3 --
4 -- This program is free software: you can redistribute it and/or modify
5 -- it under the terms of the GNU General Public License as published by
6 -- the Free Software Foundation, either version 3 of the License, or
7 -- (at your option) any later version.
8 --
9 -- This program is distributed in the hope that it will be useful,
10 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
11 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 -- GNU General Public License for more details.
13 --
14 -- You should have received a copy of the GNU General Public License
15 -- along with this program.  If not, see <http://www.gnu.org/licenses/>.
16
17 module("audioc", package.seeall)
18
19 local mt = { __index = {} }
20
21 ---
22 local function send(message)
23  
24    local pipe = io.open("/tmp/dodo", "w")
25    if pipe then
26       pipe:write(message.."\n")
27    else
28     return false
29    end
30
31 pipe:close()
32 return true
33 end
34
35 ---
36 function play(id, channel)
37   local message
38   if not channel then
39      message = "play "..id
40   else
41      message = "play_"..channel.." "..id
42   end
43   send(message)
44 end
45
46 ---
47 function stop(id)
48   local message = "stop "..id
49   send(message)
50 end
51
52
53 ---
54 function shift(id, channel)
55   local message
56      message = channel.." "..id
57      send(message)
58 end
59
60
61 ---
62 function fadeout(id)
63   local message = "fadeout "..id
64   send(message)
65 end
66
67
68 ---
69 function pitch(id, speed)
70    local message = speed.." "..id
71    send(message)
72 end
73