Audio-MikMod
view release on metacpan or search on metacpan
demo/player-gtk-fork view on Meta::CPAN
# A threaded version might come in the future,
# but for now fork() will have to do.
$SIG{'HUP'} = \&_real_pause;
$SIG{'USR1'} = \&_real_back;
$SIG{'USR2'} = \&_real_forward;
$SIG{'KILL'} = \&_exit;
$SIG{'INT'} = \&_exit;
$SIG{'ALRM'} = \&_exit;
my ($song_loaded,$song_playing,$song_paused) = (0,0,0);
my ($songfile,$songpath,$player_busy);
my ($filelabel,$songlabel,$child);
my $url = 'http://electricrain.com/';
my $subs = {
'exit' => \&_exit,
'back' => \&_back,
'play' => \&_play,
'pause' => \&_pause,
'stop' => \&_stop,
'forward' => \&_forward,
demo/player-gtk-fork view on Meta::CPAN
} else {
$song_playing = 0;
update_info($songpath, 'Open song first.');
$song_loaded = 0;
_open_fw($songpath);
}
}
sub _update {
while (Player_Active() && $song_playing && !$song_paused) {
$player_busy = 1;
MikMod_Update();
#progress_update();
$player_busy = 0;
usleep(10000);
}
}
sub _stop {
print "In _stop()\n";
$song_paused = 0;
$song_playing = 0;
usleep(1) while $player_busy;
Player_Stop();
kill 9, $child;
waitpid $child, 0;
}
sub _pause { kill 'HUP', $child }
sub _real_pause {
$song_paused = $song_paused ? 0 : 1;
print "In _pause(): $song_paused\n";
Player_TogglePause();
demo/player-gtk-fork view on Meta::CPAN
sub _open ($) {
my $file = shift;
print "In _open : $file\n";
$song_playing = 0;
$song_paused = 0;
if ($song_loaded) {
$song_loaded = 0;
while ($player_busy) {
usleep(1);
}
Player_Free($songfile);
}
$songfile = Player_Load($file, 64, 0);
if (!defined $songfile or !$songfile) {
$song_loaded = 0;
update_info($file, 'Error loading file.');
demo/player-gtk-ipc view on Meta::CPAN
my $song_paused = IPC::ShareLite->new(
'-key' => 1971,
'-create' => 'yes',
'-destroy' => 'yes'
) or die $!;
$song_paused->store(0);
my ($song_loaded,$song_playing) = (0,0);
my ($songfile,$songpath,$player_busy);
my ($filelabel,$songlabel,$child,$progress_timer);
my $url = 'http://electricrain.com/';
my $subs = {
'exit' => \&_exit,
'back' => \&_back,
'play' => \&_play,
'pause' => \&_pause,
'stop' => \&_stop,
'forward' => \&_forward,
demo/player-gtk-ipc view on Meta::CPAN
update_info($songpath, 'Open song first.');
$song_loaded = 0;
_open_fw($songpath);
}
}
sub _update {
my $paused = $song_paused->fetch;
while (Player_Active() && $song_playing && !$paused) {
$player_busy = 1;
MikMod_Update();
progress_update();
$player_busy = 0;
usleep(10000);
}
#$song_playing = 0;
#Player_Stop();
}
sub _stop {
print "In _stop()\n";
$song_paused->store(0);
$song_playing = 0;
usleep(1) while $player_busy;
Player_Stop();
# pthread_join(decode_thread, NULL);
kill 9, $child;
waitpid $child, 0;
}
#sub _pause { kill 'HUP', $child }
sub _pause {
if ($song_paused->fetch) {
$song_paused->store(0);
demo/player-gtk-ipc view on Meta::CPAN
sub _open ($) {
my $file = shift;
print "In _open : $file\n";
$song_playing = 0;
$song_paused->store(0);
if ($song_loaded) {
$song_loaded = 0;
while ($player_busy) {
usleep(1);
}
Player_Free($songfile);
}
$songfile = Player_Load($file, 64, 0);
if (!defined $songfile or !$songfile) {
$song_loaded = 0;
update_info($file, 'Error loading file.');
demo/player-gtk-thread view on Meta::CPAN
use Audio::MikMod qw(:MikMod :Player);
use Gtk;
use Pixmaps;
use Thread;
use Time::HiRes qw(usleep);
use constant TRUE => 1;
use constant FALSE => 0;
my ($song_loaded,$song_playing,$song_paused,$update) = (0,0,0,1);
my ($songfile,$songpath,$player_busy);
my ($filelabel,$songlabel);
my $url = 'http://electricrain.com/';
my $subs = {
'exit' => \&_exit,
'back' => \&_back,
'play' => \&_play,
'pause' => \&_pause,
'stop' => \&_stop,
'forward' => \&_forward,
demo/player-gtk-thread view on Meta::CPAN
$song_playing = 0;
update_info($songpath, 'Open song first.');
$song_loaded = 0;
_open_fw($songpath);
}
}
sub _update {
while ($update) {
for (Player_Active() && $song_playing && !$song_paused) {
$player_busy = 1;
MikMod_Update();
#progress_update();
$player_busy = 0;
}
usleep(50000);
}
}
sub _stop {
print "In _stop()\n";
$song_paused = 0;
$song_playing = 0;
usleep(1) while $player_busy;
Player_Stop();
}
sub _pause {
$song_paused = $song_paused ? 0 : 1;
print "In _pause(): $song_paused\n";
Player_TogglePause();
}
sub _back {
demo/player-gtk-thread view on Meta::CPAN
sub _open ($) {
my $file = shift;
print "In _open : $file\n";
$song_playing = 0;
$song_paused = 0;
if ($song_loaded) {
$song_loaded = 0;
while ($player_busy) {
usleep(1);
}
Player_Free($songfile);
}
$songfile = Player_Load($file, 64, 0);
if (!defined $songfile or !$songfile) {
$song_loaded = 0;
update_info($file, 'Error loading file.');
( run in 0.260 second using v1.01-cache-2.11-cpan-87723dcf8b7 )