diff --git a/src/main/java/kst4contest/controller/MessageBusManagementThread.java b/src/main/java/kst4contest/controller/MessageBusManagementThread.java
index df3c200..8e3a1c6 100644
--- a/src/main/java/kst4contest/controller/MessageBusManagementThread.java
+++ b/src/main/java/kst4contest/controller/MessageBusManagementThread.java
@@ -563,6 +563,13 @@ public class MessageBusManagementThread extends Thread {
this.client.getPlayAudioUtils().playVoiceLauncher( "?" + newMessage.getSender().getCallSign().toUpperCase());
}
+ if (this.client.getChatPreferences().isNotify_playSimpleSounds()) {
+ if (newMessage.getMessageText().toUpperCase().contains("//BELL")) {
+ this.client.getPlayAudioUtils().playVoiceLauncher("!");
+ }
+ }
+
+
System.out.println("message directed to me: " + newMessage.getReceiver().getCallSign() + ".");
} else if (newMessage.getSender().getCallSign().toUpperCase()
diff --git a/src/main/java/kst4contest/utils/PlayAudioUtils.java b/src/main/java/kst4contest/utils/PlayAudioUtils.java
index 1c07df9..3d17294 100644
--- a/src/main/java/kst4contest/utils/PlayAudioUtils.java
+++ b/src/main/java/kst4contest/utils/PlayAudioUtils.java
@@ -2,6 +2,7 @@ package kst4contest.utils;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
+import kst4contest.ApplicationConstants;
import java.io.File;
import java.util.Arrays;
@@ -11,27 +12,104 @@ import java.util.Queue;
/**
* This part of the client drives the sounds. Its a singleton instance. All audio outs are directed to this instance.
*
- * Instance of this classes will use the audio-notification-settings of the ChatPreferences instance and then wheter
- * play a sound or not. Each method of this class will only cause an audio output if the settings for audio-out are
- * made. This is good for less typing work. If audio is switched off by the user, all audio out callings will do:
- * nothing.
- *
- */
+ * */
public class PlayAudioUtils {
-// public boolean useNormalProgramSounds, useCWCallSignSounds, useVoiceCallSignSounds;
+ /**
+ * Default constructor initializes the sound files and copies it to the project home folder
+ */
+ public PlayAudioUtils() {
-// public void setUseNormalProgramSounds(boolean useNormalProgramSounds) {
-// this.useNormalProgramSounds = useNormalProgramSounds;
-// }
-//
-// public void setUseCWCallSignSounds(boolean useCWCallSignSounds) {
-// this.useCWCallSignSounds = useCWCallSignSounds;
-// }
-//
-// public void setUseVoiceCallSignSounds(boolean useVoiceCallSignSounds) {
-// this.useVoiceCallSignSounds = useVoiceCallSignSounds;
-// }
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/NOISESTARTUP.mp3", "NOISESTARTUP.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/NOISECQWINDOW.mp3", "NOISECQWINDOW.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/NOISEPMWINDOW.mp3", "NOISEPMWINDOW.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/NOISEERROR.mp3", "NOISEERROR.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/NOISENOTIFY.mp3", "NOISENOTIFY.mp3");
+
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTRA.mp3", "LTTRA.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTRB.mp3", "LTTRB.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTRC.mp3", "LTTRC.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTRD.mp3", "LTTRD.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTRE.mp3", "LTTRE.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTRF.mp3", "LTTRF.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTRG.mp3", "LTTRG.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTRH.mp3", "LTTRH.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTRI.mp3", "LTTRI.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTRJ.mp3", "LTTRJ.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTRK.mp3", "LTTRK.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTRL.mp3", "LTTRL.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTRM.mp3", "LTTRM.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTRN.mp3", "LTTRN.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTRO.mp3", "LTTRO.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTRP.mp3", "LTTRP.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTRQ.mp3", "LTTRQ.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTRR.mp3", "LTTRR.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTRS.mp3", "LTTRS.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTRT.mp3", "LTTRT.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTRU.mp3", "LTTRU.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTRV.mp3", "LTTRV.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTRW.mp3", "LTTRW.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTRX.mp3", "LTTRX.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTRY.mp3", "LTTRY.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTRZ.mp3", "LTTRZ.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTR0.mp3", "LTTR0.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTR1.mp3", "LTTR1.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTR2.mp3", "LTTR2.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTR3.mp3", "LTTR3.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTR4.mp3", "LTTR4.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTR5.mp3", "LTTR5.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTR6.mp3", "LTTR6.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTR7.mp3", "LTTR7.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTR8.mp3", "LTTR8.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTR9.mp3", "LTTR9.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTRSTROKE.mp3", "LTTRSTROKE.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTRSPACE.mp3", "LTTRSPACE.mp3");
+
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICEA.mp3", "VOICEA.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICEB.mp3", "VOICEB.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICEC.mp3", "VOICEC.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICED.mp3", "VOICED.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICEE.mp3", "VOICEE.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICEF.mp3", "VOICEF.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICEG.mp3", "VOICEG.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICEH.mp3", "VOICEH.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICEI.mp3", "VOICEI.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICEJ.mp3", "VOICEJ.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICEK.mp3", "VOICEK.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICEL.mp3", "VOICEL.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICEM.mp3", "VOICEM.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICEN.mp3", "VOICEN.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICEO.mp3", "VOICEO.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICEP.mp3", "VOICEP.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICEQ.mp3", "VOICEQ.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICER.mp3", "VOICER.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICES.mp3", "VOICES.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICET.mp3", "VOICET.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICEU.mp3", "VOICEU.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICEV.mp3", "VOICEV.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICEW.mp3", "VOICEW.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICEX.mp3", "VOICEX.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICEY.mp3", "VOICEY.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICEZ.mp3", "VOICEZ.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICE0.mp3", "VOICE0.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICE1.mp3", "VOICE1.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICE2.mp3", "VOICE2.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICE3.mp3", "VOICE3.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICE4.mp3", "VOICE4.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICE5.mp3", "VOICE5.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICE6.mp3", "VOICE6.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICE7.mp3", "VOICE7.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICE8.mp3", "VOICE8.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICE9.mp3", "VOICE9.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICESTROKE.mp3", "VOICESTROKE.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICEBELL.mp3", "VOICEBELL.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICEYOUGOTMAIL.mp3", "VOICEYOUGOTMAIL.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICEHELLO.mp3", "VOICEHELLO.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICE73.mp3", "VOICE73.mp3");
+ ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/VOICESTROKEPORTABLE.mp3", "VOICESTROKEPORTABLE.mp3");
+
+
+ }
private Queue musicList = new LinkedList();
private MediaPlayer mediaPlayer ;
@@ -39,7 +117,7 @@ public class PlayAudioUtils {
/**
* Plays notification sounds out of the windws 95 box by given action character
*
- * Note that the audio settings (ChatPreferences) must be switched on in order to make the sounds playing.
+ *
* case '!': Startup
* case 'C': CQ Window new entry
* case 'P': PM Window new entry
@@ -50,21 +128,26 @@ public class PlayAudioUtils {
*/
public void playNoiseLauncher(char actionChar) {
+
+
+// ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/NOISESTARTUP.mp3");
+
+
switch (actionChar){
case '!':
- musicList.add(new Media(new File ("NOISESTARTUP.mp3").toURI().toString()));
+ musicList.add(new Media(new File (ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/NOISESTARTUP.mp3")).toURI().toString()));
break;
case 'C':
- musicList.add(new Media(new File ("NOISECQWINDOW.mp3").toURI().toString()));
+ musicList.add(new Media(new File (ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/NOISECQWINDOW.mp3")).toURI().toString()));
break;
case 'P':
- musicList.add(new Media(new File ("NOISEPMWINDOW.mp3").toURI().toString()));
+ musicList.add(new Media(new File (ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/NOISEPMWINDOW.mp3")).toURI().toString()));
break;
case 'E':
- musicList.add(new Media(new File ("NOISEERROR.mp3").toURI().toString()));
+ musicList.add(new Media(new File (ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/NOISEERROR.mp3")).toURI().toString()));
break;
case 'N':
- musicList.add(new Media(new File ("NOISENOTIFY.mp3").toURI().toString()));
+ musicList.add(new Media(new File (ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/NOISENOTIFY.mp3")).toURI().toString()));
break;
// case 'M':
// musicList.add(new Media(new File ("VOICE.mp3").toURI().toString()));
@@ -83,7 +166,7 @@ public class PlayAudioUtils {
/**
* Plays all chars of a given String-parameter as CW Sound out of the speaker.
* As a workaround for delay problems at the beginning of playing, there are added 2x pause chars to the string.
- * Note that the audio settings (ChatPreferences) must be switched on in order to make the sounds playing.
+ *
* @param playThisChars
*/
public void playCWLauncher(String playThisChars) {
@@ -94,118 +177,118 @@ public class PlayAudioUtils {
for (char letterToPlay: playThisInCW){
switch (letterToPlay){
case 'A':
- musicList.add(new Media(new File("LTTRA.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTRA.mp3")).toURI().toString()));
break;
case 'B':
- musicList.add(new Media(new File ("LTTRB.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTRB.mp3")).toURI().toString()));
break;
case 'C':
- musicList.add(new Media(new File ("LTTRC.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTRC.mp3")).toURI().toString()));
break;
case 'D':
- musicList.add(new Media(new File ("LTTRD.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTRD.mp3")).toURI().toString()));
break;
case 'E':
- musicList.add(new Media(new File ("LTTRE.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTRE.mp3")).toURI().toString()));
break;
case 'F':
- musicList.add(new Media(new File ("LTTRF.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTRF.mp3")).toURI().toString()));
break;
case 'G':
- musicList.add(new Media(new File ("LTTRG.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTRG.mp3")).toURI().toString()));
break;
case 'H':
- musicList.add(new Media(new File ("LTTRH.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTRH.mp3")).toURI().toString()));
break;
case 'I':
- musicList.add(new Media(new File ("LTTRI.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTRI.mp3")).toURI().toString()));
break;
case 'J':
- musicList.add(new Media(new File ("LTTRJ.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTRJ.mp3")).toURI().toString()));
break;
case 'K':
- musicList.add(new Media(new File ("LTTRK.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTRK.mp3")).toURI().toString()));
break;
case 'L':
- musicList.add(new Media(new File ("LTTRL.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTRL.mp3")).toURI().toString()));
break;
case 'M':
- musicList.add(new Media(new File ("LTTRM.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTRM.mp3")).toURI().toString()));
break;
case 'N':
- musicList.add(new Media(new File ("LTTRN.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTRN.mp3")).toURI().toString()));
break;
case 'O':
- musicList.add(new Media(new File ("LTTRO.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTRO.mp3")).toURI().toString()));
break;
case 'P':
- musicList.add(new Media(new File ("LTTRP.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTRP.mp3")).toURI().toString()));
break;
case 'Q':
- musicList.add(new Media(new File ("LTTRQ.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTRQ.mp3")).toURI().toString()));
break;
case 'R':
- musicList.add(new Media(new File ("LTTRR.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTRR.mp3")).toURI().toString()));
break;
case 'S':
- musicList.add(new Media(new File ("LTTRS.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTRS.mp3")).toURI().toString()));
break;
case 'T':
- musicList.add(new Media(new File ("LTTRT.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTRT.mp3")).toURI().toString()));
break;
case 'U':
- musicList.add(new Media(new File ("LTTRU.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTRU.mp3")).toURI().toString()));
break;
case 'V':
- musicList.add(new Media(new File ("LTTRV.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTRV.mp3")).toURI().toString()));
break;
case 'W':
- musicList.add(new Media(new File ("LTTRW.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTRW.mp3")).toURI().toString()));
break;
case 'X':
- musicList.add(new Media(new File ("LTTRX.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTRX.mp3")).toURI().toString()));
break;
case 'Y':
- musicList.add(new Media(new File ("LTTRY.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTRY.mp3")).toURI().toString()));
break;
case 'Z':
- musicList.add(new Media(new File ("LTTRZ.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTRZ.mp3")).toURI().toString()));
break;
case '1':
- musicList.add(new Media(new File ("LTTR1.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTR1.mp3")).toURI().toString()));
break;
case '2':
- musicList.add(new Media(new File ("LTTR2.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTR2.mp3")).toURI().toString()));
break;
case '3':
- musicList.add(new Media(new File ("LTTR3.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTR3.mp3")).toURI().toString()));
break;
case '4':
- musicList.add(new Media(new File ("LTTR4.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTR4.mp3")).toURI().toString()));
break;
case '5':
- musicList.add(new Media(new File ("LTTR5.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTR5.mp3")).toURI().toString()));
break;
case '6':
- musicList.add(new Media(new File ("LTTR6.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTR6.mp3")).toURI().toString()));
break;
case '7':
- musicList.add(new Media(new File ("LTTR7.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTR7.mp3")).toURI().toString()));
break;
case '8':
- musicList.add(new Media(new File ("LTTR8.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTR8.mp3")).toURI().toString()));
break;
case '9':
- musicList.add(new Media(new File ("LTTR9.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTR9.mp3")).toURI().toString()));
break;
case '0':
- musicList.add(new Media(new File ("LTTR0.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTR0.mp3")).toURI().toString()));
break;
case '/':
- musicList.add(new Media(new File ("LTTRSTROKE.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTRSTROKE.mp3")).toURI().toString()));
break;
case ' ':
- musicList.add(new Media(new File ("LTTRSPACE.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/LTTRSPACE.mp3")).toURI().toString()));
break;
default:
System.out.println("[KST4ContestApp, warning, letter not defined:] cwLetters = " + Arrays.toString(playThisInCW));
@@ -229,141 +312,141 @@ public class PlayAudioUtils {
*/
public void playVoiceLauncher(String playThisChars) {
- char[] playThisInCW = playThisChars.toUpperCase().toCharArray();
+ char[] spellThisWithVoice = playThisChars.toUpperCase().toCharArray();
- for (char letterToPlay: playThisInCW){
+ for (char letterToPlay: spellThisWithVoice){
switch (letterToPlay){
case '!':
- musicList.add(new Media(new File ("VOICEBELL.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICEBELL.mp3")).toURI().toString()));
break;
case '?':
- musicList.add(new Media(new File ("VOICEYOUGOTMAIL.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICEYOUGOTMAIL.mp3")).toURI().toString()));
break;
case '#':
- musicList.add(new Media(new File ("VOICEHELLO.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICEHELLO.mp3")).toURI().toString()));
break;
case '*':
- musicList.add(new Media(new File ("VOICE73.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICE73.mp3")).toURI().toString()));
break;
case '$':
- musicList.add(new Media(new File ("VOICESTROKEPORTABLE.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICESTROKEPORTABLE.mp3")).toURI().toString()));
break;
case 'A':
- musicList.add(new Media(new File ("VOICEA.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICEA.mp3")).toURI().toString()));
break;
case 'B':
- musicList.add(new Media(new File ("VOICEB.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICEB.mp3")).toURI().toString()));
break;
case 'C':
- musicList.add(new Media(new File ("VOICEC.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICEC.mp3")).toURI().toString()));
break;
case 'D':
- musicList.add(new Media(new File ("VOICED.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICED.mp3")).toURI().toString()));
break;
case 'E':
- musicList.add(new Media(new File ("VOICEE.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICEE.mp3")).toURI().toString()));
break;
case 'F':
- musicList.add(new Media(new File ("VOICEF.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICEF.mp3")).toURI().toString()));
break;
case 'G':
- musicList.add(new Media(new File ("VOICEG.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICEG.mp3")).toURI().toString()));
break;
case 'H':
- musicList.add(new Media(new File ("VOICEH.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICEH.mp3")).toURI().toString()));
break;
case 'I':
- musicList.add(new Media(new File ("VOICEI.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICEI.mp3")).toURI().toString()));
break;
case 'J':
- musicList.add(new Media(new File ("VOICEJ.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICEJ.mp3")).toURI().toString()));
break;
case 'K':
- musicList.add(new Media(new File ("VOICEK.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICEK.mp3")).toURI().toString()));
break;
case 'L':
- musicList.add(new Media(new File ("VOICEL.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICEL.mp3")).toURI().toString()));
break;
case 'M':
- musicList.add(new Media(new File ("VOICEM.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICEM.mp3")).toURI().toString()));
break;
case 'N':
- musicList.add(new Media(new File ("VOICEN.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICEN.mp3")).toURI().toString()));
break;
case 'O':
- musicList.add(new Media(new File ("VOICEO.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICEO.mp3")).toURI().toString()));
break;
case 'P':
- musicList.add(new Media(new File ("VOICEP.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICEP.mp3")).toURI().toString()));
break;
case 'Q':
- musicList.add(new Media(new File ("VOICEQ.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICEQ.mp3")).toURI().toString()));
break;
case 'R':
- musicList.add(new Media(new File ("VOICER.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICER.mp3")).toURI().toString()));
break;
case 'S':
- musicList.add(new Media(new File ("VOICES.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICES.mp3")).toURI().toString()));
break;
case 'T':
- musicList.add(new Media(new File ("VOICET.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICET.mp3")).toURI().toString()));
break;
case 'U':
- musicList.add(new Media(new File ("VOICEU.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICEU.mp3")).toURI().toString()));
break;
case 'V':
- musicList.add(new Media(new File ("VOICEV.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICEV.mp3")).toURI().toString()));
break;
case 'W':
- musicList.add(new Media(new File ("VOICEW.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICEW.mp3")).toURI().toString()));
break;
case 'X':
- musicList.add(new Media(new File ("VOICEX.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICEX.mp3")).toURI().toString()));
break;
case 'Y':
- musicList.add(new Media(new File ("VOICEY.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICEY.mp3")).toURI().toString()));
break;
case 'Z':
- musicList.add(new Media(new File ("VOICEZ.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICEZ.mp3")).toURI().toString()));
break;
case '1':
- musicList.add(new Media(new File ("VOICE1.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICE1.mp3")).toURI().toString()));
break;
case '2':
- musicList.add(new Media(new File ("VOICE2.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICE2.mp3")).toURI().toString()));
break;
case '3':
- musicList.add(new Media(new File ("VOICE3.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICE3.mp3")).toURI().toString()));
break;
case '4':
- musicList.add(new Media(new File ("VOICE4.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICE4.mp3")).toURI().toString()));
break;
case '5':
- musicList.add(new Media(new File ("VOICE5.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICE5.mp3")).toURI().toString()));
break;
case '6':
- musicList.add(new Media(new File ("VOICE6.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICE6.mp3")).toURI().toString()));
break;
case '7':
- musicList.add(new Media(new File ("VOICE7.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICE7.mp3")).toURI().toString()));
break;
case '8':
- musicList.add(new Media(new File ("VOICE8.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICE8.mp3")).toURI().toString()));
break;
case '9':
- musicList.add(new Media(new File ("VOICE9.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICE9.mp3")).toURI().toString()));
break;
case '0':
- musicList.add(new Media(new File ("VOICE0.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICE0.mp3")).toURI().toString()));
break;
case '/':
- musicList.add(new Media(new File ("VOICESTROKE.mp3").toURI().toString()));
+ musicList.add(new Media(new File(ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/VOICESTROKE.mp3")).toURI().toString()));
break;
// case ' ':
// musicList.add(new Media(new File ("VOICESPACE.mp3").toURI().toString()));
// break;
default:
- System.out.println("[KST4ContestApp, warning, letter not defined:] cwLetters = " + Arrays.toString(playThisInCW));
+ System.out.println("[KST4ContestApp, warning, letter not defined:] cwLetters = " + Arrays.toString(spellThisWithVoice));
}
}
playMusic();
diff --git a/src/test/java/kst4contest/test/TestAudioPlayerUtils.java b/src/main/java/kst4contest/utils/TestAudioPlayerUtils.java
similarity index 93%
rename from src/test/java/kst4contest/test/TestAudioPlayerUtils.java
rename to src/main/java/kst4contest/utils/TestAudioPlayerUtils.java
index 4ca6b75..def1fde 100644
--- a/src/test/java/kst4contest/test/TestAudioPlayerUtils.java
+++ b/src/main/java/kst4contest/utils/TestAudioPlayerUtils.java
@@ -1,4 +1,4 @@
-package kst4contest.test;
+package kst4contest.utils;
import javafx.application.Application;
import javafx.stage.Stage;
diff --git a/src/main/java/kst4contest/view/Kst4ContestApplication.java b/src/main/java/kst4contest/view/Kst4ContestApplication.java
index ba43cef..df97725 100644
--- a/src/main/java/kst4contest/view/Kst4ContestApplication.java
+++ b/src/main/java/kst4contest/view/Kst4ContestApplication.java
@@ -2445,8 +2445,6 @@ public class Kst4ContestApplication extends Application {
.getSelectionModel();
privateChatselectionModelChatMessage.setSelectionMode(SelectionMode.SINGLE);
-// tbl_chatMember.getda
-
ObservableList selectedChatMessageList = privateChatselectionModelChatMessage
.getSelectedItems();
selectedChatMessageList.addListener(new ListChangeListener() {
@@ -2456,13 +2454,34 @@ public class Kst4ContestApplication extends Application {
// do nothing, that was a deselection-event!
} else {
- txt_chatMessageUserInput.clear();
- txt_chatMessageUserInput.setText("/cq "
- + selectedChatMemberPrivateChat.getList().get(0).getSender().getCallSign() + " ");
- System.out.println("privChat selected ChatMember: "
- + selectedChatMemberPrivateChat.getList().get(0).getSender());
- // selectedChatMemberList.clear();
+ /**
+ * We need a special trick here. Since the private message list is a messagelist only for my own callsign, it´s not useful to show a sender and receiver.
+ * But if you choose a line with a message which you sent do another station, the default mechanism will type "/cq MYOWNCALL" to the textfield and if you are sleepy,
+ * you wouldnt remark that you sent a message to yourself. Thatswhy the rx-callsign (in brackets) will be extracted out of your sended message and added to the sendmessage-field.
+ * Thats what happening in line with //here1
+ * Your own sent texts will look like this:
+ *
+ * (>ON4KST) Hi team! Nice to meet you
+ *
+ */
+
+ if (selectedChatMemberPrivateChat.getList().get(0).getSender().getCallSign().equals(chatcontroller.getChatPreferences().getLoginCallSign()) ) {
+ System.out.println("privChat selected ChatMember: was own object..." + "rx was: " + selectedChatMemberPrivateChat.getList().get(0).getMessageText().substring(2,(selectedChatMemberPrivateChat.getList().get(0).getMessageText().indexOf(")"))));
+
+ txt_chatMessageUserInput.clear();
+ txt_chatMessageUserInput.setText("/cq "
+ + selectedChatMemberPrivateChat.getList().get(0).getMessageText().substring(2,(selectedChatMemberPrivateChat.getList().get(0).getMessageText().indexOf(")"))) + " "); //here1
+
+ } else {
+
+ txt_chatMessageUserInput.clear();
+ txt_chatMessageUserInput.setText("/cq "
+ + selectedChatMemberPrivateChat.getList().get(0).getSender().getCallSign() + " ");
+ System.out.println("privChat selected ChatMember: "
+ + selectedChatMemberPrivateChat.getList().get(0).getSender());
+ // selectedChatMemberList.clear();
// selectionModelChatMember.clearSelection(0);
+ }
}
}
});
@@ -2480,8 +2499,52 @@ public class Kst4ContestApplication extends Application {
}
}, new Date(), 5000);
+
+ TableView tbl_generalMessageTable = new TableView();
+ tbl_generalMessageTable = initChatGeneralMSGTable();
+
+ tbl_generalMessageTable.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler() {
+
+ @Override
+ public void handle(MouseEvent t) {
+ if (t.getButton() == MouseButton.SECONDARY) {
+ chatMemberContextMenu.show(primaryStage, t.getScreenX(), t.getScreenY());
+
+ }
+ }
+ });
+
+ TableViewSelectionModel generalChatselectionModelChatMessage = tbl_generalMessageTable
+ .getSelectionModel();
+ privateChatselectionModelChatMessage.setSelectionMode(SelectionMode.SINGLE);
+
+ ObservableList selectedChatMessageListGeneralChat = generalChatselectionModelChatMessage
+ .getSelectedItems();
+ selectedChatMessageListGeneralChat.addListener(new ListChangeListener() {
+ @Override
+ public void onChanged(Change extends ChatMessage> selectedChatMemberGeneralChat) {
+ if (generalChatselectionModelChatMessage.getSelectedItems().isEmpty()) {
+ // do nothing, that was a deselection-event!
+ } else {
+
+ txt_chatMessageUserInput.clear();
+ txt_chatMessageUserInput.setText("/cq "
+ + selectedChatMemberGeneralChat.getList().get(0).getSender().getCallSign() + " ");
+ System.out.println("privChat selected ChatMember: "
+ + selectedChatMemberGeneralChat.getList().get(0).getSender());
+ // selectedChatMemberList.clear();
+// selectionModelChatMember.clearSelection(0);
+ }
+ }
+ });
+
+
+
messageSectionSplitpane.getItems().addAll(privateMessageTable, flwPane_textSnippets, textInputFlowPane,
- initChatGeneralMSGTable());
+ tbl_generalMessageTable);
+ //Changed to add contextmenu to cq message table
+// messageSectionSplitpane.getItems().addAll(privateMessageTable, flwPane_textSnippets, textInputFlowPane,
+// initChatGeneralMSGTable());
bPaneChatWindow.setCenter(mainWindowLeftSplitPane);