Device-WebIO-Dancer
view release on metacpan or search on metacpan
lib/Device/WebIO/Dancer.pm view on Meta::CPAN
get '/devices/:name/video/:channel/resolution' => sub {
my $name = params->{name};
my $channel = params->{channel};
my $width = $webio->vid_width( $name, $channel );
my $height = $webio->vid_height( $name, $channel );
my $fps = $webio->vid_fps( $name, $channel );
return $width . 'x' . $height . 'p' . $fps;
};
post '/devices/:name/video/:channel/resolution/:width/:height/:framerate'
=> sub {
my $name = params->{name};
my $channel = params->{channel};
my $width = params->{width};
my $height = params->{height};
my $fps = params->{framerate};
$webio->vid_set_width( $name, $channel, $width );
$webio->vid_set_height( $name, $channel, $height );
$webio->vid_set_fps( $name, $channel, $fps );
return '';
};
get '/devices/:name/video/:channel/kbps' => sub {
my $name = params->{name};
my $channel = params->{channel};
my $bitrate = $webio->vid_kbps( $name, $channel );
return $bitrate;
};
post '/devices/:name/video/:channel/kbps/:bitrate' => sub {
my $name = params->{name};
my $channel = params->{channel};
my $bitrate = params->{bitrate};
$webio->vid_set_kbps( $name, $channel, $bitrate );
return '';
};
get '/devices/:name/video/:channel/allowed-content-types' => sub {
my $name = params->{name};
my $channel = params->{channel};
my $allowed = $webio->vid_allowed_content_types( $name, $channel );
return join( "\n", @$allowed );
};
get '/devices/:name/video/:channel/stream/:type1/:type2' => sub {
my $name = params->{name};
my $channel = params->{channel};
my $type1 = params->{type1};
my $type2 = params->{type2};
my $mime_type = $type1 . '/' . $type2;
my $in_fh = $webio->vid_stream( $name, $channel, $mime_type );
return send_file( '/etc/hosts',
streaming => 1,
system_path => 1,
content_type => $mime_type,
callbacks => {
around_content => sub {
my ($writer, $chunk) = @_;
my $buf;
while( read( $in_fh, $buf, VID_READ_LENGTH ) ) {
$writer->write( $buf );
}
close $in_fh;
}
},
);
};
get '/devices/:name/analog/count' => sub {
my $name = params->{name};
my $count = $webio->adc_count( $name );
return $count;
};
get '/devices/:name/analog/maximum' => sub {
# TODO deprecate this more explicitly (301 Moved Permanently?)
my $name = params->{name};
my $max = $webio->adc_max_int( $name, 0 );
return $max;
};
get '/devices/:name/analog/:pin/maximum' => sub {
my $name = params->{name};
my $pin = params->{pin};
my $max = $webio->adc_max_int( $name, $pin );
return $max;
};
get '/devices/:name/analog/:pin/integer/vref' => sub {
my $name = params->{name};
my $pin = params->{pin};
my $value = $webio->adc_volt_ref( $name, $pin );
return $value;
};
get '/devices/:name/analog/integer/vref' => sub {
# TODO deprecate this more explicitly (301 Moved Permanently?)
my $name = params->{name};
my $value = $webio->adc_volt_ref( $name, 0 );
return $value;
};
get '/devices/:name/analog/:pin/integer' => sub {
my $name = params->{name};
my $pin = params->{pin};
my $value;
if( $pin eq '*' ) {
my @val = map {
$webio->adc_input_int( $name, $_ ) // 0
} 0 .. ($webio->adc_count( $name ) - 1);
$value = join ',', @val;
( run in 0.575 second using v1.01-cache-2.11-cpan-39bf76dae61 )