Create separate FileChooser for wav files

pull/35/head
James Ball 2021-08-31 21:23:45 +01:00
rodzic cdc5139141
commit 9c32ab82c0
1 zmienionych plików z 11 dodań i 10 usunięć

Wyświetl plik

@ -21,11 +21,9 @@ import java.io.InputStream;
import java.net.URL; import java.net.URL;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.function.Consumer; import java.util.function.Consumer;
import java.util.stream.Collectors;
import javafx.beans.InvalidationListener; import javafx.beans.InvalidationListener;
import javafx.fxml.FXML; import javafx.fxml.FXML;
@ -46,7 +44,6 @@ import sh.ball.audio.engine.AudioDevice;
import sh.ball.audio.engine.ConglomerateAudioEngine; import sh.ball.audio.engine.ConglomerateAudioEngine;
import sh.ball.audio.midi.MidiCommunicator; import sh.ball.audio.midi.MidiCommunicator;
import sh.ball.audio.midi.MidiListener; import sh.ball.audio.midi.MidiListener;
import sh.ball.audio.midi.MidiNote;
import sh.ball.engine.Vector3; import sh.ball.engine.Vector3;
import sh.ball.parser.obj.Listener; import sh.ball.parser.obj.Listener;
import sh.ball.parser.obj.ObjSettingsFactory; import sh.ball.parser.obj.ObjSettingsFactory;
@ -61,7 +58,8 @@ public class Controller implements Initializable, FrequencyListener, Listener, W
private static final double MAX_FREQUENCY = 12000; private static final double MAX_FREQUENCY = 12000;
private static final double MIDDLE_C = 261.63; private static final double MIDDLE_C = 261.63;
private final FileChooser fileChooser = new FileChooser(); private final FileChooser wavFileChooser = new FileChooser();
private final FileChooser renderFileChooser = new FileChooser();
private final DirectoryChooser folderChooser = new DirectoryChooser(); private final DirectoryChooser folderChooser = new DirectoryChooser();
private final ShapeAudioPlayer audioPlayer; private final ShapeAudioPlayer audioPlayer;
private final ExecutorService executor = Executors.newSingleThreadExecutor(); private final ExecutorService executor = Executors.newSingleThreadExecutor();
@ -334,17 +332,20 @@ public class Controller implements Initializable, FrequencyListener, Listener, W
octaveSlider.valueProperty().addListener((e, old, octave) -> audioPlayer.setOctave(octave.intValue())); octaveSlider.valueProperty().addListener((e, old, octave) -> audioPlayer.setOctave(octave.intValue()));
fileChooser.setInitialFileName("out.wav"); wavFileChooser.setInitialFileName("out.wav");
fileChooser.getExtensionFilters().addAll( wavFileChooser.getExtensionFilters().addAll(
new FileChooser.ExtensionFilter("All Files", "*.*"),
new FileChooser.ExtensionFilter("WAV Files", "*.wav"), new FileChooser.ExtensionFilter("WAV Files", "*.wav"),
new FileChooser.ExtensionFilter("All Files", "*.*")
);
renderFileChooser.getExtensionFilters().addAll(
new FileChooser.ExtensionFilter("All Files", "*.*"),
new FileChooser.ExtensionFilter("Wavefront OBJ Files", "*.obj"), new FileChooser.ExtensionFilter("Wavefront OBJ Files", "*.obj"),
new FileChooser.ExtensionFilter("SVG Files", "*.svg"), new FileChooser.ExtensionFilter("SVG Files", "*.svg"),
new FileChooser.ExtensionFilter("Text Files", "*.txt") new FileChooser.ExtensionFilter("Text Files", "*.txt")
); );
chooseFileButton.setOnAction(e -> { chooseFileButton.setOnAction(e -> {
File file = fileChooser.showOpenDialog(stage); File file = renderFileChooser.showOpenDialog(stage);
if (file != null) { if (file != null) {
chooseFile(file); chooseFile(file);
updateLastVisitedDirectory(new File(file.getParent())); updateLastVisitedDirectory(new File(file.getParent()));
@ -391,7 +392,7 @@ public class Controller implements Initializable, FrequencyListener, Listener, W
private void updateLastVisitedDirectory(File file) { private void updateLastVisitedDirectory(File file) {
String lastVisitedDirectory = file != null ? file.getAbsolutePath() : System.getProperty("user.home"); String lastVisitedDirectory = file != null ? file.getAbsolutePath() : System.getProperty("user.home");
File dir = new File(lastVisitedDirectory); File dir = new File(lastVisitedDirectory);
fileChooser.setInitialDirectory(dir); wavFileChooser.setInitialDirectory(dir);
folderChooser.setInitialDirectory(dir); folderChooser.setInitialDirectory(dir);
} }
@ -467,7 +468,7 @@ public class Controller implements Initializable, FrequencyListener, Listener, W
try { try {
recordButton.setText("Record"); recordButton.setText("Record");
AudioInputStream input = audioPlayer.stopRecord(); AudioInputStream input = audioPlayer.stopRecord();
File file = fileChooser.showSaveDialog(stage); File file = wavFileChooser.showSaveDialog(stage);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss"); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss");
Date date = new Date(System.currentTimeMillis()); Date date = new Date(System.currentTimeMillis());
if (file == null) { if (file == null) {