From b7e4e3f6cc8ccf71992322238cf68138caf19242 Mon Sep 17 00:00:00 2001
From: tobias <thinkdifferent055@gmail.com>
Date: Sat, 28 Jul 2018 20:47:47 +0200
Subject: [PATCH] Extract Audio and Midi Device into separate project

---
 .idea/encodings.xml                           |  1 +
 PlayWall/PlayWall.iml                         |  1 +
 PlayWall/pom.xml                              |  5 +++++
 .../java/de/tobias/playpad/PlayPadImpl.java   |  5 +++++
 PlayWallComponents/pom.xml                    | 19 +++++++++++++++++++
 .../playpad/audio/JavaFXAudioHandler.java     |  0
 .../playpad/audio/JavaFXHandlerFactory.java   |  0
 .../playpad/audio/TinyAudioHandler.java       |  0
 .../audio/TinyAudioHandlerFactory.java        |  2 +-
 .../TinySoundSettingsViewController.java      |  6 +++---
 .../java/de/tobias/playpad/midi/PD12.java     |  0
 .../resources/components/AudioHandler.xml     |  0
 .../main/java/de/tobias/playpad/PlayPad.java  |  3 +++
 13 files changed, 38 insertions(+), 4 deletions(-)
 rename {PlayWall => PlayWallComponents}/src/main/java/de/tobias/playpad/audio/JavaFXAudioHandler.java (100%)
 rename {PlayWall => PlayWallComponents}/src/main/java/de/tobias/playpad/audio/JavaFXHandlerFactory.java (100%)
 rename {PlayWall => PlayWallComponents}/src/main/java/de/tobias/playpad/audio/TinyAudioHandler.java (100%)
 rename {PlayWall => PlayWallComponents}/src/main/java/de/tobias/playpad/audio/TinyAudioHandlerFactory.java (94%)
 rename {PlayWall/src/main/java/de/tobias/playpad/viewcontroller/audio => PlayWallComponents/src/main/java/de/tobias/playpad/audio/viewcontroller}/TinySoundSettingsViewController.java (96%)
 rename {PlayWall => PlayWallComponents}/src/main/java/de/tobias/playpad/midi/PD12.java (100%)
 rename {PlayWall => PlayWallComponents}/src/main/resources/components/AudioHandler.xml (100%)

diff --git a/.idea/encodings.xml b/.idea/encodings.xml
index 2e1bcfd6..0f9ace19 100644
--- a/.idea/encodings.xml
+++ b/.idea/encodings.xml
@@ -4,6 +4,7 @@
     <file url="file://$PROJECT_DIR$/PlayWall" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/PlayWall/PlayWallComponents" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/PlayWall/PlayWallComponents" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/PlayWallComponents" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/PlayWallCore" charset="UTF-8" />
     <file url="PROJECT" charset="UTF-8" />
   </component>
diff --git a/PlayWall/PlayWall.iml b/PlayWall/PlayWall.iml
index acda03de..fb368148 100644
--- a/PlayWall/PlayWall.iml
+++ b/PlayWall/PlayWall.iml
@@ -51,6 +51,7 @@
     <orderEntry type="library" name="Maven: com.neovisionaries:nv-websocket-client:2.5" level="project" />
     <orderEntry type="library" name="Maven: javazoom:jlayer:1.0.1" level="project" />
     <orderEntry type="library" name="Maven: net.minidev:json-smart:1.2" level="project" />
+    <orderEntry type="module" module-name="PlayWallComponents" />
     <orderEntry type="library" name="Maven: net.java.dev.jna:jna:4.5.0" level="project" />
     <orderEntry type="library" name="Maven: net.java.dev.jna:jna-platform:4.5.0" level="project" />
     <orderEntry type="library" name="Maven: com.itextpdf:itextpdf:5.5.13" level="project" />
