package sound; use KGS::Constants; #my $audioserver = new Audio::Play(0); my %sound; $SIG{CHLD} = 'IGNORE'; for (map +(KGS::Constants::findfile "KGS/kgsueme/sounds/$_"), qw(alarm warning move pass ring connect user_unknown gamestart resign)) { local $/; open my $snd, "<", $_ or die "$_: $!"; binmode $snd; $sound{$_} = new Audio::Data; $sound{$_}->Load($snd); } sub play { my ($annoyancy, $sound) = @_; # annoyany 1 => important, annoyance 2 => useful, annoyancy 3 => not useful if (fork == 0) { if (my $audioserver = new Audio::Play(1)) { $audioserver->play ($sound{$sound}); } use POSIX (); POSIX::_exit(0); } } 1;