From 9acffaa658a2ac4cf3292c0f68f58ea2d47ff81b Mon Sep 17 00:00:00 2001 From: simon Date: Sat, 23 Jan 2021 14:47:49 +0700 Subject: [PATCH] initial commit, can toggle play-pause in mpc --- mpd_controller/mpc.py | 46 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100755 mpd_controller/mpc.py diff --git a/mpd_controller/mpc.py b/mpd_controller/mpc.py new file mode 100755 index 0000000..75f48de --- /dev/null +++ b/mpd_controller/mpc.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python3 +# https://python-mpd2.readthedocs.io/en/latest + +import sys +from mpd import MPDClient +from time import sleep + + +def fade(way, current_vol, client): + """ gracefull fading """ + if way == 'out': + steps = int(current_vol / 2) + amount = -2 + elif way == 'in': + steps = 50 + amount = +2 + for i in range(steps): + client.volume(amount) + sleep(0.03) + + +def mpc_toggle(): + """ toggles play status """ + client = MPDClient() + client.connect("localhost", 6600) + client_status = client.status() + # switch + current_vol = int(client_status['volume']) + if client_status['state'] == 'play': + fade('out', current_vol, client) + client.pause() + elif client_status['state'] == 'pause': + client.setvol(0) + client.play() + fade('in', current_vol, client) + + +def main(): + """ main parser for args """ + mpc_command = sys.argv[1] + if mpc_command == 'toggle': + mpc_toggle() + + +if __name__ == '__main__': + main()