From 3485525ba0f6ac9c533423ba05d0a654fa2f3d6a Mon Sep 17 00:00:00 2001 From: Pim Kunis Date: Wed, 14 Oct 2020 15:05:04 +0200 Subject: [PATCH] Filter :soundfont argument in start_link and pass to MIDISynth --- README.md | 2 +- lib/midi_player.ex | 12 ++++++++---- test/event_test.exs | 3 +-- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 4a2f185..d009461 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ Now we are ready to play these events. First start the player like so: ```elixir -iex> {:ok, player} = MIDIPlayer.start_link([]) +iex> {:ok, player} = MIDIPlayer.start_link() ``` Then load the events, and play them! diff --git a/lib/midi_player.ex b/lib/midi_player.ex index d8ab784..516d875 100644 --- a/lib/midi_player.ex +++ b/lib/midi_player.ex @@ -12,14 +12,18 @@ defmodule MIDIPlayer do # Client API + @midi_synth_args [:soundfont] + @doc """ Start the MIDI player. - Arguments are the same as `MIDISynth.start_link/2`. + The soundfont path can be set with the :soundfont argument. """ - @spec start_link(keyword(), GenServer.options()) :: GenServer.on_start() - def start_link(args, opts \\ []) do - GenServer.start_link(__MODULE__, args, opts) + @spec start_link(GenServer.options()) :: GenServer.on_start() + def start_link(opts \\ []) do + init_args = Keyword.take(opts, @midi_synth_args) + server_args = Keyword.drop(opts, @midi_synth_args) + GenServer.start_link(__MODULE__, init_args, server_args) end @doc """ diff --git a/test/event_test.exs b/test/event_test.exs index 2d55932..5249c0f 100644 --- a/test/event_test.exs +++ b/test/event_test.exs @@ -10,8 +10,7 @@ defmodule MIDIPlayer.EventTest do end test "change program event" do - assert %Event.ChangeProgram{channel: 0, time: 1, program: 40} = - Event.change_program(0, 1, 40) + assert %Event.ChangeProgram{channel: 0, time: 1, program: 40} = Event.change_program(0, 1, 40) end test "note event conversion" do