mirror of
https://github.com/peterdell/wudsn-ide.git
synced 2025-01-02 20:29:43 +00:00
Fix sound editor export (missing music address), fix type texts and missing date
This commit is contained in:
parent
0a20519ab4
commit
12ae9048dc
@ -8,3 +8,22 @@ com.wudsn.ide.snd.editor.SoundEditor.name=Sound Editor
|
||||
com.wudsn.ide.snd.editor.SoundEditorToolbar.label=Sound
|
||||
com.wudsn.ide.snd.editor.SoundEditorActionSet.label=Sound
|
||||
com.wudsn.ide.snd.editor.SoundEditorPlayCommand.name=Play
|
||||
|
||||
com.wudsn.ide.snd.player.FileType.CM3=Chaos Music Composer File (3/4)
|
||||
com.wudsn.ide.snd.player.FileType.CMC=Chaos Music Composer File
|
||||
com.wudsn.ide.snd.player.FileType.CMR=Chaos Music Composer File (Rzog)
|
||||
com.wudsn.ide.snd.player.FileType.CMS=Chaos Music Composer File (Stereo)
|
||||
com.wudsn.ide.snd.player.FileType.DLT=Delta Music Composer File
|
||||
com.wudsn.ide.snd.player.FileType.DMC=Chaos Music Composer File (DoublePlay)
|
||||
com.wudsn.ide.snd.player.FileType.FC=Future Composer File
|
||||
com.wudsn.ide.snd.player.FileType.MPD=Music Pro-Tracker File (DoublePlay)
|
||||
com.wudsn.ide.snd.player.FileType.MPT=Music Pro-Tracker File
|
||||
com.wudsn.ide.snd.player.FileType.RMT=Raster Music Tracker File
|
||||
com.wudsn.ide.snd.player.FileType.SAP=Slight Atari Player File
|
||||
com.wudsn.ide.snd.player.FileType.TM2=Theta Music Composer 1.x File
|
||||
com.wudsn.ide.snd.player.FileType.TM8=Theta Music Composer 1.x File (Stereo)
|
||||
com.wudsn.ide.snd.player.FileType.TMC=Theta Music Composer 2.x File
|
||||
com.wudsn.ide.snd.player.FileType.XEX=Atari Executable
|
||||
|
||||
com.wudsn.ide.snd.player.FileType.PRG=C64 Program
|
||||
com.wudsn.ide.snd.player.FileType.SID=SID File
|
@ -8,3 +8,22 @@ com.wudsn.ide.snd.editor.SoundEditor.name=Musik Editor
|
||||
com.wudsn.ide.snd.editor.SoundEditorToolbar.label=Musik
|
||||
com.wudsn.ide.snd.editor.SoundEditorActionSet.label=Musik
|
||||
com.wudsn.ide.snd.editor.SoundEditorPlayCommand.name=Wiedergabe
|
||||
|
||||
com.wudsn.ide.snd.player.FileType.CM3=Chaos Music Composer Datei (3/4)
|
||||
com.wudsn.ide.snd.player.FileType.CMC=Chaos Music Composer Datei
|
||||
com.wudsn.ide.snd.player.FileType.CMR=Chaos Music Composer Datei (Rzog)
|
||||
com.wudsn.ide.snd.player.FileType.CMS=Chaos Music Composer Datei (Stereo)
|
||||
com.wudsn.ide.snd.player.FileType.DLT=Delta Music Composer Datei
|
||||
com.wudsn.ide.snd.player.FileType.DMC=Chaos Music Composer Datei (DoublePlay)
|
||||
com.wudsn.ide.snd.player.FileType.FC=Future Composer Datei
|
||||
com.wudsn.ide.snd.player.FileType.MPD=Music Pro-Tracker Datei (DoublePlay)
|
||||
com.wudsn.ide.snd.player.FileType.MPT=Music Pro-Tracker Datei
|
||||
com.wudsn.ide.snd.player.FileType.RMT=Raster Music Tracker Datei
|
||||
com.wudsn.ide.snd.player.FileType.SAP=Slight Atari Player Datei
|
||||
com.wudsn.ide.snd.player.FileType.TM2=Theta Music Composer 1.x Datei
|
||||
com.wudsn.ide.snd.player.FileType.TM8=Theta Music Composer 1.x Datei (Stereo)
|
||||
com.wudsn.ide.snd.player.FileType.TMC=Theta Music Composer 2.x Datei
|
||||
com.wudsn.ide.snd.player.FileType.XEX=Atari Programm
|
||||
|
||||
com.wudsn.ide.snd.player.FileType.PRG=C64 Programm
|
||||
com.wudsn.ide.snd.player.FileType.SID=SID Datei
|
@ -6,7 +6,7 @@ bin.includes = META-INF/,\
|
||||
lib/atari8bit/asap.jar,\
|
||||
lib/c64/jsidplay2.jar,\
|
||||
plugin.properties,\
|
||||
plugin_de_DE.properties,\
|
||||
plugin_de.properties,\
|
||||
lib/atari8bit/asap.txt,\
|
||||
lib/c64/jsidplay2.txt,\
|
||||
OSGI-INF/
|
||||
|
@ -616,8 +616,11 @@ public final class SoundEditor extends EditorPart implements Application, SoundP
|
||||
}
|
||||
|
||||
int musicAddress = info.getMusicAddress();
|
||||
if (musicAddress >= 0 && selectedFileType.isMusicAddressChangeable()) {
|
||||
String initialValue = HexUtility.getLongValueHexString(musicAddress, 4);
|
||||
if (selectedFileType.isMusicAddressChangeable()) {
|
||||
String initialValue = "";
|
||||
if (musicAddress >= 0) {
|
||||
initialValue = HexUtility.getLongValueHexString(musicAddress, 4);
|
||||
}
|
||||
InputDialog inputDialog = new InputDialog(mainComposite.getShell(),
|
||||
TextUtility.format(Texts.MESSAGE_I507, selectedFileType.getDescription()), Texts.MESSAGE_I508,
|
||||
initialValue, new IInputValidator() {
|
||||
|
@ -26,14 +26,14 @@ import com.wudsn.ide.base.common.EnumUtility;
|
||||
*/
|
||||
public enum FileType {
|
||||
|
||||
// ATARI file Types, alphabethical order:
|
||||
// ATARI file Types, alphabetical order:
|
||||
// cm3, cmc, cmr, cms, dlt, dmc, fc, mpd, mpt, rmt, tmc, tm2, tm8, sap
|
||||
// XEX is an export only format, not registered in the content type.
|
||||
|
||||
CM3(".cm3"), CMC(".cmc"), CMR(".cmr"), CMS(".cms"), DLT(".dlt"), DMC(".dmc"), FC(".fc"), MPD(".mpd"), MPT(".mpt"),
|
||||
RMT(".rmt"), SAP(".sap"), TM2(".tm2"), TM8(".tm8"), TMC(".tmc"), XEX(".xex"),
|
||||
|
||||
// C64 File Types, alphabethical order:
|
||||
// C64 File Types, alphabetical order:
|
||||
// prg, sid
|
||||
// PRG is an export only format, not registered in the content type.
|
||||
|
||||
|
@ -128,7 +128,8 @@ public interface SoundInfo {
|
||||
* Gets the music address or <code>-1</code> if the module type does not have
|
||||
* one.
|
||||
*
|
||||
* @return TODO
|
||||
* @return The music address or <code>-1</code> if the module type does not have
|
||||
* one.
|
||||
*/
|
||||
public int getMusicAddress();
|
||||
|
||||
|
@ -136,6 +136,7 @@ public final class ASAPPlayer extends SoundPlayer {
|
||||
ASAPInfo asapInfo = asap.getInfo();
|
||||
info.title = asapInfo.getTitleOrFilename();
|
||||
info.author = asapInfo.getAuthor();
|
||||
info.date = asapInfo.getDate();
|
||||
|
||||
// Determine the original file type in the container.
|
||||
// Only if it cannot be determined, the file extension is used.
|
||||
@ -185,6 +186,9 @@ public final class ASAPPlayer extends SoundPlayer {
|
||||
info.initFulltime = asapMusicRoutine.isFulltime();
|
||||
info.playerAddress = asapMusicRoutine.getPlayerAddress();
|
||||
info.musicAddress = asapInfo.getMusicAddress();
|
||||
if (info.musicAddress == 0) {
|
||||
info.musicAddress = -1;
|
||||
}
|
||||
|
||||
setLoaded(true);
|
||||
|
||||
@ -202,7 +206,6 @@ public final class ASAPPlayer extends SoundPlayer {
|
||||
// The file name must have a least one character before the dot.
|
||||
String asapFile = "DUMMY" + fileType.getExtension().toUpperCase();
|
||||
ASAPInfo asapInfo = asap.getInfo();
|
||||
int oldMusicAddress = asapInfo.getMusicAddress();
|
||||
byte[] output = new byte[MAX_EXPORT_SIZE];
|
||||
ASAPWriter asapWriter = new ASAPWriter();
|
||||
int outputOffset = 0;
|
||||
@ -223,10 +226,7 @@ public final class ASAPPlayer extends SoundPlayer {
|
||||
*/
|
||||
|
||||
outputOffset = asapWriter.write(asapFile, asapInfo, module, moduleLen, false);
|
||||
// Change the music address back in case it was changed.
|
||||
if (fileType.isMusicAddressChangeable()) {
|
||||
asapInfo.setMusicAddress(oldMusicAddress);
|
||||
}
|
||||
|
||||
byte[] result = new byte[outputOffset];
|
||||
System.arraycopy(output, 0, result, 0, outputOffset);
|
||||
return result;
|
||||
|
Loading…
Reference in New Issue
Block a user