diff options
author | dakkar <dakkar@thenautilus.net> | 2021-12-22 14:03:30 +0000 |
---|---|---|
committer | dakkar <dakkar@thenautilus.net> | 2021-12-22 14:03:30 +0000 |
commit | 819187730a5b74a52ff1895625cf7b3c94c6ad9b (patch) | |
tree | f4d3a00bfd1e901e4e952e87b9d076669f439428 /lib/App/MediaControl.rakumod | |
parent | config file (diff) | |
download | media-control-819187730a5b74a52ff1895625cf7b3c94c6ad9b.tar.gz media-control-819187730a5b74a52ff1895625cf7b3c94c6ad9b.tar.bz2 media-control-819187730a5b74a52ff1895625cf7b3c94c6ad9b.zip |
some renaming
Diffstat (limited to 'lib/App/MediaControl.rakumod')
-rw-r--r-- | lib/App/MediaControl.rakumod | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/App/MediaControl.rakumod b/lib/App/MediaControl.rakumod new file mode 100644 index 0000000..bd4a2c9 --- /dev/null +++ b/lib/App/MediaControl.rakumod @@ -0,0 +1,35 @@ +use v6.d; +use Cro::HTTP::Server; +use Cro::HTTP::Router; +use Vlc::Client; +use Lirc::Client; + +class App::MediaControl { + has Vlc::Client $.vlc is required; + has Lirc::Client $.lirc is required; + has Int $.port = 8080; + has Cro::Service $!service handles <stop>; + + method start() { + my $application = route { + resources-from %?RESOURCES; + + get -> { resource 'vlc.html' } + + post -> 'play' { await self.vlc.command('pl_play') } + post -> 'pause' { await self.vlc.command('pl_pause') } + post -> 'stop' { await self.vlc.command('pl_stop') } + + get -> 'status' { + my $status = await self.vlc.status(); + content 'application/json', $status; + } + }; + + $!service = Cro::HTTP::Server.new( + :port(self.port), :$application, + ); + + return $!service.start(); + } +} |