Skip to content

Commit 1b10327

Browse files
committed
3.3 BugFix 22.06.2022
1 parent 1b4e052 commit 1b10327

File tree

15 files changed

+483
-369
lines changed

15 files changed

+483
-369
lines changed

.classpath

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<classpath>
33
<classpathentry kind="src" path="source"/>
4-
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jre-1.8.0"/>
4+
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jre-17">
5+
<attributes>
6+
<attribute name="module" value="true"/>
7+
</attributes>
8+
</classpathentry>
59
<classpathentry kind="output" path="bin"/>
610
</classpath>

.settings/org.eclipse.jdt.core.prefs

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
eclipse.preferences.version=1
22
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
33
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
4-
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
4+
org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
55
org.eclipse.jdt.core.compiler.codegen.unusedLocal=optimize out
6-
org.eclipse.jdt.core.compiler.compliance=1.8
6+
org.eclipse.jdt.core.compiler.compliance=17
77
org.eclipse.jdt.core.compiler.debug.lineNumber=do not generate
88
org.eclipse.jdt.core.compiler.debug.localVariable=do not generate
99
org.eclipse.jdt.core.compiler.debug.sourceFile=do not generate
@@ -12,4 +12,4 @@ org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
1212
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
1313
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
1414
org.eclipse.jdt.core.compiler.release=disabled
15-
org.eclipse.jdt.core.compiler.source=1.8
15+
org.eclipse.jdt.core.compiler.source=17

README.md

+20-12
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,8 @@
1-
# JavaMod V3.2
2-
Development version: 3.3
3-
4-
Code Compliance Level: JDK 1.8
5-
Build with openJDK 1.8 update 311
6-
However: run with modern Java (openJDK >11, 64BIT) to gain full
7-
speed - 200+ NNAs are no problem then
8-
Heap Size with JDK8 (default of 256M) not sufficient with bigger mods. Either
9-
set -Xmx1024m parameter or use newer JDK
1+
# JavaMod V3.3
2+
Development version: 3.4
3+
4+
Code Compliance Level: JDK 17
5+
Build with openJDK 17.0.2
106

117
## Supported file types:
128
* Mods (NST, MOD, WOW, XM, STM, S3M, IT, PowerPacker)
@@ -37,6 +33,7 @@ JavaMod incorporates modified versions of the following libraries.
3733
is not an option. Lazy loading does not help as the available MidiDevices
3834
must be present when creating the config drop down list for selection.
3935
* Clean up effects - some are for IT only, some for XM only (copy&paste...)
36+
(Mostly done, still needs QS)
4037
* On Linux gapless audio streams do not work if SourceLine Buffers drain out
4138
* Tray Icon: mouse wheel (volume control) & keyboard shortcuts do not work
4239

@@ -47,6 +44,17 @@ JavaMod incorporates modified versions of the following libraries.
4744
* read 7z archives
4845
* maybe: follow song with mod files (pattern display)
4946

47+
## New in Version 3.3
48+
* IMPORTANT: as JDK 8 LTS support will be over in two years (security) and
49+
normal support is already over, JavaMod is now using JDK 17 (LTS).
50+
As the compile level changed, you *must* use JDK 17 to run JavaMod!
51+
* NEW: Replaced Wide Stereo with a real virtual surround
52+
* FIX: Legacy ModPlug Tracker (1.17RC2 and lower) files have correct
53+
volume now. I did things too easy!
54+
* FIX: iconify and deIconify fixed so that with tray icon entry in task bar
55+
is gone
56+
* FIX: MP3: added "Info" tag to "Xing" tag to read as CBR
57+
5058
## New in Version 3.2
5159
* FIX: Sustain-Loop and normal Loop not correctly differed in
5260
BasicModMixer::fitIntoLoops. Resulted in a Devision by Zero, if
@@ -163,8 +171,8 @@ JavaMod incorporates modified versions of the following libraries.
163171
* The OPL3 support was already implemented - but as pure beta yet not activated,
164172
Release because:
165173
* fixed: nasty NullPointerException when pattern, sample and instrument dialog
166-
have never been opened yet and switching back from other media file than mod.
167-
They get initialized than to get the loaded information data, but the
174+
have never been opened yet and switching back from other media file then mod.
175+
They get initialized then to get the loaded information data, but the
168176
ModInfoPanel is not yet added to its JFrame so: no RootPane at that moment.
169177

170178
## New in Version 2.7
@@ -213,7 +221,7 @@ JavaMod incorporates modified versions of the following libraries.
213221
## New in Version 2.6
214222
* fixed icon size in tray icon
215223
* save selected SA-Meter visual style
216-
* fixed a playback issue if hardware buffers are smaller than the mixing buffer
224+
* fixed a playback issue if hardware buffers are smaller then the mixing buffer
217225
* fixed (hopefully) swing gui errors from playlist
218226
* fix for KDE Bugs in Drag&Drop with wrongly encoded URLs
219227
* fix with GaplessAudioStream - it's now really gapless.

source/de/quippy/javamod/main/gui/MainForm.java

+7-4
Original file line numberDiff line numberDiff line change
@@ -674,7 +674,7 @@ public void windowClosing(java.awt.event.WindowEvent e)
674674
@Override
675675
public void windowIconified(WindowEvent e)
676676
{
677-
if (useSystemTray) doIconify();
677+
doIconify();
678678
}
679679
/**
680680
* @param e
@@ -684,7 +684,7 @@ public void windowIconified(WindowEvent e)
684684
@Override
685685
public void windowDeiconified(WindowEvent e)
686686
{
687-
if (useSystemTray) doDeIconify();
687+
doDeIconify();
688688
toFront(); // MakeMainWindowVisible does this also, if other child windows are open and gain focus
689689
}
690690
});
@@ -1450,12 +1450,15 @@ public void actionPerformed(ActionEvent e)
14501450
*/
14511451
private void doIconify()
14521452
{
1453-
if (useSystemTray && (getExtendedState() & ICONIFIED)==0)
1453+
if (useSystemTray)
14541454
{
1455+
// no check, if iconified, as that *will* be true already!
1456+
// remember visiable state of all windows
14551457
windowsVisibleState = new boolean[windows.size()];
14561458
for (int x=0; x<windows.size(); x++)
14571459
windowsVisibleState[x] = windows.get(x).isVisible();
14581460
dispose();
1461+
setVisible(false);
14591462
}
14601463
}
14611464
/**
@@ -1469,7 +1472,7 @@ private void doIconify()
14691472
*/
14701473
private void doDeIconify()
14711474
{
1472-
if ((getExtendedState() & ICONIFIED)!=0)
1475+
if (useSystemTray && (getExtendedState() & ICONIFIED)!=0)
14731476
{
14741477
setVisible(true);
14751478
setExtendedState(getExtendedState() & ~ICONIFIED); // JFrame.setState is obsolete!!

source/de/quippy/javamod/main/gui/playlist/PlayListGUI.java

+7-7
Original file line numberDiff line numberDiff line change
@@ -942,8 +942,8 @@ private int getFirstVisableIndex()
942942
{
943943
try
944944
{
945-
final Rectangle2D r1 = getPlaylistTextArea().modelToView(element.getStartOffset());
946-
final Rectangle2D r2 = getPlaylistTextArea().modelToView(element.getEndOffset()-1);
945+
final Rectangle2D r1 = getPlaylistTextArea().modelToView2D(element.getStartOffset());
946+
final Rectangle2D r2 = getPlaylistTextArea().modelToView2D(element.getEndOffset()-1);
947947
final Rectangle r = new Rectangle((int)r1.getX(), (int)r1.getY(), (int)(r2.getX()-r1.getX()), (int)r1.getHeight());
948948
final Rectangle intersect = r.intersection(getPlaylistTextArea().getVisibleRect());
949949
if (!intersect.isEmpty() && intersect.height==r.height) return i;
@@ -963,7 +963,7 @@ private int getFirstVisableIndex()
963963
*/
964964
private int getSelectedIndexFromPoint(Point position, boolean returnNearest)
965965
{
966-
final int modelPos = getPlaylistTextArea().viewToModel(position);
966+
final int modelPos = getPlaylistTextArea().viewToModel2D(position);
967967

968968
final HTMLDocument doc = (HTMLDocument)getPlaylistTextArea().getDocument();
969969
final Element table = (doc!=null)?doc.getElement("TABLE"):null;
@@ -975,8 +975,8 @@ private int getSelectedIndexFromPoint(Point position, boolean returnNearest)
975975
final Element selectedElement = table.getElement(index);
976976
try
977977
{
978-
final Rectangle2D r1 = getPlaylistTextArea().modelToView(selectedElement.getStartOffset());
979-
final Rectangle2D r2 = getPlaylistTextArea().modelToView(selectedElement.getEndOffset()-1);
978+
final Rectangle2D r1 = getPlaylistTextArea().modelToView2D(selectedElement.getStartOffset());
979+
final Rectangle2D r2 = getPlaylistTextArea().modelToView2D(selectedElement.getEndOffset()-1);
980980
final Rectangle r = new Rectangle((int)r1.getX(), (int)r1.getY(), (int)(r2.getX()-r1.getX()), (int)r1.getHeight());
981981
if (!returnNearest && !r.contains(position))
982982
return -1;
@@ -1010,8 +1010,8 @@ private void doMakeIndexVisible(PlayListEntry entry)
10101010
{
10111011
try
10121012
{
1013-
final Rectangle2D r1 = getPlaylistTextArea().modelToView(element.getStartOffset());
1014-
final Rectangle2D r2 = getPlaylistTextArea().modelToView(element.getEndOffset()-1);
1013+
final Rectangle2D r1 = getPlaylistTextArea().modelToView2D(element.getStartOffset());
1014+
final Rectangle2D r2 = getPlaylistTextArea().modelToView2D(element.getEndOffset()-1);
10151015

10161016
if (r1!=null && r2!=null)
10171017
{

source/de/quippy/javamod/mixer/dsp/AudioProcessor.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
* signal processing call backs doing their things and will return a
99
* byte array of sampledata coresponding to the audio format provided
1010
*
11-
* Depending on the frames per second this data is than send split into
11+
* Depending on the frames per second this data is then send split into
1212
* left and right channel to all callbacks who whant to be informed.
1313
*
1414
* Created on 29.09.2007 by Daniel Becker

0 commit comments

Comments
 (0)