Branch Coverage

blib/lib/Audio/SID.pm
Criterion Covered Total %
branch 0 394 0.0


line true false branch
53 0 0 if (defined $_[0])
55 0 0 $self->read(%params) ? :
108 0 0 if ($_[0] =~ /^\-filedata$/i and defined $_[1]) { }
0 0 elsif ($_[0] =~ /^\-file(name)|(handle)$/i and defined $_[1]) { }
0 0 elsif (defined $_[0] and not defined $_[1]) { }
0 0 elsif (defined $_[0]) { }
123 0 0 if (defined $filedata) { }
128 0 0 if (ref \$filename ne 'GLOB') { }
130 0 0 unless defined $filename
132 0 0 unless ($filename)
138 0 0 unless ($FH = 'FileHandle'->new("< $filename"))
159 0 0 unless ($size)
169 0 0 unless ($SID eq 'PSID' and ($version >= 1 and $version <= 4) or $SID eq 'RSID' and $version >= 2 and $version <= 4)
184 0 0 if (defined $filedata) { }
194 0 0 if ($size != $dataOffset - 8)
205 0 0 if ($version == 1)
215 0 0 if ($version >= 2)
223 0 0 if ($version == 2)
234 0 0 if ($version >= 3)
241 0 0 if ($version == 3)
251 0 0 if ($version >= 4)
258 0 0 if ($version == 4)
273 0 0 if (defined $filedata) { }
282 0 0 unless (defined $size)
290 0 0 if (ref \$filename ne 'GLOB' and not defined $filedata)
312 0 0 if ($_[0] =~ /^\-file(name)|(handle)$/i and defined $_[1]) { }
0 0 elsif (defined $_[0] and not defined $_[1]) { }
0 0 elsif (defined $_[0]) { }
328 0 0 if (ref \$filename ne 'GLOB') { }
329 0 0 unless defined $filename
331 0 0 unless ($filename)
336 0 0 unless ($FH = 'FileHandle'->new("> $filename"))
349 0 0 if ($self->{'validateWrite'})
367 0 0 if ($self->{'SIDdata'}{'version'} > 1)
372 0 0 if ($self->{'SIDdata'}{'version'} == 2) { }
0 0 elsif ($self->{'SIDdata'}{'version'} == 3) { }
0 0 elsif ($self->{'SIDdata'}{'version'} == 4) { }
392 0 0 if (ref \$filename ne 'GLOB')
413 0 0 unless defined wantarray
415 0 0 unless (defined $fieldname)
418 0 0 if (wantarray) { }
428 0 0 if $fieldname =~ /^copyright$/
429 0 0 if $fieldname =~ /^name$/
431 0 0 unless (grep /^$fieldname$/, @SIDfieldNames)
457 0 0 if ($self->{'SIDdata'}{'data'} and $self->{'SIDdata'}{'loadAddress'} == 0) { }
470 0 0 if not defined $songnumber or $songnumber < 1
472 0 0 if ($songnumber > $self->{'SIDdata'}{'songs'})
477 0 0 if ($self->isPlaySIDSpecific) { }
481 0 0 if $songnumber > 32
490 0 0 unless defined $self->{'SIDdata'}{'flags'}
505 0 0 if $self->{'SIDdata'}{'version'} == 1
509 0 0 unless defined $self->{'SIDdata'}{'flags'}
510 0 0 if $self->isRSID
531 0 0 unless defined $self->{'SIDdata'}{'flags'}
532 0 0 unless $self->isRSID
546 0 0 unless defined $self->{'SIDdata'}{'flags'}
555 0 0 unless defined $self->{'SIDdata'}{'flags'}
559 0 0 if ($clock == 0) { }
0 0 elsif ($clock == 1) { }
0 0 elsif ($clock == 2) { }
0 0 elsif ($clock == 3) { }
578 0 0 unless defined $self->{'SIDdata'}{'flags'}
580 0 0 if (not defined $sidNumber or $sidNumber == 1) { }
0 0 elsif ($sidNumber == 2) { }
0 0 elsif ($sidNumber == 3) { }
584 0 0 unless $self->{'SIDdata'}{'version'} >= 3
589 0 0 unless $self->{'SIDdata'}{'version'} >= 4
601 0 0 unless defined $SIDModel
603 0 0 if ($SIDModel == 0) { }
0 0 elsif ($SIDModel == 1) { }
0 0 elsif ($SIDModel == 2) { }
0 0 elsif ($SIDModel == 3) { }
624 0 0 if (not defined $sidNumber or $sidNumber == 1) { }
0 0 elsif ($sidNumber == 2) { }
0 0 elsif ($sidNumber == 3) { }
631 0 0 unless $self->{'SIDdata'}{'version'} >= 3
637 0 0 unless $self->{'SIDdata'}{'version'} >= 4
660 0 0 if $fieldname =~ /^copyright$/
661 0 0 if $fieldname =~ /^name$/
663 0 0 unless (grep /^$fieldname$/, @SIDfieldNames)
670 0 0 if ($fieldname eq 'magicID')
671 0 0 if ($SIDhash{$fieldname} ne 'PSID' and $SIDhash{$fieldname} ne 'RSID')
676 0 0 if ($SIDhash{$fieldname} ne $self->{'SIDdata'}{'magicID'})
681 0 0 if ($fieldname eq 'version')
682 0 0 if ($SIDhash{$fieldname} < 1 or $SIDhash{$fieldname} > 4)
688 0 0 if ($self->{'SIDdata'}{'version'} < 2 and $fieldname eq 'magicID' || $fieldname eq 'flags' || $fieldname eq 'reserved' || $fieldname eq 'startPage' || $fieldname eq 'pageLength')
696 0 0 if ($self->{'SIDdata'}{'version'} < 3 and $fieldname eq 'secondSIDAddress' || $fieldname eq 'thirdSIDAddress')
703 0 0 if ($self->{'SIDdata'}{'version'} < 4 and $fieldname eq 'thirdSIDAddress')
711 0 0 if ($fieldname eq 'title' or $fieldname eq 'author' or $fieldname eq 'released')
718 0 0 if ($self->{'SIDdata'}{'version'} == 1) { }
0 0 elsif ($self->{'SIDdata'}{'version'} >= 2 and $self->{'SIDdata'}{'version'} <= 4) { }
734 0 0 if ($self->{'SIDdata'}{'dataOffset'} <= 124) { }
747 0 0 unless (defined $self->{'SIDdata'}{'flags'})
751 0 0 unless (defined $self->{'SIDdata'}{'startPage'})
755 0 0 unless (defined $self->{'SIDdata'}{'pageLength'})
759 0 0 if ($self->{'SIDdata'}{'version'} == 2 or $self->{'SIDdata'}{'version'} == 3)
760 0 0 unless (defined $self->{'SIDdata'}{'reserved'})
765 0 0 if ($self->{'SIDdata'}{'version'} >= 3)
766 0 0 unless (defined $self->{'SIDdata'}{'secondSIDAddress'})
772 0 0 if ($self->{'SIDdata'}{'version'} >= 4)
773 0 0 unless (defined $self->{'SIDdata'}{'thirdSIDAddress'})
779 0 0 if ($changePSIDSpecific)
781 0 0 unless ($SIDhash{'flags'})
782 0 0 if ($self->isRSID) { }
792 0 0 if ($self->isRSID)
799 0 0 if ($self->{'SIDdata'}{'loadAddress'} != 0)
805 0 0 if ($self->getC64BASIC)
826 0 0 unless (defined $songnumber)
831 0 0 unless (defined $value)
836 0 0 if ($songnumber > $self->{'SIDdata'}{'songs'} or $songnumber < 1)
841 0 0 if ($value ne 0 and $value ne 1)
846 0 0 if $songnumber < 1
848 0 0 if ($self->{'SIDdata'}{'version'} == 1 or $self->isPlaySIDSpecific) { }
852 0 0 if $songnumber > 32
865 0 0 unless (defined $self->{'SIDdata'}{'flags'})
870 0 0 if ($MUSplayer ne 0 and $MUSplayer ne 1)
885 0 0 if ($self->isRSID)
890 0 0 unless (defined $self->{'SIDdata'}{'flags'})
895 0 0 if ($PlaySID ne 0 and $PlaySID ne 1)
910 0 0 unless ($self->isRSID)
915 0 0 unless (defined $self->{'SIDdata'}{'flags'})
920 0 0 if ($C64BASIC ne 0 and $C64BASIC ne 1)
931 0 0 if ($C64BASIC)
939 0 0 unless (defined $self->{'SIDdata'}{'flags'})
944 0 0 if ($clock < 0 or $clock > 3)
959 0 0 unless (defined $self->{'SIDdata'}{'flags'})
964 0 0 if ($clock =~ /^(unknown|none|neither)$/i) { }
0 0 elsif ($clock =~ /^PAL$/i) { }
0 0 elsif ($clock =~ /^NTSC$/i) { }
0 0 elsif ($clock =~ /^(any|both|either)$/i) { }
987 0 0 unless (defined $self->{'SIDdata'}{'flags'})
992 0 0 if ($SIDModel < 0 or $SIDModel > 3)
997 0 0 if (not defined $sidNumber or $sidNumber == 1) { }
0 0 elsif ($sidNumber == 2) { }
0 0 elsif ($sidNumber == 3) { }
1006 0 0 unless $self->{'SIDdata'}{'version'} >= 3
1015 0 0 unless $self->{'SIDdata'}{'version'} >= 4
1028 0 0 unless (defined $self->{'SIDdata'}{'flags'})
1033 0 0 if ($SIDModel =~ /^(unknown|none|neither)$/i) { }
0 0 elsif ($SIDModel =~ /^6581$/ or $SIDModel == 6581) { }
0 0 elsif ($SIDModel =~ /^8580$/i or $SIDModel == 8580) { }
0 0 elsif ($SIDModel =~ /^(any|both|either)$/i) { }
1056 0 0 if (not defined $sidNumber or $sidNumber < 2 or $sidNumber > 3)
1061 0 0 unless (defined $fullSIDAddress)
1066 0 0 if ($sidNumber == 2 and $self->{'SIDdata'}{'version'} < 3 or $sidNumber == 3 and $self->{'SIDdata'}{'version'} < 4)
1073 0 0 if ($fullSIDAddress =~ /^\s*\$/) { }
0 0 elsif ($fullSIDAddress =~ /^\s*0x/) { }
1083 0 0 if ($fullSIDAddress < 54304 or $fullSIDAddress > 57344 or $fullSIDAddress >= 55296 and $fullSIDAddress < 56832)
1091 0 0 if ($middleSIDAddress % 2 != 0)
1096 0 0 if ($self->{'SIDdata'}{'version'} >= 4)
1097 0 0 if ($sidNumber == 2 and $self->{'SIDdata'}{'thirdSIDAddress'} == $middleSIDAddress)
1102 0 0 if ($sidNumber == 3 and $self->{'SIDdata'}{'secondSIDAddress'} == $middleSIDAddress)
1110 0 0 if ($sidNumber == 2) { }
0 0 elsif ($sidNumber == 3) { }
1130 0 0 if ($self->{'SIDdata'}{'loadAddress'} == 0 and $self->{'SIDdata'}{'data'}) { }
1147 0 0 if ($self->isRSID) { }
1151 0 0 if ($self->getSpeed($songNo) == 1) { }
1164 0 0 if ($self->{'SIDdata'}{'version'} > 1 and $clock == 2 and not $oldMD5)
1189 0 0 if ($self->{'SIDdata'}{'version'} < 2)
1194 0 0 if ($self->isRSID)
1199 0 0 if ($self->{'SIDdata'}{'dataOffset'} != 124)
1218 0 0 if (length $self->{'SIDdata'}{$field} > 32)
1228 0 0 if ($self->isRSID and $self->{'SIDdata'}{'initAddress'} > 0 && $self->{'SIDdata'}{'initAddress'} < 2024 || $self->{'SIDdata'}{'initAddress'} >= 40960 && $self->{'SIDdata'}{'initAddress'} < 49152 || $self->{'SIDdata'}{'initAddress'} >= 53248 && $self->{'SIDdata'}{'initAddress'} <= 65535 || $self->{'SIDdata'}{'initAddress'} < $self->getRealLoadAddress || $self->{'SIDdata'}{'initAddress'} > $self->getRealLoadAddress + length($self->{'SIDdata'}{'data'}) - 3 || $self->getC64BASIC)
1248 0 0 if ($self->{'SIDdata'}{'loadAddress'} != 0)
1251 0 0 if ($self->isRSID and $self->{'SIDdata'}{'loadAddress'} < 2024)
1264 0 0 if (not $self->isRSID and $self->{'SIDdata'}{'initAddress'} < $self->getRealLoadAddress || $self->{'SIDdata'}{'initAddress'} > $self->getRealLoadAddress + length($self->{'SIDdata'}{'data'}) - 3)
1277 0 0 if ($self->{'SIDdata'}{$field} < 0 or $self->{'SIDdata'}{$field} > 65535)
1285 0 0 if (not defined $self->{'SIDdata'}{$field} or $self->{'SIDdata'}{$field} < 0 or $self->{'SIDdata'}{$field} > 255)
1292 0 0 if ($self->{'SIDdata'}{'songs'} > 256)
1298 0 0 if ($self->{'SIDdata'}{'songs'} < 1)
1304 0 0 if ($self->{'SIDdata'}{'startSong'} > $self->{'SIDdata'}{'songs'})
1309 0 0 unless ($self->isRSID)
1315 0 0 if ($maxSongs > 32)
1325 0 0 if (defined $self->{'SIDdata'}{'flags'}) { }
1336 0 0 if ($self->isRSID) { }
1349 0 0 if ($self->{'SIDdata'}{'version'} >= 3)
1350 0 0 if (defined $secondSIDModel)
1355 0 0 if ($self->{'SIDdata'}{'version'} >= 4)
1356 0 0 if (defined $thirdSIDModel)
1361 0 0 if ($self->isRSID) { }
1369 0 0 if ($self->{'SIDdata'}{'startPage'} == 0 or $self->{'SIDdata'}{'startPage'} == 255) { }
0 0 elsif (($self->{'SIDdata'}{'startPage'} << 8) + ($self->{'SIDdata'}{'pageLength'} << 8) - 1 > 65535) { }
0 0 elsif ($self->{'SIDdata'}{'pageLength'} == 0) { }
1379 0 0 if ($self->isRSID)
1385 0 0 if ($self->{'SIDdata'}{'startPage'} >= 160 and $self->{'SIDdata'}{'startPage'} < 192 or $self->{'SIDdata'}{'startPage'} >= 208 and $self->{'SIDdata'}{'startPage'} < 255 or $self->{'SIDdata'}{'startPage'} > 0 and $self->{'SIDdata'}{'startPage'} < 4)
1394 0 0 if (($self->{'SIDdata'}{'startPage'} << 8) + ($self->{'SIDdata'}{'pageLength'} << 8) - 1 >= 40960 and ($self->{'SIDdata'}{'startPage'} << 8) + ($self->{'SIDdata'}{'pageLength'} << 8) - 1 < 49152 or ($self->{'SIDdata'}{'startPage'} << 8) + ($self->{'SIDdata'}{'pageLength'} << 8) - 1 >= 53248 and ($self->{'SIDdata'}{'startPage'} << 8) + ($self->{'SIDdata'}{'pageLength'} << 8) - 1 <= 65535 or ($self->{'SIDdata'}{'startPage'} << 8) + ($self->{'SIDdata'}{'pageLength'} << 8) - 1 > 0 and ($self->{'SIDdata'}{'startPage'} << 8) + ($self->{'SIDdata'}{'pageLength'} << 8) - 1 < 1024)
1403 0 0 if ($self->{'SIDdata'}{'startPage'} < 160 and ($self->{'SIDdata'}{'startPage'} << 8) + ($self->{'SIDdata'}{'pageLength'} << 8) - 1 >= 49152)
1412 0 0 if ($self->{'SIDdata'}{'startPage'} << 8 >= $self->getRealLoadAddress and $self->{'SIDdata'}{'startPage'} << 8 <= $self->getRealLoadAddress + length($self->{'SIDdata'}{'data'}) - 3)
1420 0 0 if (($self->{'SIDdata'}{'startPage'} << 8) + ($self->{'SIDdata'}{'pageLength'} << 8) - 1 >= $self->getRealLoadAddress and ($self->{'SIDdata'}{'startPage'} << 8) + ($self->{'SIDdata'}{'pageLength'} << 8) - 1 <= $self->getRealLoadAddress + length($self->{'SIDdata'}{'data'}) - 3)
1428 0 0 if ($self->{'SIDdata'}{'startPage'} << 8 < $self->getRealLoadAddress and ($self->{'SIDdata'}{'startPage'} << 8) + ($self->{'SIDdata'}{'pageLength'} << 8) - 1 > $self->getRealLoadAddress + length($self->{'SIDdata'}{'data'}) - 3)
1438 0 0 if ($self->{'SIDdata'}{'version'} >= 3)
1442 0 0 if ($secondSIDAddress)
1446 0 0 unless ($result)
1453 0 0 if ($self->{'SIDdata'}{'version'} >= 4)
1457 0 0 if ($thirdSIDAddress)
1461 0 0 unless ($result)
1472 0 0 if ($self->{'PADDING'})