54 lines
1.6 KiB
Python
54 lines
1.6 KiB
Python
# -*- coding: utf-8 -*-
|
||
serviceType = "local"
|
||
serviceDesc = _({"en": "Timidity Virtual MIDI Sequencer for Alsa",
|
||
"tr": "Timidity Sanal MIDI Ardışımlayıcı"})
|
||
|
||
MSG_ERR_TIMDPTCH = _({"en": "Failed to set patchset %s for Timidity.",
|
||
"tr": "Yama kümesi %s Timidity'ye atanamadı.",
|
||
})
|
||
|
||
from comar.service import *
|
||
import os
|
||
|
||
@synchronized
|
||
def start():
|
||
|
||
if config.get("USE_ESOUND", "") == "yes":
|
||
startDependencies("esound")
|
||
|
||
# set up sound fonts
|
||
patchset = config.get("PATCHSET", "shompatches")
|
||
currentlink = "/usr/share/timidity/current"
|
||
|
||
try:
|
||
currentpatch = os.readlink(currentlink)
|
||
except:
|
||
currentpatch = None
|
||
|
||
if patchset != currentpatch:
|
||
if not os.path.exists("/usr/share/timidity/%s" % patchset) and not os.path.exists(patchset):
|
||
fail(MSG_ERR_TIMDPTCH % patchset)
|
||
else:
|
||
if currentpatch:
|
||
os.unlink(currentlink)
|
||
os.symlink(patchset, currentlink)
|
||
|
||
if config.get("TIMIDITY_PCM_NAME", "") != "":
|
||
loadEnvironment()
|
||
os.environ["TIMIDITY_PCM_NAME"]=config.get("TIMIDITY_PCM_NAME")
|
||
|
||
startService(command="/usr/bin/timidity",
|
||
args="-iA %s" % config.get("TIMIDITY_OPTS", ""),
|
||
pidfile="/run/timidity.pid",
|
||
makepid=True,
|
||
detach=True,
|
||
donotify=True)
|
||
|
||
@synchronized
|
||
def stop():
|
||
stopService(pidfile="/run/timidity.pid",
|
||
donotify=True)
|
||
|
||
def status():
|
||
return isServiceRunning("/run/timidity.pid")
|