# Здесь у нас и обрабатывается основная музыкальная программа sub track { $num=`/bin/ls /var/ices/muz/*.mp3 | /usr/bin/wc -l`; @music=`/bin/ls -1 /var/ices/muz/*.mp3`; $oldplay = $play; # Выбираем случайным образом номер файла $play=int(random_uniform(1, 0, $num)); # Если вдруг нам так повезло и повторно выпал номер играющего файла, то попытаемся снова выбрать случайный файл if ($oldplay == $play) { $play=int(random_uniform(1, 0, $num)); } chomp $music[$play]; # Достаем TAG из mp3 файла my $tag = get_mp3tag($music[$play]) or die «no»; if ($tag != «no») { $artist_name = $tag->{ARTIST}; $songtitle = $tag->{TITLE}; } else { # Если нет TAG в файле $artist_name = «My Radio»; $songtitle = «Welcome!»; } return $music[$play]; }
sub ices_get_next { print "Perl subsystem quering for new track:\n"; # если время джингла ещё не пришло if($jingle < 5){ # инкрементим счётчик $jingle ++; # выбираем все песни из директории музыки @music=`/bin/ls -1 /mnt/music_90/*.mp3`; }else{ # обнуляем счётчик $jingle = 0; # выбираем все песни из директории джинглов @music=`/bin/ls -1 /mnt/jingles/*.mp3`; } # считаем количество песен $num = scalar (@music); # выбираем случайную $play=int(rand($num)); chomp $music[$play]; # возвращаем выбранный трек return $music[$play]; }