Косметические доработки.
[mpd-lua.git] / mpd.lua
diff --git a/mpd.lua b/mpd.lua
index 31275b69277cf1ae3210969c6537ddfcec155622..b5e180d5adf38465a3e284af0f766d1a310a12f2 100755 (executable)
--- a/mpd.lua
+++ b/mpd.lua
@@ -182,10 +182,15 @@ if not command or command=="" then
   command="idle"
 end
 
-if command=="play" or command=="pause" or command=="stop" or command=="previous" or command=="next" then
+if command=="play" or command=="pause" or command=="stop" then
 
   res=mpd_send(m,command)
 
+elseif command=="previous" or command=="next" then
+
+  res=mpd_send(m,"play")
+  res=mpd_send(m,command)
+
 elseif command=="idle" then
 
   m.timeout=30
@@ -203,6 +208,79 @@ elseif command=="volu" then
   volume=tonumber(status["volume"])
   res=mpd_send(m,"setvol "..(volume+volstep))
 
+elseif string.starts(command,"fastfwd") then
+
+  cmd=split(command,"|")
+  skip=tonumber(cmd[2])
+  if not skip then
+    skip=15
+  end
+
+  status=mpd_send(m,"status")
+  rec_time=status["time"]
+  song=status["song"]
+  
+  if song then
+
+    if rec_time then
+      rec_time=split(rec_time,":")
+      cur_time=tonumber(rec_time[1])
+
+      track_time=tonumber(rec_time[2])
+      cur_time=cur_time+skip
+      if cur_time>track_time then
+        cur_time=track_time
+      end
+
+      mpd_send(m,"seek "..song.." "..cur_time)
+
+    else
+
+      mpd_send(m,"play")
+
+    end  
+  
+  end
+
+  res={}
+
+elseif string.starts(command,"rewind") then
+
+  cmd=split(command,"|")
+  skip=tonumber(cmd[2])
+  if not skip then
+    skip=15
+  end
+
+  status=mpd_send(m,"status")
+  rec_time=status["time"]
+  song=status["song"]
+  
+  if song then
+
+    if rec_time then
+      rec_time=split(rec_time,":")
+      cur_time=tonumber(rec_time[1])
+
+      track_time=tonumber(rec_time[2])
+      cur_time=cur_time-skip
+      if cur_time<0 then
+        cur_time=0
+      end
+
+      mpd_send(m,"seek "..song.." "..cur_time)
+
+    else
+
+      mpd_send(m,"play")
+      mpd_send(m,"previous")
+
+    end  
+  
+  end
+
+  res={}
+
 elseif command=="status" then
 
   res=mpd_send(m,"status")
@@ -213,7 +291,8 @@ elseif command=="status" then
   if song then 
     res['current_playing']=pl[song]['name']
   else
-    res['current_playing']="No songs selected"
+    res['song']="--"
+    res['current_playing']="---"
   end
 
 elseif command=="playlist" then