2012-12-03 09:03:34 +00:00
|
|
|
local awful = awful
|
2012-03-15 23:52:06 +00:00
|
|
|
local M = {}
|
|
|
|
local type = ""
|
|
|
|
|
|
|
|
-- local functions
|
2012-07-11 07:36:45 +00:00
|
|
|
local show, mpc_play_search, notify
|
2012-03-15 23:52:06 +00:00
|
|
|
|
|
|
|
local defaults = {}
|
|
|
|
local settings = {}
|
|
|
|
|
|
|
|
defaults.host = "127.0.0.1"
|
|
|
|
defaults.port = 6600
|
|
|
|
defaults.replace_on_search = true
|
|
|
|
|
|
|
|
for key, value in pairs(defaults) do
|
|
|
|
settings[key] = value
|
|
|
|
end
|
|
|
|
|
|
|
|
-- {{{ basic functions
|
|
|
|
|
|
|
|
-- }}}
|
|
|
|
|
|
|
|
-- {{{ mpd.ctrl submodule
|
|
|
|
|
|
|
|
M.ctrl = {}
|
|
|
|
|
|
|
|
M.ctrl.toggle = function ()
|
2012-12-03 09:03:34 +00:00
|
|
|
awful.util.spawn("mpc toggle")
|
2012-03-15 23:52:06 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
M.ctrl.play = function ()
|
2012-12-03 09:03:34 +00:00
|
|
|
awful.util.spawn("mpc play")
|
2012-03-15 23:52:06 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
M.ctrl.pause = function ()
|
2012-12-03 09:03:34 +00:00
|
|
|
awful.util.spawn("mpc pause")
|
2012-03-15 23:52:06 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
M.ctrl.next = function ()
|
2012-12-03 09:03:34 +00:00
|
|
|
awful.util.spawn("mpc next")
|
2012-03-15 23:52:06 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
M.ctrl.prev = function ()
|
2012-12-03 09:03:34 +00:00
|
|
|
awful.util.spawn("mpc prev")
|
|
|
|
end
|
|
|
|
|
|
|
|
M.ctrl.clear = function ()
|
|
|
|
awful.util.spawn("mpc clear")
|
2012-03-15 23:52:06 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
-- }}}
|
|
|
|
|
|
|
|
-- {{{ mpd.prompt submodule
|
|
|
|
|
|
|
|
local clear_before = cfg.mpd_prompt_clear_before == nil and
|
|
|
|
true or
|
|
|
|
cfg.mpd_prompt_clear_before
|
|
|
|
|
|
|
|
M.prompt = {}
|
|
|
|
|
|
|
|
M.prompt.artist = function()
|
|
|
|
type = "artist"
|
|
|
|
show()
|
|
|
|
end
|
|
|
|
|
|
|
|
M.prompt.album = function()
|
|
|
|
type = "album"
|
|
|
|
show()
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
M.prompt.title = function()
|
|
|
|
type = "title"
|
|
|
|
show()
|
|
|
|
end
|
|
|
|
M.prompt.title = title
|
|
|
|
|
|
|
|
M.prompt.replace_on_search = function(bool)
|
|
|
|
clear_before = bool
|
|
|
|
end
|
|
|
|
|
|
|
|
M.prompt.toggle_replace_on_search = function()
|
|
|
|
clear_before = not clear_before
|
|
|
|
notify("MPD prompts now " ..(
|
|
|
|
clear_before and "replace" or "add to"
|
|
|
|
).. " the playlist")
|
|
|
|
end
|
|
|
|
|
|
|
|
function show()
|
|
|
|
obvious.popup_run_prompt.set_prompt_string("Play ".. type .. ":")
|
|
|
|
obvious.popup_run_prompt.set_cache("/mpd_ ".. type);
|
|
|
|
obvious.popup_run_prompt.set_run_function(mpc_play_search)
|
|
|
|
obvious.popup_run_prompt.run_prompt()
|
|
|
|
end
|
|
|
|
|
|
|
|
function mpc_play_search(s)
|
2012-12-03 09:03:34 +00:00
|
|
|
if clear_before then M.ctrl.clear() end
|
|
|
|
awful.util.spawn("mpc search " .. type .. " | mpc add; mpc play")
|
2012-03-15 23:52:06 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
-- }}}
|
|
|
|
|
|
|
|
-- {{{ notify wrapper
|
|
|
|
notify = function(stext)
|
|
|
|
if not (naughty == nil) then
|
|
|
|
naughty.notify({
|
|
|
|
text= stext
|
|
|
|
})
|
|
|
|
end
|
|
|
|
end
|
|
|
|
--}}}
|
|
|
|
|
|
|
|
return M
|
|
|
|
|
|
|
|
-- vim: set fenc=utf-8 tw=80 foldmethod=marker :
|