Switch to unified view

a/mpd2src/scmakempdsender b/mpd2src/scmakempdsender
...
...
46
    sys.exit(1)
46
    sys.exit(1)
47
    
47
    
48
upmpdclitoo = False
48
upmpdclitoo = False
49
mpdport = 6700
49
mpdport = 6700
50
externalvolume = False
50
externalvolume = False
51
# Upmpdcli friendly-name. Used to compute a Uuid in conjunction with
51
# Upmpdcli friendly-name. Used to compute a Uuid in
52
# the node name
52
# conjunction with the node name
53
upmpdcli_fname = "UpMpd"
53
upmpdcli_fname = "UpMpd"
54
codec_name = ""
54
55
55
def logerr(s):
56
def logerr(s):
56
    print("%s" % s, file=sys.stderr)
57
    print("%s" % s, file=sys.stderr)
57
    
58
    
58
args = sys.argv[1:]
59
args = sys.argv[1:]
59
opts, args = getopt.getopt(args, "hup:f:e")
60
opts, args = getopt.getopt(args, "hup:f:e:C:")
60
for opt, arg in opts:
61
for opt, arg in opts:
61
    if opt in ['-h']:
62
    if opt in ['-h']:
62
        usage(sys.stdout)
63
        usage(sys.stdout)
64
    elif opt in ['-C']:
65
        codec_name = arg
66
    elif opt in ['-e']:
67
        externalvolume = True
63
    elif opt in ['-f']:
68
    elif opt in ['-f']:
64
        upmpdcli_fname = arg
69
        upmpdcli_fname = arg
65
    elif opt in ['-p']:
70
    elif opt in ['-p']:
66
        mpdport = int(arg)
71
        mpdport = int(arg)
67
    elif opt in ['-u']:
72
    elif opt in ['-u']:
68
        upmpdclitoo = True
73
        upmpdclitoo = True
69
    elif opt in ['-e']:
70
        externalvolume = True
71
    else:
74
    else:
72
        logerr("unknown option %s\n" % opt)
75
        logerr("unknown option %s\n" % opt)
73
        usage(sys.stderr)
76
        usage(sys.stderr)
74
77
75
# Temp fifo name and temporary file for mpd configuration
78
# Temp fifo name and temporary file for mpd configuration
76
mpdfifo = tempfile.mktemp(suffix=".fifo")
79
mpdfifo = tempfile.mktemp(suffix=".fifo")
77
mpdconf = tempfile.NamedTemporaryFile(delete=False)
80
mpdconf = tempfile.NamedTemporaryFile(delete=False)
78
81
79
# UDN and name for the Sender UPnP device. We use a hash of the
82
# UDN and name for the Sender UPnP device.
80
# friendly name and host name
83
# We used to call:
81
sender_udn = uuid.uuid5(uuid.NAMESPACE_DNS,
84
#  uuid.uuid5(uuid.NAMESPACE_DNS, socket.gethostname() + upmpdcli_fname).urn
82
                        socket.gethostname() + upmpdcli_fname).urn
85
# which yielded something like urn:uuid:bd5d9ae1-5775-5cda-8d14-2f87d64c4798,
86
# but this seems to cause issues for recent versions of ohNet (??). So now use
87
# the shorter output of uuid1().hex (32 chars)
88
sender_udn = uuid.uuid1().hex
83
sender_name = "%s UxSender" % upmpdcli_fname
89
sender_name = "%s UxSender" % upmpdcli_fname
84
90
85
mpdproc = None
91
mpdproc = None
86
senderproc = None
92
senderproc = None
87
upmpdproc = None
93
upmpdproc = None
...
...
163
        sys.exit(1)
169
        sys.exit(1)
164
    time.sleep(0.1)
170
    time.sleep(0.1)
165
171
166
# Start the Sender
172
# Start the Sender
167
try:
173
try:
168
    senderproc = subprocess.Popen([uxsender, "-f", mpdfifo,
174
    cmdvec = [uxsender, "-f", mpdfifo,
169
                                   "-A", "44100:16:2:1",
175
              "-A", "44100:16:2:1",
170
                                   "-u", sender_udn, "-n", sender_name],
176
              "-u", sender_udn, "-n", sender_name]
171
                                  stdout=subprocess.PIPE,
177
    if codec_name:
172
                                  bufsize = -1)
178
        cmdvec += ["-C", codec_name]
179
    logerr("STARTING %s" % cmdvec)
180
    senderproc = subprocess.Popen(cmdvec, stdout=subprocess.PIPE, bufsize = -1)
173
except Exception as err:
181
except Exception as err:
174
    logerr("Can't start %s: %s" % (uxsender, err))
182
    logerr("Can't start %s: %s" % (uxsender, err))
175
    cleanup(1)
183
    cleanup(1)
176
184
177
# Get the Uri and Metadata values from the sender. These get written to stdout
185
# Get the Uri and Metadata values from the sender. These get written to stdout