diff --git a/src/SoundWrapper.java b/src/SoundWrapper.java new file mode 100644 index 0000000..29992e3 --- /dev/null +++ b/src/SoundWrapper.java @@ -0,0 +1,29 @@ +import javax.sound.sampled.LineUnavailableException; +import javax.sound.sampled.UnsupportedAudioFileException; +import java.io.*; + +public class SoundWrapper implements Serializable { + transient public Sound sound; + public String soundString; + + // please note that not as many constructors were implemented as BufferedImage, as this class was created before most sounds were added; + // as such, backwards compatibility was not needed + public SoundWrapper(String soundLocation) throws UnsupportedAudioFileException, LineUnavailableException, IOException { + sound = new Sound(soundLocation); + soundString = soundLocation; + } + + public SoundWrapper() {} + + @Serial + private void writeObject(ObjectOutputStream out) throws IOException { + out.writeObject(soundString); + } + + @Serial + private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException, UnsupportedAudioFileException, LineUnavailableException { + Object o; + o = in.readObject(); + sound = new Sound((String)o); + } +}