#!/usr/bin/env python
import osxmmkeys
import subprocess
import time

commands = {
    'play_pause': 'toggle',
    'next_track': 'next',
    'prev_track': 'cdprev'
}

class MpdKeys():
    def __init__(self):
        def mpdRemote(command, flag):
            def f():
                print(command)
                subprocess.call(['mpc', flag])
                return False
            return f

        self.tap = osxmmkeys.Tap()
        for command, flag in commands.items():
            self.tap.on(command, mpdRemote(command, flag))

    def run(self):
        self.tap.start()
        try:
            while True: time.sleep(1)
        except (KeyboardInterrupt, SystemExit):
            self.tap.stop()

if __name__ == '__main__': MpdKeys().run()