From 2e32296dfc9dc1fd190d17626b40b0fd098452b1 Mon Sep 17 00:00:00 2001
From: Přemysl Janouch
Date: Wed, 13 May 2015 06:08:49 +0200
Subject: Add an MPD service detection plugin
---
plugins/mpd.lua | 45 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)
create mode 100644 plugins/mpd.lua
(limited to 'plugins')
diff --git a/plugins/mpd.lua b/plugins/mpd.lua
new file mode 100644
index 0000000..b513723
--- /dev/null
+++ b/plugins/mpd.lua
@@ -0,0 +1,45 @@
+--
+-- mpd.lua: Music Player Daemon service detection plugin
+--
+-- Copyright (c) 2015, Přemysl Janouch
+--
+-- Permission to use, copy, modify, and/or distribute this software for any
+-- purpose with or without fee is hereby granted, provided that the above
+-- copyright notice and this permission notice appear in all copies.
+--
+-- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+-- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+-- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+-- SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+-- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+-- OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+-- CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+--
+
+ponymap.check_api_version (1)
+
+local MPD = {}
+MPD.__index = MPD
+
+function MPD.new (unit)
+ return setmetatable ({ unit = unit, buf = "" }, MPD)
+end
+
+function MPD:on_data (data)
+ self.buf = self.buf .. data
+ local line = string.match (self.buf, "([^\n]*)\n")
+ if line then
+ local version = string.match (line, "OK MPD (.*)")
+ if version then
+ self.unit:add_info ("version " .. version)
+ self.unit:set_success (true)
+ end
+ self.unit:abort ()
+ end
+end
+
+ponymap.register_service ({
+ name = "MPD",
+ flags = 0,
+ new_scan = MPD.new
+})
--
cgit v1.2.3-70-g09d2