Merge branch 'master' of gitlab.com:hugvey/hugvey

This commit is contained in:
Ruben van de Ven 2019-05-13 14:46:46 +02:00
commit 42b4185a69
8 changed files with 407 additions and 222 deletions

View file

@ -223,6 +223,11 @@ def getVoiceHandler(voiceStorage):
self.finish()
return VoiceHandler
class StaticFileWithHeaderHandler(tornado.web.StaticFileHandler):
def set_extra_headers(self, path):
"""For subclass to add extra headers to the response"""
if path[-5:] == '.html':
self.set_header("Access-Control-Allow-Origin", "*")
class Panopticon(object):
def __init__(self, central_command, config, voiceStorage):
@ -239,7 +244,7 @@ class Panopticon(object):
{"path": config['web']['files_dir']}),
(r"/upload", getUploadHandler(self.command)),
(r"/voice", getVoiceHandler(self.voiceStorage)),
(r"/(.*)", tornado.web.StaticFileHandler,
(r"/(.*)", StaticFileWithHeaderHandler,
{"path": web_dir, "default_filename": 'index.html'}),
], debug=True)
@ -278,4 +283,3 @@ class Panopticon(object):
j = json.dumps(msg)
logger.debug(j)
self.loop.add_callback(wsHandler.write_to_clients, j)

View file

@ -628,7 +628,7 @@ class Diversion(object):
}]
"""
self.counter +=1
# story.logger.warn(f"CREATING DIRECTIONS FOR {startMsg.id}")
finishMessageIds = story.getFinishesForMsg(startMsg)
finalTimeoutDuration = timeoutDuration
finalContainsDurations = replyContainsDurations
@ -647,6 +647,7 @@ class Diversion(object):
finalContainsDurations = json.loads(condition.originalJsonString)['vars']['delays']
i = 0
# story.logger.warn(f"FINISHES: {finishMessageIds}")
for msgId in finishMessageIds:
# Some very ugly hack to add a direction & condition
i+=1
@ -693,6 +694,7 @@ class Diversion(object):
story.logger.info(f"Created direction: {direction.id} {condition.id} with timeout {finalTimeoutDuration}s")
story.add(condition)
story.add(direction)
# story.logger.warn(f"ADDED DIRECTION {direction.id}")
@ -1649,16 +1651,16 @@ class Story(object):
self.timer.pause()
def calculateFinishesForMsg(self, msgId, depth = 0, checked = []):
if msgId in checked:
return []
checked.append(msgId)
# if msgId in checked:
# return []
#
# checked.append(msgId)
if not msgId in self.directionsPerMsg or len(self.directionsPerMsg[msgId]) < 1:
# is finish
return [msgId]
if depth > 200:
if depth > 100:
return []
finishes = []
@ -1691,6 +1693,7 @@ class Story(object):
returns message ids
"""
print(msg.id, self.strands)
if msg.id in self.strands:
return self.strands[msg.id]
@ -1780,4 +1783,3 @@ class Story(object):
def __setstate__(self, state):
self.__dict__.update(state)

View file

@ -15,6 +15,16 @@ echo "blacklist snd_bcm2835" > /etc/modprobe.d/internalsnd-blacklist.conf
echo "d /var/log/supervisor 0777 root root" > /etc/tmpfiles.d/supervisor.conf
cp installation/fstab /etc/fstab
# setup pulseaudio as system daemon and grant access: https://rudd-o.com/linux-and-free-software/how-to-make-pulseaudio-run-once-at-boot-for-all-your-users
cp installation/pulseaudio.service /etc/systemd/system/pulseaudio.service
# disable autospawn
cp installation/pulseaudio-client.conf /etc/pulse/client.conf
# put tsched to 0: https://wiki.archlinux.org/index.php/PulseAudio/Troubleshooting#Sound_stuttering_when_streaming_over_network
cp installation/pulse-default.pa /etc/pulse/default.pa
systemctl --system enable pulseaudio.service
systemctl --system start pulseaudio.service
usermod -a -G pulse-access pi
# Added chown=pi:pi
cp installation/supervisord.conf /etc/supervisor/supervisord.conf
ln -s /home/pi/hugvey/supervisor.conf /etc/supervisor/conf.d/hugvey.conf

