--- a/mpd2src/scmakempdsender
+++ b/mpd2src/scmakempdsender
@@ -48,26 +48,29 @@
upmpdclitoo = False
mpdport = 6700
externalvolume = False
-# Upmpdcli friendly-name. Used to compute a Uuid in conjunction with
-# the node name
+# Upmpdcli friendly-name. Used to compute a Uuid in
+# conjunction with the node name
upmpdcli_fname = "UpMpd"
+codec_name = ""
def logerr(s):
print("%s" % s, file=sys.stderr)
args = sys.argv[1:]
-opts, args = getopt.getopt(args, "hup:f:e")
+opts, args = getopt.getopt(args, "hup:f:e:C:")
for opt, arg in opts:
if opt in ['-h']:
usage(sys.stdout)
+ elif opt in ['-C']:
+ codec_name = arg
+ elif opt in ['-e']:
+ externalvolume = True
elif opt in ['-f']:
upmpdcli_fname = arg
elif opt in ['-p']:
mpdport = int(arg)
elif opt in ['-u']:
upmpdclitoo = True
- elif opt in ['-e']:
- externalvolume = True
else:
logerr("unknown option %s\n" % opt)
usage(sys.stderr)
@@ -76,10 +79,13 @@
mpdfifo = tempfile.mktemp(suffix=".fifo")
mpdconf = tempfile.NamedTemporaryFile(delete=False)
-# UDN and name for the Sender UPnP device. We use a hash of the
-# friendly name and host name
-sender_udn = uuid.uuid5(uuid.NAMESPACE_DNS,
- socket.gethostname() + upmpdcli_fname).urn
+# UDN and name for the Sender UPnP device.
+# We used to call:
+# uuid.uuid5(uuid.NAMESPACE_DNS, socket.gethostname() + upmpdcli_fname).urn
+# which yielded something like urn:uuid:bd5d9ae1-5775-5cda-8d14-2f87d64c4798,
+# but this seems to cause issues for recent versions of ohNet (??). So now use
+# the shorter output of uuid1().hex (32 chars)
+sender_udn = uuid.uuid1().hex
sender_name = "%s UxSender" % upmpdcli_fname
mpdproc = None
@@ -165,11 +171,13 @@
# Start the Sender
try:
- senderproc = subprocess.Popen([uxsender, "-f", mpdfifo,
- "-A", "44100:16:2:1",
- "-u", sender_udn, "-n", sender_name],
- stdout=subprocess.PIPE,
- bufsize = -1)
+ cmdvec = [uxsender, "-f", mpdfifo,
+ "-A", "44100:16:2:1",
+ "-u", sender_udn, "-n", sender_name]
+ if codec_name:
+ cmdvec += ["-C", codec_name]
+ logerr("STARTING %s" % cmdvec)
+ senderproc = subprocess.Popen(cmdvec, stdout=subprocess.PIPE, bufsize = -1)
except Exception as err:
logerr("Can't start %s: %s" % (uxsender, err))
cleanup(1)