From 8f6b6733bc20ba6879b270c1f1dfefc415c26d87 Mon Sep 17 00:00:00 2001 From: Vincent Bernat Date: Fri, 1 Nov 2013 15:27:20 +0100 Subject: [PATCH] music: abstract the functions used to control music player We still use Spotify but we isolate the music functions into a specific module. Other music player would implement the same interface. --- lib/spotify.lua | 35 +++++++++++++++++++++++++++++++++++ rc/bindings.lua | 17 +++++++---------- 2 files changed, 42 insertions(+), 10 deletions(-) create mode 100644 lib/spotify.lua diff --git a/lib/spotify.lua b/lib/spotify.lua new file mode 100644 index 0000000..6dc03d9 --- /dev/null +++ b/lib/spotify.lua @@ -0,0 +1,35 @@ +-- Drive spotify + +local awful = require("awful") + +module("vbe/spotify") + +-- Send a command to spotify +local function spotify(command) + awful.util.spawn("dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify " .. + "/org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player." .. command, false) +end + +function playpause() + spotify("PlayPause") +end + +function play() + spotify("Play") +end + +function pause() + spotify("Pause") +end + +function stop() + spotify("Stop") +end + +function next() + spotify("Next") +end + +function previous() + spotify("Previous") +end diff --git a/rc/bindings.lua b/rc/bindings.lua index b188703..aa8d418 100644 --- a/rc/bindings.lua +++ b/rc/bindings.lua @@ -135,11 +135,7 @@ local function screen_focus(i) if c then client.focus = c end end --- Send a command to spotify -local function spotify(command) - awful.util.spawn("dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify " .. - "/org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player." .. command, false) -end +local music = loadrc("spotify", "vbe/spotify") config.keys.global = awful.util.table.join( keydoc.group("Focus"), @@ -217,11 +213,12 @@ config.keys.global = awful.util.table.join( awful.key({ }, "XF86AudioRaiseVolume", volume.increase), awful.key({ }, "XF86AudioLowerVolume", volume.decrease), awful.key({ }, "XF86AudioMute", volume.toggle), - awful.key({ }, "XF86AudioPlay", function() spotify("PlayPause") end), - awful.key({ }, "XF86AudioPause", function() spotify("PlayPause") end), - awful.key({ }, "XF86AudioStop", function() spotify("Stop") end), - awful.key({ }, "XF86AudioNext", function() spotify("Next") end), - awful.key({ }, "XF86AudioPrev", function() spotify("Previous") end), + + awful.key({ }, "XF86AudioPlay", music.playpause), + awful.key({ }, "XF86AudioPause", music.pause), + awful.key({ }, "XF86AudioStop", music.stop), + awful.key({ }, "XF86AudioNext", music.next), + awful.key({ }, "XF86AudioPrev", music.previous), -- Help awful.key({ modkey, }, "F1", keydoc.display)