View file

@ -0,0 +1,141 @@
#!/usr/bin/pulseaudio -nF
#
# This file is part of PulseAudio.
#
# PulseAudio is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# PulseAudio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
# This startup script is used only if PulseAudio is started per-user
# (i.e. not in system mode)
.fail
### Automatically restore the volume of streams and devices
load-module module-device-restore
load-module module-stream-restore
load-module module-card-restore
### Automatically augment property information from .desktop files
### stored in /usr/share/application
load-module module-augment-properties
### Should be after module-*-restore but before module-*-detect
load-module module-switch-on-port-available
### Load audio drivers statically
### (it's probably better to not load these drivers manually, but instead
### use module-udev-detect -- see below -- for doing this automatically)
#load-module module-alsa-sink
#load-module module-alsa-source device=hw:1,0
#load-module module-oss device="/dev/dsp" sink_name=output source_name=input
#load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input
#load-module module-null-sink
#load-module module-pipe-sink
### Automatically load driver modules depending on the hardware available
.ifexists module-udev-detect.so
# HUGVEY: put tsched to 0: https://wiki.archlinux.org/index.php/PulseAudio/Troubleshooting#Sound_stuttering_when_streaming_over_network
load-module module-udev-detect tsched=0
.else
### Use the static hardware detection module (for systems that lack udev support)
load-module module-detect
.endif
### Automatically connect sink and source if JACK server is present
.ifexists module-jackdbus-detect.so
.nofail
load-module module-jackdbus-detect channels=2
.fail
.endif
### Automatically load driver modules for Bluetooth hardware
.ifexists module-bluetooth-policy.so
load-module module-bluetooth-policy
.endif
.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover
.endif
### Load several protocols
.ifexists module-esound-protocol-unix.so
load-module module-esound-protocol-unix
.endif
load-module module-native-protocol-unix
### Network access (may be configured with paprefs, so leave this commented
### here if you plan to use paprefs)
#load-module module-esound-protocol-tcp
#load-module module-native-protocol-tcp
#load-module module-zeroconf-publish
### Load the RTP receiver module (also configured via paprefs, see above)
#load-module module-rtp-recv
### Load the RTP sender module (also configured via paprefs, see above)
#load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 sink_properties="device.description='RTP Multicast Sink'"
#load-module module-rtp-send source=rtp.monitor
### Load additional modules from GConf settings. This can be configured with the paprefs tool.
### Please keep in mind that the modules configured by paprefs might conflict with manually
### loaded modules.
.ifexists module-gconf.so
.nofail
load-module module-gconf
.fail
.endif
### Automatically restore the default sink/source when changed by the user
### during runtime
### NOTE: This should be loaded as early as possible so that subsequent modules
### that look up the default sink/source get the right value
load-module module-default-device-restore
### Automatically move streams to the default sink if the sink they are
### connected to dies, similar for sources
load-module module-rescue-streams
### Make sure we always have a sink around, even if it is a null sink.
load-module module-always-sink
### Honour intended role device property
load-module module-intended-roles
### Automatically suspend sinks/sources that become idle for too long
load-module module-suspend-on-idle
### If autoexit on idle is enabled we want to make sure we only quit
### when no local session needs us anymore.
.ifexists module-console-kit.so
load-module module-console-kit
.endif
.ifexists module-systemd-login.so
load-module module-systemd-login
.endif
### Enable positioned event sounds
load-module module-position-event-sounds
### Cork music/video streams when a phone stream is active
load-module module-role-cork
### Modules to allow autoloading of filters (such as echo cancellation)
### on demand. module-filter-heuristics tries to determine what filters
### make sense, and module-filter-apply does the heavy-lifting of
### loading modules and rerouting streams.
load-module module-filter-heuristics
load-module module-filter-apply
### Make some devices default
#set-default-sink output
#set-default-source input

View file

