-Creates a new emitter object. C<delay> specifies the delay between two sends, in seconds, while C<speed> is the number of bits sent per second. The delay value has priority over the speed. Extra arguments are passed to L<Bit::MorseSignals::Emitter/new>.
+ my $ime = IPC::MorseSignals::Emitter->new(
+ delay => $seconds,
+ speed => $bauds,
+ %bme_options,
+ );
+
+Creates a new emitter object. C<delay> specifies the delay between two sends, in seconds, while C<speed> is the number of bits sent per second. The delay value has priority over the speed. Default delay is 1 second. Extra arguments are passed to L<Bit::MorseSignals::Emitter/new>.
- my @dests = grep $_ > 0, ref $dest eq 'ARRAY' ? map int, grep defined, @$dest
- : int $dest;
+ my %count;
+ my @dests = grep $_ > 0 && !$count{$_}++, # Remove duplicates.
+ ref $dest eq 'ARRAY' ? map int, grep defined, @$dest
+ : int $dest;
+ return unless @dests;
while (defined(my $bit = $self->pop)) {
my @sigs = (SIGUSR1, SIGUSR2);
my $d = $self->{delay} * 1_000_000;
$d -= usleep $d while $d > 0;
kill $sigs[$bit] => @dests;
}
while (defined(my $bit = $self->pop)) {
my @sigs = (SIGUSR1, SIGUSR2);
my $d = $self->{delay} * 1_000_000;
$d -= usleep $d while $d > 0;
kill $sigs[$bit] => @dests;
}
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.