2012-08-01 23:35:35 +00:00
|
|
|
|
|
|
|
package ibxm;
|
|
|
|
|
|
|
|
public class Module {
|
|
|
|
public String song_title;
|
|
|
|
public boolean linear_periods, fast_volume_slides, pal;
|
|
|
|
public int global_volume, channel_gain;
|
|
|
|
public int default_speed, default_tempo;
|
|
|
|
public int restart_sequence_index;
|
|
|
|
|
|
|
|
private int[] initial_panning, sequence;
|
|
|
|
private Pattern[] patterns;
|
|
|
|
private Instrument[] instruments;
|
|
|
|
|
|
|
|
private Pattern default_pattern;
|
|
|
|
private Instrument default_instrument;
|
|
|
|
|
|
|
|
public Module() {
|
|
|
|
song_title = IBXM.VERSION;
|
|
|
|
set_num_channels( 1 );
|
|
|
|
set_sequence_length( 1 );
|
|
|
|
set_num_patterns( 0 );
|
|
|
|
set_num_instruments( 0 );
|
|
|
|
default_pattern = new Pattern();
|
|
|
|
default_instrument = new Instrument();
|
|
|
|
}
|
|
|
|
|
|
|
|
public int get_num_channels() {
|
|
|
|
return initial_panning.length;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void set_num_channels( int num_channels ) {
|
|
|
|
if( num_channels < 1 ) {
|
|
|
|
num_channels = 1;
|
|
|
|
}
|
|
|
|
initial_panning = new int[ num_channels ];
|
|
|
|
}
|
|
|
|
|
|
|
|
public int get_initial_panning( int channel ) {
|
|
|
|
int panning;
|
|
|
|
panning = 128;
|
|
|
|
if( channel >= 0 && channel < initial_panning.length ) {
|
|
|
|
panning = initial_panning[ channel ];
|
|
|
|
}
|
|
|
|
return panning;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void set_initial_panning( int channel, int panning ) {
|
|
|
|
if( channel >= 0 && channel < initial_panning.length ) {
|
|
|
|
initial_panning[ channel ] = panning;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public int get_sequence_length() {
|
|
|
|
return sequence.length;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void set_sequence_length( int sequence_length ) {
|
|
|
|
if( sequence_length < 0 ) {
|
|
|
|
sequence_length = 0;
|
|
|
|
}
|
|
|
|
sequence = new int[ sequence_length ];
|
|
|
|
}
|
|
|
|
|
|
|
|
public void set_sequence( int sequence_index, int pattern_index ) {
|
|
|
|
if( sequence_index >= 0 && sequence_index < sequence.length ) {
|
|
|
|
sequence[ sequence_index ] = pattern_index;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public int get_num_patterns() {
|
|
|
|
return patterns.length;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void set_num_patterns( int num_patterns ) {
|
|
|
|
if( num_patterns < 0 ) {
|
|
|
|
num_patterns = 0;
|
|
|
|
}
|
|
|
|
patterns = new Pattern[ num_patterns ];
|
|
|
|
}
|
|
|
|
|
|
|
|
public Pattern get_pattern_from_sequence( int sequence_index ) {
|
|
|
|
Pattern pattern;
|
|
|
|
pattern = default_pattern;
|
|
|
|
if( sequence_index >= 0 && sequence_index < sequence.length ) {
|
|
|
|
pattern = get_pattern( sequence[ sequence_index ] );
|
|
|
|
}
|
|
|
|
return pattern;
|
|
|
|
}
|
|
|
|
|
|
|
|
public Pattern get_pattern( int pattern_index ) {
|
|
|
|
Pattern pattern;
|
|
|
|
pattern = null;
|
|
|
|
if( pattern_index >= 0 && pattern_index < patterns.length ) {
|
|
|
|
pattern = patterns[ pattern_index ];
|
|
|
|
}
|
|
|
|
if( pattern == null ) {
|
|
|
|
pattern = default_pattern;
|
|
|
|
}
|
|
|
|
return pattern;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void set_pattern( int pattern_index, Pattern pattern ) {
|
|
|
|
if( pattern_index >= 0 && pattern_index < patterns.length ) {
|
|
|
|
patterns[ pattern_index ] = pattern;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public int get_num_instruments() {
|
|
|
|
return instruments.length;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void set_num_instruments( int num_instruments ) {
|
|
|
|
if( num_instruments < 0 ) {
|
|
|
|
num_instruments = 0;
|
|
|
|
}
|
|
|
|
instruments = new Instrument[ num_instruments ];
|
|
|
|
}
|
|
|
|
|
|
|
|
public Instrument get_instrument( int instrument_index ) {
|
|
|
|
Instrument instrument;
|
|
|
|
instrument = null;
|
|
|
|
if( instrument_index > 0 && instrument_index <= instruments.length ) {
|
|
|
|
instrument = instruments[ instrument_index - 1 ];
|
|
|
|
}
|
|
|
|
if( instrument == null ) {
|
|
|
|
instrument = default_instrument;
|
|
|
|
}
|
|
|
|
return instrument;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void set_instrument( int instrument_index, Instrument instrument ) {
|
|
|
|
if( instrument_index > 0 && instrument_index <= instruments.length ) {
|
|
|
|
instruments[ instrument_index - 1 ] = instrument;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|