@ -0,0 +1,18 @@
# disable autospawn because we're in system wide mode
; default-sink =
; default-source =
; default-server =
; default-dbus-server =
autospawn = no
; daemon-binary = /usr/bin/pulseaudio
; extra-arguments = --log-target=syslog
; cookie-file =
; enable-shm = yes
; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB
; auto-connect-localhost = no
; auto-connect-display = no

View file

@ -0,0 +1,9 @@
[Unit]
Description=PulseAudio system server
[Service]
Type=notify
ExecStart=/usr/bin/pulseaudio --daemonize=no --system --realtime --log-target=journal
[Install]
WantedBy=multi-user.target

View file

@ -1,51 +1,52 @@
#N canvas 200 136 660 592 10;
#N canvas 976 211 660 592 10;
#X obj 131 277 dac~;
#X obj 131 227 readsf~;
#X obj 209 209 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X text 229 206 (re-)start loop;
#X msg 132 170 open /home/a/projects/pd-play/testaudio.wav \, 1;
#X obj 208 459 netsend -u -b;
#X obj 208 481 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
#X obj 208 481 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X msg 355 464 disconnect;
#X obj 208 393 list prepend send;
#X obj 208 415 list trim;
#X msg 357 434 connect localhost 5555;
#X obj 208 345 oscformat /trigger;
#X msg 51 193 0;
#X obj 227 83 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X text 40 173 stop loop;
#X msg 210 292 1;
#X msg 208 320 1;
#X obj 318 84 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X text 217 60 START;
#X obj 436 84 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
#X obj 436 84 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X text 309 61 !STOP!;
#X text 422 60 Playing indicator;
#X msg 261 118 1;
#X msg 330 117 0;
#X obj 208 345 oscformat /loop;
#X msg 356 434 connect 192.168.1.174 7400;
#X msg 132 170 open /mnt/stash/hugvey/score38_loop_40s_extra.wav \,
1;
#X connect 1 0 0 0;
#X connect 1 0 0 1;
#X connect 1 1 2 0;
#X connect 2 0 4 0;
#X connect 2 0 15 0;
#X connect 4 0 1 0;
#X connect 5 0 6 0;
#X connect 7 0 5 0;
#X connect 8 0 9 0;
#X connect 9 0 5 0;
#X connect 10 0 5 0;
#X connect 11 0 8 0;
#X connect 12 0 1 0;
#X connect 13 0 10 0;
#X connect 13 0 2 0;
#X connect 13 0 21 0;
#X connect 15 0 11 0;
#X connect 16 0 12 0;
#X connect 16 0 7 0;
#X connect 16 0 22 0;
#X connect 21 0 18 0;
#X connect 22 0 18 0;
#X connect 2 0 22 0;
#X connect 2 0 12 0;
#X connect 4 0 5 0;
#X connect 6 0 4 0;
#X connect 7 0 8 0;
#X connect 8 0 4 0;
#X connect 9 0 1 0;
#X connect 10 0 21 0;
#X connect 10 0 2 0;
#X connect 10 0 18 0;
#X connect 12 0 20 0;
#X connect 13 0 9 0;
#X connect 13 0 6 0;
#X connect 13 0 19 0;
#X connect 18 0 15 0;
#X connect 19 0 15 0;
#X connect 20 0 7 0;
#X connect 21 0 4 0;
#X connect 22 0 1 0;

View file

@ -1677,15 +1677,15 @@ class Graph {
let graph = this;
let el = function( e ) {
console.info("Changed", e);
let parts = e.srcElement.name.split( '-' );
let parts = e.target.name.split( '-' );
let field = parts.pop();
let id = parts.join('-');
let node = graph.getNodeById( id );
let path = field.split( '.' ); // use vars.test to set ['vars']['test'] = value
var res = node;
let value = e.srcElement.value
if(e.srcElement.type == 'checkbox') {
value = e.srcElement.checked;
let value = e.target.value
if(e.target.type == 'checkbox') {
value = e.target.checked;
}
for ( var i = 0; i < path.length; i++ ) {
if ( i == ( path.length - 1 ) ) {