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 - + For details on the contributions check out the Die Details über die Codebeiträge findet man in der - + Github Contributors list Github Liste der Mitwirkenden - + Spanish Spanisch - + French Französisch - + Portuguese Portugiesisch - + Dutch - + German - + About Über - + , Version - + Internet Jam Session Software - + Under the GNU General Public License (GPL) Unter der GNU General Public License (GPL) @@ -1403,7 +1403,7 @@ - The server list is filered by the given text. Note that the filter is case insensitive. + The server list is filtered by the given text. Note that the filter is case insensitive. 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 - + &Help &Hilfe - - + + Getting &Started... &Erste Schritte... - + Software &Manual... Software&handbuch... - + What's &This Konte&xthilfe - + &About... Ü&ber... @@ -1512,102 +1512,102 @@ CLicenceDlg - + I &agree to the above licence terms Ich &stimme den Lizenzbedingungen zu - + Accept Einwilligen - + Decline Ablehnen - + By connecting to this server and agreeing to this notice, you agree to the following: Durch das Verbinden mit diesem Server und das Akzeptieren des Lizenztextes willigst du folgenden Bedingungen ein: - + You agree that all data, sounds, or other works transmitted to this server are owned and created by you or your licensors, and that you are making these data, sounds or other works available via the following Creative Commons License (for more information on this license, see - + You are free to: - + Share - + copy and redistribute the material in any medium or format - + Adapt - + remix, transform, and build upon the material - + The licensor cannot revoke these freedoms as long as you follow the license terms. - + Under the following terms: - + Attribution - + You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. - + NonCommercial - + You may not use the material for commercial purposes. - + ShareAlike - + If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. - + No additional restrictions - + You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. @@ -1615,270 +1615,270 @@ CMusProfDlg - + server. This tag will also show up at each client which is connected to the same server as you. If the name is left empty, the IP address is shown instead. -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 or name edit box Alias oder Name Eingabefeld - + Instrument picture button Instrumentenbild Knopf - + Country flag button Landesflagge Knopf - + City edit box Stadt Eingabefeld - + Skill level combo box Fähigkeit Auswahlbox - - - + + + None Kein - - + + Musician Profile Musikerprofil - + Alias/Name - + Instrument - + Country Land - + City Stadt - + Skill Können - + &Close &Schließen - + Beginner Anfänger - + Intermediate Mittlere Spielstärke - + Expert Experte - + Set your name or an alias here so that the other musicians you want to play with know who you are. Additionally you may set an instrument picture of the instrument you play and a flag of the country you are living. The city you live in and the skill level of playing your instrument may also be added. 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. - + What you set here will appear at your fader on the mixer board when you are connected to a Was man hier sieht wird auch am Fader im Mixer angezeigt, wenn du mit einem - + Drum Set Schlagzeug - + Djembe Djembe - + Electric Guitar E-Gitarre - + Acoustic Guitar Akustikgitarre - + Bass Guitar E-Bass - + Keyboard Keyboard - + Synthesizer Synthesizer - + Grand Piano Flügel - + Accordion Akkordeon - + Vocal Gesang - + Microphone Mikrofon - + Harmonica Mundharmonika - + Trumpet Trompete - + Trombone Posaune - + French Horn Waldhorn - + Tuba Tuba - + Saxophone Saxophon - + Clarinet Klarinette - + Flute Flöte - + Violin Violine - + Cello Cello - + Double Bass Kontrabass - + Recorder Recorder - + Streamer - + Listener Zuhörer - + Guitar+Vocal Gitarre+Gesang - + Keyboard+Vocal Keyboard+Gesang - + Bodhran - + Bassoon Fagott - + Oboe Oboe - + Harp Harfe - + Viola Viola - + Congas Congas - + Bongo Bongos @@ -2356,4 +2356,12 @@ konnte nicht gestartet werden wegen Problemen mit dem Audiogerät. + + global + + + For more information use the What's This help (help menu, right mouse button or Shift+F1) + 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 - + For details on the contributions check out the Para más detalles sobre los contribuidores consulta la - + Github Contributors list lista de Contribuidores en Github - + Spanish Español - + French Francés - + Portuguese Portugués - + Dutch Neerlandés - + German Alemán - + About Acerca de - + , Version , Versión - + Internet Jam Session Software Internet Jam Session Software - + Under the GNU General Public License (GPL) Bajo la GNU General Public License (GPL) @@ -1411,7 +1411,7 @@ - The server list is filered by the given text. Note that the filter is case insensitive. + The server list is filtered by the given text. Note that the filter is case insensitive. 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 - + &Help &Ayuda - - + + Getting &Started... Cómo &Empezar... - + Software &Manual... Manual del &Software... - + What's &This Qué es &Esto - + &About... &Acerca de... @@ -1520,102 +1520,102 @@ CLicenceDlg - + I &agree to the above licence terms &Acepto los términos de la licencia arriba expuestos - + Accept Acepto - + Decline No Acepto - + By connecting to this server and agreeing to this notice, you agree to the following: Al conectarte a este servidor y aceptar esta notificación, aceptas lo siguiente: - + You agree that all data, sounds, or other works transmitted to this server are owned and created by you or your licensors, and that you are making these data, sounds or other works available via the following Creative Commons License (for more information on this license, see 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 - + You are free to: Ud. es libre de: - + Share Compartir - + copy and redistribute the material in any medium or format copiar y redistribuir el material en cualquier medio o formato - + Adapt Adaptar - + remix, transform, and build upon the material remezclar, transformar y construir a partir del material - + The licensor cannot revoke these freedoms as long as you follow the license terms. El licenciante no puede revocar estas libertades en tanto Ud. siga los términos de la licencia. - + Under the following terms: Bajo los siguientes términos: - + Attribution Atribución - + You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. 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. - + NonCommercial No-Comercial - + You may not use the material for commercial purposes. No puede utilizar el material con fines comerciales. - + ShareAlike ShareAlike - + If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. Si remezcla, transforma o construye sobre el material, debe distribuir sus contribuciones bajo la misma licencia que el original. - + No additional restrictions Sin restricciones adicionales - + You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. 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 - + server. This tag will also show up at each client which is connected to the same server as you. If the name is left empty, the IP address is shown instead. 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. - + Alias or name edit box Campo para alias o nombre - + Instrument picture button Botón imagen instrumento - + Country flag button Botón bandera país - + City edit box Ciudad - + Skill level combo box Nivel de habilidad - - - + + + None Ninguno - - + + Musician Profile Perfil Músico - + Alias/Name Alias/Nombre - + Instrument Instrumento - + Country País - + City Ciudad - + Skill Habilidad - + &Close &Cerrar - + Beginner Principiante - + Intermediate Intermedio - + Expert Experto - + Set your name or an alias here so that the other musicians you want to play with know who you are. Additionally you may set an instrument picture of the instrument you play and a flag of the country you are living. The city you live in and the skill level of playing your instrument may also be added. 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. - + What you set here will appear at your fader on the mixer board when you are connected to a Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor - + Drum Set Batería - + Djembe Djembé - + Electric Guitar Guitarra Eléctrica - + Acoustic Guitar Guitarra Acústica - + Bass Guitar Bajo Eléctrico - + Keyboard Teclado - + Synthesizer Sintetizador - + Grand Piano Piano de Cola - + Accordion Acordeón - + Vocal Voz - + Microphone Micrófono - + Harmonica Armónica - + Trumpet Trompeta - + Trombone Trombón - + French Horn Trompa - + Tuba Tuba - + Saxophone Saxofón - + Clarinet Clarinete - + Flute Flauta - + Violin Violín - + Cello Violonchelo - + Double Bass Contrabajo - + Recorder Grabadora - + Streamer Streamer - + Listener Oyente - + Guitar+Vocal Guitarra+Voz - + Keyboard+Vocal Teclado+Voz - + Bodhran Bodhran - + Bassoon Fagot - + Oboe Oboe - + Harp Arpa - + Viola Viola - + Congas Congas - + Bongo Bongo @@ -2364,4 +2364,12 @@ no pudo arrancar debido a problemas con el dispositivo de audio. + + global + + + For more information use the What's This help (help menu, right mouse button or Shift+F1) + + + 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 - + For details on the contributions check out the Pour plus de détails sur les contributions, consultez la - + Github Contributors list liste de contributeurs sur github - + Spanish - + Espagnol - + French - + Français - + Portuguese - + Portugais - + Dutch - + Néerlandais - + German - + Allemand - + About À propos - + , Version , version - + Internet Jam Session Software Logiciels de bœuf sur Internet - + Under the GNU General Public License (GPL) Sous la licence public général GNU (GPL) @@ -339,12 +339,12 @@ Chat Window - + Fenêtre de tchate The chat window shows a history of all chat messages. - + La fenêtre de tchate affiche un historique de tous les messages de chat. @@ -354,12 +354,12 @@ Input Message Text - + Saisie du texte du message Enter the chat message text in the edit box and press enter to send the message to the server which distributes the message to all connected clients. Your message will then show up in the chat window. - + 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 @@ If the - + Si le logiciel software, you should not hear your singing/instrument in the loudspeaker or your headphone when the - + , vous ne cevriez pas entendre votre chant/instrument dans le haut-parleur ou votre casque lorsque le logiciel software is connected and you play your instrument/sing in the microphone, the LED level meter should flicker. If this is not the case, you have probably selected the wrong input channel (e.g. line in instead of the microphone input) or set the input gain too low in the (Windows) audio mixer. - + 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). For a proper usage of the - + Pour un bon usage du logiciel software is not connected. This can be achieved by muting your input audio channel in the Playback mixer (not the Recording mixer!). - + 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 @@ In case the auto setting of the jitter buffer is enabled, the network buffers of the local client and the remote server are set to a conservative value to minimize the audio dropout probability. To tweak the audio delay/latency it is recommended to disable the auto setting functionality and to lower the jitter buffer size manually by using the sliders until your personal acceptable limit of the amount of dropouts is reached. The LED indicator will visualize the audio dropouts of the local jitter buffer by a red light. - + 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 @@ Sound Card Device - + Périphérique d'interface audio The ASIO driver (sound card) can be selected using - + Le pilote ASIO (interface audio) peut être sélectionné en utilisant under the Windows operating system. Under MacOS/Linux, no sound card selection is possible. If the selected ASIO driver is not valid an error message is shown and the previous valid driver is selected. - + 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é. If the driver is selected during an active connection, the connection is stopped, the driver is changed and the connection is started again automatically. - + 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 @@ - The server list is filered by the given text. Note that the filter is case insensitive. - + The server list is filtered by the given text. Note that the filter is case insensitive. + 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 - + &Help &Aide - - + + Getting &Started... Premier pa&s... - + Software &Manual... &Manuel du logiciel... - + What's &This - C'es&t quoi ça + Qu'est-ce que c'est ? - + &About... À &propos @@ -1524,102 +1524,102 @@ CLicenceDlg - + I &agree to the above licence terms J'&accepte les conditions de licence ci-dessus - + Accept Accepter - + Decline Décliner - + By connecting to this server and agreeing to this notice, you agree to the following: En vous connectant à ce serveur et en acceptant le présent avis, vous acceptez ce qui suit : - + You agree that all data, sounds, or other works transmitted to this server are owned and created by you or your licensors, and that you are making these data, sounds or other works available via the following Creative Commons License (for more information on this license, see 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 - + You are free to: Vous êtes libres de : - + Share Partager - + copy and redistribute the material in any medium or format copier et redistribuer le matériel sur tout support ou format - + Adapt Adapter - + remix, transform, and build upon the material remixer, transformer et développer à partir du matériel - + The licensor cannot revoke these freedoms as long as you follow the license terms. Le donneur de licence ne peut pas révoquer ces libertés tant que vous respectez les conditions de la licence. - + Under the following terms: Dans les conditions suivantes : - + Attribution Attribution - + You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. 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. - + NonCommercial Non commercial - + You may not use the material for commercial purposes. Vous ne pouvez pas utiliser le matériel à des fins commerciales. - + ShareAlike Partager à l'identique - + If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. Si vous remixez, transformez ou développez à partir du matériel, vous devez distribuer vos contributions sous la même licence que l'original. - + No additional restrictions Aucune restriction supplémentaire - + You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. 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 - + server. This tag will also show up at each client which is connected to the same server as you. If the name is left empty, the IP address is shown instead. - + . 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. - + Alias or name edit box - + Instrument picture button Bouton d'image d'instrument - + Country flag button Bouton de drapeau de pays - + City edit box - + Skill level combo box - - - + + + None Aucune - - + + Musician Profile Profil de musicien - + Alias/Name Pseudo/nom - + Instrument Instrument - + Country Pays - + City Ville - + Skill Compétence - + &Close &Fermer - + Beginner Débutant - + Intermediate Intermédiaire - + Expert Expert - + Set your name or an alias here so that the other musicians you want to play with know who you are. Additionally you may set an instrument picture of the instrument you play and a flag of the country you are living. The city you live in and the skill level of playing your instrument may also be added. - + 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. - + What you set here will appear at your fader on the mixer board when you are connected to a - + Ce que vous réglez ici apparaîtra au niveau de votre fader sur la table de mixage lorsque vous serez connecté à un serveur - + Drum Set Batterie - + Djembe Djembé - + Electric Guitar Guitare électrique - + Acoustic Guitar Guitare accoustique - + Bass Guitar Guitare basse - + Keyboard Clavier - + Synthesizer Synthétiseur - + Grand Piano Piano à queue - + Accordion Accordéon - + Vocal Voix - + Microphone Microphone - + Harmonica Harmonica - + Trumpet Trompette - + Trombone Trombone - + French Horn Cor d'harmonie - + Tuba Tuba - + Saxophone Saxophone - + Clarinet Clarinette - + Flute Flute - + Violin Violon - + Cello Violoncelle - + Double Bass Contrebasse - + Recorder Enregistreur - + Streamer Diffuseur - + Listener Auditeur - + Guitar+Vocal Guitare+voix - + Keyboard+Vocal Clavier+voix - + Bodhran Bodhran - + Bassoon Basson - + Oboe Hautbois - + Harp Harpe - + Viola Alto - + Congas Congas - + Bongo Bongo @@ -2031,7 +2031,7 @@ E&xit - &Quitter + &Quitter @@ -2368,4 +2368,12 @@ + + global + + + For more information use the What's This help (help menu, right mouse button or Shift+F1) + + + 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 @@ uses the following libraries, resources or code snippets: - 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 - + For details on the contributions check out the Voor details over de bijdragen, zie de - + Github Contributors list Github Bijdragerslijst - + Spanish Spaans - + French Frans - + Portuguese Portugees - + Dutch - + Nederlands - + German - + Duits - + About Over - + , Version , Versie - + Internet Jam Session Software - + Internet Jamsessie Software - + Under the GNU General Public License (GPL) Onder de GNU General Public License (GPL) @@ -119,7 +119,7 @@ TextLabelVersion - + TextLabelVersion @@ -129,12 +129,12 @@ A&bout - + &Over &Libraries - + &Libraries @@ -149,7 +149,7 @@ &OK - + &OK @@ -157,7 +157,7 @@ Analyzer Console - + Analyzer Console @@ -170,7 +170,7 @@ Server - + Server @@ -212,7 +212,7 @@ Mixer Fader - + Mixer Fader @@ -232,7 +232,7 @@ Mute button - Dempingsknop + Dempknop @@ -365,7 +365,7 @@ Cl&ear - + Wiss&en @@ -428,7 +428,7 @@ Connect/Disconnect Button - Aansluiten/afkoppelen-knop + Verbinden/Verbreken-knop @@ -591,7 +591,7 @@ &Connection Setup... - &Connection Setup... + &Verbindingsinstellingen... @@ -646,7 +646,7 @@ D&isconnect - D&isconnect + &Afmelden @@ -689,12 +689,12 @@ Mute Myself - Stomme ikzelf + Demp Mijzelf C&onnect - C&onnect + &Verbinden @@ -709,7 +709,7 @@ Reverb - Reverb + Galm @@ -987,7 +987,7 @@ If enabled, each client channel will display a pre-fader level bar. - 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 @@ Manual - Handleiding + Handmatig @@ -1158,7 +1158,7 @@ Size: - Grootte: + Size: @@ -1279,7 +1279,7 @@ Size - Grootte + Size @@ -1309,7 +1309,7 @@ Fancy Skin - + Fancy Skin @@ -1331,7 +1331,7 @@ val - + val @@ -1403,7 +1403,7 @@ - The server list is filered by the given text. Note that the filter is case insensitive. + The server list is filtered by the given text. Note that the filter is case insensitive. De serverlijst wordt gefilterd met de gegeven tekst. Merk op dat het filter ongevoelig is voor hoofdletters. @@ -1483,28 +1483,28 @@ CHelpMenu - + &Help &Hulp - - + + Getting &Started... Aan de slag... - + Software &Manual... Softwarehandleiding... - + What's &This - Wat is dit + Wat Is Dit - + &About... &Over... @@ -1512,102 +1512,102 @@ CLicenceDlg - + I &agree to the above licence terms Ik stem in met bovenstaande licentievoorwaarden - + Accept Accepteer - + Decline Niet akkoord - + By connecting to this server and agreeing to this notice, you agree to the following: Door verbinding te maken met deze server en akkoord te gaan met deze mededeling, gaat u akkoord met het volgende: - + You agree that all data, sounds, or other works transmitted to this server are owned and created by you or your licensors, and that you are making these data, sounds or other works available via the following Creative Commons License (for more information on this license, see 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 - + You are free to: Je staat vrij om: - + Share het materiaal - + copy and redistribute the material in any medium or format te delen, te kopiëren en te herdistribueren in elk medium of formaat - + Adapt Aanpassen - + remix, transform, and build upon the material remixen, transformeren en bouwen op het materiaal - + The licensor cannot revoke these freedoms as long as you follow the license terms. De licentiegever kan deze vrijheden niet herroepen zolang u zich aan de licentievoorwaarden houdt. - + Under the following terms: Onder de volgende voorwaarden: - + Attribution Naamsvermelding - + You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. 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. - + NonCommercial Niet-commercieel - + You may not use the material for commercial purposes. U mag het materiaal niet voor commerciële doeleinden gebruiken. - + ShareAlike hareAlike - + If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. Als u het materiaal remixt, transformeert of uitbouwt, moet u uw bijdragen distribueren onder dezelfde licentie als het origineel. - + No additional restrictions Geen extra beperkingen - + You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. 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 - - + + Musician Profile Muzikantenprofiel - + Alias/Name Alias/Naam - + Instrument Instrument - + Country Land - + City Stad - + Skill Vaardigheid - + &Close &Sluiten - - - + + + None Geen - + Beginner Beginner - + Intermediate Gemiddeld - + Expert Gevorderd - + Set your name or an alias here so that the other musicians you want to play with know who you are. Additionally you may set an instrument picture of the instrument you play and a flag of the country you are living. The city you live in and the skill level of playing your instrument may also be added. 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. - + What you set here will appear at your fader on the mixer board when you are connected to a Wat u hier instelt, verschijnt bij uw fader op het mengpaneel wanneer u verbonden bent met een - + server. This tag will also show up at each client which is connected to the same server as you. If the name is left empty, the IP address is shown instead. 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 or name edit box Alias of naam bewerkingsvak - + Instrument picture button Afbeelding van het instrument - + Country flag button Landvlag knop - + City edit box Bewerkingsbox voor de stad - + Skill level combo box Combo-box voor vaardigheidsniveau - + Drum Set Drumstel - + Djembe Djembe - + Electric Guitar Elektrische Gitaar - + Acoustic Guitar Akoestische Gitaar - + Bass Guitar Basgitaar - + Keyboard Toetsenbord - + Synthesizer Synthesizer - + Grand Piano Piano - + Accordion Accordeon - + Vocal Vocaal - + Microphone Microfoon - + Harmonica Harmonica - + Trumpet Trompet - + Trombone Trombone - + French Horn Hoorn - + Tuba Tuba - + Saxophone Saxofoon - + Clarinet Klarinet - + Flute Fluit - + Violin Viool - + Cello Cello - + Double Bass Contrabas - + Recorder Opnemer - + Streamer Streamer - + Listener Luisteraar - + Guitar+Vocal Gitaar+Vocaal - + Keyboard+Vocal Toetsenbord+Vocaal - + Bodhran Bodhran - + Bassoon Fagot - + Oboe Hobo - + Harp Harp - + Viola Viola - + Congas Congas - + Bongo Bongo @@ -2046,7 +2046,7 @@ Manual - Handleiding + Handmatig @@ -2170,7 +2170,7 @@ TextLabelNameVersion - + TextLabelNameVersion @@ -2356,4 +2356,12 @@ kon niet worden gestart vanwege problemen met de audio-interface. + + global + + + For more information use the What's This help (help menu, right mouse button or Shift+F1) + 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 @@ software enables musicians to perform real-time jam sessions over the internet. - + permite aos músicos realizar jam sessions em tempo real pela Internet. @@ -25,7 +25,7 @@ There is a - + Existe um servidor @@ -40,75 +40,75 @@ Qt cross-platform application framework - + Estrutura de aplicações multiplataforma Qt Audio reverberation code by Perry R. Cook and Gary P. Scavone - + Código de reverberação de áudio por Perry R. Cook e Gary P. Scavone Some pixmaps are from the - + Alguns pixmaps são do Country flag icons from Mark James - - - - - For details on the contributions check out the - + Ícones de bandeira do país de Mark James + For details on the contributions check out the + Para detalhes sobre as contribuições, consulte a + + + Github Contributors list - + lista de colaboradores do Github - + Spanish - + Espanhol - + French - + Francês - + Portuguese - + Português - + Dutch - + Holandês - + German - + Alemão - + About Sobre o - + , Version , Versão - + Internet Jam Session Software Programa de Jam Sessions pela Internet - + Under the GNU General Public License (GPL) Sob a Licença Pública Geral GNU (GPL) @@ -133,22 +133,22 @@ A&bout - + &Sobre &Libraries - + &Bibliotecas &Contributors - + &Colaboradores &Translation - + &Tradução Author: Volker Fischer @@ -1164,7 +1164,7 @@ preferred - + preferido @@ -1415,7 +1415,7 @@ - The server list is filered by the given text. Note that the filter is case insensitive. + The server list is filtered by the given text. Note that the filter is case insensitive. 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 - + &Help - + &Ajuda - - + + Getting &Started... Como Começa&r... - + Software &Manual... &Manual do Programa... - + What's &This O que é &isto - + &About... &Sobre... @@ -1524,102 +1524,102 @@ CLicenceDlg - + I &agree to the above licence terms Eu &aceito os termos da licença acima - + Accept Aceitar - + Decline Rejeitar - + By connecting to this server and agreeing to this notice, you agree to the following: Ao ligar-se a este servidor e concordar com este aviso, está a concordar com o seguinte: - + You agree that all data, sounds, or other works transmitted to this server are owned and created by you or your licensors, and that you are making these data, sounds or other works available via the following Creative Commons License (for more information on this license, see 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 - + You are free to: Você tem o direito de: - + Share Compartilhar - + copy and redistribute the material in any medium or format copiar e redistribuir o material em qualquer suporte ou formato - + Adapt Adaptar - + remix, transform, and build upon the material remisturar, transformar, e criar a partir do material - + The licensor cannot revoke these freedoms as long as you follow the license terms. O licenciante não pode revogar estes direitos desde que você respeite os termos da licença. - + Under the following terms: De acordo com os termos seguintes: - + Attribution Atribuição - + You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. 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. - + NonCommercial NãoComercial - + You may not use the material for commercial purposes. Você não pode usar o material para fins comerciais. - + ShareAlike CompartilhaIgual - + If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. 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. - + No additional restrictions Sem restrições adicionais - + You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. 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 - + server. This tag will also show up at each client which is connected to the same server as you. If the name is left empty, the IP address is shown instead. . 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. - + Alias or name edit box Caixa de edição do nome ou pseudônimo - + Instrument picture button Botão da imagem do instrumento - + Country flag button Botão da bandeira do país - + City edit box Caixa de edição da cidade - + Skill level combo box Caixa do nível de habilidade - - - + + + None Nenhum - - + + Musician Profile Perfil do músico - + Alias/Name Nome/Alcunha - + Instrument Instrumento - + Country País - + City Cidade - + Skill Habilidade - + &Close &Fechar - + Beginner Principiante - + Intermediate Intermediário - + Expert Avançado - + Set your name or an alias here so that the other musicians you want to play with know who you are. Additionally you may set an instrument picture of the instrument you play and a flag of the country you are living. The city you live in and the skill level of playing your instrument may also be added. 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. - + What you set here will appear at your fader on the mixer board when you are connected to a O que definir aqui aparecerá por baixo do seu fader na secção de mistura quando estiver ligado a um servidor - + Drum Set Bateria - + Djembe Djembe - + Electric Guitar Guitarra Elétrica - + Acoustic Guitar Guitarra Acústica - + Bass Guitar Baixo - + Keyboard Teclado - + Synthesizer Sintetizador - + Grand Piano Piano de Cauda - + Accordion Acordeão - + Vocal Voz - + Microphone Microfone - + Harmonica Harmónica - + Trumpet Trompete - + Trombone Trombone - + French Horn Trompa Francesa - + Tuba Tuba - + Saxophone Saxofone - + Clarinet Clarinete - + Flute Flauta - + Violin Violino - + Cello Violoncelo - + Double Bass Contrabaixo - + Recorder Gravador - + Streamer Streamer - + Listener Ouvinte - + Guitar+Vocal Guitarra+Voz - + Keyboard+Vocal Teclado+Voz - + Bodhran Bodhrán - + Bassoon Fagote - + Oboe Oboé - + Harp Harpa - + Viola Viola de Arco - + Congas - + Congas - + Bongo - + Bongo @@ -2317,7 +2317,7 @@ Error closing stream: $s - + Erro ao fechar o stream: $s @@ -2368,4 +2368,12 @@ não pôde ser iniciado devido a problemas na interface de áudio. + + global + + + For more information use the What's This help (help menu, right mouse button or Shift+F1) + 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 } }