#! /usr/bin/env python3
# -*- coding: utf-8 -*-

import argparse
parser = argparse.ArgumentParser(description="Laborejo Command Line Player.")
parser.add_argument("path", help="A Laborejo Score (*.lbjs) file")
parser.add_argument("-j", "--jack", help="Instead of the internal General Midi sample use the jack midi data set and auto-connect all lbjs-saved ports.", action="store_true")
parser.add_argument("-s", "--soundfont", help="Optional Soundfont (*.sf2). Has no effect when used with --jack")

args = parser.parse_args()

import signal
import laborejocore as api #start the laborejo modile

api.calfboxInit(soundfont = args.soundfont)


#User can quit the program before it runs out.
def signal_handler(signal, frame):
    api.stop()
signal.signal(signal.SIGTERM, signal_handler)
signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGQUIT, signal_handler)


api.load(args.path)
api.playOnce(jackMode = args.jack)
print()
api.calfboxShutdown()
