]> www.fi.muni.cz Git - slotcarman.git/blob - SCX/Sound.pm
Sound: muted by default
[slotcarman.git] / SCX / Sound.pm
1 #!/usr/bin/perl -w
2
3 package SCX::Sound;
4
5 use strict;
6
7 sub new {
8         my ($class, $args) = @_;
9
10         my $self = {
11                 data_dir => $args->{data_dir} || './sounds/',
12                 muted => 1,
13         };
14
15         bless $self, $class;
16
17         return $self;
18 }
19
20 sub _play {
21         my ($self, @names) = @_;
22
23         return if $self->{muted};
24
25         @names = map { $self->{data_dir} . '/' . $_ . '.wav' } @names;
26         system (join(' ', 'aplay', @names). ' &');
27 }
28
29 sub mute { shift->{muted} = 1; }
30 sub unmute { shift->{muted} = 0; }
31
32 sub start { shift->_play('start'); }
33 sub filled { shift->_play('filled'); }
34
35 sub winner {
36         my ($self, $car_id) = @_;
37
38         $self->_play('winner', $car_id, 'winner');
39 }
40
41 sub box {
42         my ($self, $car_id) = @_;
43
44         $self->_play('box', $car_id, 'box');
45 }
46
47 sub best_lap {
48         my ($self, $car_id) = @_;
49
50         $self->_play('bestlap', $car_id);
51 }
52
53 1;