diff --git a/PlayWall/pom.xml b/PlayWall/pom.xml
index 9fe7d4b3..c68fa069 100644
--- a/PlayWall/pom.xml
+++ b/PlayWall/pom.xml
@@ -170,6 +170,11 @@
             <artifactId>PlayWallCore</artifactId>
             <version>1.0.1</version>
         </dependency>
+        <dependency>
+            <groupId>de.tobias</groupId>
+            <artifactId>PlayWallCompoents</artifactId>
+            <version>1.0.0</version>
+        </dependency>
 
         <dependency>
             <groupId>net.java.dev.jna</groupId>
diff --git a/PlayWall/src/main/java/de/tobias/playpad/PlayPadImpl.java b/PlayWall/src/main/java/de/tobias/playpad/PlayPadImpl.java
index 379a2b35..c567a02b 100644
--- a/PlayWall/src/main/java/de/tobias/playpad/PlayPadImpl.java
+++ b/PlayWall/src/main/java/de/tobias/playpad/PlayPadImpl.java
@@ -243,4 +243,9 @@ public class PlayPadImpl implements PlayPad {
 	public Session getSession() {
 		return session;
 	}
+
+	@Override
+	public ResourceBundle getUIResourceBundle() {
+		return PlayPadMain.getUiResourceBundle();
+	}
 }
diff --git a/PlayWallComponents/pom.xml b/PlayWallComponents/pom.xml
index fb228b51..424b87ff 100644
--- a/PlayWallComponents/pom.xml
+++ b/PlayWallComponents/pom.xml
@@ -8,5 +8,24 @@
     <artifactId>PlayWallCompoents</artifactId>
     <version>1.0.0</version>
 
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>8</source>
+                    <target>8</target>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
 
+    <dependencies>
+        <dependency>
+            <groupId>de.tobias</groupId>
+            <artifactId>PlayWallCore</artifactId>
+            <version>1.0.1</version>
+        </dependency>
+    </dependencies>
 </project>
\ No newline at end of file
diff --git a/PlayWall/src/main/java/de/tobias/playpad/audio/JavaFXAudioHandler.java b/PlayWallComponents/src/main/java/de/tobias/playpad/audio/JavaFXAudioHandler.java
similarity index 100%
rename from PlayWall/src/main/java/de/tobias/playpad/audio/JavaFXAudioHandler.java
rename to PlayWallComponents/src/main/java/de/tobias/playpad/audio/JavaFXAudioHandler.java
diff --git a/PlayWall/src/main/java/de/tobias/playpad/audio/JavaFXHandlerFactory.java b/PlayWallComponents/src/main/java/de/tobias/playpad/audio/JavaFXHandlerFactory.java
similarity index 100%
rename from PlayWall/src/main/java/de/tobias/playpad/audio/JavaFXHandlerFactory.java
rename to PlayWallComponents/src/main/java/de/tobias/playpad/audio/JavaFXHandlerFactory.java
diff --git a/PlayWall/src/main/java/de/tobias/playpad/audio/TinyAudioHandler.java b/PlayWallComponents/src/main/java/de/tobias/playpad/audio/TinyAudioHandler.java
similarity index 100%
rename from PlayWall/src/main/java/de/tobias/playpad/audio/TinyAudioHandler.java
rename to PlayWallComponents/src/main/java/de/tobias/playpad/audio/TinyAudioHandler.java
diff --git a/PlayWall/src/main/java/de/tobias/playpad/audio/TinyAudioHandlerFactory.java b/PlayWallComponents/src/main/java/de/tobias/playpad/audio/TinyAudioHandlerFactory.java
similarity index 94%
rename from PlayWall/src/main/java/de/tobias/playpad/audio/TinyAudioHandlerFactory.java
rename to PlayWallComponents/src/main/java/de/tobias/playpad/audio/TinyAudioHandlerFactory.java
index 107922eb..9375d339 100644
--- a/PlayWall/src/main/java/de/tobias/playpad/audio/TinyAudioHandlerFactory.java
+++ b/PlayWallComponents/src/main/java/de/tobias/playpad/audio/TinyAudioHandlerFactory.java
@@ -1,8 +1,8 @@
 package de.tobias.playpad.audio;
 
