All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.mathiewz.slick.ibxm.Module Maven / Gradle / Ivy

Go to download

The main purpose of this libraryis to modernize and maintain the slick2D library.

The newest version!

package com.github.mathiewz.slick.ibxm;

public class Module {
    public String song_title;
    public boolean linear_periods, fast_volume_slides;
    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 final Pattern default_pattern;
    private final 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;
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy