branch feature/7063 created (now 29713dd)
This is an automated email from the git hooks/post-receive script. New change to branch feature/7063 in repository tutti. See http://git.codelutin.com/tutti.git at 29713dd génération et lecture de bips + ajout d'une option pour configurer la tonalité du bip à jouer (refs #7063) This branch includes the following new commits: new 29713dd génération et lecture de bips + ajout d'une option pour configurer la tonalité du bip à jouer (refs #7063) The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 29713dd3bab1eb3d18595d53e4b4c92bb2695a2d Author: Kevin Morin <morin@codelutin.com> Date: Thu Jan 7 12:32:46 2016 +0100 génération et lecture de bips + ajout d'une option pour configurer la tonalité du bip à jouer (refs #7063) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/7063 in repository tutti. See http://git.codelutin.com/tutti.git commit 29713dd3bab1eb3d18595d53e4b4c92bb2695a2d Author: Kevin Morin <morin@codelutin.com> Date: Thu Jan 7 12:32:46 2016 +0100 génération et lecture de bips + ajout d'une option pour configurer la tonalité du bip à jouer (refs #7063) --- .../java/fr/ifremer/tutti/TuttiConfiguration.java | 5 +++ .../fr/ifremer/tutti/TuttiConfigurationOption.java | 8 +++++ .../java/fr/ifremer/tutti/util/BeepFrequency.java | 33 +++++++++++++++++ .../i18n/tutti-persistence_en_GB.properties | 1 + .../i18n/tutti-persistence_fr_FR.properties | 1 + .../swing/content/config/TuttiConfigUIHandler.java | 2 ++ .../fr/ifremer/tutti/ui/swing/util/SoundUtil.java | 42 ++++++++++++++++++++++ .../resources/i18n/tutti-ui-swing_en_GB.properties | 1 + .../resources/i18n/tutti-ui-swing_fr_FR.properties | 1 + 9 files changed, 94 insertions(+) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfiguration.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfiguration.java index 4dcd244..048a747 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfiguration.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfiguration.java @@ -28,6 +28,7 @@ import fr.ifremer.adagio.core.config.AdagioConfigurationOption; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; import fr.ifremer.tutti.type.CoordinateEditorType; import fr.ifremer.tutti.type.WeightUnit; +import fr.ifremer.tutti.util.BeepFrequency; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.logging.Log; @@ -723,6 +724,10 @@ public class TuttiConfiguration extends ApplicationConfiguration { return applicationConfig.getOptionAsInt(TuttiConfigurationOption.ICHTYOMETER_MAXIMUM_NUMBER_OF_ATTEMPT_TO_CONNECT.getKey()); } + public BeepFrequency getBeepFrequency() { + return (BeepFrequency) applicationConfig.getOptionAsObject(TuttiConfigurationOption.BEEP_FREQUENCY.getKey()); + } + public String getJavaCommandPath() { String path; String commandName = windowsOS ? "java.exe" : "java"; diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfigurationOption.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfigurationOption.java index 1beeb5b..4e3b9fa 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfigurationOption.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/TuttiConfigurationOption.java @@ -25,6 +25,7 @@ package fr.ifremer.tutti; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; import fr.ifremer.tutti.type.CoordinateEditorType; import fr.ifremer.tutti.type.WeightUnit; +import fr.ifremer.tutti.util.BeepFrequency; import org.hibernate.dialect.HSQLDialect; import org.hsqldb.jdbcDriver; import org.nuiton.config.ConfigOptionDef; @@ -595,6 +596,13 @@ public enum TuttiConfigurationOption implements ConfigOptionDef { "5", int.class, false + ), + BEEP_FREQUENCY( + "tutti.ichtyometer.beepFrequency", + n("tutti.config.option.beepFrequency.description"), + BeepFrequency.A2.toString(), + BeepFrequency.class, + false ); /** Configuration key. */ diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/util/BeepFrequency.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/util/BeepFrequency.java new file mode 100644 index 0000000..c298836 --- /dev/null +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/util/BeepFrequency.java @@ -0,0 +1,33 @@ +package fr.ifremer.tutti.util; + +/** + * @author Kevin Morin (Code Lutin) + * @since 4.3 + */ +public enum BeepFrequency { + + A1(880), + B1(987), + C1(1046), + D1(1174), + E1(1318), + F1(1396), + G1(1567), + A2(1760), + B2(1975), + C2(2093), + D2(2349), + E2(2637), + F2(2793), + G2(3135); + + private int frequency; + + BeepFrequency(int frequency) { + this.frequency = frequency; + } + + public int getFrequency() { + return frequency; + } +} diff --git a/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties b/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties index 0d2bf90..b27792a 100644 --- a/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties +++ b/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties @@ -9,6 +9,7 @@ tutti.caracteristicType.lengthStep= tutti.caracteristicType.vesselUseFeature= tutti.config= tutti.config.option.basedir.description= +tutti.config.option.beepFrequency.description= tutti.config.option.cruiseId.description= tutti.config.option.csv.separator.description= tutti.config.option.data.directory.description= diff --git a/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties b/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties index 935293d..b08c95c 100644 --- a/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties +++ b/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties @@ -5,6 +5,7 @@ application.common.unit.short.g=g application.common.unit.short.kg=kg tutti.config=Configuration d'Allegro Campagne tutti.config.option.basedir.description=Répertoire principale +tutti.config.option.beepFrequency.description=Tonalité du bip tutti.config.option.cruiseId.description=Identifiant de la dernière campagne utilisée tutti.config.option.csv.separator.description=Caractère séparateur pour les import / export de fichier au format csv. tutti.config.option.data.directory.description=Répertoire de données de l'application. Vous pouvez utiliser l'expression ${tutti.data.directory} pour le référence dans d'autres propriétés de configuration (ex\: ${tutti.data.directory}/tmp). diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java index 8592b5b..e7c99eb 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java @@ -140,6 +140,8 @@ public class TuttiConfigUIHandler extends AbstractTuttiUIHandler<TuttiUIContext, .addOption(TuttiConfigurationOption.ICHTYOMETER_MAXIMUM_NUMBER_OF_ATTEMPT_TO_CONNECT) .setOptionShortLabel(t("tutti.config.option.ui.ichtyometerMaximumNumberOfAttemptToConnect.shortLabel")) + .addOption(TuttiConfigurationOption.BEEP_FREQUENCY) + .setOptionShortLabel(t("tutti.config.option.ui.beepFrequency.shortLabel")) .addOption(TuttiConfigurationOption.SHOW_BATCH_LOG) .setOptionShortLabel(t("tutti.config.option.ui.showBatchLog.shortLabel")) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/SoundUtil.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/SoundUtil.java new file mode 100644 index 0000000..7804f01 --- /dev/null +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/SoundUtil.java @@ -0,0 +1,42 @@ +package fr.ifremer.tutti.ui.swing.util; + +import fr.ifremer.tutti.util.BeepFrequency; + +import javax.sound.sampled.AudioFormat; +import javax.sound.sampled.AudioSystem; +import javax.sound.sampled.LineUnavailableException; +import javax.sound.sampled.SourceDataLine; + +/** + * @author Kevin Morin (Code Lutin) + * @since 4.3 + */ +public class SoundUtil { + + public static float SAMPLE_RATE = 8000f; + + public static void tone(BeepFrequency beepFrequency, int msecs) throws LineUnavailableException { + tone(beepFrequency.getFrequency(), msecs, 1.0); + } + + public static void tone(int hz, int msecs, double vol) throws LineUnavailableException { + byte[] buf = new byte[1]; + AudioFormat af = new AudioFormat(SAMPLE_RATE, // sampleRate + 8, // sampleSizeInBits + 1, // channels + true, // signed + false); // bigEndian + SourceDataLine sdl = AudioSystem.getSourceDataLine(af); + sdl.open(af); + sdl.start(); + for (int i = 0, end = msecs * 8 ; i < end ; i++) { + double angle = i / (SAMPLE_RATE / hz) * 2.0 * Math.PI; + buf[0] = (byte)(Math.sin(angle) * 127.0 * vol); + sdl.write(buf,0,1); + } + sdl.drain(); + sdl.stop(); + sdl.close(); + } + +} diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties index c1572ab..ab67505 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties @@ -150,6 +150,7 @@ tutti.config.option.service.report.log.directory.shortLabel= tutti.config.option.site.url.shortLabel= tutti.config.option.tmp.directory.shortLabel= tutti.config.option.tremieCarousselVessel.shortLabel= +tutti.config.option.ui.beepFrequency.shortLabel= tutti.config.option.ui.color.alternateRow.shortLabel= tutti.config.option.ui.color.benthos.shortLabel= tutti.config.option.ui.color.blockingLayer.shortLabel= diff --git a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties index 6844f20..75c090b 100644 --- a/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties +++ b/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties @@ -132,6 +132,7 @@ tutti.config.option.service.report.log.directory.shortLabel=Répertoire des log tutti.config.option.site.url.shortLabel=URL du site technique tutti.config.option.tmp.directory.shortLabel=Répertoire temporaire tutti.config.option.tremieCarousselVessel.shortLabel=Navire ayant un carrousel et une trémie +tutti.config.option.ui.beepFrequency.shortLabel=Tonalité du bip tutti.config.option.ui.color.alternateRow.shortLabel=Couleur alternée tutti.config.option.ui.color.benthos.shortLabel=Couleur des libellés de benthos (Écran Capture > Résumé) tutti.config.option.ui.color.blockingLayer.shortLabel=Couleur d'attente -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm