From 173d9a183996e31f0ae9633d3b8ddbbc83971693 Mon Sep 17 00:00:00 2001 From: David Vazgenovich Shakaryan Date: Thu, 23 Jul 2009 22:45:34 -0700 Subject: Playback control methods moved to a new file. --- libmpd/playbackcontrol.rb | 79 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 libmpd/playbackcontrol.rb (limited to 'libmpd') diff --git a/libmpd/playbackcontrol.rb b/libmpd/playbackcontrol.rb new file mode 100644 index 0000000..d37ed49 --- /dev/null +++ b/libmpd/playbackcontrol.rb @@ -0,0 +1,79 @@ +#!/usr/bin/env ruby +# +# Copyright 2009 David Vazgenovich Shakaryan +# Distributed under the terms of the GNU General Public License v3. +# See http://www.gnu.org/licenses/gpl.txt for the full license text. + +module MPDPlaybackControl + # Begins playing the playlist. If argument is supplied, begin at specified + # song position. + def play songpos=false + command = 'play' + command << ' ' + songpos.to_s if songpos + + return send_request command + end + + # Begins playing the playlist. If argument is supplied, begin at specified + # song id. + def playid songid=false + command = 'playid' + command << ' ' + songid.to_s if songid + + return send_request command + end + + # Sets pause state. + # + # Accepts an argument of _true_ to enable or _false_ to disable. + # If no argument is given, defaults to _true_. + def pause state=true + return send_request 'pause %s' % state.to_i + end + + # Stops playing. + def stop + return send_request 'stop' + end + + # Plays next song in the playlist. + def next + return send_request 'next' + end + + # Plays previous song in the playlist. + def previous + return send_request 'previous' + end + + # Seeks to the given position of the given song. + def seek songpos, time + return send_request 'seek %s %s' % [songpos, time] + end + + # Seeks to the given position of the given song id. + def seekid songid, time + return send_request 'seekid %s %s' % [songid, time] + end + + # Returns +true+ if playing. + # Otherwise, returns +false+. + def playing? + return true if status[:state] == 'play' + return false + end + + # Returns +true+ if paused. + # Otherwise, returns +false+. + def paused? + return true if status[:state] == 'pause' + return false + end + + # Returns +true+ if stopped. + # Otherwise, returns +false+. + def stopped? + return true if status[:state] == 'stop' + return false + end +end -- cgit v1.2.3-70-g09d2