
de.lessvoid.nifty.sound.paulssoundsystem.PaulsSoundsystemSoundDevice Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of nifty-pauls-soundsystem Show documentation
Show all versions of nifty-pauls-soundsystem Show documentation
Nifty Sound Device for Pauls-Soundsystem
package de.lessvoid.nifty.sound.paulssoundsystem;
import de.lessvoid.nifty.sound.SoundSystem;
import de.lessvoid.nifty.spi.sound.SoundDevice;
import de.lessvoid.nifty.spi.sound.SoundHandle;
import de.lessvoid.nifty.tools.resourceloader.NiftyResourceLoader;
import paulscode.sound.SoundSystemConfig;
import paulscode.sound.SoundSystemException;
import paulscode.sound.codecs.CodecJOrbis;
import paulscode.sound.codecs.CodecWav;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
public class PaulsSoundsystemSoundDevice implements SoundDevice {
private paulscode.sound.SoundSystem soundSystem;
private int counter = 0;
public PaulsSoundsystemSoundDevice(
final Class> libraryClass,
final SupportedCodec... additionalCodecs) throws SoundSystemException {
SoundSystemConfig.setSoundFilesPackage("");
SoundSystemConfig.addLibrary(libraryClass);
// we decided that ogg and wav are build in
SoundSystemConfig.setCodec("ogg", CodecJOrbis.class);
SoundSystemConfig.setCodec("wav", CodecWav.class);
addAdditionalCodecs(additionalCodecs);
soundSystem = new paulscode.sound.SoundSystem();
}
@Override
public void setResourceLoader(@Nonnull final NiftyResourceLoader resourceLoader) {
}
private void addAdditionalCodecs(@Nullable final SupportedCodec... codecs) throws SoundSystemException {
if (codecs != null) {
for (SupportedCodec codec : codecs) {
SoundSystemConfig.setCodec(codec.getExtension(), codec.getCodecClass());
}
}
}
@Override
public SoundHandle loadSound(@Nonnull final SoundSystem soundSystem, @Nonnull final String filename) {
return new PaulsSoundHandle(this.soundSystem, filename);
}
@Override
public SoundHandle loadMusic(@Nonnull final SoundSystem soundSystem, @Nonnull final String filename) {
return new PaulsMusicHandle(this.soundSystem, generateId(), filename);
}
@Override
public void update(final int delta) {
}
@Nonnull
private String generateId() {
return String.valueOf(counter++);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy