mirror of
https://github.com/tonikelope/megabasterd.git
synced 2025-04-29 22:24:32 +02:00
parent
2356e99bf8
commit
c0bb5f6d58
2
pom.xml
2
pom.xml
@ -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>
|
||||
|
@ -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();
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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 {
|
||||
|
@ -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,8 +360,6 @@ 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());
|
||||
|
||||
getMain_panel().getUpload_manager().getTransference_provision_queue().add(upload);
|
||||
@ -361,21 +368,20 @@ public final class MainPanelView extends javax.swing.JFrame {
|
||||
|
||||
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().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);
|
||||
});
|
||||
}
|
||||
|
@ -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});
|
||||
|
||||
|
@ -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();
|
||||
|
@ -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;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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 |
Loading…
x
Reference in New Issue
Block a user