Device-WebIO

 view release on metacpan or  search on metacpan

t/lib/MockVideoOutputCallback.pm  view on Meta::CPAN

package MockVideoOutputCallback;
use v5.12;
use Moo;

has 'stream_vid_file', is => 'ro';
has 'content_type',    is => 'ro';
has '_vid_width',       is => 'ro', default => sub {[]};
has '_vid_height',      is => 'ro', default => sub {[]};
has '_vid_fps',         is => 'ro', default => sub {[]};
has '_vid_kbps',        is => 'ro', default => sub {[]};
has '_callbacks',       is => 'ro', default => sub {[]};
with 'Device::WebIO::Device::VideoOutputCallback';


sub pin_desc
{
    # Placeholder
}

sub all_desc
{
    # Placeholder
}


sub vid_channels { 1 }

sub vid_width  { $_[0]->_vid_width ->[$_[1]] }
sub vid_height { $_[0]->_vid_height->[$_[1]] }
sub vid_fps    { $_[0]->_vid_fps   ->[$_[1]] }
sub vid_kbps   { $_[0]->_vid_kbps  ->[$_[1]] }

sub vid_set_width  { $_[0]->_vid_width ->[$_[1]] = $_[2] }
sub vid_set_height { $_[0]->_vid_height->[$_[1]] = $_[2] }
sub vid_set_fps    { $_[0]->_vid_fps   ->[$_[1]] = $_[2] }
sub vid_set_kbps   { $_[0]->_vid_kbps  ->[$_[1]] = $_[2] }

sub vid_allowed_content_types { ($_[0]->content_type) };

sub vid_stream
{
    # placeholder
}

sub vid_stream_callback
{
    my ($self, $pin, $type, $callback) = @_;
    push @{ $self->_callbacks }, $callback;
    return 1;
}

sub vid_stream_begin_loop
{
    my ($self) = @_;
    # placeholder
    return 1;
}

sub trigger
{
    my ($self) = @_;
    $_->() for @{ $self->_callbacks };
    return 1;
}


1;
__END__



( run in 0.571 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )