tonikelope 2023-10-27 15:11:46 +02:00
parent 2356e99bf8
commit c0bb5f6d58
10 changed files with 101 additions and 63 deletions

View File

@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.tonikelope</groupId>
<artifactId>MegaBasterd</artifactId>
<version>8.8</version>
<version>8.9</version>
<packaging>jar</packaging>
<repositories>
<repository>

View File

@ -432,7 +432,7 @@ public class AboutDialog extends javax.swing.JDialog {
THREAD_POOL.execute(() -> {
if (_midi == null) {
_midi = MiscTools.midiLoopPlay("/midis/a-team.mid");
_midi = MiscTools.midiLoopPlay("/midis/a-team.mid", 70);
} else {
_midi.start();
}

View File

@ -151,10 +151,6 @@ public class DownloadManager extends TransferenceManager {
getTransference_waitstart_queue().remove(d);
if (getTransference_waitstart_queue().isEmpty()) {
_frozen = false;
}
getTransference_running_list().remove(d);
getTransference_finished_queue().remove(d);

View File

@ -70,7 +70,7 @@ import javax.swing.UIManager;
*/
public final class MainPanel {
public static final String VERSION = "8.8";
public static final String VERSION = "8.9";
public static final boolean FORCE_SMART_PROXY = false; //TRUE FOR DEBUGING SMART PROXY
public static final int THROTTLE_SLICE_SIZE = 16 * 1024;
public static final int DEFAULT_BYTE_BUFFER_SIZE = 16 * 1024;
@ -1525,9 +1525,6 @@ public final class MainPanel {
getUpload_manager().getTransference_provision_queue().add(upload);
conta_uploads++;
uploads_queue_iterator.remove();
}
} else {

View File

@ -52,6 +52,7 @@ import static javax.swing.JOptionPane.QUESTION_MESSAGE;
import static javax.swing.JOptionPane.YES_NO_CANCEL_OPTION;
import static javax.swing.JOptionPane.showOptionDialog;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JTabbedPane;
/**
@ -64,6 +65,14 @@ public final class MainPanelView extends javax.swing.JFrame {
private static volatile MainPanelView INSTANCE = null;
public JProgressBar getDownload_status_bar() {
return download_status_bar;
}
public JProgressBar getUpload_status_bar() {
return upload_status_bar;
}
public static MainPanelView getINSTANCE() {
return INSTANCE;
}
@ -214,7 +223,7 @@ public final class MainPanelView extends javax.swing.JFrame {
MiscTools.GUIRun(() -> {
upload_status_bar.setIndeterminate(true);
upload_status_bar.setMaximum(getMain_panel().getUpload_manager().getTransference_preprocess_global_queue().size() + dialog.getFiles().size());
upload_status_bar.setVisible(true);
});
@ -351,31 +360,28 @@ public final class MainPanelView extends javax.swing.JFrame {
}
}
if (!getMain_panel().getUpload_manager().getTransference_preprocess_global_queue().isEmpty()) {
Upload upload = new Upload(getMain_panel(), ma, f.getAbsolutePath(), file_parent, null, null, parent_node, share_key, folder_link, dialog.getPriority_checkbox().isSelected());
Upload upload = new Upload(getMain_panel(), ma, f.getAbsolutePath(), file_parent, null, null, parent_node, share_key, folder_link, dialog.getPriority_checkbox().isSelected());
getMain_panel().getUpload_manager().getTransference_provision_queue().add(upload);
getMain_panel().getUpload_manager().getTransference_provision_queue().add(upload);
getMain_panel().getUpload_manager().getTransference_preprocess_global_queue().remove(f);
getMain_panel().getUpload_manager().getTransference_preprocess_global_queue().remove(f);
getMain_panel().getUpload_manager().secureNotify();
}
getMain_panel().getUpload_manager().secureNotify();
} catch (Exception ex) {
if (!getMain_panel().getUpload_manager().getTransference_preprocess_global_queue().isEmpty()) {
getMain_panel().getUpload_manager().getTransference_preprocess_global_queue().remove(f);
getMain_panel().getUpload_manager().getTransference_preprocess_global_queue().remove(f);
getMain_panel().getUpload_manager().secureNotify();
}
getMain_panel().getUpload_manager().secureNotify();
LOG.log(SEVERE, null, ex);
}
MiscTools.GUIRun(() -> {
upload_status_bar.setIndeterminate(false);
upload_status_bar.setValue(upload_status_bar.getValue() + 1);
});
}
} catch (Exception ex) {
@ -385,7 +391,7 @@ public final class MainPanelView extends javax.swing.JFrame {
if (getMain_panel().getUpload_manager().getTransference_preprocess_queue().isEmpty()) {
MiscTools.GUIRun(() -> {
upload_status_bar.setValue(upload_status_bar.getMinimum());
upload_status_bar.setVisible(false);
});
}
@ -470,6 +476,12 @@ public final class MainPanelView extends javax.swing.JFrame {
c.setVisible(false);
}
download_status_bar.setMinimum(0);
upload_status_bar.setMinimum(0);
download_status_bar.setValue(download_status_bar.getMinimum());
upload_status_bar.setValue(upload_status_bar.getMinimum());
clean_all_down_menu.setEnabled(false);
clean_all_up_menu.setEnabled(false);
cancel_all_downloads_menu.setEnabled(false);
@ -1090,7 +1102,7 @@ public final class MainPanelView extends javax.swing.JFrame {
if (!urls.isEmpty()) {
MiscTools.GUIRun(() -> {
download_status_bar.setIndeterminate(true);
download_status_bar.setMaximum(getMain_panel().getDownload_manager().getTransference_preprocess_global_queue().size() + urls.size());
download_status_bar.setVisible(true);
});
@ -1232,10 +1244,16 @@ public final class MainPanelView extends javax.swing.JFrame {
Logger.getLogger(MainPanelView.class.getName()).log(Level.SEVERE, ex.getMessage());
}
MiscTools.GUIRun(() -> {
download_status_bar.setIndeterminate(false);
download_status_bar.setValue(upload_status_bar.getValue() + 1);
});
}
if (getMain_panel().getDownload_manager().getTransference_preprocess_global_queue().isEmpty()) {
MiscTools.GUIRun(() -> {
download_status_bar.setValue(download_status_bar.getMinimum());
download_status_bar.setVisible(false);
});
}

View File

@ -27,6 +27,7 @@ import java.net.Proxy;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@ -1052,14 +1053,14 @@ public class MegaAPI implements Serializable {
}
public boolean existsCachedFolderNodes(String folder_id) {
return Files.exists(Path.of(System.getProperty("java.io.tmpdir") + File.separator + "megabasterd_folder_cache_" + folder_id));
return Files.exists(Paths.get(System.getProperty("java.io.tmpdir") + File.separator + "megabasterd_folder_cache_" + folder_id));
}
private String getCachedFolderNodes(String folder_id) {
String file_path = System.getProperty("java.io.tmpdir") + File.separator + "megabasterd_folder_cache_" + folder_id;
if (Files.exists(Path.of(file_path))) {
if (Files.exists(Paths.get(file_path))) {
LOG.log(Level.INFO, "MEGA FOLDER {0} USING CACHED JSON FILE TREE", new Object[]{folder_id});

View File

@ -81,10 +81,14 @@ import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.sound.midi.InvalidMidiDataException;
import javax.sound.midi.MidiEvent;
import javax.sound.midi.MidiSystem;
import javax.sound.midi.MidiUnavailableException;
import javax.sound.midi.Sequence;
import javax.sound.midi.Sequencer;
import javax.sound.midi.ShortMessage;
import javax.sound.midi.Synthesizer;
import javax.sound.midi.Track;
import javax.swing.AbstractButton;
import javax.swing.JComponent;
import javax.swing.JDialog;
@ -474,19 +478,30 @@ public class MiscTools {
}
}
public static Sequencer midiLoopPlay(String midi) {
public static Sequencer midiLoopPlay(String midi, int volume) {
try {
Sequencer sequencer = MidiSystem.getSequencer(); // Get the default Sequencer
Sequencer sequencer = MidiSystem.getSequencer();
if (sequencer == null) {
System.err.println("Sequencer device not supported");
Logger.getLogger(MiscTools.class.getName()).log(Level.SEVERE, "MIDI Sequencer device not supported");
return null;
}
sequencer.open(); // Open device
// Create sequence, the File must contain MIDI file data.
Synthesizer synthesizer = MidiSystem.getSynthesizer();
Sequence sequence = MidiSystem.getSequence(MiscTools.class.getResource(midi));
sequencer.setSequence(sequence); // load it into sequencer
for (Track t : sequence.getTracks()) {
for (int k = 0; k < synthesizer.getChannels().length; k++) {
t.add(new MidiEvent(new ShortMessage(ShortMessage.CONTROL_CHANGE, k, 7, volume), t.ticks()));
}
}
sequencer.open();
sequencer.setSequence(sequence);
sequencer.setLoopCount(Sequencer.LOOP_CONTINUOUSLY);
sequencer.start(); // start the playback
sequencer.start();
return sequencer;
} catch (MidiUnavailableException | InvalidMidiDataException | IOException ex) {
ex.printStackTrace();

View File

@ -23,6 +23,8 @@ import java.util.logging.Logger;
import javax.swing.JPanel;
/**
* Yes, this class is a f*cking mess (inside "natural" MegaBasterd mess) and
* should be completely refactored (in another life maybe...).
*
* @author tonikelope
*/
@ -57,7 +59,6 @@ abstract public class TransferenceManager implements Runnable, SecureSingleThrea
private volatile boolean _starting_transferences;
private volatile boolean _preprocessing_transferences;
private volatile boolean _paused_all;
protected volatile boolean _frozen;
private boolean _tray_icon_finish;
protected volatile long _total_size;
protected final Object _total_size_lock;
@ -78,7 +79,6 @@ abstract public class TransferenceManager implements Runnable, SecureSingleThrea
public TransferenceManager(MainPanel main_panel, int max_running_trans, javax.swing.JLabel status, javax.swing.JPanel scroll_panel, javax.swing.JButton close_all_button, javax.swing.JButton pause_all_button, javax.swing.MenuElement clean_all_menu) {
_notified = false;
_paused_all = false;
_frozen = false;
_removing_transferences = false;
_provisioning_transferences = false;
_starting_transferences = false;
@ -122,10 +122,6 @@ abstract public class TransferenceManager implements Runnable, SecureSingleThrea
this._paused_all = _paused_all;
}
public boolean isFrozen() {
return _frozen;
}
public boolean no_transferences() {
return getTransference_preprocess_queue().isEmpty() && getTransference_provision_queue().isEmpty() && getTransference_waitstart_queue().isEmpty() && getTransference_running_list().isEmpty();
}
@ -330,11 +326,15 @@ abstract public class TransferenceManager implements Runnable, SecureSingleThrea
_transference_provision_queue.clear();
_transference_remove_queue.addAll(new ArrayList(getTransference_waitstart_aux_queue()));
_transference_remove_queue.addAll(new ArrayList(getTransference_waitstart_queue()));
getTransference_waitstart_queue().clear();
for (Transference t : this.getTransference_running_list()) {
getTransference_waitstart_aux_queue().clear();
for (Transference t : getTransference_running_list()) {
if (t instanceof Download) {
((Download) t).setGlobal_cancel(true);
@ -381,8 +381,6 @@ abstract public class TransferenceManager implements Runnable, SecureSingleThrea
getScroll_panel().add((Component) t1.getView());
});
});
_frozen = false;
}
secureNotify();
@ -419,8 +417,6 @@ abstract public class TransferenceManager implements Runnable, SecureSingleThrea
getScroll_panel().add((Component) t1.getView());
});
});
_frozen = false;
}
secureNotify();
@ -464,8 +460,6 @@ abstract public class TransferenceManager implements Runnable, SecureSingleThrea
getScroll_panel().add((Component) t1.getView());
});
});
_frozen = false;
}
secureNotify();
@ -509,8 +503,6 @@ abstract public class TransferenceManager implements Runnable, SecureSingleThrea
getScroll_panel().add((Component) t2.getView());
});
});
_frozen = false;
}
secureNotify();
@ -611,6 +603,13 @@ abstract public class TransferenceManager implements Runnable, SecureSingleThrea
}
}
for (Transference t : getTransference_waitstart_aux_queue()) {
if (t.isFrozen()) {
return true;
}
}
return false;
}
@ -640,7 +639,9 @@ abstract public class TransferenceManager implements Runnable, SecureSingleThrea
t.unfreeze();
});
_frozen = false;
getTransference_waitstart_aux_queue().forEach((t) -> {
t.unfreeze();
});
}
secureNotify();
@ -654,6 +655,7 @@ abstract public class TransferenceManager implements Runnable, SecureSingleThrea
this._main_panel.getView().getForce_chunk_reset_button().setVisible(MainPanel.isUse_smart_proxy() && !getTransference_running_list().isEmpty());
this._main_panel.getView().getCancel_all_downloads_menu().setEnabled(!_transference_preprocess_queue.isEmpty() || !_transference_provision_queue.isEmpty() || !getTransference_waitstart_queue().isEmpty() || !getTransference_running_list().isEmpty());
}
if (_paused_all) {
@ -678,6 +680,24 @@ abstract public class TransferenceManager implements Runnable, SecureSingleThrea
_status.setText(_genStatus());
/*if (_transference_preprocess_queue.isEmpty() && !_transference_provision_queue.isEmpty()) {
if (this instanceof DownloadManager) {
this._main_panel.getView().getDownload_status_bar().setIndeterminate(true);
this._main_panel.getView().getDownload_status_bar().setVisible(true);
} else {
this._main_panel.getView().getUpload_status_bar().setIndeterminate(true);
this._main_panel.getView().getUpload_status_bar().setVisible(true);
}
} else if (_transference_preprocess_queue.isEmpty()) {
if (this instanceof DownloadManager) {
this._main_panel.getView().getDownload_status_bar().setIndeterminate(false);
this._main_panel.getView().getDownload_status_bar().setVisible(false);
} else {
this._main_panel.getView().getUpload_status_bar().setIndeterminate(false);
this._main_panel.getView().getUpload_status_bar().setVisible(false);
}
}*/
_main_panel.getView().getUnfreeze_transferences_button().setVisible(_main_panel.getDownload_manager().hasFrozenTransferences() || _main_panel.getUpload_manager().hasFrozenTransferences());
_main_panel.getView().revalidate();
@ -880,7 +900,6 @@ abstract public class TransferenceManager implements Runnable, SecureSingleThrea
}
_frozen = false;
setSort_wait_start_queue(true);
setProvisioning_transferences(false);
secureNotify();
@ -888,13 +907,13 @@ abstract public class TransferenceManager implements Runnable, SecureSingleThrea
}
if (!_frozen && !_main_panel.isExit() && !_paused_all && !isRemoving_transferences() && !isStarting_transferences() && (!getTransference_waitstart_queue().isEmpty() || !getTransference_waitstart_aux_queue().isEmpty()) && getTransference_running_list().size() < _max_running_trans) {
if (!_main_panel.isExit() && !_paused_all && !isRemoving_transferences() && !isStarting_transferences() && (!getTransference_waitstart_queue().isEmpty() || !getTransference_waitstart_aux_queue().isEmpty()) && getTransference_running_list().size() < _max_running_trans) {
setStarting_transferences(true);
THREAD_POOL.execute(() -> {
while (!_frozen && !_main_panel.isExit() && !_paused_all && (!getTransference_waitstart_queue().isEmpty() || !getTransference_waitstart_aux_queue().isEmpty()) && getTransference_running_list().size() < _max_running_trans) {
while (!_main_panel.isExit() && !_paused_all && (!getTransference_waitstart_queue().isEmpty() || !getTransference_waitstart_aux_queue().isEmpty()) && getTransference_running_list().size() < _max_running_trans) {
synchronized (_transference_queue_sort_lock) {
Transference transference = getTransference_waitstart_queue().peek();
@ -911,10 +930,6 @@ abstract public class TransferenceManager implements Runnable, SecureSingleThrea
start(transference);
} else {
_frozen = true;
}
}
}

View File

@ -70,10 +70,6 @@ public class UploadManager extends TransferenceManager {
getTransference_waitstart_queue().remove(u);
if (getTransference_waitstart_queue().isEmpty()) {
_frozen = false;
}
getTransference_running_list().remove(u);
getTransference_finished_queue().remove(u);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 212 KiB

After

Width:  |  Height:  |  Size: 214 KiB