diff options
author | dakkar <dakkar@thenautilus.net> | 2021-12-22 15:02:39 +0000 |
---|---|---|
committer | dakkar <dakkar@thenautilus.net> | 2021-12-22 15:02:39 +0000 |
commit | f673ed7ed761635e5efe3bc393c9299a35e0a1a7 (patch) | |
tree | 46ffebf42880711faf2b5b9f5359b1a2a2daacdd /lib/App | |
parent | nicer error handling (diff) | |
download | media-control-f673ed7ed761635e5efe3bc393c9299a35e0a1a7.tar.gz media-control-f673ed7ed761635e5efe3bc393c9299a35e0a1a7.tar.bz2 media-control-f673ed7ed761635e5efe3bc393c9299a35e0a1a7.zip |
intergrated IR control
* PWA files
* lirc wrapper
* lircd config files
Diffstat (limited to 'lib/App')
-rw-r--r-- | lib/App/MediaControl.rakumod | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/lib/App/MediaControl.rakumod b/lib/App/MediaControl.rakumod index 238ae53..e4b5024 100644 --- a/lib/App/MediaControl.rakumod +++ b/lib/App/MediaControl.rakumod @@ -2,20 +2,16 @@ use v6.d; use Cro::HTTP::Server; use Cro::HTTP::Router; use Vlc::Client; -use Lirc::Client; +use Lirc::Commands; class App::MediaControl { has Vlc::Client $.vlc is required; - has Lirc::Client $.lirc is required; + has Lirc::Commands $.lirc is required; has Int $.port = 8080; has Cro::Service $!service handles <stop>; method start() { - my $application = route { - resources-from %?RESOURCES; - - get -> { resource 'index.html' } - + my $vlc = route { post -> 'play' { await self.vlc.command('pl_play') } post -> 'pause' { await self.vlc.command('pl_pause') } post -> 'stop' { await self.vlc.command('pl_stop') } @@ -24,11 +20,28 @@ class App::MediaControl { my $status = await self.vlc.status(); content 'application/json', $status; } + } + + my $ir = route { + post -> $thing, $arg { + await self.lirc.send($thing, $arg); + } + } + + my $application = route { + resources-from %?RESOURCES; + + get -> { resource 'index.html' } + get -> 'ir.png' { resource 'ir.png' } + get -> 'ir.webmanifest' { resource 'ir.webmanifest' } + + include :$vlc, :$ir; around -> &handler { handler(); CATCH { default { + note "BOOM $_"; response.status = 500; content 'application/json', %( error => "$_" ); } |