diff --git a/com.wudsn.ide.snd/OSGI-INF/l10n/bundle.properties b/com.wudsn.ide.snd/OSGI-INF/l10n/bundle.properties
index d51491f9..afc4e943 100644
--- a/com.wudsn.ide.snd/OSGI-INF/l10n/bundle.properties
+++ b/com.wudsn.ide.snd/OSGI-INF/l10n/bundle.properties
@@ -7,4 +7,23 @@ com.wudsn.ide.snd.player.c64.C64SoundFile.name=C64 Sound File
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
\ No newline at end of file
+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
\ No newline at end of file
diff --git a/com.wudsn.ide.snd/OSGI-INF/l10n/bundle_de.properties b/com.wudsn.ide.snd/OSGI-INF/l10n/bundle_de.properties
index 3b5acdb3..c05d9dd3 100644
--- a/com.wudsn.ide.snd/OSGI-INF/l10n/bundle_de.properties
+++ b/com.wudsn.ide.snd/OSGI-INF/l10n/bundle_de.properties
@@ -7,4 +7,23 @@ com.wudsn.ide.snd.player.c64.C64SoundFile.name=C64 Musik-Datei
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
\ No newline at end of file
+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
\ No newline at end of file
diff --git a/com.wudsn.ide.snd/build.properties b/com.wudsn.ide.snd/build.properties
index c6583d34..9d01d490 100644
--- a/com.wudsn.ide.snd/build.properties
+++ b/com.wudsn.ide.snd/build.properties
@@ -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/
diff --git a/com.wudsn.ide.snd/src/com/wudsn/ide/snd/editor/SoundEditor.java b/com.wudsn.ide.snd/src/com/wudsn/ide/snd/editor/SoundEditor.java
index 847af3dd..9a94b3b8 100644
--- a/com.wudsn.ide.snd/src/com/wudsn/ide/snd/editor/SoundEditor.java
+++ b/com.wudsn.ide.snd/src/com/wudsn/ide/snd/editor/SoundEditor.java
@@ -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() {
diff --git a/com.wudsn.ide.snd/src/com/wudsn/ide/snd/player/FileType.java b/com.wudsn.ide.snd/src/com/wudsn/ide/snd/player/FileType.java
index c8c26880..39df866c 100644
--- a/com.wudsn.ide.snd/src/com/wudsn/ide/snd/player/FileType.java
+++ b/com.wudsn.ide.snd/src/com/wudsn/ide/snd/player/FileType.java
@@ -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.
diff --git a/com.wudsn.ide.snd/src/com/wudsn/ide/snd/player/SoundInfo.java b/com.wudsn.ide.snd/src/com/wudsn/ide/snd/player/SoundInfo.java
index 50630b40..de457651 100644
--- a/com.wudsn.ide.snd/src/com/wudsn/ide/snd/player/SoundInfo.java
+++ b/com.wudsn.ide.snd/src/com/wudsn/ide/snd/player/SoundInfo.java
@@ -128,7 +128,8 @@ public interface SoundInfo {
* Gets the music address or -1
if the module type does not have
* one.
*
- * @return TODO
+ * @return The music address or -1
if the module type does not have
+ * one.
*/
public int getMusicAddress();
diff --git a/com.wudsn.ide.snd/src/com/wudsn/ide/snd/player/atari8/ASAPPlayer.java b/com.wudsn.ide.snd/src/com/wudsn/ide/snd/player/atari8/ASAPPlayer.java
index 8de8920d..cf449eab 100644
--- a/com.wudsn.ide.snd/src/com/wudsn/ide/snd/player/atari8/ASAPPlayer.java
+++ b/com.wudsn.ide.snd/src/com/wudsn/ide/snd/player/atari8/ASAPPlayer.java
@@ -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;