The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# basic testing of SDLx::Sound

use strict;
use warnings;

my $audiodriver;

BEGIN {
	use Config;
	if ( !$Config{'useithreads'} ) {
		print("1..0 # Skip: Perl not compiled with 'useithreads'\n");
		exit(0);
	}

	use Test::More;
	use lib 't/lib';
	use lib 'lib';
	use SDL;
	use SDL::TestTool;
	use SDL::Config;
	use SDLx::Sound;

	$audiodriver = $ENV{SDL_AUDIODRIVER};
	$ENV{SDL_AUDIODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING};

	if ( !SDL::TestTool->init(SDL_INIT_AUDIO) ) {
		plan( skip_all => 'Failed to init sound' );
	} elsif ( !SDL::Config->has('SDL_mixer') ) {
		plan( skip_all => 'SDL_mixer support not compiled' );
	}
} 
my $fase2 = 0;

# load
# NOTE: use ok is tested in t/00-load.t so we can bail out

# methods
can_ok(
		'SDLx::Sound', qw/
		new
		load
		unload
		play
		stop
		loud
		fade
		/
      );

ok (my $snd = SDLx::Sound->new(), 'Can be instantiated');
ok (my $snd2 = SDLx::Sound->new(), 'Can be instantiated again');

isa_ok( $snd, 'SDLx::Sound', 'snd' );
isa_ok( $snd2, 'SDLx::Sound', 'snd2' );

# load and play a sound
ok ($snd->play('test/data/sample.wav'), 'Can play a wav');

SKIP:
{
	skip 'complex tests', 1 unless $fase2;
# in a single act do the wole Sound
	ok( my $snd2 = SDLx::Sound->new(
				files => (
					chanell_01 => "test/data/sample.wav",
					chanell_02 => "test/data/tribe_i.wav"

					),
				loud  => (
					channel_01 => 80,
					channel_02 => 75
					),
				bangs => (
					chanell_01 => 0,      # start
					chanell_01 => 1256,   # miliseconds
					chanell_02 => 2345
					),
				fade  => (
					chanell_02 => [2345, 3456, -20]
					)
				)->play()
	  );
}

#diag( "Testing SDLx::Sound $SDLx::Sound::VERSION, Perl $], $^X" );           


if ($audiodriver) {
	$ENV{SDL_AUDIODRIVER} = $audiodriver;
} else {
	delete $ENV{SDL_AUDIODRIVER};
}

done_testing();