Skip to content

Commit d07dd52

Browse files
committed
Created Sender process. Started on application start.
1 parent 4cb6d02 commit d07dd52

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-0
lines changed

lib/elixir_osc/sender.ex

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
defmodule ElixirOsc.Sender do
2+
use GenServer.Behaviour
3+
4+
def send_message(ip_tuple, port, {path, args}) do
5+
data = OSC.Message.construct(path, args)
6+
:gen_server.cast(:osc_sender, {:osc_message, ip_tuple, port, data})
7+
end
8+
9+
def start_link() do
10+
:gen_server.start_link({:local, :osc_sender}, __MODULE__, [], [])
11+
end
12+
13+
def init(_args) do
14+
:gen_udp.open(0, [:binary, {:active, true}])
15+
end
16+
17+
def handle_cast({:osc_message, ip, port, data}, socket) do
18+
:ok = :gen_udp.send(socket, ip, port, data)
19+
{:noreply, socket}
20+
end
21+
end
22+

lib/elixir_osc/supervisor.ex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ defmodule ElixirOsc.Supervisor do
1212
# worker(ElixirOsc.Worker, [])
1313
worker(ElixirOsc.Listener, args),
1414
worker(ElixirOsc.Parser, args),
15+
worker(ElixirOsc.Sender, args),
1516
]
1617

1718
ElixirOsc.Events.start_link

0 commit comments

Comments
 (0)