diff --git a/ChangeLog b/ChangeLog
index 275bed40..61548692 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,10 @@
TODO server list split on query
+TODO Keep lrelease? Does it work as expected?
+
+TODO fix Linux deploy script -> gives errors right now
+
TODO WIP support internationalization
TODO implement panning for channels (Ticket #52, #145)
diff --git a/Jamulus.pro b/Jamulus.pro
index 55de0330..2884dcba 100755
--- a/Jamulus.pro
+++ b/Jamulus.pro
@@ -1,4 +1,4 @@
-VERSION = 3.5.3
+VERSION = 3.5.4git
# use target name which does not use a captital letter at the beginning
contains(CONFIG, "noupcasename") {
diff --git a/distributions/debian/watch b/distributions/debian/watch
index 95b58e4b..39d4a1fe 100644
--- a/distributions/debian/watch
+++ b/distributions/debian/watch
@@ -1,5 +1,5 @@
version=4
# GitHub hosted projects
-opts="filenamemangle=s%(?:.*?)?v?(\d[\d.]*)\.tar\.gz%@PACKAGE@-$1.tar.gz%" \
+opts=uversionmangle=s%_%.%g,filenamemangle=s%(?:.*?)?(r\d[\d_]*)\.tar\.gz%@PACKAGE@-$1.tar.gz% \
https://github.com/corrados/jamulus/tags \
- (?:.*?/)?v?(\d[\d.]*)\.tar\.gz debian uupdate
+ (?:.*?/)?r(\d[\d_]*)\.tar\.gz debian uupdate
diff --git a/src/connectdlg.cpp b/src/connectdlg.cpp
index b3aa823e..4d96aee5 100755
--- a/src/connectdlg.cpp
+++ b/src/connectdlg.cpp
@@ -63,7 +63,7 @@ CConnectDlg::CConnectDlg ( const bool bNewShowCompleteRegList,
" server software must be set here. An optional port number can be added after the IP "
"address or URL using a colon as a separator, e.g, "
"example.org:" ) +
- QString().setNum ( LLCON_DEFAULT_PORT_NUMBER ) + tr ( ". A list of "
+ QString().setNum ( DEFAULT_PORT_NUMBER ) + tr ( ". A list of "
"the most recent used server IP addresses or URLs is available for "
"selection." );
@@ -76,7 +76,7 @@ CConnectDlg::CConnectDlg ( const bool bNewShowCompleteRegList,
// filter
edtFilter->setWhatsThis ( "" + tr ( "Filter" ) + ": " + tr ( "The server "
- "list is filered by the given text. Note that the filter is case insensitive." ) );
+ "list is filtered by the given text. Note that the filter is case insensitive." ) );
edtFilter->setAccessibleName ( tr ( "Filter edit box" ) );
// show all mucisians
@@ -304,7 +304,7 @@ void CConnectDlg::SetServerList ( const CHostAddress& InetAddr,
// IP address and port (use IP number without last byte)
// Definition: If the port number is the default port number, we do
// not show it.
- if ( vecServerInfo[iIdx].HostAddr.iPort == LLCON_DEFAULT_PORT_NUMBER )
+ if ( vecServerInfo[iIdx].HostAddr.iPort == DEFAULT_PORT_NUMBER )
{
// only show IP number, no port number
pNewListViewItem->setText ( 0, CurHostAddress.toString ( CHostAddress::SM_IP_NO_LAST_BYTE ) );
diff --git a/src/global.h b/src/global.h
index 4caf2fe8..3df12e59 100755
--- a/src/global.h
+++ b/src/global.h
@@ -117,8 +117,8 @@ LED bar: lbr
#define IP_LOOKUP_TIMEOUT 500 // ms
// defined port numbers for client and server
-#define LLCON_DEFAULT_PORT_NUMBER 22124
-#define LLCON_PORT_NUMBER_NORTHAMERICA 22224
+#define DEFAULT_PORT_NUMBER 22124
+#define DEFAULT_PORT_NUMBER_NORTHAMERICA 22224
// system sample rate (the sound card and audio coder works on this sample rate)
#define SYSTEM_SAMPLE_RATE_HZ 48000 // Hz
@@ -232,11 +232,11 @@ LED bar: lbr
#define MAX_LEN_VERSION_TEXT 20
// common tool tip bottom line text
-#define TOOLTIP_COM_END_TEXT tr ( \
- "
" \
- "For more information use the ""What's " \
- "This"" help (? menu, right mouse button or Shift+F1)" \
- "
" )
+#define TOOLTIP_COM_END_TEXT \
+ "
" + \
+ QCoreApplication::translate ( "global","For more information use the ""What's " \
+ "This"" help (help menu, right mouse button or Shift+F1)" ) + \
+ "
"
#define _MAXSHORT 32767
#define _MAXBYTE 255 // binary: 11111111
diff --git a/src/main.cpp b/src/main.cpp
index 7dea11ac..6dda5852 100755
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -69,7 +69,7 @@ int main ( int argc, char** argv )
int iNumServerChannels = DEFAULT_USED_NUM_CHANNELS;
int iMaxDaysHistory = DEFAULT_DAYS_HISTORY;
int iCtrlMIDIChannel = INVALID_MIDI_CH;
- quint16 iPortNumber = LLCON_DEFAULT_PORT_NUMBER;
+ quint16 iPortNumber = DEFAULT_PORT_NUMBER;
ELicenceType eLicenceType = LT_NO_LICENCE;
QString strConnOnStartupAddress = "";
QString strIniFileName = "";
@@ -573,7 +573,7 @@ int main ( int argc, char** argv )
// TEST -> activate the following line to activate the test bench,
-//CTestbench Testbench ( "127.0.0.1", LLCON_DEFAULT_PORT_NUMBER );
+//CTestbench Testbench ( "127.0.0.1", DEFAULT_PORT_NUMBER );
try
diff --git a/src/recorder/jamrecorder.cpp b/src/recorder/jamrecorder.cpp
index 2c817919..4327ccf2 100755
--- a/src/recorder/jamrecorder.cpp
+++ b/src/recorder/jamrecorder.cpp
@@ -314,6 +314,10 @@ void CJamRecorder::Init( const CServer* server,
throw std::runtime_error( (recordBaseDir.absolutePath() + " is a directory but cannot be written to").toStdString() );
}
+ QObject::connect( (const QObject *)server, SIGNAL ( RestartRecorder() ),
+ this, SLOT( OnTriggerSession() ),
+ Qt::ConnectionType::QueuedConnection );
+
QObject::connect( (const QObject *)server, SIGNAL ( Stopped() ),
this, SLOT( OnEnd() ),
Qt::ConnectionType::QueuedConnection );
@@ -322,13 +326,12 @@ void CJamRecorder::Init( const CServer* server,
this, SLOT( OnDisconnected ( int ) ),
Qt::ConnectionType::QueuedConnection );
- qRegisterMetaType>();
+ qRegisterMetaType> ( "CVector" );
QObject::connect( (const QObject *)server, SIGNAL ( AudioFrame( const int, const QString, const CHostAddress, const int, const CVector ) ),
this, SLOT( OnFrame (const int, const QString, const CHostAddress, const int, const CVector ) ),
Qt::ConnectionType::QueuedConnection );
- QObject::connect( QCoreApplication::instance(),
- SIGNAL ( aboutToQuit() ),
+ QObject::connect( QCoreApplication::instance(), SIGNAL ( aboutToQuit() ),
this, SLOT( OnAboutToQuit() ) );
iServerFrameSizeSamples = _iServerFrameSizeSamples;
@@ -338,11 +341,10 @@ void CJamRecorder::Init( const CServer* server,
thisThread->start();
}
-
/**
- * @brief CJamRecorder::OnStart Start up tasks when the first client connects
+ * @brief CJamRecorder::Start Start up tasks for a new session
*/
-void CJamRecorder::OnStart() {
+void CJamRecorder::Start() {
// Ensure any previous cleaning up has been done.
OnEnd();
@@ -350,11 +352,17 @@ void CJamRecorder::OnStart() {
isRecording = true;
}
+
/**
* @brief CJamRecorder::OnEnd Finalise the recording and emit the Reaper RPP file
+ *
+ * Emits RecordingSessionEnded with the Reaper project file name,
+ * or null if was not recording or a problem occurs
*/
void CJamRecorder::OnEnd()
{
+ QString reaperProjectFileName = QString::Null();
+
if ( isRecording )
{
isRecording = false;
@@ -366,21 +374,46 @@ void CJamRecorder::OnEnd()
if (fi.exists())
{
qWarning() << "CJamRecorder::OnEnd():" << fi.absolutePath() << "exists and will not be overwritten.";
+ reaperProjectFileName = QString::Null();
}
else
{
QFile outf (reaperProjectFileName);
- outf.open(QFile::WriteOnly);
- QTextStream out(&outf);
- out << CReaperProject( currentSession->Tracks(), iServerFrameSizeSamples ).toString() << endl;
- qDebug() << "Session RPP:" << reaperProjectFileName;
+ if ( outf.open(QFile::WriteOnly) )
+ {
+ QTextStream out(&outf);
+ out << CReaperProject( currentSession->Tracks(), iServerFrameSizeSamples ).toString() << endl;
+ qDebug() << "Session RPP:" << reaperProjectFileName;
+ }
+ else
+ {
+ qWarning() << "CJamRecorder::OnEnd():" << fi.absolutePath() << "could not be created, no RPP written.";
+ reaperProjectFileName = QString::Null();
+ }
}
delete currentSession;
currentSession = nullptr;
}
+
+ emit RecordingSessionEnded ( reaperProjectFileName );
}
+/**
+ * @brief CJamRecorder::OnTriggerSession End one session and start a new one
+ */
+void CJamRecorder::OnTriggerSession()
+{
+ // This should magically get everything right...
+ if ( isRecording )
+ {
+ Start();
+ }
+}
+
+/**
+ * @brief CJamRecorder::OnAboutToQuit End any recording and exit thread
+ */
void CJamRecorder::OnAboutToQuit()
{
OnEnd();
@@ -452,7 +485,7 @@ void CJamRecorder::OnFrame(const int iChID, const QString name, const CHostAddre
// Make sure we are ready
if ( !isRecording )
{
- OnStart();
+ Start();
}
currentSession->Frame( iChID, name, address, numAudioChannels, data, iServerFrameSizeSamples );
diff --git a/src/recorder/jamrecorder.h b/src/recorder/jamrecorder.h
index eb5a0581..2bc128db 100755
--- a/src/recorder/jamrecorder.h
+++ b/src/recorder/jamrecorder.h
@@ -143,21 +143,44 @@ public:
{
}
+ /**
+ * @brief Create recording directory, if necessary, and connect signal handlers
+ * @param server Server object emiting signals
+ */
void Init( const CServer* server, const int _iServerFrameSizeSamples );
+ /**
+ * @brief SessionDirToReaper Method that allows an RPP file to be recreated
+ * @param strSessionDirName Where the session wave files are
+ * @param serverFrameSizeSamples What the server frame size was for the session
+ */
static void SessionDirToReaper( QString& strSessionDirName, int serverFrameSizeSamples );
-public slots:
- /**
- * @brief Raised when first client joins the server, triggering a new recording.
- */
- void OnStart();
+private:
+ void Start();
+ QDir recordBaseDir;
+
+ bool isRecording;
+ CJamSession* currentSession;
+ int iServerFrameSizeSamples;
+
+ QThread* thisThread;
+
+signals:
+ void RecordingSessionEnded ( QString sessionDir );
+
+private slots:
/**
* @brief Raised when last client leaves the server, ending the recording.
*/
void OnEnd();
+ /**
+ * @brief Raised to end one session and start a new one.
+ */
+ void OnTriggerSession();
+
/**
* @brief Raised when application is stopping
*/
@@ -173,15 +196,6 @@ public slots:
* @brief Raised when a frame of data is available to process
*/
void OnFrame ( const int iChID, const QString name, const CHostAddress address, const int numAudioChannels, const CVector data );
-
-private:
- QDir recordBaseDir;
-
- bool isRecording;
- CJamSession* currentSession;
- int iServerFrameSizeSamples;
-
- QThread* thisThread;
};
}
diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm
index 4be4f7d2..c6f385ed 100644
Binary files a/src/res/translation/translation_de_DE.qm and b/src/res/translation/translation_de_DE.qm differ
diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts
index ab021e13..5ac3716f 100644
--- a/src/res/translation/translation_de_DE.ts
+++ b/src/res/translation/translation_de_DE.ts
@@ -54,57 +54,57 @@
Die Bilder der Länderflaggen sind von Mark James
-
+ Die Details über die Codebeiträge findet man in der
-
+ Github Liste der Mitwirkenden
-
+ Spanisch
-
+ Französisch
-
+ Portugiesisch
-
+
-
+
-
+ Über
-
+
-
+
-
+ Unter der GNU General Public License (GPL)
@@ -1403,7 +1403,7 @@
-
+
Die Serverliste kann mit dem eingegebenen Text gefiltert werden, d.h. es werden nur Einträge angezeigt, die dem Filtertext entsprechen. Die Groß- und Kleinschreibung des Filtertexts wird dabei nicht beachtet.
@@ -1483,28 +1483,28 @@
CHelpMenu
-
+ &Hilfe
-
-
+
+ &Erste Schritte...
-
+ Software&handbuch...
-
+ Konte&xthilfe
-
+ Ü&ber...
@@ -1512,102 +1512,102 @@
CLicenceDlg
-
+ Ich &stimme den Lizenzbedingungen zu
-
+ Einwilligen
-
+ Ablehnen
-
+ Durch das Verbinden mit diesem Server und das Akzeptieren des Lizenztextes willigst du folgenden Bedingungen ein:
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1615,270 +1615,270 @@
CMusProfDlg
-
+ -Server. Dieses Schild wird auch bei allen anderen Musikern, die mit dem gleichen Server verbunden sind, angezeigt. Wenn der Name leer gelassen wurde, dann wird die IP-Adresse stattdessen angezeigt.
-
+ Alias oder Name Eingabefeld
-
+ Instrumentenbild Knopf
-
+ Landesflagge Knopf
-
+ Stadt Eingabefeld
-
+ Fähigkeit Auswahlbox
-
-
-
+
+
+ Kein
-
-
+
+ Musikerprofil
-
+
-
+
-
+ Land
-
+ Stadt
-
+ Können
-
+ &Schließen
-
+ Anfänger
-
+ Mittlere Spielstärke
-
+ Experte
-
+ Schreibe den Namen oder Alias hier rein so dass die anderen Musikern mit denen du spielst wissen wer du bist. Zusätzlich kannst du dein Instrument auswählen und eine Flagge des Landes auswählen in dem du dich befindest. Deine Stadt und deine Spielstärke des Instruments kannst du ebenso angeben.
-
+ Was man hier sieht wird auch am Fader im Mixer angezeigt, wenn du mit einem
-
+ Schlagzeug
-
+ Djembe
-
+ E-Gitarre
-
+ Akustikgitarre
-
+ E-Bass
-
+ Keyboard
-
+ Synthesizer
-
+ Flügel
-
+ Akkordeon
-
+ Gesang
-
+ Mikrofon
-
+ Mundharmonika
-
+ Trompete
-
+ Posaune
-
+ Waldhorn
-
+ Tuba
-
+ Saxophon
-
+ Klarinette
-
+ Flöte
-
+ Violine
-
+ Cello
-
+ Kontrabass
-
+ Recorder
-
+
-
+ Zuhörer
-
+ Gitarre+Gesang
-
+ Keyboard+Gesang
-
+
-
+ Fagott
-
+ Oboe
-
+ Harfe
-
+ Viola
-
+ Congas
-
+ Bongos
@@ -2356,4 +2356,12 @@
konnte nicht gestartet werden wegen Problemen mit dem Audiogerät.
+
+ global
+
+
+
+ Für weitere Informationen verwende die Kontexthilfe (Hilfe-Menü, rechte Maustaste oder Tastenkombination Shift+F1)
+
+
diff --git a/src/res/translation/translation_es_ES.qm b/src/res/translation/translation_es_ES.qm
index 746e15ef..04a888af 100644
Binary files a/src/res/translation/translation_es_ES.qm and b/src/res/translation/translation_es_ES.qm differ
diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts
index deb98472..4aeec82d 100644
--- a/src/res/translation/translation_es_ES.ts
+++ b/src/res/translation/translation_es_ES.ts
@@ -58,57 +58,57 @@
Iconos de banderas nacionales de Mark James
-
+ Para más detalles sobre los contribuidores consulta la
-
+ lista de Contribuidores en Github
-
+ Español
-
+ Francés
-
+ Portugués
-
+ Neerlandés
-
+ Alemán
-
+ Acerca de
-
+ , Versión
-
+ Internet Jam Session Software
-
+ Bajo la GNU General Public License (GPL)
@@ -1411,7 +1411,7 @@
-
+
La lista de servidores se filtra con el texto introducido. El filtro no es sensible a mayúsculas/minúsculas.
@@ -1491,28 +1491,28 @@
CHelpMenu
-
+ &Ayuda
-
-
+
+ Cómo &Empezar...
-
+ Manual del &Software...
-
+ Qué es &Esto
-
+ &Acerca de...
@@ -1520,102 +1520,102 @@
CLicenceDlg
-
+ &Acepto los términos de la licencia arriba expuestos
-
+ Acepto
-
+ No Acepto
-
+ Al conectarte a este servidor y aceptar esta notificación, aceptas lo siguiente:
-
+ Ud. declara que todos los datos, audios u otras obras transmitidas a este servidor son la propiedad de Ud. y creadas por Ud. o sus licenciatarios, y que pone a disposición de terceras partes estos datos, audios u otras obras mediante la siguiente Licencia Creative Commons (para más información sobre esta licencia, ver
-
+ Ud. es libre de:
-
+ Compartir
-
+ copiar y redistribuir el material en cualquier medio o formato
-
+ Adaptar
-
+ remezclar, transformar y construir a partir del material
-
+ El licenciante no puede revocar estas libertades en tanto Ud. siga los términos de la licencia.
-
+ Bajo los siguientes términos:
-
+ Atribución
-
+ Ud. debe dar crédito de manera adecuada, brindar un enlace a la licencia, e indicar si se han realizado cambios. Puede hacerlo en cualquier forma razonable, pero no de forma tal que sugiera que Ud. o su uso tienen el apoyo de la licenciante.
-
+ No-Comercial
-
+ No puede utilizar el material con fines comerciales.
-
+ ShareAlike
-
+ Si remezcla, transforma o construye sobre el material, debe distribuir sus contribuciones bajo la misma licencia que el original.
-
+ Sin restricciones adicionales
-
+ No puede aplicar términos legales o medidas tecnológicas que restringan legalmente a otras personas de hacer cualquier cosa permitida por la licencia.
@@ -1623,270 +1623,270 @@
CMusProfDlg
-
+ Esta etiqueta también se mostrará a cada cliente conectado al mismo servidor que tú. Se se deja vacío, se muestra la dirección IP en su lugar.
-
+ Campo para alias o nombre
-
+ Botón imagen instrumento
-
+ Botón bandera país
-
+ Ciudad
-
+ Nivel de habilidad
-
-
-
+
+
+ Ninguno
-
-
+
+ Perfil Músico
-
+ Alias/Nombre
-
+ Instrumento
-
+ País
-
+ Ciudad
-
+ Habilidad
-
+ &Cerrar
-
+ Principiante
-
+ Intermedio
-
+ Experto
-
+ Escribe tu nombre o alias aquí para que los demás músicos con quien quieras tocar te reconozcan. Puedes además añadir una imagen del instrumento que tocas y la bandera del país donde vives. La ciudad donde vives y tu nivel de habilidad con el instrumento también pueden añadirse.
-
+ Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor
-
+ Batería
-
+ Djembé
-
+ Guitarra Eléctrica
-
+ Guitarra Acústica
-
+ Bajo Eléctrico
-
+ Teclado
-
+ Sintetizador
-
+ Piano de Cola
-
+ Acordeón
-
+ Voz
-
+ Micrófono
-
+ Armónica
-
+ Trompeta
-
+ Trombón
-
+ Trompa
-
+ Tuba
-
+ Saxofón
-
+ Clarinete
-
+ Flauta
-
+ Violín
-
+ Violonchelo
-
+ Contrabajo
-
+ Grabadora
-
+ Streamer
-
+ Oyente
-
+ Guitarra+Voz
-
+ Teclado+Voz
-
+ Bodhran
-
+ Fagot
-
+ Oboe
-
+ Arpa
-
+ Viola
-
+ Congas
-
+ Bongo
@@ -2364,4 +2364,12 @@
no pudo arrancar debido a problemas con el dispositivo de audio.
+
+ global
+
+
+
+
+
+
diff --git a/src/res/translation/translation_fr_FR.qm b/src/res/translation/translation_fr_FR.qm
index 34081d19..dbb9c0db 100644
Binary files a/src/res/translation/translation_fr_FR.qm and b/src/res/translation/translation_fr_FR.qm differ
diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts
index 7705ffc8..971ed813 100644
--- a/src/res/translation/translation_fr_FR.ts
+++ b/src/res/translation/translation_fr_FR.ts
@@ -58,57 +58,57 @@
Icônes de drapeaux de pays par Mark James
-
+ Pour plus de détails sur les contributions, consultez la
-
+ liste de contributeurs sur github
-
+
-
+ Espagnol
-
+
-
+ Français
-
+
-
+ Portugais
-
+
-
+ Néerlandais
-
+
-
+ Allemand
-
+ À propos
-
+ , version
-
+ Logiciels de bœuf sur Internet
-
+ Sous la licence public général GNU (GPL)
@@ -339,12 +339,12 @@
-
+ Fenêtre de tchate
-
+ La fenêtre de tchate affiche un historique de tous les messages de chat.
@@ -354,12 +354,12 @@
-
+ Saisie du texte du message
-
+ Saisissez le texte du message de tchate dans la zone d'édition et appuyez sur la touche Entrée pour envoyer le message au serveur qui le distribue à tous les clients connectés. Votre message apparaîtra alors dans la fenêtre de tchate.
@@ -405,27 +405,27 @@
-
+ Si le logiciel
-
+ , vous ne cevriez pas entendre votre chant/instrument dans le haut-parleur ou votre casque lorsque le logiciel
-
+ est connecté et que vous jouez de votre instrument ou chantez dans le microphone, le voyant de niveau devrait clignoter. Si ce n'est pas le cas, vous avez probablement sélectionné le mauvais canal d'entrée (par exemple, entrée ligne au lieu de l'entrée microphone) ou réglé le gain d'entrée trop bas dans le mixeur audio (Windows).
-
+ Pour un bon usage du logiciel
-
+ n'est pas connecté. Vous pouvez y parvenir en mettant en sourdine votre canal audio d'entrée dans le mixeur de lecture (et âs dans le mixeur d'enregistrement !).
@@ -764,7 +764,7 @@
-
+ Si le réglage automatique du tampon de gigue est activé, les tampons réseau du client local et du serveur distant sont réglés à une valeur prudente pour minimiser la probabilité de décrochage audio. Pour ajuster le délai/latence audio, il est recommandé de désactiver la fonction de réglage automatique et de réduire manuellement la taille du tampon de gigue en utilisant les curseurs jusqu'à ce que votre limite personnelle acceptable du nombre d'interruptions soit atteinte. Le voyant visualisera les décrochages audio du tampon de gigue local par une lumière rouge.
@@ -789,22 +789,22 @@
-
+ Périphérique d'interface audio
-
+ Le pilote ASIO (interface audio) peut être sélectionné en utilisant
-
+ sous le système d'exploitation Windows. Sous MacOS/Linux, aucune sélection de carte son n'est possible. Si le pilote ASIO sélectionné n'est pas valide, un message d'erreur s'affiche et le pilote valide précédent est sélectionné.
-
+ Si le pilote est sélectionné pendant une connexion active, la connexion est interrompue, le pilote est modifié et la connexion est automatiquement relancée.
@@ -1415,8 +1415,8 @@
-
-
+
+ La liste des serveurs est filtrée par le texte donné. Notez que le filtre n'est pas sensible à la casse.
@@ -1495,28 +1495,28 @@
CHelpMenu
-
+ &Aide
-
-
+
+ Premier pa&s...
-
+ &Manuel du logiciel...
-
+
- C'es&t quoi ça
+ Qu'est-ce que c'est ?
-
+ À &propos
@@ -1524,102 +1524,102 @@
CLicenceDlg
-
+ J'&accepte les conditions de licence ci-dessus
-
+ Accepter
-
+ Décliner
-
+ En vous connectant à ce serveur et en acceptant le présent avis, vous acceptez ce qui suit :
-
+ Vous acceptez que toutes les données, sons ou autres œuvres transmises à ce serveur soient détenus et créés par vous ou vos ayant-droits, et que vous rendiez ces données, sons ou autres œuvres disponibles via la licence Creative Commons suivante (pour plus d'informations sur cette licence, voir
-
+ Vous êtes libres de :
-
+ Partager
-
+ copier et redistribuer le matériel sur tout support ou format
-
+ Adapter
-
+ remixer, transformer et développer à partir du matériel
-
+ Le donneur de licence ne peut pas révoquer ces libertés tant que vous respectez les conditions de la licence.
-
+ Dans les conditions suivantes :
-
+ Attribution
-
+ Vous devez donner un crédit approprié, fournir un lien vers la licence et indiquer si des modifications ont été apportées. Vous pouvez le faire de toute manière raisonnable, mais pas d'une manière qui suggère que le donneur de licence vous cautionne ou cautionne votre utilisation.
-
+ Non commercial
-
+ Vous ne pouvez pas utiliser le matériel à des fins commerciales.
-
+ Partager à l'identique
-
+ Si vous remixez, transformez ou développez à partir du matériel, vous devez distribuer vos contributions sous la même licence que l'original.
-
+ Aucune restriction supplémentaire
-
+ Vous ne pouvez pas appliquer des termes juridiques ou des mesures technologiques qui empêchent légalement d'autres personnes de faire ce que la licence autorise.
@@ -1627,270 +1627,270 @@
CMusProfDlg
-
+
-
+ . Cette balise apparaîtra également sur chaque client connecté au même serveur que vous. Si le nom est laissé vide, l'adresse IP est affichée à la place.
-
+
-
+ Bouton d'image d'instrument
-
+ Bouton de drapeau de pays
-
+
-
+
-
-
-
+
+
+ Aucune
-
-
+
+ Profil de musicien
-
+ Pseudo/nom
-
+ Instrument
-
+ Pays
-
+ Ville
-
+ Compétence
-
+ &Fermer
-
+ Débutant
-
+ Intermédiaire
-
+ Expert
-
+
-
+ Indiquez ici votre nom ou un pseudonyme afin que les autres musiciens avec lesquels vous voulez jouer sachent qui vous êtes. Vous pouvez également mettre une photo de l'instrument dont vous jouez et un drapeau du pays dans lequel vous vivez. La ville dans laquelle vous vivez et le niveau de compétence pour jouer de votre instrument peuvent également être ajoutés.
-
+
-
+ Ce que vous réglez ici apparaîtra au niveau de votre fader sur la table de mixage lorsque vous serez connecté à un serveur
-
+ Batterie
-
+ Djembé
-
+ Guitare électrique
-
+ Guitare accoustique
-
+ Guitare basse
-
+ Clavier
-
+ Synthétiseur
-
+ Piano à queue
-
+ Accordéon
-
+ Voix
-
+ Microphone
-
+ Harmonica
-
+ Trompette
-
+ Trombone
-
+ Cor d'harmonie
-
+ Tuba
-
+ Saxophone
-
+ Clarinette
-
+ Flute
-
+ Violon
-
+ Violoncelle
-
+ Contrebasse
-
+ Enregistreur
-
+ Diffuseur
-
+ Auditeur
-
+ Guitare+voix
-
+ Clavier+voix
-
+ Bodhran
-
+ Basson
-
+ Hautbois
-
+ Harpe
-
+ Alto
-
+ Congas
-
+ Bongo
@@ -2031,7 +2031,7 @@
- &Quitter
+ &Quitter
@@ -2368,4 +2368,12 @@
+
+ global
+
+
+
+
+
+
diff --git a/src/res/translation/translation_nl_NL.qm b/src/res/translation/translation_nl_NL.qm
index 666d0218..76089100 100644
Binary files a/src/res/translation/translation_nl_NL.qm and b/src/res/translation/translation_nl_NL.qm differ
diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts
index 692798e9..ba5ebe81 100644
--- a/src/res/translation/translation_nl_NL.ts
+++ b/src/res/translation/translation_nl_NL.ts
@@ -31,7 +31,7 @@
- gebruikt de volgende bibliotheken, bronnen of code snippets:
+ gebruikt de volgende libraries, bronnen of code snippets:
@@ -54,57 +54,57 @@
Landvlag-iconen van Mark James
-
+ Voor details over de bijdragen, zie de
-
+ Github Bijdragerslijst
-
+ Spaans
-
+ Frans
-
+ Portugees
-
+
-
+ Nederlands
-
+
-
+ Duits
-
+ Over
-
+ , Versie
-
+
-
+ Internet Jamsessie Software
-
+ Onder de GNU General Public License (GPL)
@@ -119,7 +119,7 @@
-
+ TextLabelVersion
@@ -129,12 +129,12 @@
-
+ &Over
-
+ &Libraries
@@ -149,7 +149,7 @@
-
+ &OK
@@ -157,7 +157,7 @@
-
+ Analyzer Console
@@ -170,7 +170,7 @@
-
+ Server
@@ -212,7 +212,7 @@
-
+ Mixer Fader
@@ -232,7 +232,7 @@
- Dempingsknop
+ Dempknop
@@ -365,7 +365,7 @@
-
+ Wiss&en
@@ -428,7 +428,7 @@
- Aansluiten/afkoppelen-knop
+ Verbinden/Verbreken-knop
@@ -591,7 +591,7 @@
- &Connection Setup...
+ &Verbindingsinstellingen...
@@ -646,7 +646,7 @@
- D&isconnect
+ &Afmelden
@@ -689,12 +689,12 @@
- Stomme ikzelf
+ Demp Mijzelf
- C&onnect
+ &Verbinden
@@ -709,7 +709,7 @@
- Reverb
+ Galm
@@ -987,7 +987,7 @@
- Indien ingeschakeld, zal elk klantkanaal een pre-fader niveau balk weergeven.
+ Indien ingeschakeld, zal elk clientkanaal een pre-fader niveau balk weergeven.
@@ -1137,7 +1137,7 @@
- Handleiding
+ Handmatig
@@ -1158,7 +1158,7 @@
- Grootte:
+ Size:
@@ -1279,7 +1279,7 @@
- Grootte
+ Size
@@ -1309,7 +1309,7 @@
-
+ Fancy Skin
@@ -1331,7 +1331,7 @@
-
+ val
@@ -1403,7 +1403,7 @@
-
+
De serverlijst wordt gefilterd met de gegeven tekst. Merk op dat het filter ongevoelig is voor hoofdletters.
@@ -1483,28 +1483,28 @@
CHelpMenu
-
+ &Hulp
-
-
+
+ Aan de slag...
-
+ Softwarehandleiding...
-
+
- Wat is dit
+ Wat Is Dit
-
+ &Over...
@@ -1512,102 +1512,102 @@
CLicenceDlg
-
+ Ik stem in met bovenstaande licentievoorwaarden
-
+ Accepteer
-
+ Niet akkoord
-
+ Door verbinding te maken met deze server en akkoord te gaan met deze mededeling, gaat u akkoord met het volgende:
-
+ U gaat ermee akkoord dat alle gegevens, geluiden of andere werken die naar deze server worden verzonden, eigendom zijn van en gemaakt zijn door u of uw licentiegevers, en dat u deze gegevens, geluiden of andere werken beschikbaar stelt via de volgende Creative Commons Licentie (voor meer informatie over deze licentie, zie
-
+ Je staat vrij om:
-
+ het materiaal
-
+ te delen, te kopiëren en te herdistribueren in elk medium of formaat
-
+ Aanpassen
-
+ remixen, transformeren en bouwen op het materiaal
-
+ De licentiegever kan deze vrijheden niet herroepen zolang u zich aan de licentievoorwaarden houdt.
-
+ Onder de volgende voorwaarden:
-
+ Naamsvermelding
-
+ U moet de juiste erkenning geven, een link naar de licentie geven en aangeven of er wijzigingen zijn aangebracht. U mag dit op elke redelijke manier doen, maar niet op een manier die suggereert dat de licentiegever u of uw gebruik goedkeurt.
-
+ Niet-commercieel
-
+ U mag het materiaal niet voor commerciële doeleinden gebruiken.
-
+ hareAlike
-
+ Als u het materiaal remixt, transformeert of uitbouwt, moet u uw bijdragen distribueren onder dezelfde licentie als het origineel.
-
+ Geen extra beperkingen
-
+ U mag geen wettelijke voorwaarden of technologische maatregelen toepassen die anderen wettelijk beperken om iets te doen wat de licentie toestaat.
@@ -1615,270 +1615,270 @@
CMusProfDlg
-
-
+
+ Muzikantenprofiel
-
+ Alias/Naam
-
+ Instrument
-
+ Land
-
+ Stad
-
+ Vaardigheid
-
+ &Sluiten
-
-
-
+
+
+ Geen
-
+ Beginner
-
+ Gemiddeld
-
+ Gevorderd
-
+ Stel hier je naam of een alias in zodat de andere muzikanten met wie je wilt spelen weten wie je bent. Daarnaast kun je een instrumentfoto van het instrument dat je bespeelt en een vlag van het land waar je woont, instellen. De stad waar je woont en het vaardigheidsniveau van het spelen van je instrument kunnen ook worden toegevoegd.
-
+ Wat u hier instelt, verschijnt bij uw fader op het mengpaneel wanneer u verbonden bent met een
-
+ server. Deze tag zal ook verschijnen op elke client die verbonden is met dezelfde server als u. Als de naam leeg is, wordt in plaats daarvan het IP-adres getoond.
-
+ Alias of naam bewerkingsvak
-
+ Afbeelding van het instrument
-
+ Landvlag knop
-
+ Bewerkingsbox voor de stad
-
+ Combo-box voor vaardigheidsniveau
-
+ Drumstel
-
+ Djembe
-
+ Elektrische Gitaar
-
+ Akoestische Gitaar
-
+ Basgitaar
-
+ Toetsenbord
-
+ Synthesizer
-
+ Piano
-
+ Accordeon
-
+ Vocaal
-
+ Microfoon
-
+ Harmonica
-
+ Trompet
-
+ Trombone
-
+ Hoorn
-
+ Tuba
-
+ Saxofoon
-
+ Klarinet
-
+ Fluit
-
+ Viool
-
+ Cello
-
+ Contrabas
-
+ Opnemer
-
+ Streamer
-
+ Luisteraar
-
+ Gitaar+Vocaal
-
+ Toetsenbord+Vocaal
-
+ Bodhran
-
+ Fagot
-
+ Hobo
-
+ Harp
-
+ Viola
-
+ Congas
-
+ Bongo
@@ -2046,7 +2046,7 @@
- Handleiding
+ Handmatig
@@ -2170,7 +2170,7 @@
-
+ TextLabelNameVersion
@@ -2356,4 +2356,12 @@
kon niet worden gestart vanwege problemen met de audio-interface.
+
+ global
+
+
+
+ Voor meer informatie gebruik de Wat Is Dit hulp (helpmenu, rechtermuisklik of Shift+F1)
+
+
diff --git a/src/res/translation/translation_pt_PT.qm b/src/res/translation/translation_pt_PT.qm
index 1f42aa5e..5c2ebc81 100644
Binary files a/src/res/translation/translation_pt_PT.qm and b/src/res/translation/translation_pt_PT.qm differ
diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts
index 523e9e46..4d6f8b56 100644
--- a/src/res/translation/translation_pt_PT.ts
+++ b/src/res/translation/translation_pt_PT.ts
@@ -15,7 +15,7 @@
-
+ permite aos músicos realizar jam sessions em tempo real pela Internet.
@@ -25,7 +25,7 @@
-
+ Existe um servidor
@@ -40,75 +40,75 @@
-
+ Estrutura de aplicações multiplataforma Qt
-
+ Código de reverberação de áudio por Perry R. Cook e Gary P. Scavone
-
+ Alguns pixmaps são do
-
-
-
-
-
-
+ Ícones de bandeira do país de Mark James
+
+ Para detalhes sobre as contribuições, consulte a
+
+
+
-
+ lista de colaboradores do Github
-
+
-
+ Espanhol
-
+
-
+ Francês
-
+
-
+ Português
-
+
-
+ Holandês
-
+
-
+ Alemão
-
+ Sobre o
-
+ , Versão
-
+ Programa de Jam Sessions pela Internet
-
+ Sob a Licença Pública Geral GNU (GPL)
@@ -133,22 +133,22 @@
-
+ &Sobre
-
+ &Bibliotecas
-
+ &Colaboradores
-
+ &Tradução
@@ -1164,7 +1164,7 @@
-
+ preferido
@@ -1415,7 +1415,7 @@
-
+
A lista de servidores é filtrada pelo texto fornecido. Note que o filtro não diferencia maiúsculas de minúsculas.
@@ -1495,28 +1495,28 @@
CHelpMenu
-
+
-
+ &Ajuda
-
-
+
+ Como Começa&r...
-
+ &Manual do Programa...
-
+ O que é &isto
-
+ &Sobre...
@@ -1524,102 +1524,102 @@
CLicenceDlg
-
+ Eu &aceito os termos da licença acima
-
+ Aceitar
-
+ Rejeitar
-
+ Ao ligar-se a este servidor e concordar com este aviso, está a concordar com o seguinte:
-
+ Você concorda que todos os dados, sons ou outros trabalhos transmitidos para este servidor pertencem e são criados por você ou por seus licenciadores, e que você está disponibilizando esses dados, sons ou outros trabalhos através da seguinte licença Creative Commons (para obter mais informações sobre esta licença, consulte
-
+ Você tem o direito de:
-
+ Compartilhar
-
+ copiar e redistribuir o material em qualquer suporte ou formato
-
+ Adaptar
-
+ remisturar, transformar, e criar a partir do material
-
+ O licenciante não pode revogar estes direitos desde que você respeite os termos da licença.
-
+ De acordo com os termos seguintes:
-
+ Atribuição
-
+ Você deve atribuir o devido crédito, fornecer um link para a licença, e indicar se foram feitas alterações. Você pode fazê-lo de qualquer forma razoável, mas não de uma forma que sugira que o licenciante o apoia ou aprova o seu uso.
-
+ NãoComercial
-
+ Você não pode usar o material para fins comerciais.
-
+ CompartilhaIgual
-
+ Se você remisturar, transformar, ou criar a partir do material, tem de distribuir as suas contribuições ao abrigo da mesma licença que o original.
-
+ Sem restrições adicionais
-
+ Você não pode aplicar termos jurídicos ou medidas de caráter tecnológico que restrinjam legalmente outros de fazerem algo que a licença permita.
@@ -1627,272 +1627,272 @@
CMusProfDlg
-
+ . Esta identificação também será exibida em cada cliente ligado ao mesmo servidor que você. Se o nome estiver vazio, o endereço IP será mostrado.
-
+ Caixa de edição do nome ou pseudônimo
-
+ Botão da imagem do instrumento
-
+ Botão da bandeira do país
-
+ Caixa de edição da cidade
-
+ Caixa do nível de habilidade
-
-
-
+
+
+ Nenhum
-
-
+
+ Perfil do músico
-
+ Nome/Alcunha
-
+ Instrumento
-
+ País
-
+ Cidade
-
+ Habilidade
-
+ &Fechar
-
+ Principiante
-
+ Intermediário
-
+ Avançado
-
+ Defina o seu nome ou um pseudônimo aqui para que os outros músicos com quem quer tocar saibam quem você é. Além disso, pode definir uma imagem do instrumento que toca e uma bandeira do país em que vive. A cidade em que vive e o nível de habilidade com o seu instrumento também podem ser adicionados.
-
+ O que definir aqui aparecerá por baixo do seu fader na secção de mistura quando estiver ligado a um servidor
-
+ Bateria
-
+ Djembe
-
+ Guitarra Elétrica
-
+ Guitarra Acústica
-
+ Baixo
-
+ Teclado
-
+ Sintetizador
-
+ Piano de Cauda
-
+ Acordeão
-
+ Voz
-
+ Microfone
-
+ Harmónica
-
+ Trompete
-
+ Trombone
-
+ Trompa Francesa
-
+ Tuba
-
+ Saxofone
-
+ Clarinete
-
+ Flauta
-
+ Violino
-
+ Violoncelo
-
+ Contrabaixo
-
+ Gravador
-
+ Streamer
-
+ Ouvinte
-
+ Guitarra+Voz
-
+ Teclado+Voz
-
+ Bodhrán
-
+ Fagote
-
+ Oboé
-
+ Harpa
-
+ Viola de Arco
-
+
-
+ Congas
-
+
-
+ Bongo
@@ -2317,7 +2317,7 @@
-
+ Erro ao fechar o stream: $s
@@ -2368,4 +2368,12 @@
não pôde ser iniciado devido a problemas na interface de áudio.
+
+ global
+
+
+
+ Para mais informações, use O que é isto (menu Ajuda, botão direito do rato ou Shift + F1)
+
+
diff --git a/src/server.cpp b/src/server.cpp
index 87af18bb..794799c1 100755
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -471,8 +471,8 @@ CServer::CServer ( const int iNewMaxNumChan,
this, SLOT ( OnAboutToQuit() ) );
QObject::connect ( pSignalHandler,
- SIGNAL ( ShutdownSignal ( int ) ),
- this, SLOT ( OnShutdown ( int ) ) );
+ SIGNAL ( HandledSignal ( int ) ),
+ this, SLOT ( OnHandledSignal ( int ) ) );
connectChannelSignalsToServerSlots();
@@ -665,10 +665,38 @@ void CServer::OnAboutToQuit()
}
}
-void CServer::OnShutdown ( int )
+void CServer::OnHandledSignal ( int sigNum )
{
- // This should trigger OnAboutToQuit
+#ifdef _WIN32
+ // Windows does not actually get OnHandledSignal triggered
QCoreApplication::instance()->exit();
+ Q_UNUSED ( sigNum )
+#else
+ switch ( sigNum )
+ {
+
+ case SIGUSR1:
+ RequestNewRecording();
+ break;
+
+ case SIGINT:
+ case SIGTERM:
+ // This should trigger OnAboutToQuit
+ QCoreApplication::instance()->exit();
+ break;
+
+ default:
+ break;
+ }
+#endif
+}
+
+void CServer::RequestNewRecording()
+{
+ if ( bEnableRecording )
+ {
+ emit RestartRecorder();
+ }
}
void CServer::Start()
diff --git a/src/server.h b/src/server.h
index da38bc35..475928e4 100755
--- a/src/server.h
+++ b/src/server.h
@@ -285,6 +285,8 @@ protected:
const CVector > vecvecsData,
CVector& vecLevelsOut );
+ void RequestNewRecording();
+
// do not use the vector class since CChannel does not have appropriate
// copy constructor/operator
CChannel vecChannels[MAX_NUM_CHANNELS];
@@ -364,6 +366,7 @@ signals:
const CHostAddress RecHostAddr,
const int iNumAudChan,
const CVector vecsData );
+ void RestartRecorder();
public slots:
void OnTimer();
@@ -441,5 +444,5 @@ public slots:
void OnAboutToQuit();
- void OnShutdown ( int );
+ void OnHandledSignal ( int sigNum );
};
diff --git a/src/signalhandler.cpp b/src/signalhandler.cpp
index 4c37d018..d0205c9e 100755
--- a/src/signalhandler.cpp
+++ b/src/signalhandler.cpp
@@ -75,7 +75,7 @@ CSignalHandler* CSignalHandler::getSingletonP() { return singleton; }
bool CSignalHandler::emitSignal ( int sigNum )
{
- return QMetaObject::invokeMethod( singleton, "ShutdownSignal", Qt::QueuedConnection, Q_ARG( int, sigNum ) );
+ return QMetaObject::invokeMethod( singleton, "HandledSignal", Qt::QueuedConnection, Q_ARG( int, sigNum ) );
}
#ifndef _WIN32
@@ -124,11 +124,11 @@ QReadWriteLock* CSignalWin::getLock() const
return &lock;
}
-BOOL WINAPI CSignalWin::signalHandler ( _In_ DWORD sigNum )
+BOOL WINAPI CSignalWin::signalHandler ( _In_ DWORD )
{
auto self = getSelf();
QReadLocker lock ( self->getLock() );
- return self->pSignalHandler->emitSignal ( static_cast( sigNum ) );
+ return self->pSignalHandler->emitSignal ( -1 );
}
#else
@@ -145,12 +145,14 @@ CSignalUnix::CSignalUnix ( CSignalHandler* nPSignalHandler ) :
socketNotifier->setEnabled ( true );
+ setSignalHandled ( SIGUSR1, true );
setSignalHandled ( SIGINT, true );
setSignalHandled ( SIGTERM, true );
}
}
CSignalUnix::~CSignalUnix() {
+ setSignalHandled ( SIGUSR1, false );
setSignalHandled ( SIGINT, false );
setSignalHandled ( SIGTERM, false );
}
diff --git a/src/signalhandler.h b/src/signalhandler.h
index 1263ee6a..59409d13 100755
--- a/src/signalhandler.h
+++ b/src/signalhandler.h
@@ -104,7 +104,7 @@ public slots:
#endif
signals:
- void ShutdownSignal ( int sigNum );
+ void HandledSignal ( int sigNum );
private:
QScopedPointer pSignalBase;
@@ -153,7 +153,7 @@ public:
private:
mutable QReadWriteLock lock;
- static BOOL WINAPI signalHandler ( _In_ DWORD sigNum );
+ static BOOL WINAPI signalHandler ( _In_ DWORD );
};
#else
diff --git a/src/util.cpp b/src/util.cpp
index 77a3cbf8..91a17abc 100755
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -864,7 +864,7 @@ bool NetworkUtil::ParseNetworkAddress ( QString strAddress,
CHostAddress& HostAddress )
{
QHostAddress InetAddr;
- quint16 iNetPort = LLCON_DEFAULT_PORT_NUMBER;
+ quint16 iNetPort = DEFAULT_PORT_NUMBER;
// init requested host address with invalid address first
HostAddress = CHostAddress();
@@ -951,7 +951,7 @@ QString NetworkUtil::GetCentralServerAddress ( const ECSAddType eCentralServerAd
switch ( eCentralServerAddressType )
{
case AT_MANUAL: return strCentralServerAddress;
- case AT_NORTH_AMERICA: return QString ( "%1:%2" ).arg ( DEFAULT_SERVER_ADDRESS ).arg ( LLCON_PORT_NUMBER_NORTHAMERICA );
+ case AT_NORTH_AMERICA: return QString ( "%1:%2" ).arg ( DEFAULT_SERVER_ADDRESS ).arg ( DEFAULT_PORT_NUMBER_NORTHAMERICA );
default: return DEFAULT_SERVER_ADDRESS; // AT_DEFAULT
}
}