diff --git a/models/control.rb b/models/control.rb index 948abbb..486770f 100644 --- a/models/control.rb +++ b/models/control.rb @@ -2,6 +2,10 @@ require './models/mpd_connection' class Control class << self + def controls + [:play, :stop, :next, :previous, :pause] + end + def play MPDConnection.mpd.play end @@ -19,7 +23,11 @@ class Control end def pause - MPDConnection.mpd.pause(!MPDConnection.mpd.paused?) + MPDConnection.mpd.pause = !MPDConnection.mpd.paused? + end + + def volume(value) + MPDConnection.mpd.volume = value end end end diff --git a/mpd_client.rb b/mpd_client.rb index 5e7f963..0cec098 100644 --- a/mpd_client.rb +++ b/mpd_client.rb @@ -39,6 +39,18 @@ class MPDClient < Sinatra::Base JSON Song.queue.map(&:to_h) end + put '/control/:action' do + if Control.controls.include?(params[:action].to_sym) + Control.send(params[:action]) + else + not_found + end + end + + put '/control/volume/:value' do + Control.volume(params[:value]) + end + end end