diff --git a/.idea/compiler.xml b/.idea/compiler.xml index d801bf4..dcffce8 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -7,7 +7,6 @@ - diff --git a/.idea/misc.xml b/.idea/misc.xml index 72be14a..64c32f6 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -13,7 +13,7 @@ - + \ No newline at end of file diff --git a/app/src/main/java/org/toop/Main.java b/app/src/main/java/org/toop/Main.java index 77f6e6c..a99a5d5 100644 --- a/app/src/main/java/org/toop/Main.java +++ b/app/src/main/java/org/toop/Main.java @@ -1,86 +1,27 @@ package org.toop; -import java.util.Arrays; import org.toop.app.gui.LocalServerSelector; -import org.toop.framework.eventbus.EventFlow; import org.toop.framework.networking.NetworkingClientManager; import org.toop.framework.networking.NetworkingInitializationException; -import org.toop.framework.networking.events.NetworkEvents; +import org.toop.framework.audio.AudioFilesManager; + +import javax.sound.sampled.*; +import java.io.File; +import java.io.IOException; public class Main { - static void main(String[] args) { + static void main(String[] args) throws IOException, UnsupportedAudioFileException, LineUnavailableException { + AudioFilesManager audioFiles = new AudioFilesManager("app/src/main/resources/audio/"); + String aFile = audioFiles.getAudioFile("hdchirp_88k_log.wav"); + AudioInputStream audioStream = AudioSystem.getAudioInputStream(new File(aFile)); + Clip clip = AudioSystem.getClip(); + clip.open(audioStream); + clip.start(); initSystems(); - - EventFlow a = - new EventFlow() - .addPostEvent(NetworkEvents.StartClient.class, "127.0.0.1", 7789) - .onResponse(Main::login) - // .onResponse(Main::sendCommand) - // .onResponse(Main::closeClient) - .asyncPostEvent(); - - new Thread( - () -> { - while (a.getResult() == null) { - try { - Thread.sleep(2000); - } catch (InterruptedException e) { - } - } - long clid = (Long) a.getResult().get("clientId"); - new EventFlow() - .addPostEvent( - new NetworkEvents.SendSubscribe(clid, "tic-tac-toe")) - .listen( - NetworkEvents.PlayerlistResponse.class, - response -> { - if (response.clientId() == clid) - System.out.println( - Arrays.toString(response.playerlist())); - }) - .listen( - NetworkEvents.ChallengeResponse.class, - response -> { - if (response.clientId() == clid) - System.out.println(response.challengeId()); - }) - .listen( - NetworkEvents.ChallengeCancelledResponse.class, - response -> { - if (response.clientId() == clid) - System.out.println(response.challengeId()); - }) - .listen( - NetworkEvents.GamelistResponse.class, - response -> { - if (response.clientId() == clid) - System.out.println( - Arrays.toString(response.gamelist())); - }) - .asyncPostEvent(); - }) - .start(); - - new Thread(() -> javax.swing.SwingUtilities.invokeLater(LocalServerSelector::new)).start(); - } - - private static void login(NetworkEvents.StartClientResponse event) { - new Thread( - () -> { - try { - Thread.sleep(1000); - new EventFlow() - .addPostEvent( - new NetworkEvents.SendCommand( - event.clientId(), "login bas")) - .asyncPostEvent(); - } catch (InterruptedException e) { - } - }) - .start(); + javax.swing.SwingUtilities.invokeLater(LocalServerSelector::new); } private static void initSystems() throws NetworkingInitializationException { new NetworkingClientManager(); } -} +} \ No newline at end of file diff --git a/app/src/main/resources/audio/hdchirp_88k_log.wav b/app/src/main/resources/audio/hdchirp_88k_log.wav new file mode 100644 index 0000000..cf2a32f Binary files /dev/null and b/app/src/main/resources/audio/hdchirp_88k_log.wav differ diff --git a/framework/src/main/java/org/toop/framework/audio/AudioFilesManager.java b/framework/src/main/java/org/toop/framework/audio/AudioFilesManager.java new file mode 100644 index 0000000..3bf23a4 --- /dev/null +++ b/framework/src/main/java/org/toop/framework/audio/AudioFilesManager.java @@ -0,0 +1,55 @@ +package org.toop.framework.audio; + +import java.io.IOException; +import java.io.InvalidObjectException; +import java.nio.file.*; +import java.util.HashSet; +import java.util.Set; + +public class AudioFilesManager { + + private Set audioFiles; + private String audioDirectory; + + public AudioFilesManager(String audioDirectory) throws NotDirectoryException { + if (!audioDirectory.endsWith("/") && !audioDirectory.endsWith("\\")) { + throw new NotDirectoryException(audioDirectory); + } + this.audioFiles = AudioFilesManager.getAllAudioFiles(audioDirectory); + this.audioDirectory = audioDirectory; + } + + public Set getAudioFiles() { + return this.audioFiles; + } + + public String getAudioFile(String file) { + if (!audioFiles.contains(file)) { + return null; + } + return audioDirectory + file; + } + + private static Set getAllAudioFiles(String audioDirectory) { + Set fileSet = new HashSet<>(); + try (DirectoryStream stream = Files.newDirectoryStream(Paths.get(audioDirectory))) { + for (Path path : stream) { + if (!Files.isDirectory(path)) { + String extension = ""; + + int i = path.getFileName().toString().lastIndexOf('.'); + if (i > 0) { + extension = path.getFileName().toString().substring(i+1); + } + if (extension.equalsIgnoreCase("wave") || extension.equalsIgnoreCase("wav") + || extension.equalsIgnoreCase("mp3")) + fileSet.add(path.getFileName() + .toString()); + } + } + } catch (IOException e) { + throw new RuntimeException(e); + } + return fileSet; + } +} diff --git a/framework/src/main/java/org/toop/framework/audio/AudioPlayer.java b/framework/src/main/java/org/toop/framework/audio/AudioPlayer.java new file mode 100644 index 0000000..a022297 --- /dev/null +++ b/framework/src/main/java/org/toop/framework/audio/AudioPlayer.java @@ -0,0 +1,7 @@ +package org.toop.framework.audio; + +public class AudioPlayer { + + + +}