+import de.tobias.playpad.audio.viewcontroller.TinySoundSettingsViewController;
 import de.tobias.playpad.pad.content.PadContent;
 import de.tobias.playpad.viewcontroller.AudioHandlerViewController;
-import de.tobias.playpad.viewcontroller.audio.TinySoundSettingsViewController;
 
 public class TinyAudioHandlerFactory extends AudioHandlerFactory implements AutoCloseable {
 
diff --git a/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/audio/TinySoundSettingsViewController.java b/PlayWallComponents/src/main/java/de/tobias/playpad/audio/viewcontroller/TinySoundSettingsViewController.java
similarity index 96%
rename from PlayWall/src/main/java/de/tobias/playpad/viewcontroller/audio/TinySoundSettingsViewController.java
rename to PlayWallComponents/src/main/java/de/tobias/playpad/audio/viewcontroller/TinySoundSettingsViewController.java
index 313639d2..76d50d3f 100644
--- a/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/audio/TinySoundSettingsViewController.java
+++ b/PlayWallComponents/src/main/java/de/tobias/playpad/audio/viewcontroller/TinySoundSettingsViewController.java
@@ -1,6 +1,6 @@
-package de.tobias.playpad.viewcontroller.audio;
+package de.tobias.playpad.audio.viewcontroller;
 
-import de.tobias.playpad.PlayPadMain;
+import de.tobias.playpad.PlayPadPlugin;
 import de.tobias.playpad.audio.TinyAudioHandler;
 import de.tobias.playpad.profile.Profile;
 import de.tobias.playpad.viewcontroller.AudioHandlerViewController;
@@ -35,7 +35,7 @@ public class TinySoundSettingsViewController extends AudioHandlerViewController
 	private Clip clip;
 
 	public TinySoundSettingsViewController() {
-		super("tinySoundSettings", "de/tobias/playpad/assets/view/audio/", PlayPadMain.getUiResourceBundle());
+		super("tinySoundSettings", "de/tobias/playpad/assets/view/audio/", PlayPadPlugin.getImplementation().getUIResourceBundle());
 
 		// Mixer (ohne Port)
 		List<Info> infos = Arrays.stream(AudioSystem.getMixerInfo()).filter(info -> !info.getName().startsWith("Port"))
diff --git a/PlayWall/src/main/java/de/tobias/playpad/midi/PD12.java b/PlayWallComponents/src/main/java/de/tobias/playpad/midi/PD12.java
similarity index 100%
rename from PlayWall/src/main/java/de/tobias/playpad/midi/PD12.java
rename to PlayWallComponents/src/main/java/de/tobias/playpad/midi/PD12.java
diff --git a/PlayWall/src/main/resources/components/AudioHandler.xml b/PlayWallComponents/src/main/resources/components/AudioHandler.xml
similarity index 100%
rename from PlayWall/src/main/resources/components/AudioHandler.xml
rename to PlayWallComponents/src/main/resources/components/AudioHandler.xml
diff --git a/PlayWallCore/src/main/java/de/tobias/playpad/PlayPad.java b/PlayWallCore/src/main/java/de/tobias/playpad/PlayPad.java
index e47db5ef..2cb51720 100644
--- a/PlayWallCore/src/main/java/de/tobias/playpad/PlayPad.java
+++ b/PlayWallCore/src/main/java/de/tobias/playpad/PlayPad.java
@@ -10,6 +10,7 @@ import javafx.scene.image.Image;
 
 import java.util.List;
 import java.util.Optional;
+import java.util.ResourceBundle;
 
 /**
  * Hauptfunktionen für Listener und zur Programmsteuerung für Plugins.
@@ -19,6 +20,8 @@ import java.util.Optional;
  */
 public interface PlayPad {
 
+	ResourceBundle getUIResourceBundle();
+
 	/**
 	 * Fügt einen Listener für das Hauptfenster hinzu.
 	 *
-- 
GitLab