From 3c8452ce69c60ebab06870831532768cf0bec07d Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 27 May 2020 15:17:48 +0100 Subject: [PATCH 001/936] Update manual.md --- src/res/homepage/manual.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/res/homepage/manual.md b/src/res/homepage/manual.md index 96f801a72a..2eee1274ec 100644 --- a/src/res/homepage/manual.md +++ b/src/res/homepage/manual.md @@ -10,7 +10,7 @@ Main Window ![LEDs](led.png) -The Delay status LED indicator shows the current audio delay status. If the light is green, the delay +These how the current audio delay status. If the light is green, the delay is perfect for a jam session. If the light is yellow, a session is still possible but it may be harder to play. If the light is red, the delay is too large for jamming. From 4c555abf7c7e73b673d0ab6321b56cb0ed4aef0b Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 27 May 2020 16:49:40 +0100 Subject: [PATCH 002/936] Update manual.md --- src/res/homepage/manual.md | 82 ++++++++++++++++++-------------------- 1 file changed, 39 insertions(+), 43 deletions(-) diff --git a/src/res/homepage/manual.md b/src/res/homepage/manual.md index 2eee1274ec..bafc00b00d 100644 --- a/src/res/homepage/manual.md +++ b/src/res/homepage/manual.md @@ -10,13 +10,15 @@ Main Window ![LEDs](led.png) -These how the current audio delay status. If the light is green, the delay -is perfect for a jam session. If the light is yellow, a session is still possible but it may be harder -to play. If the light is red, the delay is too large for jamming. +The **Status** LED shows the current audio delay status. -The Buffer status LED indicator shows the current audio/streaming status. If the light is green, there -are no buffer overruns/underruns and the audio stream is not interrupted. If the light is red, the -audio stream is interrupted caused by one of the following problems: +* **Green** - The delay is perfect for a jam session + +* **Yellow** - A session is still possible but it may be harder to play + +* **Red** - The delay is too large for jamming + +The **Buffers** LED indicator shows the current audio/streaming status. If the light is **red**, the audio stream is interrupted. This is caused by one of the following problems: - The network jitter buffer is not large enough for the current network/audio interface jitter. - The sound card buffer delay (buffer size) is set to too small a value. @@ -27,66 +29,62 @@ audio stream is interrupted caused by one of the following problems: ![Input level](inputlevel.jpg) -The input level indicators show the input level of the two stereo channels of the current selected audio input. +This shows the input level of the two stereo channels of the current selected audio input. Make sure not to clip the input signal to avoid distortions of the audio signal. ### Chat button opens the Chat dialog ![Chat dialog](chat.jpg) -Press the Chat button to open the Chat dialog. The chat text entered in that dialog is transmitted to +The chat text entered in that dialog is transmitted to all connected clients. If a new chat message arrives and the Chat dialog is not already open, it will -be opened automatically at all clients. +opened automatically for all clients. ### My Profile button opens the Musician Profile dialog ![My profile dialog](profile.jpg) -Press the My Profile button to open the Musician Profile dialog. In this dialog you can set your Alias/Name +Use this to set your Alias/Name which is displayed below your fader in the server audio mixer board. If an instrument and/or country is set, -icons for these selections will also be shown below your fader. The skill setting changes the background of -the fader tag and the city entry shows up in the tool tip of the fader tag. This tool tip is shown in the following picture. +icons for these selections will also be shown below your fader. The skill setting changes the background colour of +the fader tag and the city entry shows up in the tool tip of the fader tag (see screenshot below). ![Fader tag tool tip](fadertagtooltip.jpg) ### Connect/disconnect button -Push this button to connect to a server. A dialog where you can select a server will open. If you are connected, +Opens a dialog where you can select a server to connect to. If you are connected, pressing this button will end the session. ![Connect dialog](connect.jpg) -The server list shows a list of available servers which are registered at the central server. Select a server -from the list and press the connect button to connect to this server. Alternatively, double click a server from -the list to connect to it. If a server is occupied, a list of the connected musicians is available by expanding -the list item. Permanent servers are shown in bold font. +Shows a list of available servers which are registered at the Central Server. Select a server +from this list and press the Connect button to connect to this server. Alternatively, double click a server from +the list to connect to it. Permanent servers (those available for longer than 24 hours) are shown in bold font. -Note that it may take some time to retrieve the server list from the central server. If no valid central server -address is specified in the settings, no server list will be available. - -Alternatively, you can enter an IP address or URL of the server running the Jamulus server in the server address +If you know the IP address or URL of a server, you can connect to it using the Server Name/Address field. An optional port number can be added after the IP address or URL using a colon as a separator, e.g, -jamulus.dyndns.org:22124. A list of the most recent used server IP addresses or URLs is available for selection. +jamulus.dyndns.org:22124. The field will also show a list of the most recently used server addresses. -### Reverberation effect +### Reverb effect ![Reverberation](reverberation.jpg) -A reverberation effect can be applied to one local mono audio channel or to both channels in stereo mode. -The mono channel selection and the reverberation level can be modified. If, e.g., the microphone signal is fed -into the right audio channel of the sound card and a reverberation effect shall be applied, set the channel selector -to right and move the fader upwards until the desired reverberation level is reached. +Reverb can be applied to one local mono audio channel or to both channels in stereo mode. +The mono channel selection and the reverberation level can be modified. For example, if a microphone signal is fed +in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector +to the right and move the fader upwards until the desired reverb level is reached. -The reverberation effect requires significant CPU so it should only be used on fast PCs. If the reverberation -level fader is set to minimum (which is the default setting), the reverberation effect is switched off and does +Reverb requires significant CPU so it should only be used on fast PCs. If the reverb +level fader is set to minimum (wthe default setting), the effect is switched off and does not cause any additional CPU usage. ### Local audio pan / balance control ![Local audio pan / balance control](audiofader.jpg) -With the balance control, the relative levels of the left and right local audio channels can be changed. For a mono signal -it acts like a panning between the two channels. If, e.g., a microphone is connected to the right input channel and +Controls the relative levels of the left and right local audio channels. For a mono signal +it acts as a pan between the two channels. For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows L -x, where x is the current attenuation indicator. @@ -94,13 +92,14 @@ in a direction where the label above the fader shows L -x, where x is the curren ![Audio faders](faders.jpg) -In the audio mixer frame, a fader is shown for each connected client at the server, including yourself. +In the audio mixer frame, a fader is shown for each connected client at the server (including yourself). The faders allow you to adjust the level of what you hear without affecting what others hear. The VU meter shows the input level at the server - that is, what you are sending. -Using the Mute checkbox prevents the indicated channel being heard in your local mix. +Using the Mute button prevents the indicated channel being heard in your local mix. Note that you will continue to see the level indicators moving if sound from the muted musician is reaching the server. + +The Solo button allows you to hear one or more musicians on their own. Those not soloed will be muted. -The solo checkboxes allow you to hear only one, or several, channels, with those not soloed being muted. Settings Window --------------- @@ -126,8 +125,7 @@ a different actual sound card channel can be selected. ### Enable Small Network Buffers -If enabled, the support for very small network audio packets is activated. Very small network packets are only -actually used if the sound card buffer delay is smaller than 128 samples. The smaller the network buffers, the +Allows support for very small network audio packets. These are only used if the sound card buffer delay is smaller than 128 samples. The smaller the network buffers, the lower the audio latency. But at the same time the network load increases and the probability of audio dropouts also increases. @@ -135,17 +133,15 @@ also increases. ![Buffer delay](bufferdelay.png) -The buffer delay setting is a fundamental setting of the Jamulus software. This setting has influence on many +The buffer delay setting is a fundamental setting of the Jamulus software. This setting has an influence on many connection properties. Three buffer sizes are supported: -- 64 samples: This is the preferred setting since it provides the lowest latency but does not work with all sound cards. -- 128 samples: This setting should work for most available sound cards. -- 256 samples: This setting should only be used if only a very slow computer or a slow internet connection is available. +- 64 samples: The preferred setting. Provides the lowest latency but does not work with all sound cards. +- 128 samples: Should work for most available sound cards. +- 256 samples: Should only be used on very slow computers, or with a slow internet connection. Some sound card drivers do not allow the buffer delay to be changed from within the Jamulus software. -In this case the buffer delay setting is disabled. To change the actual buffer delay, -this setting has to be changed in the sound card driver. On Windows, press the ASIO Setup button to open -the driver settings panel. +In this case the buffer delay setting is disabled and has to be changed using the sound card driver. On Windows, press the ASIO Setup button to open the driver settings panel. ![Buffer delay Windows](bufferdelaywindows.jpg) From f5b18226b32dc967581a070d3c0c2aa6011d334f Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 27 May 2020 19:14:20 +0100 Subject: [PATCH 003/936] Update manual.md --- src/res/homepage/manual.md | 58 ++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 30 deletions(-) diff --git a/src/res/homepage/manual.md b/src/res/homepage/manual.md index bafc00b00d..eb86e1343d 100644 --- a/src/res/homepage/manual.md +++ b/src/res/homepage/manual.md @@ -159,17 +159,17 @@ The buffer setting is therefore a trade-off between audio quality and overall de ![Jitter buffer](jitterbuffer.png) -The jitter buffer compensates for network and sound card timing jitters. The size of this jitter buffer has -therefore influence on the quality of the audio stream (how many dropouts occur) and the overall delay +The jitter buffer compensates for network and sound card timing jitters. The size of the buffer +therefore influences the quality of the audio stream (how many dropouts occur) and the overall delay (the longer the buffer, the higher the delay). -The jitter buffer size can be manually chosen for the local client and the remote server. For the local jitter +You can set the jitter buffer size manually for the local client and the remote server. For the local jitter buffer, dropouts in the audio stream are indicated by the light below the jitter buffer size faders. -If the light turns to red, a buffer overrun/underrun took place and the audio stream is interrupted. +If the light turns to red, a buffer overrun/underrun has taken place and the audio stream is interrupted. The jitter buffer setting is therefore a trade-off between audio quality and overall delay. -An auto setting of the jitter buffer size setting is available. If the check Auto is enabled, the jitter buffers +If the Auto setting is enabled, the jitter buffers of the local client and the remote server are set automatically based on measurements of the network and sound card timing jitter. If the Auto check is enabled, the jitter buffer size faders are disabled (they cannot be moved with the mouse). @@ -177,64 +177,62 @@ timing jitter. If the Auto check is enabled, the jitter buffer size faders are d ![Audio channels](audiochannels.png) -Select the number of audio channels to be used for communication between client and server. There are three modes -available. The mono and stereo modes use one and two audio channels respectively. In mono-in/stereo-out mode -the audio signal which is sent to the server is mono but the return signal is stereo. This is useful if the sound card has the instrument on one input channel and the microphone on the other channel. In that case -the two input signals can be mixed to one mono channel but the server mix can be heard in stereo. +Selects the number of audio channels to be used for communication between client and server. There are three modes +available: -Enabling the stereo streaming mode will increase the stream data rate. Make sure that the current upload rate does -not exceed the available bandwidth of your internet connection. +Mono and Stereo modes use one and two audio channels respectively. -In stereo streaming mode, no audio channel selection for the reverberation effect will be available on -the main window since the effect is applied on both channels in this case. +Mono-in/Stereo-out: The audio signal sent to the server is mono but the return signal is stereo. This is useful if the sound card has the instrument on one input channel and the microphone on the other. In that case +the two input signals can be mixed to one mono channel but the server mix is heard in stereo. + +Enabling stereo mode will increase your stream's data rate. Make sure your upload rate does +not exceed the available upload speed of your internet connection. + +In stereo streaming mode, no audio channel selection for the reverb effect will be available on +the main window since the effect is applied to both channels in this case. ### Audio quality ![Audio quality](audioquality.png) -Select the desired audio quality. A low, normal or high audio quality can be selected. The higher the audio quality, -the higher the audio stream data rate. Make sure that the current upload rate does not exceed the available bandwidth -of your internet connection. +he higher the audio quality, the higher your audio stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. ### New client level ![New client level](newclientlevel.png) -The new client level setting defines the fader level of a new connected client in percent. I.e. if a new client connects -to the current server, it will get the specified initial fader level if no other fader level of a previous connection of +This setting defines the fader level of a newly connected client in percent. If a new musician connects +to the current server, they will get the specified initial fader level if no other fader level from a previous connection of that client was already stored. ### Fancy skin ![Fancy skin](fancyskin.png) -If enabled, a fancy skin will be applied to the main window. +This applies a fancy skin to the main window. ### Display channel levels ![Display channel levels](displaychannellevels.png) -If enabled, the channel input level for each connected client will be displayed in the mixer. +This displays the channel input levels for each connected client. -### Central server address +### Custom central server address ![Central server address](centralserveraddress.png) -The central server address is the IP address or URL of the central server at which the server list of the connection -dialog is managed. With the central server address type either the local region can be selected of the default -central servers or a manual address can be specified. +Leave this blank unless you need to enter the address of a cenrtral server other than the default. ### Current connection status parameter ![Indicators](indicators.png) -The ping time is the time required for the audio stream to travel from the client to the server and back again. -This delay is introduced by the network. This delay should be as low as 20-30 ms. If this delay is higher (e.g., 50-60 ms), +The Ping Time is the time required for the audio stream to travel from the client to the server and back again. +This delay is introduced by the network and should about 20-30 ms. If this delay is higher than about 50ms, your distance to the server is too large or your internet connection is not sufficient. -The overall delay is calculated from the current ping time and the delay which is introduced by the current buffer settings. +Overall Delay is calculated from the current Ping Time and the delay introduced by the current buffer settings. -The upstream rate depends on the current audio packet size and the audio compression setting. Make sure that the upstream -rate is not higher than the available rate (check the upstream capabilities of your internet connection by, e.g., using -[speedtest.net](http://speedtest.net)). +Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream +rate is not higher than your available internet upload speed (check this with a service such as [speedtest.net](http://speedtest.net)). From 96a7b3e5f813cb4c29154eda9d28255258529425 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 27 May 2020 19:22:37 +0100 Subject: [PATCH 004/936] Update manual.md --- src/res/homepage/manual.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/res/homepage/manual.md b/src/res/homepage/manual.md index eb86e1343d..83c301f065 100644 --- a/src/res/homepage/manual.md +++ b/src/res/homepage/manual.md @@ -18,25 +18,25 @@ The **Status** LED shows the current audio delay status. * **Red** - The delay is too large for jamming -The **Buffers** LED indicator shows the current audio/streaming status. If the light is **red**, the audio stream is interrupted. This is caused by one of the following problems: +**Buffers** shows the current audio/streaming status. If the light is **red**, the audio stream is interrupted. This is caused by one of the following problems: - The network jitter buffer is not large enough for the current network/audio interface jitter. -- The sound card buffer delay (buffer size) is set to too small a value. -- The upload or download stream rate is too high for the current available internet bandwidth. +- The sound card's buffer delay (buffer size) is too small (see Settings window). +- The upload or download stream rate is too high for your internet bandwidth. - The CPU of the client or server is at 100%. ### Input level ![Input level](inputlevel.jpg) -This shows the input level of the two stereo channels of the current selected audio input. +This shows the level of the two stereo channels for your audio input. Make sure not to clip the input signal to avoid distortions of the audio signal. ### Chat button opens the Chat dialog ![Chat dialog](chat.jpg) -The chat text entered in that dialog is transmitted to +The chat text entered in that dialog is sent to all connected clients. If a new chat message arrives and the Chat dialog is not already open, it will opened automatically for all clients. @@ -58,9 +58,8 @@ pressing this button will end the session. ![Connect dialog](connect.jpg) -Shows a list of available servers which are registered at the Central Server. Select a server -from this list and press the Connect button to connect to this server. Alternatively, double click a server from -the list to connect to it. Permanent servers (those available for longer than 24 hours) are shown in bold font. +The Connection Setup window shows a list of available servers which are registered at the Central Server. Select a server +from this list and press the Connect button to join it. Alternatively, double click on on the server name. Permanent servers (those that have been listed for longer than 24 hours) are shown in bold. If you know the IP address or URL of a server, you can connect to it using the Server Name/Address field. An optional port number can be added after the IP address or URL using a colon as a separator, e.g, From 760f6b732cbeec09c5883aa3ba6e7cf004ba32ea Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 27 May 2020 19:28:23 +0100 Subject: [PATCH 005/936] Update manual.md --- src/res/homepage/manual.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/res/homepage/manual.md b/src/res/homepage/manual.md index 83c301f065..432782878e 100644 --- a/src/res/homepage/manual.md +++ b/src/res/homepage/manual.md @@ -58,8 +58,7 @@ pressing this button will end the session. ![Connect dialog](connect.jpg) -The Connection Setup window shows a list of available servers which are registered at the Central Server. Select a server -from this list and press the Connect button to join it. Alternatively, double click on on the server name. Permanent servers (those that have been listed for longer than 24 hours) are shown in bold. +The Connection Setup window shows a list of available servers. Server operators can optionally list their servers by musical genre. Use the List dropdown to select a genre and press the Connect button to join a server. Alternatively, double click on on the server name. Permanent servers (those that have been listed for longer than 24 hours) are shown in bold. If you know the IP address or URL of a server, you can connect to it using the Server Name/Address field. An optional port number can be added after the IP address or URL using a colon as a separator, e.g, @@ -94,6 +93,7 @@ in a direction where the label above the fader shows L -x, where x is the curren In the audio mixer frame, a fader is shown for each connected client at the server (including yourself). The faders allow you to adjust the level of what you hear without affecting what others hear. The VU meter shows the input level at the server - that is, what you are sending. +If you have set your Audio Channel to Stereo or Steroe Out in your Settings, you will also see a pan control. Using the Mute button prevents the indicated channel being heard in your local mix. Note that you will continue to see the level indicators moving if sound from the muted musician is reaching the server. From 5d7c3f227dbb3040ca5ecb0b137d2f9dd71145db Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 27 May 2020 19:39:21 +0100 Subject: [PATCH 006/936] Update manual.md --- src/res/homepage/manual.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/res/homepage/manual.md b/src/res/homepage/manual.md index 432782878e..5d5a9b44c0 100644 --- a/src/res/homepage/manual.md +++ b/src/res/homepage/manual.md @@ -40,11 +40,11 @@ The chat text entered in that dialog is sent to all connected clients. If a new chat message arrives and the Chat dialog is not already open, it will opened automatically for all clients. -### My Profile button opens the Musician Profile dialog +### Profile window ![My profile dialog](profile.jpg) -Use this to set your Alias/Name +From the View menu, select My Pofile... to set your Alias/Name which is displayed below your fader in the server audio mixer board. If an instrument and/or country is set, icons for these selections will also be shown below your fader. The skill setting changes the background colour of the fader tag and the city entry shows up in the tool tip of the fader tag (see screenshot below). @@ -64,6 +64,10 @@ If you know the IP address or URL of a server, you can connect to it using the S field. An optional port number can be added after the IP address or URL using a colon as a separator, e.g, jamulus.dyndns.org:22124. The field will also show a list of the most recently used server addresses. +### Mute Myself button + +Cuts your stream to the server so that all other musicians cannot hear you. Note that while you will also be able to see your levels, other musicans will not. However, they will see an icon to indicate that you have muted yourself. + ### Reverb effect ![Reverberation](reverberation.jpg) @@ -92,10 +96,11 @@ in a direction where the label above the fader shows L -x, where x is the curren In the audio mixer frame, a fader is shown for each connected client at the server (including yourself). The faders allow you to adjust the level of what you hear without affecting what others hear. -The VU meter shows the input level at the server - that is, what you are sending. -If you have set your Audio Channel to Stereo or Steroe Out in your Settings, you will also see a pan control. -Using the Mute button prevents the indicated channel being heard in your local mix. Note that you will continue to see the level indicators moving if sound from the muted musician is reaching the server. +The VU meter shows the input level at the server - that is, the sound you are sending. +If you have set your Audio Channel to Stereo or Stereo Out in your Settings, you will also see a pan control. + +Using the Mute button prevents the indicated channel being heard in your local mix. Note that you will continue to see their VU meters moving if sound from the muted musician is reaching the server. Your fader position is also unaffected. The Solo button allows you to hear one or more musicians on their own. Those not soloed will be muted. From 868bdbb75fcb91f441acf51fbbaa07f1459e125a Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 27 May 2020 19:41:00 +0100 Subject: [PATCH 007/936] Update manual.md --- src/res/homepage/manual.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/res/homepage/manual.md b/src/res/homepage/manual.md index 5d5a9b44c0..289a5898df 100644 --- a/src/res/homepage/manual.md +++ b/src/res/homepage/manual.md @@ -127,7 +127,7 @@ If the selected sound card device offers more than one input or output channel, and Output Channel Mapping_ settings are visible. For each Jamulus input/output channel (left and right channel) a different actual sound card channel can be selected. -### Enable Small Network Buffers +### Enable small network buffers Allows support for very small network audio packets. These are only used if the sound card buffer delay is smaller than 128 samples. The smaller the network buffers, the lower the audio latency. But at the same time the network load increases and the probability of audio dropouts From eb660f417b1ed046e2d5d78dac21ee0e146a0717 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 27 May 2020 19:49:53 +0100 Subject: [PATCH 008/936] Update manual.md --- src/res/homepage/manual.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/res/homepage/manual.md b/src/res/homepage/manual.md index 289a5898df..2226cd9b34 100644 --- a/src/res/homepage/manual.md +++ b/src/res/homepage/manual.md @@ -4,7 +4,7 @@ Jamulus Help (Software Manual) Main Window ----------- -![Main window](main.jpg) +![Main window](main.png) ### Status LEDs @@ -27,14 +27,14 @@ The **Status** LED shows the current audio delay status. ### Input level -![Input level](inputlevel.jpg) +![Input level](inputlevel.png) This shows the level of the two stereo channels for your audio input. Make sure not to clip the input signal to avoid distortions of the audio signal. ### Chat button opens the Chat dialog -![Chat dialog](chat.jpg) +![Chat dialog](chat.png) The chat text entered in that dialog is sent to all connected clients. If a new chat message arrives and the Chat dialog is not already open, it will @@ -42,21 +42,21 @@ opened automatically for all clients. ### Profile window -![My profile dialog](profile.jpg) +![My profile dialog](profile.png) From the View menu, select My Pofile... to set your Alias/Name which is displayed below your fader in the server audio mixer board. If an instrument and/or country is set, icons for these selections will also be shown below your fader. The skill setting changes the background colour of the fader tag and the city entry shows up in the tool tip of the fader tag (see screenshot below). -![Fader tag tool tip](fadertagtooltip.jpg) +![Fader tag tool tip](fadertagtooltip.png) ### Connect/disconnect button Opens a dialog where you can select a server to connect to. If you are connected, pressing this button will end the session. -![Connect dialog](connect.jpg) +![Connect dialog](connect.png) The Connection Setup window shows a list of available servers. Server operators can optionally list their servers by musical genre. Use the List dropdown to select a genre and press the Connect button to join a server. Alternatively, double click on on the server name. Permanent servers (those that have been listed for longer than 24 hours) are shown in bold. @@ -70,7 +70,7 @@ Cuts your stream to the server so that all other musicians cannot hear you. Note ### Reverb effect -![Reverberation](reverberation.jpg) +![Reverberation](reverberation.png) Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverberation level can be modified. For example, if a microphone signal is fed @@ -83,7 +83,7 @@ not cause any additional CPU usage. ### Local audio pan / balance control -![Local audio pan / balance control](audiofader.jpg) +![Local audio pan / balance control](audiofader.png) Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels. For example, if a microphone is connected to the right input channel and @@ -92,7 +92,7 @@ in a direction where the label above the fader shows L -x, where x is the curren ### Server audio mixer -![Audio faders](faders.jpg) +![Audio faders](faders.png) In the audio mixer frame, a fader is shown for each connected client at the server (including yourself). The faders allow you to adjust the level of what you hear without affecting what others hear. @@ -108,11 +108,11 @@ The Solo button allows you to hear one or more musicians on their own. Those not Settings Window --------------- -![Settings](settings.jpg) +![Settings](settings.png) ### Sound card device -![Sound card device Windows](soundcarddevicewindows.jpg) +![Sound card device Windows](soundcarddevicewindows.png) ![Sound card device Mac](soundcarddevicemac.png) The ASIO driver (sound card) can be selected using Jamulus under the Windows operating system. If the selected ASIO @@ -147,7 +147,7 @@ connection properties. Three buffer sizes are supported: Some sound card drivers do not allow the buffer delay to be changed from within the Jamulus software. In this case the buffer delay setting is disabled and has to be changed using the sound card driver. On Windows, press the ASIO Setup button to open the driver settings panel. -![Buffer delay Windows](bufferdelaywindows.jpg) +![Buffer delay Windows](bufferdelaywindows.png) On Linux, use the Jack configuration tool to change the buffer size. @@ -155,7 +155,7 @@ The actual buffer delay has influence on the connection status, the current uplo The lower the buffer size, the higher the probability of a red light in the status indicator (drop outs) and the higher the upload rate and the lower the overall delay. -![Buffer delay dependencies](bufferdelaydependency.jpg) +![Buffer delay dependencies](bufferdelaydependency.png) The buffer setting is therefore a trade-off between audio quality and overall delay. From 4091fa91f1837f092a76e46a758cf4b1339770ba Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 27 May 2020 19:50:28 +0100 Subject: [PATCH 009/936] Delete main.jpg --- src/res/homepage/main.jpg | Bin 61640 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/res/homepage/main.jpg diff --git a/src/res/homepage/main.jpg b/src/res/homepage/main.jpg deleted file mode 100644 index 2a860b722f07e6dbb97c8abe18fba6072f58bb52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61640 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 JW@Y^~@Ndnc#Iyha From d42026ba0e4294239e3de74af18c5bbea6fa4db9 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 27 May 2020 19:50:49 +0100 Subject: [PATCH 010/936] Add files via upload --- src/res/homepage/main.png | Bin 0 -> 144587 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/res/homepage/main.png diff --git a/src/res/homepage/main.png b/src/res/homepage/main.png new file mode 100644 index 0000000000000000000000000000000000000000..ba9fb1bb7b521a604e4e995b70a17ef78f451695 GIT binary patch literal 144587 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 k__*+}66|0ba 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 NAtfdcsu3{^{C@zGpS=J8 literal 0 HcmV?d00001 From 12205b5965b56e13d379a193d9ab6f4563e8a36e Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 27 May 2020 19:52:15 +0100 Subject: [PATCH 011/936] Add files via upload --- src/res/homepage/led.png | Bin 10906 -> 5645 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/res/homepage/led.png b/src/res/homepage/led.png index 08e7efcd6cb9bb264a18028e1515c1db547d01bb..f31fb2eacd7b023c48c60de5a5a7855c5efec67b 100644 GIT binary patch literal 5645 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 literal 10906 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 JUM*@6_&>du6UG1l From 7a5b945c45d00c2fc620804facbe4f4de8c4177f Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 27 May 2020 19:54:10 +0100 Subject: [PATCH 012/936] Delete faders.jpg --- src/res/homepage/faders.jpg | Bin 18474 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/res/homepage/faders.jpg diff --git a/src/res/homepage/faders.jpg b/src/res/homepage/faders.jpg deleted file mode 100644 index 9621b9e5231131283c1106cbeb927e0dd72a52e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18474 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

5E2m=%2NAGHcup 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 From 769a6803e1c9c1080412c9454846690217fecd32 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 27 May 2020 19:54:21 +0100 Subject: [PATCH 013/936] Add files via upload --- src/res/homepage/faders.png | Bin 0 -> 44503 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/res/homepage/faders.png diff --git a/src/res/homepage/faders.png b/src/res/homepage/faders.png new file mode 100644 index 0000000000000000000000000000000000000000..ed04579d0b89cfe8e2716e599a49b5efb3928ea3 GIT binary patch literal 44503 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ВKZUKPA_aCEm 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 Date: Wed, 27 May 2020 19:55:36 +0100 Subject: [PATCH 014/936] Add files via upload --- src/res/homepage/centralserveraddress.png | Bin 9379 -> 1620 bytes src/res/homepage/settings.png | Bin 0 -> 28580 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/res/homepage/settings.png diff --git a/src/res/homepage/centralserveraddress.png b/src/res/homepage/centralserveraddress.png index d6d69ef4b63f54909f3cb4edd5e1431b730e8caa..360bc51770136edbb986969955204e51d5859e7e 100644 GIT binary patch literal 1620 zcmb`I{WsGK9LK*ZxuwwvG1dvudZ6;q1953GdE6uxS}u8-=S?=DBDaglb)-zALnv(4 zNUaS^9ui_i!`L#1S$PWM?0UNE54h*_!~Nm)`FwtO{qX*r^Eu~};o;^8+O4x20058^ z0*(Rzg-i0;@waXAI#)_QBX7H65NI3#Xde2Bf)mPc0RVRHbb{MmCQxQaIZ@Ai_U&BA z8(bOJ?m#?3v6#_!{F!m%iQFqC8KJ0!9s9z#`wk9f7VCdzA_%D-%vV7$xe19-_*1#b zkF?cI=t<$2w2wo(H@*U~HH+59z}IQI&>sLO$|BG^&Hp4>B?G%Z@5I{J4N6|H`j(RK z*7G3)K?c@b_q8}>+{V_m8Q)Y`7t>GWy1Lo4mvpMmryfadk+xdJf&#(AvDdPq8`)jw z%`qv>8CcT!MQ^X6tp)mnt=8~?4SPm`8W-l(Qi)DN4ZW$-t`bDu~311#oj=gKx<9Zxr* z*lDU6`l8{KXGrkTrQ^|a`Xhn4iGE(`Y+S`!Tbv>@WtyiqKO;SK=;Tus8+y<Hp9ac7u&tWZogmjr%N;RL{7p+EKYGlMZ_DZb=tzOfw6I+KKX!a8p zW5R|zkA@qS4nU%vcO5Gw<2Cm3`$`jf#z^p0GSXL`iPN0sD(S**gymP7ulir$#sV&n zkg+pJFETT`x_C%{?dxHF+pU4Cm~hxH+LO>@dm5I}=PJw7IBe{>*y8*hI*2b$&P}wf zk{Pah$*^C#jVhm5aK_a1@RcL``&iK=o^B1eNOPQC<~CAW7Fid3^LALp(u{JZW>sFO zd%BcK)6csBUr7s8@kv9~lKz?@I|R9jX-OgDf$*Euk;jD&?1`I~Ur@}7)IZ_{=1Q;^ zMF$0^4eY{t$EY)bV>3wAoY~^528F^X_j*y)V1%?^({KAPAWPzUX3TPb|GwvkiJJ!>dnKMdVtqnAe{GR8 z%M%-wFH+GreoVJGiFEoS7lJ)Us=J91>JB*pmM`pK!gy8=zg;vE%y#dV_=WNdTJT=- zpldFM+;0z7!B&J@saIvC6jmfVKmc0*imX=@l6D{`?xItcK~j+o4%5qTDIA7Nrf@## zUQOlr1NGU%-<_`t5#}Vu<9^A~n7=&Svb!O-pVFAcL}<09<=@A&oh3fk5=y?PYP)$a z470Z`+&F;MKgrVeDT$xYTAsANaZhLOHL?i?lu zbRiK(bZ4b-^u%{38)%`Ypb)`IvayV>;@Ui*n|qHFm&h~XSz}Eti{21CO-wg+T76e( zKLlD6H{*#?AOMj*g*RzWFQrHd5HC5^x?3=fJFuj{J$H_`LVgKa5B=f#x@^h&ivpmuwz;v!ENisN-J7pm zL#N-4g#j@y1GdDv;>bI;dNqv-L-q~7#y_e~xW>cL+XVaMZvt>~aD&&_Ur+rPP7f<+ literal 9379 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 diff --git a/src/res/homepage/settings.png b/src/res/homepage/settings.png new file mode 100644 index 0000000000000000000000000000000000000000..9692a80cfa755752658e0a6285b4814c10b30be3 GIT binary patch literal 28580 zcmce;2UOGBw=Nn*aU&pGl-{-|AYFPdN|ho=?+URn(T z!FdOPT$lgjI(SC%{zVV?h4)ro*9ih4Wx)Pid#?6q9|HLc@?83IK)3=OCZ$2^Y9a1}r^dGA9#46z5DP*M9k!M0vN7#R!kX zLQW)yvNQrlJ~~E8T)}g5EX%&UBdz;{u${gP-YEER;C6E9l1@hg@gIX8J7I;lZdHm> z4u!N`W>QHmpMN=!K1Ahf^laE)UEuTLd7nWob!P2rz;q#uwj@zx#$IJZW?=BD!E>*6 zU60Zb2Mor=xWP?8`smfc?fqc;e;Z8e`SXjPON*m**hsDHVvEKs{{;WN9g_FQcSe(1 zm~pXTwA*~tEjj}mn~I(3Dn@#G($FlHlWP!2#(Av3X+w2&+!gF@Sx{H1h|NSvZy;UI z0;XZM0bX4#n{)#LnY8WcjnOmW&F-j*B?<0ajaFG{zGc>VM^Q2K=W{#=q_jJM{L)B2 z`VzU?O0=38xhJvjyEDt2ei8Fi1^e>32KQ+ZYNFv1sl9w)?7iRIIZ@JdIV1;jS?(A< zJcJ_}FBb#pd=9&r@*XC4?z{|bALhAh=S%~p7sa+}>0FjouEQpQ+EfXpJsn9$SITnc zfA;CAs;V+ZZE4fNj)ywqIlQ+}NZ7$1T;iggv$(QS$8~42#;s(|UgGU9-+pr&J3IEG z4NGTNuZ_`_mS@%@`{z{^D3Tal2t?H&IMsOju{wH%N#fjkPy*eH4?9@pgb6KhVL!5I z`X~~17@a=))wi4{i}Z1cVH0hr^d7nfbGq+GWYp++(sYHy(4v3&#YT!x*ST!Z&%rT6 z+Kq=IgW@wsRVBOb8(-q$S`5Do1*f?pKghcw_xGRLjbtfCo5k{qygMH4OUwN(z44rw4LONAWP!2wY4fcb#N-38 zmnQ-~%dexhVW^3wGVjY~oLlI?oV4kw>5J*v*>p?}=6K_t3c;N_q~Du=#&&(^+K;M~ z1e@=xuo4#Q@<)tXGi7SiRd18mQNO@~u~8%JWUC=rK;o`Pm&tjcezoY)*|JBEG~dWB;LyVftG(Paygc2#lsLx?3;NSysbILw}bg*>g; zo{*?>T1O!lnqU~8_vb|@xd0hPBBav&px0oJPg|quTN{to2QLHQW`}R#X&cjWC(6TO zJ0dXj)%g)8!K9OY-^|4-cxOB(&2g#(f@*KiD8acVr-UF~Y}#j1EKgun#C>!1G)+Ce zyvNCSxc7*#wLK3Ocn9-4p*USUvuK#T&ge_rb|B9ff+a>8QtFWN!3A(4u0F`lA7ufzBUS8*)w#jULd;Qx)$$ zCkOQI0(yt6snm7>y^$Fyeln`AUqc#PbQ*=PJph)PjBze-rUEzJB8Mq!Mj$DU;4+dR zluf!g=2Fjz(x>^mK|Q9cG{~T?aO}@iLB2$fkH_g^5(cq6IFM4K!r08A_GfKRR#K^N zlvEwAsfWnBxgmcDG@bvHIJ^C_)7Ua+5^EqB?Lxawc1+?hPce0!GE zZc;PTbl&gavrM({v&C|ejvI>Un!>jUelumCP#`EGmY77E=L-L zj$y;t@L|CvQXjE^St`L?WI~Zfo)}ctOwDej1bS`(HTO_1LZ?XUZkZ07e?Zf{9n?dM z%UcoDG{T~Jk+$0+b>8d7f}gy-piXS0HIWA29e-{7TzrmPd|ux6N+)6 zx>2$MbuLUl@57v>B96UK+ZYt^jR%o1YVXTk!=|fMfu`fEL9i1kAgatg+OzGonbp zMoT!o#phQ>*PE4)AVaDUqn~IvdRhct#dTUKP1WGVyguX##Z2LA3qz;pqDLw$F7aZ) z>ZaW;JS>(fWP^%lncLaf^~SLmHJ#d|>+9RV-4Jv;^9@H|0;?Ss>`^Ub;tfs~9d*>p zMM1+dOyw32w(w0Wb;C~IBb-B(XkW}}s!5pBdrR#xh?q|tY&bClhV=$~tytc>x%_mf z@?!Vaog`rpza?*m%=71tJF&9%#ne^t^~%xd&O;q~7tnUS3#imb+KVwho$nR*T6akm zRR&)wt3+naHT*T#__85+P~34~f}PuAa@fh)#KhIr^_d9cXKVT>5h$a%1rzaIzV(js zDLEr@Qtz7sZ96+{Z9~BEaN8On#YE=qH#dcZxkL(fB}AF$Wa3VM55}#C$sRI`TkK{^ zXPds2*WSaF?p02D6NKf|%Ia!!UHyBZGFsYMSu)}%D=VuZw?}KLq_#iA9rxVa7Zq*n+1JLa zRnCcxRsC6eWGH8&&fduJO#$Rycb1~#YR~i>JT8#V$i^XF4Em;*bXO}*&2khfmMms1 zBr4P=ObvYF-MbzjgJRjq88tOg4E0*$u>nWLXLn*{NRAz34V9Ia0$(f18$B)j5>wOe zZ|>PTU{ef;a^_)~gSRtuLA=*Of|W@0FCy{Bn|^at+^SoOL3K^)zgXKqRLHdfH&)OZsdSZ_0@f&07eNi+5dM2Rg2taU3OKc7pB|!W)Nl0m1^rs zmG@zR5MMpBo`j}}qz;<=p+rcbR7YfxG#h@cIvoiGtW|ScrS8prHbe#U8o~v4^pz-W zWaqkJby#3_fu3yqqjV2nwr;nx>YHXlW!N~CrvN- zD&l1Spc(`5x&obzM0IphEOI9<@9VH z(Oja=EA6c1&5w-r7wa4rKab`~9+n#(9v~sgkFr#H^OwgPQCbb07p+XXlOrxl18vK} zO(jP)1Q~JEjqa+-gld>hOv35Ub$QJ0oqVg-iNvO^oBl7LA%vzg21fxEgH8L-rlsPG zJlhLdBbJRAo)i~pC*eKz^FFV;8y2myeDG?0*wMu4be+f7#m?sDU}9R@KrN~(>LEQn z{{#g>Bfis$FetbAm}vN?m5R;*$JX+%i>Mr_;-&QJ5Vw~SU0fLoudF%NhQ<3jalYa@ ziAkUgmiGHaq}$8|hrw%q5r+r2W~aA2d1jokN{_%Pr63?AEGjHqnbBWSZz-%?uEkbiIYAqn+@#^(h(c#}Qt9(F zwE69duPlpUcgqK2r7T`2C#L2S~)S_j5inQ#8%-LoI{``Pb?{ z&1~(IbKF!urjIjLGL;a{cipX2^_XVA=E7?q?Uh(wBo*bmp3pQ%UVH=-Ul$Satz%wQ zr_Z^~lNEF7;77|LWnaMaWKUwRGzZnp@)b7A#vZESeKV53h{vgbUq$hNqr-6e28+eF zB_54+W4Tw$`D2K#Lp7a8JC(QuGclG*J%j#tj8zE*ad^J;@R*&q7luYg5QkLO%4$aP z{AFFbKl`3%K957?tCJ2@eGlr~;3DrDZ)V->(JWU+$jA7&EHJqt0``0xjre#wK1~JK%m|@2`x?zDA`* z2;54lkA6@BCV`1tmkqw+dh>UBy?rhb{Me|3C9R%``6oBz-tmk| zi2Qra=>Vb|eB?+o@xHTNt@_YnHI?-0y_x+@jVZZLZ(yS_>U{wg+f-rBx4V|Se@c!4x&YZ7&D85TaD41+7TR~smOw`0##xM|o`DF&U-R_A+ryRax<0J?{}CYj zf6MV#4c!Fc=1@sRMWF6RA&-=l6e}w$pV&UPCIC=1JJ z1fMXL(hf|T$w4tjRqd7#hNZ8Y#8h4>qCz?l526tUd^sQ(WUTRd#M%K3q>?&!xbQ}3@xk6l7x#c!MYxN zlqqqqD;x)=Aij=UYOl){CmRoeJbsR|$MD9fzmu#%VRB^kj^?OuD_P{ob39x38$HTQ zE5&9oDLZ{*qMMMav5ZUgX#)DIv-m zKX<|&lE zDY-%YQGF#FJ@FCJ)kB(!mMH(4MTrC>|3og!VqWd&t*4fZfAzdF?hsX4c3M8jpbYMC z6!_!SoIEbzJoud0{mrk_(-S8wI`mT7#MKCckgL9@{vkEZlm)y1MVQJcc413lUC@7a!1qn@qVw63`M5uS(?(m~^Uc## zsxl^lDLD>GIbR4&!pI3|O_%%0EF4 z%5tM;Wh1~wvR_G<0%x{6@WPv=C5>ZQu=w2v!d6v)>Gy8jJO19ML( z?Wq|iY90l4-GkqzPAp4(f6`I0HvCC}G9DYy^$zuoZin7Tv7%!Eu@bDso_wB|zg z8h&oWVD}-s-z8v*cZ$WU0Gk%&Hk(Mzj@945hGN5M`GnTjxy@V|lp^$pqFFzRiPwzT zf2T!?DMJ=}T8yVrPL1}7qA6qP33jft4WFnP5OgOloZma|4Q`woa)rgOi*Vb)U9F|4 zED215Y&9}s0zeiBTzDao>f}zU$K_p`&ISc{>j8;-U1CX5N45TxAjkWLeyjW_RY9Dz zoN;phT69rMjWE9e$-tEUr_2*!gAb#YE*%rjF>|VTM80d^`qH~eNBYh6y6wkA{m||(~XO(V5O8zP+Me}R!XUKOk)jer;sC@?Z#A} z5VE|EWcuX5`*6ATfm?}$R_RknvLFAQqz$}s@Y<%K5`zLlg?MPhxAsd9VYY&Ui}=a+ z8xLy6k|>P^d2SfztF0MZ35+WC%@i%MBaYvC_~^Vj)HwZg49stXCW$n(-9$(jqELb+-;*WPC<3ROneSSBVVnO%Bgx{av|#;jdr>qD*ZFKmlFP`xgNS_Na% zd}C3!KTR*xpEGrRlbE2`sGPYC4nGgpuEOcWz`baEb}nC5bZwhj$v@FrSHED$6&$b* z9ar|YDt&5oR01yL?UPI20q4_}!$iIACOHPcSSDbwgksf*E)CJOb0aa8yG(cNfx58Q z0fCT@!@VZMsY{R;hq2!=z6hvXXZ&i7#=U0iHC<{wEwLRsuW%?kE@(3VSGF~eZ5m^U zcpd)^uTphtW3zZQynkCPPIK=(!l?04?FXYxoU!wWzUeeR@`(Ndygh~+5Y0H7Y$H9U zxOdNG`W9?bB;(8eeCW*){*FUXI)7g)hxk=jDwN)oBL2r(5>fu=YFmBjXM6Ml+g968 zKK}ADizz<4DgbU*_jT}y0)C=ck~oxGm}|x8(;}Jdj$Y(yOD|6_K`whWg+fG#98<)a zZe=Q>>v$JSbUv$bs9cafpL_yh4}Z!mMj?lZ##nVM&?d4wu@cWYz;I8s!yt(xQo}CD zS?bB9mW{yPP#?icVwcW1!`ri^4%rhtZHwDRJjpiVx|uHZt;z7PVUkps83@mhSauHO z9nanUFXX)E0`ej+w6{{m9E~tjN39oxERh2tlfV-m1pBlqgl3^u2i}VshMh+!&CKt` zRgNu9jdwt@vvez$Bpo^^73*J8`XSNs^~~cCiIsM)HVZufDEA~?&Jm}x9-cA zFW7kZBoxHe<_%&TU&mAtx8fm&H@~Y1g-o=OIYSI9k|0rdg*xzTI6iRDGb*Y1x2IBH zlX55hiH+he0kjId5B|ob6<{5~B@5O}7e+=#s>E;l=Kp#z0r3qPGZkNL4<*}vOA0aP zU1xa)`QiC8hfmlGc3;)P>_m`%y=VZCfAXktZ+%gRiCu#qj5TZCO46=-v${Ra%4cQ- z;Bx|@c-N>XjviivoHW-t{D!X*fIitKKx#a#-Fj;g3B1Un1)a#{_bz>ezRz1$Q*Ady zCfOZ39^3COqetkh%J7;9&-rwvJ=oG>m4#k(`C!e0ZdAacC#W5zoR$S_CU0fr5P%3J9{lH;s>@Nr`eHT zZYi>7YiXrJ4^S(9{^wK`fwX%VlY;uFDPw$F`;#s&_8B@)Oa0!?0wk;b;#y0(7v^L; zfG~AI{GbSDjTOiDL(={LZFqM~tFdjYjlhSa0-8X*k)_c_JJ+ZwA_Z#o`O~Ed{nhDk z^+e|V@w^GGOCkzk8YH6eP-%OIXu;gBRTGTpo#ina zB3rn3O>@?@$+M*00a`*` zPt6&ey^}sgk5??XOYhC<0U||LcWOM#2U!5u)BB!@>)W4m7Zs!8RcHL>v|pc|*vn?D zVdBY>*Gb1un+ zqej&W1o*v=I$WYScNd_D0d^_5E!0?~#6bQd4>fN|Opp=`>?6HhDm3ol=hN$9QfP+C z(z1YQELvPLOmUl{G<=@K$X*cKPg_OZxB_>4-8R3WpsG!HW>W`U@T0HEUikB_?%8=! zuKZ==C=0^>+>I@*hCQtYTD)s?BwoGdZQFnOw%t3hbx?e39=dIbw$=Mi?qsjr#BkcF z53f>aoMdtEj;V!g1P4}~tg-!kN@MxbG4qDP`7|Q^(6eEF-Ls}1jgmZTrH0oJiXSX? z7Kl`fp6()0QQF9zdr{gQ=5YmToyBudX&>~OJ`%A`o+O}kh<)X{#Pf)khA`A6W^lZD z9kU-ZaVdd$u@JvrIh$yr8dSWdPJdPtDOxYOHI_Sd;%IsZW&6*9_-XAD zm_M%5uDqGG;fX4e=D6_k;RGa#pEVG z9;L=aYP7xBp}UsF3VKdE%?cbL&)aUD*T*WZUC-)T#V;{lxIBU7MG87>U#v}>8lp{OZYE+|6;}63G5ewrS#0{sQCA^t7VPhuXA%w>XD0RU>#v@_P10+k_C!;8&S|ld`tB0T zA4e@ssO2*3Lz|wS&Hx@);g1u^0A=~TAjVgpXB(h3DWpk%!^w1jw083P$p0Fk;0EM3)7f6b2O0Crf&PR6!&T3gmJ_4kgUXj+e+gwB9 zU@r2f`}zictA8C!<~^~v8?6c7#ii3Gq0U+h+{wcA7WCHct{qNsk#8E?u>?ZdNeWG@Nm|&a95RH)WeS1H(_gKM|nDlK{oBTVnRvO3GpSG zNao-(sI#qfjOaNrG0CtLp2n+*J+Z^)s%=mKSG2A5SgzZdfm`&(HNcT?ZguoJ$h|>0 zh#{LcaF%KiA%$aKi!Tf4Y#wfFOPsA%5AIGqJZ!5ldWihez|LN~WXr8#^jt>4uG~D2 zo!1Cp-(jno=lX$a1N&}W|KKP|AlV z0RH)huBB{FD;ZHfeTdO``i1P+G0#Wy>t7?rT?|z)xh2qMu{72x879x^xg~gcHF&tT zGwr!9YxLf9yZn@*k9~|lg~(KJ*IzY3rPA{peO22vKRb91#H)0RpN=2Z< z1aiJR-5|H(XCqK!J0vh$|IY9Yq7nENZ`qmHxkL-Ayg{9VeyRx>P?@VRTQDm6ydwId zzq3GSdFOo^)=`}sv$M&ZQVV~R>1pd_EAyAd2M2QWT3}F-L+P<91s2H@l2S$8Nj?2Y zf}jvfodQ&g!laXMCxyw7{Hd%m*o=DGz;|8qfP|F(n&rkLjH`hc#?)$W$(Yf=aPo#u zXni|PG=*lzymJnJuF>g2*!Hrk_IQ6PwMrH~<0hjLkFCiQ42r!~T^TlGk32~!ufpd7coYipmNE>0SZG4YYTs2SvlTlcCq zW<_=|Y7YA7@TjI3cG9g9Y~XVe8`Rafb>9)254OE!O;5%jDKU=s!yNvchq{T!8U@c9 zxVz*n>z_9gTWWWjLXFdj4Cjz15@%Py>Ft>}^_j5qYOzs9N&8?iYTDaJl=tMyXzM0t zHFQRYOv+eE!!5lt@BrZwcN&uR(05zMH&zwtZxMY{Gv%f@O>Ue~asHY!m%7uDH~tr0PxjoC;xc?LsuS-8 zi0bUEBhJQ8r=4%sYgD|pC6R7{HMoqJIXW9LO=#okWhc#L)#GYb?|5h7^z-n6g-Z)M z^Z`cfz+qkH&7ispP0U2WvD_TiLVPf>Tv8JWr?JAoWpAPS6i!9?yevDby;v*VTtusp zCpPRVq6gXnKc_hDClZsfqF%j4Ja-+2E#-%+{w1-m}RIS4sMZy5!BD^;KaJ0 z_7LO_o3ry%?9oxI^x532J1=_|0ik86OI5b*mc=_ltz>`c1m=sKobs%Ylqz+w4^YX=92X|9(J>1Xq9#O!k-&Ku~{UB~tD_YSFN z^AV{cD=*pwj;6;@bL&JDFS6pxzs7&o?FO5xb(G3GGz$J8z&T#6{3(dN+aN$-(zcFo z`S<+B>*0ZG!WCsqe4KWhb&2}PGZ(ldgQEt8D%mYPzY=lh=*5OKr#zn2GK)Ml&*{6} z_d;cjoWFBTvq`CT&AZTk{ray1_Yk_#oxS-1j9oQSTf(Tj!kx3T_&82WJG90)>AL31 zOe*4AZ8A%af5%VR(viLSd%y+8{#4gpB6l5st?Rd#Cv}NS64~h_yrPhvNg=$;Y!)*o z%C3lPx$)gXU8aj>9oc88Azi6C@ODX((TD0F5j4L{a(dNzPRBrFB#M33!QLpT{;U z6z7y zav-rG$_#2zqtqyRk7h`=kw}F*-7&hrBb%C%GXDgqQo^I4smh+Y$2T<#Dtfo>0*3i% z6)T_O%O;vyzQ5?{t)JxLIx4@etX(6^s$u2&ZshJYy%^egYqndqYI!+e`Di@zmf9|F z$V5R%PM4R0lzMQQUb2nGiD1?|eq+UP^(WUTy7@nCioR4+|o!5OJFbsWH`;bTmMVEj5o*?B#u6l*W(Ccr!Ajz6zP+*{T^PUt=02~?{@JkNG=yQgD>OTe}!j}Ggx>wF1+>+(r2|P z6ylmr;U}=8b{XeirwVMW-CyoXlY;#``7t-MdiuB+{-Lbw@7l>|>(8G*h3lHc5{V`6 zO;$l8y9O7$w$mjpM}9xn4Y#62)CUIy?qI>=RE>*O%Mr|Aj6X(P=-nJi7~wx8hPTy^(KeCo?t=;Mu1%~a4ksOB#q?$3H|w`@-!eY~Zq0(_*g(GPRf z0vE$E)@k5`AFIYYQD0y)(usu_iL+LT*&6RlQjhJxG&(PdQWqUfarnXQ4q3omaq`vO z82u@{^<@;O9C-Z=jZqVWn2|ue8i(4`>9)y9R(iF+3JtM=lKP6QA-&0MeSGT#n`Xd# zn#2hjY>@U*RdKsBbUF>*+G<}olKFj5`hnt@AF2ARtjN_Uv;&>jaxBL4U=GH;@4sYY zG;Y`oQB?;<+W!n+9c=M>(}n7`BUmQ^Qqpvvde&`0u?$oJXZPGp0rF%XPUk+)OI?nb z=JRmYk2=C;KyCDnZhUvUT)kZ*yKV`HPtR8u#cYQBHUS!70@)xpUyhZV7G4eSy45sW z-T%39g#4%d0*RQFH(D3L6PZKf2C#e7QmPx>%55hgamo^PLy;0dG&_+S5KD#M(5S{? zFpk}dPF;Y^Cx!OsanNaVm5rN22{}oV*>Z8j!Yr#c3_ac-*T!r=|DEHq@$76~`Q^Us zJxBeb2DDCQ?-PgC`af-j!A&av0%ypy#OQ@sBQ_y%5js1@?%mwrz-@d@r z1?J{%^XhN`RfayOUC&#T5~-eRNZmN=#ia7zYV>HC;y#6;W(1DcYtgwF{Lh|CxGdj0 zt}mmP@5C3KGTp8%8USUD?}M)=o%=#glU&S#h1cO-H&6i))KeC+0ec?4&JF+hp$jWfD z(nb3%A#*;qluXB=*0#qnDx{A_?Ghtce;p7#Fk zLrwxXQ4~3;U+tu>5cDT-jboZoyZ}vN^Rf^st zK+L}o?Md+aUS9rrXFw6^vsF92_MzY_VR+n8`_y*vucS>u@qC3>q6qi5eGAE4!tq=_ zDd;C_h<+h+vVV$gXvCYfeP`Ee!KTl;#e$cs(p2%Fb&iBgq){$k0Wa_LZC1yixP`@p zuC^2lZhQotIzb7<*{zz14oOE5=O1tJ)!*$k%}e2FH6r??PqcdSxnzzC+)2J{5()-NLU0E0nJi`C}PbSXsqodsa9NH7rhw=h~3)r`sf2eA@K2xNV`kEuOD|u!z_@ zy4yJA4U?Jm$%|CdSgf2&^Oe&oB_vYjq31%d>!${FOyp>jKafaJi28V`;`M!$-i|2D z5a3Stx~X9}e=p0w=cke+!mmjG^<)~&1iXMA9odDYQWX-prY?r zh#is}cy|LUJSuY+uDQB-UrVPEjD~_~f0q}Tfoxdi@@qS~!e*VQZiXEc9f$Ww(-)H+Z|}5tM!VoV2;{8tl)H_I z&nti{2=!WU=~5i zXdDw?R!;Ojnn`8&w>Ggt2TAy98C0mo(V0Tf>7;s5$P+&$yjM~$HTh^G1?ocTu}|fa z|5ku>Zl4U#gl9kdofuM3Qd&FXNizOU9|^=_ET0u#g4T=wBvu3pmY<^?9Ua`&DT435 zdQ96M9zrtgfn_J@u`g+m%=|qj|9|*TY$E#ann&!VH7q?n>poZz5)vMaeOO&8l0A9| zI%!zk4wl->BVfOECfxy@`r(XnV15aQAUBEi+5cNg!Y?{+&C9a}-kv{bQpQ{NvHwF2 zrSb>tc9s*SIzF>6sG6X&ai*v<_b%8z<>0$=ZcyaPHd9IvQ*4xE2s*G)XIHc&dmlho z%XzZ`HIFQOP`9S#x?jGbNk3#Ba!V6dK-RFdX+8YseGvKwd?|UaG;WB9btaXK_J{Ea zLws3Eb=bP!nli5P`X|6d{|Z5dJ?NV@I6AtSzP#VQ+^9#!NY4i?0C37Zy{V>mWVO1} zJHoT^EB!Nj3&~NepvD$xI_})HO0w6$Htjr7QRLSf)U~^A*73u_QCf@2h=3t5kH>Rr zxT9nalLLJJ69MG@3Xqz88!@VfYB(&=C^+QFYnqRq7F7cw7YSb2rRnGMdGZq9Moo#o zv{qc!>Rrp!N@VDN(Yd|Zd!jR-`Rt|yPZmZnG4UP<+ zEha9J!AeMh?B>01I-;ofmqqpuj^#*oAly)1sWwoaGRVvaenu@k!2J3JKBv#t6RI3@ioN9=VwJmC-K zI}7zvkG_RC&BA8C*bxG@jL`hnv*hhCxBTAaO58^_eS8mA#?8-GXA_(9w{jPEK2+b4 zc?6V^2QFBB28Hbiosd`FgLmLs2?%Sf%Wj1ye_Edw!d0jvW#~H6(%$D$f2BPg8T}h& zr`)MMG(>$klMAY`&=pxn?l6}uSFum)Fz4W@bR_k1|jPQASE)$tYRWBl= z`{#90*@yKHvQp~W@HI?9W(Y|#?y}=!YrB)*o?cdef1qj#cy!B$VO$vZj4ocWp_VKk zS?{DTK_7A6zr7G#?TB*X$m1X6-r3B5!~J^RMtiU7vHH0L&rLS45Z4D*!elHYxBH8% z)g#`o?7Lx=O}?3<>dAGIno{7X^EUic`pW@nMr%h?3(d0i_5(=<2PqKxlBH!^tdOe` zjt~I)2tDPut&gSJ61avdT)c(~$VXiGvohJerQX|U_f(aF7)P>-yzOIt+j3h~df47v z<3PFiHg7CJY=FG(Ql4U?Bp((K+e!l!=w8|*_O29hF_M8Y`bX(Hyr1vJV-t<`QH5~E z`$u#~AMstuw`fd+CVbo0vRfF~<5jA(TB?3N%UX9fU53unsj&-?hm${}5^r;!A6hosXkY1VAS%AG&y44@r>wJ{Co=!F z-1!_xCbM8K?pybOyx^l)ns3=m^;sUiL58PE_#H^b=9IxvGed#8K2foIL%utGmZ;TB zPx$B1uCWZxGE=~WFkmF$SQ@U^ittJ0U)Q@NTJ_czWt- zj)B|>s3;h(!mI-h^P#)hIXUS-df{l}z7i!z>E(jO0eQ{V{gnlw*Cg1@lAchQO|nPF2Gkna#ioS;>JtD{f>o0 zxwemrIIIng@K>;AXv=cPSag1ak{|a7@o2(C>NTKX{#Uv^futrQFFZWl%vR{#lJrsK z)XM5L$vG^VuF`AEW2ydo{N$AIU+9+qz`gwU!6-O&SlNC!M`qmZ`ZneLErACh7X7IF zG?SEF{#~^*<7MiHELXnHtAl3VJXIsDxKr1lTyjj^Db&{u#Wn ztDAv;>-3{f*ga$AD|NT9q`&l|CsMf|?_!hvXI;AlL6l*a)B)jljJ@W~Y;=@w^1+(H zF_*lLppbeBMExV9WWbLvo#cO1c!T{Emh8^-<%kq0Plx{q9i?146vYKTcfePEa>R^U zhwsic3qBHs-JO$8g3dL%Fb;#a9Td@i@WdR&%5=jDH08bU4gDUf79$|=bDlnu?Ybgi z9K1Aib6A7F@x)GP?i<8GRXF6h`WJ``-&WPabM?0NDA` zueR9iz2Ve)zxwNe^u&4zd9aV~--IP$_iw8hgoL+IW?W^KkG%i*epsmUHH>F^Cw0tP zQ0Q|q7j;S?Y0%QanMtSn^q+4jNV0#U9mNlf#-?nPLl4d9HL{E4Ku}JZj6biuf*+eb#{OlX1y$X=hk_utrPx0`Y-(2uGSwP5?+czaohkaWXaus2uePL%)x7 zdW8Fb%q8<}Ef zs~7dA3V2yHlxkvAONs-x~UR$ua6*umLBtTDKH@9dQMq2$ z?uN)NhY}V*TVN|4Q@5)O#-E4Mr5sr>Vu*;h`~l^eH%9+Lv#g(yv*Zo{k-z!$5H1^# zr5;4IdrbJUToZfOcGWQ88$?e}&jmwRUDmtS$7#sYe03>gh#(Uq_J}yYTr=d4`mN-2 zA51WCdHMZUB~M7()n2W*akEi(kd_GC5z!&>2KYh){ zf^v0Gp7;7;=c0#`XBXl&WO1+T{6qfOl-WtpD92HAW&3%GHg~wd1qW(BPT-J z?_GK;U(@3TLqjcbRQ{*D|9|;5 z8=Fjgi0`xiJ>=IuDFDfEG%9fe`pF?ph@~jjQ$GV;2%yj;S@Ao1NE0#mKEeXI|AlW* z_^-ccVF^wF!Yj~Ngt0TdNU==gPsV~=DlGr26)LFN{?E7ruqBXJ|8=k4|L0f6$7RVN z5dX0MU!wp2*+%_S$EoJ81KkvFY;D<0dxP&WCFKCmf;E)?Y&d0qOF2Ql^S^7~nn#Es z&_`DMOZV@#5=~CP7C@?0BN66+r7+R$l)zja@#TXHgC}zkmp+?W@d^@W4aoTdLr|dt z8d%wZoJt)wLQxSg%FlY8SZ;OwpFTyiJ?lSA#rn1MnXQeSy6na*ExO(RfIzHsd=iJr z>HBZ?ywQ*!5v>J;urg;qP5$=z36cp_n6*;N*qtX-?7)n8)wi%sklPHX%E&>uEd`N{ zF+T*7te3i`PRW3?Iz6q|9uAz-8o_Nqnp1$#dLZoroNAe+6158_Kem_4vIm)aqhp&2 zz$+oBNQlAy?;8F~xxGN0&i~;MY$Y+XlPYq{CE>;Nv#!w*1uco0%1iK1TzR4JUutMx zPaAmuQf&UuRskxHX|5I}DvS6x#}BqA+sAZ4FKASl*@pCS)zFNpv$wb-PAnuImI(|}86AdhSI(5nu16D@qK%{u8ggD_iH)Xz+CE%m z89qA|Xx0FmG45YiJT&z6O%e2QD@c_r|8C@*bYi2pjaymka*^gc@~1^hTCu4kBWUql z4mCP(UcD{+4?i57v#vx1ivIGi7#&`4k28X~@FA`6WAudo?q?Y|=`$#4Uktsac~@qJ z5{W9o!D9AfGSIaaw73YCW%Qbyton4plSZxp0se+o-j%(>k7KXa)>1&m6kM@t>eNpa zk`7z+uMFhSZ|;rP`u2{}T$FalK#xO@4wx0D4q<(>N7_v<;toSQJogq!AQ!0+b%5#; zxvC8P%T{&b=o8!GSrqikNZMORRS^e+ir-X-;L*vCtO;{+hMFl6^_wItRRo|jvV{1p z`NYd<8>?;AM}>0vAjf*C$#C!lbj}P9#ZASy%9@(i<}~~+dJ~fNM0ad&6MUPmRv_{0 zwvqvS_(?n?{nEajZ!P$`n9){GR3idROYJ$Ut6FCIfaJVim@dmnpJkh1u3d%Onn!g% zUkOR&B$vJUe%&{<&~BPfieBs>`;Z~3_&4%-sP2`illp73(!sbf4O#vHt4-$;ASPuS zeri?U_>^yFle@;faiurM&|3-t4E}MqXMfBpV5!DOAKR(2Bc^&4Uk_cDOT@2n}So~+=*4wA9!JP*Xwti|HrC#nLfUdf^F#iuD|p4277J_(B|^PXC-;IuWF z5;b%>STtL$WJdKkHf$N(sLs$!Nx;}?NIoJ+Peo5Vi|Ny>>c#J!Ax_o5y^RP21Z=SM zdR$8|S!|VL^sWKPfbz^IMAf$CX3yiYlQ`@vlUI0mGUYK={UNApHKXDt=2wZJNcBB zl0}r!q9?&xZ+P`y*$JU+O2@s5Jt~Or=YQ>2{0Dpo-;zKbkF3U>bUloWnH2ZEV7+*t zI-Vm9#jJ^)dZHzpBxQkqAWj>)*Wd_!XQ2A zZtK47B98U*Nmz}-zc%GYRB*40Z|nI36ydX>AU=pf5uqS z>HjPxD0E3-224Qq1YNI>4(7kL_MKr(ZSA(Pp(u)gf*?hMAXTIa0-_t~ozSavLKgxA zFd(AzD!upKdj|n2(mP1+y|*BtoEi7t=Y0Fz@45Fr&pG)cF)J%;tvToWjxpXc)yUp! z0oRt+yCWIt`-y%_b~hdHL!iz2g0#WonvSsD0>|dN_W&;NHbti0!)BLYOA`sLh^4Ht zlrrOr{{()viZ8P2Mi{sYAr7H54s320VO$hr%v=~?GKi8z2bEe~jeU@XNO*(@?Y9RH zqCk~XGi?wtX0951@3*D>J4bVP3YOkaxhCWJ%c;1f|B#rlTD-#xYiXdayZVnS)wtRp zydLrQ`sKuqZ*+$iv~_wO^$h0zccu3mP99PIi^f}Ud@Rxj8Zq^ldqNaf808UyBA6W; znL~$iD_IoVW9x#2ZkEMx+?Bi&hfRWn+j@LoB2%P!u6H98@YIat(4I5knvE&dO;Mjf z=}OFa06EXs(``@$zb5udzQ!jtt(Nak=`&-I6Iky4MIH)kxF5q*a}midAQDheibvjY zO-8J7-S_l#PQU zq_*!^CY*H{WQQAt+tRC8v*?zoa3lr9`FKussZh|AgPbEk*Sti$Jy&+Ee^V&yx9t<# zgt9M|yJJlexRw9vL@6WX`-${*{;Q@M>umqC+Paf7W6V6YlpI_04@UcaI2ZjOX`dZX z=tA={D(+AAa)01!YJ_Y&pE z(76U0ViW{%sHgd2OQug8jaxrP)xc7nFB1B(S5vSYF$<8$&F!Bclc1VUhcjZumML+u z>`v1er{LB>7N9>^AyIktd;`qPu0(paRA*B$kX=7yF_;{{%=_Vu;$}dDeYuuKI*H$?2AM$5@$?>Z*bxo+=WYM^b&HZTWAzQBUIk@V3-y2(D zCbrZ0Mic9pzD+@o+o)oN+MR4%qYgRACH7Vsm>=Z^O=mY4h>Go-ebT>>$Yo~b$?hp* zu*j@f0_m53@Njtn5;}894LOZYW-HtW?Lua>l47wo$KiK#jzE&%2I$|uF~z+^SJKqf zl*oMj`t@cWqlS(vA1i^rKv$yrJ(E7JcxLg^w~1af(CR+cV7V@&?Ki&u|9<0*p^OF8 z^1Qyhtc+L%n_<;|pB07!-|JwhCm)k80!xrCt!Z8N|HK{Hm*~u>m;@snkTK=3KCFg>e?5ofwIBMp=s`-W@F(i2G&7^+X@KYx=e-17oR}^IK(i; zYMwqlSD`jTdp1TPX?d;mp+|E4O!q+ck^cedIr^*=NY3^GssD6E1#+#;X0i z*TE)POf;FZshVZ(Uu~OEa0egXql}!K{N8fRH9%07mKu!OA2XU}i7vMjnLoMf=tr$y zIu=YcV%+VskxlQ|YGP527`RVBFl3@_7NgwWATnfvA9X)As^3!DchfUwtCM(W?7>Ea zLdr50Y(Cta%{Ih<9Y#d!9-=JG&Ch1>U2YgU;8#{w zs%mL%*;Q9Qn~5#g2s#`}k+nswwpYa{)8a+oy-Y^KtRqd=!ZCG#$_(5cVPfR9CbWz6 zQN2?g?=;KOt5IJg%^hrG=u<`E6++~V7ezNdKlWUCSm8Yp3mDBni9$Amnc|*T)s>ZA z7NjRgqwd00?+4LhksZ}*o};>bP-G&N8nvqR1Q>-gCaRu8mEiJ<;(%RJ2)B*eYMGGDMS{~G&xmt$T zWlvgBhoBid&lrk!uUL9-rsOliO=iJUlN`#asA2QecB{gE$ZMhd06RK})=Bk)Brr(_ zlq)3Zp_3Nn)YUahc&eNI}J+&RHn(3&UITy8afn;OOeM8AG_o;La)@T) zpoHZLGRu^hDYoTQzfEaXxked14+oQI_t9LN{FfD0;z6s8FZOy#{5{@Hn5s?JIP5QV zMTh9c@j1+4&hZ!@y1?lr9U#wd;q$}7vPhf{iFr$_wnvEWP?YnpR!CC8ZuxxB>yhtR zDunqNb~82OX;x0#_DCRhWG8e|4uNB4Vh~f<*@L`Wqx>+9M!iTSv3**@1sumaleUmA z>0nSt9fud)3As6Gn&v?NEQtM4FQ$&_a}LFJ@d+rW`F6DgE3Q0Z0n!TuviDm;dBoC! zwQ&Cfv&ZuivXu&KmQZ+L8rDP(0z*3?fR)z}xbT}=l#tHLk%ZsQ<}uE5M*{<}rsp4~ zwbj(t?5b_@vhuNCV0s?++d$thk7avF1_v|O6?^fIGzr)Z0%_|{_c{_cpGbgl(Phv` z%ov^4sUz($RX~gzpMb?rGSttu{m zy{|8m-oU2zXT9r6UF3eZdftQRu?1?Q(l;Fc zX-hq~=oDE_O^}Ht;!48`LEWKG)ppF$duj`1XWb2(B{KR(3pnm}Ut;&QlI^o+iSy<9 z%n4XKym^jK+H}00PVjXgyo?LW@G|-Y#_Dv|MEv;8yEV5XKK=K(M-QBtq22b@7LFi8 zGJJ1o$q<;aJj=KO+vYpxoU}E!_sMuc->J>df-t*l8Zd3klRDxQ^5UG5oU&~Xu`CVs zO&aP+|AkC7`8f&C5LE{N627Z2dwCjz^--25YE_%CyZ=PbsKhkPp3vf*akyy2(RUNf z&{u9wq5PaumaHM4rPL&QsLRp!CUM-Si0&fIq$fHFHO$^Kw#BIuCTI@Ir(g~-p)>X)+pnYgQa91uj zcxR@6&9N6j*F@2%hC+VRpFUaBl$U)zRV3ia8j%St%cJuqltB^+$s?b$?Pdssa8UL( zWssTm9x)AZ1`wV1!#(_H&&|Rgu&;4IPs%|TKp3#lm7u$74fgech`=neas7R%<3QkG zkZtXaDhDn${+9+Lo4Gl_MDu2{qiV9dCvl)JIVZ!6TgW>5;Obdzlgkgl$8T61txJQh zYN%<-@CmjwSsYF>6@OG39xRyz%Q3vsK%8LJu6okKo(DS078;E9AeBxSiY}zBG^;LR zRFq*-)F|dVY({+|@O5kHM>1++R6~kpNCQW<6#W*)NAG}^MmbajKb_=U-;N|)y6q2T$busrP3KqO~Qnt z*(k&4dh9O&K8Rft?)FpGLX+KWn=}TvF`0S(L}eXxt zukQp%{fy(h;j;+=%9kLVxK$kHlFmETfMP}^La#IGKrDXE$cIloQTm8K&y zLU>aoq+jX|_Wmh8GZ z#QxDd$>c&a<0Z&zE&cY!TVc=o(<>)>KiU||sEzJA+n9*|M2G<(-8t$8aMX<=``YQ% zLHlVGe&-Ib(-0hEY=Eil6p$}=NF;a3;>=6}_c9X_xK*rf@P+HY zK;6R=ti=C+L;U~B1(e^9qyy)&dExZG;DB!a<$y4@CJ@L@?>$Bsj$eqND_cQH3BtxE zm>TP9OsbfL2l7n?hi<1gq_E8k`AFW9crI7SwulE%7jIQz+6qPXCV-&j%&Z;sI=#TFjjxV#aPgjH+4 zjX0U~syM-RmL3PS!RU!B_53@_gF7u#QQ$C)dmzK5PA^#Ww52s<;OGXML9cN7I4-Zh z8S7EgRmH5WhX88@#~VsZm1Ayyf|KxCR=U}AhXCi5RXUQN@fY5Q9;v!>L^zs`#ibhZ z-u@`^Y-2N`J3uzwZUp9s=(uV`FRekbCf|;XZ_cE8uuh=gUO-<6$J+*26!@i8mtn5f zFXH*{^+o2#RhoEM%JS3bLfzSs6N+S73#%kfDsSU?^x~l1k<4pHEu%YCzyu@mX!%`f zC)Iit9KHwRy?(jeNgU)`Z(yYKR*F8F@aWYS6jyM(+kW~Tamh8s%UkKXU6?z+J&OOG z%$mQkJ*+yyeuzL-o8qRy)?#U!l`Qa+1}IET(!oiOVm69(jF{9;IGsbjDy?qn0L8pw z_o73*!vy0j_T5yWeQ_*Hd*p46FipSp%Ag7E{cAz}WK{IE`(cc_Z!LRnWO{wOa4 zml}JZd}(QJXUEF8qoLu=`)<{py``r}TGjP5I3P*pdonu+wMq1P`Po+h4TMUip#cT* zhjUOPdUmC(IF;NYhr!W-rM{+Xow9#%hFgUCE*)K6T?Z^Ss8#PABc6W187i1@=d=T_ zciboS4}C+uC^nX?P&%eVRa^%5oLm*ah-a_A$xc$bIVMx?w3)7k+OV;Ga<|o#fR(FB zSA6JJ{n)fJ?4Zc{=fS#Kn7U6GPUke!+~B<)?6uOKMyhMpa%>_q@LF@xlnjDYZny0~ z9^RaeR^|(RZ(6+rc3PsKyaofIQyQ&pib=&($%oBl_Bl&- z68QCrYMVZO`%}0r#5`~27KPWTl$i@ezpP`XKo~{~`>ON0Q6^a&w5RlGdGK9eijpPS zTvTgeo%hUjYjGolAz*_QOVTFx#ek?Bj<*6r8`gFZ%bh#L;dlm9wJ*VPsR^r}*jC(%GDx+rE2A;wF?F%){nqExC>Ab};i6Ic?ehI+pzAQ8M0V93 z1Px*I+O$pzWc=2Mf+QO=X;W+IzxdEba(Qx%uuwTQa}qAjqERI$M07dkr%tOVT#wf& zgIujfcjKqqtAz6p?L-n3=W;A=n!4+x@iDt;-$xZoYR@@Kj0Nh-;BTn{ck|Lk%bn_7 zjEbzJDyFC&Z(8?R`ehQUr2M8aC(&# zz2}HXhA~FxJ?I)oR0Te|v@ok_d!lFlNj7pdlQ1W^kY}}$hwX@;rryo5U-x-5n+|SJ^~wt}y7oS`ajLb7xDSXCq~m<1M8OV zlxKjP?UK$m1h$?h!pu^9wYiN8CENUe^eFtv-=5;->~^cy?meASLn7LHr62(sJEE&+ zlvJp!1&*4xBHXX(Rz(h9>o)|L-BQ-jt|H`me>9-6%+M+B7Kdi7-7mjSHERw$13nve zkANfHa%Nj(fm~UKU#=Zj$;r-Gi)z`-u0v-eTb-oz2R{8B_Chp_QKh=*g37s9u~6Uv z@2eqU@qD?}iyX=ec4x$FvQ~oRvE|Q9A?HjdzgW@B()FA{Da$+%ysO!gcxqDsgbd(? zCgZYUU}EDOEeESlG-+15?lvqWS9g_10_$f?Mo57dxobV2b&YrpYu8BLlsnveFFlauL2 zRnovR(;x=3ka8z+zy9%YgUqx_4O~4^je-5nOL872hsPBQb9pc61*5iPI|siIQM1de z;4)>YJsP5J3!%=J@x9h6Y6BYM?xZq_;Ec29%q0xzX_H^DD(xI=#|b7EiCD19jtHau zVr(XI4=?Y3-<5_?W~WSrsG#i+(3a1?6v&MG=CTvysIW31M>h{JA$Bdb>W!JrA~M2G z1}*i2&|L{FY+2SN*u@Koh%zDoGKGfS`}_F4T8(SAKsX5iG43m`%#3^ z;iEL4!f>?k=$9hur-cNc3M~j1&1^b%8sra?%zrGrqA~CBKKOxm*#5R%)Y+sZFNtn( zcubgnBW~*uLXoTbe7+XEZM5U|P`n0nfvk|mKDjFVFimH@3Rk!0z>&gAe|M=vipH!4K}zPq1}6425ujZ)D$X`LNN)vO3X zRtCK+I+yzR>oIJ~(%#YKXQK?z^(e{ypO9g{?$W)n+1c6NFgG{1xtKpiL6F>ZZ|rZA z33+F+f=zk<8>{>UT$;&bDgilNA^dpVz}|kOC`U*caIs_WPPlDF1kjdJ0sL$*QPila#mW>sgJ z0A5rrv6_c|i^V3B!GNe)#hg_dj#5bm;69jrg%7Dr0i?RAd-45iC%S8NWuq~eh9?+Y z^_}B;Ta&&O53!f(*+)*1w8hC_z&;kP&vAAlZl-r?I$QZi){t~OED{L{;4d07=^c&w zd0gxMK}@6Zfy`%kY&m3tL9f(r0Y>wE=ss_eRPEl|YJu|S*Rfu_kU13({8}JA6%K$T z1O%AQOw&HTW#EAPUoF%M8vq?M*Kt;vXihWmDRm}5YzC>ETvz=01@QGHfBZdvmh|RW zdgjzrVM4<&m+M#BJnOcvH}Dh-l`;u_f92zUb&pKMPXAtzr)Z`l>-p^V;GC=cTY&I6 zCfYt8WsJvBLEOI!zj#%YeFgtk;7xk{HWsSNkk-h#SU5wwQ|0abRKj?AvV^S(lRay&svc#dL zk!?Efq!1Q#bPHd;79c3hxGu{K;+3UgJ9n=JUYe)hu5W9ncsQQ5D%_$Fmi1IA+icC7 zAHL-Kd7mm6FjKGbfo`gt-ag8lUOBFS*fsO(%t9^jPyk>vsW^`~PKI3@d)MmXbw+x1 znx?&_F26SkK2auQi8`}x(q_Sm7VV1={XcjYYnOrN^Jxg>DjPZ;O^`o?YKR~=jfq*j zA2^+>=JXa8rQzf+Lt6G*g=7ApLpu1(4(eWchrlTL5L}|W!M2E626C|6h|(vSR6ldu zf)Fc(2j@}lpY!J^_;o*QRM*8EYx&IXYin0QYp0lmR)5A zbe(XXW;gY_geFE!qhqiH_DRvp7*EmliELVd;8H0;Gt8cvJ_6ky#bDR3oGg_{bkI}J zYVpNCrpx#281Ko7UA51%$5IU)>Jfd5_?IRGOMne)cu3bcvfv)uI~)<#K66Vswy-is zVKP9ve#6GUt24iHCEf*x5di`wFEC7YfJcbvw>vSfrW*EbS*8un1%7iZG?KRf`Io1MvwBEnQqKW*~y z%!o~1sr>U)tZ{p<9u`A{_4h|<*!qXNE1E~sa3!pKfAS+-k6RN}3&)?HU*iEC?vj%K z5z9eM)8&MqK_va7ZsI>a_y@6@U0R8Wivt!G5-`#uaPh&$X1~1tY!hs~aW@ET!*C4t zjp*9j+Y_Nem8|qb-X(m*&ju>q43OYH*Z0G0a zqo$Sb2@RBh(KS$SJ{OWN5k%qWse$>eU_IyblObozM*T!Rb{?hBIS|>EvkL7e-`{LvbTtT|P862o%i(m&B?K%xDt@C-R3s6A1hrPIHup0-c zCr)ByhNh>{Rhe^~#Vu8-Dly!)?E4~=sZ_14Jx*Ahb1(OgM?O%291ziZH0^Rx>sjM` zR;BSw07d5X{1xh?MB|yu>2B*;)7|+>~8<_Q**z*4k(kYuFI0D0|BvHd?BixH4XC zq2Fr)<@%7lCVYX@Wq}J-P0h0zH+*5V^YN?)=rjx-wBB=KN&+k)9U2>OFEa&7=20ZI zRx;ZJbY&1n9pGf#!+p()`ts~0PZ%sIE$FJm5Rt@vOoq0qJdKheG5#=FkOPcD1? zaR*OvQ$Es9{AWl4tO`Er_{6)?&_P5R2U>?>YB=>0lkQ!_mf1FmDb{f9+#y5yG{dy|zvk!9SoScHBAyRi!9((gg#lN{i#-&lrF^l)a58Wzm%6Z8pM*R9QWi&(L2^hz-gX^(xuCu z9;Pzt=7bd~vX$Wg57Ys|CTgKALAh$19>nxQ*%)X3veXcrTZYMCgvY>i$6f;HOkHj{ zjlBvP;SU#QXzU$>oq52FC((rW0o=UX_mzK2QRGC*?yRiFn0E@;O+r=IHZ)4Wp-*(V zGp@n=tJ}?Dg|G60a6NTf_2oEVa*0~QE)T#KJnjQav9LOjet~wmK!Y1QuDduK(Y`pI z4`?`|0uz5dzy7>c;JmP;;PS7J6ey|6H4K;E4TAxj`*i~Xg@UQz^lL9QiH=39=J;sbvi@W(JHPH^ z4g7`Lo%;g*U%O8KlQbJ(vrk?Tjc3wVfd|v}H5B-oAxvW>vz)BWn?fUkAy=fd@4m-)ed&?geGoX!70-f!saW0W0!&#tp2LdgSgL z(EXvH{dn-q1dMA6>!r}ZhfO}toip4`M<;NennZrMD6had7gr2mcL;0h?w4#Q$uh?RQZ z>mNw0&N(qAo1o8!jn7#;WtF}8`#YpGIN~5m2Q>KX_pV>Tn1a-UCp5Bbzr$w1Qh0x! z@U^$sUmuDF)5zk?)5i~*lr|6F1l|#|b#dv{FE4IxdCzL_Wr&!N^xM2Y-hKKH3?7c0 literal 0 HcmV?d00001 From 5c2539bac306f183be7e15d1f37143bda62c992f Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 27 May 2020 19:56:21 +0100 Subject: [PATCH 015/936] Delete settings.jpg --- src/res/homepage/settings.jpg | Bin 72343 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/res/homepage/settings.jpg diff --git a/src/res/homepage/settings.jpg b/src/res/homepage/settings.jpg deleted file mode 100644 index 47597a734922516ae1ee20f42ca856c39c2f1fd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72343 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≠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 hPh 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 RWj_J1WBJVxs^|BSe* Date: Wed, 27 May 2020 20:02:18 +0100 Subject: [PATCH 016/936] Add files via upload --- src/res/homepage/inputlevel.png | Bin 0 -> 8245 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/res/homepage/inputlevel.png diff --git a/src/res/homepage/inputlevel.png b/src/res/homepage/inputlevel.png new file mode 100644 index 0000000000000000000000000000000000000000..0fac889d5e0619cac1f9be8a8e414ac2c2b6741e GIT binary patch literal 8245 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 Date: Wed, 27 May 2020 20:02:41 +0100 Subject: [PATCH 017/936] Delete inputlevel.jpg --- src/res/homepage/inputlevel.jpg | Bin 5023 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/res/homepage/inputlevel.jpg diff --git a/src/res/homepage/inputlevel.jpg b/src/res/homepage/inputlevel.jpg deleted file mode 100644 index 7ee049c08b6f1ed5a401ddbeaf6b24fb961dc39e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5023 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 Date: Wed, 27 May 2020 20:04:44 +0100 Subject: [PATCH 018/936] Add files via upload --- src/res/homepage/chat.png | Bin 0 -> 11011 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/res/homepage/chat.png diff --git a/src/res/homepage/chat.png b/src/res/homepage/chat.png new file mode 100644 index 0000000000000000000000000000000000000000..121ccdfb191ac95e5807c84a423dc30148c0e8db GIT binary patch literal 11011 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 Date: Wed, 27 May 2020 20:07:55 +0100 Subject: [PATCH 019/936] Delete profile.jpg --- src/res/homepage/profile.jpg | Bin 17283 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/res/homepage/profile.jpg diff --git a/src/res/homepage/profile.jpg b/src/res/homepage/profile.jpg deleted file mode 100644 index 7a7063f1d0e3aa266c08d66d01005e9e15982b4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17283 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 Date: Wed, 27 May 2020 20:08:10 +0100 Subject: [PATCH 020/936] Add files via upload --- src/res/homepage/profile.png | Bin 0 -> 13391 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/res/homepage/profile.png diff --git a/src/res/homepage/profile.png b/src/res/homepage/profile.png new file mode 100644 index 0000000000000000000000000000000000000000..ec47968c23b963903fecb7fb4759231f9af60bc0 GIT binary patch literal 13391 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 UNu?|x0SEw!a;lKBXQqGs53{O6DgXcg literal 0 HcmV?d00001 From a464095839fe4a7bf2be7ee6c1612818939f23f1 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 27 May 2020 20:11:28 +0100 Subject: [PATCH 021/936] Delete fadertagtooltip.jpg --- src/res/homepage/fadertagtooltip.jpg | Bin 11449 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/res/homepage/fadertagtooltip.jpg diff --git a/src/res/homepage/fadertagtooltip.jpg b/src/res/homepage/fadertagtooltip.jpg deleted file mode 100644 index 163bb581e9391bc6a0a6f1283ef3f1b3e4a8de8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11449 zcmbVycU)85((a}s9R;L!snVoN37~Z8RjP_e3BC7#R6~=lROuikfb`z0fOP2{1O({> z2+7U+zUQ2K&-d58cPA^!Z|}7yYu3zuX4W$c^%J!Qkf|xDDghW60Dysh0jNdb8Gwt8 zgNuWWi;IJchlh(#Kt@1t?;ZgK2`LfTLkeo@hZIy)v<#1!XzAGKsi>GAGqZ7Ua`SN0 zF!2fUaS1-+;^z8G2nHS=9sxeV0|J5vT(nfQT>sApsuLi`$KV2*urOEwOmYk?atu^2 zz=R$r4#wXH@UH^{6AL|FJp6kEgy;@+WB?`x78WKp77h+JHoA8p`Z|D3j&q+yNFMir z&TBkYSBfVg3Ay-e3e{bdx)aCj!f)K(-y@)UNKHfgh=Y@hn@2=cOk6_p>9gmGO3Es# zYI^zxhDOFOO|0Hpzq7Hmvv>FK^z!!c^$QIPkBE%=08LCvPDxGs^f^5*zo4+FxTN%J z&9~aR`i91)=I)-}zW#y1q2bA?>6zKNpYsdr8=G6(JG;O3_D@dF&Mz*n;MX^Q>4gDc z{i7E8^B=|jhhF4py)dz{v9R&}(hCFA8{M$Tv2j?0aPQ0O;JtQz!1^QvpF$xax4P>d zo3QRNEDW^qu*d-raQez!{l~im zJE4Bk7c=*q%;1oc@@#=0j(x3MhIf{uglF`ZoRjUdO9Q#0$0>!i=@z-pC3};gg~RRp zc};X~ypu+o&M`Btmkcs($B_Oe14%{WqY4wzw*|Gb`AdP|(GJ@OIgvl5Q9$89{A}wd zgzHH*Xp5mZrxOLlzJn)i$hK`Pvl}0fEz0A6RG}hsQ`t+Wc>BF6uddODL+SmhwkzcT zi_sw&Ym4$6TuVZ>^St5@tI7qqC1+{L9C{WuP3fiT?J}OTChs_(0KdZ)pPh77 z^;+^9;fq4>K}YRf!P0jpJVf1!caZ1gn7((av!^$>$P6sx&}RChT9{+t?SLd>7KG(x zb5Q2$ar)4s!}9mI*?M#;VQk`$T(t0Jn?BUh&2Pu~I_>!C9Z9;U-1zB;F!*gdCG1EeT3);;PO=H6?C5ymW7qYWzD~?vqL-4WW=lt#~OVTXIf0MWv^capyHe z3gksD1b%r2D&30W2ChvoMjMHyV4n7DlLox76W=6kudxqQ;#RkA3&!xaj~ zesCPb+d`~mPz!_aCkTh03jcs zfQ~sPgj1Z)s>^P?`miAAnM%8F7R=D2|Jr z?1DFXstPz=i;{FXmYYOah=@q>p!?D|Xglg4FWlgiQ*b<_LMYQpLI39qfe6UvFsRVC z?vra|WQhHO^dQ|(O?Xhc83du>Puh8F zSq*=8^CXuBMmhidjr0R&+#sFK-JJertM!Y|&xj2#l4IUeVdWqqjm`swL>h~pXWMB{q;7lBe;PWcMayt zJ*~x|Q4XHe9vmhaPg!j08RZru!B!j5DIc_PqAv=DK3s7A%QoYOSZLdh>E6Z<+2p~9gwnDqng(t2U+YHaL=Pnub6iodx2-0U zn0S#=u6IL=RgRnVXNCy7O$hDJC7%JkDbW^ne_||y`ntG&Q|zQMRRzrQYiz($+I>LB zV%~ebjpWQI+Ms2kcJD%>dV6`qA@+$?5q(TdpxqTMZmc`Qk~ghp4v&S(H?#88!ESFe zM;q*b?}CC_Y?zf#)aEQ_bGDEtlKhcT_N!#lmg_|)5%G}nmljKVR|^5;_LKAFs*Vgl z9%be0)rNIqaqerW9R^Xr(+s8q)Hky5^ky9c6Q@_t|9s3Yv#)j-e z`z~LICU-37MsBXd3aM(9JCW3!w`$ot0!!wjVz3Km;E`)+}$xD+K-CgDV(b z_?K8jN*3rUt2vwL1#hNf3vi}u`xM4_j*57S5P5pEW1@hMB`CnJDKi^fa?FAPK775i z^(SWA2mLz&b;P59gI1aICKRw>@GF}J1;le9Q+9Khgm&SOJv8jrmN^KV=uiex`3A^Y ztrVAR(DWH!%MhcV8tEl^A}djF&+4hH4==K3_OHjr+NB^yUytz9k;75#eDA|q_W@65 zZtX61rQu9QQqeP*RpagG&q&9Es7`G1F-cnlEot$ee{rsCCJHew_vhGgicJ} zQQ$pDzHxiZ0z3YktH$=X0{b%BuWML2TFE5p58{e)iZpQIG940^^PyA(Bh*A}oN zLrX#-NrP+e+I>NcK`e3gj1=hjCC-F!OF}+e?G?B_J}$ny{`*h2X;j>HQX^;7To!%T z-ep;GHw?g{ZyB6+qwAyD^{z%`c{@o}@xxV2aGVj5a)3t#2(EzO zLjel2A5cIrIpjnn&`&1xBm6t4jV^en{W}T>6X;$&=lhid$9RYW9+zH%DC9Z%$)P8B5BpwGedkmU}bWL505hO+JDAwU&ZBgQET3(E9kpU+G>jk_;P98&{e{ z+{QZHF4c3kn9cKw(#^Ky=}e29V?_yfUbE|ZOyZXV9S0U=C(+82=i|il>cw{ThKY6i zEI!P}Lzeu{VnU{vgABI)jc#{OVY%IJ3^{UY)dq;w0^$ZT=)LyjSWK}dV>4rDedT<| z?N7#P72|4oDJ6?3_Cl4$O>AFHIvuFEX>TNRQjbdT&(Mevmh}A5lvq@cNrHNfr&X|| zn0+i3Jz{)v9Jm`(3k#d|I$ka(EL1Z&rEsjTxl0r#lp<|8`?|?)Lk%NOcAagXfcv8W zR?>)$-!zUWATPD?#NA~(@eC2m-C}l<^`JYOr{!ceaszUIZ>p%Nqz6Jd+)t=zL%Ue+ zlKV=na%W}PciEtoBS7BW|9Dj^sb__=&hh>VlJI(~-uB1f>sKviS;Zd(M?+GnWn9k# zDSHnZ^3D0KQNU+a(;H+9laP<_^SQ^40nZ$5a`$07w&Hf8zc0n9j7VL)9gLo_4M>Nb zzr{Y4JT$t9y}z|D=D6{P#3#qN?kRDmpY~L$t|PwzkSvCOTCg126e$;!a_&j-^sr^| zW)9K4I=76p{IF)hRdYgNBrE3QA@k;j`+W2X`-ki|#_<=8KA&Hdcl44+93g0TL{^Cp z2GnO99M5Cl&Amvnn0nL@K`0fiXsqHax~Xt95f>i!J5IRvShgT987xs$ac2(tp<#J* zTD@a=ul8Q6@CJIq_P42}fNFW$7-R&f{;0YW+y9k9hGD$a-AG}h8O z%qh`jCKjo%C5n$p7_x`UG>rx-wQ(mwh>aQ?S8r}Dcj5PV**hw8wtSSM94?4KYq0P` zPhV&2*0{rGqUWzU7wa8!r=`}yJ8uVyokBxlw(vu=LsmrIg`w9NibECxqk&=u{Pxnz zixOa7wE;{C=}AV_!cB>MAakd2ESfNekHgJR_ae6+zmFvZGhs|wrsNmbpp2g$AwlDT z(h)I>1l#0$WqS<_!dIb|wgIvzAOWw(@{*_?1x%=0Qme-nQ~qfen-zEiH(GPVQ)=(1 zo)!g5xjA{jty6toLvg&UjoX7vNA%*pgQIDil68;FMf_ta&(MR6aq`R(=)Nh32_>|O zm(eZiu_xd)Mu->@QAFUmIMBZr?xJk+Jz>37nf7QQmh`wT=j+b^yJHpnd72U2cy~tj zC0L&6;2y9QYNi=hk8A*+Bh+@#ORU)u#Q3|s)_hfXN`SPvzjbA-*qkPlBltCKi|~N+ zkn59gN+^KqQF0h>=S~y;MF)-D6F8e*efE{ERe>3pwle!nSmapsi7*fM{z-Yh?Iwoc z)3uTbr`0*gsa5+W60NsLAhDtkNzRF|UiC3amVe=j$?~|w^u>Ko>Ya4u2I%@F#`|0) ze42OHE`Z*msUbXf<2iKWN@J=v!3xZn_Bg>zB-<*Z6Ss4ub3x@Ank_{e)a~7n)uHuW zqwvm4CND{JQyg+%S_k}1C4F4o(c?haE@Gd$0329~`JGzHOl*Ui$oaRH4DUqiz4B#v zWVc^XX^DxljrY@r3?jF3XnDE*dh$p4e!ol`hOZ1_Y2p`^`F>Ii#Imw=)TL|(FJr3y zb}zJrIgqrrq$2Qx|MC}M=p`gB=aknN@>3pkZkDoX3@aN3Eh8P)dIM~7h#n}!4s0{< z{JAt=qknD(`R0tLlHSDcL31R?)enq|`qs8|lODy{;imYmuqk%;@fR;76VWz{v~*3f zX&{GNhwdi&n5*^DNwGL8vv~d>eMLDh4R$1>rhbSDzm;)KvV7}Ppb=4=Zu{avxW@3ifeliobK?3GZ)bfK4D6AyzK?x@Zv#1q7uwx~>xN(eM% zx-s_gvrC`tpW+1p)>xhdUNFY)inWPQtaeX-r)jM;nY8`~?N^m{0R98xwoASEbva;?Y zhc@zl7tLayhZ_* zd*~3h1*7W=w9rBRIkUlK+mtCol7S)DTOEZ=$DyVuVEoY?FPiyUXFnmmBcdHg;;Ey6 zJ{=Trk24DL>(wme_^Bn5Cx5@@2z;pXC+FX{aG_HT+Et{lz@7y?q3s-&)C)Qn1cTrV0%#^k z^?wM9|2op>ukZf{!90rs&W0drV4r{eErGQ1#(iakKJ6e1XxM|mzoOa8C@ivemf4r` zYj@2SkduAcGXC{LokQ;xf(Ct1i^*(bq+a4xw;#vn3UfO$*(8xknOecYv5CMe?Vt;K zjNAS_==Cgw>|k5d^YGQ3GkW#AQTFTbVb82A>v4Q|Wu0LMxKU&bh z!u^yKR>cgwqpeS2`zT-=o-SLDY@rrI3Qs%d*M(~Q$ji`Y-K%_+csl}RaTZU!eS13O zHhv{Yl?|ChEiQlm zrrdz<+uORo)}i0%lR2HS;&8<)^5SM!c>Uj!%iqV26QMTH76cfADW7cDXP|%{6wpcR zyk$DCG#u#;@j-exIsaiA%j@Cz`-ET4SnTNC=JmuYj(JTiO57df3F6mMpw_NpaJA0J zwEpY(QpB&kPT$o5rfbUIpo6==@hsD*Ccv5IxG(Y!QjCmFZ1r~xe5ds zIJG@(D{Dv|+kqt8o_<9ENr&oNw>rZQg%L1&>90Rd+e%JttIWnv8w-S7O&B#;BIA(0pVmNMAH z_y7{alQ_uEoDv0nsGzJ2cePr-Gnmt!Ms~5P-cJmD?U2u#9B}f!T$wl#zt1Oo*t;$+ zqs;Q=$WM{7hxCJ=o<<4I)P*}v>@hkYy?q+hdiJ!ZO32CAWeGy!f1){!WVbVX=uMS3 zV9?wYsY|O3UBK~5bSKRei(U1mf4hlSi6@fGegm zrn>FkXmxZxa_RQ_p$skbjM!+Srq9|&G$N!-v}@LC(&>;h{CO1>a89J8^2#Wa5f0O` zkduzN6v?DDg3MjG9K6a)g@%Mv=>A|E4-$)q7diaf&T!Zp__XkP83qc_`Ult87Y{9s zl2AYkV!kU1KAf#p$Ea0jOO3W>TiMjMP*cvh*Bps@5%|@n-s~LpR z??NRN-9bZ_MW1~3OcVs{!HUXUX8n!P+tNm@c0p7%a{-d;(Jezxx~73N6=ctcF;v$T z-P}l-xdsl>Pr#qr^(+;AM69}LneKeL&>%b8D!peyevMSNpxpoc8r0J!*gQmeS&BWB zKaf}O@%z^i0zqp?%hjpm_^>jLi+xsccN^oB>McXvWigtQSgO3Liwg$zxl^CaEv?zD;RHsNDEkvwhf z!_FRzn9x7zWqAnkDUXrH%0;~ynA4Q*(=rWD9${6Xu%3u+(ljt5uAu88^vJePOS%Oe zASR#L-=e=}#;8`;BSNXNtgYBq#=&6X-x%x(K^`p*!_?t;@$3CUe>7^~cEzT9FdNy@ zvgOjmnVFqLL2c7Pc0~*;gDxKN`-DsupZ;+5f$aF#E|xaxK#_jdH}=MD(}zWE(|I$k z@JEV1Hn9f!McOg1{RCyS>ZJq)fg#zQEJfb>3bfQ}~{t*O}77MY%g=YqJ)A zg=4{@W|vzPGKEy%;+K&{j8w9SqvXa?*kni!3d=8?kjZu>|_$Atr8L<9Q(fy#k|GX;l#`KGmydRDlM>2H5$-P z-?w!<+W1^3N9)Va5oeSXgR>)zgGDX7w6Pc<*-WLqU;)`wA zq(271dpT|QAKu6Ji>@HE9mld~HJ5F%w*vIG4;!lHySybDQ!Sa<>)n-WUc6;Xl_US; zmRn`~s#5;z%HtF3*`$j3JzDdW*qOV&mZh&Nt9J=+3FPK!e%>za76Dj^zGY9~M&CQy znr`38PJHbuJv?pylSbkCd(3w{E%S2x88p5>n{L_@1uUCd?u}TpbI_Du@QGMF*YrtH zI%nxu*-DrSiL-WFhM0rKPf0q^dHCawXpa*9ipPJl!Rm|Q(H;VXRUuoq2_vkbw35<* zv6GB&g09cA-ui6rs>YV;h$D*k`(Q)U4DYBUx|Bg8T>1XMW_mKY9lmzj!lHapr*D)QMvLC@<|9L^H8H@wz?aC~@N+jI$*Szh30cOIjsE zsVE0wF?_;)T!|q!?fUm(T!nexsFQU!pmLA+_$WHpkV2&JVh6~YzVD%yTjQD6HR`tPQzplR08&Dhi!2sxUrO*3!|~1Peo9QfD7YO zQB|qXp-Oi!mw5~e%;Pu>0c{q)^L>T_z7QNAQ0#(qmXQlP3%?_!1j%>)-Dl_^>j&{%B!2DfBA-_4M@Y3RiXdDO{v}VsEy-+C1aTn>;4}Xe)SLTkLK#*q@R6 zw5@YBuLiWv@dNVh%`~X~e7s7%Wu)m=KgjeDyPi%$0!Z2mHK8){n!8LeH(q+?4t^3D zXKVKKX?B?48dO8Hu~JKsLKnz`a{bk?!r*93Wxa^M3xfR>(VN@UH&6f~dKPqX({aPE zc8ValS<1Lu+!>=+?zi)wcrjEs>Mtg#SST?nE}7qkNfo1$PRtTn><8A(wj<%f%vxO% zT`~XF&eE)f1-76u=TP-Hl-x+EV2H8i@kr zDA#u5Qw6~-h`8_kzt8wg*9W3RHQbOpo444?WlP2@=1ZY$W-o`F9=ge=Tqh^5B^KaH z8^nsQ?=)Gt`#VxtP>ZcN<+?hSjygrN zR8WcoJ^KbRs`YgIu6iM6jbU-IwMtdOu|UZKB(;y*Zg&uI-NYY@#5YLh;K0rK$~i+Cq1A7h7qjtkuErgQek0iTi#8_IL{0M?C^*ru=d$Vp^jfxw z{RJXL{prjFdT6ctx(5OSU%{No@vh!W{Aec;`bbT0BNIsMGdgjt;Z0i{S;uEM*R@cT zf;r?~utzHT?K36b0%!uNo2VVHM1)gKPyM>y(unREK zkL}wHLhD6CtLo8F#jNDa;c$e_hZH)O@xk8LZ6}$G#9Xams~LO)hnOrvX7rBiF}uY& z7Vckt+zr$Fdsp@n?dz*Gz>h97-^FC~ni|F?|9KT#uNxoviewC7oz{*|TN%xq(R1K% zyr+9()Xi^`BY2fSnRy`gfx% zC%+WRjcOlGb7N_Ryy0W}q@R}ESMN$tKFucd7(M2GX$wYUTc}@aqLW{No@A# z^#lJll0Z$~(6`YKu&C=XKC>o1kI50ie3t3y@E}zGF#@a9;#V4E(ZuF+$+O%(-0Zhm zG+&xu@*7jU`l+P-W4&Kc0x6-NeR3l`94I+Z_@h<&M3_n&%9uwcoPMmFJ}iTwwQ&hOOogR6(I8Z zd<=eE6Z` zgz3Wj(71p2Z`_Bm&9=92pa8GyZ=vKT=`{HgUn|_&LPR3=+$2Pg+=SD&JADfHMvdau zsXuCxzSfn;)E#e7)wkE{>Uh-qH_4+F`h2o^c16k&IsvPGzQK{KtwZ$-mc$K zxHCOd#~xx^Tg6R(Y{#b8V1B}Eol52%+xhCr`K}B&r7c@j@67$s;(8sEG^|$PDIGQF z++;2!+d?Sx42>t@%Q>>L8Jkk3%l9t_dghv~^K7;IN*DJMhUkY#7iqGk+`Jvr?1=QF zg4v1ajjUlW!QM#b@b-bPOuTbB;I>6dO>0%gY*_SvV0rj8tUZCmU6JA>6mTKPAb*x2g9KlgZL1D$@XR3bY*tX*ltZ|3BF zj24cy`MQ=Zs26CkC$u`h8x<5>Zho80OYUO)af#!|&kV{$J#Zp2z_-(wpjfK(@eNI3 zU78ko%#lOXvj;7Y-8qhew~Xp14gAfWozRYc@q_W}>f8lVnfO?@|Boiz-^Q`TWE||) zAnx!c`$-H&i+2_8&0&V=-O*Ntl12_sf7PU0JnQ24iGP|=WZ+ZOAlvzov z+)FMfFhR6Kaa(Igqc0l5{T}Q+`=Itb%|R?j?S`|f7|Bgcifm;@Q{-SvaV?j)PrI{i zoaWO`wOJ43ragAaS4`ltm$om{T#O8AnG;sCXU=>P^!b{+=+t3}u_C)i(N`I|HRJI1 zRyKE|Ww650llR`}IuswuUOqgy`))b7q+dBe$Ua)@#H&gC!v#M3^r4|~QJbnrn(b8= zwmhQL0Mj?P{^!qc)k-8TxcWxJx8gRuhmbDLo2;Sb#hYc=kBed6ApuX&gGIaMAZcZn zsi80CVBMih6+!D5IYVYKSEey!x%}-izNqtkpJ>&1{e~pNvyU8EE?1{L6qaw)Ba_u@ z4}X#e)GfRvZtya$qSTBwhmY`?_k+NI6q9%jwHrHNz4& zA5aLrv3+L{t2H#zT=^%B$t8t=5UcIDxRX?TQ93n01OS(6K+QFXeNquxXpVr zAVXT<4Z5-|@Q=^YqPJqrGo=KkD#609zeSQwepV1WyLUR|T&M;$K4;cZ^dEEB)Olvj zOJ^nRcUjz`xE=GVp@PDI)6Jxs%5|!cDVD;3jGC>D#c4hd3P2Uqwu}mGS0ApbPy7}+ z$-UP;g6-m)gKLc05}hd9$)n_WC-4ICVn%jxrwH7J=Ei`AEI+Htd3iAtj*_-h>gM3V<~6N*ef;h-&q<@Nhs{Ua9m>?YEB=AVul zC?I?R1)TH8|1)?UjkiDl?iqhTDHVy}9}>!eE93pO+vBp?1wO}uE`)kQj-~!fXf(R( zCq{92@Cx7Lml{Wb-$4eQIX+Ei!r|8aV)1`GFDs?cL*sz*PWHUsTVEeieMzn9meB%2 G&HpdrRkaKN From d21df567577c6eb5578894a7d482ef3787aeeed3 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 27 May 2020 20:11:45 +0100 Subject: [PATCH 022/936] Add files via upload --- src/res/homepage/fadertagtooltip.png | Bin 0 -> 49322 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/res/homepage/fadertagtooltip.png diff --git a/src/res/homepage/fadertagtooltip.png b/src/res/homepage/fadertagtooltip.png new file mode 100644 index 0000000000000000000000000000000000000000..3168831c3844cbfa5841e9c399fadd100569e21f GIT binary patch literal 49322 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 literal 0 HcmV?d00001 From 26164452670a481f06d8493154a1ccb4e10b8a9e Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 27 May 2020 20:13:42 +0100 Subject: [PATCH 023/936] Delete reverberation.jpg --- src/res/homepage/reverberation.jpg | Bin 3847 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/res/homepage/reverberation.jpg diff --git a/src/res/homepage/reverberation.jpg b/src/res/homepage/reverberation.jpg deleted file mode 100644 index 900804414f67dbf98017c09e083bbb15d0b0dfab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3847 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 NQ<~9o=a-LX{|nFLAN2qL From aee28beb125e6735f923f5900980f5ebc17a2ff6 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 27 May 2020 20:13:55 +0100 Subject: [PATCH 024/936] Add files via upload --- src/res/homepage/reverberation.png | Bin 0 -> 8501 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/res/homepage/reverberation.png diff --git a/src/res/homepage/reverberation.png b/src/res/homepage/reverberation.png new file mode 100644 index 0000000000000000000000000000000000000000..51307adddf6b251c459e2febf372beec6a93e346 GIT binary patch literal 8501 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 literal 0 HcmV?d00001 From 8afe195273fb83100b5aa98d952321065f632c57 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 27 May 2020 20:15:09 +0100 Subject: [PATCH 025/936] Delete audiofader.jpg --- src/res/homepage/audiofader.jpg | Bin 3115 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/res/homepage/audiofader.jpg diff --git a/src/res/homepage/audiofader.jpg b/src/res/homepage/audiofader.jpg deleted file mode 100644 index b819e76817c9c9a5305d18ce1a8eccd0e94a1120..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3115 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 Date: Wed, 27 May 2020 20:15:20 +0100 Subject: [PATCH 026/936] Add files via upload --- src/res/homepage/audiofader.png | Bin 0 -> 7218 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/res/homepage/audiofader.png diff --git a/src/res/homepage/audiofader.png b/src/res/homepage/audiofader.png new file mode 100644 index 0000000000000000000000000000000000000000..f06b3bed88f3bae9316c9f280dba6beebcf16dc1 GIT binary patch literal 7218 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 A-T(jq literal 0 HcmV?d00001 From cf4d4be91943ef5c1a40cbf4e6f0e437b10a847e Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 27 May 2020 20:17:06 +0100 Subject: [PATCH 027/936] Delete soundcarddevicewindows.jpg --- src/res/homepage/soundcarddevicewindows.jpg | Bin 9913 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/res/homepage/soundcarddevicewindows.jpg diff --git a/src/res/homepage/soundcarddevicewindows.jpg b/src/res/homepage/soundcarddevicewindows.jpg deleted file mode 100644 index 43bcc0f3d91e3723fa25e52f3e05749f9fe26058..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9913 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 From 8feb890f9a8266fca6c342eb6c7d094f217879b4 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 27 May 2020 20:17:21 +0100 Subject: [PATCH 028/936] Add files via upload --- src/res/homepage/soundcarddevicewindows.png | Bin 0 -> 5256 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/res/homepage/soundcarddevicewindows.png diff --git a/src/res/homepage/soundcarddevicewindows.png b/src/res/homepage/soundcarddevicewindows.png new file mode 100644 index 0000000000000000000000000000000000000000..b3957e380bde060ffaf4f29bbde7631d417686a2 GIT binary patch literal 5256 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 V+;yam;IBnMO<5a`dGsvke*kA9^8o+= literal 0 HcmV?d00001 From d0bd6a2727d47360f783eb9cca7b158a95c95c84 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 27 May 2020 20:20:06 +0100 Subject: [PATCH 029/936] Delete bufferdelaywindows.jpg --- src/res/homepage/bufferdelaywindows.jpg | Bin 7250 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/res/homepage/bufferdelaywindows.jpg diff --git a/src/res/homepage/bufferdelaywindows.jpg b/src/res/homepage/bufferdelaywindows.jpg deleted file mode 100644 index 1b78a3d1d92b31634e498a1a8cfd8f2cd676ce21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7250 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 From 77eb08df7b29f59fb03843a56bf75cbb24ea2107 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 27 May 2020 20:20:18 +0100 Subject: [PATCH 030/936] Add files via upload --- src/res/homepage/bufferdelaywindows.png | Bin 0 -> 7053 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/res/homepage/bufferdelaywindows.png diff --git a/src/res/homepage/bufferdelaywindows.png b/src/res/homepage/bufferdelaywindows.png new file mode 100644 index 0000000000000000000000000000000000000000..95e8834230fb18b5802a264758aa0d3cff3b34fb GIT binary patch literal 7053 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 DO;>m< literal 0 HcmV?d00001 From 1b62a8056cefc62143077ef27be25c7f35421df5 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 27 May 2020 20:22:39 +0100 Subject: [PATCH 031/936] Delete bufferdelaydependency.jpg --- src/res/homepage/bufferdelaydependency.jpg | Bin 47854 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/res/homepage/bufferdelaydependency.jpg diff --git a/src/res/homepage/bufferdelaydependency.jpg b/src/res/homepage/bufferdelaydependency.jpg deleted file mode 100644 index 9270feaf7c808a2085fb3eb1c9f4491497857d84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47854 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 From 441b3fb452a5cdc0b8902f7801c0d8cd286e0ee6 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 27 May 2020 20:22:49 +0100 Subject: [PATCH 032/936] Add files via upload --- src/res/homepage/bufferdelaydependency.png | Bin 0 -> 13598 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/res/homepage/bufferdelaydependency.png diff --git a/src/res/homepage/bufferdelaydependency.png b/src/res/homepage/bufferdelaydependency.png new file mode 100644 index 0000000000000000000000000000000000000000..77675ea0445fa4a99fa4782ea398db32e924c763 GIT binary patch literal 13598 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 literal 0 HcmV?d00001 From 7b31c07fa1fa803b1bfea50fddd54d40463741f4 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 27 May 2020 20:23:23 +0100 Subject: [PATCH 033/936] Update manual.md --- src/res/homepage/manual.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/res/homepage/manual.md b/src/res/homepage/manual.md index 2226cd9b34..fe29690c99 100644 --- a/src/res/homepage/manual.md +++ b/src/res/homepage/manual.md @@ -32,7 +32,7 @@ The **Status** LED shows the current audio delay status. This shows the level of the two stereo channels for your audio input. Make sure not to clip the input signal to avoid distortions of the audio signal. -### Chat button opens the Chat dialog +### Chat button ![Chat dialog](chat.png) From 219b818ded1c092ce4c07cbe67876e4bcb104895 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Wed, 27 May 2020 20:33:28 +0100 Subject: [PATCH 034/936] Add files via upload --- src/res/homepage/connect.png | Bin 0 -> 319582 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/res/homepage/connect.png diff --git a/src/res/homepage/connect.png b/src/res/homepage/connect.png new file mode 100644 index 0000000000000000000000000000000000000000..cbb936fdcaac01a86f09c8bf28bb32c5113907b0 GIT binary patch literal 319582 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

akWqA$z#bMBHit*Ob4CAU=lTBvcIo<7s* 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

Qxt_5y06RLlEic_BZK@ zm#RQ}{f0plS&!A_EXz$->tz#nf)PKeOWn%8^Pq^eH_(^rnT7Z0d@p$r;tsojY}8Np zMb(4A`&Us>qdt_;Z*cF4M~s|-hX7=Ma&AieumJ=;jB4HMv{NSpDVhHPA{#sG3&#!; zd@?t79I-3#4g5|m8bk1K+B(3FKcut~^rxJcN%|K4 Date: Thu, 28 May 2020 02:01:20 +0100 Subject: [PATCH 035/936] Check the size of PROTMESSID_ACKN messages. The Evaluate* functions that parse other types of messages all check the message size before starting to read data, but the special code for acknowledgements didn't do this, so an ACKN message on an existing connection that had a valid checksum but no data would result in an out-of-bounds read. Found by fuzzing with afl-fuzz. --- src/protocol.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/protocol.cpp b/src/protocol.cpp index 4c33607f67..50be6eb572 100755 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -556,6 +556,12 @@ if ( rand() < ( RAND_MAX / 2 ) ) return false; // special treatment for acknowledge messages if ( iRecID == PROTMESSID_ACKN ) { + // check size + if ( vecbyMesBodyData.Size() != 2 ) + { + return true; // return error code + } + // extract data from stream and emit signal for received value int iPos = 0; const int iData = From 1462ad50db430a1042516111b758db07a24c07f4 Mon Sep 17 00:00:00 2001 From: Adam Sampson Date: Wed, 27 May 2020 15:38:36 +0100 Subject: [PATCH 036/936] Implement CLMessReadyForSending in CTestbench. The class had code to generate connectionless messages, but it didn't implement the signal to send them. --- src/testbench.h | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/testbench.h b/src/testbench.h index 0fb35fbd1f..fa5d398b44 100755 --- a/src/testbench.h +++ b/src/testbench.h @@ -60,9 +60,11 @@ class CTestbench : public QObject iPortIncrement++; } - // connect protocol signal + // connect protocol signals QObject::connect ( &Protocol, SIGNAL ( MessReadyForSending ( CVector ) ), this, SLOT ( OnSendProtMessage ( CVector ) ) ); + QObject::connect ( &Protocol, SIGNAL ( CLMessReadyForSending ( CHostAddress, CVector ) ), + this, SLOT ( OnSendCLMessage ( CHostAddress, CVector ) ) ); // connect and start the timer (testbench heartbeat) QObject::connect ( &Timer, SIGNAL ( timeout() ), @@ -295,4 +297,12 @@ public slots: // send the next message Protocol.Reset(); } + + void OnSendCLMessage ( CHostAddress InetAddr, CVector vecMessage ) + { + // silence unused warning + (void) InetAddr; + + OnSendProtMessage ( vecMessage ); + } }; From a876b265037bbd6ff9cb4577dc1912ac1a957d54 Mon Sep 17 00:00:00 2001 From: Adam Sampson Date: Thu, 28 May 2020 01:44:15 +0100 Subject: [PATCH 037/936] Add recent message types to CTestbench. The code that generated random messages hadn't been updated for the last few types of messages. --- src/testbench.h | 48 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/src/testbench.h b/src/testbench.h index fa5d398b44..0a7737f0ad 100755 --- a/src/testbench.h +++ b/src/testbench.h @@ -117,13 +117,15 @@ public slots: CNetworkTransportProps NetTrProps; CServerCoreInfo ServerInfo; CVector vecServerInfo ( 1 ); + CVector vecLevelList ( 1 ); CHostAddress CurHostAddress ( QHostAddress ( sAddress ), iPort ); CHostAddress CurLocalAddress ( QHostAddress ( sLAddress ), iLPort ); CChannelCoreInfo ChannelCoreInfo; ELicenceType eLicenceType; + ESvrRegResult eSvrRegResult; // generate random protocol message - switch ( GenRandomIntInRange ( 0, 27 ) ) + switch ( GenRandomIntInRange ( 0, 34 ) ) { case 0: // PROTMESSID_JITT_BUF_SIZE Protocol.CreateJitBufMes ( GenRandomIntInRange ( 0, 10 ) ); @@ -280,11 +282,55 @@ public slots: break; case 27: + { // arbitrary "audio" packet (with random sizes) CVector vecMessage ( GenRandomIntInRange ( 1, 1000 ) ); OnSendProtMessage ( vecMessage ); break; } + + case 28: // PROTMESSID_CLM_CONN_CLIENTS_LIST + vecChanInfo[0].iChanID = GenRandomIntInRange ( -2, 20 ); + vecChanInfo[0].iIpAddr = GenRandomIPv4Address().toIPv4Address(); + vecChanInfo[0].strName = GenRandomString(); + + Protocol.CreateCLConnClientsListMes ( CurHostAddress, vecChanInfo ); + break; + + case 29: // PROTMESSID_CLM_REQ_CONN_CLIENTS_LIST + Protocol.CreateCLReqConnClientsListMes ( CurHostAddress ); + break; + + case 30: // PROTMESSID_CLM_CHANNEL_LEVEL_LIST + vecLevelList[0] = GenRandomIntInRange ( 0, 0xF ); + + Protocol.CreateCLChannelLevelListMes ( CurHostAddress, + vecLevelList, + 1 ); + break; + + case 31: // PROTMESSID_CLM_REGISTER_SERVER_RESP + eSvrRegResult = + static_cast ( GenRandomIntInRange ( 0, 1 ) ); + + Protocol.CreateCLRegisterServerResp ( CurHostAddress, + eSvrRegResult ); + break; + + case 32: // PROTMESSID_CHANNEL_PAN + Protocol.CreateChanPanMes ( GenRandomIntInRange ( -2, 20 ), + GenRandomIntInRange ( 0, 32767 ) ); + break; + + case 33: // PROTMESSID_MUTE_STATE_CHANGED + Protocol.CreateMuteStateHasChangedMes ( GenRandomIntInRange ( -2, 20 ), + GenRandomIntInRange ( 0, 1 ) ); + break; + + case 34: // PROTMESSID_CLIENT_ID + Protocol.CreateClientIDMes ( GenRandomIntInRange ( -2, 20 ) ); + break; + } } void OnSendProtMessage ( CVector vecMessage ) From 43b709d6c22826f0f3a8f50e26b1dcf6013395da Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 28 May 2020 07:29:36 +0200 Subject: [PATCH 038/936] update change log --- ChangeLog | 3 +++ src/util.cpp | 1 + 2 files changed, 4 insertions(+) diff --git a/ChangeLog b/ChangeLog index 28fe556dc5..2358eda517 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,8 +2,11 @@ + 3.5.6git +- added check in acknowledge message, coded by atsampson (#302) + diff --git a/src/util.cpp b/src/util.cpp index ce17d6abb9..df2c7ea8fc 100755 --- a/src/util.cpp +++ b/src/util.cpp @@ -401,6 +401,7 @@ CAboutDlg::CAboutDlg ( QWidget* parent ) : QDialog ( parent ) "

Tormod Volden (tormodvolden)

" "

Stanislas Michalak (stanislas-m)

" "

JP Cimalando (jpcima)

" + "

Adam Sampson (atsampson)

" "
" + tr ( "For details on the contributions check out the " ) + "" + tr ( "Github Contributors list" ) + "." ); From 6ecada7f87f2ffcceec49970d69b8190f9d3907b Mon Sep 17 00:00:00 2001 From: AronVietti Date: Thu, 28 May 2020 00:30:02 -0700 Subject: [PATCH 039/936] Fixes issue with AppNap causing stuttering/silence in background Adds a mac only Activity class that controls the NSProccessInfo Activity options. This exposes a C++ interface for the Objective C calls and handles the Activity Id lifecycle. Currently sets the Activity to background, latency critical, sleep disabled. Added the Activity calls to main.cpp, starting it in the same location that Windows priority is set, and ending it right before the app exits. Updated Jamulus.pro to add the new files and required lib. --- Jamulus.pro | 5 ++++- mac/activity.h | 46 ++++++++++++++++++++++++++++++++++++++++++ mac/activity.mm | 53 +++++++++++++++++++++++++++++++++++++++++++++++++ src/main.cpp | 18 +++++++++++++++-- 4 files changed, 119 insertions(+), 3 deletions(-) create mode 100644 mac/activity.h create mode 100644 mac/activity.mm diff --git a/Jamulus.pro b/Jamulus.pro index 60da17c283..18867a873a 100755 --- a/Jamulus.pro +++ b/Jamulus.pro @@ -91,6 +91,8 @@ win32 { QT += macextras HEADERS += mac/sound.h SOURCES += mac/sound.cpp + HEADERS += mac/activity.h + OBJECTIVE_SOURCES += mac/activity.mm RC_FILE = mac/mainicon.icns CONFIG += x86 QMAKE_TARGET_BUNDLE_PREFIX = net.sourceforge.llcon @@ -107,7 +109,8 @@ win32 { -framework CoreAudio \ -framework CoreMIDI \ -framework AudioToolbox \ - -framework AudioUnit + -framework AudioUnit \ + -framework Foundation # replace coreaudio with jack if requested contains(CONFIG, "jackonmac") { diff --git a/mac/activity.h b/mac/activity.h new file mode 100644 index 0000000000..8f4fa5cb16 --- /dev/null +++ b/mac/activity.h @@ -0,0 +1,46 @@ +/******************************************************************************\ + * Copyright (c) 2004-2020 + * + * Author(s): + * Volker Fischer + * + ****************************************************************************** + * + * This program is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation; either version 2 of the License, or (at your option) any later + * version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * +\******************************************************************************/ +#pragma once + +// Forward Delcaration to pointer that holds the activity id +class CActivityId; + +// Reperesents an OSX specific activity. See Managing Activities +// https://developer.apple.com/documentation/foundation/nsprocessinfo?language=objc +// This essentially lets us start and stop an Activity frame where we tell the OS +// that we are Latency Critical and are not performing background tasks. +class CActivity +{ +private: + CActivityId *pActivity; + +public: + CActivity(); + + ~CActivity(); + + void BeginActivity(); + + void EndActivity(); +}; diff --git a/mac/activity.mm b/mac/activity.mm new file mode 100644 index 0000000000..9fdd2e9d2d --- /dev/null +++ b/mac/activity.mm @@ -0,0 +1,53 @@ +/******************************************************************************\ + * Copyright (c) 2004-2020 + * + * Author(s): + * Volker Fischer + * + ****************************************************************************** + * + * This program is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation; either version 2 of the License, or (at your option) any later + * version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * +\******************************************************************************/ + +#include "activity.h" +#include + +class CActivityId +{ +public: + id activityId; +}; + +CActivity::CActivity() : pActivity(new CActivityId()) {} + +CActivity::~CActivity() +{ + delete pActivity; +} + +void CActivity::BeginActivity() +{ + NSActivityOptions options = NSActivityBackground | NSActivityIdleSystemSleepDisabled | NSActivityLatencyCritical; + + pActivity->activityId = [[NSProcessInfo processInfo] beginActivityWithOptions: options reason:@"Jamulus provides low latency audio processing and should not be inturrupted by system throttling."]; +} + +void CActivity::EndActivity() +{ + [[NSProcessInfo processInfo] endActivity: pActivity->activityId]; + + pActivity->activityId = nil; +} diff --git a/src/main.cpp b/src/main.cpp index 6dda585252..42557d28a4 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -37,6 +37,9 @@ #ifdef ANDROID # include #endif +#if defined ( __APPLE__ ) || defined ( __MACOSX ) +# include "mac/activity.h" +#endif // Implementation ************************************************************** @@ -517,8 +520,7 @@ int main ( int argc, char** argv ) { tsConsole << "Qt5 requires a windowing system to paint a JPEG image; image will use SVG" << endl; } - - + // Application/GUI setup --------------------------------------------------- // Application object QCoreApplication* pApp = bUseGUI @@ -550,6 +552,14 @@ int main ( int argc, char** argv ) QDir ApplDir ( QApplication::applicationDirPath() ); pApp->addLibraryPath ( QString ( ApplDir.absolutePath() ) ); #endif + +#if defined ( __APPLE__ ) || defined ( __MACOSX ) + // On OSX we need to declare an activity to ensure the process doesn't get + // throttled by OS level Nap, Sleep, and Thread Priority systems. + CActivity activity; + + activity.BeginActivity(); +#endif // init resources Q_INIT_RESOURCE(resources); @@ -688,6 +698,10 @@ int main ( int argc, char** argv ) tsConsole << generr.GetErrorText() << endl; } } + + #if defined ( __APPLE__ ) || defined ( __MACOSX ) + activity.EndActivity(); + #endif return 0; } From c37715653456c15a126de85521eaf6b7060c0f7a Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 28 May 2020 16:35:56 +0200 Subject: [PATCH 040/936] small merge fix --- src/testbench.h | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/testbench.h b/src/testbench.h index 0a7737f0ad..e2dd2cdaad 100755 --- a/src/testbench.h +++ b/src/testbench.h @@ -344,11 +344,8 @@ public slots: Protocol.Reset(); } - void OnSendCLMessage ( CHostAddress InetAddr, CVector vecMessage ) + void OnSendCLMessage ( CHostAddress, CVector vecMessage ) { - // silence unused warning - (void) InetAddr; - OnSendProtMessage ( vecMessage ); } }; From 16187529ea950f3edf842ba1ed9c8261a3706755 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 28 May 2020 19:05:35 +0200 Subject: [PATCH 041/936] merge fixes --- ChangeLog | 3 +++ mac/activity.h | 2 +- mac/activity.mm | 2 +- src/util.cpp | 1 + 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2358eda517..5322f1add2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -7,6 +7,9 @@ - added check in acknowledge message, coded by atsampson (#302) +- bug fix: on MacOS declare an activity to ensure the process doesn't get throttled + by OS level Nap, Sleep, and Thread Priority systems, coded by AronVietti (#23) + diff --git a/mac/activity.h b/mac/activity.h index 8f4fa5cb16..4f46ba098c 100644 --- a/mac/activity.h +++ b/mac/activity.h @@ -2,7 +2,7 @@ * Copyright (c) 2004-2020 * * Author(s): - * Volker Fischer + * AronVietti * ****************************************************************************** * diff --git a/mac/activity.mm b/mac/activity.mm index 9fdd2e9d2d..e9b56da4d6 100644 --- a/mac/activity.mm +++ b/mac/activity.mm @@ -2,7 +2,7 @@ * Copyright (c) 2004-2020 * * Author(s): - * Volker Fischer + * AronVietti * ****************************************************************************** * diff --git a/src/util.cpp b/src/util.cpp index df2c7ea8fc..c6fdd82f94 100755 --- a/src/util.cpp +++ b/src/util.cpp @@ -396,6 +396,7 @@ CAboutDlg::CAboutDlg ( QWidget* parent ) : QDialog ( parent ) "

Tarmo Johannes (tarmoj)

" "

mirabilos (mirabilos)

" "

newlaurent62 (newlaurent62)

" + "

AronVietti (AronVietti)

" "

Emlyn Bolton (emlynmac)

" "

Jos van den Oever (vandenoever)

" "

Tormod Volden (tormodvolden)

" From fadc95048969b843a45c8e3d1c1690ba643690a6 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 28 May 2020 20:03:55 +0200 Subject: [PATCH 042/936] small fix --- ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 5322f1add2..dc9f9338c8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -17,7 +17,7 @@ 3.5.5 (2020-05-26) -- added vocal banjo/mandolin instrument icons created by atsampson (#283) +- added banjo/mandolin instrument icons created by atsampson (#283) - faster update of musicians list in the server list table From 7db3a8680abb1fcb53d244f8b5b8bf9ba56c2ef4 Mon Sep 17 00:00:00 2001 From: dzpex <65598812+dzpex@users.noreply.github.com> Date: Thu, 28 May 2020 23:49:31 +0200 Subject: [PATCH 043/936] Add files via upload --- src/res/translation/translation_it_IT.qm | Bin 98212 -> 98208 bytes src/res/translation/translation_it_IT.ts | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/res/translation/translation_it_IT.qm b/src/res/translation/translation_it_IT.qm index 433295f4d2e387426af9fa0f993b6134c195e74e..2c490f730e63b7990dd88809b35f6c5b44858816 100644 GIT binary patch delta 3864 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 delta 3860 zcmX9=dq7Ni8-9K>=giERbLLDU6{tI2LHa#^-r z*_GVVlH|7Ew`jj2MQodEHYwLl64_0mmik`JU(cK~zw`UO@AE$I^Zs^s^SRypmH|d5 z0Mmep)g}zLF<~tM0)eS1CXDD~!a56p{{+|{3%oxL(2fCu76JRF12aMa>ra7M^o@0) z3BzvyNl8HcG;kY_05>Or%Si(qV@zlaO9Qw26qqg$+~X}^y}ZCZuK~XP1-xTA(6<)+ z`?N{8CwS*v;KfJaCuRb*G2o}tq5F*By+?t06oQ|&AF%2KKWhr$`L+jH??>S0%mnLW z4n9o}^m7KkhX?A;fzKNbBWyN;FI)y_*7YC@ItIRI4Vd*As4tcR^OK<)aS-^T%!Jix zuuj`TY+Qj|WeYIb5sputf%Xi%fB6F7vI}0@%7~dJcpXRtUfzb+T@EnJ??E<{hj+Rj zOuPo41$T{LQX72E4JQT$!*}%eV9|B(EnN?Uoq*q^?L_x5d^CPPn3*2_!L)H$1A^ud zrL|6&{k9E=Sb;f@iK%~5G55U>z^r@`q8dmEJVgktWBsNh!gn$7Bne5`#N7M>Y%R?J zHc8mEk}n1#f6BB`SQ=|^#B&CiQw^?e_5qR?negUnTpRK+9n*$;lpbm<(Gctae9574 z`$Vw0wRqk!mMUA(gUs+N+J`-)ydxR+j1=)_EaU&CuvK3%-QDe!W-7DY-t|r$%x&pj zz^*r&@-mAG+$S7E>s@ zGHExD?J2Sa8&$&2e>(%X9>C5YDFhp1#%{hW0~>sa-4A+0>{YOa2zsv!VU0n>U<-@c z-|Ga@iw*0rdj(kfDTGA^68vt3Hh{uTxUVp4Ct=_2r?9B-0*tpNEBeV+q~>IW?IY4l z@F~Th2MJ)>YK8klS1`R!5q#n?kj@md(}}Opdd1u^6!4@qiuG7PdH$caX*6!bo8X+Vc=1)3D*_viKLTUy$Nf7QM@#gPE_rR zj-=JVjaH?q{5e>Rr0iehL>>1;Iq+l*Jr^kLKWhPc3Cht;T58=?WngsLp=-GJ#v2ok%+SiA(aK{&TlC;f{Rn`;JjmxLYQC(aB}cr9O5unlNlS zm-E|~#CH~#n|h7fk8%6gcvFG%yt%xOz5f=(peDZ_WFyMBfcR+7V4>J92?#fs?_}&QTTzMO=R4?+QH;RD_yw8vn2f1vt0AY6tLLKT-)o3z|ZzPPwUwScD&q84QveW zK{mw5+Xv1fYh1_wD=G)DW&ChEQkuOh@3Mzl;^RDioX(YaKf;d>`5A0d9dGEIPKNN3 z_j)q~P(R{lWs*SlyYOLgPUJ*OviaCi1E?iq`A^?jfng}W>iGkr{y4ubdLMagJ-m0LFN!tWwEq&DN@{Pf~!*KdYQKA0;o| zsv0ZNzTX&C;TF`hNlmI0<6O$v)m4@5Z%O0pnQF%zqHtWRYFFlK3Mf#u|4cAxqD+;S zP7zmStMc6>^4w9Xf_MYijL%giGe~rOzUV<_Zlx;Cj|Pr)tIpTbK{lsV74c5AuY;

OqV1cvMHr`Y_ zkLl{s9jj=13{`vBQ@KQa~A`}P+R);tWq?vB@{0?Hwd#`$V z2r-hP>_Il@rFw+}J?oCBzyDz(F@4FX-hP*;d#P3bK-93w;c8Qj>eV|h5EF8OI_E(b zkTXnudOKYh%&OG)L&)~}omAiduRCFq`eEleutEOnCOcc2zj+#|z6C7kiN@?_190D4 z<4_`lX};AAPir9G&FMkbd!uGVz;U{O7{fI#g~ec;gU0=TIl%HbjYn=MaC(!*Z&4Lk z@4lK~YwFWI0h;-%?f@%3)GR(5Z>a<+ zg8j0ufVLFDF@S0rKUSDvW&pCU3Wk0kgDnUbrm|jibCCtVsMEl!AR$<$z+;nzxvvd$ zP>B$^wVmeiOd+zlffDf-mVA;z7lsK!@*@hsDND$h;7a{3bP8JrCW5JXVQXh2aQqA5 zU~LXCELJ#na}}x7TsVH!o-`6K{91XP26>%O5<=_s{=x-2%G~X!aIwl6%%+#n^f@tR zHc@z5MuA)^5IS~4xix8TT(bq{?bS9p=gr!OXXauj`jl?f;Sb z{(Cpz>?heI6C)$KCEIV>sg!O#$VMbdwjB#-e~mP(#hjcmPx`QT6)@>7OKdPtgFW1(I*+pEUg;1y)ckhu@H59y$R&eWiq(SHMDJq{OpiJk5~4eMsLe z@su(hC;@Gxv|}JSq;jNG#E9yMQzooSmCj8ju^N_2<+E#n0gx&+JY=LJ(bpw7P zig!o#AanQ8jczUk3m>BM+pwA1?3B)bHD$Qyxi0un5U^&A32PSWA~qBQ#pb%G=~P0a z+f>t!FmqjuC1uiRu3PCzfh=gy?b!B$E^57W2R!M6@lCptRwtr(sRKdC#oPiy>Ct_wlH@7rRGU;c6aJAa2Rv$^i=v$z+vgIXNRVUSCD<`Qjyupr z{Xe2WP8>y+>60fXucwU{@063D?gv~h%b6C`4c4+;e2p>~q?PZqQREk=$WKy;ky8ug zr|T)B!BKLX4c!+~Hp{OH3hBFfa_3B1H-46Wpx*)Nreyt~|IqrYdIoUe>wACa!hb+DSDq7&m^b3D4r*`^Gzb1kLvMtrGEp(>&{aU|uJx#5D zb?ASv45eC^>921-K|qt7Hk#`wrs-*bNzDb%u PAN - Bilanciamento + Bil. (L / R) @@ -1315,7 +1315,7 @@ Enable Small Network Buffers - Abilita riduzzione dimensione Buffer + Abilita riduzione dimensione Buffer From 822294aca1c0c58bb09519d026f814bc0202f299 Mon Sep 17 00:00:00 2001 From: "Vincenzo Della Mea @ Medical Informatics & Telemedicine Lab, UNIUD" Date: Fri, 29 May 2020 09:03:16 +0200 Subject: [PATCH 044/936] Update translation_it_IT.ts Typos correction. --- src/res/translation/translation_it_IT.ts | 64 ++++++++++++------------ 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index db9d15d5a6..e93e953bb7 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -31,7 +31,7 @@ uses the following libraries, resources or code snippets: - usa le seguenti librerie, risorse o pezzi di codice: + usa le seguenti librerie, risorse o parti di codice: @@ -46,7 +46,7 @@ Some pixmaps are from the - Molte pixmaps provengono da + Alcune pixmaps provengono da @@ -56,12 +56,12 @@ For details on the contributions check out the - Per maggiori informazioni su chi ha contributio, visitare + Per maggiori informazioni su chi ha contribuito, visitare Github Contributors list - Github lista dei collaboratori + Lista dei collaboratori su Github @@ -268,7 +268,7 @@ Sets the panning position from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. - Imposta il Bilancimento da Sinistra a Destra del canale. Funzione abilitata in modalità stero oppure in modalità mono in/stereo out. + Imposta il Bilanciamento da Sinistra a Destra del canale. Funzione abilitata in modalità stereo oppure in modalità mono in/stereo out. @@ -388,7 +388,7 @@ The chat window shows a history of all chat messages. - Lq finestra della chat mostra la storia di tutti i messaggi. + La finestra della chat mostra la storia di tutti i messaggi. @@ -444,7 +444,7 @@ Make sure not to clip the input signal to avoid distortions of the audio signal. - Controllare di non saturare il livello di input per evitare distorisioni nel segnale audio. + Controllare di non saturare il livello di input per evitare distorsioni nel segnale audio. @@ -454,7 +454,7 @@ 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. - è collegato, suonando lo strumento oppure cantando con il microfono, l'idicatore a LED dovrebbe illuninarsi. In caso contrario probabilmente avete selezionato il canale di ingresso errato (ad es. Line in anziché l'ingresso del microfono) oppure avete impostato un guadagno di input troppo basso nel mixer audio (Windows). + è collegato, suonando lo strumento oppure cantando con il microfono, l'idicatore a LED dovrebbe illuninarsi. In caso contrario probabilmente hai selezionato il canale di ingresso errato (ad es. Line in anziché l'ingresso del microfono) oppure hai impostato un guadagno di input troppo basso nel mixer audio (Windows). @@ -464,7 +464,7 @@ software, you should not hear your singing/instrument in the loudspeaker or your headphone when the - non dovreste sentire la voce o lo strumento nelle casse o nelle cuffie quando + non dovresti sentire la voce o lo strumento nelle casse o nelle cuffie quando @@ -541,27 +541,27 @@ Reverberation Level - Livello di Reverbero + Livello di Riverbero A reverberation effect can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverberation level can be modified. If, e.g., the microphone signal is fed into the right audio channel of the sound card and a reverberation effect shall be applied, set the channel selector to right and move the fader upwards until the desired reverberation level is reached. - Un effetto di riverbero può essere applicato al canale mono od ad antrambi i canali stereo. La selezione del canale mono e il livello di riverbero possono essere modificati. Se, ad esempio, il segnale del microfono viene immesso nel canale audio destro della scheda audio e deve essere applicato un effetto di riverbero, impostare il selettore di canale a destra e spostare il fader verso l'alto fino a raggiungere il livello di riverbero desiderato. + Un effetto di riverbero può essere applicato al canale mono o ad entrambi i canali stereo. La selezione del canale mono e il livello di riverbero possono essere modificati. Se, ad esempio, il segnale del microfono viene immesso nel canale audio destro della scheda audio e deve essere applicato un effetto di riverbero, impostare il selettore di canale a destra e spostare il fader verso l'alto fino a raggiungere il livello di riverbero desiderato. The reverberation effect requires significant CPU so it should only be used on fast PCs. If the reverberation level fader is set to minimum (which is the default setting), the reverberation effect is switched off and does not cause any additional CPU usage. - L'effetto di reverbero richiede un uso significativo della CPU, quindi è raccomandabile usarlo su computer veloci. Se il livello del reverbero è messo al minimo (come di default), l'effetto è disattivato e non causa rallentamenti sulla CPU. + L'effetto di riverbero richiede un uso significativo della CPU, quindi è raccomandabile usarlo su computer veloci. Se il livello del riverbero è messo al minimo (come di default), l'effetto è disattivato e non causa rallentamenti sulla CPU. Reverberation effect level setting - Settaggio del livello di Reverbero + Settaggio del livello di Riverbero Reverberation Channel Selection - Selettore di canale per il Reverbero + Selettore di canale per il Riverbero @@ -571,12 +571,12 @@ Left channel selection for reverberation - Canale Sinistro per il Reverbero + Canale Sinistro per il Riverbero Right channel selection for reverberation - Canale Destro per il Reverbero + Canale Destro per il Riverbero @@ -770,7 +770,7 @@ Reverb - Reverbero + Riverbero @@ -988,7 +988,7 @@ The actual buffer delay has influence on the connection status, the current upload rate and the overall delay. The lower the buffer size, the higher the probability of a red light in the status indicator (drop outs) and the higher the upload rate and the lower the overall delay. - Il Buffer Delay influenza lo stato della connessione, la velocità di upload e l'OverAll Delay. Usare una dimensione troppo bassa del buffer comporta, maggiore probabilità che l'indicatore di stato diventi rosso (drop outs) consumo di banda in upload e una diminuzione dell'OverAll Delay. + Il Buffer Delay influenza lo stato della connessione, la velocità di upload e l'Overall Delay. Usare una dimensione troppo bassa del buffer comporta, maggiore probabilità che l'indicatore di stato diventi rosso (drop outs) consumo di banda in upload e una diminuzione dell'Overall Delay. @@ -1073,7 +1073,7 @@ In stereo streaming mode, no audio channel selection for the reverberation effect will be available on the main window since the effect is applied on both channels in this case. - Nel caso in cui si una lo streaming stereo, non sarà possibile selezionare su quale canale far intervenire il reverbero inquanto sarà applicato ad entrambi i canali Left e Right. + Nel caso in cui si una lo streaming stereo, non sarà possibile selezionare su quale canale far intervenire il riverbero inquanto sarà applicato ad entrambi i canali Left e Right. @@ -1103,12 +1103,12 @@ The new client level setting defines the fader level of a new connected client in percent. I.e. if a new client connects to the current server, it will get the specified initial fader level if no other fader level of a previous connection of that client was already stored. - Settare il livello per il nuovo client definisce il livello, in percentuale, di ingresso per un nuovo utente che si connette. Un nuovo client che si connette alla sessione assume un vulome uguale a quello settato se non ci sono livelli memorizzati per questo client in precedenti connessioni con lo stesso. + Settare il livello per il nuovo client definisce il livello, in percentuale, di ingresso per un nuovo utente che si connette. Un nuovo client che si connette alla sessione assume un volume uguale a quello settato se non ci sono livelli memorizzati per questo client in precedenti connessioni con lo stesso. New client level edit box - Box per modificre il livello di ingresso di un nuovo client + Box per modificare il livello di ingresso di un nuovo client @@ -1145,22 +1145,22 @@ The ping time is the time required for the audio stream to travel from the client to the server and back again. This delay is introduced by the network. This delay should be as low as 20-30 ms. If this delay is higher (e.g., 50-60 ms), your distance to the server is too large or your internet connection is not sufficient. - Il Ping è il tempo richiesto dallo stream audio per essere trasmesso dal client al server e tronare indietro. Questo ritardo è introdotto dalla rete. Questo ritardo dovrebbe non superare i 20-30 ms. Se tale ritardo supera i 50-60 ms significa che la distanza dal server è eccessiva oppure che la connessione non è adeguata. + Il Ping è il tempo richiesto dallo stream audio per essere trasmesso dal client al server e tornare indietro. Questo ritardo è introdotto dalla rete. Questo ritardo dovrebbe non superare i 20-30 ms. Se tale ritardo supera i 50-60 ms significa che la distanza dal server è eccessiva oppure che la connessione non è adeguata. The overall delay is calculated from the current ping time and the delay which is introduced by the current buffer settings. - L'OverAll è un valore calcolato dal ping corrente e il ritardo introdotto dai settaggi sul buffer. + L'Overall è un valore calcolato in base al ping corrente e al ritardo introdotto dai settaggi del buffer. The upstream rate depends on the current audio packet size and the audio compression setting. Make sure that the upstream rate is not higher than the available rate (check the upstream capabilities of your internet connection by, e.g., using speedtest.net). - La dimensione dei dati in upload dipende dalla dimensione dei pacchetti audio e dai settaggi di compressione dell'audio. Assicurarsi di non usare valori di upstream non adeguati alla propria connessione (è possibile verificare tali valori mediante un test sulla propria connessione, usando per esempio il sito speedtest.net). + La velocità di trasferimento dati in upload dipende dalla dimensione dei pacchetti audio e dai settaggi di compressione dell'audio. Assicurarsi di non usare valori di upstream non adeguati alla propria connessione (è possibile verificare tali valori mediante un test sulla propria connessione, usando per esempio il sito speedtest.net). If this LED indicator turns red, you will not have much fun using the - Se questo indicatore a LED diventa rosso non si godra di un esperinza ottimale del programma + Se questo indicatore a LED diventa rosso non si godrà di un esperienza ottimale del programma @@ -1230,7 +1230,7 @@ The selected audio device could not be used because of the following error: - La scheda audio selezioneta non può essere usata per i seguenti motivi: + La scheda audio selezionata non può essere usata per i seguenti motivi: @@ -1432,7 +1432,7 @@ Overall Delay - OverAll Delay + Overall Delay @@ -1455,7 +1455,7 @@ Server list view - Lista di Server + Lista dei Server @@ -1510,7 +1510,7 @@ The server list is filtered by the given text. Note that the filter is case insensitive. - L'elenco dei server è filtrato secondo il testo inserito. Si noti che il filtro non fà distinzione tra maiuscole e minuscole. + L'elenco dei server è filtrato secondo il testo inserito. Si noti che il filtro non fa distinzione tra maiuscole e minuscole. @@ -1525,7 +1525,7 @@ If you check this check box, the musicians of all servers are shown. If you uncheck the check box, all list view items are collapsed. - Se questa casella è selezionata saranno visualizzati tutti i musicisti connessi nei vari server. Se non selezionata la lista sarà compattata. + Se questa casella è selezionata, saranno visualizzati tutti i musicisti connessi nei vari server. Se non selezionata la lista sarà compattata. @@ -2395,12 +2395,12 @@ Current system audio input device sample rate of %1 Hz is not supported. Please open the Audio-MIDI-Setup in Applications->Utilities and try to set a sample rate of %2 Hz. - La frequenza di campionamento corrente del dispositivo audio in ingresso di% 1 Hz non è supportata. Apri Impostazioni-Audio-MIDI in Applicazioni-> Utilità e prova a impostare una frequenza di campionamento di% 2 Hz. + La frequenza di campionamento corrente del dispositivo audio in ingresso di %1 Hz non è supportata. Apri Impostazioni-Audio-MIDI in Applicazioni-> Utilità e prova a impostare una frequenza di campionamento di% 2 Hz. Current system audio output device sample rate of %1 Hz is not supported. Please open the Audio-MIDI-Setup in Applications->Utilities and try to set a sample rate of %2 Hz. - La frequenza di campionamento corrente del dispositivo audio in uscita% 1 Hz non è supportata. Apri Impostazioni-Audio-MIDI in Applicazioni-> Utilità e prova a impostare una frequenza di campionamento di% 2 Hz. + La frequenza di campionamento corrente del dispositivo audio in uscita %1 Hz non è supportata. Apri Impostazioni-Audio-MIDI in Applicazioni-> Utilità e prova a impostare una frequenza di campionamento di% 2 Hz. From 2750dddf44c9b90185e49fe64d9938072e00f878 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 30 May 2020 07:45:33 +0200 Subject: [PATCH 045/936] fixed: Example of config file on linux #310 --- src/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 42557d28a4..62d90d0251 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -751,7 +751,7 @@ QString UsageArguments ( char **argv ) " -j, --nojackconnect disable auto Jack connections\n" " --ctrlmidich MIDI controller channel to listen\n" " --clientname client name (window title and jack client name)\n" - "\nExample: " + QString ( argv[0] ) + " -s -inifile myinifile.ini\n"; + "\nExample: " + QString ( argv[0] ) + " -s --inifile myinifile.ini\n"; } bool GetFlagArgument ( char** argv, From 3db113e8a70cec5ec40a289d1e7cb76162cf2782 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Sat, 30 May 2020 09:17:05 +0100 Subject: [PATCH 046/936] Fix typos --- src/res/homepage/manual.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/res/homepage/manual.md b/src/res/homepage/manual.md index fe29690c99..6ac4dce768 100644 --- a/src/res/homepage/manual.md +++ b/src/res/homepage/manual.md @@ -10,7 +10,7 @@ Main Window ![LEDs](led.png) -The **Status** LED shows the current audio delay status. +The **Status** LED shows the current audio delay status. * **Green** - The delay is perfect for a jam session @@ -58,7 +58,7 @@ pressing this button will end the session. ![Connect dialog](connect.png) -The Connection Setup window shows a list of available servers. Server operators can optionally list their servers by musical genre. Use the List dropdown to select a genre and press the Connect button to join a server. Alternatively, double click on on the server name. Permanent servers (those that have been listed for longer than 24 hours) are shown in bold. +The Connection Setup window shows a list of available servers. Server operators can optionally list their servers by musical genre. Use the List dropdown to select a genre and press the Connect button to join a server. Alternatively, double-click on the server name. Permanent servers (those that have been listed for longer than 24 hours) are shown in bold. If you know the IP address or URL of a server, you can connect to it using the Server Name/Address field. An optional port number can be added after the IP address or URL using a colon as a separator, e.g, @@ -66,7 +66,7 @@ jamulus.dyndns.org:22124. The field will also show a list of the most recently u ### Mute Myself button -Cuts your stream to the server so that all other musicians cannot hear you. Note that while you will also be able to see your levels, other musicans will not. However, they will see an icon to indicate that you have muted yourself. +Cuts your stream to the server so that all other musicians cannot hear you. Note that while you will also be able to see your levels, other musicians will not. However, they will see an icon to indicate that you have muted yourself. ### Reverb effect @@ -78,7 +78,7 @@ in to the right audio channel of the sound card and a reverb effect needs to be to the right and move the fader upwards until the desired reverb level is reached. Reverb requires significant CPU so it should only be used on fast PCs. If the reverb -level fader is set to minimum (wthe default setting), the effect is switched off and does +level fader is set to minimum (with default setting), the effect is switched off and does not cause any additional CPU usage. ### Local audio pan / balance control @@ -184,7 +184,7 @@ timing jitter. If the Auto check is enabled, the jitter buffer size faders are d Selects the number of audio channels to be used for communication between client and server. There are three modes available: -Mono and Stereo modes use one and two audio channels respectively. +Mono and Stereo modes use one and two audio channels respectively. Mono-in/Stereo-out: The audio signal sent to the server is mono but the return signal is stereo. This is useful if the sound card has the instrument on one input channel and the microphone on the other. In that case the two input signals can be mixed to one mono channel but the server mix is heard in stereo. @@ -225,18 +225,17 @@ This displays the channel input levels for each connected client. ![Central server address](centralserveraddress.png) -Leave this blank unless you need to enter the address of a cenrtral server other than the default. +Leave this blank unless you need to enter the address of a central server other than the default. ### Current connection status parameter ![Indicators](indicators.png) The Ping Time is the time required for the audio stream to travel from the client to the server and back again. -This delay is introduced by the network and should about 20-30 ms. If this delay is higher than about 50ms, +This delay is introduced by the network and should about 20-30ms. If this delay is higher than about 50ms, your distance to the server is too large or your internet connection is not sufficient. Overall Delay is calculated from the current Ping Time and the delay introduced by the current buffer settings. Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream -rate is not higher than your available internet upload speed (check this with a service such as [speedtest.net](http://speedtest.net)). - +rate is not higher than your available internet upload speed (check this with a service such as [speedtest.net](http://speedtest.net)). From 02f6a3a5eebd84eb3050b8e0290a71a58ad7d099 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Sat, 30 May 2020 09:18:01 +0100 Subject: [PATCH 047/936] New version --- src/res/homepage/connect.png | Bin 319582 -> 46878 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/res/homepage/connect.png b/src/res/homepage/connect.png index cbb936fdcaac01a86f09c8bf28bb32c5113907b0..91eb32af58457f65a9944ec42234c3169e81767b 100644 GIT binary patch literal 46878 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

akWqA$z#bMBHit*Ob4CAU=lTBvcIo<7s* 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

Qxt_5y06RLlEic_BZK@ zm#RQ}{f0plS&!A_EXz$->tz#nf)PKeOWn%8^Pq^eH_(^rnT7Z0d@p$r;tsojY}8Np zMb(4A`&Us>qdt_;Z*cF4M~s|-hX7=Ma&AieumJ=;jB4HMv{NSpDVhHPA{#sG3&#!; zd@?t79I-3#4g5|m8bk1K+B(3FKcut~^rxJcN%|K4 Date: Sat, 30 May 2020 09:20:37 +0100 Subject: [PATCH 048/936] Delete connect.jpg --- src/res/homepage/connect.jpg | Bin 58285 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/res/homepage/connect.jpg diff --git a/src/res/homepage/connect.jpg b/src/res/homepage/connect.jpg deleted file mode 100644 index b39d43cee3c2ebfd0fdba3712d2bcc133950322c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58285 zcmeFY1yo#5w

J0wg%Wf)g~sf)g}^;KAKVa5{|y*Cr&81ef3z9D-}(?(Wi!ySvjg z)4BJ~|4U}R|J=FrzO~+(_1O{{VL| zfFuAN?LPW_G<5X)=olF2m=EzEK78=tArUSfHa;m485t=N2?;qBBMmtPJtYYVEgLO8 z6Z6w&Pao5;KWAro&dBnV<<}r67#J82F&{p9`0x=6ISDz-fBCv=1`uH0dvcEn73B%w z9svp}0m@xFfCfqDeUyK@0RM5J+(Sjui-GyzAr|t5N_@aQ6jaoEXsGw^qoE<+_C`Jj zpb^|Bq~nr6f28^rYCctw)T$BuI`@R(XsJ~$*JiX=+g4a>e~9o=GOMn@yY4g z`Niec^)J3q0I2`Y7P9?!#{LJs2#|c;LqkJF!}!G)$~{-)jY@!apN1y2`Uh&#Tud$L-)49VR0bAvn;FsGX7=pG^pc#&bXN~QK1 z+IC3K+xDEwVQW}hzj!bK@+D>2NrKnP@>?{77&Xaq)?Vh#Eo;i~9B9wZu30OE*gVLU z&c25EsGG)LMATeY0LZH(fPPpef1zkdyms-NDtCoOAC1XS{L(hB2F0mc+H1P48mm zi(-LkpI2eOnp$u17ItTx&+0(_DrjRG1{Cz3n)Kb4pY#?=Yb44FMix`hV)q#ik5YBr zK!{5XE1>mQRQMvN4}_XEX!#daMW5sjlU(@)AbM5hBr!2lT}rgj zikqyJ>bD<THV3eC+NFwU9oXx;J}u+Bii;SkWCa^fa|W4J#4MdAMBczkHdNgFiKtjfcR@n zXBVIQq*^Z2Mm2y5&Vt6d`$2luvvGqW1Jf9XMXs&kTNeo063C>j&p=LZy8_c*++sME zOHcDq10O}-_n6al)?Wrd^zT;S29bQe%}=5S4#*mvU$=YqION8l!?D^oldIdD<^2&a)4(WI$1%ycaqv%k2?JSfjP+_-|bPTjN5_cQ_elxm;(+BinRr zQJsKE-rqv+j?zqR88>ipECHKJsn_DW0|cZDwzX?ZpBY$9J$Y>Q5CU0GJ zUDbsB>Mtp&_hR&9DNU6Uri6+UeoXY`v+-NFTzMF>tZI? zDS}*|@^X~X<1Lwdz*}eiIqCH_YX?iT;|}0oh+D{OZnQ64L*Qyk0WaZ7%`3VCARfc- z0K)@!fJmC#van0blRJQ<074dg-b-Fv!cH|vp>+B2T!)P@Rl2HXlJ`<<0O&Kuz551V zKpLIQSNR2%O>|Ch3YIb6>vJFA7O9#cDUZpZ;RU|*LhR0f$Nz%!vxc^;rlPJy!^?`< zEj|C(X}{ZI4WX1ffUxj`J3x#ZZ0Kgzn^n$-uG@Lf;@psnp>#rvOEeX#D?9z;URf?0 zbwk~aw%r{78v)+5xC8XyA!cO$kTXL;;jI%=Uja&+x_=?`<+4oCRrlA9- zqO(z7f^V1B1^Rj9a@>mgt`jmdY7E=?v(1IS6TIqM zYHQMOdxdOgJBkAGH;h%e5l@(*36gdtQAuTM$I4#sDmfbI9xvBbE0ROmKkUPH%ePs1 zsCs-K5Uik-V7%BfZ2E)hKdgh#yEC~G(Nu{0u&c{rN@KVfTrQc+(Y8w`HWDVVM(^VS zZ}2d=1;&jQ?GTUO_lE2Y{uGO_4ctEiGIAe$1 zUz>cu@H)~Gkz7giR+pY&+pAzH$QjR+E6UNYit^0EpnK@c6WZ0_n)-J#S10(k()4)i z++#A6SAjzJpr~MSrc!pl|C1?8?`Iko`fNv7!toGyL*3sqA5E~JKuwQyq1uq&myzlp z_N3G*B7=0Q#kPO&mhs1^K`6^&NN4Wp`uAGY!6QIAZ&p~---;`}*)0s|tc~XWnEp?5 zCP8iYLI#QRgWs3v9~vn6PZ^T(J)%Lzfd7?X*f73ceRq%E`+I{o`TvFTKSc)B|J#H@ ziwuOG?zgGm?f~)s5toQ`@LY4Vs{Ke{Y$F*2Njv}>J%vXhuQm`hGVu9aOfeYn4j}#< zywD;81A#Zz@op|zjh!iSvEpe!m3M&DIPrtUjJ>L+lM{?vIB{`p$oT#Kuqx;sV5pzw z;!yP*W_)$^34wSxH7C7&Z~d<^SZ+YYaCpld0DK>~pW%$+NdMo*Ao8x7Lim{60h;_O zFH~!NYa;#{;~%u>-Q>=_H0b`vApany(0knW2Zz}|M)?OdT8-NRDx}>180If>{tsDF znTK3c-T}@AnxX-ge=}p?_A!69f3f*Hf!BXeAh-33 zA8CxG&axES{+_>zP^7ZN%g5kG9bmu;Rrp_K1=7{u)MTvj8QkYP0!S&7QpP15sM-kz z?4BrK2R^1E<1P`!q|g1qVgAq6@GrKL|Eo+t?_JD`SSL05T*2O?z|lFKD&w7lJHXCT zQ}_=oCsio`F;!k?n!_EyAOm5ira@qN^UCWU*qP?U1F*z6#ts)QRLr{!QwT*owfh`l zvqfiZGQaqwmJ;ub7Njgv?scQRE(fDq+lFv`8O$-oL!;?1*jiFkC{Rz1YD|{VlxXycaM-dL zHc{#ame80c<;#095Xf0g0EC)ud?=8)WYRo9;prNrqEg>Yp0G5ZLr$%I^?E{KfpT8K z)HC1O+-R^*UM}-%F70fu^l(>kHwwc&p%cS~5dVgtIne?p{@S=9t{&ke-v=8x0DHlo zRphvdZ>`;dz_;Z3^RmaY(h}wosRw41hu%VJTgPzFt#@}JCs@1{nPSZk8g*$MNfkEc z@NFA4q+5?FMa{Rp_h(iOCwkrWOj>!MyGuP`3r=;uJ_0JLWLE-S*`|fs%}bGE9{&jE zXIV+P%6%`wnWdvY+X4a!`YqF=MKtsm)!`lHS_sSBR2Kqu2uCL=Jl%RF2{A|91y!D- zD_3e>AnNV_%}g+`VbfxYX4>5BCN*heU5a+B)Hq{(pvvrRq#eJM7R{~z;F^+py(sy^ zIjmJrs_~n19{XN)7;%3o6ehu7!|#OLcT@h#{MfVL_^SLBwVQ8Q|{7I17RcEN66CS@D`+Fwrn5ow5A1}{K>42@=N7?kN$f5tuGBv) z%!x-!ebC<>J@i@H+j~iw)A5nARxC0~uX0uKC+rJE<-vC|cr^pAcQ^6iHi>JkSbWho ziIDL*|MwC7Of8;j&(`9}sfg-N z9sTVXZrz1eb4V0L6r-ab=Bmlry(FibJ3u#e6{5DvAz{6+r~tuMUp4{7bTSMfPJ@JG ze0P`MC5xULlwAzg?3>fqnm7Z=FDQ>EDtuBd3tYUi&kW<~E|`r)yHD1I`eKN0SRq|U zkvcn4FS0hgV|sp}{_2&-(Xp>!hhrnhVZ&g)ebd{qQ#cm5Jm{NkPT*_GLoKdvM9ytA zda<6mV7+?_#ygrwJ;6p^8!;Xl#Xwi_=dtQ^vf~+EYR2WhU&+y15#h_Q)}p37(#inl z=w|H|4qQucMrNiLEs{nAn+7{|xLz}UIoAp?%}KM=*CE7jH+7jn70=?PqVA<&g~{%H zh19zHcBBtNkG4qT5OFt6CgkqYdvN&eP`4 zH&Z$nuQ6EixJmK28L!eaER38fEUb~RMydL;Zd%3zVeQ%2=VVS{iK+vE^_oUoh(R=G z>9@A;;IE@-aGi${^KjqF7Qx2?xYWauq*YIzt z8whulArrir6^)S7G|&Oz9Q<-lV`Jqgz5a5 zEkd6CcHd8~4GrDPLM)h>U#LYyAe*O6EkZk61%MOlT(mE8lu=k1#zb2t(1X z3Zpb6=9t0H$wa=EmQLGF!dF?o7`Oy_1{I7Hw(jlVHjrkhiBT;2;ZN^Ki4xVNY@;A^ zVjOqv)g+m82l$*0zl>5&=v+~)9@#&D_FtV37dA=L)V=-o0J}lQu49RvoLz#`v^>H>E~GU##hBgfMIYwHdyFVp!~17fA6ma=KI?o*y}+(i`^)); z?B4;9D9a%(xDAQ1kfL@p?d#qFHgR;XWAY0PhnDs8anyt{d9|KW)qJFUqs2wXO|pub zgp=ts#8;Z@rY_$!ZqZonw`ur>NcM1U0CzD1m5vgZrSUK(2rM+Q=cYT;jyh-Tw4!@6vB1I~@eS0+fR;NRkydkODMCGT+8`jO?6gGlgqDI{n8MrpOsi#!IHA?mU}=oy!Wxm`2)3=V~~Q9ZA~x13T({;ct6O zGV^a4&{dXv(Si|tqnFI;bxouD>T1yzwdM5*BiR}c)_32dH!l)$C27W0=wq6V%~S9N zZ*BLyfAowV`}s@MPt6DF*5@SG9)nf(aqTC(#~+k7Ok+f@ubpzhI~$1Cuxq4yT_o4v zTu?D@ss%se{^jiHqW-h!@Sg;a|7VX2>S)d&3ulK5-I}w%f|UjmCOeC5I-9)%F#f>$ z{wuY^=69L$_xjL$4q74hwZ4RG<{XI-k1%KWF@ZoQ* zm&5Mad})p}cr#ot4vM6(rZ+`lrlq|1vUyPW5j4_6;MSuQrqNU^Id0shCuutn4CZ(A zlQEoo?sl`W<&W52#*utIT*$U>TeL?XiW#vQ9dHo+@`EgDO7NU0DUGwkqQ^T}$08m@ zUpkPa+=B;aiYcyw@+dDuXd`NHP^bUXvtkob7O|^;CGkof{fE$liy=gBqZkcQG@=;+ohB-Hlk6{TB{O%2bZqOo_kLEGcX?F*^V-u zgQZu;%Kft_ofsF|)Qnk13V0vAC~}Q@cxzn}m+9kMg)x`NXhU=C416@V7sytI8Ad8* z>LqjMtOF?0*t6E^**T+G9^e0t8gU1hOv`7zLXaq*kx#(-&cLhIZdR9)9WLDSRtm%u zwKX9#TC(S**s^UVp_I2`2Hq2$eV0I4&`fFA`k=k+PF*%0jo0n-ra1$*fV5>hqRUT9 zIbX&4kB#+VM$(_uA(d9-#|z1OB_>DygIp~w1p{mnc)lWb{9g+6`b`>oOZ zn`g1xlfrTBmF;YlUoY4lSC7^y)ZM=KMnjN~Qn^}>{hRUKj6RpN! z=~*8|qZ}X}&mChhIpDR)jeX`5B(Cj4du#0NadX)|?6`{7b`m5FBg8LKV_LX=9( zn@@2ExW8RK50w;|jERy%?XKafYU{oz(z@v=xl~wE_Rqm@V~3xQ$k>c=s4-3R&@~SN zL~C9Y302Ms2+uGAy3bp03T8~Yt*I0ZEzz+GOwcYjgq?k=)3`D!t=4`XiGZS*rvoQLm9dT z&=7gE@AC$iX%$yVZ&vz0hOyXtc!pXJ5wLv7i~<>Z3k2@X8#@G-M*5SDTk{{3@40Tk z4z|51ZX>dhCq-gI2sr1Z>hB%x0KUq?V*h$zx?H|o)|N|cS%IeK$t=~qgT96{QFs5mZGdf8`deWlLk;qUS>ZbRz++||j4^Sxc6*v`sZ)^E#`x!{L z?rayjw^j$4cQKwJx4T8%y#pK|{gpq>A3dY=TBXrX)ES1(mLbd!e73|T^w$Wd9Z{#kH`v{jzIE!*nh(2R=Pm6qe-kn`-B{D6;h$!B|9pL4S_|0L{lFaWN?c5&^#s47oea7`dJrxDVb7 zoVRv`Y#?MZ{~!iE%`{tg+F*`9-f9^$;Z-{E<7Q?m(fszkbw76T&WJ5ik2f*OKd$-{ zgm~>4>f%0R!SF(Jf`c6l-`8r!d|ZCOUIBC}uWUHn>o0F3#oYJ5S7Ve|vdbgy!5MW6 z?pB$UbH4+`UL~i*Ie8A@=agMf!fHHzRV!CkaRby(3{SN*aDVH!A=srpTHlE9WOv~EMjI(S zzDb<>)EGnHxHA5+mYpE~M0fLhLaJrGk{M3@*4WD$yvYEn9lBX-R{wy;xgYPe{#+o%&sURv> zOxS71Rmj9Y=9T$A93Z>u*g_e~+Rw{LtmnqrA{3JhX5gP^t^mf14LKEvO+9rna~83~ ziC(3#(Js+BofviMRO!o^373}HCxt%+m+>xKW6azE7X0r350CN4Eme-*Q-LM^}_d7f767OPReaL+>)E;$N<%VwS9II$Em`nu^ZvGfjhvXg^}s73sRLc# zOfVKU6*a9YL`UC>Q-I?aemAT?O@2jEVsxK3nMXBYkiVh!h&KlE=mWV`!m?O6_s+93A{3b$dc`}y5AW35OXI_g-#hu^ zD)(uAGtaQ!eiy60B>GdC;(w^NK??B4w9hi}JMMR^+Dk`BmjypzQ4y2cWwj^+ubp2Y zYQt_xzQ>I)5~;qt|N9m|-cTIzid6ipSA6{xB}0lxoj@83Sm$ZA7_dCcW?jl-7Yrc7 z_BRo)8Ads-;;IHkkDl(&IM@p9^jQn%Lnm8_%<>QeB6e7b6*2H`Hc_dFs@SyJyv?!ahaNq)h)o{r4@J6S) zqB;TU6ynl{746)YD@Y%1uPpym+h1drs_l_qp?`wExdnU-9vbl0=^K4wqQ*ZC;_s4UegI*rro5pj8PFDRkq0UlM>ojY<-mNJTkATQgebHJWZg+<~7?aL^FGMv| zMt){9aSxgK!9%4A>ydj=aQu9I)a{RENDNSzRY>|BW7V3k;6fz2Y0tT+08SaQ6b#0} z-ep+xF;wiF=j3EUtWH0B3DPgZ%&nYv>Em1#Km>lsbA<#$f7DWCFeG^^d2dgBaUQT) z?rXi){*pe*_WAnR!t?4tT>^W}R~!szc!_xoV>@;`?%-p(TOZ?f57w-$xw7S1XILEB z%7Ll)f9F+3VXV%)qk0GOoU3cT)5pgnXA0;v%YW$L)}=QgUQ)>0?X;u#>KJKXQ6Iv1 z9U7W&Ai$@z5uJ)ojkuFVm7boL&Ma@gsE!pSjIMMubnf0OF(0DEZ(cmjM6dfV%{Y_p z%lglyP~p@dTxFmiTIYyL>Ah>YvGLQ}1)|snN?^HH{x6!MG8W&kkEk^0tEK_B-xCvQ zSJUvtRr42QH-*8r6t>9q_iGLQ7j9zSJ)tQ@xyfESvJ}hes7M9bF1Gdrh!hb(^*?S+ zDof=kwen;7aZWbe-FVPL40?>UK2{UQY0LRyRjH!;hOEj}qZK=z6lCx^EBq%Mj?HJH zLk)WAfz&^UkXXU*H*wS*fD_VmHV)pbD75K826foN^|tt_o|@_FU$_EMEg1fp1HAJc zJh1f?i8@?i8X!+dkZDljFnS1)>Kh3uA{8`&$sTue2M|4X=19eR?OZgIm4$>(FwOx( zRemlqaWBU}maF79GBqZ?Ih@Z2+kCwssfrvTuV&PZ#sa)->6CI;$~dBLk5TIm<~?WW zkTc|dg)1sP%9_ydkk9x)%_n<20~sQ41UAE7D?fO}9H2dJw@M%%x%&j4ECU^|{M;d$ zYDb|xfv@Q+uYNN3(VBv%FDmbAbTSh+1_Ibxa!`I{f_3F^*kuZEZYU^v=jP1`+K zyS@Xoa5d&}?$}-4uj545(dCbvydcemI!9S=yA~h3rL{+DjR7B5`o;NjN#>zwyARz+ z`q)7wD?5+!DEWZx-uhR09ib&1;uqa$s~m!RhKj|3PWov%6{Nj=xup6o(=CQk2TvK^ z>X^U_KeeoU(spW48`2z`yl%DQAGrX<0$EHRpap-7=)y?bX7NN8x#%MmjvIrh1xIvj zr(imbd$EJk2RtoJ-=1eD>_3hg)QXUpRrpk0ZYe_DkY9MX{{{GCx}hOsfK`E2nfIje ziYcPDochJ06Tra$S$%e<%jT3H$9u`iFvZEJfN2CS|N7&#h1x)6nGT(8YDefq`H#y= zyLXf5IcDbqLJFU2WDRDEpOF!n89*?yXT#(7^r}+1dO=3EQ7Hr_-7L}3pI3CSkC>Gmk$ha9IOsz4GROiUKKBFXnpNyT zx2$s5e3CgLvQ-eLO_=`aOz`a}%24U!0`EtLQ)f>L&12hMjVV@NeJ)#g8jm0BH*&xE z8l6FPvSoBbRmzNp(3)NuIOd87gc!f$Tx)vdo?D()G4dXS_on&&pXWn?<*PO6Gy zW}UNJ`o@UpY2CVEW?k61^b6`!c5t!siNviBcy(|&uz6g>IAd!v=0c!st_^L|OdI$Z zp^1Uk)N>4OE>&(kG77WIg-y#j)6W@5mvx5g_dK8Odf1*Gjw0G~&sTt@2;2fKoJ_+_ zv(DQU3Qcx8FX!f%2shytq$&%}p{^K}SGxSK zxqeGEzW>9EY@$jBvSiby2eRDz@|9ih=H+-H0apF_Xgd+U0Ld$^sIfwKMB3t7eT)o< zRIM+v>*DZ2{A{v;UZwt%a!E}?eNpm~oWmVj7OH=>7DR#{5) zzH6g!#keyK&aCzID}hvxJ`h7%v{zi*vdn7mlB4g7!DrD;?aDX?hA^0nyAxA&G+nS< z&MYlQKe6um%28Nf5cI|zxodTNAbYPdIH|c3<>xS8l5rRcp$=M- zV;tL0@uq%S$Xr=5?lZ&|INe^_U6gSt)7x(EojHaZ8VcGML~A>v-bZoaF?-C9Si8$5#9puLAb=1{z~= zM(t4aFZv6(Bg%_WF(@qq&lmy)XJ!aAllDKLV^NwiPx(F_w}tIf8-}rr)$_Pve9dk; zL=^LqhFJ|u@aKj(kw2e_Fh5axm_%^$umY;pAm$IcEzP!pBzz`Ss|-G$8kTXlCIE28 z-9%HSNOUerbK`h`EarBuMWc^(jclOa4Ld8KdI(D-zsFm-0g8{`#J>ClF5oQ49HAj= ziyf^@6Epz1QMt^N)Sm=bidgyO;BUc9{y>fp{*=k72suwzoL!5@?^GlKs2H@XR9V2L zpUQdA&rMu%8x3D?;VL2fIktP%RNb^652SXl8o~B@JF(Z}Cy5Ps?F7(SD+jAR(TW7< zHo-zx`ztPjYQped9kHeEMe>x3wuEtu^W*uhp%_kr5H%K&RdtakeCicZz8;6|PQ{XA zoP}qiV$kbe3HHkNce1mtYTVBT9(;f|ErO3(IFjMW#1iS$Mfy610{J9fu{cL0=k7ivdh<)r+OsU=$5!3gQnSn7`Grf0iPOQpj*OIw2| zZJz(k0N}k<%1D3tdph#3`2DX)Y0zbY(*&sTr|1BW7=t%aw))?*cAXvEH<~pVJc7My znTw-&e!;h2)*1Ess5kJa`dM!q-N$XreO3Vk!5+~apr2j|SL_|E9m%PH6kC`k-4???76vf)k}>};Sycw6}R zY{BzQM>w0f3ZBi*b|X0C4#0Zby;Kzf)&r+*yMw~ck;sIcc%@j+c_BpH@}|)>b-gLJ z{1Rf@$z_NhWtVG{!ckT+X?MnwSvkVaVHSV|@qe>6{lY#I{ieEQxsE~{$4W~(6<9vv z)aO|cwIO9qE~czrjXmjG2_XeJ(S9}L#)O)Da(^lJP`?O;VP!tS#T8Kn-nhgyx;R@; z-E?;%U+X!{@}p9++e15Ip2N$1TMQ~tB4vOvm#^s7{0 zrgl;3S8|P4X*?D78)(>{0?!_MiDxL};Yb@YD|^4hZ`~>k@5S77U3mewam?CUfBJ-< zKl>@ujbxg?{iqq$s%cC&hUka;Z!{r@Mw(-=o80_40&)l7yP)j)ByvMT>=q>rg!R=4 ztAcpZ_bn1$pAbWE_9CUVMN(KX44%6Q?dVP}N6Ah&-2|12P87hT#?=UazP9UrkB|8Z zg(}3uz@_TQV8D@*fU&*hb=gnAAnAU9s1mnBs$M#RYJ^4=G3-sF1iXbIMnNilsfN>o z)`erZF(QqKgZ6}}uk|n4I3q{5JNMpI>N;Cg$%a3RX1Aq(@^VI`bVHD=!%2*^qB3fk zG|;lPE`@dafR6Q^k&yHvEQg7<#kh%qI%Q(U*vdmG&6Rip5&PEJnM9-}8zSS>MUO2l zC7?FE%V`O0D%0c0E&U#F3Crkv&;rOONZ}cc903~{uj0*H&>(T(Sc%4O;ww;gwPRr~ zr{nekU(xb}o$Y{+S^Ap^qS=X-bv=-mALG{I&e*(rdc@X?C&XF}TLW1#pCeNRz`yz~ zNWJoIK*CNLcL1p@pq4Vc@mFoV>K!0`G>V+z*KAp1NO+G9xjKFo%gHI^AWLrkqq5eQ z*D5{m-LG_t3vS6Ud?{`i3Dpj8DoM_WAj_x6gkfW@;=2#H89~55p|fwow;?yGy&=%7 zb$dMU{M4{Vaxts|R;Sn^a+$*3;c9A6FL*FnvjyjL<{`Y$b6}1__%6U*s!P?{rHYZ? ze2fa0M7Bxa0d#_VLc0PkwGF0KmqErRNs7AUmX_sti|+zn#L z@+~QXkP~;_+Suww0D3P>z~Z*rWR9C>Y%(8nr&ufwbjYliUUhxtut5BS`dhVGo_ zYiTd~ig0<0U?JY4Oa3W?$x}t0H=ttPnNhXgnn&qLyS6eu5*w691C~RJFET?{6b;SC z+G0tiw-xZp{jNA0!WB~RA%d_J*#Q^kg{CWTi(qQ(SrZ&JK(Q#B*r1qv-U`B+vwT&dfnluVu6A6h|w0iyRfyEf@iIXipjedV#e_` zluqll3aMB?f}Pq9L`ZRqDM_{|xAZkQsay4)SAiMokNxa?$wmES4nt~XT$?QmsCU$i z#rD`9^}D+K7(u6&-rE;>hT=tGXC-%l;tp^NcLn&-+_o6?h%F!1x18v+5wkK_FMIMZ z$wP}^RKJ(&V!}@OoJUH{KpIP(0%*5U5aAsFN)VI`JGUdboGW+r+Mrw^&azv47Y?g{ zW(;}W79>>m?_u7v)Pz-P;NzQ8HwceIwLc#?g-AfG$`yPL%}R89rcnJ> zj^Q{nc!DDqQ4t0wG=d^amM&2dv;%A;r=UG zXyy+4N_RL9St*oJac2yeo_UsMBETaJcr1t&DXk1}&Z`*u7Q-WvUkP^!yml^|OWnO$ zt(U`3PLpII^PZ-V-G9+xI9`u)nW~@ zI|D&{&qB&ebI@G_bpS z?KUx9&lbL@Z(3{`?V?K?D7Nw7OZ|E#{-`5M&k(Je1PH>5qI@GgZcS;+CPBIS!Hqb} zdxf)Xi<+hJ2KNrIE7vb9vg7FsymlAhD%*1wz6=$YMi< z{{ADGubd!;Bd*buHIBXgig8u;!OgD`--)GIZ%QO+Ba$}whIbkn$DI_JpzDY}X-G{( zoQO7gvp;}}zk4L4{o2HIGJV1epL4K&0gCfzTM@|czVx1n8&}1#&--v(!P9J`O9idE z#?tZC$z7NhBv8STA;ET2Pk{D_CO-OYXj)C?c^RU@IG1Dh-Q}|9rHBZWBr?_!NOElO zOxbz0K!JL$xkRg{&-5d-;8M+c7p}dGLv3mC)m`uNvq9s&N4B`WDJ>&k?*JYls4bsl z!MM+xPQYdCIgqX>$l!^5@`C4D=X}yxJ~er1Etn8^J#fm20i|MR&j2^9cBCfV0qXl# zJ>TU)uiX*g!`4aY71%g_42cg0{J)$)ql!osZ_QJdDKr>a(?Q(PBqAR$UWM8}50u?f zaRYV;$$aw}yA5$*y8~E0V_X2S=_^>GBFov5f37!V=>t7P=M%l^3inkqOn;`NeW|9! z_kQ`)2gDR97qWY?KhlB| z{6yP=Y~}u!+%1(&V|*u3eZ}zus(mM0_eieSjkTfsfG`B=k5`1_{C z?=e*;3Wvyr+$^fDdYP83oBeIgT5s;OwgCd&TP&~AHJjPg1{-Hvjr%aRsyi-!hqHf8IGI@Dz{x_jd^KA=vj+t_HC93*7_fX)O7Vaj#JMR zUBUO17x!zdt<9G$s`cHMUQebo9b3@TE}E5Gm59ady*>?2*a8m(3RR@)`$+BJeN$Q3 z;&yHM8&{!B?yc*=1vL9cu zy)w}mxQ0+E7bg@3Wb_XgT9WCULYNRM`ur;TY+SJNdTjL=GgNw8Jk=?{q|8Ul(u%{7 z^C0F=^_skqupZIVSSUF5d<$+a-nIXreffqn$rNtj79L zyG7vo@mODgM)#UA^Na4n8$+N%T~kcwm|9uNIonmt(O}3E(;^MZz@sJ%nA>Myxix~c z;z%rUsfW!%I>=BleO|5LQ4cdSU~kjgQI`fA&guzV7JbOBt~j;pj3Z|KINOkexJraF zpvHj5PjExjEvF80Hm>}7W}nclye&eG_ruQhD-rP>;$r&yFS_~#9C}bw^%|X73B0Ky z8mdSmyVf(QZLUI7=dqF^4vZ8JkqWlororQbA<-^IcVL@#Lh=bCAh zSXogoRARh?IRo4nkM`yZL9fWrvPO@b|Iv@x@q zQLQd5C+BKw_WHbO_YmJz->zU&J}pG!9pIP=xlfq&KpyDGzC|8=pyLI4DPw$*s*Y^a zXiD&g(Uny3@MEZXpiE7cM|IVDcYP^z4iQkA(I{OJGu1vO5 zF0Cj#ybZ|Undj2oFDTS=g#?>2zFct_dQ6{Ipb;wrIV7$M_o7;^3t^v&lojjlvp2M# zH}!2^`nHWLNKaPubTXB9)YIL0Y)W~2IbTop=VD6C-UYa2H}s-4d4TTet#i+AR6(cUMQ(ePE-Kc#OS#)@5x!^J z*YB)%A=ppujezvbn%n9XT1yeBA)4gJd8~Y(NARZpTDSP#^v@X!hajI=MCIOQdf=9@ z?0yklMODo5`s+Zq$2ie{JU?JhpdB`F8Wf$M_l$$Q<^VWx!DtJoVD^p9K4 ziSdF@_2)kHPR@7kL+9wLb+ba((PLh;9uxT0CfT;^42rU{E+xklTQt%lW(ZI@@^~Y5 ztK3{S9y`>8svL!-t)A28BVmaovpFThKXGV z=@IEZzb=%E#e29eQ>RJ(eoU08wf4go09?`3vgX^@EP$cd3Jc&9iY_^=$hm9 zQ{krYl{-6qWhl6;7t=7f8L=81>gq!5s54TjIb~jbggN1rKgTgYm#Q$9Uazv9sX(Ak z@%?_N1Q~{?8&Pa)YR(#X2NDOZNF6#sG%Zr+E7vAqSQ2Cb?ijSG%W^qDom_?VZ|Eyi)!=gh=%HciD9v8%5W z6_j`8>`p{+7uw1B2GgP5jfFXVKAE51$Fhw235ERF2plVB36rd$CN2f<_5`GneiIwU z3-{^>p655tcG-O~^u|*=-3r>#SON{yXXrU+&8ct+2Rt6XC%>2!>M-~MJ)7gG$@mfr zzNH416TKnij3`{9K{rOa4WV)%N$aAnq23H%J5P*-)xrlql&b(q(=5#+ zl4zfK=GwYR>GE?$NhLr0YoBD|c}$G{Zxb0G;+bCnP*ZJ$tdW?!FY?sSaAfNOIv<@g z+Xe#XO~VWn!=61YA|QX0g!3aQ#rs*^Wk%bU120~YwSvft6H@_)fH%&wJP~0Y>u`az z+n`P>^7(Zj3$L)gTM8PRLa@zr%oS;EuCyVbm=j*Wb@1B#nRIqt;p@U{me?aWnf&i;W92(dX>HG zHcCs^@Kmym7+K1N>QP5!a=Bi?mbIffZE&W=G9TMxf9-hz$5v>wRw5%>$($ZrSl$OQYZL-;>1qsn|{gs~lXC-)98 zVl5X!`0GVAH^Levb;n0d-PLmZ8-jy)k6YkBQ^P_I8zO` za?!nZe=gIM)E(9bnhyEo-hVCYFabX7v+?-g7Qul$+wvr4IB{=_Ol9s^K-Q~`Ofx5N75eE2DbED5myrlCyI{p z6W}G@!^$5=#8c3Lh8>DA5K5HYexphqzmKpDX1!#wF;j9@i2Ck@G0btx(YOW8tUscC zkc<^wMF}8CB~f?{Hr#a=*trEcj^`FL1?e5}B}eaPI20vDk2yz=nL&WE(H!*LPiz@* zS`M!kKX%DaOw`N$gk6HWAOwbcHKY5%E?@d2*O;Rp;c^YJ%{fkniKnh1tdI#sEV61c zU4tK@bz!v!6jA>vEZr%9P5iM%J@hkmdbMYRzE;^$V2H)_ahFVtm1)^?nACq`?k%I* zY}<8RDDEvSUZe#|arXeF6faO565K7gODPn0r$viv@C29Q?hxD^f?Kh7=bdBEwcc-y zHOC%n&F{zl@r>k0GLnot&wXEVoae>ZvYqrSp$#uDm4T>9#AsGOrm*kCq#|ulkMewC zy=I^;uvWyrvo5{!7s^@iZ+>^NujeQ0tcTq!t8EE45_BEJUS?ZFkaq|&j@48D{`^Wt znq75cKilGuQ@YBD-8FpD<6HJ>QbZkr%p7ibAkdJa?v6%7vxUy{@2M=!G2-7WTGF+~ z*AvxFIWoa{b2ewP`NPt!TWxxlVd1_<_RjMAOS6wX5!PuZ-w>NqVAti^ysmerGs%lgCQ;WuR&oc@jt7(mRW?Do4%3*6q#GG?THXWZC7mEMuWAuXeSTlJZ4jNrki2^T)=hPO(1c%5zCD3S--gTs{=sy@~9tLCxr zL~wCA1$^_4QxXQUSHK@gdZ^XvQ#X#h2}p)-S=fPo;*07tZiQ`RDf?XYa`bY!Y-qkg z1l=f37ccd$f96|1v7f0#&~~3j?oJ)|K%n`O~_c#BE# z&$PV!jX%}%dMe><^b%%VK*B4Jj@^h2K7y~T(V)(h1=^qBoaK3ap2fjDCvF~=i-Aq{ z@td96x@G65d-c=x<`iL|lD1ks+qi54gUN>g<)w;e0r7!8JE29Jx1!IU+77eQVrt%- z84Y?rcV@O7YG)mO|HWO-%dSGY|eVP!U@%F2d-t`jx1GA)R`?*mL z$EaA)w+6OWhYvAhmvZ4U?=Lhj=u1={7FR;rD-S;)qa5;o zZk7M}Ttn;n6hzNn$K6?upvRtm&(_BnBbqqC&;CDmRpd)iWpyVZ{E;d(tK}nvh;C^> zT;jA*l9AkQ&PMsdVwW|Tq_tfB)r;96bjIAGa=LHo*L}+yjx!9(bH7wt(_+@X? z9tg1SQml>DgUv|zd$HFXsL2#!y6~2AtSyF`qZd8+|MN z6De>W^rD%ZoE=^yKFyKx1T);eCD=ocn;$URW-MW~R#Vb)bCLvmd*y9I-=B zSP!U+nvWjH;=0w?S~R97Btg+ObM|21b(xRI5Hv>NC)$Z|mZLlg#5#W-Xf;p(>L@A7 z7ysCm@Zqy51+oE|9N8CcX&nvhJ-0sER6!`FQ~53eEAhtFJY%rvF zv~#fU%Zzij&>L?)!!`WoIK6O`p&gp1}95P$$q?Yp}iI3B$GKy&=w0NuF{^>yG-)Y`7qfvD!fdo(hs)3*2=J-~uy zOUm|iWeNv_)%42*Ql1{|><`Ro@Sr+o4<5_e!R~JnBNcc|rs{y7IZLYh}6l(x7bxrt?~&!-yzN5gHZlD9;%UuhS0 zZBn!692a!=MIedu2c&z=xS9D3@kVZ2fkIf{XEO^uZ4FWmKg8-~E8P=@d34V<52td_ zbC)=Fpra7WVbu7s7ESOYc=ZIoD>N%6T8e_k>R!}HPCE_58u z$M4LF6TwG+TIZ||74+pv`Z~~9nZ@rW;Y5|DD+C)j;tZ^5h>#>vws$wDFTXuztt48k zUtH=L#M_a2f!ahHM@r|)lm*?t{8IPSUNLk`HH$2vT{R;KwB8AM+p=31J-HRRa*j0C zZxK4>>Kr3;G|^Srb~8#Izda~Jqkgpq?vP*lghYU4=4+d*jR(SFxTBJnv-(-{Cft%{ zIH5jf!FeKX<1h>M%-tc`{>%H@2Ue}%2_)ZCIZRV;NdIlRg|(vi3?n4osW6&VFL^sf zG5X1^I{xDT^h4JcepK>rv4hE55AE@*5(i%%*FS5Gu)q~7&MnWu9~z}iHD#78Ug(6G zwibV(bf=^Mk>_yP5wzC!usL85)JrrJKb;sNM4dDZl#RM%H@Kz}6&=7BJ}@BPg{7dq zM`I}ZQPv#eIf6HI2ZjInet{%Zww#*UyB^i-Tqq7<63 z7X;$Cx+>omp3#ICgLDp?K4KTfcBds!xkqt(CI|lMm5f3uqoCW(*k~1qAWievml(jx zzJfn=eGzc3-y@0mkn))nH z1nQrm?X@PeaBj8{%(Kh(Chqih1DTNeWo1-a z1nx}U@Uw{bzy594|BU03A-WRh_ddw7iR@FP!e^_5zdt5b2<4r!N2?=g0RS33R6~?M(Sjwm!3$%^LaFqe1`OqMSoKU0M=VsgE*oEO!2El$9!XuT-c_0u zRN}46C1w*PvwBYdwnwwr@K^Jz2GvmZ)(j1gRs`IEJ@)+s_=*VoHdYR_EHI@qRSA(v zL13(B5C0@d6SV97VR{jDksw=O=_&QOc8YH-)EgRv=TK~@Y}}j%`0faK6%_h(!$KsU zjCiFj{dd&}$=7G88>T*>{no#Xh7pt`Ap^V3`>$`DcI_`ZAB#{pyk%?cxqDd*tDz^6 zoKu>!uFJgLXj<>)E7;8iEx0y^UPz?9>eWU=bs880z>A00g^t~XDo(DzTG!9^b~Rr#DBHwp zgRsj%RCyAI`n%Ri7qb0!a;xZOc>Bp6S-9lA)~WXrJ{O;9tldUdp?Z%zdc7(?<%ZoO zk#}4F-&Z)ck6x>H=YT#f48x5KXSChc1i7q2&f4ePhz2pEz0_*GLmE6k!ER#DgpE}^ z#?+K_yYX%*`6m7^xQ`REhn4vYuzJ#RlG!slTj#+!!l3UV)TgpEKgFS6gNxR0 z^=O*Bp9BDcT_Qn(S%7f|NP7(%XT>px)^+cwpyChskV|ABh~NU{>)vjGs5B*jUT2bS z+VxM$Mz4Enx4Tcvt)y|!*!`!h<`DNR3?J7T2KhE^4ZVOAAqpn6t0Fa63iVZEhc9Du zO#*@1kaEoweZ=f1%o|0lBlxFE)vPG){(-~UVk_WN_S${+%Z1wz&m%YH%H5U_#W+p- zJR^K_P@a)*0~S5W{axSoLr{6$Mf=rFmZtHB4x|MMEj_*StlNVsJ>w^CV1E8X z*y3}>+IkHtfA+dgCIWy(TyjAx-Hu#OrlB4m_E(A;@XAg93*w2Q{aesO?2Ac<7U7}? zZfK~|)a6eH1`r5rq=K`E=E|eTvL2>|Rq{Fus;(l(;Y!si%v9YnN!1N=dOOd`UM91S zSITVBxs?$Wp8;=~P`*j!eS)f7KFHP}yWzH1LbfB~aOJbzAU4-XPee|AeXDx}V`u&+ zCWnvPwvDCF_qD1H1w|?-Dw)FHSi1LXsL5$khsZNc&&=h^o9e!G^PDr+RhFdrHQAO8 zcce!4S5W_5*FQIk*?*zG-to!*{UQG(yb}JohoD$ZNWbd-JH9dYyxi<)qnEfMKvwl8 zl=KWc-?L4Eos6NdC^YOpZ#Bp6MjJ@>7J9QuA^C>ZaQs7zEg}bcnGZ%41@aW=mROTj zzT9ig{)Es)piNp-FY?|L3XN{Aj;@Y9K@$4blZg-tNc@0WR6$sO`4Xv7w}u28#QFHH8?=x>oi zwqmKKvnZ}H!`@h3Bd~6~`ucfCJovs8yjQT-*S&145J`ELLi4IVi1;f^HtyEq_)y_= zB&L91C9l|4@Gh#!ylM5|rTnvO;b~rG6LC%DE+(3*#uCpi-3dEiS%;F}MMI_gDb*`d zY`BN`{YM(+ill0|8PR4OvDd3u$;d%@%-kJd5uyGjj;9I@ofPRifyIw= z${*BZ0kQS)DqbEdDeZId0z_D_w7bc?VhI>S^-0?Y=_0F5{+VM`%C?n{lSFV%M_PkJN(q%JYbg_!l#VL{x8_Jxp^5Znci1Hw0$^3fHr5$tE|a)|;#y6@M}^ zZFW{O6fs2^kk!H!Xud&1@=7*O(Di6homswUwS9dD*MZM*@)Rf; zQ6zTXlTWT_fwnT0s}I5K>WZ~OoEVRJs?*2jEulTB_)U;byyC03u!u5V3=F`U`!^JN z%UykkE}yc?V;41na#;PNVAe@nK~v^U9?J|z?>%&Z|EX&E8jWAC=z{o z^>bqEzE&L#e_5MRHTcVyR%zPR{o?)-emq{W%GsTz=Cbz);BEm zhAy)#GvAWLL;D^{RZF0{-nX;+zohTZVm~8DT48FO%9~8cy;q~5o{V|th~tP|FMtsfCc*h$Xf9~ z)!ugrJ!4tcy-ihZJ!6N5(T)Fw;%;|bH&(OZRAj;k% z+Z<320O(vaXlHLviI_)2Xor!+2BNTMBu>4CD^}b}yZy8eo~?&4CXX-jC#nAmPbFu) z!9$V#Lhg~@cxs+AO>^;inqTalJiS~Yh~f)F4knqSoBfAPdaPF|0|dur*7d;NoHHU- z0qy6D^L~N7x{%5@UgVfO#Luz5L`Mb6i8XB0iPQM!3Wo6^qm5XwpsFXL?}px0_al*! zUH~Fuy!~`o{cxxpw2E}u`wEn1S?mwsAVFGU;TKJxb2%z81zx6S3UnTT6^*8$c&ROo z8sNdGIoxkIxTSgG({RJ=-J&&Q=LTtH@OLk!^WPPv{$EF^WgCB?ypUS=W4f0)9z8!m zecRhP^CfA?5oc)-Wfaq8Is&rRP6qOXi4L%pb0YF!PE=xpy=dGNok{KkC{d5n_BH}q zchSK;$y+8M+pq=Z=YOFP#|N?$h17vmh^$}>=HDFNV)X6`Tbeiz_cbykewNXWX)$(K zmt%t;C9WQ5PyP`|`Qmt9|J4UIeyr8P)2Huz>Gs>+*LUN`eAKErg3t4YYxDb2nQV(+ zf5Yh&r3~Hp8eFzy^F)0{8;Vf7yO8-ge>C4ok>`lIph7|Z=vU<>L3rT&pl};&T`G@H zsSk_BKV>hk$A$CA4QkeWkINI2>!aDlF)X}$0)D0U{z~gNrT{%_53N94h9j;B&TJ;@ z1eCV=0dVy|VZ+qy6O&vA+FN~JsmBnvbbo{d@8EgWqQ~W8JC%oJl%?=SOIKGL!I>Lm zH;AunnUZ1Zl4{>lB+x*n)69MB#pC*uw}yyASG04VHdyq_q=TCnGn5v}xFymb!l2f1 zVnxK*aV-AxM5BBG*$X8=>aUMqP9S%EWRdh#{GxnPoO%Cxh5d{$aU)Y^Wf-*bnAPv4 zj4GLtVubyAGeO$TyFC`bpKt59PZ?5JeZcz)2e*el!H~*Jlg^U9q>^X$fqrAZqQ$&G zcTekl?(n9J#fErAhV&Id#*aTH{;93*G{mQE1^K?R)0IVGu(SpJ)_iTo>7Udjl7Czp zT*ai{+ax1PjS^!YvSPF@kjd@Pxxg{Nf8EF7IRP=)WZ8{jKc7do`xV#wP zkC6h|2s*>)$!yCk(33`YKvxHR_hi~dRaT+x>bn4-+`3eNY_(?v)0B?O@|F+Y?deID zM|#HV);6w7c=Z)O9DY5KJ_||o+FTqX+HW&oDFfh{zi9|}4A235Xa7wd(8mPWC=eX_ zio_d`c11rHwCl6~r1%=2fmCQn{8Tyx&-8w98V9a#!{X4jmz2>^6NANg^~Zu+G;?oD z7j!SFE}LWCExsd(kGmeMLjS6{&2y{RO(sDEb`^EN707l17lW3X+j8*7T)#T-$k0X6 zWYB)WQaA=M{W=iw?~Wz6NflVp$}YxpaiDV(H`eHKB$O5Zr8%!(d1#JoWv5)K+#zeT z9inOPbL0Nk8yla9#Fnxm33ixg_44qgVnY=uD3~7Yet3DzIA$h*tefHlK;=+royL?w zqZMIQ!I=w_Q^;_kKa~{YV*U$-#OO@yDmpVXq`aU3ni;#8MunV&(#w6$D!l2gLPwLV z!BLGBgy7rzO1&^-6Ey)#7s$b5DgLd!B&o%aayTmE1An!vo@Oo3Y`qUl_dA)OkATRR zRxsB=77iZS^Zq=}iWok-O$O+$-(K<6B}{Ql)Y<>;)i~D-#TPpi@DE=hs&CF(0Ne1T zJsYCq8v3SPjAf5={c1H>oOT)@wtoME|5FTBLsP|=oVLJ%;dxSn)E*5@_8cJ>OZ8G>#zP%V}2q}+2O8-T5hi_>fm{M3zzcw+1iz0Wmv@f zip09Say`RE-IK{9)3!!7lnD8UWVA;1?{{b#fH#%(VQlv1DdP)zz@^smiSSP)txgFQ zC`-bJ0ZS(3o<9qohCK5o(sg4TmPc%AWEwvby6im9_pxj>eGs1Hbd98zhOZm1JX#3kr83X9X0qL+WyzneKGt(aJ}ZxuCtK>YcgU)jh@za2Y)zf1-u0*joUOg4jH9Ep_xf z=}PQzWAhGRc0ki>6gaQgOD!wZ-c>zlEXRAq(mm6ED)8_#ehjP3S1RmI_?*xZ`v$%G zy&NugpYYZxbK8s4X1-I7<{TTx5eKX5zfi0iXGW&6oP*7y@q@l~&B$=Qhuseu*G*`){*+MzEYP-2o`cS(_?&Qx7)5u;6c=-SItHq!a266=T6bvf*O(Ku#Faon z|L)C$ZKKTgjb6ltYdhMZHjuE@yj(=unT;^IaHvIK?^ObWoh4Pxub6gr(0Gfm^Mu}j zSIz-!A<5epHlgHEPSr4<`GJ+3M*x-XbzCb3v#7yx`{?Sg$r+|cu>bTy9VfCKf z>#D;HwL_pmOB?y=3?$0KE@gnyh7_iaL@0}q#*cz1Tyvx3mb0Z=N{d4mW_@O>*?ZuT zO)*S%7PzWl`E|V-xiPmSL(C{|@?5FTi@L2By)0HO+BpL`^5qpdmm3pR_AvEu6o-m||E?(s-Vog(&$j`;U9AJtp#kRU8{_0KZPUg#e=jo|@-0%hh99rm4{LRrh<`W+;10)Au2p+EO|PT;u0I>n#; zd?@$eFO<2P>+}8d!5SUe;_{dMG2a~IP5piaijY!JRHXkF(et)Qq*D?KC$N_&Ib{rK;of7D|YrZ%Pxzr=J-a4x&^4|e8i z8Gf7_cujca9Dx$EI4^?$HX3MI}C7Wk$Lccc>4R0TL%jB^(bs`ue9mt@@-sylzp zkJL5Cy>ghZPv~$v0coeYUki*m`8biZHaVXUu9NsUt2}E_?0H%Lzy=aJUG%Rj7nZnM zpuD7w!lhmBttsazc>dxq6fkK+iDuGL;@**W!!WhT^St+~tJ?k{3-sj;%`n*W^vE!i zmqIb@$7DWP5se2bzl!UYW#DQNx@`G83~DWe3Owu6>!Ea(S&yuP(5t3#eg}L{_sx-X zWs#niJ8+kIL@y5|mUvlwT~?`Isq{>xJ?UWYjaGAARSWzCvfHdXD3Z(jV_lc%Jq`-K zX(5IyyPF}r>&f!RWj#_j6RVfova6x<7t+^$;t~taj|V27A91XO+~e3=XrmdYi^h!0 z_kL|r=b|M3l{DJcPRE+z6-;F`Wlt+xb~3G&!ng935&r_Rj%hAo6-06rhrYc z;;#oD`~JW61ik&W-NoKToQujfOtoOF>sw#>sTQ<0S0&tmBKN7ERsU&V!p*Nj$0tl? zig5GkZ8%E<+IX-Ms}%ISlyvMGBo+ysll)b@>)iUlCv7p4biV4YmqWbe zPQTbjcTqna$RiBoORZD2>YupkzZ<}3_#on=p~`3eL9PQulysxyCDv=MCytR_c%Q`m)5(0QQTY2ICA69eaUZw=-Ac+NMDCCldJ z@e>WihOn$jHS;^i(*8biE|KpVZJ6HT~U;kY+1!Z6( z#?vgsb5h4lEhZ)>IVtM7R)xPk=

Cq^{v(V?~vt-(q#`x-+Ci4b}DcR9dWe!1wS#;&C^n=9p zR_jyOWZPU!4N|sa7CWq^XZ+oiE()L4X0ioZ-wN~b>3`c0@O0_?%gx@UA3%9d^x{DK zi|6&^dxtCRzU$xw^4V(#wlc-%M(Xa9*rxF@SNk+VaE8;95Keybx4IQC%^Z9CaLwGY z8?T4(;fx{?%JS?#_f1Zx3UHm1Du*jtVEo5m_KKElD5y&?VMC{-o1nT+M(>h-T7!6B z#17^HR4kfr%^x*OAq`fL>)xv6;F1R<*y2vYbtX&_HQ*1QZ``Xso-cK^a-P%V%Rd7Js{Jr%7%4? zYvfd~F{#9^1-3LhZ{IW-q_v)tMVlw`E&z?W$`bYLDByNX&atC~i82MgRJ0#0p6%l6g#7K}xO4OwG$bP3kVm zy1(0c_gK+PX3c`LDaMi&U3pmgh@*V4Gg28;*N->>bF#0sPwh6@HX!VCbcwO-K~{99 zI@Q-pw%RI_M|_9s;G(&O1yEMCByMl$DH=)VUi+(ZHzkA4<+rt@sTV)km-(@`8n7}8 zM4H^_Xq` zn87CA=WzWzO9ytIIyC>d+|Vml3aJdO11ajVL-?Xa@T@8HH)7^VD3Z42QHz^OUZs#Y?0!0z9&fQ`h1oM`Cz}fi#srn4Rv+DK z{8(SyuSU|0!5Oj6=Ri>N(ys`2tLdL#EOD27yApq2@hKTwip9 zwIIWd(9<*EY^+Y~ezs5ZWHw8tJcUTKA!UDMN9Ha>!KV0n?W@N9D$P)#u1%iyBmu0b zC`=zRy9H2AfXyV1EO7nWbz!mdix=L zAbPan0Sd~b^#V;|p)A1LKGoPN5t*9nuupO`-FKj76+uiZ!;f=gr37K5Iai8fH6^gt zi#*Nq`L2*TLBAzaw8KwNtZuR0n4-3yz%1MBH~K4K^oh>&#~d0*y$_~XMXiF5Uuk!O z+AI4WB56;<_MKMur*s!V^9%C|H_s*)&|`$(vDV4Wp)pF@`T3RQRCxTRVT$Y#aU1EB zex(M|_%aIvCX0aF4@;u1-4`o7L#+KL&KGgL#q$M&8=q| zl-*4;P5B;NdgNL?H7n}$;3e~p(a~lfxb+4*4cu_TzHaDr)v`gq{L6aM?wf!kNtDQTkC~Lu)Ry|QDK*FbVDNmld#(pmU zS$7=Dz?!qHSXn}LZA+uiVcTv&#NAXdCm7ng44bMS^7~w7NOY+7@fx@q_IBEJ;Eg9k z?RRS9k4Mj`0aw(s}KGZ;ld+Zpah7NW*6Y_w*Wr`xJC+?}; zN#c8*X+BYm1ohVz>}tZBCMZHg!BmY~?hiJ!`9=lMQ|iw;Hr$wd_+A#Xt6!eupjv{ z+risR_C5sqX87gZu#?@i8MbCUa-V>>4x98+_lq(WI&91(1tOiJ={6-igaJOTrB7_L zhSF1}K2};AcRQ|7XmAYL;4T_d6&jmgK+a*iAu`JsV6@MMUq+4LdurWxo&N?qlt~F7 zC!Vq_D8AWc$yoPYTl%JQiVSf$n+bxyS^DM1Sg`4$ zG>C7zk?!{glzv$O<*NgxZ+if+A)*xWUv>oNC3{^^(4^aLGyLkFHEc7GK(PPK!0)cU zmg8NtR}RI4X+orFS*BH6uSY9mO;>Ks=A`Sj>TC#dngM=ne3X+UeONoTOPJq*7MzI(kmQr89i{<+ zqjDh@%~1?LghW9?LI5Y}nEF@MHZBIx0ths@>y!CCPy~TOJu15dc%16roQ*v^H{7Cy zAGipt5@jtaoUhGj5lHjXB7}-U#u>Qf>#a3IJ(lQ&scPhz_!2xZ4>nddK&=+c{PO$^ z(>T9D3WM5aHa8l{sUoAL_!SyBdNY`ektX=%ZGc!>n|DVQfk^pOj`5G|=fse%AU6GuopBNAH*LK(+99mjpB?NNTbKo%T z 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 Date: Sat, 30 May 2020 09:23:05 +0100 Subject: [PATCH 049/936] Bigger --- src/res/homepage/connect.png | Bin 46878 -> 80993 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/res/homepage/connect.png b/src/res/homepage/connect.png index 91eb32af58457f65a9944ec42234c3169e81767b..707092fb198f6c111fc2721f130e10f9a176c772 100644 GIT binary patch literal 80993 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 BZ!Q1; literal 46878 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 Date: Sat, 30 May 2020 09:25:44 +0100 Subject: [PATCH 050/936] Bigger --- src/res/homepage/connect.png | Bin 80993 -> 119654 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/res/homepage/connect.png b/src/res/homepage/connect.png index 707092fb198f6c111fc2721f130e10f9a176c772..d44ec3707ac1704b59cfe6bcdfee0fd0b59a65ae 100644 GIT binary patch literal 119654 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
G8M*LxU3b;r*S9xe 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 literal 80993 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 BZ!Q1; From 015761514b1d2401aba019ab622696f96b08319c Mon Sep 17 00:00:00 2001 From: Jonathan Date: Sat, 30 May 2020 09:34:10 +0100 Subject: [PATCH 051/936] Smaller --- src/res/homepage/bufferdelaydependency.png | Bin 13598 -> 25445 bytes src/res/homepage/chat.png | Bin 11011 -> 17119 bytes src/res/homepage/fadertagtooltip.png | Bin 49322 -> 51716 bytes src/res/homepage/profile.png | Bin 13391 -> 22350 bytes src/res/homepage/settings.png | Bin 28580 -> 43510 bytes 5 files changed, 0 insertions(+), 0 deletions(-) diff --git a/src/res/homepage/bufferdelaydependency.png b/src/res/homepage/bufferdelaydependency.png index 77675ea0445fa4a99fa4782ea398db32e924c763..3cee1074a45fb9e8bac55d784afd490ea0d1f94c 100644 GIT binary patch literal 25445 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

" + "
" + tr ( "In stereo streaming mode, no audio channel selection " "for the reverb effect will be available on the main window " "since the effect is applied to both channels in this case." ); diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index 8b611b3b1f..62aa6b52b7 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -636,7 +636,7 @@ The delay is perfect for a jam session. - + Die Verzögerung it gering genug für das Jammen. @@ -680,22 +680,22 @@ If this LED indicator turns red, you will not have much fun using the application. - + Wenn diese LED rot leuchtet, dann wirst du keinen Spaß haben mit der Software. The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: - + Die Status-LED für den Netzwerkpuffer zeigt den aktuellen Status des Netzwerkstroms. Wenn die LED grün ist, dann gibt es keine Pufferprobleme. Wenn die LED rot anzeigt, dann ist der Netzwerkstrom kurz unterbrochen. Dies kann folgende Ursachen haben: The sound card's buffer delay (buffer size) is too small (see Settings window). - + Der Soundkartenpuffer ist zu klein eingestellt. The upload or download stream rate is too high for your internet bandwidth. - + Die Upload-Rate der Internetverbindung ist zu klein für den Netzwerkdatenstrom. @@ -1314,102 +1314,102 @@ The jitter buffer compensates for network and sound card timing jitters. The size of the buffer therefore influences the quality of the audio stream (how many dropouts occur) and the overall delay (the longer the buffer, the higher the delay). - + Der Netzwerkpuffer kompensiert die Netzwerk- und Soundkarten-Timing-Schwankungen. Die Größe des Netzwerkpuffers hat Auswirkungen auf die Qualität des Audiosignals (wie viele Aussetzer auftreten) und die Gesamtverzögerung (je länger der Puffer, desto größer ist die Verzögerung). You can set the jitter buffer size manually for the local client and the remote server. For the local jitter buffer, dropouts in the audio stream are indicated by the light below the jitter buffer size faders. If the light turns to red, a buffer overrun/underrun has taken place and the audio stream is interrupted. - + Die Netzwerkpuffergröße kann manuell verstellt werden, jeweils getrennt für die Applikation und den Server. Für den lokalen Netzwerkpuffer werden die Aussetzer durch die LED-Anzeige unter den Reglern angezeigt. Wenn die Lampe rot anzeigt, dann hat ein Pufferüberlauf oder ein Leerlauf des Puffers stattgefunden und der Audiodatenstrom wurde kurz unterbrochen. If the Auto setting is enabled, the jitter buffers of the local client and the remote server are set automatically based on measurements of the network and sound card timing jitter. If Auto is enabled, the jitter buffer size faders are disabled (they cannot be moved with the mouse). - + Die Netzwerkpuffergröße kann automatisch eingestellt werden. Wenn die Automatik aktiviert ist, dann werden die Netzwerkpuffer der Applikation und des Servers getrennt basierend auf Messungen der Netzwerkschwankungen eingestellt. Wenn die Automatik aktiviert ist, dann sind die beiden Regler gesperrt für die manuelle Verstellung (sie können nicht mit der Maus verändert werden). If the Auto setting 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 and to lower the jitter buffer size manually by using the sliders until your personal acceptable amount of dropouts is reached. The LED indicator will display the audio dropouts of the local jitter buffer with a red light. - + Wenn die Automatik zum Einstellen der Netzwerkpuffer aktiviert ist, dann werden die Netzwerkpuffer der Applikation und des entfernten Servers auf einen konservativen Wert eingestellt, um eine möglichst gute Audioqualität zu garantieren. Um die Gesamtverzögerung zu optimieren, bietet es sich an, die Automatik zu deaktivieren und die Netzwerkpuffer etwas kleiner einzustellen. Die Werte sollte man so weit reduzieren, bis die Audioqualität gerade noch der persönlichen Akzeptanz entspricht. Die LED-Anzeige hilft dabei die Audioaussetzer verursacht durch den lokalen Netzwerkpuffer zu visualisieren (wenn die LED rot leuchtet). The buffer delay setting is a fundamental setting of this software. This setting has an influence on many connection properties. - + Die Soundkartenpuffergröße ist eine fundamentale Einstellung der Software. Diese Einstellung hat Einfluss auf viele andere Verbindungseigenschaften. 64 samples: The preferred setting. Provides the lowest latency but does not work with all sound cards. - + 64 Samples: Dies ist die bevorzugte Einstellung weil es die geringste Verzögerung hat. Diese Puffergröße funktioniert allerdings nicht mit allen Soundkarten. 128 samples: Should work for most available sound cards. - + 128 Samples: Diese Puffergröße sollte mit den meisten Soundkarten funktionieren. 256 samples: Should only be used on very slow computers or with a slow internet connection. - + 256 Samples: Diese Einstellung sollte nur dann verwendet werden, wenn man einen langsamen Computer oder eine langsame Internetverbindung hat. Some sound card drivers do not allow the buffer delay to be changed from within the application. In this case the buffer delay setting is disabled and has to be changed using the sound card driver. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. - + Manche Soundkartentreiber unterstützen nicht das Verändern der Puffergröße innerhalb der Software. In diesem Fall ist die Einstellungsmöglichkeit für die Puffergröße deaktiviert. Die Puffergröße muss man stattdessen direkt im Soundkartentreiber durchführen. Unter Windows kann man den ASIO-Einstellungen Knopf drücken um die Treibereinstellungen zu öffnen. Unter Linux benutzt man das Jack-Konfigurationsprogramm um die Puffergröße einzustellen. If no buffer size is selected and all settings are disabled, an unsupported buffer size is used by the driver. The application will still work with this setting but with restricted performance. - + Falls keiner der vorgegebenen Puffergrößen ausgeählt ist und alle Einstellungen deaktiviert sind, dann wird eine nicht unterstützte Puffergröße im Soundkartentreiber verwendet. Die Software funktioniert trotzdem aber es könnte eine größere Verzögerung resultieren. If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. - + Falls keiner der vorgegebenen Puffergrößen ausgeählt ist und alle Einstellungen deaktiviert sind, dann wird eine nicht unterstützte Puffergröße im Soundkartentreiber verwendet. Unter Windows kann man den ASIO-Einstellungen Knopf drücken, um die Treibereinstellungen zu öffnen. Unter Linux kann man ein Jack-Konfigurationswerkzeug verwenden, um die Puffergröße zu verändern. Selects the number of audio channels to be used for communication between client and server. There are three modes available: - + Hiermit kann man die Anzahl an Audiokanälen auswählen. Es gibt drei Modi: and - + und These modes use one and two audio channels respectively. - + Diese Modi verwenden jeweils einen oder zwei Audiokanäle. Mono in/Stereo-out - + The audio signal sent to the server is mono but the return signal is stereo. This is useful if the sound card has the instrument on one input channel and the microphone on the other. In that case the two input signals can be mixed to one mono channel but the server mix is heard in stereo. - + Ein Monosignal wird zum Server geschickt aber es kommt ein Stereo-Signal zurück vom Server. Dies ist nützlich für den Fall, dass man an die Soundkarte ein Instrument an den einen Eingangskanal und ein Mikrofon an den anderen Eingangskanal angeschlossen hat. In diesem Fall können die beiden Signale zusammen gemischt werden und an den Server geschickt werden aber man kann das Stereo-Signal von den anderen Musikern hören. Enabling - + Im mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. - + Modus ist die Übertragungsrate etwas höher. Man muss sicher stellen, dass die Internetverbindung die höhere Rate übertragen kann. In stereo streaming mode, no audio channel selection for the reverb effect will be available on the main window since the effect is applied to both channels in this case. - + Wenn der Stereo-Modus ausgewählt wurde, dann verschwindet die Kanalselektion für den Halleffekt im Hauptfenster, da der Effekt auf beide Stereokanäle angewendet wird. The higher the audio quality, the higher your audio stream's data rate. Make sure your upload rate does not exceed the available bandwidth of your internet connection. - + Je höher die Audioqualität, desto höher ist die Netzwerkübertragungsrate. Man muss sicherstellen, dass die Internetverbindung die höhere Rate übertragen kann. From ab92abfd63ddcfbabea4dcc82e009db6cdd832a2 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 6 Jun 2020 13:51:06 +0200 Subject: [PATCH 103/936] update German translation --- src/res/translation/translation_de_DE.qm | Bin 68172 -> 94504 bytes src/res/translation/translation_de_DE.ts | 134 ++++++++++++----------- src/res/translation/translation_es_ES.qm | Bin 94821 -> 94358 bytes src/res/translation/translation_es_ES.ts | 72 ++++++------ src/res/translation/translation_fr_FR.ts | 74 ++++++------- src/res/translation/translation_it_IT.ts | 74 ++++++------- src/res/translation/translation_nl_NL.ts | 74 ++++++------- src/res/translation/translation_pl_PL.ts | 74 ++++++------- src/res/translation/translation_pt_PT.ts | 74 ++++++------- 9 files changed, 292 insertions(+), 284 deletions(-) diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index f4b6a5fef6255efb604ea05170c9b1c1cf6e18a9..72b40090c839324d5b1d811053215c5c7ad2d1e0 100644 GIT binary patch delta 22479 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

3lS=bR(* zX61;6&oe8>DiQ!#;uF+-gv{v;VZVuExf9~XIaq@m$WzrpH=`lI5{Z;q=GL8R3&b5N z6VV48LSNgtW#io+r&zTe0G*HCD-;d))bp(jP?g&SJc{5`ev{1Nod0 zDkj7(r6Ati`QgHV47YNzEE4`-72L}3)Hr#hf=hE|ks&S?<&fO>c--f}%!OTf^0hU- zDilzThr_DkyNMmUFojFh0S|9-d9|=0v{w*K#48ggDlkZc#2GLCWi6?C29J<{s0rgH zFXd9S;}pF?F4-%O&%05RjvuKnlgp^1L5`U1eTW@jPe>t!KHhxh2h`OfN@5+`zl5h+TYMQ8#u>jC>Y$0Hbi$npQ z2^8aBFBHGNo5klq^KDEg{42k5h(Me6;6$vSIB#Ov=wi{Pj^ZD0cPM7$j+@3)`~qB71+6gWSA2&^F_|m03HU~K`Hhy!{gtt3P ztKyf0RGrN1f2te_7$EL>yPcia&PanAw0P6gebscUmZiDGip2%u!nWF;WhQo~y)>@<2xubqQzA)LS<&0rKh@EbX?p^`^q$HfZ` zZa&(}RV+nFL!5sFv@N}ns+UE@o-v>>9O1lM4;b59i`=9s6=ngftbSq*JbqT zfY(*l()OW)t@PG7$YNq#r9>ll41Urov5l>-FKDs-tD|+g_IK>jsckZ4A)I%c_{~o1 zmO&~JVB?M;T{$V8k^6-x$9QPI(EApMM>ppnpz_;tTo>RtVY(z-Pz-sm?O0Au*p)dl z07!730bRu+4v;E!IsN$TJiK?zIX^oQS1h}9P4p3SRE7u!1P-+P40`4YD$hXN*)a=# z)&xpP>m0tj0qhPwlskRY#8yZmG)73pQ2QYMt0wB_Y>HydOn(Co9ew;O9mYia|T|#KDz;1!kCr0A4VX^d~-h(gTHc5R-JBCRaT{3KAY_aHt zHZ4WZRi+kPg?P>~Wcir%n*q-!o(SaUK^$>5!>EW8nmT@DSuvuNqa~l6G80L~bw8WX zrnLJ|eygE6FrODDtGW;ctTa$tYfc4ZBoK7*>k8$sv>pCmbf(UH^JF;2vXbIiwaNQW zJEUwc=>iU{cR$%$PMv4WR>T7bdWf42w?%rP&UpE-C&p;XB|^nN5;;sPJ*Aa$ebAd! zCreo^2Wo~2Vh68fKG@`e<3{}QJrDCFU#ztxZNZ8N&h@Zia7Sq{c^sgq#2l@R<=EnV>1!=I%Q#S=k|EZwI>p19QVD<3JFi%Km5c%L zl$;6ZnY8SW0Y$-3<5k}(W6~AaQL71C0@xIN!!frHbjq4cJSl&&aED@YZkXU)#Ml7M zk9A#Uc5TYTCA$vbrMR$rK8}0Cw7PM!+=E}7E5X|D(gunryE>+wY$0Yk#w9|<4&!Pp ztx(4&kz6De0n}T~26Hx5CFR?BvxF{&DP@riMGPBpW`T1peNUbPvw1!e$YGb0L#C}9 zXt`vF{YuE7Ol&*9jaXikDoxR>1)XZTX6mRwO?iyL4w9;jV=5v+KD>ihM@>I7O-mK+ zjCf^`Kba74Kn%Baf*Gn>N$g3vbn)pcef!ZxhEBnG;2;bG>^i^eodST6mn&aRa_bZ2 zY}`RM*1ji_PVaGdr!H9Sfv_2w4sPrmD-bucrFeqC5@JoOGc_l(J2vu>Elt9L(CIA|P<1A*?0=rXkym+n$Bj>$<teUi`Xas}TB)Krt+19!av^VTr7ly@UOmrJ20R zY393e)^7%451#M|{Z&Vs+^Umu9dwS3to=&oZ*2b${%gPh_ln=0v?bTkn;zI+dn5Awlv(cA#5gp)!> zNl5Kts_w;AJI<~Jdrf4hAgGgM_~L<$)3-)v#+(p|@b?_tO^9|N;U1hEmahPDWcR5T z(!pe6(@_tFc&L2*?yL!`x>JnWE1P}c)f+8?w1KAp09(xIY?l38X-2XGWI~cMIXP1tFvupVEF!9NYX)X8dx=I^yUIH87b+FdX5K&{RXk#z| z{zEEi5nu!BKWyJp{NZp*f4qkOhm9;I0)D*Rpff~#ys=q&l0+#^VOzzt#apjl6p~ve JeEf5d{{stjbNB!N delta 3640 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 der Stereo-Modus ausgewählt wurde, dann verschwindet die Kanalselektion für den Halleffekt im Hauptfenster, da der Effekt auf beide Stereokanäle angewendet wird. - + Audio channels combo box Audiokanal Auswahlbox - + Audio Quality Audioqualität @@ -1217,12 +1217,12 @@ Wählt die gewünschte Audioqualität aus. Es wird eine niedrige, mittlere und hohe Audioqualität angeboten. Je höher die Audioqualität, desto höher ist die Netzwerkübertragungsrate. Man muss sicherstellen, dass die Internetverbindung die höhere Rate übertragen kann. - + Audio quality combo box Audioqualität Auswahlbox - + New Client Level Pegel für neuen Teilnehmer @@ -1231,12 +1231,12 @@ Der Pegel für neue Teilnehmer definiert die Fadereinstellung, wenn sich ein Teilnehmer neu mit dem Server verbindet. D.h. wenn ein neuer Fader erscheint, dann wird er auf den voreingestellten Pegel gesetzt. Eine Ausnahme bildet der Fall, dass der Teilnehmer vorher schon mal mit dem Server verbunden war und der Pegel gespeichert war. - + New client level edit box Neuer Teilnehmer Pegel Einstellbox - + Custom Central Server Address Benutzerdefinierte Zentralserveradresse @@ -1257,12 +1257,12 @@ Voreingestellter Zentralservertyp Auswahlbox - + Central server address line edit Zentralserveradresse Eingabefeld - + Current Connection Status Parameter Verbindungsstatus Parameter @@ -1279,35 +1279,40 @@ Die Upload-Rate hängt von der Soundkartenpuffergröße und die Audiokomprimierung ab. Man muss sicher stellen, dass die Upload-Rate immer kleiner ist als die Rate, die die Internetverbindung zur Verfügung stellt (man kann die Upload-Rate des Internetproviders z.B. mit speedtest.net überprüfen). - + If this LED indicator turns red, you will not have much fun using the Wenn diese LED rot leuchtet, dann wirst du keinen Spaß haben mit der - + software. Software. - + ASIO Setup ASIO-Einstellung - + Mono - + + mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. + Modus ist die Übertragungsrate etwas höher. Man muss sicher stellen, dass die Internetverbindung die höhere Rate übertragen kann. + + + Mono-in/Stereo-out Mono-In/Stereo-Out - + Stereo @@ -1397,57 +1402,56 @@ Im - mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. - Modus ist die Übertragungsrate etwas höher. Man muss sicher stellen, dass die Internetverbindung die höhere Rate übertragen kann. + Modus ist die Übertragungsrate etwas höher. Man muss sicher stellen, dass die Internetverbindung die höhere Rate übertragen kann. - + In stereo streaming mode, no audio channel selection for the reverb effect will be available on the main window since the effect is applied to both channels in this case. Wenn der Stereo-Modus ausgewählt wurde, dann verschwindet die Kanalselektion für den Halleffekt im Hauptfenster, da der Effekt auf beide Stereokanäle angewendet wird. - + The higher the audio quality, the higher your audio stream's data rate. Make sure your upload rate does not exceed the available bandwidth of your internet connection. Je höher die Audioqualität, desto höher ist die Netzwerkübertragungsrate. Man muss sicherstellen, dass die Internetverbindung die höhere Rate übertragen kann. - + This setting defines the fader level of a newly connected client in percent. If a new client connects to the current server, they will get the specified initial fader level if no other fader level from a previous connection of that client was already stored. - + Der Pegel für neue Teilnehmer definiert die Fadereinstellung, wenn sich ein Teilnehmer neu mit dem Server verbindet. D.h. wenn ein neuer Fader erscheint, dann wird er auf den voreingestellten Pegel gesetzt. Eine Ausnahme bildet der Fall, dass der Teilnehmer vorher schon mal mit dem Server verbunden war und der Pegel gespeichert war. - + Leave this blank unless you need to enter the address of a central server other than the default. - + Die Zentralserveradresse ist die IP-Adresse oder URL des Zentralservers, der die Serverliste organisiert und bereitstellt. Diese Adresse wird nur benutzt, wenn die benutzerdefinierte Serverliste im Verbindungsdialog ausgewählt wird. - + The Ping Time is the time required for the audio stream to travel from the client to the server and back again. This delay is introduced by the network and should be about 20-30 ms. If this delay is higher than about 50 ms, your distance to the server is too large or your internet connection is not sufficient. - + Die Ping-Zeit ist die Zeit, die der Audiodatenstrom benötigt, um von der Applikation zum Server und zurück zu kommen. Diese Verzögerung wird vom Netzwerk hervorgerufen. Diese Verzögerung sollte so um die 20-30 ms sein. Falls die Verzögerung größer ist (z.B. 50-60 ms), der Abstand zum Server ist zu groß oder die Internetverbindung ist nicht ausreichend. - + Overall Delay is calculated from the current Ping Time and the delay introduced by the current buffer settings. - + Die Gesamtverzögerung setzt sich zusammen aus der Ping-Zeit und die Verzögerung, die durch die Puffergrößen verursacht wird. - + Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net. - + Die Upload-Rate hängt von der Soundkartenpuffergröße und die Audiokomprimierung ab. Man muss sicher stellen, dass die Upload-Rate immer kleiner ist als die Rate, die die Internetverbindung zur Verfügung stellt (man kann die Upload-Rate des Internetproviders z.B. mit speedtest.net überprüfen). - + Low Niedrig - + Normal Normal - + High Hoch @@ -1494,23 +1498,23 @@ Standard (Nordamerika) - + preferred bevorzugt - - + + Size: Größe: - + Buffer Delay Puffergröße - + Buffer Delay: Puffergröße: @@ -1519,17 +1523,17 @@ Vordefinierte Adresse - + The selected audio device could not be used because of the following error: Das ausgewählte Audiogerät kann aus folgendem Grund nicht verwendet werden: - + The previous driver will be selected. Der vorherige Treiber wird wieder ausgewählt. - + Ok @@ -1736,17 +1740,17 @@ The Connection Setup window shows a list of available servers. Server operators can optionally list their servers by music genre. Use the List dropdown to select a genre, click on the server you want to join and press the Connect button to connect to it. Alternatively, double click on on the server name. Permanent servers (those that have been listed for longer than 48 hours) are shown in bold. - + Die Serverliste zeigt eine Liste von verfügbaren Server, die sich am Zentralserver registriert haben. Markiere einen Server von der Liste und drücke den Knopf Verbinden um eine Verbindung zu dem Server aufzubauen. Alternativ kann man auch den Server in der Liste direkt doppelklicken. Wenn ein Server belegt ist, dann wird eine Liste der verbundenen Musikern angezeigt. Server, die länger online sind (permanente Server) werden in Fettschrift dargestellt. If you know the IP address or URL of a server, you can connect to it using the Server name/Address field. An optional port number can be added after the IP address or URL using a colon as a separator, e.g, example.org: - + Die IP-Adresse oder URL des Servers, auf der die Serversoftware läuft wird hier angegeben. Optional kann eine Portnummer angefügt werden. Diese wird hinter der IP-Adresse durch ein Doppelpunkt getrennt angegeben. Beispiel: example.org: . The field will also show a list of the most recently used server addresses. - + . Eine Liste der letzten IP-Adressen oder URLs wird gespeichert und kann nachträglich wieder ausgewählt werden. @@ -2103,7 +2107,7 @@ What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. - + Was man hier sieht wird auch am Fader im Mixer angezeigt, wenn du mit einem Server verbunden bist. Dieses Schild wird auch bei allen anderen Musikern, die mit dem gleichen Server verbunden sind, angezeigt. @@ -2318,7 +2322,7 @@ No Name - + Kein Name @@ -2407,12 +2411,12 @@ If the start minimized on operating system start check box is checked, the server will be started when the operating system starts up and is automatically minimized to a system task bar icon. - + Wenn diese Funktion angehakt ist, dann wird der Server automatisch mit dem Betriebssystemstart geladen und erscheint minimiert in der Systemleiste als Icon. If the Make My Server Public check box is checked, this server registers itself at the central server so that all users of the application can see the server in the connect dialog server list and connect to it. The registration of the server is renewed periodically to make sure that all servers in the connect dialog server list are actually available. - + Mit dieser Funktion wird der eigene Server in der Serverliste des Zentralservers registriert so dass alle anderen Applikationsnutzer den Server in der Liste sehen können und sich mit ihm verbinden können. Die Registrierung mit dem Zentralserver wird periodisch erneuert um sicherzugehen, dass alle registrierten Server auch wirklich erreichbar sind. @@ -2456,7 +2460,7 @@ The server name identifies your server in the connect dialog server list at the clients. - + Der Servername identifiziert deinen Server in der Serverliste. @@ -2496,62 +2500,62 @@ Checkbox to turn on or off server recording - + Schalter zum aktivieren oder deaktivieren der Aufnahmefunktion Enable Recorder - + Aktiviere die Aufnahmefunktion Checked when the recorder is enabled, otherwise unchecked. The recorder will run when a session is in progress, if (set up correctly and) enabled. - + Angehakt, wenn die Aufnahmefunktion aktiviert ist. Die Aufnahme wird automatisch gestartet, wenn eine Jam-Session läuft. Current session directory text box (read-only) - + Aktuelle Session Checkbox Current Session Directory - + Verzeichnisname für das Speichern der Aufnahmen Enabled during recording and holds the current recording session directory. Disabled after recording or when the recorder is not enabled. - + Wenn die Aufnahmefunktion aktiviert ist, dann kann das Verzeichnis ausgewählt werden, in dem die Aufnahmen gespeichert werden. Recorder status label - + Recorder Statusanzeige Recorder Status - + Aufnahmestatus Displays the current status of the recorder. - + Zeigt den Aufnahmestatus an. Request new recording button - + Anfordern einer neuen Aufnahme New Recording - + Neue Aufnahme During a recording session, the button can be used to start a new recording. - + Mit diesem Knopf kann man die Aufnahme neu starten (d.h. es wird eine neue Aufnahmedatei angelegt). @@ -2589,17 +2593,17 @@ Recording - + Aufnahme Not recording - + Keine Aufnahme Not enabled - + Nicht aktiviert Manual @@ -2730,17 +2734,17 @@ Enable jam recorder - + Aktivere die Aufnahme New recording - + Neue Aufnahme Recordings folder - + Verzeichnis für die Aufnahmen diff --git a/src/res/translation/translation_es_ES.qm b/src/res/translation/translation_es_ES.qm index 379a6b9ab4a97733be51b5de6c3a74df167994df..d418ab75bc30fc1dfc0391aa521e6ca28e6a378b 100644 GIT binary patch delta 3465 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 Z_Qr!X(bBm%w(H?>hUlEbOH2RR^nb|+G}QnA delta 3623 zcmX9=dt6QV7XSYC+57CX&tsp)NTC-p5)u{TQE3dl$fHymB`QO5R2a;qV`emjiJV~= zjTsG%iDJA*SLj`u$|?|xBa$o_l~fo`=|f_ z{ejYjgp&Xty#*siTCm!Sa60f&y#*uQTCm0^YqF2=kFUUQIs}xj2EThPFmRd$!?VHv z^gCdl0{+1k;0*`<2}MW^fZ&=A*n~kCbQOq*hTy&zX!r@jI1^C)1B8iFfNdKf1bBgY zJc2N3AJ8)wLihy0Piw)>bOF_sW5=M*wPGLC75nI4}qW$zT)LLMZ$K zjMbRD*ayb4D!4v&2O9r}K^H3k*Gl+rF9kH?;lF<=aAzF+Z}EWFgDzz6-9kV*g@3sk zf$_J1_PYoyq44JJ2pX{sY}QN!6=wk97Z6;%17OXVJeKn9s7J`gB7oSP8bR?R7(!>R zf(NSO5c%dg5IGYwAEX1#5~7?2gCPvj%06J+5Jc09jLXE_p!q=kM3atlFur_-UtF$G zo~y8bs2jk$BJX@F@HPvF#)pCR?T1U5fxyCG3zi?l<^CabOf9Y!W>T0+G*G#y48z?B z7htgg_nxGJ4V#GjJH~-c{t8dbqk#&s3z_>-ycpO7G}SQSpHlRO!kg)CQGsS78?`70 za13Dqo)5ru4W=^AEojC%_G4%r;GWI)6gq$nT*vlzO9Uj5m2V9L&YWW9hYG+3HL^e3 zO2M=l>~`pD;B`8?JGTIM`jp)dEdrbAZ}L`rV7xGjv##_9s#bEnWLqFHj_cc)3bcL6 z`8Ig~um0j9jy?dAv$@E0Dl@E;i~4Xk;G4sxbQr+YIh^tH7~qeS+?tm%5bMrmAfB>6 z#eKJF7O?9DmlHSxu=V5ieX#}X<7h6A+KGX7U1&s`HJ6v;0IYw^73hZp*1=rCE0UA= zHFqM3+ALn=&JH>bb5?FYUG3tF%EZP_TW zIW?x^{0QT4k&oWn0_MGgU+8%bND=szNwFl1vHZ&Hclww4Re>}gn@;iD%ryBIo?GyC zFrOV&3=DCzVECu}?h9WMVQKu{HJ52V4)XiHASc;b&F7MqU~c8}uF$++7rT)4|C~Q~ zAR6x@={bM!A~9W&!yhgoLSE&WRtpXvb?oKqMpOLSatk&j^7W-8H}1duU#2wTO~?Q3 zFcWNe6yI>8ACOSS-#<@!Yf$r#Jk!8p!cBh*4n}>J(4&7QFs)8-o*qtPw?P={7*8tg zD-7R5vh@2(82z*W*g9Gmqaz)uHNx2FV_;tA1)o<_z!XCS|JVJg4Y!3bJ&nU~ly=8KjWMQF~9Zf;5u=w5hx%U=UJZXdxDS^W0*A2kw1;Y9TKZALe z3mJw?uwKK2O*O<LfR0h5VZv7$D&3#KgGE2BN ziwK)%Yr(S5O!lJB+}GojJx|g3H+_}S*D`?-w#qryG*F2bm1$8_&se{Mv}z{Se?^MWXc?dT(vB zXg7u0JHbP=51{^dd@qhLuOJ_|BKkS*2A0H&A&v!L{q*AWvJZg){}X3e({~{~#AsIu zam*o4oNXo=#_SZAL|-L;eA0zX)h;e`p=a4%Tt2y$FkjqSNqSmr7PsvrKOAvL+;OXj z{BM!CQyT&{a-!J9zc^C-p~8V=8!DcdR|IBdZ#tuLFmlht+b4X9?cc?wS0!MoAhFqz zUK>}Y(*E5-Tc}WFb<792=&KsK_AafnC<}IuQ4O1R1n~Y%HN1e1`zK!&{3)gLwoDb# zlg7!EtD0Y423Vc6;L9%CiSe{N{jxGonqg_HoJEigNtsn&i`q zN)EpvO=RzpMOR6|38%>#j!04M^nd$dDK6^;ZPeLP+#{;xZKsseLsGk)ckoZB_>Jcy(TKaO6u^uWvy8zs+Q2%=qRl4Y+ zy2y$W?Nz5P?Lltv{t0zuK7IGbpssl@25iVBb+bD$7HC#Klq7P&gBm`MrZZrLMx_X* z+rUnZmC@OaWd4C>O|+gDJ5R&Aj1bfftdQ6b}kqw@9<%VJN_6 zXf}R5mu??-G~YC@1?%6c`PSY1?mno=p7<^Gc$?;j+z=qzQ}d(mbD(>L1>d-7ayNej zbT(=7$H-v8Wg25)HC4pV)|~fy3mnMMROVOFt#YTP<_Wc;bbzL=SqAMKgxl1(`)Tl6BDko)?xDt z>V0Mxvi`%3S_d<2_-i+{16#TQgM+n$2QQ-v+O+`_RDdB(8&rIUZUi3M>6Jd@80)o( zg*~a4E3}DCM19bDZSq|T{M`+0>YsIBQ(tPgHW5KFSG6V=N?cu{-PMPTk5+skBZeb0 zELfATE%|sUZ2)7ewk+}nV3(k+QF)MPinKLZskE4vYp>Mx0=}Q2z4wenRC-_gU|9?$ zSfu?Yu>w4sczKGmhRwE&aX=$4PC1EVhKc5QzKHoiso^Lzs^ z$VIn*d=XvQ+;wML-GEu0UC2hi(UqL51@_zPD(1xz^?tgGwzNU+L3jTVX>7t(-NRV= zKTfUtXLJZ%$-Q;YkA=Xq*D(J?_02EP2%WX`iEn el caso del modo estéreo, no estará disponible la selección de canal para el efecto de reverberación en la ventana principal puesto que en este caso el efecto se aplicará a ambos canales. - + Audio channels combo box Selección canales audio - + Audio Quality Calidad Audio @@ -1229,12 +1229,12 @@ Selecciona la calidad de audio deseada. Se puede seleccionar una calidad baja, normal o alta. Cuanto mayor la calidad del audio, mayor la tasa de transferencia de datos de audio. Asegúrate de que la tasa de subida no excede el ancho de banda disponible en tu conexión a internet. - + Audio quality combo box Selección calidad audio - + New Client Level Nivel Cliente Nuevo @@ -1243,12 +1243,12 @@ La configuración del nivel de clientes nuevos define el nivel del fader para una nueva conexión expresado en un porcentaje. Esto es, si un cliente nuevo se conecta al servidor actual, su fader tomará el valor especificado si no se ha guardado ningún valor de una conexión anterior de ese cliente. - + New client level edit box Campo para nivel nuevo cliente - + Custom Central Server Address Dirección Personalizada Servidor Central @@ -1269,12 +1269,12 @@ Selección servidor central - + Central server address line edit Dirección servidor central - + Current Connection Status Parameter Parámetro Estado Conexión Actual @@ -1291,35 +1291,40 @@ La tasa de subida depende del tamaño actual de paquetes de audio y la configuración de compresión de audio. Asegúrate de que la tasa de subida no es mayor que la tasa disponible (comprueba la tasa de subida de tu conexión a internet, por ej. con speedtest.net). - + If this LED indicator turns red, you will not have much fun using the Si este indicador LED se vuelve rojo, no te divertirás demasiado utilizando el software - + software. . - + ASIO Setup Configuración ASIO - + Mono Mono - + + mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. + + + + Mono-in/Stereo-out Entrada mono/Salida estéreo - + Stereo Estéreo @@ -1409,57 +1414,56 @@ Habilitar el modo - mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. - aumentará la tasa de datos. Asegúrate de que tu tasa de subida no excede el valor de subida disponible con tu ancho de banda de Internet. + aumentará la tasa de datos. Asegúrate de que tu tasa de subida no excede el valor de subida disponible con tu ancho de banda de Internet. - + In stereo streaming mode, no audio channel selection for the reverb effect will be available on the main window since the effect is applied to both channels in this case. En modo estéreo, no habrá ninguna selección de canal para el efecto de reverb en la ventana principal porque el efecto se aplica a ambos canales en este caso. - + The higher the audio quality, the higher your audio stream's data rate. Make sure your upload rate does not exceed the available bandwidth of your internet connection. Cuanto mayor la calidad del audio, mayor la tasa de subida del audio. Asegúrate de que tu tasa de subida no excede el ancho de banda de tu conexión a Internet. - + This setting defines the fader level of a newly connected client in percent. If a new client connects to the current server, they will get the specified initial fader level if no other fader level from a previous connection of that client was already stored. Este ajuste define el nivel del fader de una nueva conexión de cliente, en porcentaje. Si se conecta un nuevo cliente al servidor actual, el nivel inicial de su fader tomará este valor si no se ha especificado anteriormente un valor para ese cliente de una conexión anterior. - + Leave this blank unless you need to enter the address of a central server other than the default. Deja esto en blanco a menos que necesites escribir la dirección de un servidor distinto a los que hay por defecto. - + The Ping Time is the time required for the audio stream to travel from the client to the server and back again. This delay is introduced by the network and should be about 20-30 ms. If this delay is higher than about 50 ms, your distance to the server is too large or your internet connection is not sufficient. El Ping es el tiempo que requiere el flujo de audio para viajar desde el cliente al servidor y volver. Este retardo lo determina la red y debería ser de unos 20-30 ms. Si este retardo es de unos 50 ms, la distancia al servidor es demasiado grande o tu conexión a internet no es óptima. - + Overall Delay is calculated from the current Ping Time and the delay introduced by the current buffer settings. El Retardo Total se calcula con el Ping actual y el retardo ocasionado por la configuración de buffers. - + Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net. La Tasa de Subida de Audio depende del tamaño actual de paquetes de audio y la configuración de compresión de audio. Asegúrate de que la tasa de subida no es mayor que la velocidad de subida disponible (comprueba la tasa de subida de tu conexión a internet, por ej. con speedtest.net). - + Low Baja - + Normal Normal - + High Alta @@ -1506,23 +1510,23 @@ Por defecto (Norteamérica) - + preferred aconsejado - - + + Size: Tamaño: - + Buffer Delay Retardo Buffer - + Buffer Delay: Retardo Buffer: @@ -1531,17 +1535,17 @@ Dirección Preestablecida - + The selected audio device could not be used because of the following error: El dispositivo de audio seleccionado no puede utilizarse a causa del siguiente error: - + The previous driver will be selected. Se utilizará el driver anterior. - + Ok Ok diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index 2ff66b5824..97dd67c746 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -1219,12 +1219,12 @@ Dans le cas du mode de streaming stéréo, aucune sélection de canal audio pour l'effet de réverbération ne sera disponible dans la fenêtre principale puisque l'effet est appliqué sur les deux canaux dans ce cas. - + Audio channels combo box Choix déroulant de canaux audio - + Audio Quality Qualité audio @@ -1233,12 +1233,12 @@ Sélectionnez la qualité audio souhaitée. Une qualité audio faible, normale ou élevée peut être sélectionnée. Plus la qualité audio est élevée, plus le débit de données du flux audio est élevé. Assurez-vous que le débit montant actuel ne dépasse pas la bande passante disponible de votre connexion internet. - + Audio quality combo box Choix déroulant de qualité audio - + New Client Level Niveau de nouveau client @@ -1247,12 +1247,12 @@ Le paramètre de niveau de nouveau client définit le niveau de chariot d'un client nouvellement connecté en pourcentage. C'est-à-dire que si un nouveau client se connecte au serveur actuel, il aura le niveau de chariot initial spécifié si aucun autre niveau de chariot d'une connexion précédente de ce client n'était déjà stocké. - + New client level edit box Dialogue d'édition de niveau de nouveau client - + Custom Central Server Address Adresse personnalisée du serveur central @@ -1273,12 +1273,12 @@ Choix déroulant de type de serveur central par défaut - + Central server address line edit Ligne d'édition pour l'adresse du serveur central - + Current Connection Status Parameter Paramètre de l'état de la connexion actuelle @@ -1295,35 +1295,40 @@ Le débit montant dépend de la taille actuelle du paquet audio et du réglage de la compression audio. Assurez-vous que le débit montant n'est pas supérieur au débit disponible (vérifiez les capacités montant de votre connexion internet en utilisant, par exemple, speedtest.net). - + If this LED indicator turns red, you will not have much fun using the Si ce voyant devient rouge, vous n'aurez pas beaucoup de plaisir à utiliser le logiciel - + software. . - + ASIO Setup Paramètres ASIO - + Mono Mono - + + mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. + + + + Mono-in/Stereo-out Mono-entrée/stéréo-sortie - + Stereo Stéréo @@ -1413,57 +1418,52 @@ - - mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. - - - - + In stereo streaming mode, no audio channel selection for the reverb effect will be available on the main window since the effect is applied to both channels in this case. - + The higher the audio quality, the higher your audio stream's data rate. Make sure your upload rate does not exceed the available bandwidth of your internet connection. - + This setting defines the fader level of a newly connected client in percent. If a new client connects to the current server, they will get the specified initial fader level if no other fader level from a previous connection of that client was already stored. - + Leave this blank unless you need to enter the address of a central server other than the default. - + The Ping Time is the time required for the audio stream to travel from the client to the server and back again. This delay is introduced by the network and should be about 20-30 ms. If this delay is higher than about 50 ms, your distance to the server is too large or your internet connection is not sufficient. - + Overall Delay is calculated from the current Ping Time and the delay introduced by the current buffer settings. - + Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net. - + Low Basse - + Normal Normale - + High Haute @@ -1510,23 +1510,23 @@ Défaut (Amérique du Nord) - + preferred préféré - - + + Size: Taille : - + Buffer Delay Délai de temporisation - + Buffer Delay: Délai de temporisation : @@ -1535,17 +1535,17 @@ Adresse prédéfinie - + The selected audio device could not be used because of the following error: Le périphérique audio sélectionné n'a pas pu être utilisé en raison de l'erreur suivante : - + The previous driver will be selected. Le pilote précédent sera sélectionné. - + Ok Ok diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index 77e82dad9a..51905b570d 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -1195,12 +1195,12 @@ Nel caso in cui si una lo streaming stereo, non sarà possibile selezionare su quale canale far intervenire il riverbero inquanto sarà applicato ad entrambi i canali Left e Right. - + Audio channels combo box Combo Box Canali Audio - + Audio Quality Qualità Audio @@ -1209,12 +1209,12 @@ Selezionare la qualità audio desiderata. Si può scegliere tra Low (Bassa), normal (standard), high (Alta). Maggiore è la qualità settata più alto sarà il valore di streaming audio. Accertarsi di avere sufficiente banda in upload. - + Audio quality combo box Combo Box Qualità Audio - + New Client Level Livello Volume Nuovo Client @@ -1223,12 +1223,12 @@ Settare il livello per il nuovo client definisce il livello, in percentuale, di ingresso per un nuovo utente che si connette. Un nuovo client che si connette alla sessione assume un volume uguale a quello settato se non ci sono livelli memorizzati per questo client in precedenti connessioni con lo stesso. - + New client level edit box Box per modificare il livello di ingresso di un nuovo client - + Custom Central Server Address Indirizzo personalizzato del Server Centrale @@ -1249,12 +1249,12 @@ Box per l'indirizzo del Server Centrale - + Central server address line edit Modifica indirizzo Server Centrale - + Current Connection Status Parameter Parametri attuali di connessione @@ -1271,35 +1271,40 @@ La velocità di trasferimento dati in upload dipende dalla dimensione dei pacchetti audio e dai settaggi di compressione dell'audio. Assicurarsi di non usare valori di upstream non adeguati alla propria connessione (è possibile verificare tali valori mediante un test sulla propria connessione, usando per esempio il sito speedtest.net). - + If this LED indicator turns red, you will not have much fun using the Se questo indicatore a LED diventa rosso non si godrà di un esperienza ottimale del programma - + software. . - + ASIO Setup ASIO Setup - + Mono Mono - + + mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. + + + + Mono-in/Stereo-out Mono-in/Stereo-out - + Stereo Stereo @@ -1389,78 +1394,73 @@ - - mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. - - - - + In stereo streaming mode, no audio channel selection for the reverb effect will be available on the main window since the effect is applied to both channels in this case. - + The higher the audio quality, the higher your audio stream's data rate. Make sure your upload rate does not exceed the available bandwidth of your internet connection. - + This setting defines the fader level of a newly connected client in percent. If a new client connects to the current server, they will get the specified initial fader level if no other fader level from a previous connection of that client was already stored. - + Leave this blank unless you need to enter the address of a central server other than the default. - + The Ping Time is the time required for the audio stream to travel from the client to the server and back again. This delay is introduced by the network and should be about 20-30 ms. If this delay is higher than about 50 ms, your distance to the server is too large or your internet connection is not sufficient. - + Overall Delay is calculated from the current Ping Time and the delay introduced by the current buffer settings. - + Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net. - + Low Low - + Normal Normal - + High High - + preferred consigliato - - + + Size: Livello: - + Buffer Delay Buffer Delay - + Buffer Delay: Buffer Delay: @@ -1469,17 +1469,17 @@ Indirizzo Preferito - + The selected audio device could not be used because of the following error: La scheda audio selezionata non può essere usata per i seguenti motivi: - + The previous driver will be selected. Sarà ripristinato il driver precedentemente usato. - + Ok Ok diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index 0cca28e149..fc31797825 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -1187,12 +1187,12 @@ In het geval van de stereo streaming-mode is er geen audiokanaalselectie voor het galmeffect beschikbaar op het hoofdvenster, aangezien het effect in dit geval op beide kanalen wordt toegepast. - + Audio channels combo box Audiokanalen combo-box - + Audio Quality Audiokwaliteit @@ -1201,12 +1201,12 @@ Selecteer de gewenste audiokwaliteit. Er kan een lage, normale of hoge audiokwaliteit worden geselecteerd. Hoe hoger de audiokwaliteit, hoe meer audiodata moet worden verstuurd. Zorg ervoor dat de vereiste bandbreedte niet hoger is dan de beschikbare bandbreedte van uw internetverbinding. - + Audio quality combo box Audiokwaliteit combo-box - + New Client Level Nieuw clientniveau @@ -1215,12 +1215,12 @@ De nieuwe instelling van het clientniveau definieert het faderniveau van een nieuwe verbonden client in procenten. D.w.z. als een nieuwe client verbinding maakt met de server, krijgt hij het opgegeven initiële faderniveau als er in de vorige verbinding niets is opgeslagen. - + New client level edit box Nieuw bewerkingsvak op clientniveau - + Custom Central Server Address @@ -1237,12 +1237,12 @@ Centraal serveradrestype combo box - + Central server address line edit Centraal serveradres bewerking van de lijn - + Current Connection Status Parameter Huidige verbindingsstatus-parameter @@ -1259,35 +1259,40 @@ De upstreamsnelheid is afhankelijk van de huidige grootte van het audiopakket en de instelling van de audiocompressie. Zorg ervoor dat de upstreamsnelheid niet hoger is dan de beschikbare snelheid (controleer de upstreammogelijkheden van uw internetverbinding door bijvoorbeeld speedtest.net te gebruiken). - + If this LED indicator turns red, you will not have much fun using the Als deze LED-indicator rood wordt, zult u niet veel plezier beleven aan het gebruik van de - + software. software. - + ASIO Setup ASIO-instelling - + Mono Mono - + + mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. + + + + Mono-in/Stereo-out Mono-in/Stereo-out - + Stereo Stereo @@ -1377,57 +1382,52 @@ - - mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. - - - - + In stereo streaming mode, no audio channel selection for the reverb effect will be available on the main window since the effect is applied to both channels in this case. - + The higher the audio quality, the higher your audio stream's data rate. Make sure your upload rate does not exceed the available bandwidth of your internet connection. - + This setting defines the fader level of a newly connected client in percent. If a new client connects to the current server, they will get the specified initial fader level if no other fader level from a previous connection of that client was already stored. - + Leave this blank unless you need to enter the address of a central server other than the default. - + The Ping Time is the time required for the audio stream to travel from the client to the server and back again. This delay is introduced by the network and should be about 20-30 ms. If this delay is higher than about 50 ms, your distance to the server is too large or your internet connection is not sufficient. - + Overall Delay is calculated from the current Ping Time and the delay introduced by the current buffer settings. - + Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net. - + Low Laag - + Normal Normaal - + High Hoog @@ -1470,38 +1470,38 @@ Standaard (Noord-Amerika) - + preferred gewenst - - + + Size: Size: - + Buffer Delay Buffervertraging - + Buffer Delay: Buffervertraging: - + The selected audio device could not be used because of the following error: Het geselecteerde audioapparaat kon niet worden gebruikt vanwege de volgende fout: - + The previous driver will be selected. Het vorige stuurprogramma wordt geselecteerd. - + Ok Ok diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index 792238c2e2..9521afb653 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -950,37 +950,42 @@ - + + mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. + + + + Audio channels combo box - + Audio Quality - + Audio quality combo box - + New Client Level - + New client level edit box - + Central server address line edit - + Current Connection Status Parameter @@ -1010,40 +1015,40 @@ - + Custom Central Server Address - + If this LED indicator turns red, you will not have much fun using the - + software. - + ASIO Setup - + Mono - + Mono-in/Stereo-out - + Stereo @@ -1133,57 +1138,52 @@ - - mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. - - - - + In stereo streaming mode, no audio channel selection for the reverb effect will be available on the main window since the effect is applied to both channels in this case. - + The higher the audio quality, the higher your audio stream's data rate. Make sure your upload rate does not exceed the available bandwidth of your internet connection. - + This setting defines the fader level of a newly connected client in percent. If a new client connects to the current server, they will get the specified initial fader level if no other fader level from a previous connection of that client was already stored. - + Leave this blank unless you need to enter the address of a central server other than the default. - + The Ping Time is the time required for the audio stream to travel from the client to the server and back again. This delay is introduced by the network and should be about 20-30 ms. If this delay is higher than about 50 ms, your distance to the server is too large or your internet connection is not sufficient. - + Overall Delay is calculated from the current Ping Time and the delay introduced by the current buffer settings. - + Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net. - + Low - + Normal - + High @@ -1218,38 +1218,38 @@ - + preferred - - + + Size: - + Buffer Delay - + Buffer Delay: - + The selected audio device could not be used because of the following error: - + The previous driver will be selected. - + Ok diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index 47030fde01..837767bbc2 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -1207,12 +1207,12 @@ No modo de transmissão estéreo, nenhuma seleção de canal de áudio para o efeito de reverberação estará disponível na janela principal, pois o efeito é aplicado em ambos os canais. - + Audio channels combo box Seletor de canais áudio - + Audio Quality Qualidade de Ãudio @@ -1221,12 +1221,12 @@ Selecione a qualidade de áudio desejada. Pode ser selecionada uma qualidade de áudio baixa, normal ou alta. Quanto maior a qualidade do áudio, maior a taxa de dados do fluxo de áudio. Verifique que a taxa de transmissão não excede a largura de banda disponível da sua ligação à Internet. - + Audio quality combo box Seletor de qualidade áudio - + New Client Level Nível de Novo Cliente @@ -1235,12 +1235,12 @@ A configuração de nível de novo cliente define, em percentagem, o nível do fader de um novo cliente ligado. Por exemplo, se um cliente novo se ligar ao servidor atual, o seu canal terá o nível inicial do fader especificado, excepto quando um diferente nível do fader de uma ligação anterior desse mesmo cliente já tenha sido definido. - + New client level edit box Caixa de edição no nível de novo cliente - + Custom Central Server Address Endereço do Servidor Central Personalizado @@ -1261,12 +1261,12 @@ Seletor de servidor central padrão - + Central server address line edit Caixa de edição do endereço do servidor central - + Current Connection Status Parameter Parâmetros do Estado da Ligação @@ -1283,35 +1283,40 @@ A taxa de transmissão depende do tamanho do pacote de áudio e da configuração de compactação de áudio. Verifique se a taxa de transmissão não é maior que a taxa disponível (verifique a taxa de upload da sua ligação à Internet usando, por exemplo, o speedtest.net). - + If this LED indicator turns red, you will not have much fun using the Se este indicador LED ficar vermelho, não se irá divertir muito ao usar o - + software. . - + ASIO Setup Configuração ASIO - + Mono Mono - + + mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. + + + + Mono-in/Stereo-out Entrada Mono/Saída Estéreo - + Stereo Estéreo @@ -1401,57 +1406,52 @@ - - mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. - - - - + In stereo streaming mode, no audio channel selection for the reverb effect will be available on the main window since the effect is applied to both channels in this case. - + The higher the audio quality, the higher your audio stream's data rate. Make sure your upload rate does not exceed the available bandwidth of your internet connection. - + This setting defines the fader level of a newly connected client in percent. If a new client connects to the current server, they will get the specified initial fader level if no other fader level from a previous connection of that client was already stored. - + Leave this blank unless you need to enter the address of a central server other than the default. - + The Ping Time is the time required for the audio stream to travel from the client to the server and back again. This delay is introduced by the network and should be about 20-30 ms. If this delay is higher than about 50 ms, your distance to the server is too large or your internet connection is not sufficient. - + Overall Delay is calculated from the current Ping Time and the delay introduced by the current buffer settings. - + Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net. - + Low Baixa - + Normal Normal - + High Alta @@ -1498,38 +1498,38 @@ Servidor Padrão (America do Norte) - + preferred preferido - - + + Size: Tamanho: - + Buffer Delay Atraso do buffer - + Buffer Delay: Atraso do buffer: - + The selected audio device could not be used because of the following error: O dispositivo de áudio selecionado não pôde ser usado devido ao seguinte erro: - + The previous driver will be selected. O driver anterior será selecionado. - + Ok Ok From 33073658c6c277b71cc2a0dd46765e1bed03c35d Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 6 Jun 2020 15:51:54 +0200 Subject: [PATCH 104/936] show channel numbers if --ctrlmidich is used (#241, #95) --- ChangeLog | 3 ++- src/clientdlg.cpp | 11 +++++++++++ src/clientdlg.h | 2 ++ src/main.cpp | 1 + 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 3bde676a4e..7ee4c8d7ab 100644 --- a/ChangeLog +++ b/ChangeLog @@ -16,6 +16,8 @@ - avoid showing IP address if no name in the musician profile is given (#316) +- show channel numbers if --ctrlmidich is used (#241, #95) + - bug fix: on MacOS declare an activity to ensure the process doesn't get throttled by OS level Nap, Sleep, and Thread Priority systems, coded by AronVietti (#23) @@ -23,7 +25,6 @@ - 3.5.5 (2020-05-26) - added banjo/mandolin instrument icons created by atsampson (#283) diff --git a/src/clientdlg.cpp b/src/clientdlg.cpp index 2fbefba7a2..159e5ab194 100755 --- a/src/clientdlg.cpp +++ b/src/clientdlg.cpp @@ -29,6 +29,7 @@ CClientDlg::CClientDlg ( CClient* pNCliP, CSettings* pNSetP, const QString& strConnOnStartupAddress, + const int iCtrlMIDIChannel, const bool bNewShowComplRegConnList, const bool bShowAnalyzerConsole, QWidget* parent, @@ -37,6 +38,7 @@ CClientDlg::CClientDlg ( CClient* pNCliP, pClient ( pNCliP ), pSettings ( pNSetP ), bConnectDlgWasShown ( false ), + bMIDICtrlUsed ( iCtrlMIDIChannel != INVALID_MIDI_CH ), ClientSettingsDlg ( pNCliP, parent, Qt::Window ), ChatDlg ( parent, Qt::Window ), ConnectDlg ( pNCliP, bNewShowComplRegConnList, parent, Qt::Dialog ), @@ -812,6 +814,15 @@ void CClientDlg::OnLicenceRequired ( ELicenceType eLicenceType ) void CClientDlg::OnConClientListMesReceived ( CVector vecChanInfo ) { + // show channel numbers if --ctrlmidich is used (#241, #95) + if ( bMIDICtrlUsed ) + { + for ( int i = 0; i < vecChanInfo.Size(); i++ ) + { + vecChanInfo[i].strName.prepend ( QString().setNum ( vecChanInfo[i].iChanID ) + ":" ); + } + } + // update mixer board with the additional client infos MainMixerBoard->ApplyNewConClientList ( vecChanInfo ); } diff --git a/src/clientdlg.h b/src/clientdlg.h index a54d22f5ed..0040db8a5c 100755 --- a/src/clientdlg.h +++ b/src/clientdlg.h @@ -72,6 +72,7 @@ class CClientDlg : public QDialog, private Ui_CClientDlgBase CClientDlg ( CClient* pNCliP, CSettings* pNSetP, const QString& strConnOnStartupAddress, + const int iCtrlMIDIChannel, const bool bNewShowComplRegConnList, const bool bShowAnalyzerConsole, QWidget* parent = nullptr, @@ -96,6 +97,7 @@ class CClientDlg : public QDialog, private Ui_CClientDlgBase bool bConnected; bool bConnectDlgWasShown; + bool bMIDICtrlUsed; QTimer TimerSigMet; QTimer TimerBuffersLED; QTimer TimerStatus; diff --git a/src/main.cpp b/src/main.cpp index 62d90d0251..0fdaa6076a 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -608,6 +608,7 @@ int main ( int argc, char** argv ) CClientDlg ClientDlg ( &Client, &Settings, strConnOnStartupAddress, + iCtrlMIDIChannel, bShowComplRegConnList, bShowAnalyzerConsole, nullptr, From 552b3ba5f310a5cffdc7931f66cab4fefe769dc4 Mon Sep 17 00:00:00 2001 From: Peter L Jones Date: Wed, 3 Jun 2020 22:31:52 +0100 Subject: [PATCH 105/936] #315 Provide Audacity "list of file" for session --- ChangeLog | 2 +- src/recorder/creaperproject.h | 21 --------- src/recorder/cwavestream.h | 25 ++++++++++ src/recorder/jamrecorder.cpp | 86 +++++++++++++++++++++++++---------- src/recorder/jamrecorder.h | 2 + 5 files changed, 91 insertions(+), 45 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3bde676a4e..9f584bac55 100644 --- a/ChangeLog +++ b/ChangeLog @@ -19,7 +19,7 @@ - bug fix: on MacOS declare an activity to ensure the process doesn't get throttled by OS level Nap, Sleep, and Thread Priority systems, coded by AronVietti (#23) - +- add Audacity "list of files" writer to jam recorder, by pljones (#315) diff --git a/src/recorder/creaperproject.h b/src/recorder/creaperproject.h index be6f190a4f..1fbb57ea0e 100755 --- a/src/recorder/creaperproject.h +++ b/src/recorder/creaperproject.h @@ -32,21 +32,6 @@ namespace recorder { -struct STrackItem -{ - STrackItem(int numAudioChannels, qint64 startFrame, qint64 frameCount, QString fileName) : - numAudioChannels(numAudioChannels), - startFrame(startFrame), - frameCount(frameCount), - fileName(fileName) - { - } - int numAudioChannels; - qint64 startFrame; - qint64 frameCount; - QString fileName; -}; - class CReaperItem : public QObject { Q_OBJECT @@ -59,12 +44,6 @@ class CReaperItem : public QObject const QUuid iguid = QUuid::createUuid(); const QUuid guid = QUuid::createUuid(); QString out; - - inline QString secondsAt48K( const qint64 frames, - const int frameSize ) - { - return QString::number( static_cast( frames * frameSize ) / 48000, 'f', 14 ); - } }; class CReaperTrack : public QObject diff --git a/src/recorder/cwavestream.h b/src/recorder/cwavestream.h index f3ceab660b..6d8f1ec8db 100755 --- a/src/recorder/cwavestream.h +++ b/src/recorder/cwavestream.h @@ -27,6 +27,31 @@ namespace recorder { +inline QString secondsAt48K( const qint64 frames, + const int frameSize ) +{ + return QString::number( static_cast( frames * frameSize ) / 48000, 'f', 14 ); +} + +struct STrackItem +{ + STrackItem ( int numAudioChannels, + qint64 startFrame, + qint64 frameCount, + QString fileName ) : + numAudioChannels ( numAudioChannels ), + startFrame ( startFrame ), + frameCount ( frameCount ), + fileName ( fileName ) + { + } + + int numAudioChannels; + qint64 startFrame; + qint64 frameCount; + QString fileName; +}; + class HdrRiff { public: diff --git a/src/recorder/jamrecorder.cpp b/src/recorder/jamrecorder.cpp index d8dc983326..40e103210e 100755 --- a/src/recorder/jamrecorder.cpp +++ b/src/recorder/jamrecorder.cpp @@ -381,35 +381,15 @@ void CJamRecorder::OnEnd() isRecording = false; currentSession->End(); - QString reaperProjectFileName = currentSession->SessionDir().filePath(currentSession->Name().append(".rpp")); - const QFileInfo fi(reaperProjectFileName); - - if (fi.exists()) - { - qWarning() << "CJamRecorder::OnEnd():" << fi.absolutePath() << "exists and will not be overwritten."; - reaperProjectFileName = QString::Null(); - } - else - { - QFile outf (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(); - } - } + ReaperProjectFromCurrentSession(); + AudacityLofFromCurrentSession(); delete currentSession; currentSession = nullptr; } } + /** * @brief CJamRecorder::OnTriggerSession End one session and start a new one */ @@ -432,6 +412,66 @@ void CJamRecorder::OnAboutToQuit() thisThread->exit(); } +void CJamRecorder::ReaperProjectFromCurrentSession() +{ + QString reaperProjectFileName = currentSession->SessionDir().filePath(currentSession->Name().append(".rpp")); + const QFileInfo fi(reaperProjectFileName); + + if (fi.exists()) + { + qWarning() << "CJamRecorder::ReaperProjectFromCurrentSession():" << fi.absolutePath() << "exists and will not be overwritten."; + } + else + { + QFile outf (reaperProjectFileName); + if ( outf.open(QFile::WriteOnly) ) + { + QTextStream out(&outf); + out << CReaperProject( currentSession->Tracks(), iServerFrameSizeSamples ).toString() << endl; + qDebug() << "Session RPP:" << reaperProjectFileName; + } + else + { + qWarning() << "CJamRecorder::ReaperProjectFromCurrentSession():" << fi.absolutePath() << "could not be created, no RPP written."; + } + } +} + +void CJamRecorder::AudacityLofFromCurrentSession() +{ + QString audacityLofFileName = currentSession->SessionDir().filePath(currentSession->Name().append(".lof")); + const QFileInfo fi(audacityLofFileName); + + if (fi.exists()) + { + qWarning() << "CJamRecorder::AudacityLofFromCurrentSession():" << fi.absolutePath() << "exists and will not be overwritten."; + } + else + { + QFile outf (audacityLofFileName); + if ( outf.open(QFile::WriteOnly) ) + { + QTextStream sOut(&outf); + + foreach ( auto trackName, currentSession->Tracks().keys() ) + { + foreach ( auto item, currentSession->Tracks()[trackName] ) { + QFileInfo fi ( item.fileName ); + sOut << "file " << '"' << fi.fileName() << '"'; + sOut << " offset " << secondsAt48K( item.startFrame, iServerFrameSizeSamples ) << endl; + } + } + + sOut.flush(); + qDebug() << "Session LOF:" << audacityLofFileName; + } + else + { + qWarning() << "CJamRecorder::AudacityLofFromCurrentSession():" << fi.absolutePath() << "could not be created, no LOF written."; + } + } +} + /** * @brief CJamRecorder::SessionDirToReaper Replica of CJamRecorder::OnEnd() but using the directory contents to construct the CReaperProject object * @param strSessionDirName diff --git a/src/recorder/jamrecorder.h b/src/recorder/jamrecorder.h index 0dec305f89..b0e2651cda 100755 --- a/src/recorder/jamrecorder.h +++ b/src/recorder/jamrecorder.h @@ -159,6 +159,8 @@ class CJamRecorder : public QObject private: void Start(); + void ReaperProjectFromCurrentSession(); + void AudacityLofFromCurrentSession(); QDir recordBaseDir; From 0e2185ae014358c251c653cf98954ee2a126c19f Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 6 Jun 2020 17:19:25 +0200 Subject: [PATCH 106/936] using Qt5 connections instead of the old Qt4 ones (just a subset converted right now, more TODO) --- src/audiomixerboard.cpp | 17 ++-- src/channel.cpp | 82 ++++++++---------- src/chatdlg.cpp | 13 ++- src/client.cpp | 119 +++++++++++--------------- src/clientdlg.cpp | 179 ++++++++++++++++++---------------------- 5 files changed, 180 insertions(+), 230 deletions(-) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 4e28eef4a7..215c2fe18b 100644 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -174,18 +174,17 @@ CChannelFader::CChannelFader ( QWidget* pNW, // Connections ------------------------------------------------------------- - QObject::connect ( pFader, SIGNAL ( valueChanged ( int ) ), - this, SLOT ( OnLevelValueChanged ( int ) ) ); + QObject::connect ( pFader, &QSlider::valueChanged, + this, &CChannelFader::OnLevelValueChanged ); - QObject::connect ( pPan, SIGNAL ( valueChanged ( int ) ), - this, SLOT ( OnPanValueChanged ( int ) ) ); + QObject::connect ( pPan, &QDial::valueChanged, + this, &CChannelFader::OnPanValueChanged ); - QObject::connect ( pcbMute, SIGNAL ( stateChanged ( int ) ), - this, SLOT ( OnMuteStateChanged ( int ) ) ); + QObject::connect ( pcbMute, &QCheckBox::stateChanged, + this, &CChannelFader::OnMuteStateChanged ); - QObject::connect ( pcbSolo, - SIGNAL ( stateChanged ( int ) ), - SIGNAL ( soloStateChanged ( int ) ) ); + QObject::connect ( pcbSolo, &QCheckBox::stateChanged, + this, &CChannelFader::soloStateChanged ); } void CChannelFader::SetGUIDesign ( const EGUIDesign eNewDesign ) diff --git a/src/channel.cpp b/src/channel.cpp index 4e6aa13621..b1b3824117 100755 --- a/src/channel.cpp +++ b/src/channel.cpp @@ -60,70 +60,56 @@ CChannel::CChannel ( const bool bNIsServer ) : qRegisterMetaType > ( "CVector" ); qRegisterMetaType ( "CHostAddress" ); - QObject::connect ( &Protocol, - SIGNAL ( MessReadyForSending ( CVector ) ), - this, SLOT ( OnSendProtMessage ( CVector ) ) ); + QObject::connect ( &Protocol, &CProtocol::MessReadyForSending, + this, &CChannel::OnSendProtMessage ); - QObject::connect ( &Protocol, - SIGNAL ( ChangeJittBufSize ( int ) ), - this, SLOT ( OnJittBufSizeChange ( int ) ) ); + QObject::connect ( &Protocol, &CProtocol::ChangeJittBufSize, + this, &CChannel::OnJittBufSizeChange ); - QObject::connect ( &Protocol, - SIGNAL ( ReqJittBufSize() ), - SIGNAL ( ReqJittBufSize() ) ); + QObject::connect ( &Protocol, &CProtocol::ReqJittBufSize, + this, &CChannel::ReqJittBufSize ); - QObject::connect ( &Protocol, - SIGNAL ( ReqChanInfo() ), - SIGNAL ( ReqChanInfo() ) ); + QObject::connect ( &Protocol, &CProtocol::ReqChanInfo, + this, &CChannel::ReqChanInfo ); - QObject::connect ( &Protocol, - SIGNAL ( ReqConnClientsList() ), - SIGNAL ( ReqConnClientsList() ) ); + QObject::connect ( &Protocol, &CProtocol::ReqConnClientsList, + this, &CChannel::ReqConnClientsList ); - QObject::connect ( &Protocol, - SIGNAL ( ConClientListMesReceived ( CVector ) ), - SIGNAL ( ConClientListMesReceived ( CVector ) ) ); + QObject::connect ( &Protocol, &CProtocol::ConClientListMesReceived, + this, &CChannel::ConClientListMesReceived ); - QObject::connect ( &Protocol, SIGNAL ( ChangeChanGain ( int, double ) ), - this, SLOT ( OnChangeChanGain ( int, double ) ) ); + QObject::connect ( &Protocol, &CProtocol::ChangeChanGain, + this, &CChannel::OnChangeChanGain ); - QObject::connect ( &Protocol, SIGNAL ( ChangeChanPan ( int, double ) ), - this, SLOT ( OnChangeChanPan ( int, double ) ) ); + QObject::connect ( &Protocol, &CProtocol::ChangeChanPan, + this, &CChannel::OnChangeChanPan ); - QObject::connect ( &Protocol, - SIGNAL ( ClientIDReceived ( int ) ), - SIGNAL ( ClientIDReceived ( int ) ) ); + QObject::connect ( &Protocol, &CProtocol::ClientIDReceived, + this, &CChannel::ClientIDReceived ); - QObject::connect ( &Protocol, - SIGNAL ( MuteStateHasChangedReceived ( int, bool ) ), - SIGNAL ( MuteStateHasChangedReceived ( int, bool ) ) ); + QObject::connect ( &Protocol, &CProtocol::MuteStateHasChangedReceived, + this, &CChannel::MuteStateHasChangedReceived ); - QObject::connect ( &Protocol, SIGNAL ( ChangeChanInfo ( CChannelCoreInfo ) ), - this, SLOT ( OnChangeChanInfo ( CChannelCoreInfo ) ) ); + QObject::connect ( &Protocol, &CProtocol::ChangeChanInfo, + this, &CChannel::OnChangeChanInfo ); - QObject::connect ( &Protocol, - SIGNAL ( ChatTextReceived ( QString ) ), - SIGNAL ( ChatTextReceived ( QString ) ) ); + QObject::connect ( &Protocol, &CProtocol::ChatTextReceived, + this, &CChannel::ChatTextReceived ); - QObject::connect ( &Protocol, - SIGNAL ( NetTranspPropsReceived ( CNetworkTransportProps ) ), - this, SLOT ( OnNetTranspPropsReceived ( CNetworkTransportProps ) ) ); + QObject::connect ( &Protocol, &CProtocol::NetTranspPropsReceived, + this, &CChannel::OnNetTranspPropsReceived ); - QObject::connect ( &Protocol, - SIGNAL ( ReqNetTranspProps() ), - this, SLOT ( OnReqNetTranspProps() ) ); + QObject::connect ( &Protocol, &CProtocol::ReqNetTranspProps, + this, &CChannel::OnReqNetTranspProps ); - QObject::connect ( &Protocol, - SIGNAL ( LicenceRequired ( ELicenceType ) ), - SIGNAL ( LicenceRequired ( ELicenceType ) ) ); + QObject::connect ( &Protocol, &CProtocol::LicenceRequired, + this, &CChannel::LicenceRequired ); - QObject::connect ( &Protocol, - SIGNAL ( VersionAndOSReceived ( COSUtil::EOpSystemType, QString ) ), - SIGNAL ( VersionAndOSReceived ( COSUtil::EOpSystemType, QString ) ) ); + QObject::connect ( &Protocol, &CProtocol::VersionAndOSReceived, + this, &CChannel::VersionAndOSReceived ); - QObject::connect ( &Protocol, - SIGNAL ( ReqChannelLevelList ( bool ) ), - this, SLOT ( OnReqChannelLevelList ( bool ) ) ); + QObject::connect ( &Protocol, &CProtocol::ReqChannelLevelList, + this, &CChannel::OnReqChannelLevelList ); } bool CChannel::ProtocolIsEnabled() diff --git a/src/chatdlg.cpp b/src/chatdlg.cpp index 0a1554f339..754c2ed9bd 100755 --- a/src/chatdlg.cpp +++ b/src/chatdlg.cpp @@ -54,15 +54,14 @@ CChatDlg::CChatDlg ( QWidget* parent, Qt::WindowFlags f ) : // Connections ------------------------------------------------------------- - QObject::connect ( edtLocalInputText, - SIGNAL ( textChanged ( const QString& ) ), - this, SLOT ( OnLocalInputTextTextChanged ( const QString& ) ) ); + QObject::connect ( edtLocalInputText, &QLineEdit::textChanged, + this, &CChatDlg::OnLocalInputTextTextChanged ); - QObject::connect ( edtLocalInputText, SIGNAL ( returnPressed() ), - this, SLOT ( OnLocalInputTextReturnPressed() ) ); + QObject::connect ( edtLocalInputText, &QLineEdit::returnPressed, + this, &CChatDlg::OnLocalInputTextReturnPressed ); - QObject::connect ( butClear, SIGNAL ( pressed() ), - this, SLOT ( OnClearPressed() ) ); + QObject::connect ( butClear, &QPushButton::pressed, + this, &CChatDlg::OnClearPressed ); } void CChatDlg::OnLocalInputTextTextChanged ( const QString& strNewText ) diff --git a/src/client.cpp b/src/client.cpp index e1b3c419ff..d0e3c58aaa 100755 --- a/src/client.cpp +++ b/src/client.cpp @@ -126,102 +126,83 @@ CClient::CClient ( const quint16 iPortNumber, // Connections ------------------------------------------------------------- // connections for the protocol mechanism - QObject::connect ( &Channel, - SIGNAL ( MessReadyForSending ( CVector ) ), - this, SLOT ( OnSendProtMessage ( CVector ) ) ); + QObject::connect ( &Channel, &CChannel::MessReadyForSending, + this, &CClient::OnSendProtMessage ); - QObject::connect ( &Channel, - SIGNAL ( DetectedCLMessage ( CVector, int, CHostAddress ) ), - this, SLOT ( OnDetectedCLMessage ( CVector, int, CHostAddress ) ) ); + QObject::connect ( &Channel, &CChannel::DetectedCLMessage, + this, &CClient::OnDetectedCLMessage ); - QObject::connect ( &Channel, SIGNAL ( ReqJittBufSize() ), - this, SLOT ( OnReqJittBufSize() ) ); + QObject::connect ( &Channel, &CChannel::ReqJittBufSize, + this, &CClient::OnReqJittBufSize ); - QObject::connect ( &Channel, SIGNAL ( JittBufSizeChanged ( int ) ), - this, SLOT ( OnJittBufSizeChanged ( int ) ) ); + QObject::connect ( &Channel, &CChannel::JittBufSizeChanged, + this, &CClient::OnJittBufSizeChanged ); - QObject::connect ( &Channel, SIGNAL ( ReqChanInfo() ), - this, SLOT ( OnReqChanInfo() ) ); + QObject::connect ( &Channel, &CChannel::ReqChanInfo, + this, &CClient::OnReqChanInfo ); - QObject::connect ( &Channel, - SIGNAL ( ConClientListMesReceived ( CVector ) ), - SIGNAL ( ConClientListMesReceived ( CVector ) ) ); + QObject::connect ( &Channel, &CChannel::ConClientListMesReceived, + this, &CClient::ConClientListMesReceived ); - QObject::connect ( &Channel, - SIGNAL ( Disconnected() ), - SIGNAL ( Disconnected() ) ); + QObject::connect ( &Channel, &CChannel::Disconnected, + this, &CClient::Disconnected ); - QObject::connect ( &Channel, SIGNAL ( NewConnection() ), - this, SLOT ( OnNewConnection() ) ); + QObject::connect ( &Channel, &CChannel::NewConnection, + this, &CClient::OnNewConnection ); - QObject::connect ( &Channel, - SIGNAL ( ChatTextReceived ( QString ) ), - SIGNAL ( ChatTextReceived ( QString ) ) ); + QObject::connect ( &Channel, &CChannel::ChatTextReceived, + this, &CClient::ChatTextReceived ); - QObject::connect ( &Channel, - SIGNAL ( ClientIDReceived ( int ) ), - SIGNAL ( ClientIDReceived ( int ) ) ); + QObject::connect ( &Channel, &CChannel::ClientIDReceived, + this, &CClient::ClientIDReceived ); - QObject::connect ( &Channel, - SIGNAL ( MuteStateHasChangedReceived ( int, bool ) ), - SIGNAL ( MuteStateHasChangedReceived ( int, bool ) ) ); + QObject::connect ( &Channel, &CChannel::MuteStateHasChangedReceived, + this, &CClient::MuteStateHasChangedReceived ); - QObject::connect ( &Channel, - SIGNAL ( LicenceRequired ( ELicenceType ) ), - SIGNAL ( LicenceRequired ( ELicenceType ) ) ); + QObject::connect ( &Channel, &CChannel::LicenceRequired, + this, &CClient::LicenceRequired ); - QObject::connect ( &Channel, - SIGNAL ( VersionAndOSReceived ( COSUtil::EOpSystemType, QString ) ), - SIGNAL ( VersionAndOSReceived ( COSUtil::EOpSystemType, QString ) ) ); + QObject::connect ( &Channel, &CChannel::VersionAndOSReceived, + this, &CClient::VersionAndOSReceived ); - QObject::connect ( &ConnLessProtocol, - SIGNAL ( CLMessReadyForSending ( CHostAddress, CVector ) ), - this, SLOT ( OnSendCLProtMessage ( CHostAddress, CVector ) ) ); + QObject::connect ( &ConnLessProtocol, &CProtocol::CLMessReadyForSending, + this, &CClient::OnSendCLProtMessage ); - QObject::connect ( &ConnLessProtocol, - SIGNAL ( CLServerListReceived ( CHostAddress, CVector ) ), - SIGNAL ( CLServerListReceived ( CHostAddress, CVector ) ) ); + QObject::connect ( &ConnLessProtocol, &CProtocol::CLServerListReceived, + this, &CClient::CLServerListReceived ); - QObject::connect ( &ConnLessProtocol, - SIGNAL ( CLConnClientsListMesReceived ( CHostAddress, CVector ) ), - SIGNAL ( CLConnClientsListMesReceived ( CHostAddress, CVector ) ) ); + QObject::connect ( &ConnLessProtocol, &CProtocol::CLConnClientsListMesReceived, + this, &CClient::CLConnClientsListMesReceived ); - QObject::connect ( &ConnLessProtocol, - SIGNAL ( CLPingReceived ( CHostAddress, int ) ), - this, SLOT ( OnCLPingReceived ( CHostAddress, int ) ) ); + QObject::connect ( &ConnLessProtocol, &CProtocol::CLPingReceived, + this, &CClient::OnCLPingReceived ); - QObject::connect ( &ConnLessProtocol, - SIGNAL ( CLPingWithNumClientsReceived ( CHostAddress, int, int ) ), - this, SLOT ( OnCLPingWithNumClientsReceived ( CHostAddress, int, int ) ) ); + QObject::connect ( &ConnLessProtocol, &CProtocol::CLPingWithNumClientsReceived, + this, &CClient::OnCLPingWithNumClientsReceived ); - QObject::connect ( &ConnLessProtocol, - SIGNAL ( CLDisconnection ( CHostAddress ) ), - this, SLOT ( OnCLDisconnection ( CHostAddress ) ) ); + QObject::connect ( &ConnLessProtocol, &CProtocol::CLDisconnection , + this, &CClient::OnCLDisconnection ); #ifdef ENABLE_CLIENT_VERSION_AND_OS_DEBUGGING - QObject::connect ( &ConnLessProtocol, - SIGNAL ( CLVersionAndOSReceived ( CHostAddress, COSUtil::EOpSystemType, QString ) ), - SIGNAL ( CLVersionAndOSReceived ( CHostAddress, COSUtil::EOpSystemType, QString ) ) ); + QObject::connect ( &ConnLessProtocol, &CProtocol::CLVersionAndOSReceived, + this, &CClient::CLVersionAndOSReceived ); #endif - QObject::connect ( &ConnLessProtocol, - SIGNAL ( CLChannelLevelListReceived ( CHostAddress, CVector ) ), - SIGNAL ( CLChannelLevelListReceived ( CHostAddress, CVector ) ) ); + QObject::connect ( &ConnLessProtocol, &CProtocol::CLChannelLevelListReceived, + this, &CClient::CLChannelLevelListReceived ); // other - QObject::connect ( &Sound, SIGNAL ( ReinitRequest ( int ) ), - this, SLOT ( OnSndCrdReinitRequest ( int ) ) ); + QObject::connect ( &Sound, &CSound::ReinitRequest, + this, &CClient::OnSndCrdReinitRequest ); - QObject::connect ( &Sound, - SIGNAL ( ControllerInFaderLevel ( int, int ) ), - SIGNAL ( ControllerInFaderLevel ( int, int ) ) ); + QObject::connect ( &Sound, &CSound::ControllerInFaderLevel, + this, &CClient::ControllerInFaderLevel ); - QObject::connect ( &Socket, SIGNAL ( InvalidPacketReceived ( CHostAddress ) ), - this, SLOT ( OnInvalidPacketReceived ( CHostAddress ) ) ); + QObject::connect ( &Socket, &CHighPrioSocket::InvalidPacketReceived, + this, &CClient::OnInvalidPacketReceived ); - QObject::connect ( pSignalHandler, - SIGNAL ( HandledSignal ( int ) ), - this, SLOT ( OnHandledSignal ( int ) ) ); + QObject::connect ( pSignalHandler, &CSignalHandler::HandledSignal, + this, &CClient::OnHandledSignal ); // start the socket (it is important to start the socket after all diff --git a/src/clientdlg.cpp b/src/clientdlg.cpp index 159e5ab194..0aa4059f00 100755 --- a/src/clientdlg.cpp +++ b/src/clientdlg.cpp @@ -402,158 +402,143 @@ CClientDlg::CClientDlg ( CClient* pNCliP, // Connections ------------------------------------------------------------- // push buttons - QObject::connect ( butConnect, SIGNAL ( clicked() ), - this, SLOT ( OnConnectDisconBut() ) ); + QObject::connect ( butConnect, &QPushButton::clicked, + this, &CClientDlg::OnConnectDisconBut ); // check boxes - QObject::connect ( chbSettings, SIGNAL ( stateChanged ( int ) ), - this, SLOT ( OnSettingsStateChanged ( int ) ) ); + QObject::connect ( chbSettings, &QCheckBox::stateChanged, + this, &CClientDlg::OnSettingsStateChanged ); - QObject::connect ( chbChat, SIGNAL ( stateChanged ( int ) ), - this, SLOT ( OnChatStateChanged ( int ) ) ); + QObject::connect ( chbChat, &QCheckBox::stateChanged, + this, &CClientDlg::OnChatStateChanged ); - QObject::connect ( chbLocalMute, SIGNAL ( stateChanged ( int ) ), - this, SLOT ( OnLocalMuteStateChanged ( int ) ) ); + QObject::connect ( chbLocalMute, &QCheckBox::stateChanged, + this, &CClientDlg::OnLocalMuteStateChanged ); // timers - QObject::connect ( &TimerSigMet, SIGNAL ( timeout() ), - this, SLOT ( OnTimerSigMet() ) ); + QObject::connect ( &TimerSigMet, &QTimer::timeout, + this, &CClientDlg::OnTimerSigMet ); - QObject::connect ( &TimerBuffersLED, SIGNAL ( timeout() ), - this, SLOT ( OnTimerBuffersLED() ) ); + QObject::connect ( &TimerBuffersLED, &QTimer::timeout, + this, &CClientDlg::OnTimerBuffersLED ); - QObject::connect ( &TimerStatus, SIGNAL ( timeout() ), - this, SLOT ( OnTimerStatus() ) ); + QObject::connect ( &TimerStatus, &QTimer::timeout, + this, &CClientDlg::OnTimerStatus ); - QObject::connect ( &TimerPing, SIGNAL ( timeout() ), - this, SLOT ( OnTimerPing() ) ); + QObject::connect ( &TimerPing, &QTimer::timeout, + this, &CClientDlg::OnTimerPing ); // sliders - QObject::connect ( sldAudioPan, SIGNAL ( valueChanged ( int ) ), - this, SLOT ( OnAudioPanValueChanged ( int ) ) ); + QObject::connect ( sldAudioPan, &QSlider::valueChanged, + this, &CClientDlg::OnAudioPanValueChanged ); - QObject::connect ( sldAudioReverb, SIGNAL ( valueChanged ( int ) ), - this, SLOT ( OnAudioReverbValueChanged ( int ) ) ); + QObject::connect ( sldAudioReverb, &QSlider::valueChanged, + this, &CClientDlg::OnAudioReverbValueChanged ); // radio buttons - QObject::connect ( rbtReverbSelL, SIGNAL ( clicked() ), - this, SLOT ( OnReverbSelLClicked() ) ); + QObject::connect ( rbtReverbSelL, &QRadioButton::clicked, + this, &CClientDlg::OnReverbSelLClicked ); - QObject::connect ( rbtReverbSelR, SIGNAL ( clicked() ), - this, SLOT ( OnReverbSelRClicked() ) ); + QObject::connect ( rbtReverbSelR, &QRadioButton::clicked, + this, &CClientDlg::OnReverbSelRClicked ); // other - QObject::connect ( pClient, - SIGNAL ( ConClientListMesReceived ( CVector ) ), - this, SLOT ( OnConClientListMesReceived ( CVector ) ) ); + QObject::connect ( pClient, &CClient::ConClientListMesReceived, + this, &CClientDlg::OnConClientListMesReceived ); - QObject::connect ( pClient, - SIGNAL ( Disconnected() ), - this, SLOT ( OnDisconnected() ) ); + QObject::connect ( pClient, &CClient::Disconnected, + this, &CClientDlg::OnDisconnected ); - QObject::connect ( pClient, - SIGNAL ( CentralServerAddressTypeChanged() ), - this, SLOT ( OnCentralServerAddressTypeChanged() ) ); + QObject::connect ( pClient, &CClient::CentralServerAddressTypeChanged, + this, &CClientDlg::OnCentralServerAddressTypeChanged ); - QObject::connect ( pClient, - SIGNAL ( ChatTextReceived ( QString ) ), - this, SLOT ( OnChatTextReceived ( QString ) ) ); + QObject::connect ( pClient, &CClient::ChatTextReceived, + this, &CClientDlg::OnChatTextReceived ); - QObject::connect ( pClient, - SIGNAL ( ClientIDReceived ( int ) ), - this, SLOT ( OnClientIDReceived ( int ) ) ); + QObject::connect ( pClient, &CClient::ClientIDReceived, + this, &CClientDlg::OnClientIDReceived ); - QObject::connect ( pClient, - SIGNAL ( MuteStateHasChangedReceived ( int, bool ) ), - this, SLOT ( OnMuteStateHasChangedReceived ( int, bool ) ) ); + QObject::connect ( pClient, &CClient::MuteStateHasChangedReceived, + this, &CClientDlg::OnMuteStateHasChangedReceived ); // This connection is a special case. On receiving a licence required message via the // protocol, a modal licence dialog is opened. Since this blocks the thread, we need // a queued connection to make sure the core protocol mechanism is not blocked, too. qRegisterMetaType ( "ELicenceType" ); - QObject::connect ( pClient, - SIGNAL ( LicenceRequired ( ELicenceType ) ), - this, SLOT ( OnLicenceRequired ( ELicenceType ) ), Qt::QueuedConnection ); + QObject::connect ( pClient, &CClient::LicenceRequired, + this, &CClientDlg::OnLicenceRequired, Qt::QueuedConnection ); - QObject::connect ( pClient, - SIGNAL ( PingTimeReceived ( int ) ), - this, SLOT ( OnPingTimeResult ( int ) ) ); + QObject::connect ( pClient, &CClient::PingTimeReceived, + this, &CClientDlg::OnPingTimeResult ); - QObject::connect ( pClient, - SIGNAL ( CLServerListReceived ( CHostAddress, CVector ) ), - this, SLOT ( OnCLServerListReceived ( CHostAddress, CVector ) ) ); + QObject::connect ( pClient, &CClient::CLServerListReceived, + this, &CClientDlg::OnCLServerListReceived ); - QObject::connect ( pClient, - SIGNAL ( CLConnClientsListMesReceived ( CHostAddress, CVector ) ), - this, SLOT ( OnCLConnClientsListMesReceived ( CHostAddress, CVector ) ) ); + QObject::connect ( pClient, &CClient::CLConnClientsListMesReceived, + this, &CClientDlg::OnCLConnClientsListMesReceived ); - QObject::connect ( pClient, - SIGNAL ( CLPingTimeWithNumClientsReceived ( CHostAddress, int, int ) ), - this, SLOT ( OnCLPingTimeWithNumClientsReceived ( CHostAddress, int, int ) ) ); + QObject::connect ( pClient, &CClient::CLPingTimeWithNumClientsReceived, + this, &CClientDlg::OnCLPingTimeWithNumClientsReceived ); - QObject::connect ( pClient, - SIGNAL ( ControllerInFaderLevel ( int, int ) ), - this, SLOT ( OnControllerInFaderLevel ( int, int ) ) ); + QObject::connect ( pClient, &CClient::ControllerInFaderLevel, + this, &CClientDlg::OnControllerInFaderLevel ); - QObject::connect ( pClient, - SIGNAL ( CLChannelLevelListReceived ( CHostAddress, CVector ) ), - this, SLOT ( OnCLChannelLevelListReceived ( CHostAddress, CVector ) ) ); + QObject::connect ( pClient, &CClient::CLChannelLevelListReceived, + this, &CClientDlg::OnCLChannelLevelListReceived ); - QObject::connect ( pClient, - SIGNAL ( VersionAndOSReceived ( COSUtil::EOpSystemType, QString ) ), - this, SLOT ( OnVersionAndOSReceived ( COSUtil::EOpSystemType, QString ) ) ); + QObject::connect ( pClient, &CClient::VersionAndOSReceived, + this, &CClientDlg::OnVersionAndOSReceived ); #ifdef ENABLE_CLIENT_VERSION_AND_OS_DEBUGGING - QObject::connect ( pClient, - SIGNAL ( CLVersionAndOSReceived ( CHostAddress, COSUtil::EOpSystemType, QString ) ), - this, SLOT ( OnCLVersionAndOSReceived ( CHostAddress, COSUtil::EOpSystemType, QString ) ) ); + QObject::connect ( pClient, &CClient::CLVersionAndOSReceived, + this, &CClientDlg::OnCLVersionAndOSReceived ); #endif - QObject::connect ( QCoreApplication::instance(), SIGNAL ( aboutToQuit() ), - this, SLOT ( OnAboutToQuit() ) ); + QObject::connect ( QCoreApplication::instance(), &QCoreApplication::aboutToQuit, + this, &CClientDlg::OnAboutToQuit ); - QObject::connect ( &ClientSettingsDlg, SIGNAL ( GUIDesignChanged() ), - this, SLOT ( OnGUIDesignChanged() ) ); + QObject::connect ( &ClientSettingsDlg, &CClientSettingsDlg::GUIDesignChanged, + this, &CClientDlg::OnGUIDesignChanged ); - QObject::connect ( &ClientSettingsDlg, SIGNAL ( DisplayChannelLevelsChanged() ), - this, SLOT ( OnDisplayChannelLevelsChanged() ) ); + QObject::connect ( &ClientSettingsDlg, &CClientSettingsDlg::DisplayChannelLevelsChanged, + this, &CClientDlg::OnDisplayChannelLevelsChanged ); - QObject::connect ( &ClientSettingsDlg, SIGNAL ( AudioChannelsChanged() ), - this, SLOT ( OnAudioChannelsChanged() ) ); + QObject::connect ( &ClientSettingsDlg, &CClientSettingsDlg::AudioChannelsChanged, + this, &CClientDlg::OnAudioChannelsChanged ); - QObject::connect ( &ClientSettingsDlg, SIGNAL ( NewClientLevelChanged() ), - this, SLOT ( OnNewClientLevelChanged() ) ); + QObject::connect ( &ClientSettingsDlg, &CClientSettingsDlg::NewClientLevelChanged, + this, &CClientDlg::OnNewClientLevelChanged ); - QObject::connect ( MainMixerBoard, SIGNAL ( ChangeChanGain ( int, double, bool ) ), - this, SLOT ( OnChangeChanGain ( int, double, bool ) ) ); + QObject::connect ( MainMixerBoard, &CAudioMixerBoard::ChangeChanGain, + this, &CClientDlg::OnChangeChanGain ); - QObject::connect ( MainMixerBoard, SIGNAL ( ChangeChanPan ( int, double ) ), - this, SLOT ( OnChangeChanPan ( int, double ) ) ); + QObject::connect ( MainMixerBoard, &CAudioMixerBoard::ChangeChanPan, + this, &CClientDlg::OnChangeChanPan ); - QObject::connect ( MainMixerBoard, SIGNAL ( NumClientsChanged ( int ) ), - this, SLOT ( OnNumClientsChanged ( int ) ) ); + QObject::connect ( MainMixerBoard, &CAudioMixerBoard::NumClientsChanged, + this, &CClientDlg::OnNumClientsChanged ); - QObject::connect ( &ChatDlg, SIGNAL ( NewLocalInputText ( QString ) ), - this, SLOT ( OnNewLocalInputText ( QString ) ) ); + QObject::connect ( &ChatDlg, &CChatDlg::NewLocalInputText, + this, &CClientDlg::OnNewLocalInputText ); - QObject::connect ( &ConnectDlg, SIGNAL ( ReqServerListQuery ( CHostAddress ) ), - this, SLOT ( OnReqServerListQuery ( CHostAddress ) ) ); + QObject::connect ( &ConnectDlg, &CConnectDlg::ReqServerListQuery, + this, &CClientDlg::OnReqServerListQuery ); // note that this connection must be a queued connection, otherwise the server list ping // times are not accurate and the client list may not be retrieved for all servers listed // (it seems the sendto() function needs to be called from different threads to fire the // packet immediately and do not collect packets before transmitting) - QObject::connect ( &ConnectDlg, SIGNAL ( CreateCLServerListPingMes ( CHostAddress ) ), - this, SLOT ( OnCreateCLServerListPingMes ( CHostAddress ) ), Qt::QueuedConnection ); + QObject::connect ( &ConnectDlg, &CConnectDlg::CreateCLServerListPingMes, + this, &CClientDlg::OnCreateCLServerListPingMes, Qt::QueuedConnection ); - QObject::connect ( &ConnectDlg, SIGNAL ( CreateCLServerListReqVerAndOSMes ( CHostAddress ) ), - this, SLOT ( OnCreateCLServerListReqVerAndOSMes ( CHostAddress ) ) ); + QObject::connect ( &ConnectDlg, &CConnectDlg::CreateCLServerListReqVerAndOSMes, + this, &CClientDlg::OnCreateCLServerListReqVerAndOSMes ); - QObject::connect ( &ConnectDlg, SIGNAL ( CreateCLServerListReqConnClientsListMes ( CHostAddress ) ), - this, SLOT ( OnCreateCLServerListReqConnClientsListMes ( CHostAddress ) ) ); + QObject::connect ( &ConnectDlg, &CConnectDlg::CreateCLServerListReqConnClientsListMes, + this, &CClientDlg::OnCreateCLServerListReqConnClientsListMes ); - QObject::connect ( &ConnectDlg, SIGNAL ( accepted() ), - this, SLOT ( OnConnectDlgAccepted() ) ); + QObject::connect ( &ConnectDlg, &CConnectDlg::accepted, + this, &CClientDlg::OnConnectDlgAccepted ); // Initializations which have to be done after the signals are connected --- From bb0c3a03c5075346dd10478c4e013d579782de73 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 6 Jun 2020 17:21:38 +0200 Subject: [PATCH 107/936] merge fix --- ChangeLog | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 77efbdde4d..bae06e9291 100644 --- a/ChangeLog +++ b/ChangeLog @@ -8,6 +8,8 @@ - enable/disable recording from command line, coded by pljones (#228) +- add Audacity "list of files" writer to jam recorder, by pljones (#315) + - make level meter LED black when off, by fleutot (#318) - added ukulele/bass ukulele instrument icons created by dos1 (#319) @@ -21,7 +23,6 @@ - bug fix: on MacOS declare an activity to ensure the process doesn't get throttled by OS level Nap, Sleep, and Thread Priority systems, coded by AronVietti (#23) -- add Audacity "list of files" writer to jam recorder, by pljones (#315) From 8edb3185b0f1510930f3cf65211da480a14a3e40 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 6 Jun 2020 22:15:33 +0200 Subject: [PATCH 108/936] using Qt5 connections instead of the old Qt4 ones (just a subset converted right now, more TODO) --- src/clientsettingsdlg.cpp | 40 +++++++++---------- src/connectdlg.cpp | 44 ++++++++++----------- src/historygraph.cpp | 8 ++-- src/protocol.cpp | 4 +- src/server.cpp | 83 ++++++++++++++++----------------------- src/serverdlg.cpp | 64 +++++++++++++++--------------- src/serverlist.cpp | 20 +++++----- src/socket.cpp | 31 ++++++--------- src/socket.h | 5 +-- src/testbench.h | 13 +++--- src/util.cpp | 24 +++++------ 11 files changed, 156 insertions(+), 180 deletions(-) diff --git a/src/clientsettingsdlg.cpp b/src/clientsettingsdlg.cpp index 51b95b3e30..50e24e33a6 100755 --- a/src/clientsettingsdlg.cpp +++ b/src/clientsettingsdlg.cpp @@ -369,35 +369,35 @@ CClientSettingsDlg::CClientSettingsDlg ( CClient* pNCliP, QWidget* parent, // Connections ------------------------------------------------------------- // timers - QObject::connect ( &TimerStatus, SIGNAL ( timeout() ), - this, SLOT ( OnTimerStatus() ) ); + QObject::connect ( &TimerStatus, &QTimer::timeout, + this, &CClientSettingsDlg::OnTimerStatus ); // slider controls - QObject::connect ( sldNetBuf, SIGNAL ( valueChanged ( int ) ), - this, SLOT ( OnNetBufValueChanged ( int ) ) ); + QObject::connect ( sldNetBuf, &QSlider::valueChanged, + this, &CClientSettingsDlg::OnNetBufValueChanged ); - QObject::connect ( sldNetBufServer, SIGNAL ( valueChanged ( int ) ), - this, SLOT ( OnNetBufServerValueChanged ( int ) ) ); + QObject::connect ( sldNetBufServer, &QSlider::valueChanged, + this, &CClientSettingsDlg::OnNetBufServerValueChanged ); // check boxes - QObject::connect ( chbGUIDesignFancy, SIGNAL ( stateChanged ( int ) ), - this, SLOT ( OnGUIDesignFancyStateChanged ( int ) ) ); + QObject::connect ( chbGUIDesignFancy, &QCheckBox::stateChanged, + this, &CClientSettingsDlg::OnGUIDesignFancyStateChanged ); - QObject::connect ( chbDisplayChannelLevels, SIGNAL ( stateChanged ( int ) ), - this, SLOT ( OnDisplayChannelLevelsStateChanged ( int ) ) ); + QObject::connect ( chbDisplayChannelLevels, &QCheckBox::stateChanged, + this, &CClientSettingsDlg::OnDisplayChannelLevelsStateChanged ); - QObject::connect ( chbAutoJitBuf, SIGNAL ( stateChanged ( int ) ), - this, SLOT ( OnAutoJitBufStateChanged ( int ) ) ); + QObject::connect ( chbAutoJitBuf, &QCheckBox::stateChanged, + this, &CClientSettingsDlg::OnAutoJitBufStateChanged ); - QObject::connect ( chbEnableOPUS64, SIGNAL ( stateChanged ( int ) ), - this, SLOT ( OnEnableOPUS64StateChanged ( int ) ) ); + QObject::connect ( chbEnableOPUS64, &QCheckBox::stateChanged, + this, &CClientSettingsDlg::OnEnableOPUS64StateChanged ); // line edits - QObject::connect ( edtCentralServerAddress, SIGNAL ( editingFinished() ), - this, SLOT ( OnCentralServerAddressEditingFinished() ) ); + QObject::connect ( edtCentralServerAddress, &QLineEdit::editingFinished, + this, &CClientSettingsDlg::OnCentralServerAddressEditingFinished ); - QObject::connect ( edtNewClientLevel, SIGNAL ( editingFinished() ), - this, SLOT ( OnNewClientLevelEditingFinished() ) ); + QObject::connect ( edtNewClientLevel, &QLineEdit::editingFinished, + this, &CClientSettingsDlg::OnNewClientLevelEditingFinished ); // combo boxes QObject::connect ( cbxSoundcard, SIGNAL ( activated ( int ) ), @@ -422,8 +422,8 @@ CClientSettingsDlg::CClientSettingsDlg ( CClient* pNCliP, QWidget* parent, this, SLOT ( OnAudioQualityActivated ( int ) ) ); // buttons - QObject::connect ( butDriverSetup, SIGNAL ( clicked() ), - this, SLOT ( OnDriverSetupClicked() ) ); + QObject::connect ( butDriverSetup, &QPushButton::clicked, + this, &CClientSettingsDlg::OnDriverSetupClicked ); // misc QObject::connect ( &SndCrdBufferDelayButtonGroup, diff --git a/src/connectdlg.cpp b/src/connectdlg.cpp index a711f40abd..6e716a4b82 100755 --- a/src/connectdlg.cpp +++ b/src/connectdlg.cpp @@ -151,46 +151,44 @@ CConnectDlg::CConnectDlg ( CClient* pNCliP, // Connections ------------------------------------------------------------- // list view - QObject::connect ( lvwServers, - SIGNAL ( itemSelectionChanged() ), - this, SLOT ( OnServerListItemSelectionChanged() ) ); + QObject::connect ( lvwServers, &QTreeWidget::itemSelectionChanged, + this, &CConnectDlg::OnServerListItemSelectionChanged ); - QObject::connect ( lvwServers, - SIGNAL ( itemDoubleClicked ( QTreeWidgetItem*, int ) ), - this, SLOT ( OnServerListItemDoubleClicked ( QTreeWidgetItem*, int ) ) ); + QObject::connect ( lvwServers, &QTreeWidget::itemDoubleClicked, + this, &CConnectDlg::OnServerListItemDoubleClicked ); - QObject::connect ( lvwServers, // to get default return key behaviour working - SIGNAL ( activated ( QModelIndex ) ), - this, SLOT ( OnConnectClicked() ) ); + // to get default return key behaviour working + QObject::connect ( lvwServers, &QTreeWidget::activated, + this, &CConnectDlg::OnConnectClicked ); // line edit - QObject::connect ( edtFilter, SIGNAL ( textEdited ( const QString& ) ), - this, SLOT ( OnFilterTextEdited ( const QString& ) ) ); + QObject::connect ( edtFilter, &QLineEdit::textEdited, + this, &CConnectDlg::OnFilterTextEdited ); // combo boxes - QObject::connect ( cbxServerAddr, SIGNAL ( editTextChanged ( const QString& ) ), - this, SLOT ( OnServerAddrEditTextChanged ( const QString& ) ) ); + QObject::connect ( cbxServerAddr, &QComboBox::editTextChanged, + this, &CConnectDlg::OnServerAddrEditTextChanged ); QObject::connect ( cbxCentServAddrType, SIGNAL ( activated ( int ) ), this, SLOT ( OnCentServAddrTypeChanged ( int ) ) ); // check boxes - QObject::connect ( chbExpandAll, SIGNAL ( stateChanged ( int ) ), - this, SLOT ( OnExpandAllStateChanged ( int ) ) ); + QObject::connect ( chbExpandAll, &QCheckBox::stateChanged, + this, &CConnectDlg::OnExpandAllStateChanged ); // buttons - QObject::connect ( butCancel, SIGNAL ( clicked() ), - this, SLOT ( close() ) ); + QObject::connect ( butCancel, &QPushButton::clicked, + this, &CConnectDlg::close ); - QObject::connect ( butConnect, SIGNAL ( clicked() ), - this, SLOT ( OnConnectClicked() ) ); + QObject::connect ( butConnect, &QPushButton::clicked, + this, &CConnectDlg::OnConnectClicked ); // timers - QObject::connect ( &TimerPing, SIGNAL ( timeout() ), - this, SLOT ( OnTimerPing() ) ); + QObject::connect ( &TimerPing, &QTimer::timeout, + this, &CConnectDlg::OnTimerPing ); - QObject::connect ( &TimerReRequestServList, SIGNAL ( timeout() ), - this, SLOT ( OnTimerReRequestServList() ) ); + QObject::connect ( &TimerReRequestServList, &QTimer::timeout, + this, &CConnectDlg::OnTimerReRequestServList ); } void CConnectDlg::Init ( const CVector& vstrIPAddresses ) diff --git a/src/historygraph.cpp b/src/historygraph.cpp index 175e9de243..eed8ffcabc 100644 --- a/src/historygraph.cpp +++ b/src/historygraph.cpp @@ -350,8 +350,8 @@ CJpegHistoryGraph::CJpegHistoryGraph ( const int iMaxDaysHistory ) : // Connections ------------------------------------------------------------- - QObject::connect ( &TimerDailyUpdate, SIGNAL ( timeout() ), - this, SLOT ( OnTimerDailyUpdate() ) ); + QObject::connect ( &TimerDailyUpdate, &QTimer::timeout, + this, &CJpegHistoryGraph::OnTimerDailyUpdate ); } // Override Update to blank out the plot area each time @@ -426,8 +426,8 @@ CSvgHistoryGraph::CSvgHistoryGraph ( const int iMaxDaysHistory ) : // Connections ------------------------------------------------------------- - QObject::connect ( &TimerDailyUpdate, SIGNAL ( timeout() ), - this, SLOT ( OnTimerDailyUpdate() ) ); + QObject::connect ( &TimerDailyUpdate, &QTimer::timeout, + this, &CSvgHistoryGraph::OnTimerDailyUpdate ); } // Override Update to create the fresh SVG stream each time diff --git a/src/protocol.cpp b/src/protocol.cpp index 50be6eb572..e72d171efa 100755 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -389,8 +389,8 @@ CProtocol::CProtocol() // Connections ------------------------------------------------------------- - QObject::connect ( &TimerSendMess, SIGNAL ( timeout() ), - this, SLOT ( OnTimerSendMess() ) ); + QObject::connect ( &TimerSendMess, &QTimer::timeout, + this, &CProtocol::OnTimerSendMess ); } void CProtocol::Reset() diff --git a/src/server.cpp b/src/server.cpp index fa25b69448..0945fe43ff 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -417,68 +417,53 @@ CServer::CServer ( const int iNewMaxNumChan, // Connections ------------------------------------------------------------- // connect timer timeout signal - QObject::connect ( &HighPrecisionTimer, SIGNAL ( timeout() ), - this, SLOT ( OnTimer() ) ); + QObject::connect ( &HighPrecisionTimer, &CHighPrecisionTimer::timeout, + this, &CServer::OnTimer ); - QObject::connect ( &ConnLessProtocol, - SIGNAL ( CLMessReadyForSending ( CHostAddress, CVector ) ), - this, SLOT ( OnSendCLProtMessage ( CHostAddress, CVector ) ) ); + QObject::connect ( &ConnLessProtocol, &CProtocol::CLMessReadyForSending, + this, &CServer::OnSendCLProtMessage ); - QObject::connect ( &ConnLessProtocol, - SIGNAL ( CLPingReceived ( CHostAddress, int ) ), - this, SLOT ( OnCLPingReceived ( CHostAddress, int ) ) ); + QObject::connect ( &ConnLessProtocol, &CProtocol::CLPingReceived, + this, &CServer::OnCLPingReceived ); - QObject::connect ( &ConnLessProtocol, - SIGNAL ( CLPingWithNumClientsReceived ( CHostAddress, int, int ) ), - this, SLOT ( OnCLPingWithNumClientsReceived ( CHostAddress, int, int ) ) ); + QObject::connect ( &ConnLessProtocol, &CProtocol::CLPingWithNumClientsReceived, + this, &CServer::OnCLPingWithNumClientsReceived ); - QObject::connect ( &ConnLessProtocol, - SIGNAL ( CLRegisterServerReceived ( CHostAddress, CHostAddress, CServerCoreInfo ) ), - this, SLOT ( OnCLRegisterServerReceived ( CHostAddress, CHostAddress, CServerCoreInfo ) ) ); + QObject::connect ( &ConnLessProtocol, &CProtocol::CLRegisterServerReceived, + this, &CServer::OnCLRegisterServerReceived ); - QObject::connect ( &ConnLessProtocol, - SIGNAL ( CLUnregisterServerReceived ( CHostAddress ) ), - this, SLOT ( OnCLUnregisterServerReceived ( CHostAddress ) ) ); + QObject::connect ( &ConnLessProtocol, &CProtocol::CLUnregisterServerReceived, + this, &CServer::OnCLUnregisterServerReceived ); - QObject::connect ( &ConnLessProtocol, - SIGNAL ( CLReqServerList ( CHostAddress ) ), - this, SLOT ( OnCLReqServerList ( CHostAddress ) ) ); + QObject::connect ( &ConnLessProtocol, &CProtocol::CLReqServerList, + this, &CServer::OnCLReqServerList ); - QObject::connect ( &ConnLessProtocol, - SIGNAL ( CLRegisterServerResp ( CHostAddress, ESvrRegResult ) ), - this, SLOT ( OnCLRegisterServerResp ( CHostAddress, ESvrRegResult ) ) ); + QObject::connect ( &ConnLessProtocol, &CProtocol::CLRegisterServerResp, + this, &CServer::OnCLRegisterServerResp ); - QObject::connect ( &ConnLessProtocol, - SIGNAL ( CLSendEmptyMes ( CHostAddress ) ), - this, SLOT ( OnCLSendEmptyMes ( CHostAddress ) ) ); + QObject::connect ( &ConnLessProtocol, &CProtocol::CLSendEmptyMes, + this, &CServer::OnCLSendEmptyMes ); - QObject::connect ( &ConnLessProtocol, - SIGNAL ( CLDisconnection ( CHostAddress ) ), - this, SLOT ( OnCLDisconnection ( CHostAddress ) ) ); + QObject::connect ( &ConnLessProtocol, &CProtocol::CLDisconnection, + this, &CServer::OnCLDisconnection ); - QObject::connect ( &ConnLessProtocol, - SIGNAL ( CLReqVersionAndOS ( CHostAddress ) ), - this, SLOT ( OnCLReqVersionAndOS ( CHostAddress ) ) ); + QObject::connect ( &ConnLessProtocol, &CProtocol::CLReqVersionAndOS, + this, &CServer::OnCLReqVersionAndOS ); - QObject::connect ( &ConnLessProtocol, - SIGNAL ( CLReqConnClientsList ( CHostAddress ) ), - this, SLOT ( OnCLReqConnClientsList ( CHostAddress ) ) ); + QObject::connect ( &ConnLessProtocol, &CProtocol::CLReqConnClientsList, + this, &CServer::OnCLReqConnClientsList ); - QObject::connect ( &ServerListManager, - SIGNAL ( SvrRegStatusChanged() ), - SIGNAL ( SvrRegStatusChanged() ) ); + QObject::connect ( &ServerListManager, &CServerListManager::SvrRegStatusChanged, + this, &CServer::SvrRegStatusChanged ); - QObject::connect( &JamRecorder, - SIGNAL ( RecordingSessionStarted ( QString ) ), - SIGNAL ( RecordingSessionStarted ( QString ) ) ); + QObject::connect( &JamRecorder, &recorder::CJamRecorder::RecordingSessionStarted, + this, &CServer::RecordingSessionStarted ); - QObject::connect ( QCoreApplication::instance(), - SIGNAL ( aboutToQuit() ), - this, SLOT ( OnAboutToQuit() ) ); + QObject::connect ( QCoreApplication::instance(), &QCoreApplication::aboutToQuit, + this, &CServer::OnAboutToQuit ); - QObject::connect ( pSignalHandler, - SIGNAL ( HandledSignal ( int ) ), - this, SLOT ( OnHandledSignal ( int ) ) ); + QObject::connect ( pSignalHandler, &CSignalHandler::HandledSignal, + this, &CServer::OnHandledSignal ); connectChannelSignalsToServerSlots(); @@ -532,10 +517,10 @@ inline void CServer::connectChannelSignalsToServerSlots() this, pOnServerAutoSockBufSizeChangeCh ); connectChannelSignalsToServerSlots(); -}; +} template<> -inline void CServer::connectChannelSignalsToServerSlots<0>() {}; +inline void CServer::connectChannelSignalsToServerSlots<0>() {} void CServer::CreateAndSendJitBufMessage ( const int iCurChanID, const int iNNumFra ) diff --git a/src/serverdlg.cpp b/src/serverdlg.cpp index 72ab904e86..3b6c9c0bad 100755 --- a/src/serverdlg.cpp +++ b/src/serverdlg.cpp @@ -334,27 +334,27 @@ lvwClients->setMinimumHeight ( 140 ); // Connections ------------------------------------------------------------- // check boxes - QObject::connect ( chbRegisterServer, SIGNAL ( stateChanged ( int ) ), - this, SLOT ( OnRegisterServerStateChanged ( int ) ) ); + QObject::connect ( chbRegisterServer, &QCheckBox::stateChanged, + this, &CServerDlg::OnRegisterServerStateChanged ); - QObject::connect ( chbStartOnOSStart, SIGNAL ( stateChanged ( int ) ), - this, SLOT ( OnStartOnOSStartStateChanged ( int ) ) ); + QObject::connect ( chbStartOnOSStart, &QCheckBox::stateChanged, + this, &CServerDlg::OnStartOnOSStartStateChanged ); - QObject::connect ( chbUseCCLicence, SIGNAL ( stateChanged ( int ) ), - this, SLOT ( OnUseCCLicenceStateChanged ( int ) ) ); + QObject::connect ( chbUseCCLicence, &QCheckBox::stateChanged, + this, &CServerDlg::OnUseCCLicenceStateChanged ); - QObject::connect ( chbEnableRecorder, SIGNAL ( stateChanged ( int ) ), - this, SLOT ( OnEnableRecorderStateChanged ( int ) ) ); + QObject::connect ( chbEnableRecorder, &QCheckBox::stateChanged, + this, &CServerDlg::OnEnableRecorderStateChanged ); // line edits - QObject::connect ( edtCentralServerAddress, SIGNAL ( editingFinished() ), - this, SLOT ( OnCentralServerAddressEditingFinished() ) ); + QObject::connect ( edtCentralServerAddress, &QLineEdit::editingFinished, + this, &CServerDlg::OnCentralServerAddressEditingFinished ); - QObject::connect ( edtServerName, SIGNAL ( textChanged ( const QString& ) ), - this, SLOT ( OnServerNameTextChanged ( const QString& ) ) ); + QObject::connect ( edtServerName, &QLineEdit::textChanged, + this, &CServerDlg::OnServerNameTextChanged ); - QObject::connect ( edtLocationCity, SIGNAL ( textChanged ( const QString& ) ), - this, SLOT ( OnLocationCityTextChanged ( const QString& ) ) ); + QObject::connect ( edtLocationCity, &QLineEdit::textChanged, + this, &CServerDlg::OnLocationCityTextChanged ); // combo boxes QObject::connect ( cbxLocationCountry, SIGNAL ( activated ( int ) ), @@ -364,34 +364,34 @@ lvwClients->setMinimumHeight ( 140 ); this, SLOT ( OnCentServAddrTypeActivated ( int ) ) ); // push buttons - QObject::connect ( pbtNewRecording, SIGNAL ( released() ), - this, SLOT ( OnNewRecordingClicked() ) ); + QObject::connect ( pbtNewRecording, &QPushButton::released, + this, &CServerDlg::OnNewRecordingClicked ); // timers - QObject::connect ( &Timer, SIGNAL ( timeout() ), this, SLOT ( OnTimer() ) ); + QObject::connect ( &Timer, &QTimer::timeout, + this, &CServerDlg::OnTimer ); // other - QObject::connect ( pServer, SIGNAL ( Started() ), - this, SLOT ( OnServerStarted() ) ); + QObject::connect ( pServer, &CServer::Started, + this, &CServerDlg::OnServerStarted ); - QObject::connect ( pServer, SIGNAL ( Stopped() ), - this, SLOT ( OnServerStopped() ) ); + QObject::connect ( pServer, &CServer::Stopped, + this, &CServerDlg::OnServerStopped ); - QObject::connect ( pServer, SIGNAL ( SvrRegStatusChanged() ), - this, SLOT ( OnSvrRegStatusChanged() ) ); + QObject::connect ( pServer, &CServer::SvrRegStatusChanged, + this, &CServerDlg::OnSvrRegStatusChanged ); - QObject::connect ( pServer, SIGNAL ( RecordingSessionStarted ( QString ) ), - this, SLOT ( OnRecordingSessionStarted ( QString ) ) ); + QObject::connect ( pServer, &CServer::RecordingSessionStarted, + this, &CServerDlg::OnRecordingSessionStarted ); - QObject::connect ( pServer, SIGNAL ( StopRecorder() ), - this, SLOT ( OnStopRecorder() ) ); + QObject::connect ( pServer, &CServer::StopRecorder, + this, &CServerDlg::OnStopRecorder ); - QObject::connect ( QCoreApplication::instance(), SIGNAL ( aboutToQuit() ), - this, SLOT ( OnAboutToQuit() ) ); + QObject::connect ( QCoreApplication::instance(), &QCoreApplication::aboutToQuit, + this, &CServerDlg::OnAboutToQuit ); - QObject::connect ( &SystemTrayIcon, - SIGNAL ( activated ( QSystemTrayIcon::ActivationReason ) ), - this, SLOT ( OnSysTrayActivated ( QSystemTrayIcon::ActivationReason ) ) ); + QObject::connect ( &SystemTrayIcon, &QSystemTrayIcon::activated, + this, &CServerDlg::OnSysTrayActivated ); // Timers ------------------------------------------------------------------ diff --git a/src/serverlist.cpp b/src/serverlist.cpp index 1d8e1a482b..2ef745c160 100755 --- a/src/serverlist.cpp +++ b/src/serverlist.cpp @@ -173,20 +173,20 @@ CServerListManager::CServerListManager ( const quint16 iNPortNum, // Connections ------------------------------------------------------------- - QObject::connect ( &TimerPollList, SIGNAL ( timeout() ), - this, SLOT ( OnTimerPollList() ) ); + QObject::connect ( &TimerPollList, &QTimer::timeout, + this, &CServerListManager::OnTimerPollList ); - QObject::connect ( &TimerPingServerInList, SIGNAL ( timeout() ), - this, SLOT ( OnTimerPingServerInList() ) ); + QObject::connect ( &TimerPingServerInList, &QTimer::timeout, + this, &CServerListManager::OnTimerPingServerInList ); - QObject::connect ( &TimerPingCentralServer, SIGNAL ( timeout() ), - this, SLOT ( OnTimerPingCentralServer() ) ); + QObject::connect ( &TimerPingCentralServer, &QTimer::timeout, + this, &CServerListManager::OnTimerPingCentralServer ); - QObject::connect ( &TimerRegistering, SIGNAL ( timeout() ), - this, SLOT ( OnTimerRegistering() ) ); + QObject::connect ( &TimerRegistering, &QTimer::timeout, + this, &CServerListManager::OnTimerRegistering ); - QObject::connect ( &TimerCLRegisterServerResp, SIGNAL ( timeout() ), - this, SLOT ( OnTimerCLRegisterServerResp() ) ); + QObject::connect ( &TimerCLRegisterServerResp, &QTimer::timeout, + this, &CServerListManager::OnTimerCLRegisterServerResp ); } void CServerListManager::SetCentralServerAddress ( const QString sNCentServAddr ) diff --git a/src/socket.cpp b/src/socket.cpp index ebcddb5d5a..b87f9d5fe0 100755 --- a/src/socket.cpp +++ b/src/socket.cpp @@ -111,37 +111,30 @@ void CSocket::Init ( const quint16 iPortNumber ) { // client connections: - QObject::connect ( this, - SIGNAL ( ProtcolMessageReceived ( int, int, CVector, CHostAddress ) ), - pChannel, SLOT ( OnProtcolMessageReceived ( int, int, CVector, CHostAddress ) ) ); + QObject::connect ( this, &CSocket::ProtcolMessageReceived, + pChannel, &CChannel::OnProtcolMessageReceived ); - QObject::connect ( this, - SIGNAL ( ProtcolCLMessageReceived ( int, CVector, CHostAddress ) ), - pChannel, SLOT ( OnProtcolCLMessageReceived ( int, CVector, CHostAddress ) ) ); + QObject::connect ( this, &CSocket::ProtcolCLMessageReceived, + pChannel, &CChannel::OnProtcolCLMessageReceived ); - QObject::connect ( this, - SIGNAL ( NewConnection() ), + QObject::connect ( this, SIGNAL ( NewConnection() ), pChannel, SLOT ( OnNewConnection() ) ); } else { // server connections: - QObject::connect ( this, - SIGNAL ( ProtcolMessageReceived ( int, int, CVector, CHostAddress ) ), - pServer, SLOT ( OnProtcolMessageReceived ( int, int, CVector, CHostAddress ) ) ); + QObject::connect ( this, &CSocket::ProtcolMessageReceived, + pServer, &CServer::OnProtcolMessageReceived ); - QObject::connect ( this, - SIGNAL ( ProtcolCLMessageReceived ( int, CVector, CHostAddress ) ), - pServer, SLOT ( OnProtcolCLMessageReceived ( int, CVector, CHostAddress ) ) ); + QObject::connect ( this, &CSocket::ProtcolCLMessageReceived, + pServer, &CServer::OnProtcolCLMessageReceived ); - QObject::connect ( this, - SIGNAL ( NewConnection ( int, CHostAddress ) ), + QObject::connect ( this, SIGNAL ( NewConnection ( int, CHostAddress ) ), pServer, SLOT ( OnNewConnection ( int, CHostAddress ) ) ); - QObject::connect ( this, - SIGNAL ( ServerFull ( CHostAddress ) ), - pServer, SLOT ( OnServerFull ( CHostAddress ) ) ); + QObject::connect ( this, &CSocket::ServerFull, + pServer, &CServer::OnServerFull ); } } diff --git a/src/socket.h b/src/socket.h index 864b82c5f2..e040f8a777 100755 --- a/src/socket.h +++ b/src/socket.h @@ -217,9 +217,8 @@ class CHighPrioSocket : public QObject NetworkWorkerThread.SetSocket ( &Socket ); // connect the "InvalidPacketReceived" signal - QObject::connect ( &Socket, - SIGNAL ( InvalidPacketReceived ( CHostAddress ) ), - SIGNAL ( InvalidPacketReceived ( CHostAddress ) ) ); + QObject::connect ( &Socket, &CSocket::InvalidPacketReceived, + this, &CHighPrioSocket::InvalidPacketReceived ); } CSocketThread NetworkWorkerThread; diff --git a/src/testbench.h b/src/testbench.h index e2dd2cdaad..423a2c7366 100755 --- a/src/testbench.h +++ b/src/testbench.h @@ -61,14 +61,15 @@ class CTestbench : public QObject } // connect protocol signals - QObject::connect ( &Protocol, SIGNAL ( MessReadyForSending ( CVector ) ), - this, SLOT ( OnSendProtMessage ( CVector ) ) ); - QObject::connect ( &Protocol, SIGNAL ( CLMessReadyForSending ( CHostAddress, CVector ) ), - this, SLOT ( OnSendCLMessage ( CHostAddress, CVector ) ) ); + QObject::connect ( &Protocol, &CProtocol::MessReadyForSending, + this, &CTestbench::OnSendProtMessage ); + + QObject::connect ( &Protocol, &CProtocol::CLMessReadyForSending, + this, &CTestbench::OnSendCLMessage ); // connect and start the timer (testbench heartbeat) - QObject::connect ( &Timer, SIGNAL ( timeout() ), - this, SLOT ( OnTimer() ) ); + QObject::connect ( &Timer, &QTimer::timeout, + this, &CTestbench::OnTimer ); Timer.start ( 1 ); // 1 ms } diff --git a/src/util.cpp b/src/util.cpp index a6e5eb0ec8..9ede9148f8 100755 --- a/src/util.cpp +++ b/src/util.cpp @@ -531,14 +531,14 @@ CLicenceDlg::CLicenceDlg ( QWidget* parent ) : QDialog ( parent ) tr ( "You may not apply legal terms or technological measures that legally restrict " "others from doing anything the license permits." ) + "

" ); - QObject::connect ( chbAgree, SIGNAL ( stateChanged ( int ) ), - this, SLOT ( OnAgreeStateChanged ( int ) ) ); + QObject::connect ( chbAgree, &QCheckBox::stateChanged, + this, &CLicenceDlg::OnAgreeStateChanged ); - QObject::connect ( butAccept, SIGNAL ( clicked() ), - this, SLOT ( accept() ) ); + QObject::connect ( butAccept, &QPushButton::clicked, + this, &CLicenceDlg::accept ); - QObject::connect ( butDecline, SIGNAL ( clicked() ), - this, SLOT ( reject() ) ); + QObject::connect ( butDecline, &QPushButton::clicked, + this, &CLicenceDlg::reject ); } @@ -728,8 +728,8 @@ CMusProfDlg::CMusProfDlg ( CClient* pNCliP, // Connections ------------------------------------------------------------- - QObject::connect ( pedtAlias, SIGNAL ( textChanged ( const QString& ) ), - this, SLOT ( OnAliasTextChanged ( const QString& ) ) ); + QObject::connect ( pedtAlias, &QLineEdit::textChanged, + this, &CMusProfDlg::OnAliasTextChanged ); QObject::connect ( pcbxInstrument, SIGNAL ( activated ( int ) ), this, SLOT ( OnInstrumentActivated ( int ) ) ); @@ -737,14 +737,14 @@ CMusProfDlg::CMusProfDlg ( CClient* pNCliP, QObject::connect ( pcbxCountry, SIGNAL ( activated ( int ) ), this, SLOT ( OnCountryActivated ( int ) ) ); - QObject::connect ( pedtCity, SIGNAL ( textChanged ( const QString& ) ), - this, SLOT ( OnCityTextChanged ( const QString& ) ) ); + QObject::connect ( pedtCity, &QLineEdit::textChanged, + this, &CMusProfDlg::OnCityTextChanged ); QObject::connect ( pcbxSkill, SIGNAL ( activated ( int ) ), this, SLOT ( OnSkillActivated ( int ) ) ); - QObject::connect ( butClose, SIGNAL ( clicked() ), - this, SLOT ( accept() ) ); + QObject::connect ( butClose, &QPushButton::clicked, + this, &CMusProfDlg::accept ); } void CMusProfDlg::showEvent ( QShowEvent* ) From ac25d26126f701819b1453897a895cb13c2a30e3 Mon Sep 17 00:00:00 2001 From: daryl Date: Sat, 6 Jun 2020 22:16:15 +0200 Subject: [PATCH 109/936] update --- src/res/translation/translation_es_ES.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index 715f335e45..221fbf7b08 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -644,7 +644,7 @@ The delay is perfect for a jam session. - + El retardo es perfecto para una jam session. @@ -1314,7 +1314,7 @@ mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. - + aumentará la tasa de datos. Asegúrate de que tu tasa de subida no excede el valor de subida disponible con tu ancho de banda de Internet. @@ -2127,7 +2127,7 @@ What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. - + Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor Jamulus. Esta etiqueta también se mostrará en cada cliente conectado al mismo servidor que tú. @@ -2342,7 +2342,7 @@ No Name - + Sin Nombre @@ -2476,7 +2476,7 @@ The server name identifies your server in the connect dialog server list at the clients. - + El nombre del servidor identifica a tu servidor en la lista de conexión de servidores de los clientes. From 16dcfa2b2a9d1251a9cc90d396db0991977fb045 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 6 Jun 2020 22:33:58 +0200 Subject: [PATCH 110/936] use darker black LEDs, see #222 --- src/res/HLEDBlack.png | Bin 23310 -> 18860 bytes src/res/HLEDBlackSmall.png | Bin 405 -> 394 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/src/res/HLEDBlack.png b/src/res/HLEDBlack.png index 94f630f638c8971ab6d07d93c0c0c3eb18e78853..a2b423b0f22bd8e1cb5e9fa74ed151ff51b31904 100644 GIT binary patch literal 18860 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 F{14IADW3oU diff --git a/src/res/HLEDBlackSmall.png b/src/res/HLEDBlackSmall.png index 624fdd8340d05b19ca65e2357b376e9f99483c4b..1ecfe9bd3b01a547d7813ee6cdd85b184a8074c5 100644 GIT binary patch delta 361 zcmV-v0ha!i1BwHXDu4d~{{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G` z2jm6@3^yXDS3&#$009?CL_t(2&y~@!O2beX#qs}lZ)loChmdX=47AX-Lh%g>8FX;z zBlrRt90loWU%}N~aPJ`W4V*eij22 zNm-Vi{eF+{`v5rSzGAJ#T8l9TV+p<=bB-ENBt!|-886 z1|LBXJPJTj6zA63hpMVB>bj0Zgr7O^Ja6Os{v5cQPN%P*TKsHmXbj^(00000NkvXX Hu0mjf1?s2x delta 372 zcmV-)0gL{M1C;}iDt`a~0002_L%V+f000SaNLh0L01ejw01ejxLMWSf00007bV*G` z2jm6;69NS)!Rplj00AONL_t(2&xMb_YQj(y#=mp#2~C5NE3}iPYagML;GknhM<)xu zNZvtQ@(#g50*aYC^dSNTOJ>9MPj0SLq=eRf%XgOV$L|mTtbbOkzT-HH!{IP8#@wS7 zBD%JeQag^bsjBKN2!evv>vg}Xs;?wT(CKv0>-F$k8c11|&{|_S9D6I|B?E2TE``8+r zy8_zEO%o9Yg8^o<8LYJrwA<~#%)SufQ%d<{jJa!%e_9D4j>ed8Ddme&>UaS`ZgvYr S%d{f^0000 Date: Sat, 6 Jun 2020 22:35:03 +0200 Subject: [PATCH 111/936] update translation files --- src/res/translation/translation_de_DE.ts | 154 +++++++++++------------ src/res/translation/translation_es_ES.qm | Bin 94358 -> 96296 bytes src/res/translation/translation_es_ES.ts | 154 +++++++++++------------ src/res/translation/translation_fr_FR.ts | 154 +++++++++++------------ src/res/translation/translation_it_IT.ts | 154 +++++++++++------------ src/res/translation/translation_nl_NL.ts | 154 +++++++++++------------ src/res/translation/translation_pl_PL.ts | 154 +++++++++++------------ src/res/translation/translation_pt_PT.ts | 154 +++++++++++------------ 8 files changed, 539 insertions(+), 539 deletions(-) diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index 3b3509dd26..143aa858e5 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -190,17 +190,17 @@ CAudioMixerBoard - + Server - + T R Y I N G T O C O N N E C T V E R B I N D U N G S A U F B A U - + Personal Mix at the Server: Eigener Mix am Server: @@ -342,79 +342,79 @@ Mixerkanal Landesflagge - + PAN - + MUTE - + SOLO - + Alias/Name - + Instrument - + Location Standort - - - + + + Skill Level Spielstärke - + Beginner Anfänger - + Intermediate Mittlere Spielstärke - + Expert Experte - + Musician Profile Profil des Musikers - + Mute - + Pan - + Solo @@ -473,7 +473,7 @@ CClientDlg - + Input Level Meter Eingangspegelanzeige @@ -482,7 +482,7 @@ Die Eingangspegelanzeige zeigt den Pegel der beiden Stereokanäle der selektierten Audiohardware an. - + Make sure not to clip the input signal to avoid distortions of the audio signal. Man sollte darauf achten, dass das Signal nicht zu stark ausgesteuert ist, um Verzerrungen des Signal zu vermeiden. @@ -507,17 +507,17 @@ Software nicht verbunden ist. Das kann man erreichen, indem man den Eingangskanal im Wiedergabemixer stumm schaltet. - + Input level meter Eingangspegelanzeige - + Simulates an analog LED level meter. Simuliert eine analoge LED-Signalpegelanzeige. - + Connect/Disconnect Button Verbinden-/Trennschalter @@ -526,7 +526,7 @@ Drücke diesen Knopf um sich mit dem Server zu verbinden. Es wird ein Fenster angezeigt, in dem man den Server auswählen kann. Wenn man gerade verbunden ist und den Knopf drückt, dann wird die Verbindung getrennt und die Session wird beendet. - + Connect and disconnect toggle button Schalter zum Verbinden und Trennen @@ -539,12 +539,12 @@ Software.
- + Local Audio Input Fader Lokaler Eingangspegelregler - + Local audio input fader (left/right) Lokaler Eingangsregler @@ -565,62 +565,62 @@ Wenn diese LED rot leuchtet, dann wirst du keinen Spaß haben mit der
- + This shows the level of the two stereo channels for your audio input. Die Eingangspegelanzeige zeigt den Pegel der beiden Stereokanäle der selektierten Audiohardware an. - + If the application is connected to a server and you play your instrument/sing into the microphone, the VU 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. Wenn die Software verbunden ist und die spielst dein Instrument, dann sollte die Eingangspegelanzeige flackern. Wenn das nicht der Fall ist, dann ist wahrscheinlich der falsche Eingangskanal ausgewählt (z.B. der Line-In-Kanal anstatt des Mikrofonkanals) oder der Eingangsregler im (Windows) Systemmixer ist zu niedrig eingestellt. - + For proper usage of the application, you should not hear your singing/instrument through the loudspeaker or your headphone when the software is not connected.This can be achieved by muting your input audio channel in the Playback mixer (not the Recording mixer!). Um die Software optimal zu nutzen, sollte man sein eigenes Instrument oder Gesang nicht im Lautsprecher oder Kopfhörer hören, wenn die Software nicht verbunden ist. Das kann man erreichen, indem man den Eingangskanal im Wiedergabemixer stumm schaltet. - + Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. Wenn man diesen Knopf drückt, dann wird die Beschriftung des Knopfes von Verbinden zu Trennen geändert, das heißt, dass er eine Umschaltfunktion hat zum Verbinden und Trennen der Applikation. - + Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows Mit diesem Einstellregler kann der relative Pegel vom linken und rechten Eingangskanal verändert werden. Für ein Mono-Signal verhält sich der Regler wie ein Pan-Regler. Wenn, z.B., ein Mikrofon am rechten Kanal angeschlossen ist und das Instrument am linken Eingangskanal ist viel lauter als das Mikrofon, dann kann man den Lautstärkeunterschied mit diesem Regler kompensieren indem man den Regler in eine Richtung verschiebt, so dass über dem Regler - + Reverb effect Halleffektregler - + Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. Der Halleffekt kann auf einen selektierten Mono-Audiokanal oder auf beide Stereoaudiokanäle angewendet werden. Die Mono-Kanalselektion und die Hallstärke können eingestellt werden. Wenn z.B. ein Mikrofonsignal auf dem rechten Kanal anliegt und ein Halleffekt soll auf das Mikrofonsignal angewendet werden, dann muss die Hallkanalselektion auf rechts eingestellt werden und der Hallregler muss erhöht werden, bis die gewünschte Stärke des Halleffekts erreicht ist. - + Reverb effect level setting Halleffekt Pegelregler - + Reverb Channel Selection Halleffekt Kanalselektion - + With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. Mit diesen Knöpfen kann ausgewählt werden, auf welches Eingangssignal der Halleffekt angewendet werden soll. Entweder der rechte oder linke Eingangskanal kann ausgewählt werden. - + Left channel selection for reverb Auswahl linker Kanal für Halleffekt - + Right channel selection for reverb Auswahl rechter Kanal für Halleffekt @@ -629,37 +629,37 @@ Die
- + Green Grün - + The delay is perfect for a jam session. Die Verzögerung it gering genug für das Jammen. - + Yellow Gelb - + Red Rot - + Delay status LED indicator LED Stautuslampe für die Verzögerung - + Opens a dialog where you can select a server to connect to. If you are connected, pressing this button will end the session. Wenn man diesen Knopf drückt, dann wird die Beschriftung des Knopfes von Verbinden zu Trennen geändert, das heißt, dass er eine Umschaltfunktion hat zum Verbinden und Trennen der Software. - + Shows the current audio delay status: Die Status-LED für die Verzögerung zeigt eine Bewertung der Gesamtverzögerung des Audiosignals: @@ -668,99 +668,99 @@ Die Verzögerung ist gering genug für das Jammen. - + A session is still possible but it may be harder to play. Man kann noch spielen aber es wird schwieriger Lieder mit hohem Tempo zu spielen. - + The delay is too large for jamming. Die Verzögerung ist zu hoch zum Jammen. - + If this LED indicator turns red, you will not have much fun using the application. Wenn diese LED rot leuchtet, dann wirst du keinen Spaß haben mit der Software. - + The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: Die Status-LED für den Netzwerkpuffer zeigt den aktuellen Status des Netzwerkstroms. Wenn die LED grün ist, dann gibt es keine Pufferprobleme. Wenn die LED rot anzeigt, dann ist der Netzwerkstrom kurz unterbrochen. Dies kann folgende Ursachen haben: - + The sound card's buffer delay (buffer size) is too small (see Settings window). Der Soundkartenpuffer ist zu klein eingestellt. - + The upload or download stream rate is too high for your internet bandwidth. Die Upload-Rate der Internetverbindung ist zu klein für den Netzwerkdatenstrom. - + Buffers status LED indicator LED Statuslampe für den Netzwerkpuffer - - + + C&onnect &Verbinden - + &View &Ansicht - + &Connection Setup... &Verbinden... - + My &Profile... Mein &Profil... - + C&hat... C&hat... - + &Settings... &Einstellungen... - + &Analyzer Console... - + E&xit &Beenden - + None Keine - + Center Mitte - + R - - + + L @@ -769,12 +769,12 @@ Mit diesem Einstellregler kann der relative Pegel vom linken und rechten Eingangskanal verändert werden. Für ein Mono-Signal verhält sich der Regler wie ein Pan-Regler. Wenn, z.B., ein Mikrofon am rechten Kanal angeschlossen ist und das Instrument am linken Eingangskanal ist viel lauter als das Mikrofon, dann kann man den Lautstärkeunterschied mit diesem Regler kompensieren indem man den Regler in eine Richtung verschiebt, so dass über dem Regler - + , where angezeigt wird, wobei - + is the current attenuation indicator. die aktuelle Dämpfung anzeigt. @@ -799,7 +799,7 @@ Mit diesen Knöpfen kann ausgewählt werden, auf welches Eingangssignal der Halleffekt angewendet werden soll. Entweder der rechte oder linke Eingangskanal kann ausgewählt werden. - + Delay Status LED Status LED für die Verzögerung @@ -808,7 +808,7 @@ Die Status-LED für die Verzögerung zeigt eine Bewertung der Gesamtverzögerung des Audiosignals. Wenn die LED grün leuchtet, dann ist die Verzögerung gering genug für das Jammen. Wenn die LED gelb anzeigt kann man noch spielen aber es wird schwieriger Lieder mit hohem Tempo zu spielen. Wenn die LED rot anzeigt, dann ist die Verzögerung zu hoch zum Jammen. - + Buffers Status LED Status LED für den Netzwerkpuffer @@ -817,7 +817,7 @@ Die Status-LED für den Netzwerkpuffer zeigt den aktuellen Status des Netzwerkstroms. Wenn die LED grün ist, dann gibt es keine Pufferprobleme. Wenn die LED rot anzeigt, dann ist der Netzwerkstrom kurz unterbrochen. Dies kann folgende Ursachen haben: - + The network jitter buffer is not large enough for the current network/audio interface jitter. Der Netzwerkpuffer ist nicht groß genug eingestellt für die aktuellen Netzwerkbedingungen. @@ -830,27 +830,27 @@ Die Upload-Rate der Internetverbindung ist zu klein für den Netzwerkdatenstrom. - + The CPU of the client or server is at 100%. Die CPU des Computers ist voll ausgelastet. - + Central Server Zentralserver - + user Musiker - + users Musiker - + D&isconnect &Trennen diff --git a/src/res/translation/translation_es_ES.qm b/src/res/translation/translation_es_ES.qm index d418ab75bc30fc1dfc0391aa521e6ca28e6a378b..247b74fdd32004f7b92895e9862c084366589993 100644 GIT binary patch delta 4829 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 delta 3987 zcmX9>dq7Ni`~Q5;oHJ+U%*>fst=KNC{G`%Fu^Y;zwMq)zi*XmywzBO@mZtS;S0R@O ztL2wVNOE1QZ0MqtO^Daa%3X4ct_pb{&0n9UIp_O*p3n37JkK-xUJDubg>~JGBLMUT z3U?EZ1HAMm4ExH2WwC^Tz^I!h4C^pq`657=1Z+MCI1B}(EkMv5U{g2{JO$`!4umEW zjxb?ZB@lj`&S?jhE(I#ifM0zGFczNxzkLPJf1(LPGr|A=pFrzM@K4tP?}mb}r^^@m zK(J2+x(7pWs0P9e5L_ten*Tx=kq(sIfbi{j3Lq7N&mgdYwh+ec0eWOZ2ptWK)SB=^ z0fdMU;KOSOEA%j;=S~P&0!8EoA=??SW)SigfPM29g#4dDpP=j?033INa>X=a$`#_p zLLg)fbguh>s5vGq=3xKA1-SozaJXCw*q32UMlqoA#+ZHaz=H&gxyu8Co^~QLvw%;s z-Uu|GfbXokl(98@izt9re~cZx2`q90#ula!eHHL4Cwf^O{D)CS?OhPCssQlt!Gtin zAdDd>f+#J^MEHj$qB#N)Pm_V#QHbp22z0E0LD`!UiGqQiV<^Rpv2%eNMl8)V5_KU3 zSYNmuNEm<}i|F7819q<^%32(;*X|l+uoU~8odDh*Ip-UI_vJX`9SqiMGOncg0`vV$ zSo{)K`w~;(m8i~71OCHskBGp9HFz9m2YerkC-n=#oQ?X>_$s5m{iE_2fZh%3)tfsc|d)CRvT0R7M8@`tW*OQrL4`SmBjcrCrz9JOt<1R zdQ!G;1ZUPf2e`P9GcOwhlpf`J$`(NMOzz7E6kt<6H~gU+&}Pns9eWBa$TV`{$wXQ3 zM=tVfD#7rbT->`@Fx73&xP%U_c+DlX%D^-iE(NoQi8tKl)sum3&D>63QnAHIZqLu_ zz(!?oIiwl%w=`i>0GG4V8d&*)%hL}8%>B5$b`rI4mOBwcQc|k8vkt`6PUFwqd8c_` zR?ghT{Mmr^D)%t(FqJ~VHOG^vGParUVi&H(NTO2w!L=<-0E%L{whAxcXg{vq?iKK7 zszP}m_^i1GMiXvrfB~iLXk#XQRFrV{^BR_h8O%oJNcZh*ae<_-3==lssUTn+* zzI@7C#B)@N<@~TtyNSG4T_UhMnV;-;5zJ)-Z`l0`Z0Hq!zWX^KPT&(_rjbU5@d=sn zKjK@&P8iyMoV*B%cp(GGXW(etX4oqBxP?ophCK`iURIWPOhDxd#kDOcS4bnMzY~n?GDc48DEHAF)pYxL*8`3Mcaa z%;o&$n2n^~BonsX;j4zw#g{&sux1y3vzT1K-RA#Er_2;O{*HA7WtPt0yVZx(U&7a( zCw13&^UvKA!6vWeo8FE9cJ1Yx{n99bTtWUwHvevDCo)~R@OfYQ|HLZ6HqaPK4J1`? zwwVQ{nIsI%B6|!!BMf;>)NU9e4AqfZC5TG<>gOpA2_GXx6Jo-%dP1;YG6mSo#(;rmbh!YNo-T>pSd;43WoPb_eHp0Lt5 zZx{9Ik3vdp8kj}2u=)~F9BwPDn?@9uSqd5VYAC~SVe>8#ustViIY2LVw=m&djgXm1 zOz9q&uzU~U15&xWkfk~YWUd#oekC_`jTLgr&JrUrLh;8MF!vOp%=bMprWA}-Gdidx zZW69fCMu&WOjvYCcz&vY+~6R*cOyRsmkS@9(tz<%O2MH6P$npaWWoY}rLZ%ARP3nK z46de0*rK#Z(o^3^Q1&=Qf&a5uX}C`B4Yp8DHz&VGUsfhY5)*xUDU&C3r|I~;QMn`i zE&1@ia?iOi63?H?>|~1k)O=-*hnC#%L75xp1vYw#@@z1P(_C%B_h!n%oOwXjM&*TD z6o9p}vMkPtrd_qNc9l6$9IUMCMGUS#sBCDU3wv!Q{(9_apPK&uHuh&^jWqN7x`Bb zbMirPLm8>}`!;dYRvHTKPsJ^F3uugHi(9n;V1taJsiq6W-%G8@KC8tOQ3YUfsCaq{ zEi7F;#q+l*b8lO*?3Wt)yj;9*aHGr|#rr3QQ)wH-hwVkw@%}B=+0gqVN>tiAuV}nC zsmzXhk^lc*ta4uQn5c_1;fHvY>%^mg=MmMwJPM@#iOO#dMf$!&71o3No}R6md!Ym{ zJ88n^cvW2I^FgY(c@@<0m@4l2SW@|ERl=JzTCPT`ei_?FGvT%>HJbuxS*%JwO8uZV zL3LPMZ3MH4P?aXW2I?lM<+HDVldkF>l^bXkJEXQIH?{r50AT7LYELsSV9j;4 zS5IOlOoZ4^pX_}hP)sb)M`<6QO%=OK{$1Uoa&ndAFU#nv#CDJ*M)hSV5 z0zNm@sh*!~9j;#2+ZYct6u9@V>bfPBr2bLrw%ycl?)s|V4Nn6mT#)o1 z>HC+{q(0l+0rv-z=TRqe+aHpTv4Rf1@rC5`3GXeFLVu^)4hfNFHB*fu{*-3>^1z)k zY3_tFvfa1R+&a3TX}L7_Z7VT%R*ISQU($p@ihZ;nOxHtN@Znc5+hl2>4-Febg_Ip^ z0c;#3<;=PX{Ou~`Hd5f9yGcjp70~$gmyDf%l+Kh+hMuBc?j@ae5r9XK&a9?Pzq>3I zm{FuXtEA%3sR4aHtCs~RPXXw!{?B%eHLp}3P0MI zwrb35oyY}KHDCGv09-54j2W2(HestK$bwe0jYURH)WBgt<9bb;8y#Gkty%mmhz4|s zX4Nkbab>JVe z%QekCzcGaVntK!IK(luyY}v1A;a`v&e$jSqss^*R)pk3^ftmSet(FlJ_OjM`Es5`L zX(zHi^R?D(G`6d|Yx}?I3OM>{9UXrpTe@m}MytsGv5DHTg^y^{iO~j@c~L_-uZ_;{ zK|9_NZS+H;e(Xx^g2#05=3Cl@H>$wKyJ$B&B!Ub&ZMq!=E){9F^`?$V%{reE#o;L? zEPtXc`X-)+&Q@(n_$|P4w)T>W`hrcX_R{)=v~MiZUaRU!{{JmR`=pUXRMboR^v5X_ zVS)Bd+)0{-S=u%OQT={`PQJO9GM%fl+)GrhAJ>V@`Jry`^E|MLw{?E2(x_pD=)w+A z>0%pAc;SU^_IN6dW3vfE?RC-JDd21UbqiZw0scw4Mcz|r{zqQXZOdq+9j>2l*W6ed zB6hlc-UYO+y6Da}I02JCb|Ui_tSdTK3GB1dl}62^m2HXcvIPyTM;^M`=OnUkbh>BL z==+(H?#++@`o-g^YdRi4ow89DJGxRw+%I>({0c}dmA{xnE^%|0Emg)G;AyRFmzW3~ za+B>|WCB(vWEXR5FwY6{S4lyXd5-L%NhSZ9$s<>+q}A)KJUW?b5c`=4FMKHn)HKi- z-y=_a@|X&-OrGyeOg?%f$L{N(jp>-YKyjR0F;HHXLgz+!%FABtA+0pY=|=NUDi4vf zK2ba{OwM{sXmv|2xSB@0or8SS{43gqd&ticiIKyv!;qJ!2Y#EKYbNpW~F{s z)ZZoaLa2WAHjY}ZtA33b3y2N+t=-Arfie2RPrcvcU;0AhC-G?X*V5>M>MQzc^BQWo zx%%g=0l?bf`W7>pT#%`68ypGvdFk77W5K#f^T4JLI+m&r^E{>u7+`kn%9M$^W6!>O Yx$|V#F03Daazl4!?Rc{B8#c)8f2pX#(*OVf diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index 221fbf7b08..4670405854 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -194,17 +194,17 @@ CAudioMixerBoard - + Server Servidor - + T R Y I N G T O C O N N E C T I N T E N T A N D O C O N E C T A R - + Personal Mix at the Server: Mezcla Personal en el Servidor: @@ -346,79 +346,79 @@ Bandera país mezclador canal - + PAN PAN - + MUTE MUTE - + SOLO SOLO - + Alias/Name Alias/Nombre - + Instrument Instrumento - + Location Ubicación - - - + + + Skill Level Nivel Habilidad - + Beginner Principiante - + Intermediate Intermedio - + Expert Experto - + Musician Profile Perfil Músico - + Mute Mute - + Pan Paneo - + Solo Solo @@ -477,7 +477,7 @@ CClientDlg - + Input Level Meter Indicador nivel entrada @@ -486,7 +486,7 @@ Los indicadores de nivel de entrada muestran el nivel de entrada de los dos canales estéreo de la entrada de audio actualmente seleccionada. - + Make sure not to clip the input signal to avoid distortions of the audio signal. Asegúrate de no clipear la señal de entrada para evitar distorsiones de la señal de audio. @@ -511,17 +511,17 @@ no está conectado. Esto se puede hacer muteando tu entrada de audio en el mezclador de Reproducción (¡y no en el de Grabación!). - + Input level meter Indicador nivel entrada - + Simulates an analog LED level meter. Simula un indicador analógico de LEDs. - + Connect/Disconnect Button Botón Conexión/Desconexión @@ -530,7 +530,7 @@ Pulsa este botón para conectar con un servidor. Se abrirá una ventana donde puedes seleccionar un servidor. Si estás conectado, este botón finalizará la sesión. - + Connect and disconnect toggle button Botón de conexión y desconexión @@ -543,12 +543,12 @@ . - + Local Audio Input Fader Fader Entrada Audio Local - + Local audio input fader (left/right) Fader entrada audio local (izq/dcho) @@ -569,37 +569,37 @@ Si este indicador LED se vuelve rojo, no te divertirás demasiado utilizando el - + This shows the level of the two stereo channels for your audio input. Esto muestra los niveles de los dos canales estéreo de tu entrada de audio. - + If the application is connected to a server and you play your instrument/sing into the microphone, the VU 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. Si la aplicación está conectada a un servidor y tocas tu instrumento/cantas por el micrófono, el vúmetro debería parpadear. Si no es así, seguramente has seleccionado el canal de entrada equivocado (por ej. line in en lugar de la entrada del micrófono) o está muy bajo el gain de entrada en el mezclador de audio (Windows). - + For proper usage of the application, you should not hear your singing/instrument through the loudspeaker or your headphone when the software is not connected.This can be achieved by muting your input audio channel in the Playback mixer (not the Recording mixer!). Para un uso adecuado de la aplicación, no deberías oír tu voz/instrumento por el altavoz o los auriculares cuando el software no está conectado. Esto se puede realizar muteando tu canal de entrada de audio en el mezclador de Reproducción (¡no el de Grabación!). - + Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. Pulsando este botón cambia el texto del mismo de Conectar a Desconectar; esto es, tiene la función de conmutador para conectar y desconectar el software. - + Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows Controla los niveles relativos de los canales locales de audio derecho e izquierdo. Para una señal mono actúa como paneo entre los dos canales. Por ej., si se conecta un miocrófono al canal derecho y un instrumento al izquierdo que suena mucho más alto que el micrófono, mueve el fader en una dirección donde la etiqueta sobre el fader muestra - + Reverb effect Efecto reverb - + Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. Se puede aplicar un efecto de reverb a un canal local de audio mono o a ambos canales en modo estéreo. Se puede modificar la selección de canales en modo mono y el nivel de reverb. Por ej., si la señal del micrófono va por el canal derecho de la tarjeta de sonido y se desea aplicar reverb, cambia el selector de canal a derecho y sube el fader hasta alcanzar el nivel de reverb deseado. @@ -608,27 +608,27 @@ El efecto de reverb requiere un esfuerzo importante del procesador, por lo que solo debería usarse en ordenadores potentes. Si se deja el fader de reverb al mínimo (la configuración por defecto), el efecto estará desactivado y no significará ninguna carga adicional para el procesador. - + Reverb effect level setting Nivel efecto reverb - + Reverb Channel Selection Selección Canal Reverb - + With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. Con estos botones se puede escoger el canal de entrada de audio al que se aplica el efecto de reverb. Se pueden elegir los canales de entrada izquierdo o derecho. - + Left channel selection for reverb Selección canal izq para reverb - + Right channel selection for reverb Selección canal dcho para reverb @@ -637,22 +637,22 @@ El software - + Green Verde - + The delay is perfect for a jam session. El retardo es perfecto para una jam session. - + Yellow Amarillo - + Red Rojo @@ -661,17 +661,17 @@ Si este indicador LED se vuelve rojo, no te divertirás demasiado utilizando la aplicación - + Delay status LED indicator Indicador LED estado retardo - + Opens a dialog where you can select a server to connect to. If you are connected, pressing this button will end the session. Abre un diálogo donde puedes escoger un servidor al cual conectarte. Si estás conectado, pulsar este botón finalizará la sesión. - + Shows the current audio delay status: Muestra el estado actual del retardo de audio: @@ -680,99 +680,99 @@ El retardo es perfecto para una jam session - + A session is still possible but it may be harder to play. Una sesión aún es posible pero quizá sea más difícil tocar. - + The delay is too large for jamming. El retardo es demasiado grande para tocar. - + If this LED indicator turns red, you will not have much fun using the application. Si este indicador LED se vuelve rojo, no te divertirás demasiado utilizando la aplicación. - + The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: El LED de estado de buffers muestra el estado actual del flujo de audio. Si está rojo, hay interrupciones en el flujo de audio. Esto puede ser causado por alguno de los siguientes problemas: - + The sound card's buffer delay (buffer size) is too small (see Settings window). El retardo de buffer de la tarjeta de audio (tamaño buffer) tiene un valor demasiado bajo (ver ventana de Configuración). - + The upload or download stream rate is too high for your internet bandwidth. La tasa de subida o bajada es demasiado alta para tu ancho de banda de Internet. - + Buffers status LED indicator Indicador LED estado buffers - - + + C&onnect C&onectar - + &View &Ver - + &Connection Setup... &Configuración de Conexión... - + My &Profile... Mi &Perfil... - + C&hat... C&hat... - + &Settings... &Configuración... - + &Analyzer Console... &Analyzer Console... - + E&xit S&alir - + None Ninguno - + Center Centro - + R R - - + + L L @@ -781,12 +781,12 @@ Con el fader de audio, los niveles relativos de los canales locales de audio derecho e izquierdo pueden cambiarse. Para una señal mono actúa como paneo entre los dos canales. Por ej., si se conecta un miocrófono al canal derecho y un instrumento al izquierdo que suena mucho más alto que el micrófono, mueve el fader en una dirección donde la etiqueta sobre el fader muestra - + , where , donde - + is the current attenuation indicator. es el indicador actual de atenuación. @@ -811,7 +811,7 @@ Con estos botones se puede escoger el canal de entrada de audio al que se aplica el efecto de reverberación. Se pueden elegir los canales de entrada izquierdo o derecho. - + Delay Status LED LED Estado Retardo @@ -820,7 +820,7 @@ El indicador LED del estado del retardo muestra el estado actual del retardo del audio. Si está en verde, el retardo es perfecto para una jam session. Si está en amarillo, la sesión aún es posible, pero quizá sea más difícil tocar. Si está en rojo, el retardo es demasiado alto para tocar. - + Buffers Status LED LED Estado Buffers @@ -829,7 +829,7 @@ El indicador LED del estado de buffers muestra el estado actual del flujo de audio. Si está verde, no hay problemas de buffer y no se interrumpe el flujo de audio. Si está rojo, el flujo de audio se interrumpe, a causa de uno de los siguientes problemas: - + The network jitter buffer is not large enough for the current network/audio interface jitter. El jitter buffer de red no es lo suficientemente grande para el jitter actual de la red/interfaz de audio. @@ -842,27 +842,27 @@ La tasa de subida o bajada is demasiado alta para el ancho de banda disponible de internet. - + The CPU of the client or server is at 100%. El procesador del cliente o del servidor está al 100%. - + Central Server Servidor Central - + user usuario - + users usuarios - + D&isconnect D&esconectar diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index 97dd67c746..c0e35cdaab 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -202,17 +202,17 @@ CAudioMixerBoard - + Server Serveur - + T R Y I N G T O C O N N E C T T E N T A T I V E D E C O N N E X I O N - + Personal Mix at the Server: Mixage personnel du serveur : @@ -354,79 +354,79 @@ Drapeau de pays de canal de mixeur - + PAN PAN - + MUTE MUET - + SOLO SOLO - + Alias/Name Pseudo/nom - + Instrument Instrument - + Location Localisation - - - + + + Skill Level Niveau de compétence - + Beginner Débutant - + Intermediate Intermédiaire - + Expert Expert - + Musician Profile Profil de musicien - + Mute Muet - + Pan Pan - + Solo Solo @@ -485,7 +485,7 @@ CClientDlg - + Input Level Meter Indicateur de niveau d'entrée @@ -494,7 +494,7 @@ Les indicateurs de niveau d'entrée indiquent le niveau d'entrée des deux canaux stéréo de l'entrée audio actuellement sélectionnée. - + Make sure not to clip the input signal to avoid distortions of the audio signal. Veillez à ne pas clipper le signal d'entrée afin d'éviter les distorsions du signal audio. @@ -519,17 +519,17 @@ 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 !). - + Input level meter Indicateur de niveau d'entrée - + Simulates an analog LED level meter. Indicateur de niveau simulant un voyant analogique - + Connect/Disconnect Button Bouton connecter/déconnecter @@ -538,7 +538,7 @@ Appuyez sur ce bouton pour vous connecter à un serveur. Une boîte de dialogue vous permettant de sélectionner un serveur s'ouvrira. Si vous êtes connecté, l'appui sur ce bouton mettra fin à la session. - + Connect and disconnect toggle button Bouton-bascule de connection/déconnexion @@ -551,12 +551,12 @@ . - + Local Audio Input Fader Chariot d'entrée audio locale - + Local audio input fader (left/right) Chariot d'entrée audio locale (gauche/droite) @@ -577,62 +577,62 @@ Si ce voyant devient rouge, vous n'aurez pas beaucoup de plaisir à utiliser le logiciel - + This shows the level of the two stereo channels for your audio input. - + If the application is connected to a server and you play your instrument/sing into the microphone, the VU 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. - + For proper usage of the application, you should not hear your singing/instrument through the loudspeaker or your headphone when the software is not connected.This can be achieved by muting your input audio channel in the Playback mixer (not the Recording mixer!). - + Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. - + Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows - + Reverb effect - + Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. - + Reverb effect level setting - + Reverb Channel Selection - + With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. - + Left channel selection for reverb - + Right channel selection for reverb @@ -641,134 +641,134 @@ Le logiciel - + Green - + The delay is perfect for a jam session. - + Yellow - + Red - + Delay status LED indicator Indicateur LED d'état de délai - + Opens a dialog where you can select a server to connect to. If you are connected, pressing this button will end the session. - + Shows the current audio delay status: - + A session is still possible but it may be harder to play. - + The delay is too large for jamming. - + If this LED indicator turns red, you will not have much fun using the application. - + The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: - + The sound card's buffer delay (buffer size) is too small (see Settings window). - + The upload or download stream rate is too high for your internet bandwidth. - + Buffers status LED indicator Indicateur LED d'état de tampon - - + + C&onnect Se c&onnecter - + &View &Vue - + &Connection Setup... Paramètres de &connexion... - + My &Profile... Mon &profil - + C&hat... Tc&hate... - + &Settings... Paramètre&s... - + &Analyzer Console... Console d'&analyse - + E&xit &Quitter - + None Aucun - + Center Centre - + R D - - + + L G @@ -777,12 +777,12 @@ Avec le chariot audio, les niveaux relatifs des canaux audio locaux gauche et droit peuvent être modifiés. Pour un signal mono, il agit comme un panoramique entre les deux canaux. Si, par exemple, un microphone est connecté au canal d'entrée droit et qu'un instrument est connecté au canal d'entrée gauche qui est beaucoup plus fort que le microphone, déplacez le fader audio dans une direction où l'étiquette au-dessus du chariot indique - + , where , où - + is the current attenuation indicator. est l'indicateur d'atténuation actuel. @@ -807,7 +807,7 @@ Ces boutons radio permettent de choisir le canal d'entrée audio sur lequel l'effet de réverbération est appliqué. Il est possible de sélectionner le canal d'entrée gauche ou droit. - + Delay Status LED Voyant d'état de délai @@ -816,7 +816,7 @@ Le voyant d'état de délai indique l'état actuel du délai audio. Si le voyant est vert, le délai est parfait pour une session de bÅ“uf. Si le voyant est jaune, une session est toujours possible mais elle peut être plus difficile à jouer. Si le voyant est rouge, le délai est trop important pour un bÅ“uf. - + Buffers Status LED Voyant d'état de tampon @@ -825,7 +825,7 @@ Le voyant d'état des tampons indique l'état actuel de l'audio/du streaming. Si le voyant est vert, il n'y a pas de dépassement de mémoire tampon ni de sous-dépassement et le flux audio n'est pas interrompu. Si le voyant est rouge, le flux audio est interrompu en raison de l'un des problèmes suivants : - + The network jitter buffer is not large enough for the current network/audio interface jitter. Le tampon de jitter réseau n'est pas assez grand pour le jitter actuel de l'interface réseau/audio. @@ -838,27 +838,27 @@ Le taux de flux montant ou descendant est trop élevé pour la bande passante Internet actuellement disponible. - + The CPU of the client or server is at 100%. Le processeur du client ou du serveur est à 100%. - + Central Server Serveur central - + user utilisateur - + users utilisateurs - + D&isconnect Dé&connecter diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index 51905b570d..afb40af2a2 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -190,17 +190,17 @@ CAudioMixerBoard - + Server Server - + T R Y I N G T O C O N N E C T I N A T T E S A D I C O N N E S S I O N E - + Personal Mix at the Server: Mixer personale sul Server: @@ -209,21 +209,21 @@ CChannelFader - + Pan Bilanciamento - + Mute Mute - + Solo Solo @@ -362,59 +362,59 @@ Bandiera del Paese - + PAN Bil. (L / R) - + MUTE MUTE - + SOLO SOLO - + Alias/Name Identificativo/Nome - + Instrument Strumento - + Location Località - - - + + + Skill Level Livello di Preparazione - + Beginner Principiante - + Intermediate Livello Intermedio - + Expert Esperto - + Musician Profile Profilo del Musicista @@ -473,7 +473,7 @@ CClientDlg - + Input Level Meter Livello Segnale d'ingresso @@ -482,7 +482,7 @@ L'idicatore del segnale in ingresso mostra il livello dei due canali stereo scelti come input. - + Make sure not to clip the input signal to avoid distortions of the audio signal. Controllare di non saturare il livello di input per evitare distorsioni nel segnale audio. @@ -507,17 +507,17 @@ il programma non è connesso. Basta disattivare il canale audio in ingresso nel mixer di riproduzione (non nel mixer di registrazione!). - + Input level meter Indicatore del Segnale in ingresso - + Simulates an analog LED level meter. Simula un indicatore a LED analogico. - + Connect/Disconnect Button Pulsante: Connetti-Disconnetti @@ -526,7 +526,7 @@ Cliccare il pulsante per connettersi ad un server. Si aprirà una finestra da dove poter scegliere a quale server connettersi. Se si è già connessi cliccando questo pulsante la connessione verrà interrotta. - + Connect and disconnect toggle button Pulsante di connessione e disconnessione @@ -539,7 +539,7 @@ programma. - + Local Audio Input Fader Fader per l'input audio locale @@ -548,23 +548,23 @@ Con questo fader, è possibile modificare i livelli relativi dei canali audio sinistro e destro. Per un segnale mono si comporta come un mix tra i due canali. Se, ad esempio, un microfono è collegato al canale di ingresso destro e uno strumento è collegato al canale di ingresso sinistro che è molto più forte del microfono, spostare il fader audio nella direzione opposta a L (Sinistra) per bilanciare i volumi - - + + L L - + , where , dove - + is the current attenuation indicator. si trova l'attuale indicatore di attenuazione. - + Local audio input fader (left/right) Fader di input locale (Sinistro/Destro) @@ -601,7 +601,7 @@ Canale Destro per il Riverbero - + Delay Status LED LED di Stato del Delay @@ -614,12 +614,12 @@ Se il LED diventa rosso avrete difficoltà nel suonare con - + Delay status LED indicator LED di stato del Delay - + Buffers Status LED LED di Stato del Buffer @@ -628,7 +628,7 @@ Il LED di stato del buffer indica la qualità dello straming. Se verde non sono presenti anomalie nel buffer e lo stream audio non subirà interruzioni. Se rosso lo stream audio subirà interruzioni per causa di uno dei seguenti motivi: - + The network jitter buffer is not large enough for the current network/audio interface jitter. Il Jitter Buffer non è grande abbastanza per la tipologia di rete/interfaccia audio usate. @@ -641,208 +641,208 @@ La quantià di dati in upload o in download è eccessiva rispetto alla banda internet disponibile. - + This shows the level of the two stereo channels for your audio input. - + If the application is connected to a server and you play your instrument/sing into the microphone, the VU 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. - + For proper usage of the application, you should not hear your singing/instrument through the loudspeaker or your headphone when the software is not connected.This can be achieved by muting your input audio channel in the Playback mixer (not the Recording mixer!). - + Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. - + Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows - + Reverb effect - + Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. - + Reverb effect level setting - + Reverb Channel Selection - + With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. - + Left channel selection for reverb - + Right channel selection for reverb - + Green - + The delay is perfect for a jam session. - + Yellow - + Red - + Opens a dialog where you can select a server to connect to. If you are connected, pressing this button will end the session. - + Shows the current audio delay status: - + A session is still possible but it may be harder to play. - + The delay is too large for jamming. - + If this LED indicator turns red, you will not have much fun using the application. - + The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: - + The sound card's buffer delay (buffer size) is too small (see Settings window). - + The upload or download stream rate is too high for your internet bandwidth. - + The CPU of the client or server is at 100%. La CPU del client è satura al 100%. - + Buffers status LED indicator Led di stato del Buffer - - + + C&onnect C&onnetti - + &View &Vista - + &Connection Setup... Setup &Connessione... - + My &Profile... &Profilo Personale... - + C&hat... C&hat... - + &Settings... &Settaggi... - + &Analyzer Console... &Analizzatore... - + E&xit &Uscita - + None Nullo - + Center Centro - + R R - + Central Server Server Centrale - + user utente - + users utenti - + D&isconnect D&isconnetti diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index fc31797825..a2be5e4332 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -190,17 +190,17 @@ CAudioMixerBoard - + Server Server - + T R Y I N G T O C O N N E C T A A N H E T V E R B I N D E N - + Personal Mix at the Server: @@ -209,21 +209,21 @@ CChannelFader - + Pan Pan - + Mute Demp - + Solo Solo @@ -354,59 +354,59 @@ Landvlag van het kanaal - + PAN - + MUTE DEMP - + SOLO SOLO - + Alias/Name Alias/Naam - + Instrument Instrument - + Location Locatie - - - + + + Skill Level Vaardigheidssniveau - + Beginner Beginner - + Intermediate Gemiddeld - + Expert Gevorderd - + Musician Profile Muzikantenprofiel @@ -465,7 +465,7 @@ CClientDlg - + Input Level Meter Ingangsniveaumeter @@ -474,7 +474,7 @@ De indicatoren voor het ingangsniveau geven het ingangsniveau van de twee stereokanalen van de huidige geselecteerde audio-ingang weer. - + Make sure not to clip the input signal to avoid distortions of the audio signal. Zorg ervoor dat u het ingangssignaal niet clipt om vervorming van het audiosignaal te voorkomen. @@ -499,17 +499,17 @@ software niet is verbonden. Dit kan worden bereikt door het geluidskanaal in de afspeelmixer (niet de opnamemixer!) te dempen. - + Input level meter Ingangsniveaumeter - + Simulates an analog LED level meter. Simuleert een analoge LED-niveaumeter. - + Connect/Disconnect Button Verbinden/Verbreken-knop @@ -518,7 +518,7 @@ Druk op deze knop om verbinding te maken met een server. In het daaropvolgende dialoogvenster kunt u een server kunt selecteren. Als u verbonden bent, wordt de sessie beëindigd door weer op deze knop te drukken. - + Connect and disconnect toggle button Knop voor het opzetten en verbreken van de verbinding @@ -531,7 +531,7 @@ software. - + Local Audio Input Fader Lokale audio-ingangsfader @@ -540,23 +540,23 @@ Met de audiofader kunnen de relatieve niveaus van de linker en rechter lokale audiokanalen worden gewijzigd. Voor een monosignaal werkt het als een panning tussen de twee kanalen. Als bijvoorbeeld een microfoon is verbonden op het rechter ingangskanaal en een veel luider instrument is verbonden op het linker ingangskanaal, beweeg dan de audiofader in de richting: - - + + L L - + , where , waar - + is the current attenuation indicator. is de huidige dempingsindicator. - + Local audio input fader (left/right) Lokale audio-ingangsfader (links/rechts) @@ -593,7 +593,7 @@ Rechter kanaalselectie voor galm - + Delay Status LED Vertragingsstatus LED @@ -606,12 +606,12 @@ Als deze LED-indicator rood wordt, zult u niet veel plezier beleven aan het gebruik van de - + Delay status LED indicator Vertragingsstatus LED-indicator - + Buffers Status LED Buffers Status LED @@ -620,7 +620,7 @@ De indicator voor de status van de buffers geeft de huidige status van de audio/streaming aan. Als het lampje groen is, zijn er geen bufferoverschrijdingen/onderschrijdingen en wordt de audiostream niet onderbroken. Als het lampje rood is, wordt de audiostream onderbroken door een van de volgende problemen: - + The network jitter buffer is not large enough for the current network/audio interface jitter. De buffer voor de netwerkjitter is niet groot genoeg voor de huidige netwerk-/audio-interfacejitter. @@ -633,208 +633,208 @@ De upload- of downloadstroomsnelheid is te hoog voor de huidige beschikbare internetbandbreedte. - + This shows the level of the two stereo channels for your audio input. - + If the application is connected to a server and you play your instrument/sing into the microphone, the VU 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. - + For proper usage of the application, you should not hear your singing/instrument through the loudspeaker or your headphone when the software is not connected.This can be achieved by muting your input audio channel in the Playback mixer (not the Recording mixer!). - + Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. - + Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows - + Reverb effect - + Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. - + Reverb effect level setting - + Reverb Channel Selection - + With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. - + Left channel selection for reverb - + Right channel selection for reverb - + Green - + The delay is perfect for a jam session. - + Yellow - + Red - + Opens a dialog where you can select a server to connect to. If you are connected, pressing this button will end the session. - + Shows the current audio delay status: - + A session is still possible but it may be harder to play. - + The delay is too large for jamming. - + If this LED indicator turns red, you will not have much fun using the application. - + The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: - + The sound card's buffer delay (buffer size) is too small (see Settings window). - + The upload or download stream rate is too high for your internet bandwidth. - + The CPU of the client or server is at 100%. De CPU van de client of server staat op 100%. - + Buffers status LED indicator Status van de buffers LED-indicator - - + + C&onnect C&onnect - + &View &Bekijken - + &Connection Setup... &Verbindingsinstellingen... - + My &Profile... Mijn &Profiel... - + C&hat... C&hat... - + &Settings... &Settings... - + &Analyzer Console... &Analyzer Console... - + E&xit E&xit - + None Geen - + Center Centrum - + R R - + Central Server - + user gebruiker - + users gebruikers - + D&isconnect &Afmelden diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index 9521afb653..203d8fb849 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -158,17 +158,17 @@ CAudioMixerBoard - + Server - + T R Y I N G T O C O N N E C T - + Personal Mix at the Server: @@ -177,21 +177,21 @@ CChannelFader - + Pan - + Mute - + Solo @@ -306,59 +306,59 @@ - + PAN - + MUTE - + SOLO - + Alias/Name - + Instrument - + Location - - - + + + Skill Level - + Beginner - + Intermediate - + Expert - + Musician Profile @@ -417,284 +417,284 @@ CClientDlg - + Input Level Meter - + Make sure not to clip the input signal to avoid distortions of the audio signal. - + Input level meter - + Simulates an analog LED level meter. - + Connect/Disconnect Button - + Connect and disconnect toggle button - + Local Audio Input Fader - - + + L - + , where - + is the current attenuation indicator. - + Local audio input fader (left/right) - + Delay Status LED - + Delay status LED indicator - + Buffers Status LED - + The network jitter buffer is not large enough for the current network/audio interface jitter. - + This shows the level of the two stereo channels for your audio input. - + If the application is connected to a server and you play your instrument/sing into the microphone, the VU 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. - + For proper usage of the application, you should not hear your singing/instrument through the loudspeaker or your headphone when the software is not connected.This can be achieved by muting your input audio channel in the Playback mixer (not the Recording mixer!). - + Opens a dialog where you can select a server to connect to. If you are connected, pressing this button will end the session. - + Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. - + Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows - + Reverb effect - + Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. - + Reverb effect level setting - + Reverb Channel Selection - + With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. - + Left channel selection for reverb - + Right channel selection for reverb - + Shows the current audio delay status: - + Green - + The delay is perfect for a jam session. - + Yellow - + A session is still possible but it may be harder to play. - + Red - + The delay is too large for jamming. - + If this LED indicator turns red, you will not have much fun using the application. - + The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: - + The sound card's buffer delay (buffer size) is too small (see Settings window). - + The upload or download stream rate is too high for your internet bandwidth. - + The CPU of the client or server is at 100%. - + Buffers status LED indicator - - + + C&onnect - + &View - + &Connection Setup... - + My &Profile... - + C&hat... - + &Settings... - + &Analyzer Console... - + E&xit - + None - + Center - + R - + Central Server - + user - + users - + D&isconnect diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index 837767bbc2..336a46e609 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -202,17 +202,17 @@ CAudioMixerBoard - + Server Servidor - + T R Y I N G T O C O N N E C T T E N T A N D O L I G A R - + Personal Mix at the Server: Mistura Pessoal no Servidor: @@ -354,79 +354,79 @@ Bandeira do país do canal da mistura - + PAN PAN - + MUTE MUTE - + SOLO SOLO - + Alias/Name Nome/Alcunha - + Instrument Instrumento - + Location Localização - - - + + + Skill Level Nível de Habilidade - + Beginner Principiante - + Intermediate Intermediário - + Expert Avançado - + Musician Profile Perfil do músico - + Mute Mute - + Pan Pan - + Solo Solo @@ -485,7 +485,7 @@ CClientDlg - + Input Level Meter Medidor do Nível de Entrada @@ -494,7 +494,7 @@ Os indicadores do nível de entrada mostram o nível dos dois canais stereo da entrada de áudio selecionada. - + Make sure not to clip the input signal to avoid distortions of the audio signal. Certifique-se de não clipar o sinal de entrada para evitar distorções no sinal de áudio. @@ -519,17 +519,17 @@ não estiver ligado a um servidor. Isso pode ser feito silenciando (mute) o canal da entrada de áudio no dispositivo de reprodução (não no dispositivo de captura!) - + Input level meter Medidor do nível de entrada - + Simulates an analog LED level meter. Simula um medidor de nível analógico LED. - + Connect/Disconnect Button Botão de Ligar/Desligar @@ -538,7 +538,7 @@ Pressione este botão para se ligar a um servidor. Uma janela será aberta onde pode selecionar um servidor. Se já estiver ligado a um servidor, pressionar este botão encerrará a sessão. - + Connect and disconnect toggle button Botão de alternação entre ligar e desligar @@ -551,12 +551,12 @@ . - + Local Audio Input Fader Fader da Entrada Local de Ãudio - + Local audio input fader (left/right) Fader de entrada local de áudio (esquerdo/direito) @@ -577,194 +577,194 @@ Se este indicador LED ficar vermelho, não se vai divertir muito ao usar o - + This shows the level of the two stereo channels for your audio input. - + If the application is connected to a server and you play your instrument/sing into the microphone, the VU 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. - + For proper usage of the application, you should not hear your singing/instrument through the loudspeaker or your headphone when the software is not connected.This can be achieved by muting your input audio channel in the Playback mixer (not the Recording mixer!). - + Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. - + Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows - + Reverb effect - + Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. - + Reverb effect level setting - + Reverb Channel Selection - + With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. - + Left channel selection for reverb - + Right channel selection for reverb - + Green - + The delay is perfect for a jam session. - + Yellow - + Red - + Delay status LED indicator Indicador LED do estado de latência - + Opens a dialog where you can select a server to connect to. If you are connected, pressing this button will end the session. - + Shows the current audio delay status: - + A session is still possible but it may be harder to play. - + The delay is too large for jamming. - + If this LED indicator turns red, you will not have much fun using the application. - + The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: - + The sound card's buffer delay (buffer size) is too small (see Settings window). - + The upload or download stream rate is too high for your internet bandwidth. - + Buffers status LED indicator Indicador LED do estado dos buffers - - + + C&onnect &Ligar - + &View &Ver - + &Connection Setup... &Ligar a Servidor... - + My &Profile... Meu &Perfil... - + C&hat... &Mensagens... - + &Settings... &Definições... - + &Analyzer Console... Consola de &Análise... - + E&xit &Sair - + None Nenhum - + Center Centro - + R R - - + + L L @@ -773,12 +773,12 @@ Com o fader de áudio, os níveis relativos dos canais locais esquerdo e direito podem ser alterados. Para um sinal mono, atua como uma panorâmica entre os dois canais. Se, por exemplo, um microfone estiver ligado no canal direito e um instrumento estiver ligado no canal esquerdo, mais alto que o microfone, mova o fader de áudio numa direção em que a etiqueta acima do fader mostre - + , where , onde - + is the current attenuation indicator. é o indicador de atenuação atual. @@ -803,7 +803,7 @@ Com estes botões de seleção, pode ser escolhido o canal de entrada de áudio no qual o efeito de reverberação é aplicado. Pode ser selecionado o canal de entrada esquerdo ou direito. - + Delay Status LED LED do Estado da Latência @@ -812,7 +812,7 @@ O indicador LED do estado da latência mostra o estado atual do atraso do áudio. Se a luz estiver verde, o atraso é perfeito para uma jam session. Se a luz estiver amarela, uma sessão ainda é possível, mas pode ser mais difícil tocar sincronizado. Se a luz estiver vermelha, o atraso é demasiado grande para uma sessão de jamming. - + Buffers Status LED LED do Estado dos Buffers @@ -821,7 +821,7 @@ O indicador LED do estado dos buffers mostra o estado atual do áudio/transmissão. Se a luz estiver verde, não haverá buffer em excesso/déficit e o fluxo de áudio não será interrompido. Se a luz estiver vermelha, o fluxo de áudio é interrompido devido a um dos seguintes problemas: - + The network jitter buffer is not large enough for the current network/audio interface jitter. O jitter buffer da rede não é grande o suficiente para o jitter atual da interface de rede/áudio. @@ -834,27 +834,27 @@ A taxa de upload ou download é muito alta para a largura de banda disponível na ligação à Internet. - + The CPU of the client or server is at 100%. O CPU do cliente ou servidor está a 100%. - + Central Server Servidor Central - + user utilizador - + users utilizadores - + D&isconnect Desl&igar From 6f45cc5a008d8d27ac22586c883c6b20d24b5ac4 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 6 Jun 2020 22:37:17 +0200 Subject: [PATCH 112/936] small fix in German translation --- src/res/translation/translation_de_DE.qm | Bin 94504 -> 94502 bytes src/res/translation/translation_de_DE.ts | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index 72b40090c839324d5b1d811053215c5c7ad2d1e0..bc39ef6ee90099329cf0491956b5e2e71bc19c4f 100644 GIT binary patch delta 3716 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 ac*I+t4RN+a1$1Mx7A_1pv@n2e`|y7{J%uy? delta 3718 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 If the application is connected to a server and you play your instrument/sing into the microphone, the VU 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. - Wenn die Software verbunden ist und die spielst dein Instrument, dann sollte die Eingangspegelanzeige flackern. Wenn das nicht der Fall ist, dann ist wahrscheinlich der falsche Eingangskanal ausgewählt (z.B. der Line-In-Kanal anstatt des Mikrofonkanals) oder der Eingangsregler im (Windows) Systemmixer ist zu niedrig eingestellt. + Wenn die Software verbunden ist und du spielst dein Instrument, dann sollte die Eingangspegelanzeige flackern. Wenn das nicht der Fall ist, dann ist wahrscheinlich der falsche Eingangskanal ausgewählt (z.B. der Line-In-Kanal anstatt des Mikrofonkanals) oder der Eingangsregler im (Windows) Systemmixer ist zu niedrig eingestellt. From af0f9510f83d9f565b3f400f332eea489006cbf8 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 7 Jun 2020 09:01:52 +0200 Subject: [PATCH 113/936] resolve outstanding: using Qt5 connections instead of the old Qt4 ones --- src/analyzerconsole.cpp | 4 ++-- src/clientsettingsdlg.cpp | 28 ++++++++++++++-------------- src/connectdlg.cpp | 4 ++-- src/server.cpp | 4 ++-- src/serverdlg.cpp | 8 ++++---- src/socket.cpp | 8 ++++---- src/util.cpp | 12 ++++++------ 7 files changed, 34 insertions(+), 34 deletions(-) diff --git a/src/analyzerconsole.cpp b/src/analyzerconsole.cpp index d164864614..5e84d1bf87 100644 --- a/src/analyzerconsole.cpp +++ b/src/analyzerconsole.cpp @@ -71,8 +71,8 @@ CAnalyzerConsole::CAnalyzerConsole ( CClient* pNCliP, // Connections ------------------------------------------------------------- // timers - QObject::connect ( &TimerErrRateUpdate, SIGNAL ( timeout() ), - this, SLOT ( OnTimerErrRateUpdate() ) ); + QObject::connect ( &TimerErrRateUpdate, &QTimer::timeout, + this, &CAnalyzerConsole::OnTimerErrRateUpdate ); } void CAnalyzerConsole::showEvent ( QShowEvent* ) diff --git a/src/clientsettingsdlg.cpp b/src/clientsettingsdlg.cpp index 50e24e33a6..eecd5d26fe 100755 --- a/src/clientsettingsdlg.cpp +++ b/src/clientsettingsdlg.cpp @@ -400,26 +400,26 @@ CClientSettingsDlg::CClientSettingsDlg ( CClient* pNCliP, QWidget* parent, this, &CClientSettingsDlg::OnNewClientLevelEditingFinished ); // combo boxes - QObject::connect ( cbxSoundcard, SIGNAL ( activated ( int ) ), - this, SLOT ( OnSoundcardActivated ( int ) ) ); + QObject::connect ( cbxSoundcard, static_cast ( &QComboBox::activated ), + this, &CClientSettingsDlg::OnSoundcardActivated ); - QObject::connect ( cbxLInChan, SIGNAL ( activated ( int ) ), - this, SLOT ( OnLInChanActivated ( int ) ) ); + QObject::connect ( cbxLInChan, static_cast ( &QComboBox::activated ), + this, &CClientSettingsDlg::OnLInChanActivated ); - QObject::connect ( cbxRInChan, SIGNAL ( activated ( int ) ), - this, SLOT ( OnRInChanActivated ( int ) ) ); + QObject::connect ( cbxRInChan, static_cast ( &QComboBox::activated ), + this, &CClientSettingsDlg::OnRInChanActivated ); - QObject::connect ( cbxLOutChan, SIGNAL ( activated ( int ) ), - this, SLOT ( OnLOutChanActivated ( int ) ) ); + QObject::connect ( cbxLOutChan, static_cast ( &QComboBox::activated ), + this, &CClientSettingsDlg::OnLOutChanActivated ); - QObject::connect ( cbxROutChan, SIGNAL ( activated ( int ) ), - this, SLOT ( OnROutChanActivated ( int ) ) ); + QObject::connect ( cbxROutChan, static_cast ( &QComboBox::activated ), + this, &CClientSettingsDlg::OnROutChanActivated ); - QObject::connect ( cbxAudioChannels, SIGNAL ( activated ( int ) ), - this, SLOT ( OnAudioChannelsActivated ( int ) ) ); + QObject::connect ( cbxAudioChannels, static_cast ( &QComboBox::activated ), + this, &CClientSettingsDlg::OnAudioChannelsActivated ); - QObject::connect ( cbxAudioQuality, SIGNAL ( activated ( int ) ), - this, SLOT ( OnAudioQualityActivated ( int ) ) ); + QObject::connect ( cbxAudioQuality, static_cast ( &QComboBox::activated ), + this, &CClientSettingsDlg::OnAudioQualityActivated ); // buttons QObject::connect ( butDriverSetup, &QPushButton::clicked, diff --git a/src/connectdlg.cpp b/src/connectdlg.cpp index 6e716a4b82..6623cca511 100755 --- a/src/connectdlg.cpp +++ b/src/connectdlg.cpp @@ -169,8 +169,8 @@ CConnectDlg::CConnectDlg ( CClient* pNCliP, QObject::connect ( cbxServerAddr, &QComboBox::editTextChanged, this, &CConnectDlg::OnServerAddrEditTextChanged ); - QObject::connect ( cbxCentServAddrType, SIGNAL ( activated ( int ) ), - this, SLOT ( OnCentServAddrTypeChanged ( int ) ) ); + QObject::connect ( cbxCentServAddrType, static_cast ( &QComboBox::activated ), + this, &CConnectDlg::OnCentServAddrTypeChanged ); // check boxes QObject::connect ( chbExpandAll, &QCheckBox::stateChanged, diff --git a/src/server.cpp b/src/server.cpp index 0945fe43ff..1d5bcfcb3c 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -59,8 +59,8 @@ CHighPrecisionTimer::CHighPrecisionTimer ( const bool bNewUseDoubleSystemFrameSi veciTimeOutIntervals[2] = 0; // connect timer timeout signal - QObject::connect ( &Timer, SIGNAL ( timeout() ), - this, SLOT ( OnTimer() ) ); + QObject::connect ( &Timer, &QTimer::timeout, + this, &CHighPrecisionTimer::OnTimer ); } void CHighPrecisionTimer::Start() diff --git a/src/serverdlg.cpp b/src/serverdlg.cpp index 3b6c9c0bad..a23d36fb70 100755 --- a/src/serverdlg.cpp +++ b/src/serverdlg.cpp @@ -357,11 +357,11 @@ lvwClients->setMinimumHeight ( 140 ); this, &CServerDlg::OnLocationCityTextChanged ); // combo boxes - QObject::connect ( cbxLocationCountry, SIGNAL ( activated ( int ) ), - this, SLOT ( OnLocationCountryActivated ( int ) ) ); + QObject::connect ( cbxLocationCountry, static_cast ( &QComboBox::activated ), + this, &CServerDlg::OnLocationCountryActivated ); - QObject::connect ( cbxCentServAddrType, SIGNAL ( activated ( int ) ), - this, SLOT ( OnCentServAddrTypeActivated ( int ) ) ); + QObject::connect ( cbxCentServAddrType, static_cast ( &QComboBox::activated ), + this, &CServerDlg::OnCentServAddrTypeActivated ); // push buttons QObject::connect ( pbtNewRecording, &QPushButton::released, diff --git a/src/socket.cpp b/src/socket.cpp index b87f9d5fe0..36b63dd833 100755 --- a/src/socket.cpp +++ b/src/socket.cpp @@ -117,8 +117,8 @@ void CSocket::Init ( const quint16 iPortNumber ) QObject::connect ( this, &CSocket::ProtcolCLMessageReceived, pChannel, &CChannel::OnProtcolCLMessageReceived ); - QObject::connect ( this, SIGNAL ( NewConnection() ), - pChannel, SLOT ( OnNewConnection() ) ); + QObject::connect ( this, static_cast ( &CSocket::NewConnection ), + pChannel, &CChannel::OnNewConnection ); } else { @@ -130,8 +130,8 @@ void CSocket::Init ( const quint16 iPortNumber ) QObject::connect ( this, &CSocket::ProtcolCLMessageReceived, pServer, &CServer::OnProtcolCLMessageReceived ); - QObject::connect ( this, SIGNAL ( NewConnection ( int, CHostAddress ) ), - pServer, SLOT ( OnNewConnection ( int, CHostAddress ) ) ); + QObject::connect ( this, static_cast ( &CSocket::NewConnection ), + pServer, &CServer::OnNewConnection ); QObject::connect ( this, &CSocket::ServerFull, pServer, &CServer::OnServerFull ); diff --git a/src/util.cpp b/src/util.cpp index 9ede9148f8..f475f81218 100755 --- a/src/util.cpp +++ b/src/util.cpp @@ -731,17 +731,17 @@ CMusProfDlg::CMusProfDlg ( CClient* pNCliP, QObject::connect ( pedtAlias, &QLineEdit::textChanged, this, &CMusProfDlg::OnAliasTextChanged ); - QObject::connect ( pcbxInstrument, SIGNAL ( activated ( int ) ), - this, SLOT ( OnInstrumentActivated ( int ) ) ); + QObject::connect ( pcbxInstrument, static_cast ( &QComboBox::activated ), + this, &CMusProfDlg::OnInstrumentActivated ); - QObject::connect ( pcbxCountry, SIGNAL ( activated ( int ) ), - this, SLOT ( OnCountryActivated ( int ) ) ); + QObject::connect ( pcbxCountry, static_cast ( &QComboBox::activated ), + this, &CMusProfDlg::OnCountryActivated ); QObject::connect ( pedtCity, &QLineEdit::textChanged, this, &CMusProfDlg::OnCityTextChanged ); - QObject::connect ( pcbxSkill, SIGNAL ( activated ( int ) ), - this, SLOT ( OnSkillActivated ( int ) ) ); + QObject::connect ( pcbxSkill, static_cast ( &QComboBox::activated ), + this, &CMusProfDlg::OnSkillActivated ); QObject::connect ( butClose, &QPushButton::clicked, this, &CMusProfDlg::accept ); From 6a896522f08c6ade59cb8450ddd2fd00de7a2137 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 7 Jun 2020 10:08:00 +0200 Subject: [PATCH 114/936] Qt4 -> Qt5 connection --- src/clientsettingsdlg.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/clientsettingsdlg.cpp b/src/clientsettingsdlg.cpp index eecd5d26fe..b553cb7fa8 100755 --- a/src/clientsettingsdlg.cpp +++ b/src/clientsettingsdlg.cpp @@ -427,8 +427,8 @@ CClientSettingsDlg::CClientSettingsDlg ( CClient* pNCliP, QWidget* parent, // misc QObject::connect ( &SndCrdBufferDelayButtonGroup, - SIGNAL ( buttonClicked ( QAbstractButton* ) ), this, - SLOT ( OnSndCrdBufferDelayButtonGroupClicked ( QAbstractButton* ) ) ); + static_cast ( &QButtonGroup::buttonClicked ), + this, &CClientSettingsDlg::OnSndCrdBufferDelayButtonGroupClicked ); // Timers ------------------------------------------------------------------ From efc24ffdbea99fb4f37a888988f17c369ca3c72a Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 7 Jun 2020 12:09:30 +0200 Subject: [PATCH 115/936] improvement: only send channel levels if they are different from the previous ones --- src/server.cpp | 131 +++++++++++++++++++++++++++---------------------- src/server.h | 4 +- 2 files changed, 73 insertions(+), 62 deletions(-) diff --git a/src/server.cpp b/src/server.cpp index 1d5bcfcb3c..0c2110fa4f 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -238,6 +238,7 @@ CServer::CServer ( const int iNewMaxNumChan, iMaxNumChannels ( iNewMaxNumChan ), Socket ( this, iPortNumber ), Logging ( iMaxDaysHistory ), + iFrameCount ( 0 ), JamRecorder ( strRecordingDirName ), bWriteStatusHTMLFile ( false ), HighPrecisionTimer ( bNUseDoubleSystemFrameSize ), @@ -768,6 +769,7 @@ JitterMeas.Measure(); // some inits int iNumClients = 0; // init connected client counter bool bChannelIsNowDisconnected = false; + bool bUpdateChannelLevels = false; bool bSendChannelLevels = false; // Make put and get calls thread safe. Do not forget to unlock mutex @@ -865,6 +867,12 @@ JitterMeas.Measure(); vecvecdPannings[i][j] = vecChannels[iCurChanID].GetPan ( vecChanIDsCurConChan[j] ); } + // flag for updating channel levels (if at least one clients wants it) + if ( vecChannels[iCurChanID].ChannelLevelsRequired() ) + { + bUpdateChannelLevels = true; + } + // If the server frame size is smaller than the received OPUS frame size, we need a conversion // buffer which stores the large buffer. // Note that we have a shortcut here. If the conversion buffer is not needed, the boolean flag @@ -941,31 +949,13 @@ JitterMeas.Measure(); // one client is connected. if ( iNumClients > 0 ) { - // low frequency updates - if ( iFrameCount > CHANNEL_LEVEL_UPDATE_INTERVAL ) + // calculate levels for all connected clients + if ( bUpdateChannelLevels ) { - iFrameCount = 0; - - // Calculate channel levels if any client has requested them - for ( int i = 0; i < iNumClients; i++ ) - { - if ( vecChannels[vecChanIDsCurConChan[i]].ChannelLevelsRequired() ) - { - bSendChannelLevels = true; - - CreateLevelsForAllConChannels ( iNumClients, - vecNumAudioChannels, - vecvecsData, - vecChannelLevels ); - break; - } - } - } - iFrameCount++; - if ( bUseDoubleSystemFrameSize ) - { - // additional increment needed for double frame size to get to the same time interval - iFrameCount++; + bSendChannelLevels = CreateLevelsForAllConChannels ( iNumClients, + vecNumAudioChannels, + vecvecsData, + vecChannelLevels ); } for ( int i = 0; i < iNumClients; i++ ) @@ -1075,7 +1065,9 @@ opus_custom_encoder_ctl ( CurOpusEncoder, // send channel levels if ( bSendChannelLevels && vecChannels[iCurChanID].ChannelLevelsRequired() ) { - ConnLessProtocol.CreateCLChannelLevelListMes ( vecChannels[iCurChanID].GetAddress(), vecChannelLevels, iNumClients ); + ConnLessProtocol.CreateCLChannelLevelListMes ( vecChannels[iCurChanID].GetAddress(), + vecChannelLevels, + iNumClients ); } } } @@ -1403,7 +1395,7 @@ bool CServer::PutAudioData ( const CVector& vecbyRecBuf, int& iCurChanID ) { bool bNewConnection = false; // init return value - bool bChanOK = true; // init with ok, might be overwritten + bool bChanOK = true; // init with ok, might be overwritten Mutex.lock(); { @@ -1558,58 +1550,77 @@ void CServer::customEvent ( QEvent* pEvent ) } /// @brief Compute frame peak level for each client -void CServer::CreateLevelsForAllConChannels ( const int iNumClients, +bool CServer::CreateLevelsForAllConChannels ( const int iNumClients, const CVector& vecNumAudioChannels, const CVector > vecvecsData, CVector& vecLevelsOut ) { - int i, j, k; - - // init return vector with zeros since we mix all channels on that vector - vecLevelsOut.Reset ( 0 ); + int i, j, k; + bool bLevelsWereUpdated = false; - for ( j = 0; j < iNumClients; j++ ) + // low frequency updates + if ( iFrameCount > CHANNEL_LEVEL_UPDATE_INTERVAL ) { - // get a reference to the audio data - const CVector& vecsData = vecvecsData[j]; + iFrameCount = 0; + bLevelsWereUpdated = true; - double dCurLevel = 0.0; + // init return vector with zeros since we mix all channels on that vector + vecLevelsOut.Reset ( 0 ); - if ( vecNumAudioChannels[j] == 1 ) + for ( j = 0; j < iNumClients; j++ ) { - // mono - for ( i = 0; i < iServerFrameSizeSamples; i += 3 ) + // get a reference to the audio data + const CVector& vecsData = vecvecsData[j]; + + double dCurLevel = 0.0; + + if ( vecNumAudioChannels[j] == 1 ) { - dCurLevel = std::max ( dCurLevel, fabs ( static_cast ( vecsData[i] ) ) ); + // mono + for ( i = 0; i < iServerFrameSizeSamples; i += 3 ) + { + dCurLevel = std::max ( dCurLevel, fabs ( static_cast ( vecsData[i] ) ) ); + } } - } - else - { - // stereo: apply stereo-to-mono attenuation - for ( i = 0, k = 0; i < iServerFrameSizeSamples; i += 3, k += 6 ) + else { - double sMix = ( static_cast ( vecsData[k] ) + vecsData[k + 1] ) / 2; - dCurLevel = std::max ( dCurLevel, fabs ( sMix ) ); + // stereo: apply stereo-to-mono attenuation + for ( i = 0, k = 0; i < iServerFrameSizeSamples; i += 3, k += 6 ) + { + double sMix = ( static_cast ( vecsData[k] ) + vecsData[k + 1] ) / 2; + dCurLevel = std::max ( dCurLevel, fabs ( sMix ) ); + } } - } - // smoothing - const int iChId = vecChanIDsCurConChan[j]; - dCurLevel = std::max ( dCurLevel, vecChannels[iChId].GetPrevLevel() * 0.5 ); - vecChannels[iChId].SetPrevLevel ( dCurLevel ); + // smoothing + const int iChId = vecChanIDsCurConChan[j]; + dCurLevel = std::max ( dCurLevel, vecChannels[iChId].GetPrevLevel() * 0.5 ); + vecChannels[iChId].SetPrevLevel ( dCurLevel ); - // logarithmic measure - double dCurSigLevel = CStereoSignalLevelMeter::CalcLogResult ( dCurLevel ); + // logarithmic measure + double dCurSigLevel = CStereoSignalLevelMeter::CalcLogResult ( dCurLevel ); - // map to signal level meter - dCurSigLevel -= LOW_BOUND_SIG_METER; - dCurSigLevel *= NUM_STEPS_LED_BAR / ( UPPER_BOUND_SIG_METER - LOW_BOUND_SIG_METER ); + // map to signal level meter + dCurSigLevel -= LOW_BOUND_SIG_METER; + dCurSigLevel *= NUM_STEPS_LED_BAR / ( UPPER_BOUND_SIG_METER - LOW_BOUND_SIG_METER ); - if ( dCurSigLevel < 0 ) - { - dCurSigLevel = 0; + if ( dCurSigLevel < 0 ) + { + dCurSigLevel = 0; + } + + vecLevelsOut[j] = static_cast ( ceil ( dCurSigLevel ) ); } + } + + // increment the frame counter needed for low frequency update trigger + iFrameCount++; - vecLevelsOut[j] = static_cast ( ceil ( dCurSigLevel ) ); + if ( bUseDoubleSystemFrameSize ) + { + // additional increment needed for double frame size to get to the same time interval + iFrameCount++; } + + return bLevelsWereUpdated; } diff --git a/src/server.h b/src/server.h index f41fd04d62..d025cc75ac 100755 --- a/src/server.h +++ b/src/server.h @@ -298,7 +298,7 @@ class CServer : bool bUseDoubleSystemFrameSize; int iServerFrameSizeSamples; - void CreateLevelsForAllConChannels ( const int iNumClients, + bool CreateLevelsForAllConChannels ( const int iNumClients, const CVector& vecNumAudioChannels, const CVector > vecvecsData, CVector& vecLevelsOut ); @@ -347,7 +347,7 @@ class CServer : CServerLogging Logging; // channel level update frame interval counter - uint16_t iFrameCount; + int iFrameCount; // recording thread recorder::CJamRecorder JamRecorder; From 93ec45d9cc5e299c5b489da390f8e6e0e99d4b55 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 7 Jun 2020 13:08:06 +0200 Subject: [PATCH 116/936] some small fixes --- src/server.cpp | 46 +++++++++++++++++++++------------------------- 1 file changed, 21 insertions(+), 25 deletions(-) diff --git a/src/server.cpp b/src/server.cpp index 0c2110fa4f..acab3b19f4 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -753,18 +753,9 @@ void CServer::Stop() void CServer::OnTimer() { - int i, j, iUnused; - int iClientFrameSizeSamples = 0; // initialize to avoid a compiler warning - OpusCustomDecoder* CurOpusDecoder; - OpusCustomEncoder* CurOpusEncoder; - unsigned char* pCurCodedData; - /* -// TEST do a timer jitter measurement -static CTimingMeas JitterMeas ( 1000, "test2.dat" ); -JitterMeas.Measure(); +static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TEST do a timer jitter measurement */ - // Get data from all connected clients ------------------------------------- // some inits int iNumClients = 0; // init connected client counter @@ -777,7 +768,7 @@ JitterMeas.Measure(); Mutex.lock(); { // first, get number and IDs of connected channels - for ( i = 0; i < iMaxNumChannels; i++ ) + for ( int i = 0; i < iMaxNumChannels; i++ ) { if ( vecChannels[i].IsConnected() ) { @@ -791,8 +782,12 @@ JitterMeas.Measure(); } // process connected channels - for ( i = 0; i < iNumClients; i++ ) + for ( int i = 0; i < iNumClients; i++ ) { + int iClientFrameSizeSamples = 0; // initialize to avoid a compiler warning + OpusCustomDecoder* CurOpusDecoder; + unsigned char* pCurCodedData; + // get actual ID of current channel const int iCurChanID = vecChanIDsCurConChan[i]; @@ -852,7 +847,7 @@ JitterMeas.Measure(); } // get gains of all connected channels - for ( j = 0; j < iNumClients; j++ ) + for ( int j = 0; j < iNumClients; j++ ) { // The second index of "vecvecdGains" does not represent // the channel ID! Therefore we have to use @@ -916,11 +911,11 @@ JitterMeas.Measure(); // OPUS decode received data stream if ( CurOpusDecoder != nullptr ) { - iUnused = opus_custom_decode ( CurOpusDecoder, - pCurCodedData, - iCeltNumCodedBytes, - &vecvecsData[i][iB * SYSTEM_FRAME_SIZE_SAMPLES * vecNumAudioChannels[i]], - iClientFrameSizeSamples ); + Q_UNUSED ( opus_custom_decode ( CurOpusDecoder, + pCurCodedData, + iCeltNumCodedBytes, + &vecvecsData[i][iB * SYSTEM_FRAME_SIZE_SAMPLES * vecNumAudioChannels[i]], + iClientFrameSizeSamples ) ); } } @@ -960,6 +955,9 @@ JitterMeas.Measure(); for ( int i = 0; i < iNumClients; i++ ) { + int iClientFrameSizeSamples = 0; // initialize to avoid a compiler warning + OpusCustomEncoder* CurOpusEncoder; + // get actual ID of current channel const int iCurChanID = vecChanIDsCurConChan[i]; @@ -1046,11 +1044,11 @@ JitterMeas.Measure(); opus_custom_encoder_ctl ( CurOpusEncoder, OPUS_SET_BITRATE ( CalcBitRateBitsPerSecFromCodedBytes ( iCeltNumCodedBytes, iClientFrameSizeSamples ) ) ); - iUnused = opus_custom_encode ( CurOpusEncoder, - &vecsSendData[iB * SYSTEM_FRAME_SIZE_SAMPLES * vecNumAudioChannels[i]], - iClientFrameSizeSamples, - &vecbyCodedData[0], - iCeltNumCodedBytes ); + Q_UNUSED ( opus_custom_encode ( CurOpusEncoder, + &vecsSendData[iB * SYSTEM_FRAME_SIZE_SAMPLES * vecNumAudioChannels[i]], + iClientFrameSizeSamples, + &vecbyCodedData[0], + iCeltNumCodedBytes ) ); } // send separate mix to current clients @@ -1078,8 +1076,6 @@ opus_custom_encoder_ctl ( CurOpusEncoder, // does not consume any significant CPU when no client is connected. Stop(); } - - Q_UNUSED ( iUnused ) } /// @brief Mix all audio data from all clients together. From 8d8b52ae068591c148eb3a751558915eb21eaae2 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 8 Jun 2020 17:34:45 +0200 Subject: [PATCH 117/936] support sorting faders by channel name (#178) --- ChangeLog | 9 ++ src/audiomixerboard.cpp | 97 ++++++++++++++---- src/audiomixerboard.h | 6 +- src/clientdlg.cpp | 8 ++ src/clientdlg.h | 2 + src/res/translation/translation_de_DE.qm | Bin 94502 -> 94692 bytes src/res/translation/translation_de_DE.ts | 120 ++++++++++++----------- src/res/translation/translation_es_ES.ts | 120 ++++++++++++----------- src/res/translation/translation_fr_FR.ts | 120 ++++++++++++----------- src/res/translation/translation_it_IT.ts | 120 ++++++++++++----------- src/res/translation/translation_nl_NL.ts | 120 ++++++++++++----------- src/res/translation/translation_pl_PL.ts | 120 ++++++++++++----------- src/res/translation/translation_pt_PT.ts | 120 ++++++++++++----------- 13 files changed, 555 insertions(+), 407 deletions(-) diff --git a/ChangeLog b/ChangeLog index bae06e9291..630a4990f6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -6,6 +6,8 @@ 3.5.6git +- support sorting faders by channel name (#178) + - enable/disable recording from command line, coded by pljones (#228) - add Audacity "list of files" writer to jam recorder, by pljones (#315) @@ -24,6 +26,13 @@ by OS level Nap, Sleep, and Thread Priority systems, coded by AronVietti (#23) +TODO fix Windows installer: fix check for app run, fix Qt dlls missing + + + + + + 3.5.5 (2020-05-26) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 215c2fe18b..50e67f3957 100644 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -28,8 +28,7 @@ /******************************************************************************\ * CChanneFader * \******************************************************************************/ -CChannelFader::CChannelFader ( QWidget* pNW, - QHBoxLayout* pParentLayout ) +CChannelFader::CChannelFader ( QWidget* pNW ) { // create new GUI control objects and store pointers to them (note that // QWidget takes the ownership of the pMainGrid so that this only has @@ -120,9 +119,6 @@ CChannelFader::CChannelFader ( QWidget* pNW, pMainGrid->addWidget ( pMuteSoloBox, 0, Qt::AlignHCenter ); pMainGrid->addWidget ( pLabelInstBox ); - // add fader frame to audio mixer board layout - pParentLayout->addWidget( pFrame ); - // reset current fader Reset(); @@ -430,15 +426,21 @@ void CChannelFader::SetChannelLevel ( const uint16_t iLevel ) plbrChannelLevel->setValue ( iLevel ); } -void CChannelFader::SetText ( const CChannelInfo& ChanInfo ) +void CChannelFader::SetChannelInfos ( const CChannelInfo& cChanInfo ) { + // init properties for the tool tip + int iTTInstrument = CInstPictures::GetNotUsedInstrument(); + QLocale::Country eTTCountry = QLocale::AnyCountry; + + + // Label text -------------------------------------------------------------- // store original received name - strReceivedName = ChanInfo.strName; + strReceivedName = cChanInfo.strName; // break text at predefined position const int iBreakPos = MAX_LEN_FADER_TAG / 2; - QString strModText = ChanInfo.strName; + QString strModText = cChanInfo.strName; if ( strModText.length() > iBreakPos ) { @@ -446,13 +448,6 @@ void CChannelFader::SetText ( const CChannelInfo& ChanInfo ) } plblLabel->setText ( strModText ); -} - -void CChannelFader::SetChannelInfos ( const CChannelInfo& cChanInfo ) -{ - // init properties for the tool tip - int iTTInstrument = CInstPictures::GetNotUsedInstrument(); - QLocale::Country eTTCountry = QLocale::AnyCountry; // Instrument picture ------------------------------------------------------ @@ -630,8 +625,11 @@ CAudioMixerBoard::CAudioMixerBoard ( QWidget* parent, Qt::WindowFlags ) : for ( int i = 0; i < MAX_NUM_CHANNELS; i++ ) { - vecpChanFader[i] = new CChannelFader ( this, pMainLayout ); + vecpChanFader[i] = new CChannelFader ( this ); vecpChanFader[i]->Hide(); + + // add fader frame to audio mixer board layout + pMainLayout->addWidget ( vecpChanFader[i]->GetMainWidget() ); } // insert horizontal spacer @@ -759,10 +757,72 @@ void CAudioMixerBoard::HideAll() bNoFaderVisible = true; iMyChannelID = INVALID_INDEX; + // use original order of channel (by server ID) + ChangeFaderOrder ( false ); + // emit status of connected clients emit NumClientsChanged ( 0 ); // -> no clients connected } +void CAudioMixerBoard::ChangeFaderOrder ( const bool bDoSort ) +{ +//// TEST for using a dialog for drag'n'drop channels to sort individually +//QDialog* pDialog = new QDialog ( this ); // TODO put this in header as declaration +//QVBoxLayout* pLayout = new QVBoxLayout ( pDialog ); +//QListWidget* pList = new QListWidget ( pDialog ); +//pList->setDragDropMode ( QAbstractItemView::InternalMove ); +//pList->setSortingEnabled ( true ); +//pLayout->addWidget ( pList ); +//// TODO use current sort order, not the sorting by ID; up/down buttons; cancel button; title; etc. +//for ( int i = 0; i < MAX_NUM_CHANNELS; i++ ) +//{ +// QListWidgetItem* pNewItem = new QListWidgetItem ( vecpChanFader[i]->GetReceivedName() ); +// pNewItem->setData ( Qt::UserRole, i ); +// pList->addItem ( pNewItem ); +// pNewItem->setHidden ( !vecpChanFader[i]->IsVisible() ); +//} +//pDialog->exec(); +//QLayoutItem* child; +//while ( ( child = pMainLayout->takeAt ( 0 ) ) != nullptr ) +//{ +// pMainLayout->removeWidget ( child->widget() ); +//} +//for ( int i = 0; i < MAX_NUM_CHANNELS; i++ ) +//{ +// // add fader frame to audio mixer board layout +// pMainLayout->addWidget ( vecpChanFader[pList->item ( i )->data ( Qt::UserRole ).toInt()]->GetMainWidget() ); +//} +//// insert horizontal spacer +//pMainLayout->addItem ( new QSpacerItem ( 0, 0, QSizePolicy::Expanding ) ); +//delete pDialog; + +// TODO better solution to sort by names and get the indexes after sorting (here +// we utilize the "data" property to store the original ID value) + QListWidget ListWidget; + for ( int i = 0; i < MAX_NUM_CHANNELS; i++ ) + { + // fill list widget (used for sorting the channels) + QListWidgetItem* pNewItem = new QListWidgetItem ( vecpChanFader[i]->GetReceivedName() ); + pNewItem->setData ( Qt::UserRole, i ); + ListWidget.addItem ( pNewItem ); + + // remove channels from layout (note that we keep the spacer on the right side) + pMainLayout->removeWidget ( vecpChanFader[i]->GetMainWidget() ); + } + if ( bDoSort ) + { + ListWidget.sortItems(); + } + + // add channels to the layout in the new order (since we insert on the left, we + // have to use a backwards counting loop) + for ( int i = MAX_NUM_CHANNELS - 1; i >= 0; i-- ) + { + // add fader frame to the audio mixer board layout + pMainLayout->insertWidget ( 0, vecpChanFader[ListWidget.item ( i )->data ( Qt::UserRole ).toInt()]->GetMainWidget() ); + } +} + void CAudioMixerBoard::ApplyNewConClientList ( CVector& vecChanInfo ) { // we want to set the server name only if the very first faders appear @@ -841,10 +901,7 @@ void CAudioMixerBoard::ApplyNewConClientList ( CVector& vecChanInf } } - // set the text in the fader - vecpChanFader[i]->SetText ( vecChanInfo[j] ); - - // update other channel infos + // set the channel infos vecpChanFader[i]->SetChannelInfos ( vecChanInfo[j] ); bFaderIsUsed = true; diff --git a/src/audiomixerboard.h b/src/audiomixerboard.h index 2a18c704dd..df84a50b45 100644 --- a/src/audiomixerboard.h +++ b/src/audiomixerboard.h @@ -35,6 +35,7 @@ #include #include #include +#include #include "global.h" #include "util.h" #include "multicolorledbar.h" @@ -46,9 +47,8 @@ class CChannelFader : public QObject Q_OBJECT public: - CChannelFader ( QWidget* pNW, QHBoxLayout* pParentLayout ); + CChannelFader ( QWidget* pNW ); - void SetText ( const CChannelInfo& ChanInfo ); QString GetReceivedName() { return strReceivedName; } void SetChannelInfos ( const CChannelInfo& cChanInfo ); void Show() { pFrame->show(); } @@ -60,6 +60,7 @@ class CChannelFader : public QObject void SetDisplayChannelLevel ( const bool eNDCL ); bool GetDisplayChannelLevel(); void SetDisplayPans ( const bool eNDP ); + QFrame* GetMainWidget() { return pFrame; } void UpdateSoloState ( const bool bNewOtherSoloState ); void SetFaderLevel ( const int iLevel ); @@ -143,6 +144,7 @@ class CAudioMixerBoard : CAudioMixerBoard ( QWidget* parent = nullptr, Qt::WindowFlags f = nullptr ); void HideAll(); + void ChangeFaderOrder ( const bool bDoSort ); void ApplyNewConClientList ( CVector& vecChanInfo ); void SetServerName ( const QString& strNewServerName ); void SetGUIDesign ( const EGUIDesign eNewDesign ); diff --git a/src/clientdlg.cpp b/src/clientdlg.cpp index 0aa4059f00..6360b0f1bd 100755 --- a/src/clientdlg.cpp +++ b/src/clientdlg.cpp @@ -279,10 +279,18 @@ CClientDlg::CClientDlg ( CClient* pNCliP, SLOT ( close() ), QKeySequence ( Qt::CTRL + Qt::Key_Q ) ); + // Edit menu -------------------------------------------------------------- + pEditMenu = new QMenu ( tr ( "&Edit" ), this ); + + pEditMenu->addAction ( tr ( "&Sort Channels by Name..." ), this, + SLOT ( OnSortChannelsByName() ), QKeySequence ( Qt::CTRL + Qt::Key_N ) ); + + // Main menu bar ----------------------------------------------------------- pMenu = new QMenuBar ( this ); pMenu->addMenu ( pViewMenu ); + pMenu->addMenu ( pEditMenu ); pMenu->addMenu ( new CHelpMenu ( true, this ) ); // Now tell the layout about the menu diff --git a/src/clientdlg.h b/src/clientdlg.h index 0040db8a5c..c09999fc78 100755 --- a/src/clientdlg.h +++ b/src/clientdlg.h @@ -107,6 +107,7 @@ class CClientDlg : public QDialog, private Ui_CClientDlgBase void UpdateDisplay(); QMenu* pViewMenu; + QMenu* pEditMenu; QMenuBar* pMenu; QMenu* pInstrPictPopupMenu; QMenu* pCountryFlagPopupMenu; @@ -151,6 +152,7 @@ public slots: void OnOpenGeneralSettings() { ShowGeneralSettings(); } void OnOpenChatDialog() { ShowChatWindow(); } void OnOpenAnalyzerConsole() { ShowAnalyzerConsole(); } + void OnSortChannelsByName() { MainMixerBoard->ChangeFaderOrder ( true ); } void OnSettingsStateChanged ( int value ); void OnChatStateChanged ( int value ); diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index bc39ef6ee90099329cf0491956b5e2e71bc19c4f..c659532e524edd756785f75d4976e70f8adec928 100644 GIT binary patch delta 4015 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 diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index 1628c25b07..01b8e73a09 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -190,17 +190,17 @@ CAudioMixerBoard - + Server - + T R Y I N G T O C O N N E C T V E R B I N D U N G S A U F B A U - + Personal Mix at the Server: Eigener Mix am Server: @@ -208,7 +208,7 @@ CChannelFader - + Channel Level Kanalpegel @@ -217,12 +217,12 @@ Zeigt den Audiopegel vor dem Lautstärkeregler des Kanals. Allen verbundenen Musikern am Server wird ein Audiopegel zugewiesen. - + Input level of the current audio channel at the server Eingangspegel des aktuellen Musikers am Server - + Mixer Fader Kanalregler @@ -231,17 +231,17 @@ Regelt die Lautstärke des Kanals. Für alle Musiker, die gerade am Server verbunden sind, wird ein Lautstärkeregler angezeigt. Damit kann man seinen eigenen lokalen Mix erstellen. - + Local mix level setting of the current audio channel at the server Lokale Mixerpegeleinstellung des aktuellen Kanals am Server - + Status Indicator Statusanzeige - + Shows a status indication about the client which is assigned to this channel. Supported indicators are: Zeigt den Status über den Musiker, der dem Kanal zugewiesen ist. Unterstützte Indikatoren sind: @@ -250,12 +250,12 @@ Durchgestrichener Lautsprecher: Zeigt an, dass der andere Musiker dich stummgeschaltet hat. - + Status indicator label Statusanzeige - + Panning Pan @@ -264,17 +264,17 @@ Legt die Pan-Position von Links nach Rechts fest. Der Pan funktioniert nur im Stereo oder Mono-In/Stereo-Out Modus. - + Local panning position of the current audio channel at the server Lokale Pan-Position von dem aktuellen Audiokanal am Server - + With the Mute checkbox, the audio channel can be muted. Mit dem Mute-Schalter kann man den Kanal stumm schalten. - + Mute button Mute Schalter @@ -283,12 +283,12 @@ Bei aktiviertem Solo Status hört man nur diesen Kanal. Alle anderen Kanäle sind stumm geschaltet. Es ist möglich mehrere Kanäle auf Solo zu stellen. Dann hört man nur die Kanäle, die auf Solo gestellt wurden. - + Solo button Solo Schalter - + Fader Tag Kanalbeschriftung @@ -297,124 +297,124 @@ Mit der Kanalbeschriftung wird der verbundene Teilnehmen identifiziert. Der Name, ein Bild des Instruments und eine Flagge des eigenen Landes kann im eigenen Profil ausgewählt werden. - + Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. Zeigt den Audiopegel vor dem Lautstärkeregler des Kanals. Allen verbundenen Musikern am Server wird ein Audiopegel zugewiesen. - + Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. Regelt die Lautstärke des Kanals. Für alle Musiker, die gerade am Server verbunden sind, wird ein Lautstärkeregler angezeigt. Damit kann man seinen eigenen lokalen Mix erstellen. - + Speaker with cancellation stroke: Indicates that another client has muted you. Durchgestrichener Lautsprecher: Zeigt an, dass der andere Musiker dich stummgeschaltet hat. - + Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. Legt die Pan-Position von Links nach Rechts fest. Der Pan funktioniert nur im Stereo oder Mono-In/Stereo-Out Modus. - + With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. Bei aktiviertem Solo Status hört man nur diesen Kanal. Alle anderen Kanäle sind stumm geschaltet. Es ist möglich mehrere Kanäle auf Solo zu stellen. Dann hört man nur die Kanäle, die auf Solo gestellt wurden. - + The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. Mit der Kanalbeschriftung wird der verbundene Teilnehmen identifiziert. Der Name, ein Bild des Instruments und eine Flagge des eigenen Landes kann im eigenen Profil ausgewählt werden. - + Mixer channel instrument picture Mixerkanal Instrumentenbild - + Mixer channel label (fader tag) Mixerkanalbeschriftung - + Mixer channel country flag Mixerkanal Landesflagge - + PAN - + MUTE - + SOLO - + Alias/Name - + Instrument - + Location Standort - - - + + + Skill Level Spielstärke - + Beginner Anfänger - + Intermediate Mittlere Spielstärke - + Expert Experte - + Musician Profile Profil des Musikers - - - + + + Mute - - + + Pan - - - + + + Solo @@ -704,7 +704,7 @@ - + C&onnect &Verbinden @@ -744,23 +744,33 @@ &Beenden - + + &Edit + B&earbeiten + + + + &Sort Channels by Name... + &Sortiere Kanäle nach Namen... + + + None Keine - + Center Mitte - + R - + L @@ -835,22 +845,22 @@ Die CPU des Computers ist voll ausgelastet. - + Central Server Zentralserver - + user Musiker - + users Musiker - + D&isconnect &Trennen diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index 4670405854..5cd6729bea 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -194,17 +194,17 @@ CAudioMixerBoard - + Server Servidor - + T R Y I N G T O C O N N E C T I N T E N T A N D O C O N E C T A R - + Personal Mix at the Server: Mezcla Personal en el Servidor: @@ -212,7 +212,7 @@ CChannelFader - + Channel Level Nivel Canal @@ -221,12 +221,12 @@ Muestra el nivel de audio pre-fader de este canal. Todos los clientes conectados al servidor tienen un nivel de audio asignado, el mismo para cada cliente. - + Input level of the current audio channel at the server Nivel de entrada del canal de audio actual en el servidor - + Mixer Fader Fader Mezclador @@ -235,17 +235,17 @@ Ajusta el nivel de audio de este canal. Todos los clientes conectados al servidor tienen asignado un fader en el cliente, ajustando la mezcla local. - + Local mix level setting of the current audio channel at the server Ajuste local de la mezcla del canal de audio actual en el servidor - + Status Indicator Indicador de Estado - + Shows a status indication about the client which is assigned to this channel. Supported indicators are: Muestra una indicación del estado del cliente asignado a este canal. Los indicadores soportados son: @@ -254,12 +254,12 @@ Altavoz tachado: Indica que el otro cliente te ha muteado. - + Status indicator label Etiqueta indicador estado - + Panning Paneo @@ -268,17 +268,17 @@ Fija el paneo de Izquierda a Derecha del canal. Solo funciona en estéreo o preferiblemente en modo Entrada mono/Salida estéreo. - + Local panning position of the current audio channel at the server Posición local del paneo del canal de audio actual en el servidor - + With the Mute checkbox, the audio channel can be muted. Activando Mute, se puede mutear el canal de audio. - + Mute button Botón Mute @@ -287,12 +287,12 @@ Activando Solo, todos los demás canales de audio excepto este se mutean. Es posible activar esta función para más de un canal. - + Solo button Botón Solo - + Fader Tag Etiqueta Fader @@ -301,124 +301,124 @@ La etiqueta del fader identifica al cliente conectado. El nombre de la etiqueta, la imagen de tu instrumento y la bandera de tu país se pueden establecer en la ventana principal. - + Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. Muestra el nivel de audio pre-fader de este canal. Todos los clientes conectados al servidor tienen un nivel de audio asignado, el mismo valor para cada cliente. - + Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. Ajusta el nivel de audio de este canal. Todos los clientes conectados al servidor tendrán asignado un fader, mostrado en cada cliente, para ajustar la mezcla local. - + Speaker with cancellation stroke: Indicates that another client has muted you. Altavoz tachado: Indica que otro cliente te ha muteado. - + Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. Fija el paneo de Izquierda a Derecha del canal. Solo funciona en modo estéreo o preferiblemente en modo Entrada mono/Salida estéreo. - + With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. Activando Solo, todos los demás canales de audio excepto este se mutean. Es posible activar esta función para más de un canal. - + The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. La etiqueta del fader identifica al cliente conectado. El nombre de la etiqueta, la imagen de tu instrumento y la bandera de tu país se pueden establecer en la ventana principal. - + Mixer channel instrument picture Imagen mezclador canal instrumento - + Mixer channel label (fader tag) Etiqueta mezclador canal (etiqueta fader) - + Mixer channel country flag Bandera país mezclador canal - + PAN PAN - + MUTE MUTE - + SOLO SOLO - + Alias/Name Alias/Nombre - + Instrument Instrumento - + Location Ubicación - - - + + + Skill Level Nivel Habilidad - + Beginner Principiante - + Intermediate Intermedio - + Expert Experto - + Musician Profile Perfil Músico - - - + + + Mute Mute - - + + Pan Paneo - - - + + + Solo Solo @@ -716,7 +716,7 @@ - + C&onnect C&onectar @@ -756,23 +756,33 @@ S&alir - + + &Edit + + + + + &Sort Channels by Name... + + + + None Ninguno - + Center Centro - + R R - + L L @@ -847,22 +857,22 @@ El procesador del cliente o del servidor está al 100%. - + Central Server Servidor Central - + user usuario - + users usuarios - + D&isconnect D&esconectar diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index c0e35cdaab..0cd86ee890 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -202,17 +202,17 @@ CAudioMixerBoard - + Server Serveur - + T R Y I N G T O C O N N E C T T E N T A T I V E D E C O N N E X I O N - + Personal Mix at the Server: Mixage personnel du serveur : @@ -220,7 +220,7 @@ CChannelFader - + Channel Level Niveau de canal @@ -229,12 +229,12 @@ Affiche le niveau audio pré-fader de ce canal. Tous les clients connectés au serveur se verront attribuer un niveau audio, la même valeur pour chaque client. - + Input level of the current audio channel at the server Niveau d'entrée du canal audio actuel sur le serveur - + Mixer Fader Charriot du mixeur @@ -243,17 +243,17 @@ Règle le niveau audio de ce canal. Tous les clients connectés au serveur se verront attribuer un chariot audio à chaque client, ce qui permettra d'ajuster le mixage local. - + Local mix level setting of the current audio channel at the server Réglage du niveau de mixage local du canal audio actuel sur le serveur - + Status Indicator Indicateur d'état - + Shows a status indication about the client which is assigned to this channel. Supported indicators are: Affiche une indication sur l'état du client qui est affecté à ce canal. Les indicateurs pris en charge sont : @@ -262,12 +262,12 @@ Haut-parleur avec barre d'annulation : indique que l'autre client vous a mis en sourdine. - + Status indicator label Étiquette d'indicateur d'état - + Panning Panoramique @@ -276,17 +276,17 @@ Règle la position panoramique du canal de gauche à droite. Fonctionne uniquement en mode stéréo ou de préférence en mode entrée mono/sortie stéréo. - + Local panning position of the current audio channel at the server Position panoramique locale du canal audio actuel sur le serveur - + With the Mute checkbox, the audio channel can be muted. En cochant la case Muet, le canal audio peut être mis en sourdine. - + Mute button Bouton de sourdine @@ -295,12 +295,12 @@ En cochant la case Solo, le canal audio peut être réglé sur solo, ce qui signifie que tous les autres canaux, à l'exception du canal actuel, sont mis en sourdine. Il est possible de mettre plus d'un canal en solo. - + Solo button Bouton de solo - + Fader Tag Étiquette de chariot @@ -309,124 +309,124 @@ L'étiquette de chariot identifie le client connecté. Le nom du tag, la photo de votre instrument et un drapeau de votre pays peuvent être définis dans la fenêtre principale. - + Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. - + Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. - + Speaker with cancellation stroke: Indicates that another client has muted you. - + Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. - + With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. - + The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. - + Mixer channel instrument picture Image d'instrument de canal de mixeur - + Mixer channel label (fader tag) Label de canal de mixeur (étiquette de chariot) - + Mixer channel country flag Drapeau de pays de canal de mixeur - + PAN PAN - + MUTE MUET - + SOLO SOLO - + Alias/Name Pseudo/nom - + Instrument Instrument - + Location Localisation - - - + + + Skill Level Niveau de compétence - + Beginner Débutant - + Intermediate Intermédiaire - + Expert Expert - + Musician Profile Profil de musicien - - - + + + Mute Muet - - + + Pan Pan - - - + + + Solo Solo @@ -712,7 +712,7 @@ - + C&onnect Se c&onnecter @@ -752,23 +752,33 @@ &Quitter - + + &Edit + + + + + &Sort Channels by Name... + + + + None Aucun - + Center Centre - + R D - + L G @@ -843,22 +853,22 @@ Le processeur du client ou du serveur est à 100%. - + Central Server Serveur central - + user utilisateur - + users utilisateurs - + D&isconnect Dé&connecter diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index afb40af2a2..251b34bdea 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -190,17 +190,17 @@ CAudioMixerBoard - + Server Server - + T R Y I N G T O C O N N E C T I N A T T E S A D I C O N N E S S I O N E - + Personal Mix at the Server: Mixer personale sul Server: @@ -208,27 +208,27 @@ CChannelFader - - + + Pan Bilanciamento - - - + + + Mute Mute - - - + + + Solo Solo - + Channel Level Volume @@ -237,12 +237,12 @@ Visualizza il livello audio pre-fader di questo canale. A tutti i client connessi al server verrà assegnato un livello audio, lo stesso valore per ciascun client. - + Input level of the current audio channel at the server Livello di input del canale audio corrente sul server - + Mixer Fader Mixer Fader @@ -251,17 +251,17 @@ Regola il livello audio di questo canale. A tutti i client connessi al server verrà assegnato un fader audio su ciascun client, regolando il mix locale. - + Local mix level setting of the current audio channel at the server Impostazione del livello di volume locale del canale audio corrente sul server - + Status Indicator Indicatore di Stato - + Shows a status indication about the client which is assigned to this channel. Supported indicators are: Visualizza lo stato del client assegnato a questo canale. Gli Stati supportati sono: @@ -270,12 +270,12 @@ Altoparlante segnato: Indica che un altro client ha messo in mute il tuo canale. - + Status indicator label Etichetta dell'indicatore di stato - + Panning Bilanciamento @@ -284,17 +284,17 @@ Imposta il Bilanciamento da Sinistra a Destra del canale. Funzione abilitata in modalità stereo oppure in modalità mono in/stereo out. - + Local panning position of the current audio channel at the server Bilancimento locale del canale audio corrente sul server - + With the Mute checkbox, the audio channel can be muted. Quando il Mute è selezionato, il canale audio è mutato. - + Mute button Pulsante Mute @@ -303,12 +303,12 @@ Quando il Solo è attivo, il canale audio sarà in modalità solista escludendo gli altri canali che non saranno più udibili. E' possibile attivare il solo su più canali per sentirli contemporaneamente. - + Solo button Pulsante Solo - + Fader Tag Tag Fader @@ -317,104 +317,104 @@ Il tag fader identifica il client connesso. Il nome del tag, l'immagine del tuo strumento e una bandiera del tuo paese possono essere impostati nella finestra principale del profilo. - + Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. - + Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. - + Speaker with cancellation stroke: Indicates that another client has muted you. - + Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. - + With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. - + The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. - + Mixer channel instrument picture Immagine dello strumento - + Mixer channel label (fader tag) Etichetta del Canale (fader tag) - + Mixer channel country flag Bandiera del Paese - + PAN Bil. (L / R) - + MUTE MUTE - + SOLO SOLO - + Alias/Name Identificativo/Nome - + Instrument Strumento - + Location Località - - - + + + Skill Level Livello di Preparazione - + Beginner Principiante - + Intermediate Livello Intermedio - + Expert Esperto - + Musician Profile Profilo del Musicista @@ -549,7 +549,7 @@ - + L L @@ -772,7 +772,7 @@ - + C&onnect C&onnetti @@ -812,37 +812,47 @@ &Uscita - + + &Edit + + + + + &Sort Channels by Name... + + + + None Nullo - + Center Centro - + R R - + Central Server Server Centrale - + user utente - + users utenti - + D&isconnect D&isconnetti diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index a2be5e4332..92373b3bae 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -190,17 +190,17 @@ CAudioMixerBoard - + Server Server - + T R Y I N G T O C O N N E C T A A N H E T V E R B I N D E N - + Personal Mix at the Server: @@ -208,27 +208,27 @@ CChannelFader - - + + Pan Pan - - - + + + Mute Demp - - - + + + Solo Solo - + Channel Level Kanaalniveau @@ -237,12 +237,12 @@ Geeft het pre-fader-audioniveau van dit kanaal weer. Alle verbonden clients op de server krijgen een audioniveau toegewezen, dezelfde waarde voor elke client. - + Input level of the current audio channel at the server Invoerniveau van het huidige audiokanaal op de server - + Mixer Fader Mixer Fader @@ -251,42 +251,42 @@ Past het geluidsniveau van dit kanaal aan. Alle verbonden clients op de server krijgen een audiofader toegewezen bij elke client, waarbij de lokale mix wordt aangepast. - + Local mix level setting of the current audio channel at the server Lokale instelling van het mixniveau van het huidige audiokanaal op de server - + Status Indicator - + Shows a status indication about the client which is assigned to this channel. Supported indicators are: - + Status indicator label - + Panning - + Local panning position of the current audio channel at the server - + With the Mute checkbox, the audio channel can be muted. Met het selectievakje Demp kan het audiokanaal worden gedempt. - + Mute button Dempknop @@ -295,12 +295,12 @@ Met het selectievakje Solo kan het audiokanaal worden ingesteld op solo, zodat alle overige kanalen worden gedempt. Het is mogelijk om meer dan één kanaal op solo in te stellen. - + Solo button Soloknop - + Fader Tag Fader tag @@ -309,104 +309,104 @@ De fadertag identificeert de verbonden client. De tagnaam, de afbeelding van uw instrument en een vlag van uw land kunnen in het hoofdvenster worden ingesteld. - + Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. - + Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. - + Speaker with cancellation stroke: Indicates that another client has muted you. - + Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. - + With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. - + The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. - + Mixer channel instrument picture Afbeelding van het mengkanaalinstrument - + Mixer channel label (fader tag) Label van het mengkanaal (faderlabel) - + Mixer channel country flag Landvlag van het kanaal - + PAN - + MUTE DEMP - + SOLO SOLO - + Alias/Name Alias/Naam - + Instrument Instrument - + Location Locatie - - - + + + Skill Level Vaardigheidssniveau - + Beginner Beginner - + Intermediate Gemiddeld - + Expert Gevorderd - + Musician Profile Muzikantenprofiel @@ -541,7 +541,7 @@ - + L L @@ -764,7 +764,7 @@ - + C&onnect C&onnect @@ -804,37 +804,47 @@ E&xit - + + &Edit + + + + + &Sort Channels by Name... + + + + None Geen - + Center Centrum - + R R - + Central Server - + user gebruiker - + users gebruikers - + D&isconnect &Afmelden diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index 203d8fb849..9265aec4eb 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -158,17 +158,17 @@ CAudioMixerBoard - + Server - + T R Y I N G T O C O N N E C T - + Personal Mix at the Server: @@ -176,189 +176,189 @@ CChannelFader - - + + Pan - - - + + + Mute - - - + + + Solo - + Channel Level - + Input level of the current audio channel at the server - + Mixer Fader - + Local mix level setting of the current audio channel at the server - + Status Indicator - + Shows a status indication about the client which is assigned to this channel. Supported indicators are: - + Status indicator label - + Panning - + Local panning position of the current audio channel at the server - + With the Mute checkbox, the audio channel can be muted. - + Mute button - + Solo button - + Fader Tag - + Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. - + Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. - + Speaker with cancellation stroke: Indicates that another client has muted you. - + Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. - + With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. - + The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. - + Mixer channel instrument picture - + Mixer channel label (fader tag) - + Mixer channel country flag - + PAN - + MUTE - + SOLO - + Alias/Name - + Instrument - + Location - - - + + + Skill Level - + Beginner - + Intermediate - + Expert - + Musician Profile @@ -453,7 +453,7 @@ - + L @@ -624,7 +624,7 @@ - + C&onnect @@ -664,37 +664,47 @@ - + + &Edit + + + + + &Sort Channels by Name... + + + + None - + Center - + R - + Central Server - + user - + users - + D&isconnect diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index 336a46e609..4d76b3c26b 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -202,17 +202,17 @@ CAudioMixerBoard - + Server Servidor - + T R Y I N G T O C O N N E C T T E N T A N D O L I G A R - + Personal Mix at the Server: Mistura Pessoal no Servidor: @@ -220,7 +220,7 @@ CChannelFader - + Channel Level Nível do Canal @@ -229,12 +229,12 @@ Mostra o nível de áudio pré-fader deste canal. Todos os clientes ligados ao servidor terão atribuído um nível de áudio, o mesmo valor para cada cliente. - + Input level of the current audio channel at the server Nível de entrada deste canal de áudio do servidor - + Mixer Fader Fader da Mistura @@ -243,17 +243,17 @@ Ajusta o nível de áudio deste canal. Por cada cliente ligado ao servidor será atribuído um fader de áudio em todos os clientes, podendo cada um ajustar a sua mistura local. - + Local mix level setting of the current audio channel at the server Configuração do nível de mistura local deste canal de áudio do servidor - + Status Indicator Indicador de Estado - + Shows a status indication about the client which is assigned to this channel. Supported indicators are: Mostra uma indicação de estado sobre o cliente que está atribuído a este canal. Os indicadores suportados são: @@ -262,12 +262,12 @@ Alti-falante com sinal de proibição: Indica que o cliente silenciou o teu canal. - + Status indicator label Etiqueta do indicador de estado - + Panning Panorâmica @@ -276,17 +276,17 @@ Define a posição de panorâmica da esquerda para a direita do canal. Funciona apenas no modo estéreo ou, de preferência, no modo Entrada Mono/Saída Estéreo. - + Local panning position of the current audio channel at the server Posição de panorâmica local do canal de áudio actual no servidor - + With the Mute checkbox, the audio channel can be muted. Com a caixa de seleção Mute, o canal de áudio pode ser silenciado. - + Mute button Botão Mute @@ -295,12 +295,12 @@ Com a caixa de seleção Solo, o canal de áudio pode ser definido como solo, o que significa que todos os outros canais, exceto o canal atual, serão silenciados. É possível definir mais que um canal no modo solo. - + Solo button Botão Solo - + Fader Tag Identificador do Fader @@ -309,124 +309,124 @@ O Identificador do fader identifica o cliente ligado. O nome no identificador, a imagem do instrumento e a bandeira do país podem ser definidos no Meu Perfil. - + Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. - + Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. - + Speaker with cancellation stroke: Indicates that another client has muted you. - + Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. - + With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. - + The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. - + Mixer channel instrument picture Imagem do instrumento do canal da mistura - + Mixer channel label (fader tag) Identificação do canal da mistura (identificador do fader) - + Mixer channel country flag Bandeira do país do canal da mistura - + PAN PAN - + MUTE MUTE - + SOLO SOLO - + Alias/Name Nome/Alcunha - + Instrument Instrumento - + Location Localização - - - + + + Skill Level Nível de Habilidade - + Beginner Principiante - + Intermediate Intermediário - + Expert Avançado - + Musician Profile Perfil do músico - - - + + + Mute Mute - - + + Pan Pan - - - + + + Solo Solo @@ -708,7 +708,7 @@ - + C&onnect &Ligar @@ -748,23 +748,33 @@ &Sair - + + &Edit + + + + + &Sort Channels by Name... + + + + None Nenhum - + Center Centro - + R R - + L L @@ -839,22 +849,22 @@ O CPU do cliente ou servidor está a 100%. - + Central Server Servidor Central - + user utilizador - + users utilizadores - + D&isconnect Desl&igar From c4866aff2fcc2465c64b92b16360e11e2cd16fab Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 8 Jun 2020 17:40:59 +0200 Subject: [PATCH 118/936] code cleanup --- src/audiomixerboard.cpp | 30 ------------------------------ 1 file changed, 30 deletions(-) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 50e67f3957..8a0d80311c 100644 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -766,36 +766,6 @@ void CAudioMixerBoard::HideAll() void CAudioMixerBoard::ChangeFaderOrder ( const bool bDoSort ) { -//// TEST for using a dialog for drag'n'drop channels to sort individually -//QDialog* pDialog = new QDialog ( this ); // TODO put this in header as declaration -//QVBoxLayout* pLayout = new QVBoxLayout ( pDialog ); -//QListWidget* pList = new QListWidget ( pDialog ); -//pList->setDragDropMode ( QAbstractItemView::InternalMove ); -//pList->setSortingEnabled ( true ); -//pLayout->addWidget ( pList ); -//// TODO use current sort order, not the sorting by ID; up/down buttons; cancel button; title; etc. -//for ( int i = 0; i < MAX_NUM_CHANNELS; i++ ) -//{ -// QListWidgetItem* pNewItem = new QListWidgetItem ( vecpChanFader[i]->GetReceivedName() ); -// pNewItem->setData ( Qt::UserRole, i ); -// pList->addItem ( pNewItem ); -// pNewItem->setHidden ( !vecpChanFader[i]->IsVisible() ); -//} -//pDialog->exec(); -//QLayoutItem* child; -//while ( ( child = pMainLayout->takeAt ( 0 ) ) != nullptr ) -//{ -// pMainLayout->removeWidget ( child->widget() ); -//} -//for ( int i = 0; i < MAX_NUM_CHANNELS; i++ ) -//{ -// // add fader frame to audio mixer board layout -// pMainLayout->addWidget ( vecpChanFader[pList->item ( i )->data ( Qt::UserRole ).toInt()]->GetMainWidget() ); -//} -//// insert horizontal spacer -//pMainLayout->addItem ( new QSpacerItem ( 0, 0, QSizePolicy::Expanding ) ); -//delete pDialog; - // TODO better solution to sort by names and get the indexes after sorting (here // we utilize the "data" property to store the original ID value) QListWidget ListWidget; From 8876e2c569fddac49362fed7eeac582da7955bcc Mon Sep 17 00:00:00 2001 From: Tormod Volden Date: Mon, 8 Jun 2020 17:50:00 +0200 Subject: [PATCH 119/936] Update Debian packaging With qmake now doing a more standard installation, there is less left to do in our debian/rules. Signed-off-by: Tormod Volden --- distributions/debian/changelog | 2 +- distributions/debian/copyright | 3 ++- distributions/debian/jamulus.install | 1 + distributions/debian/rules | 13 +------------ distributions/debian/source/format | 1 + 5 files changed, 6 insertions(+), 14 deletions(-) create mode 100644 distributions/debian/jamulus.install create mode 100644 distributions/debian/source/format diff --git a/distributions/debian/changelog b/distributions/debian/changelog index efa48b11ab..00cd2ce256 100644 --- a/distributions/debian/changelog +++ b/distributions/debian/changelog @@ -1,4 +1,4 @@ -jamulus (3.5.2) UNRELEASED; urgency=medium +jamulus (3.5.6~git-0) UNRELEASED; urgency=medium * Initial release. diff --git a/distributions/debian/copyright b/distributions/debian/copyright index a34612a010..9e01119192 100644 --- a/distributions/debian/copyright +++ b/distributions/debian/copyright @@ -9,8 +9,9 @@ License: GPL-2 Files: debian/* Copyright: + 2020 Tormod Volden 2020 Olivier Humbert - 2019 "Marc Landolt jr" + 2019 Marc Landolt jr License: GPL-2 License: GPL-2 diff --git a/distributions/debian/jamulus.install b/distributions/debian/jamulus.install new file mode 100644 index 0000000000..918bab6fec --- /dev/null +++ b/distributions/debian/jamulus.install @@ -0,0 +1 @@ +distributions/jamulus-server.service lib/systemd/system diff --git a/distributions/debian/rules b/distributions/debian/rules index b98816c934..2cf5eb13f9 100755 --- a/distributions/debian/rules +++ b/distributions/debian/rules @@ -3,19 +3,8 @@ dh $@ override_dh_auto_configure: - qmake CONFIG+=noupcasename Jamulus.pro + qmake CONFIG+=noupcasename PREFIX=/usr Jamulus.pro override_dh_auto_build: cd src/res/translation && lrelease *.ts dh_auto_build - -override_dh_usrlocal: - echo $$(pwd) - mkdir -p $$(pwd)/debian/jamulus/usr/bin/ - install -D -m 0755 jamulus $$(pwd)/debian/jamulus/usr/bin/ - mkdir -p $$(pwd)/debian/jamulus/usr/share/applications/ - install -D -m 0755 $$(pwd)/distributions/jamulus.desktop $$(pwd)/debian/jamulus/usr/share/applications/ - mkdir -p $$(pwd)/debian/jamulus/usr/share/icons/hicolor/512x512/apps/ - cp $$(pwd)/distributions/jamulus.png $$(pwd)/debian/jamulus/usr/share/icons/hicolor/512x512/apps/ - mkdir -p $$(pwd)/debian/jamulus/lib/systemd/system - cp $$(pwd)/distributions/jamulus-server.service $$(pwd)/debian/jamulus/lib/systemd/system/ diff --git a/distributions/debian/source/format b/distributions/debian/source/format new file mode 100644 index 0000000000..163aaf8d82 --- /dev/null +++ b/distributions/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) From 4b4170e0856c9abe89ab362c681ab13e5aecf868 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 8 Jun 2020 20:18:54 +0200 Subject: [PATCH 120/936] fix Windows installer detection of running Jamulus instance, based on code from doloopuntil --- windows/FindProcDLL.dll | Bin 31744 -> 0 bytes windows/installer.nsi | 11 ++++++----- windows/nsProcess.dll | Bin 0 -> 4608 bytes 3 files changed, 6 insertions(+), 5 deletions(-) delete mode 100644 windows/FindProcDLL.dll create mode 100644 windows/nsProcess.dll diff --git a/windows/FindProcDLL.dll b/windows/FindProcDLL.dll deleted file mode 100644 index 790c22796985f3116dab58d6aeb2de751a8eb113..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31744 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 literal 0 HcmV?d00001 From 160f84e7a84c2106361bad5f855adc81b181e971 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 8 Jun 2020 21:01:20 +0200 Subject: [PATCH 121/936] fix Windows installer: fix Qt dlls missing --- ChangeLog | 4 --- windows/installer.nsi | 59 ++++++++++++++++++++++++++++++++++--------- 2 files changed, 47 insertions(+), 16 deletions(-) diff --git a/ChangeLog b/ChangeLog index 630a4990f6..66c53151ad 100644 --- a/ChangeLog +++ b/ChangeLog @@ -26,10 +26,6 @@ by OS level Nap, Sleep, and Thread Priority systems, coded by AronVietti (#23) -TODO fix Windows installer: fix check for app run, fix Qt dlls missing - - - diff --git a/windows/installer.nsi b/windows/installer.nsi index 53b19fb3c2..326f5bba49 100755 --- a/windows/installer.nsi +++ b/windows/installer.nsi @@ -57,19 +57,15 @@ Section File "$%QTDIR64%\bin\Qt5Gui.dll" File "$%QTDIR64%\bin\Qt5Widgets.dll" File "$%QTDIR64%\bin\Qt5Network.dll" + File "$%QTDIR64%\bin\Qt5Svg.dll" File "$%QTDIR64%\bin\Qt5Xml.dll" - File "$%QTDIR64%\bin\D3DCompiler_47.dll" - File "$%QTDIR64%\bin\libEGL.dll" - File "$%QTDIR64%\bin\libGLESv2.dll" ${Else} File "$%QTDIR32%\bin\Qt5Core.dll" File "$%QTDIR32%\bin\Qt5Gui.dll" File "$%QTDIR32%\bin\Qt5Widgets.dll" File "$%QTDIR32%\bin\Qt5Network.dll" + File "$%QTDIR32%\bin\Qt5Svg.dll" File "$%QTDIR32%\bin\Qt5Xml.dll" - File "$%QTDIR32%\bin\D3DCompiler_47.dll" - File "$%QTDIR32%\bin\libEGL.dll" - File "$%QTDIR32%\bin\libGLESv2.dll" ${EndIf} ; other files @@ -106,10 +102,40 @@ Section SetOutPath $INSTDIR\platforms ${If} ${RunningX64} File "$%QTDIR64%\plugins\platforms\qwindows.dll" - File "$%QTDIR64%\plugins\platforms\qminimal.dll" ${Else} File "$%QTDIR32%\plugins\platforms\qwindows.dll" - File "$%QTDIR32%\plugins\platforms\qminimal.dll" + ${EndIf} + + ; additional styles dlls + SetOutPath $INSTDIR\styles + ${If} ${RunningX64} + File "$%QTDIR64%\plugins\styles\qwindowsvistastyle.dll" + ${Else} + File "$%QTDIR32%\plugins\styles\qwindowsvistastyle.dll" + ${EndIf} + + ; additional imageformats dlls + SetOutPath $INSTDIR\imageformats + ${If} ${RunningX64} + File "$%QTDIR64%\plugins\imageformats\qgif.dll" + File "$%QTDIR64%\plugins\imageformats\qicns.dll" + File "$%QTDIR64%\plugins\imageformats\qico.dll" + File "$%QTDIR64%\plugins\imageformats\qjpeg.dll" + File "$%QTDIR64%\plugins\imageformats\qsvg.dll" + File "$%QTDIR64%\plugins\imageformats\qtga.dll" + File "$%QTDIR64%\plugins\imageformats\qtiff.dll" + File "$%QTDIR64%\plugins\imageformats\qwbmp.dll" + File "$%QTDIR64%\plugins\imageformats\qwebp.dll" + ${Else} + File "$%QTDIR32%\plugins\imageformats\qgif.dll" + File "$%QTDIR32%\plugins\imageformats\qicns.dll" + File "$%QTDIR32%\plugins\imageformats\qico.dll" + File "$%QTDIR32%\plugins\imageformats\qjpeg.dll" + File "$%QTDIR32%\plugins\imageformats\qsvg.dll" + File "$%QTDIR32%\plugins\imageformats\qtga.dll" + File "$%QTDIR32%\plugins\imageformats\qtiff.dll" + File "$%QTDIR32%\plugins\imageformats\qwbmp.dll" + File "$%QTDIR32%\plugins\imageformats\qwebp.dll" ${EndIf} SectionEnd @@ -134,14 +160,23 @@ Delete $INSTDIR\Qt5Core.dll Delete $INSTDIR\Qt5Gui.dll Delete $INSTDIR\Qt5Widgets.dll Delete $INSTDIR\Qt5Network.dll +Delete $INSTDIR\Qt5Svg.dll Delete $INSTDIR\Qt5Xml.dll -Delete $INSTDIR\D3DCompiler_47.dll -Delete $INSTDIR\libEGL.dll -Delete $INSTDIR\libGLESv2.dll Delete $INSTDIR\COPYING Delete $INSTDIR\platforms\qwindows.dll -Delete $INSTDIR\platforms\qminimal.dll RMDir $INSTDIR\platforms +Delete $INSTDIR\styles\qwindowsvistastyle.dll +RMDir $INSTDIR\styles +Delete $INSTDIR\imageformats\qgif.dll +Delete $INSTDIR\imageformats\qicns.dll +Delete $INSTDIR\imageformats\qico.dll +Delete $INSTDIR\imageformats\qjpeg.dll +Delete $INSTDIR\imageformats\qsvg.dll +Delete $INSTDIR\imageformats\qtga.dll +Delete $INSTDIR\imageformats\qtiff.dll +Delete $INSTDIR\imageformats\qwbmp.dll +Delete $INSTDIR\imageformats\qwebp.dll +RMDir $INSTDIR\imageformats RMDir $INSTDIR SectionEnd From dccfeb88c6ff7c63a928066760c2c222d35bab47 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 8 Jun 2020 21:12:33 +0200 Subject: [PATCH 122/936] "Sort Channels by Name" -> "Sort Channel Users by Name" --- src/clientdlg.cpp | 2 +- src/res/translation/translation_de_DE.qm | Bin 94692 -> 94688 bytes src/res/translation/translation_de_DE.ts | 6 +++--- src/res/translation/translation_es_ES.ts | 4 ++-- src/res/translation/translation_fr_FR.ts | 4 ++-- src/res/translation/translation_it_IT.ts | 4 ++-- src/res/translation/translation_nl_NL.ts | 4 ++-- src/res/translation/translation_pl_PL.ts | 4 ++-- src/res/translation/translation_pt_PT.ts | 4 ++-- 9 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/clientdlg.cpp b/src/clientdlg.cpp index 6360b0f1bd..03e118b3ba 100755 --- a/src/clientdlg.cpp +++ b/src/clientdlg.cpp @@ -282,7 +282,7 @@ CClientDlg::CClientDlg ( CClient* pNCliP, // Edit menu -------------------------------------------------------------- pEditMenu = new QMenu ( tr ( "&Edit" ), this ); - pEditMenu->addAction ( tr ( "&Sort Channels by Name..." ), this, + pEditMenu->addAction ( tr ( "&Sort Channel Users by Name" ), this, SLOT ( OnSortChannelsByName() ), QKeySequence ( Qt::CTRL + Qt::Key_N ) ); diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index c659532e524edd756785f75d4976e70f8adec928..8bcac0444af200889da621a9f3b73d11deabe8c6 100644 GIT binary patch delta 3806 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 TDl_?W^R*eHPGpQ?exLt87we-S diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index 01b8e73a09..035a5def5b 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -200,7 +200,7 @@ V E R B I N D U N G S A U F B A U - + Personal Mix at the Server: Eigener Mix am Server: @@ -750,8 +750,8 @@ - &Sort Channels by Name... - &Sortiere Kanäle nach Namen... + &Sort Channel Users by Name + &Sortiere Kanäle nach Namen diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index 5cd6729bea..198d825afd 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -204,7 +204,7 @@ I N T E N T A N D O C O N E C T A R - + Personal Mix at the Server: Mezcla Personal en el Servidor: @@ -762,7 +762,7 @@ - &Sort Channels by Name... + &Sort Channel Users by Name diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index 0cd86ee890..c5d059feca 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -212,7 +212,7 @@ T E N T A T I V E D E C O N N E X I O N - + Personal Mix at the Server: Mixage personnel du serveur : @@ -758,7 +758,7 @@ - &Sort Channels by Name... + &Sort Channel Users by Name diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index 251b34bdea..7025bd01cf 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -200,7 +200,7 @@ I N A T T E S A D I C O N N E S S I O N E - + Personal Mix at the Server: Mixer personale sul Server: @@ -818,7 +818,7 @@ - &Sort Channels by Name... + &Sort Channel Users by Name diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index 92373b3bae..f1af1cf317 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -200,7 +200,7 @@ A A N H E T V E R B I N D E N - + Personal Mix at the Server: @@ -810,7 +810,7 @@ - &Sort Channels by Name... + &Sort Channel Users by Name diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index 9265aec4eb..ee795ac35c 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -168,7 +168,7 @@ - + Personal Mix at the Server: @@ -670,7 +670,7 @@ - &Sort Channels by Name... + &Sort Channel Users by Name diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index 4d76b3c26b..d028481d00 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -212,7 +212,7 @@ T E N T A N D O L I G A R - + Personal Mix at the Server: Mistura Pessoal no Servidor: @@ -754,7 +754,7 @@ - &Sort Channels by Name... + &Sort Channel Users by Name From 1880520f77b8491e597c447d55cced6f6e3ab751 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 8 Jun 2020 21:30:43 +0200 Subject: [PATCH 123/936] update German translation --- src/res/translation/translation_de_DE.qm | Bin 94688 -> 99230 bytes src/res/translation/translation_de_DE.ts | 32 +++++++++++------------ 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index 8bcac0444af200889da621a9f3b73d11deabe8c6..119a3e2a9821bef4a91beb32602586fbeea47711 100644 GIT binary patch delta 6487 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 a;;Eg6lDeNCGiJ{zP5uLZuC!rADgOtpo#|!( diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index 035a5def5b..b15fa17473 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -1930,82 +1930,82 @@ 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 - + Sie stimmen zu, dass alle Daten, Klänge oder andere Arbeiten, die zum Server gesendet werden, Ihnen gehören oder von Ihnen selbst oder einem Lizenzgeber erstellt wurden und dass Sie diese Daten, Klänge oder andere Arbeiten unter die folgende Creative Commons Lizenz stellen (Für weitere Informationen über die Lizenz, siehe You are free to: - + Sie dürfen: Share - + Teilen copy and redistribute the material in any medium or format - + das Material in jedwedem Format oder Medium vervielfältigen und weiterverbreiten Adapt - + Bearbeiten remix, transform, and build upon the material - + das Material remixen, verändern und darauf aufbauen The licensor cannot revoke these freedoms as long as you follow the license terms. - + Der Lizenzgeber kann diese Freiheiten nicht widerrufen solange Sie sich an die Lizenzbedingungen halten. Under the following terms: - + Unter folgenden Bedingungen: Attribution - + Namensnennung 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. - + Sie müssen angemessene Urheber- und Rechteangaben machen, einen Link zur Lizenz beifügen und angeben, ob Änderungen vorgenommen wurden. Diese Angaben dürfen in jeder angemessenen Art und Weise gemacht werden, allerdings nicht so, dass der Eindruck entsteht, der Lizenzgeber unterstütze gerade Sie oder Ihre Nutzung besonders. NonCommercial - + Nicht kommerziell You may not use the material for commercial purposes. - + Sie dürfen das Material nicht für kommerzielle Zwecke nutzen. ShareAlike - + Weitergabe unter gleichen Bedingungen If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. - + Wenn Sie das Material remixen, verändern oder anderweitig direkt darauf aufbauen, dürfen Sie Ihre Beiträge nur unter derselben Lizenz wie das Original verbreiten. No additional restrictions - + Keine weiteren Einschränkungen You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. - + Sie dürfen keine zusätzlichen Klauseln oder technische Verfahren einsetzen, die anderen rechtlich irgendetwas untersagen, was die Lizenz erlaubt. From 0c7866eda3266bd7cba8bc6af03d969b777e188d Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 8 Jun 2020 21:47:36 +0200 Subject: [PATCH 124/936] initial OMP processing tests --- Jamulus.pro | 10 ++++++++++ src/server.cpp | 3 +++ 2 files changed, 13 insertions(+) diff --git a/Jamulus.pro b/Jamulus.pro index 27568b72e5..42f4dad8fd 100755 --- a/Jamulus.pro +++ b/Jamulus.pro @@ -6,6 +6,16 @@ contains(CONFIG, "noupcasename") { TARGET = jamulus } +# support multi-threading with OMP if requested +contains(CONFIG, "multithreading") { + unix { + message(The OpenMP multithreading is enabled.) + DEFINES += USE_OMP + QMAKE_CXXFLAGS += -fopenmp + QMAKE_LFLAGS += -fopenmp + } +} + CONFIG += qt \ thread \ release diff --git a/src/server.cpp b/src/server.cpp index acab3b19f4..d072bd5df4 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -953,6 +953,9 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE vecChannelLevels ); } +#ifdef USE_OMP +# pragma omp parallel for +#endif for ( int i = 0; i < iNumClients; i++ ) { int iClientFrameSizeSamples = 0; // initialize to avoid a compiler warning From 9c811782dc5238c56b51ac5fe84b34f5c01f9ec6 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 8 Jun 2020 22:02:16 +0200 Subject: [PATCH 125/936] direct use of Q_UNUSED on OPUS calls does not suppress the warning under Linux -> go back to previous implementation --- src/server.cpp | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/server.cpp b/src/server.cpp index acab3b19f4..bc54984cb3 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -758,6 +758,7 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE */ // Get data from all connected clients ------------------------------------- // some inits + int iUnused; int iNumClients = 0; // init connected client counter bool bChannelIsNowDisconnected = false; bool bUpdateChannelLevels = false; @@ -911,11 +912,11 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE // OPUS decode received data stream if ( CurOpusDecoder != nullptr ) { - Q_UNUSED ( opus_custom_decode ( CurOpusDecoder, - pCurCodedData, - iCeltNumCodedBytes, - &vecvecsData[i][iB * SYSTEM_FRAME_SIZE_SAMPLES * vecNumAudioChannels[i]], - iClientFrameSizeSamples ) ); + iUnused = opus_custom_decode ( CurOpusDecoder, + pCurCodedData, + iCeltNumCodedBytes, + &vecvecsData[i][iB * SYSTEM_FRAME_SIZE_SAMPLES * vecNumAudioChannels[i]], + iClientFrameSizeSamples ); } } @@ -1044,11 +1045,11 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE opus_custom_encoder_ctl ( CurOpusEncoder, OPUS_SET_BITRATE ( CalcBitRateBitsPerSecFromCodedBytes ( iCeltNumCodedBytes, iClientFrameSizeSamples ) ) ); - Q_UNUSED ( opus_custom_encode ( CurOpusEncoder, - &vecsSendData[iB * SYSTEM_FRAME_SIZE_SAMPLES * vecNumAudioChannels[i]], - iClientFrameSizeSamples, - &vecbyCodedData[0], - iCeltNumCodedBytes ) ); + iUnused = opus_custom_encode ( CurOpusEncoder, + &vecsSendData[iB * SYSTEM_FRAME_SIZE_SAMPLES * vecNumAudioChannels[i]], + iClientFrameSizeSamples, + &vecbyCodedData[0], + iCeltNumCodedBytes ); } // send separate mix to current clients @@ -1076,6 +1077,8 @@ opus_custom_encoder_ctl ( CurOpusEncoder, // does not consume any significant CPU when no client is connected. Stop(); } + + Q_UNUSED ( iUnused ) } /// @brief Mix all audio data from all clients together. From 85e517c0297642f08b21aa735aafe68ef811dfc9 Mon Sep 17 00:00:00 2001 From: Miguel de Matos <11491485+Snayler@users.noreply.github.com> Date: Mon, 8 Jun 2020 21:04:13 +0100 Subject: [PATCH 126/936] Update to Portuguese Translation --- src/res/translation/translation_pt_PT.qm | Bin 60616 -> 99126 bytes src/res/translation/translation_pt_PT.ts | 188 +++++++++++------------ 2 files changed, 94 insertions(+), 94 deletions(-) diff --git a/src/res/translation/translation_pt_PT.qm b/src/res/translation/translation_pt_PT.qm index ee0b96362ba8d123ac2bfe7e4b2683dd19f778ba..663ac7131cb21ded10928e16df422fc1741926d8 100644 GIT binary patch delta 32523 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 This app enables musicians to perform real-time jam sessions over the internet. - + Esta aplicação permite aos músicos realizar jam sessions em tempo real pela Internet. There is a server which collects the audio data from each client, mixes the audio data and sends the mix back to each client. - + Existe um servidor que reúne os dados de áudio de cada cliente, mistura os dados de áudio e envia a mistura de volta para cada cliente. This app uses the following libraries, resources or code snippets: - + Esta aplicação utiliza as seguintes bibliotecas, recursos ou partes de código: Country flag icons by Mark James - + Ãcones das bandeiras dos países por Mark James @@ -103,7 +103,7 @@ Italian - + Italiano @@ -128,7 +128,7 @@ Released under the GNU General Public License (GPL) - + Lançado sob a Licença Pública Geral GNU (GPL) Under the GNU General Public License (GPL) @@ -311,32 +311,32 @@ Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. - + Mostra o nível de áudio pré-fader deste canal. A todos os clientes ligados ao servidor será atribuído um nível de áudio, o mesmo valor para cada cliente. Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. - + Ajusta o nível de áudio deste canal. A todos os clientes ligados ao servidor será atribuído um fader de áudio,exibido em cada cliente, para ajustar a mistura local. Speaker with cancellation stroke: Indicates that another client has muted you. - + Alti-falante com sinal de proibição: Indica que o cliente silenciou o teu canal. Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. - + Define a posição de panorâmica da esquerda para a direita do canal. Funciona apenas no modo estéreo ou, de preferência, no modo Entrada Mono/Saída Estéreo. With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. - + Com a caixa de seleção Solo, o canal de áudio pode ser definido como solo, o que significa que todos os outros canais, exceto o canal atual, serão silenciados. É possível definir mais que um canal no modo solo. The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. - + O Identificador do fader identifica o cliente ligado. O nome no identificador, a imagem do instrumento e a bandeira do país podem ser definidos no Meu Perfil. @@ -579,82 +579,82 @@ This shows the level of the two stereo channels for your audio input. - + Isto mostra o nível dos dois canais estéreo para a sua entrada de áudio. If the application is connected to a server and you play your instrument/sing into the microphone, the VU 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. - + Se a aplicação estiver ligada a um servidor e tocar o seu instrumento/cantar no microfone, os LEDs do medidor do nível de entrada devem piscar. Se tal não acontecer, provavelmente selecionou o canal de entrada errado (por exemplo, entrada de linha em vez da entrada do microfone) ou ajustou o ganho da entrada muito baixo no misturador de áudio (Windows) ou na placa de som. For proper usage of the application, you should not hear your singing/instrument through the loudspeaker or your headphone when the software is not connected.This can be achieved by muting your input audio channel in the Playback mixer (not the Recording mixer!). - + Para um uso adequado da aplicação, não deve ouvir a sua voz/instrumento diretamente nas colunas ou nos headphones enquanto a aplicação não estiver ligada a um servidor. Isso pode ser feito silenciando (mute) o canal da entrada de áudio no dispositivo de reprodução (não no dispositivo de captura!). Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. - + Clicar nesse botão altera a legenda do botão de Ligar para Desligar, ou seja, implementa uma funcionalidade de alternação para conectar e desconectar a aplicação. Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows - + Controla os níveis relativos dos canais esquerdo e direito. Para um sinal mono, actua como uma panorâmica entre os dois canais. Por exemplo, se um microfone estiver ligado no canal direito e um instrumento estiver ligado no canal esquerdo, mais alto que o microfone, mova o fader de áudio numa direção em que a etiqueta acima do fader mostre Reverb effect - + Efeito de Reverberação Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. - + O efeito de reverberação pode ser aplicado a um canal local de áudio mono ou a ambos os canais no modo estéreo. A seleção do canal mono e o nível de reverberação podem ser modificados. Por exemplo, se o sinal do microfone for alimentado no canal de áudio direito da placa de som, e for necessário aplicar um efeito de reverberação, ajuste o seletor de canal para a direita e mova o fader para cima até que o nível de reverberação desejado seja atingido. Reverb effect level setting - + Ajuste do nível do efeito de reverberação Reverb Channel Selection - + Seleção do Canal de Reverberação With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. - + Com estes botões de seleção, pode ser escolhido o canal de entrada de áudio no qual o efeito de reverberação é aplicado. Pode ser selecionado o canal de entrada esquerdo ou direito. Left channel selection for reverb - + Seleção do canal esquerdo para reverberação Right channel selection for reverb - + Seleção do canal direito para reverberação Green - + Verde The delay is perfect for a jam session. - + A latência é perfeita para uma jam session. Yellow - + Amarelo Red - + Vermelho @@ -664,42 +664,42 @@ Opens a dialog where you can select a server to connect to. If you are connected, pressing this button will end the session. - + Abre uma caixa de diálogo onde pode seleccionar a que servidor se ligar. Se estiver ligado, pressionar este botão vai terminar a sessão. Shows the current audio delay status: - + Mostra o estado actual da latência de áudio: A session is still possible but it may be harder to play. - + Ainda é possível fazer uma sessão, mas poderá ser mais difícil tocar a tempo. The delay is too large for jamming. - + A latência é demasiada para tocar a tempo. If this LED indicator turns red, you will not have much fun using the application. - + Se este indicador LED ficar vermelho, não se vai divertir muito ao usar a aplicação. The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: - + O indicador LED do estado dos buffers mostra o estado atual do áudio/transmissão. Se a luz estiver vermelha, o fluxo de áudio é interrompido. Isto é causado por um dos seguintes problemas: The sound card's buffer delay (buffer size) is too small (see Settings window). - + O buffer (tamanho do buffer) da placa de som é demasiado pequeno (verificar janela das Definições). The upload or download stream rate is too high for your internet bandwidth. - + A taxa de upload ou download é muito elevada para a sua largura de banda da Internet. @@ -750,12 +750,12 @@ &Edit - + &Editar &Sort Channels by Name... - + Ordenar os Canais por &Nome... @@ -929,7 +929,7 @@ Reverb - Reverb. + Reverb @@ -1316,7 +1316,7 @@ mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. - + vai aumentar a quantidade de dados da transmissão. Verifique se a taxa de upload não ultrapassa a velocidade de upload disponível da sua ligação à Internet. @@ -1333,122 +1333,122 @@ The jitter buffer compensates for network and sound card timing jitters. The size of the buffer therefore influences the quality of the audio stream (how many dropouts occur) and the overall delay (the longer the buffer, the higher the delay). - + O jitter buffer (ou buffer de instabilidade) compensa os desvios de temporização da rede e da placa de som. O tamanho do buffer influencia, portanto, a qualidade do fluxo de áudio (quantas interrupções ocorrem) e a latência geral (quanto maior o buffer, maior a latência). You can set the jitter buffer size manually for the local client and the remote server. For the local jitter buffer, dropouts in the audio stream are indicated by the light below the jitter buffer size faders. If the light turns to red, a buffer overrun/underrun has taken place and the audio stream is interrupted. - + Pode escolher o tamanho do jitter buffer manualmente para o cliente local e o servidor remoto. Para o jitter buffer local, as interrupções no fluxo de áudio são indicadas pela luz na parte inferior dos faders do jitter buffer. Se a luz ficar vermelha, ocorreu um excesso/déficit do buffer e o fluxo de áudio é interrompido. If the Auto setting is enabled, the jitter buffers of the local client and the remote server are set automatically based on measurements of the network and sound card timing jitter. If Auto is enabled, the jitter buffer size faders are disabled (they cannot be moved with the mouse). - + Caso a configuração automática estiver activada, os buffers de rede do cliente local e do servidor remoto são configurados automaticamente com um valor conservador para minimizar a probabilidade de perda de áudio. Se o modo automático estiver ligado, os controlos estarão desactivados (não podem ser alterados pelo utilizador). If the Auto setting 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 and to lower the jitter buffer size manually by using the sliders until your personal acceptable amount of dropouts is reached. The LED indicator will display the audio dropouts of the local jitter buffer with a red light. - + Caso a configuração automática do jitter buffer estiver ativada, os buffers de rede do cliente local e do servidor remoto são configurados com um valor conservador para minimizar a probabilidade de perda de áudio. Para ajustar o atraso/latência do áudio, é recomendável desativar a funcionalidade de configuração automática e diminuir o tamanho do jitter buffer manualmente usando os controles deslizantes até que a quantidade de perdas de áudio lhe sejam pessoalmente aceitáveis. O indicador LED representará as interrupções de áudio do jitter buffer local através de uma luz vermelha. The buffer delay setting is a fundamental setting of this software. This setting has an influence on many connection properties. - + A configuração do atraso do buffer (buffer delay) é uma configuração fundamental da aplicação. Esta configuração tem influência em muitas propriedades da ligação. 64 samples: The preferred setting. Provides the lowest latency but does not work with all sound cards. - + 64 amostras: Cnfiguração preferida. Fornece menor latência, mas não funciona com todas as placas de som. 128 samples: Should work for most available sound cards. - + 128 amostras: Deve funcionar na maioria das placas de som disponíveis. 256 samples: Should only be used on very slow computers or with a slow internet connection. - + 256 amostras: Deve apenas ser usada se tiver um computador muito lento ou uma ligação lenta à Internet. Some sound card drivers do not allow the buffer delay to be changed from within the application. In this case the buffer delay setting is disabled and has to be changed using the sound card driver. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. - + Alguns drivers da placa de som não permitem que o atraso do buffer seja alterado pela aplicação. Nesse caso, a configuração de atraso do buffer estará desativada e deve ser alterada no driver da placa de som. No Windows, pressione o botão Configuração do Driver para abrir o painel de configurações do driver. No Linux, use a ferramenta de configuração Jack para alterar o atraso do buffer. If no buffer size is selected and all settings are disabled, an unsupported buffer size is used by the driver. The application will still work with this setting but with restricted performance. - + Se nenhum atraso do buffer estiver selecionado e todas as configurações estiverem desativadas, um atraso do buffer não suportado será usado pelo driver. A aplicação ainda funcionará com essa configuração, mas com desempenho restrito. If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. - + Se as configurações de atraso do buffer estiverem desativadas, é porque o driver de áudio proibe modificar essa configuração a partir da aplicação. No Windows, pressione o botão Configuração do Driver para abrir o painel de configurações do driver. No Linux, use a ferramenta de configuração Jack para alterar o atraso do buffer. Selects the number of audio channels to be used for communication between client and server. There are three modes available: - + Selecione o número de canais de áudio a serem usados para a comunicação entre cliente e servidor. Existem três modos disponíveis: and - + e These modes use one and two audio channels respectively. - + Estes modos usam um e dois canais de áudio, respectivamente. Mono in/Stereo-out - + Entrada Mono/Saída Estéreo The audio signal sent to the server is mono but the return signal is stereo. This is useful if the sound card has the instrument on one input channel and the microphone on the other. In that case the two input signals can be mixed to one mono channel but the server mix is heard in stereo. - + O sinal de áudio enviado ao servidor é mono, mas o sinal de retorno é estéreo. Isso é útil quando a placa de som coloca o instrumento e o microfone em canais diferentes. Nesse caso, os dois sinais de entrada podem ser misturados num canal mono, mas a mistura do servidor pode ser ouvida em estéreo. Enabling - + Activar o modo In stereo streaming mode, no audio channel selection for the reverb effect will be available on the main window since the effect is applied to both channels in this case. - + No modo de transmissão estéreo, nenhuma seleção de canal de áudio para o efeito de reverberação estará disponível na janela principal, pois o efeito é aplicado em ambos os canais. The higher the audio quality, the higher your audio stream's data rate. Make sure your upload rate does not exceed the available bandwidth of your internet connection. - + Quanto maior a qualidade de áudio, maior a quantidade de dados da transmissão. Verifique se a taxa de upload não ultrapassa a velocidade de upload disponível da sua ligação à Internet. This setting defines the fader level of a newly connected client in percent. If a new client connects to the current server, they will get the specified initial fader level if no other fader level from a previous connection of that client was already stored. - + Esta opção define o nível do fader de um cliente novo, em percentagem. Se um cliente novo se liga ao mesmo servidor, este irá ter o nível do fader específicado, excepto se já definiu o nível do fader desse cliente previamente. Leave this blank unless you need to enter the address of a central server other than the default. - + Deixe este campo em branco excepto se necessitar de introduzir um endereço alternativo de um servidor central. The Ping Time is the time required for the audio stream to travel from the client to the server and back again. This delay is introduced by the network and should be about 20-30 ms. If this delay is higher than about 50 ms, your distance to the server is too large or your internet connection is not sufficient. - + A latência da ligação é o tempo necessário para o fluxo de áudio viajar do cliente para o servidor e vice-versa. Esta latência é introduzida pela rede e deve ser cerca de 20-30 ms. Se esta latência for maior que 50 ms, a distância até ao servidor é muito grande ou sua ligação à Internet não é suficiente. Overall Delay is calculated from the current Ping Time and the delay introduced by the current buffer settings. - + A latência geral é calculada a partir da latência da ligação atual e do atraso introduzido pelas configurações do buffer. Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net. - + A taxa de transmissão do áudio depende do tamanho do pacote de áudio e da configuração de compactação de áudio. Verifique se a taxa de transmissão não é maior que a taxa disponível (verifique a taxa de upload da sua ligação à Internet usando, por exemplo, o speedtest.net). @@ -1746,17 +1746,17 @@ The Connection Setup window shows a list of available servers. Server operators can optionally list their servers by music genre. Use the List dropdown to select a genre, click on the server you want to join and press the Connect button to connect to it. Alternatively, double click on on the server name. Permanent servers (those that have been listed for longer than 48 hours) are shown in bold. - + A janela Configuração da ligação mostra uma lista de servidores disponíveis. Os operadores dos servidores podem registar os seus servidores por género musical. Utilize o menu Lista para selecionar um género, clique no servidor ao qual se deseja ligar e pressione o botão Ligar. Como alternativa, clique duas vezes no nome do servidor. Servidores permanentes (aqueles que estão registados há mais de 48 horas) são mostrados em negrito. If you know the IP address or URL of a server, you can connect to it using the Server name/Address field. An optional port number can be added after the IP address or URL using a colon as a separator, e.g, example.org: - + Se souver o endereço IP ou URL de um servidor, pode ligar-se a este utilizando o campo Nome/Endereço do Servidor. Um número de porta opcional pode ser adicionado após o endereço IP ou URL usando o caractere dois pontos como separador, por exemplo, example.org: . The field will also show a list of the most recently used server addresses. - + . Este campo também irá mostrar uma lista dos endereços IP ou URLs dos servidores usados recentemente. @@ -2104,12 +2104,12 @@ Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. - + Escreva 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 também definir uma imagem do instrumento que toca e uma bandeira do país onde vive. A cidade onde 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 Jamulus server. This tag will also be shown at each client which is connected to the same server as you. - + O que definir aqui aparecerá por baixo do seu fader na secção de mistura quando estiver ligado a um servidor Esta etiqueta também será exibida em cada cliente que estiver ligado ao mesmo servidor. @@ -2314,17 +2314,17 @@ Ukulele - + Ukulele Bass Ukulele - + Ukulele Baixo No Name - + Sem Nome @@ -2409,12 +2409,12 @@ If the start minimized on operating system start check box is checked, the server will be started when the operating system starts up and is automatically minimized to a system task bar icon. - + Se a caixa de seleção Iniciar Minimizado com o Sistema Operativo estiver marcada, o servidor será iniciado quando o sistema operativo for iniciado, e minimizado automaticamente para um ícone da barra de tarefas do sistema. If the Make My Server Public check box is checked, this server registers itself at the central server so that all users of the application can see the server in the connect dialog server list and connect to it. The registration of the server is renewed periodically to make sure that all servers in the connect dialog server list are actually available. - + Se a caixa de seleção Tornar Servidor Público estiver marcada, este servidor irá registar-se no servidor central para que todos os utilizadores da aplicação o possam ver na lista de servidores e ligar-se a ele. O registo dos servidores é renovado periodicamente para garantir que todos os servidores na lista estão realmente disponíveis. @@ -2458,7 +2458,7 @@ The server name identifies your server in the connect dialog server list at the clients. - + O nome do servidor identifica o servidor na lista do diálogo de ligação exibido nos clientes. @@ -2498,62 +2498,62 @@ Checkbox to turn on or off server recording - + Caixa de selecção para ligar ou desligar a gravação no servidor Enable Recorder - + Activar Gravador Checked when the recorder is enabled, otherwise unchecked. The recorder will run when a session is in progress, if (set up correctly and) enabled. - + Activo quando o gravador estiver ligado, caso contrário inactivo. O gravador irá correr quando uma sessão estiver a decorrer, se (correctamente configurado e ) activo. Current session directory text box (read-only) - + Caixa de texto com a pasta da gravação actual (apenas leitura) Current Session Directory - + Pasta da Sessão Acual Enabled during recording and holds the current recording session directory. Disabled after recording or when the recorder is not enabled. - + Activo durante a gravação e exibe a pasta da gravação actual. Inactivo depois de gravação ou quando o gravador não estiver ligado. Recorder status label - + Etiqueta do estado do Gravador Recorder Status - + Estado do Gravador Displays the current status of the recorder. - + Mostra o estado actual do gravador. Request new recording button - + Botão para começar nova gravação New Recording - + Nova Gravação During a recording session, the button can be used to start a new recording. - + Durante uma sessão de gravação, este botão pode ser usado para começar uma nova gravação. @@ -2591,17 +2591,17 @@ Recording - + A gravar Not recording - + Não está a gravar Not enabled - + Desactivado Manual @@ -2732,17 +2732,17 @@ Enable jam recorder - + Activar gravação New recording - + Nova gravação Recordings folder - + Pasta de gravações @@ -2867,7 +2867,7 @@ No ASIO audio device (driver) found. - Nenhum dispositivo de áudio ASIO (driver) encontrado + Nenhum dispositivo de áudio ASIO (driver) encontrado. From db05a4d88bce0ba8e37eb25dde995a0e27c9b00c Mon Sep 17 00:00:00 2001 From: daryl Date: Mon, 8 Jun 2020 22:15:23 +0200 Subject: [PATCH 127/936] Spanish tr update --- src/res/translation/translation_es_ES.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index 198d825afd..76ef287090 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -758,12 +758,12 @@ &Edit - + &Editar &Sort Channel Users by Name - + &Ordenar Canales por Nombre From 2aa8c8c0d5922264aa9f5c56c0b0383ad8153395 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 8 Jun 2020 22:48:31 +0200 Subject: [PATCH 128/936] update translations --- src/res/translation/translation_es_ES.qm | Bin 96296 -> 96474 bytes src/res/translation/translation_pt_PT.qm | Bin 99126 -> 99128 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/src/res/translation/translation_es_ES.qm b/src/res/translation/translation_es_ES.qm index 247b74fdd32004f7b92895e9862c084366589993..591968d26f11aaddc14ca6674017998596366e1b 100644 GIT binary patch delta 4048 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 diff --git a/src/res/translation/translation_pt_PT.qm b/src/res/translation/translation_pt_PT.qm index 663ac7131cb21ded10928e16df422fc1741926d8..66cbac600e0cd31bb9f4bbe74b8197c298b941ef 100644 GIT binary patch delta 3915 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 delta 3928 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 A$^ZZW From 44e883900be29f628ebceaab30fa07041c7473f7 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 8 Jun 2020 22:58:11 +0200 Subject: [PATCH 129/936] fixed Free Software Foundation address (see #341) --- android/sound.cpp | 2 +- android/sound.h | 2 +- linux/sound.cpp | 2 +- linux/sound.h | 2 +- mac/activity.h | 2 +- mac/sound.cpp | 2 +- mac/sound.h | 2 +- src/analyzerconsole.cpp | 2 +- src/analyzerconsole.h | 2 +- src/audiomixerboard.cpp | 2 +- src/audiomixerboard.h | 2 +- src/buffer.cpp | 2 +- src/buffer.h | 2 +- src/channel.cpp | 2 +- src/channel.h | 2 +- src/chatdlg.cpp | 2 +- src/chatdlg.h | 2 +- src/client.cpp | 2 +- src/client.h | 2 +- src/clientdlg.cpp | 2 +- src/clientdlg.h | 2 +- src/clientsettingsdlg.cpp | 2 +- src/clientsettingsdlg.h | 2 +- src/connectdlg.cpp | 2 +- src/connectdlg.h | 2 +- src/global.h | 2 +- src/historygraph.cpp | 2 +- src/historygraph.h | 2 +- src/main.cpp | 2 +- src/multicolorled.cpp | 2 +- src/multicolorled.h | 2 +- src/multicolorledbar.cpp | 2 +- src/multicolorledbar.h | 2 +- src/protocol.cpp | 2 +- src/protocol.h | 2 +- src/recorder/creaperproject.cpp | 2 +- src/recorder/creaperproject.h | 2 +- src/recorder/cwavestream.cpp | 2 +- src/recorder/cwavestream.h | 2 +- src/recorder/jamrecorder.cpp | 2 +- src/recorder/jamrecorder.h | 2 +- src/server.cpp | 2 +- src/server.h | 2 +- src/serverdlg.cpp | 2 +- src/serverdlg.h | 2 +- src/serverlist.cpp | 2 +- src/serverlist.h | 2 +- src/serverlogging.cpp | 2 +- src/serverlogging.h | 2 +- src/settings.cpp | 2 +- src/settings.h | 2 +- src/signalhandler.cpp | 2 +- src/signalhandler.h | 2 +- src/socket.cpp | 2 +- src/socket.h | 2 +- src/soundbase.cpp | 2 +- src/soundbase.h | 2 +- src/testbench.h | 2 +- src/util.cpp | 2 +- src/util.h | 2 +- windows/sound.cpp | 2 +- windows/sound.h | 2 +- 62 files changed, 62 insertions(+), 62 deletions(-) diff --git a/android/sound.cpp b/android/sound.cpp index ae28508a4b..2ee066964c 100644 --- a/android/sound.cpp +++ b/android/sound.cpp @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/android/sound.h b/android/sound.h index 535694b7d8..d8c27f90a1 100644 --- a/android/sound.h +++ b/android/sound.h @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/linux/sound.cpp b/linux/sound.cpp index b55b550e8d..0687abfeee 100755 --- a/linux/sound.cpp +++ b/linux/sound.cpp @@ -20,7 +20,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/linux/sound.h b/linux/sound.h index 23e9bf5980..149becfa12 100755 --- a/linux/sound.h +++ b/linux/sound.h @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/mac/activity.h b/mac/activity.h index 4f46ba098c..4731f36890 100644 --- a/mac/activity.h +++ b/mac/activity.h @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ #pragma once diff --git a/mac/sound.cpp b/mac/sound.cpp index 18adbaf02c..e006d24759 100755 --- a/mac/sound.cpp +++ b/mac/sound.cpp @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/mac/sound.h b/mac/sound.h index 183c5377a7..ce2eda21c4 100755 --- a/mac/sound.h +++ b/mac/sound.h @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/analyzerconsole.cpp b/src/analyzerconsole.cpp index 5e84d1bf87..38c79786a7 100644 --- a/src/analyzerconsole.cpp +++ b/src/analyzerconsole.cpp @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/analyzerconsole.h b/src/analyzerconsole.h index 6fa3b59890..4a5483256a 100644 --- a/src/analyzerconsole.h +++ b/src/analyzerconsole.h @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 8a0d80311c..a0f97ea71d 100644 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/audiomixerboard.h b/src/audiomixerboard.h index df84a50b45..dbfbf5d05c 100644 --- a/src/audiomixerboard.h +++ b/src/audiomixerboard.h @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/buffer.cpp b/src/buffer.cpp index 578d5f1f58..dd080dba30 100755 --- a/src/buffer.cpp +++ b/src/buffer.cpp @@ -21,7 +21,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/buffer.h b/src/buffer.h index a57a056319..b41f5e9c33 100755 --- a/src/buffer.h +++ b/src/buffer.h @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/channel.cpp b/src/channel.cpp index b1b3824117..f5c7419dd9 100755 --- a/src/channel.cpp +++ b/src/channel.cpp @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/channel.h b/src/channel.h index ec62e84a46..b56f93eeaa 100755 --- a/src/channel.h +++ b/src/channel.h @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/chatdlg.cpp b/src/chatdlg.cpp index 754c2ed9bd..f494f44700 100755 --- a/src/chatdlg.cpp +++ b/src/chatdlg.cpp @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/chatdlg.h b/src/chatdlg.h index f9e7dc2cb9..32485aa72a 100755 --- a/src/chatdlg.h +++ b/src/chatdlg.h @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/client.cpp b/src/client.cpp index d0e3c58aaa..3c39ef2a2f 100755 --- a/src/client.cpp +++ b/src/client.cpp @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/client.h b/src/client.h index 1852d77baf..d56435c634 100755 --- a/src/client.h +++ b/src/client.h @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/clientdlg.cpp b/src/clientdlg.cpp index 03e118b3ba..4b0c561195 100755 --- a/src/clientdlg.cpp +++ b/src/clientdlg.cpp @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/clientdlg.h b/src/clientdlg.h index c09999fc78..4dbec0b9cb 100755 --- a/src/clientdlg.h +++ b/src/clientdlg.h @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/clientsettingsdlg.cpp b/src/clientsettingsdlg.cpp index b553cb7fa8..cf01022ba9 100755 --- a/src/clientsettingsdlg.cpp +++ b/src/clientsettingsdlg.cpp @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/clientsettingsdlg.h b/src/clientsettingsdlg.h index fd377492b5..45638fb97a 100755 --- a/src/clientsettingsdlg.h +++ b/src/clientsettingsdlg.h @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/connectdlg.cpp b/src/connectdlg.cpp index 6623cca511..c94015840d 100755 --- a/src/connectdlg.cpp +++ b/src/connectdlg.cpp @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/connectdlg.h b/src/connectdlg.h index ae6442c8a8..2637b5a2d7 100755 --- a/src/connectdlg.h +++ b/src/connectdlg.h @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/global.h b/src/global.h index 69b3aa2e04..eb893c73e9 100755 --- a/src/global.h +++ b/src/global.h @@ -43,7 +43,7 @@ LED bar: lbr * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/historygraph.cpp b/src/historygraph.cpp index eed8ffcabc..ffdf1daa06 100644 --- a/src/historygraph.cpp +++ b/src/historygraph.cpp @@ -19,7 +19,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/historygraph.h b/src/historygraph.h index 1a5709b4aa..309c28d89d 100644 --- a/src/historygraph.h +++ b/src/historygraph.h @@ -19,7 +19,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/main.cpp b/src/main.cpp index 0fdaa6076a..ce9dd7025b 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/multicolorled.cpp b/src/multicolorled.cpp index 411119c994..bc864fee08 100755 --- a/src/multicolorled.cpp +++ b/src/multicolorled.cpp @@ -21,7 +21,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/multicolorled.h b/src/multicolorled.h index c72bc8f4b4..9c54def65b 100755 --- a/src/multicolorled.h +++ b/src/multicolorled.h @@ -25,7 +25,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/multicolorledbar.cpp b/src/multicolorledbar.cpp index 4b0cff1de6..aa29f4f1ab 100755 --- a/src/multicolorledbar.cpp +++ b/src/multicolorledbar.cpp @@ -21,7 +21,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/multicolorledbar.h b/src/multicolorledbar.h index 0bf1c95701..6fbc1019eb 100755 --- a/src/multicolorledbar.h +++ b/src/multicolorledbar.h @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/protocol.cpp b/src/protocol.cpp index e72d171efa..20d10300a6 100755 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -375,7 +375,7 @@ CONNECTION LESS MESSAGES * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/protocol.h b/src/protocol.h index 962d3f798d..0c154e1117 100644 --- a/src/protocol.h +++ b/src/protocol.h @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/recorder/creaperproject.cpp b/src/recorder/creaperproject.cpp index 69b179ce27..3bfdb49f41 100755 --- a/src/recorder/creaperproject.cpp +++ b/src/recorder/creaperproject.cpp @@ -17,7 +17,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/recorder/creaperproject.h b/src/recorder/creaperproject.h index 1fbb57ea0e..2d0118ade5 100755 --- a/src/recorder/creaperproject.h +++ b/src/recorder/creaperproject.h @@ -17,7 +17,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/recorder/cwavestream.cpp b/src/recorder/cwavestream.cpp index dadbdee343..4ffdd8bacd 100755 --- a/src/recorder/cwavestream.cpp +++ b/src/recorder/cwavestream.cpp @@ -17,7 +17,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/recorder/cwavestream.h b/src/recorder/cwavestream.h index 6d8f1ec8db..54c94f234c 100755 --- a/src/recorder/cwavestream.h +++ b/src/recorder/cwavestream.h @@ -17,7 +17,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/recorder/jamrecorder.cpp b/src/recorder/jamrecorder.cpp index 40e103210e..5f672ef20d 100755 --- a/src/recorder/jamrecorder.cpp +++ b/src/recorder/jamrecorder.cpp @@ -17,7 +17,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/recorder/jamrecorder.h b/src/recorder/jamrecorder.h index b0e2651cda..ec53eecafd 100755 --- a/src/recorder/jamrecorder.h +++ b/src/recorder/jamrecorder.h @@ -17,7 +17,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/server.cpp b/src/server.cpp index bc54984cb3..e52aa3e8c1 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/server.h b/src/server.h index d025cc75ac..833ef479da 100755 --- a/src/server.h +++ b/src/server.h @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/serverdlg.cpp b/src/serverdlg.cpp index a23d36fb70..e8f8c41726 100755 --- a/src/serverdlg.cpp +++ b/src/serverdlg.cpp @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/serverdlg.h b/src/serverdlg.h index a2e7bb3b05..80fe109a9d 100755 --- a/src/serverdlg.h +++ b/src/serverdlg.h @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/serverlist.cpp b/src/serverlist.cpp index 2ef745c160..b2a542b182 100755 --- a/src/serverlist.cpp +++ b/src/serverlist.cpp @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/serverlist.h b/src/serverlist.h index decf9d72ae..f26003bf03 100755 --- a/src/serverlist.h +++ b/src/serverlist.h @@ -53,7 +53,7 @@ private network. * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/serverlogging.cpp b/src/serverlogging.cpp index f1233362f0..702aa7b088 100755 --- a/src/serverlogging.cpp +++ b/src/serverlogging.cpp @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/serverlogging.h b/src/serverlogging.h index 5813db278e..7aeae493ba 100755 --- a/src/serverlogging.h +++ b/src/serverlogging.h @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/settings.cpp b/src/settings.cpp index e1db2c2a28..793867f98e 100755 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/settings.h b/src/settings.h index 65ad07a5d4..b56f6aab34 100755 --- a/src/settings.h +++ b/src/settings.h @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/signalhandler.cpp b/src/signalhandler.cpp index 02ba80943c..1e99414fbc 100755 --- a/src/signalhandler.cpp +++ b/src/signalhandler.cpp @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * ****************************************************************************** * diff --git a/src/signalhandler.h b/src/signalhandler.h index 59409d135b..f214e63166 100755 --- a/src/signalhandler.h +++ b/src/signalhandler.h @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * ****************************************************************************** * diff --git a/src/socket.cpp b/src/socket.cpp index 36b63dd833..549439304e 100755 --- a/src/socket.cpp +++ b/src/socket.cpp @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/socket.h b/src/socket.h index e040f8a777..bf21abf001 100755 --- a/src/socket.h +++ b/src/socket.h @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/soundbase.cpp b/src/soundbase.cpp index daadacff08..7f4b530c98 100755 --- a/src/soundbase.cpp +++ b/src/soundbase.cpp @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/soundbase.h b/src/soundbase.h index 32b62b5e92..b6a7a4cbe4 100755 --- a/src/soundbase.h +++ b/src/soundbase.h @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/testbench.h b/src/testbench.h index 423a2c7366..1d5cd48181 100755 --- a/src/testbench.h +++ b/src/testbench.h @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/util.cpp b/src/util.cpp index f475f81218..9805128722 100755 --- a/src/util.cpp +++ b/src/util.cpp @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/util.h b/src/util.h index 44005b4367..aa5fdb0a9f 100755 --- a/src/util.h +++ b/src/util.h @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/windows/sound.cpp b/windows/sound.cpp index 82cf37b011..41cdcf1692 100755 --- a/windows/sound.cpp +++ b/windows/sound.cpp @@ -21,7 +21,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/windows/sound.h b/windows/sound.h index 46e078e710..a73e99199e 100755 --- a/windows/sound.h +++ b/windows/sound.h @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ From 9abb853fe175eb03f507f1f515798ff68ae5d5b8 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 8 Jun 2020 23:02:43 +0200 Subject: [PATCH 130/936] fixed "*No copyright*" (see #341) --- src/recorder/creaperproject.cpp | 1 + src/recorder/creaperproject.h | 1 + src/recorder/cwavestream.cpp | 1 + src/recorder/cwavestream.h | 1 + src/recorder/jamrecorder.cpp | 1 + src/recorder/jamrecorder.h | 1 + 6 files changed, 6 insertions(+) diff --git a/src/recorder/creaperproject.cpp b/src/recorder/creaperproject.cpp index 3bfdb49f41..1bd545fec2 100755 --- a/src/recorder/creaperproject.cpp +++ b/src/recorder/creaperproject.cpp @@ -1,4 +1,5 @@ /******************************************************************************\ + * Copyright (c) * * Author(s): * pljones diff --git a/src/recorder/creaperproject.h b/src/recorder/creaperproject.h index 2d0118ade5..e5bcbac224 100755 --- a/src/recorder/creaperproject.h +++ b/src/recorder/creaperproject.h @@ -1,4 +1,5 @@ /******************************************************************************\ + * Copyright (c) * * Author(s): * pljones diff --git a/src/recorder/cwavestream.cpp b/src/recorder/cwavestream.cpp index 4ffdd8bacd..bbac9351d4 100755 --- a/src/recorder/cwavestream.cpp +++ b/src/recorder/cwavestream.cpp @@ -1,4 +1,5 @@ /******************************************************************************\ + * Copyright (c) * * Author(s): * pljones diff --git a/src/recorder/cwavestream.h b/src/recorder/cwavestream.h index 54c94f234c..f4b951331d 100755 --- a/src/recorder/cwavestream.h +++ b/src/recorder/cwavestream.h @@ -1,4 +1,5 @@ /******************************************************************************\ + * Copyright (c) * * Author(s): * pljones diff --git a/src/recorder/jamrecorder.cpp b/src/recorder/jamrecorder.cpp index 5f672ef20d..b99148e2be 100755 --- a/src/recorder/jamrecorder.cpp +++ b/src/recorder/jamrecorder.cpp @@ -1,4 +1,5 @@ /******************************************************************************\ + * Copyright (c) * * Author(s): * pljones diff --git a/src/recorder/jamrecorder.h b/src/recorder/jamrecorder.h index ec53eecafd..8e52b4728f 100755 --- a/src/recorder/jamrecorder.h +++ b/src/recorder/jamrecorder.h @@ -1,4 +1,5 @@ /******************************************************************************\ + * Copyright (c) * * Author(s): * pljones From 1c4fe003d90ce4dd10e7254f74d3eba3ed7aa11b Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 8 Jun 2020 23:20:25 +0200 Subject: [PATCH 131/936] fix for Copyright -> add a date (see #341) --- src/recorder/creaperproject.cpp | 2 +- src/recorder/creaperproject.h | 2 +- src/recorder/cwavestream.cpp | 2 +- src/recorder/cwavestream.h | 2 +- src/recorder/jamrecorder.cpp | 2 +- src/recorder/jamrecorder.h | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/recorder/creaperproject.cpp b/src/recorder/creaperproject.cpp index 1bd545fec2..e518188696 100755 --- a/src/recorder/creaperproject.cpp +++ b/src/recorder/creaperproject.cpp @@ -1,5 +1,5 @@ /******************************************************************************\ - * Copyright (c) + * Copyright (c) 2020 * * Author(s): * pljones diff --git a/src/recorder/creaperproject.h b/src/recorder/creaperproject.h index e5bcbac224..a2a6ac8893 100755 --- a/src/recorder/creaperproject.h +++ b/src/recorder/creaperproject.h @@ -1,5 +1,5 @@ /******************************************************************************\ - * Copyright (c) + * Copyright (c) 2020 * * Author(s): * pljones diff --git a/src/recorder/cwavestream.cpp b/src/recorder/cwavestream.cpp index bbac9351d4..7351eb316e 100755 --- a/src/recorder/cwavestream.cpp +++ b/src/recorder/cwavestream.cpp @@ -1,5 +1,5 @@ /******************************************************************************\ - * Copyright (c) + * Copyright (c) 2020 * * Author(s): * pljones diff --git a/src/recorder/cwavestream.h b/src/recorder/cwavestream.h index f4b951331d..4c9a89cfa4 100755 --- a/src/recorder/cwavestream.h +++ b/src/recorder/cwavestream.h @@ -1,5 +1,5 @@ /******************************************************************************\ - * Copyright (c) + * Copyright (c) 2020 * * Author(s): * pljones diff --git a/src/recorder/jamrecorder.cpp b/src/recorder/jamrecorder.cpp index b99148e2be..68fc2ab414 100755 --- a/src/recorder/jamrecorder.cpp +++ b/src/recorder/jamrecorder.cpp @@ -1,5 +1,5 @@ /******************************************************************************\ - * Copyright (c) + * Copyright (c) 2020 * * Author(s): * pljones diff --git a/src/recorder/jamrecorder.h b/src/recorder/jamrecorder.h index 8e52b4728f..4bf8fa8f5b 100755 --- a/src/recorder/jamrecorder.h +++ b/src/recorder/jamrecorder.h @@ -1,5 +1,5 @@ /******************************************************************************\ - * Copyright (c) + * Copyright (c) 2020 * * Author(s): * pljones From 07e17cb376494223103cad4c942860ebd7215d95 Mon Sep 17 00:00:00 2001 From: daryl Date: Tue, 9 Jun 2020 10:55:52 +0200 Subject: [PATCH 132/936] tiny correction --- src/clientsettingsdlg.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/clientsettingsdlg.cpp b/src/clientsettingsdlg.cpp index cf01022ba9..084bc4fa3d 100755 --- a/src/clientsettingsdlg.cpp +++ b/src/clientsettingsdlg.cpp @@ -264,7 +264,7 @@ CClientSettingsDlg::CClientSettingsDlg ( CClient* pNCliP, QWidget* parent, "Audio Upstream Rate depends on the current audio packet size and " "compression setting. Make sure that the upstream rate is not " "higher than your available internet upload speed (check this with a " - "service such as speedtest.net." ); + "service such as speedtest.net)." ); lblPingTime->setWhatsThis ( strConnStats ); lblPingTimeValue->setWhatsThis ( strConnStats ); From e7b291d906dd187d3bac7c8ca33ce3d795bcbdfa Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 9 Jun 2020 17:42:32 +0200 Subject: [PATCH 133/936] improve the channel sorting algorithm (much cleaner code now) --- src/audiomixerboard.cpp | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index a0f97ea71d..4beaaab763 100644 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -323,7 +323,7 @@ void CChannelFader::SetFaderLevel ( const int iLevel ) // server about the change pFader->setValue ( iLevel ); SendFaderLevelToServer ( iLevel ); - } + } } void CChannelFader::SetPanValue ( const int iPan ) @@ -662,13 +662,13 @@ inline void CAudioMixerBoard::connectFaderSignalsToMixerBoardSlots() &CAudioMixerBoardSlots::OnChPanValueChanged; QObject::connect ( vecpChanFader[iCurChanID], &CChannelFader::soloStateChanged, - this, &CAudioMixerBoard::UpdateSoloStates ); + this, &CAudioMixerBoard::UpdateSoloStates ); QObject::connect ( vecpChanFader[iCurChanID], &CChannelFader::gainValueChanged, - this, pGainValueChanged ); + this, pGainValueChanged ); QObject::connect ( vecpChanFader[iCurChanID], &CChannelFader::panValueChanged, - this, pPanValueChanged ); + this, pPanValueChanged ); connectFaderSignalsToMixerBoardSlots(); } @@ -766,30 +766,26 @@ void CAudioMixerBoard::HideAll() void CAudioMixerBoard::ChangeFaderOrder ( const bool bDoSort ) { -// TODO better solution to sort by names and get the indexes after sorting (here -// we utilize the "data" property to store the original ID value) - QListWidget ListWidget; + // create a pair list of lower strings and fader ID for each channel + QList > PairList; + for ( int i = 0; i < MAX_NUM_CHANNELS; i++ ) { - // fill list widget (used for sorting the channels) - QListWidgetItem* pNewItem = new QListWidgetItem ( vecpChanFader[i]->GetReceivedName() ); - pNewItem->setData ( Qt::UserRole, i ); - ListWidget.addItem ( pNewItem ); - - // remove channels from layout (note that we keep the spacer on the right side) - pMainLayout->removeWidget ( vecpChanFader[i]->GetMainWidget() ); + PairList << QPair ( vecpChanFader[i]->GetReceivedName().toLower(), i ); } + + // if requested, sort the channels if ( bDoSort ) { - ListWidget.sortItems(); + qStableSort ( PairList.begin(), PairList.end() ); } // add channels to the layout in the new order (since we insert on the left, we - // have to use a backwards counting loop) + // have to use a backwards counting loop), note that it is not required to remove + // the widget from the layout first but it is moved to the new position automatically for ( int i = MAX_NUM_CHANNELS - 1; i >= 0; i-- ) { - // add fader frame to the audio mixer board layout - pMainLayout->insertWidget ( 0, vecpChanFader[ListWidget.item ( i )->data ( Qt::UserRole ).toInt()]->GetMainWidget() ); + pMainLayout->insertWidget ( 0, vecpChanFader[PairList[i].second]->GetMainWidget() ); } } From cc9e854dc626c03901ede2ec8b365dee8103d1a0 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 9 Jun 2020 17:49:16 +0200 Subject: [PATCH 134/936] merge fixes for translation --- src/res/translation/translation_de_DE.qm | Bin 99230 -> 99231 bytes src/res/translation/translation_de_DE.ts | 4 ++-- src/res/translation/translation_es_ES.qm | Bin 96474 -> 96475 bytes src/res/translation/translation_es_ES.ts | 4 ++-- src/res/translation/translation_fr_FR.ts | 4 ++-- src/res/translation/translation_it_IT.ts | 4 ++-- src/res/translation/translation_nl_NL.ts | 4 ++-- src/res/translation/translation_pl_PL.ts | 4 ++-- src/res/translation/translation_pt_PT.qm | Bin 99128 -> 99129 bytes src/res/translation/translation_pt_PT.ts | 12 ++++++------ 10 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index 119a3e2a9821bef4a91beb32602586fbeea47711..8c0751c92f5811ada22d739c3548fc20b2b1aaf5 100644 GIT binary patch delta 3459 zcmX9=d0b8T8-Bj$-gC}9_nvz$nI@&hHk7Th6ov?GB2<Z(#;v7B()%zPO5{zl-A1$g&i6zL&&&mLfI&Izy0LL$Hij096sz{ePX z=K0`Lc;Idv_%wT<#Y^y6VPK;-fzMtJ)+7~zoeyySD1?}aK+$%H1s8z8PS88<1464C z@#bW7$W{Y(k?8Qs0eBN^3}t3sIq)c>Z=L-ckhT5-&sYPP5C*TQWt9IWc;(m=Uc_Lh zM6l3i7q}z7^ zR7a3;z8XyLiGu_E!MZu&M!Xj=Uuwjex14eFCn6(gA&Rr(>4FM8%%e6IXXEK;TVP=a z{8u#(Y``g0B=rXypNOiu-qgOB24n*|;=Nrt@OB{M-{#VV64RF@foWQ^UZJUgRTT5= z{tV2z-gu2`Kf;$8eZPSPZ(}?CiU3CwmXd7^);or!o6H0>=h>x={=k(7?9#z3us++^ z?GL$NR_E9wzb_;TTlREv7Es@cRrs9&o2fUtsoF^^=g@2v{W@*DkFCGuv>(4E#ReA6R9s+ai&Anf+1V~M3#5-fT57DFs zRU}upBoerBldHSp0-W8?eX^|t@;p_-p#VUARV7@k!Ymf*tZI?ng@&b{%IY&EGJ2A# z)rpxTzA{z!@h)JU5377jc96XGs}_vv4mizF#h#o3d~j984K4&`6sR`u-wHN%h3e0U zUSRXmRR6T5ICJ`|YVJ>^#B{2f2lT(xLB?xp8`q)gaoz=B0~e};c2|P=l&WWSKS%uL zs3T|7K*3fWnY@5Bu~NOniv}mjM4edI11MeBh?O6Woq3yHJJoxZdje^SI&J8$#CE1S z;}#A46W<18PCL~H_6GqA($xp96WhgB>O(oP)XizeSl%YYPhHfThW4K|jaX@}F3qL! z;OF@_3ej&b~=s>eX2$S=M#2go<) zSB2~XbGPQ>=EQ?_Y{##?x`IsMJilS$P2l!K<59sTU^$5`&KYN@c?+)S_mqMC)-;kOfsceninEO1(Kok6olB} zW@Nfsgq_BZB=Hhq&$-dm#R4HMma@9kSIFoklhTe02f|&z#`pRXB3-vz0*ZXUV*9BXMsjwGI0fs9G#_7(qPvE+&P%tYJR7RG^E#=Z z(1B*=fmG;7iMy|oo-Zb*w8x~n-NtC3^0f51A2Be}UTdhQ179a=+idGjhS^2yd4&Q# zwQ0nv678t%)V!e+wNu|yYi9Smi@G0Usr-TM`-7Hl2M2GXn*l?qYEdj(5Cq}2mXlFW=t(5e><%`@QyP7 z;k@?G5bEv1uZ>u;Q+s^W31H7M?MVk7c$cI-wRQmz5oheHGc(s|uQnYI<}zFR+=2M< z(P&>tq~$?B8bftvc5QXeL+1nKqRzv08Q7E^I=|+fXsa^lg1hzsQ%~20ccZ)R4>o2} ztgE_p&toW6Q{5&95=EO_U9$ToT1{pd@9WH>AL-K84A5|6ec*Gu=aP57K<1?&0tOq}93x zWMU892lXp3`HO5)Qw-)P%Re0Ez}h&-R!ga}XuD3b_4@auIp+psPLpKoI(o9ohsk!8 zCP1fYa;Hualy0Hy>81hx=O7Qh@PxL*3$kxMX|MZfIcPH_ZjvC+%r*zJ*(c8|??ROA zm1m!#-}`&WVNdCzUDfiu+eKiL>g0{(^rp{UD;sSU7^`KA=st4JAX1s@ZTaGudw|6x z`KpHYj;?p*s|oW+Jh$XqMHckZZIl0dcbB;MO@0F@yzYRZ5yHTcG7etK8xq78^ zFV*O;x7%k??u3V|bY^?AWlXa@<@7fz zWf$_vC;Ar?>HC?}^ly9nkon~5YmWGkOXa~AXW@NCSsF)yXQe7jU+n=p>{g7X zlWAqHQBuCM=N7D_d?a+Zq@1}K543buN==tg%DWO)s+AlwDznsnG{tr>M BCzJpH delta 3399 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 E R B I N D U N G S A U F B A U - + Personal Mix at the Server: Eigener Mix am Server: @@ -1447,7 +1447,7 @@ - Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net. + Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net). Die Upload-Rate hängt von der Soundkartenpuffergröße und die Audiokomprimierung ab. Man muss sicher stellen, dass die Upload-Rate immer kleiner ist als die Rate, die die Internetverbindung zur Verfügung stellt (man kann die Upload-Rate des Internetproviders z.B. mit speedtest.net überprüfen). diff --git a/src/res/translation/translation_es_ES.qm b/src/res/translation/translation_es_ES.qm index 591968d26f11aaddc14ca6674017998596366e1b..0a4a97b5c3613f0ad9e8142fc60ab46b41429a99 100644 GIT binary patch delta 3468 zcmX9>cU%-#7d>xwW_D+Hc2_UMMNw?Ma7^&nqn6Lu^}o(iCAK1H9`{95OM5c z{S*}ydx<2d7z7ltp)n8}ihwm(5HR9*W&b+A-I;ywzH`qx?`}!8P+BdlY{9OlI+{DC z0T=>&v(<_b(N-+l1qhMArc$6?4?w>j7&-~q@MCI>OUEbRR~!WLAA#SJ2)GTlVmJf8 z?Kj~43GkIGfse7^U)~13|338(v%MC=*D7$ChtO{zt#k@P;8$QiZmG}Bu`Uq8hl6q9 z5E4y*!wv}B1>nj!2_#x5pa*b^xkyB?Dh%jJ1U2+lFEg{{B1V3A14LvayfO)RIvo*Tc+gpD z5GA&xTCX4~d?A?Nh4I0YfszAQm_|g5Y>m{MEx@8kY@L%0MCM@Uul_)N1a`aL01OMU zr-LWJyCdV=D=^gJVBcY2E>5_X5(IoV&x%tDn&Wy~A|tXhinCIH(hj(vM{T^Ah4L_0 zU}hQ~znlTqH4zo-zXlt64lnC`fP%P2WZu-G?M+?fg0e*&6b%y^HE`TjBMK5Yl! z9LfT_RD#)*s+T#J!TC%b(f}5j%eD@^3Uu^k+q0a&Jbz$&Y^DH`mR(pi3^@0gT{xHt z=5>eNs`(SFX(D?t^gkl)87m*33A_$t6+^SZ#w4l!8W+np&Ne>)xOAU$Q0#!XRIXLo z44}4(>;14Z@S!gkcC-?hb&(sHL}v|~z(sT;^88}C`1f&Orp=sX{%GK;6Sw%C0!)bF zk}(1J&zW1dVid5gHMb*ZIAG_;?OL)DEO--_L9K;b3oBY`7jhXpoPb{(xJ*+gz&3=- ztS80EOSltLspaxT?o7MmK>9)MoM$Xp>uRnbD+Z9Sa}S3c0`t~!Z)Yt8HWpa%a&NB2 zLTb<)=js;D1MkHtIQyTG5IGM~tBj&!uw`_c#rg@epnPsoW@jVqX zyo09YsVQL5@tQ89eZg9WYlht1Lh>rt%o@=J`09ct=`^|Z$w^Iea1jubt695mBiNt| zn!~fZgH6_JN?Xx7Q_3`N?hq3jo@(CQrQdCgP%rb&en3 z7MR_cpEs2Zg`WJpv{|Hy+5EyFGS14!{F=J2fTBn%K0Knf7o59)#_w7Z2yCw9(+4ai zw!`_18)W#u;~J5<&*t~+bSAEE|*V
>7Xj zPtqM%%KxJ#5OqfWj#D_*xSqdX(i(_;#aEmo#g)bLPrD?5O<2vpsr?$*eUpD1k^*>! z3d%<^R(xzDvSup;+rStw_DnU3<{(F*({|Enz&XL^-%McbWTA(Vl%+QaJ)@3+_4p|G z)(<3`UJ(NRYfFuJAPh5+ONzf0MyS--O*@3Kah_l?Vd^x|+%a63`?8Gqnj_5rD-OtB zC;S}yKU#$slH*dqoIQjUg+EXzBnvCYUIz+;)#IXbcy}Q!jZSPVvtrQ=!ZI*Jjj&xu z>~A|GZ2yVWZ0{vxXznukUKP3R=hVOl$iGy_am(wiuWI780*@45SuyzpeGIn@f4^qxEy% z0?b*Z4Ry|hg}LgrLvp(TF3+{YZRv-D7HFf~B{J(S?U*{^&F?Sm%qU`Jx?>|U<7@3~ zSNg0tYUd0nB0Qj7l}`$r<)U4)fs(T4bM5+j*>r6bYd6TDV7(Hxjs224X*cINk={>h zPfW}Pv$fNnUf*B6rfY3kqkV9qH>oI6`>_5zn9*NbkesGfPL9q zmzVG_@H|;k&b$D!#z^)>tBCvWr8d*a%8&X;?t`fZ(PdJvCRFe$jpXY<6hzrc{a91F z+r6ZanA1Roy%bSP&)=J+=+w8=1D;9IPs^$DiPF@_1mf;9DS2WmAb6{^tk);Mjg(fl zq-3e7l2Yp{C{VjedrP(euKlIMx2UOcZKNaD+K@;NO1~H0pldQrIuk|jfA~Slb0&s7 znN(2ZMS(n0D(Xmu`-e(Z^NUF3)1|tdss(sBM|$5og~pY3decXGp*lt1dQ%q)%tU?Q zC0ei~$cm5l=|^m)=JkotPk2kM8JDe(38JasL5+U$pnO2=r=MI!3)ddfPp*AOj4jbm zjr^OMzFZ&oXfN1jrTXa~ej@t>=w}2{P{&-=F9`Cd4WqpE>BH=R_0jr_3Ad@&WAyu9 zQ{|s`)*p_|CUq^a;-ysm$q}b0J*VnVdkH|Lr~da9bkg__YA=J?{-(aL>1eP{h59Nl z;wR*+{)t3d?)F5TW-z-=FmxR-6Zq@3A;51j*vKu0p>`g$XSHEsr=GyOGluxiwAb}w z^#HB)qv4mTL@@W~hSgpqincJM^;=Cj(p9}TaP{Ti?0p^%&^QIWA&11RQQ4Y+kmmL?;$t>=Q?DXqf>fGB#WbW-{r#iZ_Zu`q_ zFKj5tp35E{v#H#Ta-hEsn6Y0D&Ur-B;YN8#zAu>TQaNfZ6)p~xr)1evXJ*P%9(n@( z2g*}_r{`UA<>}?LQJPMkaqB8r*jMtZhjgdM*vP7@0`-;bU}+|w|7I3l<6Gq1ktINj z7`af_nVSBaT$nn8GSgnZan%9XvQ&QjnnaKnDp$@P4YVICSI3{E*(h4Biy}smU{r4J z25akXY_Xd-TrK{gDOAq7uvqixE5M$oNXd<$wv1mMf9vEP}Vn^3ObRn9upypo6!VoAK+0RC`6NT)H0302sxIRk*98V}-woYLF!Q24^f&Xi*z5wyK*x{!^ArIH-pPitBtQ MG4W`{qSy8R2b#Y+#sB~S delta 3403 zcmX9>d0b8T8-Bj$-gDP;&$Uc$^(!$nlBR`3QDki)OK35L6ctiUW-xRu^_$5OIrcq2 zg^+z2kzJ)^H#B1_sbnlETFCEJe?9l!b3Whi`#$gUKJR<~e$SV@=T}>>+i8{tr!4@+ z0z-DRV(`>fEZz<96M-!yK#zWaW+UJ~9oUqd7SYYA3i1_)fc!GZwPHJ7K6!WLDAh0I6WDPq{+awP$&y70Rc78Iqd_Y z*S2E518j5TfbDOveeDR8`%AN!!8;SfpVF@`%UY0icm%Ixy0xJU-r-LveqVTBrdyll z!^dSESlD{_TuK3g9N~MNh+tJ1**^nl_K*DcCQ)=GzMXh&0Rpd0DB$m z0l6)*F4lnI6Ald?2iDCJw^O}=*>hVly1*QFtci??y>Krl75Lj8&+@2@*Uz9lzy|nv z3tqmB2kWyG6&nYF`Cq`>1~;H!Rtqwhcc|-L2E6Ra`1e-;nLE=xr8Jw$nd_`wfR!Kf za;^kxS0dfux{b+W(%5FOiC5ST|672Q2TRZC2xh;S?QItgsFm#6nsLCza(3-dHkji- z?7_z?U~QMO=l-9Gv}#r!mJNKEz$*N6!6qe1LuK8JJ2;d4;XvV2&RjGFVpenCm&OD2 zmE3@`Uci?@T)?qPAfbQ@Or~4|!nxqSM4o397uOU6rr*jL=Z6BfEV)IWL?AqbOF=mB zxg)n>#ZSP_@3~#x;{j7oE@Sa(FrUp_7L^v=En3l7{~MRJt0S<|jLX*d1WbIn>_$?Y zu!uW3lS(cWaOZoR05Y?=i}q1qUEXm8IT3(xhbtR<7|cb<)g>$dHs`nE4G-?4k<=hN z!8I(H2jp$x8VWstljFEXn>WC@Q!>TjAZju@nd0hOOl4u$WdF&rr)JqJvuvV3#yiM5 zpNwi!JIU*XEMbB((EFM!`3!aItCO-6pJE{5s%-uK&0wRi%8tx& z1&dV6Y9A8=n_kIkpV0f8gQWX%E6=0ypL`3z`VNtY?0y3__`ZCG^95i|Px-u=)JW(r zpSLxEw2&ZQ;7tv)x?H}lp*K(*+=^vKq~5%hYdd+yVlQCZCwb<`rNnZeJnJqs`lDGb z$ZQkj2lj^mah>G{ZW7DaRr14^iHt98q?No?TaEmd8#U`~yH+f{C7t69#trgkC0&51 z8hOP<(p71!yxKVtEL@V;)(-^s+>_V&rULeUy!e&cCoZxD*>}r%6R!v`R?T;?rsv~& z^IgYIpk{r`J6MI2YAyJl>7>u$7kIaK*}(egd_Ns2N~7ibha3m%*UWn~jslD3i}~T7 zt*Ii<`Ehz`k9*Pl1c@rTC7qufV-FTFfsb|<$%|t78NDs2Ei(Dp-}=!dke~aulqmd# zpZ`}3kh`A$BkF&2u#8WMNd>d&!LKM{nO3A)l&EWSfn z3Z|{&(^XWEow93xEG7qAhx8 zE9U(p^;UK>&R6ie{D7rF3a!gMz;2_$bP+jRbEd-V^b_D&h9cyCDmma8#S{~2tC-J< z#9+#$$8$yUXao80Y{d?#o^BNt85aVmurC#v$rRPujfyN+fkbGlI1uLnHZoChejLfe zMBRc6?utuUQ2>{5QF^R2L@icSb)uBll_+XzzFAkW;=_edpi>*gCo7`HE=BRxf~ZyP zQL^P^+XJ5{xe5x~SgkZUNAIO{P+E*i1oMqmT6$59T>nzKG|VNVc2#;>Q7`(Oh|*uwU1O<5UwEo*#}KtsOV#deDBv}m z+QXdE4>72Rv9>g;9n`)NXMhS*b#OgBZ|b0)npTJQOb+$b>T-%aLOpY0BJtKv(rFCF zN_ARe1=(RA^}dqrfXxW?kq1{dt`xa&$hR7^aD=q6_K|X(H=C z5l@RWGbcWxGB4A_yx0fUzC;uI<#$s4FipG{*=@v4&2Qdxafpj1bDSx#F-(&c{*VeB zsyXn166nxNb0jJkU63%pMDi1#pQ`OM@@L?$8trh;MPPy3wEm`cbm=?ow4VKePr2H- zUb(=XyV5~AD_Og;DhbT?wRWu|Nx>T0t;5!m1-M9$wFcu_ZRV;$w00zE5B3wm#&X)6 z>lBZClJ=r!GjQmnHveD&tx8|DMQ@4GYb&+4szl)7supD3uV_p5|3eC2t9|A>oKVz0 z8$E~=+SH1T540cUuW1cACbX-)2iCP*`0f}7W>5>33n??BttfO{RYxVPZ9!&hCvhmFgLarE)Pi{OWr12 z4J-jHB7`DUFDm+Jp(rh$?9NQMd&?ZyzC?KWfkcouQmC903j8=(cprC)W<{9L5JHS% zp-z0b2h6&=&SDR7xNcqxvOX0$m+EY=pr<2nis|))UAKt2cT$1xdx#HB`p~K)mWZzsbAc0<;_DR3RE!X7 zEop+rZV*2m$fj-mpx8LR7;qe;@9evm4z$yIbXf$Mt2d1lC3RyQzCgkInjfCQoR^d8DuY z;?JV|8y1L-0bY!ljI N T E N T A N D O C O N E C T A R - + Personal Mix at the Server: Mezcla Personal en el Servidor: @@ -1459,7 +1459,7 @@ - Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net. + Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net). La Tasa de Subida de Audio depende del tamaño actual de paquetes de audio y la configuración de compresión de audio. Asegúrate de que la tasa de subida no es mayor que la velocidad de subida disponible (comprueba la tasa de subida de tu conexión a internet, por ej. con speedtest.net). diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index c5d059feca..2ad398598d 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -212,7 +212,7 @@ T E N T A T I V E D E C O N N E X I O N - + Personal Mix at the Server: Mixage personnel du serveur : @@ -1459,7 +1459,7 @@ - Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net. + Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net). diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index 7025bd01cf..cbbdadb008 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -200,7 +200,7 @@ I N A T T E S A D I C O N N E S S I O N E - + Personal Mix at the Server: Mixer personale sul Server: @@ -1435,7 +1435,7 @@ - Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net. + Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net). diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index f1af1cf317..098b9d35c6 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -200,7 +200,7 @@ A A N H E T V E R B I N D E N - + Personal Mix at the Server: @@ -1423,7 +1423,7 @@ - Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net. + Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net). diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index ee795ac35c..07150e67e6 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -168,7 +168,7 @@ - + Personal Mix at the Server: @@ -1179,7 +1179,7 @@ - Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net. + Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net). diff --git a/src/res/translation/translation_pt_PT.qm b/src/res/translation/translation_pt_PT.qm index 66cbac600e0cd31bb9f4bbe74b8197c298b941ef..11bc528e6dec652be415b09abaf291934fee36af 100644 GIT binary patch delta 3479 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 bw;8;nS&>}2q)=`g+hWT E N T A N D O L I G A R - + Personal Mix at the Server: Mistura Pessoal no Servidor: @@ -1318,6 +1318,11 @@ mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. vai aumentar a quantidade de dados da transmissão. Verifique se a taxa de upload não ultrapassa a velocidade de upload disponível da sua ligação à Internet. + + + Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net). + A taxa de transmissão do áudio depende do tamanho do pacote de áudio e da configuração de compactação de áudio. Verifique se a taxa de transmissão não é maior que a taxa disponível (verifique a taxa de upload da sua ligação à Internet usando, por exemplo, o speedtest.net). + Mono-in/Stereo-out @@ -1445,11 +1450,6 @@ Overall Delay is calculated from the current Ping Time and the delay introduced by the current buffer settings. A latência geral é calculada a partir da latência da ligação atual e do atraso introduzido pelas configurações do buffer. - - - Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net. - A taxa de transmissão do áudio depende do tamanho do pacote de áudio e da configuração de compactação de áudio. Verifique se a taxa de transmissão não é maior que a taxa disponível (verifique a taxa de upload da sua ligação à Internet usando, por exemplo, o speedtest.net). - Low From 55af62b34800403253c4314577faca751de36ca9 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 9 Jun 2020 18:45:30 +0200 Subject: [PATCH 135/936] r3_5_6 --- ChangeLog | 14 ++++++-------- Jamulus.pro | 2 +- src/clientdlgbase.ui | 2 +- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index 66c53151ad..8d94600480 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,7 +4,10 @@ -3.5.6git + + + +3.5.6 (2020-06-09) - support sorting faders by channel name (#178) @@ -16,21 +19,16 @@ - added ukulele/bass ukulele instrument icons created by dos1 (#319) -- added check in acknowledge message, coded by atsampson (#302) - - avoid showing IP address if no name in the musician profile is given (#316) - show channel numbers if --ctrlmidich is used (#241, #95) +- added check in acknowledge message, coded by atsampson (#302) + - bug fix: on MacOS declare an activity to ensure the process doesn't get throttled by OS level Nap, Sleep, and Thread Priority systems, coded by AronVietti (#23) - - - - - 3.5.5 (2020-05-26) - added banjo/mandolin instrument icons created by atsampson (#283) diff --git a/Jamulus.pro b/Jamulus.pro index 27568b72e5..8458459a52 100755 --- a/Jamulus.pro +++ b/Jamulus.pro @@ -1,4 +1,4 @@ -VERSION = 3.5.6git +VERSION = 3.5.6 # use target name which does not use a captital letter at the beginning contains(CONFIG, "noupcasename") { diff --git a/src/clientdlgbase.ui b/src/clientdlgbase.ui index 6f30a5e8da..133deac507 100755 --- a/src/clientdlgbase.ui +++ b/src/clientdlgbase.ui @@ -7,7 +7,7 @@ 0 0 345 - 363 + 465 From fc9a3a4b7639dffcd46d841b8179f81c29860021 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 9 Jun 2020 19:40:24 +0200 Subject: [PATCH 136/936] prepare for next version --- ChangeLog | 6 ++++++ Jamulus.pro | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 8d94600480..a28892d355 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,12 @@ +3.5.7git + + + + + diff --git a/Jamulus.pro b/Jamulus.pro index 8458459a52..501922eab6 100755 --- a/Jamulus.pro +++ b/Jamulus.pro @@ -1,4 +1,4 @@ -VERSION = 3.5.6 +VERSION = 3.5.7git # use target name which does not use a captital letter at the beginning contains(CONFIG, "noupcasename") { From dc7d56532ce79d75e571425b92c0c06d16bc85f0 Mon Sep 17 00:00:00 2001 From: Tormod Volden Date: Mon, 8 Jun 2020 17:41:30 +0200 Subject: [PATCH 137/936] debian: Trim build dependencies dpkg-dev is not needed for building binaries. make, g++ and libc6-dev will be pulled in by e.g. build-essential which is not necessary to specify (Debian policy). Packages should not build-depend on qt5-default but rather on qt5-base-dev and select QT5 in debian/rules (https://wiki.debian.org/Lintian/Tags/depends-on-metapackage) qtdeclarative5-dev is simply not needed. qttools5-dev-tools is needed for translations using lrelease. Signed-off-by: Tormod Volden --- distributions/debian/control | 7 +------ distributions/debian/rules | 3 +++ 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/distributions/debian/control b/distributions/debian/control index 9f198a9c72..78a4d291db 100644 --- a/distributions/debian/control +++ b/distributions/debian/control @@ -4,13 +4,8 @@ Priority: optional Maintainer: "Marc Landolt jr" Build-Depends: debhelper (>= 9), - dpkg-dev, - g++, - libc6-dev | libc-dev, libjack-jackd2-dev, - make, - qt5-default, - qtdeclarative5-dev, + qtbase5-dev, qttools5-dev-tools, Standards-Version: 3.9.5 Homepage: http://llcon.sourceforge.net/ diff --git a/distributions/debian/rules b/distributions/debian/rules index 2cf5eb13f9..03a8bdb8e1 100755 --- a/distributions/debian/rules +++ b/distributions/debian/rules @@ -1,4 +1,7 @@ #!/usr/bin/make -f + +export QT_SELECT=qt5 + %: dh $@ From aa2914d56de485a954a8df78a9eb731e201bfd93 Mon Sep 17 00:00:00 2001 From: Tormod Volden Date: Tue, 9 Jun 2020 23:50:03 +0200 Subject: [PATCH 138/936] debian: Bump Standards-Version to Ubuntu 16.04 level Avoid last remaining Lintian warning there. Signed-off-by: Tormod Volden --- distributions/debian/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/distributions/debian/control b/distributions/debian/control index 78a4d291db..77bd912b12 100644 --- a/distributions/debian/control +++ b/distributions/debian/control @@ -7,7 +7,7 @@ Build-Depends: libjack-jackd2-dev, qtbase5-dev, qttools5-dev-tools, -Standards-Version: 3.9.5 +Standards-Version: 3.9.7 Homepage: http://llcon.sourceforge.net/ Vcs-Git: git://github.com/corrados/jamulus.git Vcs-Browser: https://github.com/corrados/jamulus From 4e5df07721b233998914bbbfb1b3b94fccaf25c3 Mon Sep 17 00:00:00 2001 From: Tormod Volden Date: Tue, 9 Jun 2020 21:36:14 +0200 Subject: [PATCH 139/936] Update convenience build script for Debian - Port to Bourne shell - Improve text about binary compatibility - Install needed dependencies (see debian/control) - Only build binary packages Signed-off-by: Tormod Volden --- distributions/build-debian-package.sh | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/distributions/build-debian-package.sh b/distributions/build-debian-package.sh index 4bbb190138..98e6f4c363 100755 --- a/distributions/build-debian-package.sh +++ b/distributions/build-debian-package.sh @@ -1,16 +1,19 @@ -#!/bin/bash -red="\e[91m" -default="\e[39m" -echo Today \(2019-05-27\) it is maybe best to build the .deb it on Ubuntu 16.04 -echo Since there are no versions specified of the libraries it will takte current -echo so it would also run on Ubuntu 17,18,19 or Debian 9/10 -echo -e ${red}press a [KEY] to continue or [CTRL]-C to abort${default} -read -n 1 +#!/bin/sh -e -sudo apt-get install devscripts build-essential lintian dh-make -sudo apt-get install qtdeclarative5-dev qt5-default libjack-jackd2-dev +red="\033[91m" +default="\033[39m" + +echo It can be preferential to build the binary packages on a Ubuntu 16.04 +echo system since there are no specific library version dependencies.The +echo resulting packages will run on Ubuntu 17/18/19/20 or Debian 9/10. +echo +echo ${red}Press [ENTER] to continue or [CTRL]-C to abort${default} +read dummy + +sudo apt-get install devscripts build-essential \ + debhelper libjack-jackd2-dev qtbase5-dev qttools5-dev-tools mv debian .. cd .. -debuild -us -uc +debuild -b -us -uc mv debian distributions From a3d242e177f5e0c4f789281a96db4ca0cec7d30a Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Wed, 10 Jun 2020 20:04:09 +0200 Subject: [PATCH 140/936] try to fix outstanding licence text issues (#341) --- android/androiddebug.cpp | 74 ++++++++++++++++++++++++++++---------- android/sound.cpp | 2 +- android/sound.h | 2 +- mac/activity.mm | 2 +- src/protocol.cpp | 40 ++++++++++----------- src/vstmain.cpp | 2 +- src/vstmain.h | 2 +- src/vstsound.h | 2 +- windows/deploy_windows.bat | 23 ++++++++++++ windows/installer.nsi | 24 +++++++++++++ 10 files changed, 128 insertions(+), 45 deletions(-) diff --git a/android/androiddebug.cpp b/android/androiddebug.cpp index 93656a47d6..c2f08d09a5 100644 --- a/android/androiddebug.cpp +++ b/android/androiddebug.cpp @@ -1,6 +1,30 @@ -const char*const applicationName="Jamulus"; +/******************************************************************************\ + * Copyright (c) 2020 + * + * Author(s): + * Simon Tomlinson + * + ****************************************************************************** + * + * This program is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation; either version 2 of the License, or (at your option) any later + * version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + * +\******************************************************************************/ -#ifdef ANDROIDDEBUG // Set in my myapp.pro file for android builds +const char*const applicationName = "Jamulus"; + +#ifdef ANDROIDDEBUG // Set in my myapp.pro file for android builds #include #include #include @@ -9,37 +33,49 @@ const char*const applicationName="Jamulus"; #include #include -void myMessageHandler(QtMsgType type, const QMessageLogContext& context, const QString& msg) +void myMessageHandler ( QtMsgType type, const QMessageLogContext& context, const QString& msg ) { - QString report=msg; - if (context.file && !QString(context.file).isEmpty()) { - report+=" in file "; - report+=QString(context.file); - report+=" line "; - report+=QString::number(context.line); + QString report = msg; + + if ( context.file && !QString ( context.file ).isEmpty() ) + { + report += " in file "; + report += QString ( context.file ); + report += " line "; + report += QString::number ( context.line ); } - if (context.function && !QString(context.function).isEmpty()) { - report+=+" function "; - report+=QString(context.function); + + if ( context.function && !QString ( context.function ).isEmpty() ) + { + report +=+" function "; + report += QString(context.function); } - const char*const local=report.toLocal8Bit().constData(); - switch (type) { + + const char*const local = report.toLocal8Bit().constData(); + + switch ( type ) + { case QtDebugMsg: - __android_log_write(ANDROID_LOG_DEBUG,applicationName,local); + __android_log_write ( ANDROID_LOG_DEBUG, applicationName, local) ; break; + case QtInfoMsg: - __android_log_write(ANDROID_LOG_INFO,applicationName,local); + __android_log_write ( ANDROID_LOG_INFO, applicationName, local ); break; + case QtWarningMsg: - __android_log_write(ANDROID_LOG_WARN,applicationName,local); + __android_log_write ( ANDROID_LOG_WARN, applicationName, local ); break; + case QtCriticalMsg: - __android_log_write(ANDROID_LOG_ERROR,applicationName,local); + __android_log_write ( ANDROID_LOG_ERROR, applicationName, local ); break; + case QtFatalMsg: default: - __android_log_write(ANDROID_LOG_FATAL,applicationName,local); + __android_log_write ( ANDROID_LOG_FATAL, applicationName, local ); abort(); + break; } } #endif diff --git a/android/sound.cpp b/android/sound.cpp index 2ee066964c..5223cfd656 100644 --- a/android/sound.cpp +++ b/android/sound.cpp @@ -2,7 +2,7 @@ * Copyright (c) 2004-2020 * * Author(s): - * Simon Tomlinson + * Simon Tomlinson, Volker Fischer * ****************************************************************************** * diff --git a/android/sound.h b/android/sound.h index d8c27f90a1..c43c923d2b 100644 --- a/android/sound.h +++ b/android/sound.h @@ -2,7 +2,7 @@ * Copyright (c) 2004-2020 * * Author(s): - * Simon Tomlinson + * Simon Tomlinson, Volker Fischer * ****************************************************************************** * diff --git a/mac/activity.mm b/mac/activity.mm index e9b56da4d6..a0f718cc53 100644 --- a/mac/activity.mm +++ b/mac/activity.mm @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/protocol.cpp b/src/protocol.cpp index 20d10300a6..32b4de4feb 100755 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -4,7 +4,25 @@ * Author(s): * Volker Fischer * + ****************************************************************************** + * + * This program is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation; either version 2 of the License, or (at your option) any later + * version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + * +\******************************************************************************/ +/* Protocol message definition --------------------------- @@ -145,7 +163,7 @@ MESSAGES (with connection) ... 4 bytes sam rate | 2 bytes audiocod type | ... ... ------------------+-----------------------+ ... ... -----------------+----------------------+ - ... 2 bytes version | 4 bytes audiocod arg | + ... 2 bytes version | 4 bytes audiocod arg | ... -----------------+----------------------+ - "base netw size": length of the base network packet (frame) in bytes @@ -359,25 +377,7 @@ CONNECTION LESS MESSAGES five times for one registration request at 500ms intervals. Beyond this, it should "ping" every 15 minutes (standard re-registration timeout). - - - ****************************************************************************** - * - * This program is free software; you can redistribute it and/or modify it under - * the terms of the GNU General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) any later - * version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - * -\******************************************************************************/ +*/ #include "protocol.h" diff --git a/src/vstmain.cpp b/src/vstmain.cpp index 6766e179cc..6044c909f5 100755 --- a/src/vstmain.cpp +++ b/src/vstmain.cpp @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/vstmain.h b/src/vstmain.h index 90e216faee..38edc5e7a8 100755 --- a/src/vstmain.h +++ b/src/vstmain.h @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/src/vstsound.h b/src/vstsound.h index 284449c9bb..04ea94a675 100755 --- a/src/vstsound.h +++ b/src/vstsound.h @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License along with * this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * \******************************************************************************/ diff --git a/windows/deploy_windows.bat b/windows/deploy_windows.bat index 16c315622f..41979c1b93 100755 --- a/windows/deploy_windows.bat +++ b/windows/deploy_windows.bat @@ -1,4 +1,27 @@ @echo off +rem /******************************************************************************\ +rem * Copyright (c) 2004-2020 +rem * +rem * Author(s): +rem * Volker Fischer +rem * +rem ****************************************************************************** +rem * +rem * This program is free software; you can redistribute it and/or modify it under +rem * the terms of the GNU General Public License as published by the Free Software +rem * Foundation; either version 2 of the License, or (at your option) any later +rem * version. +rem * +rem * This program is distributed in the hope that it will be useful, but WITHOUT +rem * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +rem * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +rem * details. +rem * +rem * You should have received a copy of the GNU General Public License along with +rem * this program; if not, write to the Free Software Foundation, Inc., +rem * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA +rem * +rem \******************************************************************************/ rem To set up a new Qt and Visual Studio version rem - set environment path variable to the correct Qt bin directories: diff --git a/windows/installer.nsi b/windows/installer.nsi index 326f5bba49..7ae68103ee 100755 --- a/windows/installer.nsi +++ b/windows/installer.nsi @@ -1,3 +1,27 @@ +;/******************************************************************************\ +; * Copyright (c) 2004-2020 +; * +; * Author(s): +; * Volker Fischer +; * +; ****************************************************************************** +; * +; * This program is free software; you can redistribute it and/or modify it under +; * the terms of the GNU General Public License as published by the Free Software +; * Foundation; either version 2 of the License, or (at your option) any later +; * version. +; * +; * This program is distributed in the hope that it will be useful, but WITHOUT +; * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +; * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +; * details. +; * +; * You should have received a copy of the GNU General Public License along with +; * this program; if not, write to the Free Software Foundation, Inc., +; * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA +; * +;\******************************************************************************/ + ; Jamulus NSIS installer script !include LogicLib.nsh !include x64.nsh From 532f424c590c34fbf82bf731d4d050d872d7ffb2 Mon Sep 17 00:00:00 2001 From: Olivier Humbert Date: Wed, 10 Jun 2020 21:14:59 +0200 Subject: [PATCH 141/936] French translation update --- src/res/translation/translation_fr_FR.ts | 182 +++++++++++------------ 1 file changed, 91 insertions(+), 91 deletions(-) diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index 2ad398598d..bd8aea67b2 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -53,22 +53,22 @@ This app enables musicians to perform real-time jam sessions over the internet. - + Cette app permet aux musiciens de faire des bÅ“ufs en temps réel sur internet. There is a server which collects the audio data from each client, mixes the audio data and sends the mix back to each client. - + Il y a un serveur qui collecte les données audio de chaque client, les mixe, et renvoie le mixage à chaque client. This app uses the following libraries, resources or code snippets: - + Cette app utilise les bibliothèques, ressources ou extraits de code suivants : Country flag icons by Mark James - + Icônes de drapeaux de pays par Mark James @@ -128,7 +128,7 @@ Released under the GNU General Public License (GPL) - + Publié sous la licence publique générale GNU (GPL) Under the GNU General Public License (GPL) @@ -311,32 +311,32 @@ Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. - + Affiche le niveau audio pré-fader de ce canal. Tous les clients connectés au serveur se verront attribuer un niveau audio, la même valeur pour chaque client. Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. - + Ajuste le niveau audio de ce canal. Tous les clients connectés au serveur se verront attribuer un chariot audio, affiché sur chaque client, pour ajuster le mixage local. Speaker with cancellation stroke: Indicates that another client has muted you. - + Haut-parleur avec barré d'annulation : indique qu'un autre client vous a mis en sourdine. Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. - + Règle le panoramique de gauche à droite du canal. Fonctionne uniquement en mode stéréo ou de préférence en mode entrée mono/sortie stéréo. With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. - + Avec la case-à-cocher Solo, le canal audio peut être réglé sur solo, ce qui signifie que tous les autres canaux, sauf le canal en solo, sont coupés. Il est possible de mettre plus d'un canal en solo. The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. - + L'étiquette de chariot identifie le client connecté. Le nom de l'étiquette, une photo de votre instrument et le drapeau de votre pays peuvent être définis dans la fenêtre principale. @@ -579,62 +579,62 @@ This shows the level of the two stereo channels for your audio input. - + Ceci indique le niveau des deux canaux stéréo pour votre entrée audio. If the application is connected to a server and you play your instrument/sing into the microphone, the VU 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. - + Si l'application est connectée à un serveur et que vous jouez votre instrument/chantez dans le microphone, le VU-mètre 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 mélangeur audio (Windows). For proper usage of the application, you should not hear your singing/instrument through the loudspeaker or your headphone when the software is not connected.This can be achieved by muting your input audio channel in the Playback mixer (not the Recording mixer!). - + Pour une bonne utilisation de l'application, vous ne devez pas entendre votre chant/instrument par le haut-parleur ou votre casque lorsque le logiciel n'est pas connecté. Ceci peut être réalisé en coupant votre canal audio d'entrée dans le mixeur de lecture (pas dans le mixeur d'enregistrement !). Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. - + En cliquant sur ce bouton, la légende du bouton passe de Connecter à Déconnecter, c'est-à-dire qu'il s'agit d'une fonctionnalité de basculement pour connecter et déconnecter l'application. Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows - + Contrôle les niveaux relatifs des canaux audio locaux gauche et droit. Pour un signal mono, il agit comme un pan entre les deux canaux. Par exemple, si un microphone est connecté au canal d'entrée droit et qu'un instrument est connecté au canal d'entrée gauche qui est beaucoup plus fort que le microphone, déplacez le curseur audio dans une direction où l'étiquette au-dessus du curseur indique Reverb effect - + Effet Réverb Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. - + La réverbération peut être appliquée à un canal audio mono local ou aux deux canaux en mode stéréo. La sélection du canal mono et le niveau de réverbération peuvent être modifiés. Par exemple, si un signal de microphone est envoyé sur le canal audio droit de la carte son et qu'un effet de réverbération doit être appliqué, réglez le sélecteur de canal à droite et déplacez le chariot vers le haut jusqu'à ce que le niveau de réverbération souhaité soit atteint. Reverb effect level setting - + Réglage du niveau de l'effet de réverbération Reverb Channel Selection - + Sélection du canal de réverbération With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. - + Ces boutons radio permettent de choisir le canal d'entrée audio sur lequel l'effet de réverbération est appliqué. Il est possible de sélectionner le canal d'entrée gauche ou droit. Left channel selection for reverb - + Sélection du canal gauche pour la réverbération Right channel selection for reverb - + Sélection du canal droit pour la réverbération The @@ -643,22 +643,22 @@ Green - + Vert The delay is perfect for a jam session. - + Le délai est parfait pour une séance de bÅ“ufs. Yellow - + Jaune Red - + Rouge @@ -668,42 +668,42 @@ Opens a dialog where you can select a server to connect to. If you are connected, pressing this button will end the session. - + Ouvre un dialogue dans lequel vous pouvez sélectionner un serveur auquel vous connecter. Si vous êtes connecté, le fait d'appuyer sur ce bouton mettra fin à la session. Shows the current audio delay status: - + Indique l'état actuel du retard audio : A session is still possible but it may be harder to play. - + Une session est toujours possible mais il sera probablement plus difficile de jouer. The delay is too large for jamming. - + Le délai est trop important pour bÅ“uffer. If this LED indicator turns red, you will not have much fun using the application. - + Si ce voyant LED devient rouge, vous n'aurez pas beaucoup de plaisir à utiliser l'application. The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: - + La LED d'état des tampons indique l'état actuel de l'audio/streaming. Si le voyant est rouge, le flux audio est interrompu. Cela est dû à l'un des problèmes suivants : The sound card's buffer delay (buffer size) is too small (see Settings window). - + Le délai du tampon de la carte son (taille du tampon) est trop petit (voir la fenêtre des paramètres). The upload or download stream rate is too high for your internet bandwidth. - + Le taux de flux montant ou descendant est trop élevé pour votre bande passante Internet. @@ -754,12 +754,12 @@ &Edit - + Édit&er &Sort Channel Users by Name - + &Trier les utilisateurs du canal par nom @@ -1328,7 +1328,7 @@ mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. - + mode augmentera le débit de données de votre flux. Assurez-vous que votre débit montant ne dépasse pas la vitesse de téléchargement disponible de votre connexion internet. @@ -1345,122 +1345,122 @@ The jitter buffer compensates for network and sound card timing jitters. The size of the buffer therefore influences the quality of the audio stream (how many dropouts occur) and the overall delay (the longer the buffer, the higher the delay). - + Le tampon de gigue compense les gigues de synchronisation du réseau et de la carte son. La taille de la mémoire tampon influence donc la qualité du flux audio (le nombre de désynchronisations) et le délai global (plus la mémoire tampon est longue, plus le délai est important). You can set the jitter buffer size manually for the local client and the remote server. For the local jitter buffer, dropouts in the audio stream are indicated by the light below the jitter buffer size faders. If the light turns to red, a buffer overrun/underrun has taken place and the audio stream is interrupted. - + Vous pouvez définir manuellement la taille du tampon de gigue pour le client local et le serveur distant. Pour la mémoire tampon de gigue locale, les désynchronisations dans le flux audio sont indiquées par le voyant situé sous les chariots de taille de la mémoire tampon de gigue. Si le voyant devient rouge, cela signifie qu'il y a eu un dépassement ou une sous-utilisation de la mémoire tampon et que le flux audio est interrompu. If the Auto setting is enabled, the jitter buffers of the local client and the remote server are set automatically based on measurements of the network and sound card timing jitter. If Auto is enabled, the jitter buffer size faders are disabled (they cannot be moved with the mouse). - + Si le paramètre Auto est activé, les tampons de gigue du client local et du serveur distant sont automatiquement réglés en fonction des mesures de la gigue de synchronisation du réseau et de la carte son. Si le paramètre Auto est activé, les chariots de la taille des tampons de gigue sont désactivés (ils ne peuvent pas être déplacés avec la souris). If the Auto setting 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 and to lower the jitter buffer size manually by using the sliders until your personal acceptable amount of dropouts is reached. The LED indicator will display the audio dropouts of the local jitter buffer with a red light. - + Si le paramètre Auto est activé, les tampons réseau du client local et du serveur distant sont réglés sur une valeur prudente pour minimiser la probabilité d'interruption de l'audio. Pour régler le délai/latence audio, il est recommandé de désactiver le paramètre Auto et de réduire manuellement la taille du tampon de gigue en utilisant les chariots jusqu'à ce que le nombre d'interruptions soit acceptable. L'indicateur LED affichera les désynchronisations audio du tampon de gigue local avec un voyant rouge. The buffer delay setting is a fundamental setting of this software. This setting has an influence on many connection properties. - + Le réglage du délai de la mémoire tampon est un paramètre fondamental de ce logiciel. Ce réglage a une influence sur de nombreuses propriétés de la connexion. 64 samples: The preferred setting. Provides the lowest latency but does not work with all sound cards. - + 64 échantillons : le paramétrage préféré. Fournit la latence la plus faible mais ne fonctionne pas avec toutes les cartes son. 128 samples: Should work for most available sound cards. - + 128 échantillons : devrait fonctionner pour la plupart des cartes son disponibles. 256 samples: Should only be used on very slow computers or with a slow internet connection. - + 256 échantillons : ne devrait être utilisé que sur des ordinateurs très lents ou avec une connexion internet lente. Some sound card drivers do not allow the buffer delay to be changed from within the application. In this case the buffer delay setting is disabled and has to be changed using the sound card driver. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. - + Certains pilotes de carte son ne permettent pas de modifier le délai de la mémoire tampon à partir de l'application. Dans ce cas, le réglage du délai de mise en mémoire tampon est désactivé et doit être modifié à l'aide du pilote de la carte son. Sous Windows, appuyez sur le bouton Paramètre ASIO pour ouvrir le panneau des paramètres du pilote. Sous Linux, utilisez l'outil de configuration Jack pour modifier la taille de la mémoire tampon. If no buffer size is selected and all settings are disabled, an unsupported buffer size is used by the driver. The application will still work with this setting but with restricted performance. - + Si aucune taille de tampon n'est sélectionnée et que tous les paramètres sont désactivés, une taille de tampon non prise en charge est utilisée par le pilote. L'application fonctionnera toujours avec ce paramètre, mais avec des performances limitées. If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. - + Si les paramètres de délai de la mémoire tampon sont désactivés, il est interdit par le pilote audio de modifier ce paramètre depuis le logiciel. Sous Windows, appuyez sur le bouton Paramètres ASIO pour ouvrir le panneau des paramètres du pilote. Sous Linux, utilisez l'outil de configuration Jack pour modifier la taille de la mémoire tampon. Selects the number of audio channels to be used for communication between client and server. There are three modes available: - + Sélectionne le nombre de canaux audio à utiliser pour la communication entre le client et le serveur. Trois modes sont disponibles : and - + et These modes use one and two audio channels respectively. - + Ces modes utilisent respectivement un et deux canaux audio. Mono in/Stereo-out - + Entrée mono/sortie stéréo The audio signal sent to the server is mono but the return signal is stereo. This is useful if the sound card has the instrument on one input channel and the microphone on the other. In that case the two input signals can be mixed to one mono channel but the server mix is heard in stereo. - + Le signal audio envoyé au serveur est mono mais le signal de retour est stéréo. Ceci est utile si la carte son a l'instrument sur un canal d'entrée et le microphone sur l'autre. Dans ce cas, les deux signaux d'entrée peuvent être mélangés sur un canal mono mais le mixage du serveur est entendu en stéréo. Enabling - + Activer In stereo streaming mode, no audio channel selection for the reverb effect will be available on the main window since the effect is applied to both channels in this case. - + En mode de flux stéréo, aucune sélection de canal audio pour l'effet de réverbération ne sera disponible dans la fenêtre principale puisque l'effet est appliqué aux deux canaux dans ce cas. The higher the audio quality, the higher your audio stream's data rate. Make sure your upload rate does not exceed the available bandwidth of your internet connection. - + Plus la qualité audio est élevée, plus le débit de données de votre flux audio est élevé. Assurez-vous que votre débit montant ne dépasse pas la bande passante disponible de votre connexion internet. This setting defines the fader level of a newly connected client in percent. If a new client connects to the current server, they will get the specified initial fader level if no other fader level from a previous connection of that client was already stored. - + Ce paramètre définit le niveau du chariot d'un client nouvellement connecté en pourcentage. Si un nouveau client se connecte au serveur actuel, il obtiendra le niveau de chariot initial spécifié si aucun autre niveau de chariot provenant d'une connexion précédente de ce client n'a déjà été enregistré. Leave this blank unless you need to enter the address of a central server other than the default. - + Laissez ce champ vide, sauf si vous devez entrer l'adresse d'un serveur central autre que celui par défaut. The Ping Time is the time required for the audio stream to travel from the client to the server and back again. This delay is introduced by the network and should be about 20-30 ms. If this delay is higher than about 50 ms, your distance to the server is too large or your internet connection is not sufficient. - + Le temps de ping est le temps nécessaire au flux audio pour aller du client au serveur et revenir. Ce délai est introduit par le réseau et doit être d'environ 20 à 30 ms. Si ce délai est supérieur à environ 50 ms, la distance qui vous sépare du serveur est trop importante ou votre connexion internet n'est pas suffisante. Overall Delay is calculated from the current Ping Time and the delay introduced by the current buffer settings. - + Le délai global est calculé à partir du temps de ping actuel et du délai introduit par les paramètres actuels de la mémoire tampon. Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net). - + Le débit montant audio dépend de la taille actuelle des paquets audio et du réglage de la compression. Assurez-vous que le débit montant n'est pas supérieur à votre vitesse de téléchargement Internet disponible (vérifiez cela avec un service tel que speedtest.net). @@ -1762,17 +1762,17 @@ The Connection Setup window shows a list of available servers. Server operators can optionally list their servers by music genre. Use the List dropdown to select a genre, click on the server you want to join and press the Connect button to connect to it. Alternatively, double click on on the server name. Permanent servers (those that have been listed for longer than 48 hours) are shown in bold. - + La fenêtre de configuration de la connexion affiche une liste des serveurs disponibles. Les opérateurs de serveurs peuvent, en option, lister leurs serveurs par genre musical. Utilisez le menu déroulant Liste pour sélectionner un genre, cliquez sur le serveur que vous souhaitez rejoindre et appuyez sur le bouton Connexion pour vous y connecter. Vous pouvez également double-cliquer sur le nom du serveur. Les serveurs permanents (ceux qui ont été listés pendant plus de 48 heures) sont indiqués en gras. If you know the IP address or URL of a server, you can connect to it using the Server name/Address field. An optional port number can be added after the IP address or URL using a colon as a separator, e.g, example.org: - + Si vous connaissez l'adresse IP ou l'URL d'un serveur, vous pouvez vous y connecter en utilisant le champ Nom/Adresse du serveur. Un numéro de port optionnel peut être ajouté après l'adresse IP ou l'URL en utilisant deux points comme séparateur, par exemple, example.org : . The field will also show a list of the most recently used server addresses. - + . Le champ affichera également une liste des adresses de serveurs les plus récemment utilisées. @@ -2120,12 +2120,12 @@ Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. - + Écrivez votre nom ou un pseudonyme ici pour que les autres musiciens avec lesquels vous voulez jouer sachent qui vous êtes. Vous pouvez également ajouter une photo de l'instrument dont vous jouez et un drapeau du pays dans lequel vous vous trouvez. Vous pouvez également ajouter votre ville et votre niveau de compétence pour jouer de votre instrument. What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. - + Ce que vous réglez ici apparaîtra au niveau de votre chariot sur la table de mixage lorsque vous serez connecté à un serveur Jamulus. Cette étiquette sera également affichée dans chaque client qui est connecté au même serveur que vous. @@ -2330,17 +2330,17 @@ Ukulele - + Ukulélé Bass Ukulele - + Ukulélé basse No Name - + Sans nom @@ -2425,12 +2425,12 @@ If the start minimized on operating system start check box is checked, the server will be started when the operating system starts up and is automatically minimized to a system task bar icon. - + Si la case "Démarrage minimisé au démarrage du système d'exploitation" est cochée, le serveur sera démarré au démarrage du système d'exploitation et sera automatiquement réduit à une icône de la barre des tâches du système. If the Make My Server Public check box is checked, this server registers itself at the central server so that all users of the application can see the server in the connect dialog server list and connect to it. The registration of the server is renewed periodically to make sure that all servers in the connect dialog server list are actually available. - + Si la case Rendre mon serveur public est cochée, ce serveur s'enregistre sur le serveur central afin que tous les utilisateurs de l'application puissent voir le serveur dans la liste des serveurs de dialogue de connexion et s'y connecter. L'inscription du serveur est renouvelé périodiquement pour s'assurer que tous les serveurs de la liste des serveurs du dialogue de connexion sont effectivement disponibles. @@ -2474,7 +2474,7 @@ The server name identifies your server in the connect dialog server list at the clients. - + Le nom du serveur identifie votre serveur dans la liste des serveurs du dialogue de connexion chez les clients. @@ -2514,62 +2514,62 @@ Checkbox to turn on or off server recording - + Case à cocher pour activer ou désactiver l'enregistrement du serveur Enable Recorder - + Activer l'enregistreur Checked when the recorder is enabled, otherwise unchecked. The recorder will run when a session is in progress, if (set up correctly and) enabled. - + Coché lorsque l'enregistreur est activé, sinon non coché. L'enregistreur fonctionnera lorsqu'une session est en cours, si (configuré correctement et) activé. Current session directory text box (read-only) - + Zone de texte du répertoire de la session en cours (en lecture seule) Current Session Directory - + Répertoire de la session en cours Enabled during recording and holds the current recording session directory. Disabled after recording or when the recorder is not enabled. - + Activé pendant l'enregistrement et contient le répertoire de la session d'enregistrement en cours. Désactivé après l'enregistrement ou lorsque l'enregistreur n'est pas activé. Recorder status label - + Ètiquette de statut d'enregistreur Recorder Status - + Statut de l'enregistreur Displays the current status of the recorder. - + Affiche l'état actuel de l'enregistreur. Request new recording button - + Demander un nouveau bouton d'enregistrement New Recording - + Nouvel enregistrement During a recording session, the button can be used to start a new recording. - + Pendant une session d'enregistrement, le bouton peut être utilisé pour démarrer un nouvel enregistrement. @@ -2607,17 +2607,17 @@ Recording - + Enregistrement Not recording - + Ne pas enregistrer Not enabled - + Non activé Manual @@ -2748,17 +2748,17 @@ Enable jam recorder - + Activer l'enregistreur de bÅ“uf New recording - + Nouvel enregistrement Recordings folder - + Dossier des enregistrements From 78d77e323d0eef8f780f4ebcd9f8bfebbfcabd67 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 11 Jun 2020 08:35:10 +0200 Subject: [PATCH 142/936] some cleanup --- distributions/raspijamulus.sh | 21 +++------------------ src/main.cpp | 2 +- 2 files changed, 4 insertions(+), 19 deletions(-) diff --git a/distributions/raspijamulus.sh b/distributions/raspijamulus.sh index 6bdcb8e64f..2ae044f8fb 100755 --- a/distributions/raspijamulus.sh +++ b/distributions/raspijamulus.sh @@ -78,7 +78,7 @@ else fi # optional: FluidSynth synthesizer -if [ "$1" == "opt" -o "$1" == "synth" ]; then +if [ "$1" == "opt" ]; then if [ -d "fluidsynth" ]; then echo "The Fluidsynth directory is present, we assume it is compiled and ready to use. If not, delete the fluidsynth directory and call this script again." else @@ -106,7 +106,8 @@ make -j${NCORES} ADEVICE=$(aplay -l|grep "USB Audio"|tail -1|cut -d' ' -f3) echo "Using USB audio device: ${ADEVICE}" -# write Jamulus ini file for setting the client name and buffer settings +# write Jamulus ini file for setting the client name and buffer settings, if there is +# just one CPU core, we assume that we are running on a Raspberry Pi Zero JAMULUSINIFILE="Jamulus.ini" NAME64=$(echo "Raspi $(hostname)"|cut -c -16|tr -d $'\n'|base64) if [ "$NCORES" -gt "1" ]; then @@ -157,22 +158,6 @@ if [ "$1" == "opt" ]; then hyperion-remote --color black hyperion-remote --clearall fi - -elif [ "$1" == "synth" ]; then - distributions/jack2/build/jackd -R -T --silent -P70 -p16 -t2000 -d alsa -dhw:${ADEVICE} -p 256 -n 3 -r 48000 -s & - ./distributions/fluidsynth/build/src/fluidsynth -o synth.polyphony=25 -s -i -a jack -g 0.4 distributions/fluidsynth/build/claudio_piano.sf2 &>/dev/null & - sleep 3 - ./distributions/jack2/build/example-clients/jack_connect fluidsynth:left system:playback_1 - ./distributions/jack2/build/example-clients/jack_connect fluidsynth:right system:playback_2 - aconnect 'USB-MIDI' 128 - - # watchdog: if MIDI device is turned off, shutdown fluidsynth - while [ ! -z "$(amidi -l|grep "USB-MIDI")" ]; do - sleep 1 - done - killall fluidsynth - echo "Cleaned up jackd and fluidsynth" - else distributions/jack2/build/jackd -R -T --silent -P70 -p16 -t2000 -d alsa -dhw:${ADEVICE} -p 128 -n 3 -r 48000 -s & ./Jamulus -n -i ${JAMULUSINIFILE} -c jamulus.fischvolk.de & diff --git a/src/main.cpp b/src/main.cpp index ce9dd7025b..03b1fc3535 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -552,7 +552,7 @@ int main ( int argc, char** argv ) QDir ApplDir ( QApplication::applicationDirPath() ); pApp->addLibraryPath ( QString ( ApplDir.absolutePath() ) ); #endif - + #if defined ( __APPLE__ ) || defined ( __MACOSX ) // On OSX we need to declare an activity to ensure the process doesn't get // throttled by OS level Nap, Sleep, and Thread Priority systems. From eeeaafdcf59094f513782e8b0cba01d660462d11 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 11 Jun 2020 09:48:03 +0200 Subject: [PATCH 143/936] remove some more SLOT() --- src/clientdlg.cpp | 12 ++++++------ src/serverdlg.cpp | 6 +++--- src/serverlist.cpp | 2 +- src/util.cpp | 10 +++++----- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/clientdlg.cpp b/src/clientdlg.cpp index 4b0c561195..9b35948841 100755 --- a/src/clientdlg.cpp +++ b/src/clientdlg.cpp @@ -255,22 +255,22 @@ CClientDlg::CClientDlg ( CClient* pNCliP, pViewMenu = new QMenu ( tr ( "&View" ), this ); pViewMenu->addAction ( tr ( "&Connection Setup..." ), this, - SLOT ( OnOpenConnectionSetupDialog() ) ); + &CClientDlg::OnOpenConnectionSetupDialog ); pViewMenu->addAction ( tr ( "My &Profile..." ), this, - SLOT ( OnOpenMusicianProfileDialog() ) ); + &CClientDlg::OnOpenMusicianProfileDialog ); pViewMenu->addAction ( tr ( "C&hat..." ), this, - SLOT ( OnOpenChatDialog() ) ); + &CClientDlg::OnOpenChatDialog ); pViewMenu->addAction ( tr ( "&Settings..." ), this, - SLOT ( OnOpenGeneralSettings() ) ); + &CClientDlg::OnOpenGeneralSettings ); // optionally show analyzer console entry if ( bShowAnalyzerConsole ) { pViewMenu->addAction ( tr ( "&Analyzer Console..." ), this, - SLOT ( OnOpenAnalyzerConsole() ) ); + &CClientDlg::OnOpenAnalyzerConsole ); } pViewMenu->addSeparator(); @@ -283,7 +283,7 @@ CClientDlg::CClientDlg ( CClient* pNCliP, pEditMenu = new QMenu ( tr ( "&Edit" ), this ); pEditMenu->addAction ( tr ( "&Sort Channel Users by Name" ), this, - SLOT ( OnSortChannelsByName() ), QKeySequence ( Qt::CTRL + Qt::Key_N ) ); + &CClientDlg::OnSortChannelsByName, QKeySequence ( Qt::CTRL + Qt::Key_N ) ); // Main menu bar ----------------------------------------------------------- diff --git a/src/serverdlg.cpp b/src/serverdlg.cpp index e8f8c41726..94e205e944 100755 --- a/src/serverdlg.cpp +++ b/src/serverdlg.cpp @@ -153,17 +153,17 @@ CServerDlg::CServerDlg ( CServer* pNServP, pSystemTrayIconMenu = new QMenu ( this ); pSystemTrayIconMenu->addAction ( tr ( "E&xit" ), - this, SLOT ( OnSysTrayMenuExit() ) ); + this, &CServerDlg::OnSysTrayMenuExit ); pSystemTrayIconMenu->addSeparator(); pSystemTrayIconMenu->addAction ( tr ( "&Hide " ) + APP_NAME + tr ( " server" ), - this, SLOT ( OnSysTrayMenuHide() ) ); + this, &CServerDlg::OnSysTrayMenuHide ); pSystemTrayIconMenu->setDefaultAction ( pSystemTrayIconMenu->addAction ( tr ( "&Open " ) + APP_NAME + tr ( " server" ), - this, SLOT ( OnSysTrayMenuOpen() ) ) ); + this, &CServerDlg::OnSysTrayMenuOpen ) ); SystemTrayIcon.setContextMenu ( pSystemTrayIconMenu ); diff --git a/src/serverlist.cpp b/src/serverlist.cpp index b2a542b182..1f00b68768 100755 --- a/src/serverlist.cpp +++ b/src/serverlist.cpp @@ -164,7 +164,7 @@ CServerListManager::CServerListManager ( const quint16 iNPortNum, { // 1 minute = 60 * 1000 ms QTimer::singleShot ( SERVLIST_TIME_PERMSERV_MINUTES * 60000, - this, SLOT ( OnTimerIsPermanent() ) ); + this, &CServerListManager::OnTimerIsPermanent ); } // prepare the register server response timer (single shot timer) diff --git a/src/util.cpp b/src/util.cpp index 9805128722..48e606a83b 100755 --- a/src/util.cpp +++ b/src/util.cpp @@ -845,17 +845,17 @@ CHelpMenu::CHelpMenu ( const bool bIsClient, QWidget* parent ) : QMenu ( tr ( "& // standard help menu consists of about and what's this help if ( bIsClient ) { - addAction ( tr ( "Getting &Started..." ), this, SLOT ( OnHelpClientGetStarted() ) ); - addAction ( tr ( "Software &Manual..." ), this, SLOT ( OnHelpSoftwareMan() ) ); + addAction ( tr ( "Getting &Started..." ), this, &CHelpMenu::OnHelpClientGetStarted ); + addAction ( tr ( "Software &Manual..." ), this, &CHelpMenu::OnHelpSoftwareMan ); } else { - addAction ( tr ( "Getting &Started..." ), this, SLOT ( OnHelpServerGetStarted() ) ); + addAction ( tr ( "Getting &Started..." ), this, &CHelpMenu::OnHelpServerGetStarted ); } addSeparator(); - addAction ( tr ( "What's &This" ), this, SLOT ( OnHelpWhatsThis() ), QKeySequence ( Qt::SHIFT + Qt::Key_F1 ) ); + addAction ( tr ( "What's &This" ), this, &CHelpMenu::OnHelpWhatsThis, QKeySequence ( Qt::SHIFT + Qt::Key_F1 ) ); addSeparator(); - addAction ( tr ( "&About..." ), this, SLOT ( OnHelpAbout() ) ); + addAction ( tr ( "&About..." ), this, &CHelpMenu::OnHelpAbout ); } From a375fcf768737ca732afc4a2ab283baa7a7f174b Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 11 Jun 2020 10:25:49 +0200 Subject: [PATCH 144/936] normal quality seems to work fine for the Pi Zero --- distributions/raspijamulus.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/distributions/raspijamulus.sh b/distributions/raspijamulus.sh index 2ae044f8fb..bfd41fdd21 100755 --- a/distributions/raspijamulus.sh +++ b/distributions/raspijamulus.sh @@ -117,7 +117,7 @@ if [ "$NCORES" -gt "1" ]; then else echo -e "\n ${NAME64}" > ${JAMULUSINIFILE} echo -e " 1\n 3\n 3" >> ${JAMULUSINIFILE} - echo -e " 0\n 0\n" >> ${JAMULUSINIFILE} + echo -e " 0\n 1\n" >> ${JAMULUSINIFILE} fi # taken from "Raspberry Pi and realtime, low-latency audio" homepage at wiki.linuxaudio.org From cd9a9396971425ec09621f60ab13e829323c1721 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 11 Jun 2020 10:48:44 +0200 Subject: [PATCH 145/936] revert "remove some more SLOT()" commit since Travis is not happy about the change (older Qt5 version) --- src/clientdlg.cpp | 12 ++++++------ src/serverdlg.cpp | 6 +++--- src/serverlist.cpp | 2 +- src/util.cpp | 10 +++++----- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/clientdlg.cpp b/src/clientdlg.cpp index 9b35948841..4b0c561195 100755 --- a/src/clientdlg.cpp +++ b/src/clientdlg.cpp @@ -255,22 +255,22 @@ CClientDlg::CClientDlg ( CClient* pNCliP, pViewMenu = new QMenu ( tr ( "&View" ), this ); pViewMenu->addAction ( tr ( "&Connection Setup..." ), this, - &CClientDlg::OnOpenConnectionSetupDialog ); + SLOT ( OnOpenConnectionSetupDialog() ) ); pViewMenu->addAction ( tr ( "My &Profile..." ), this, - &CClientDlg::OnOpenMusicianProfileDialog ); + SLOT ( OnOpenMusicianProfileDialog() ) ); pViewMenu->addAction ( tr ( "C&hat..." ), this, - &CClientDlg::OnOpenChatDialog ); + SLOT ( OnOpenChatDialog() ) ); pViewMenu->addAction ( tr ( "&Settings..." ), this, - &CClientDlg::OnOpenGeneralSettings ); + SLOT ( OnOpenGeneralSettings() ) ); // optionally show analyzer console entry if ( bShowAnalyzerConsole ) { pViewMenu->addAction ( tr ( "&Analyzer Console..." ), this, - &CClientDlg::OnOpenAnalyzerConsole ); + SLOT ( OnOpenAnalyzerConsole() ) ); } pViewMenu->addSeparator(); @@ -283,7 +283,7 @@ CClientDlg::CClientDlg ( CClient* pNCliP, pEditMenu = new QMenu ( tr ( "&Edit" ), this ); pEditMenu->addAction ( tr ( "&Sort Channel Users by Name" ), this, - &CClientDlg::OnSortChannelsByName, QKeySequence ( Qt::CTRL + Qt::Key_N ) ); + SLOT ( OnSortChannelsByName() ), QKeySequence ( Qt::CTRL + Qt::Key_N ) ); // Main menu bar ----------------------------------------------------------- diff --git a/src/serverdlg.cpp b/src/serverdlg.cpp index 94e205e944..e8f8c41726 100755 --- a/src/serverdlg.cpp +++ b/src/serverdlg.cpp @@ -153,17 +153,17 @@ CServerDlg::CServerDlg ( CServer* pNServP, pSystemTrayIconMenu = new QMenu ( this ); pSystemTrayIconMenu->addAction ( tr ( "E&xit" ), - this, &CServerDlg::OnSysTrayMenuExit ); + this, SLOT ( OnSysTrayMenuExit() ) ); pSystemTrayIconMenu->addSeparator(); pSystemTrayIconMenu->addAction ( tr ( "&Hide " ) + APP_NAME + tr ( " server" ), - this, &CServerDlg::OnSysTrayMenuHide ); + this, SLOT ( OnSysTrayMenuHide() ) ); pSystemTrayIconMenu->setDefaultAction ( pSystemTrayIconMenu->addAction ( tr ( "&Open " ) + APP_NAME + tr ( " server" ), - this, &CServerDlg::OnSysTrayMenuOpen ) ); + this, SLOT ( OnSysTrayMenuOpen() ) ) ); SystemTrayIcon.setContextMenu ( pSystemTrayIconMenu ); diff --git a/src/serverlist.cpp b/src/serverlist.cpp index 1f00b68768..b2a542b182 100755 --- a/src/serverlist.cpp +++ b/src/serverlist.cpp @@ -164,7 +164,7 @@ CServerListManager::CServerListManager ( const quint16 iNPortNum, { // 1 minute = 60 * 1000 ms QTimer::singleShot ( SERVLIST_TIME_PERMSERV_MINUTES * 60000, - this, &CServerListManager::OnTimerIsPermanent ); + this, SLOT ( OnTimerIsPermanent() ) ); } // prepare the register server response timer (single shot timer) diff --git a/src/util.cpp b/src/util.cpp index 48e606a83b..9805128722 100755 --- a/src/util.cpp +++ b/src/util.cpp @@ -845,17 +845,17 @@ CHelpMenu::CHelpMenu ( const bool bIsClient, QWidget* parent ) : QMenu ( tr ( "& // standard help menu consists of about and what's this help if ( bIsClient ) { - addAction ( tr ( "Getting &Started..." ), this, &CHelpMenu::OnHelpClientGetStarted ); - addAction ( tr ( "Software &Manual..." ), this, &CHelpMenu::OnHelpSoftwareMan ); + addAction ( tr ( "Getting &Started..." ), this, SLOT ( OnHelpClientGetStarted() ) ); + addAction ( tr ( "Software &Manual..." ), this, SLOT ( OnHelpSoftwareMan() ) ); } else { - addAction ( tr ( "Getting &Started..." ), this, &CHelpMenu::OnHelpServerGetStarted ); + addAction ( tr ( "Getting &Started..." ), this, SLOT ( OnHelpServerGetStarted() ) ); } addSeparator(); - addAction ( tr ( "What's &This" ), this, &CHelpMenu::OnHelpWhatsThis, QKeySequence ( Qt::SHIFT + Qt::Key_F1 ) ); + addAction ( tr ( "What's &This" ), this, SLOT ( OnHelpWhatsThis() ), QKeySequence ( Qt::SHIFT + Qt::Key_F1 ) ); addSeparator(); - addAction ( tr ( "&About..." ), this, &CHelpMenu::OnHelpAbout ); + addAction ( tr ( "&About..." ), this, SLOT ( OnHelpAbout() ) ); } From ee3b1f0387f88c330b8ac9379fd738757e5b8ebe Mon Sep 17 00:00:00 2001 From: Tormod Volden Date: Thu, 11 Jun 2020 11:04:36 +0200 Subject: [PATCH 146/936] debian: Do not create home folder for jamulus system user Lintian warning on Debian unstable. Signed-off-by: Tormod Volden --- distributions/debian/postinst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/distributions/debian/postinst b/distributions/debian/postinst index 3bfa902466..2f8e31b25c 100644 --- a/distributions/debian/postinst +++ b/distributions/debian/postinst @@ -4,6 +4,6 @@ set -e # dh_sysuser can be used in newer distro releases -adduser --system --quiet jamulus +adduser --system --quiet --home /nonexistent --no-create-home jamulus #DEBHELPER# From cf7d297663e2c57ec6c87796546c1e480571f115 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 11 Jun 2020 12:26:37 +0200 Subject: [PATCH 147/936] fix for headless client operation when terminated via SIGNAL --- src/client.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/client.cpp b/src/client.cpp index 3c39ef2a2f..10d3afac4e 100755 --- a/src/client.cpp +++ b/src/client.cpp @@ -665,6 +665,12 @@ void CClient::OnHandledSignal ( int sigNum ) { case SIGINT: case SIGTERM: + // if connected, terminate connection (needed for headless mode) + if ( IsRunning() ) + { + Stop(); + } + // this should trigger OnAboutToQuit QCoreApplication::instance()->exit(); break; From ea4a3134f8bf7fe471e6424b5f7361d2db431d35 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 11 Jun 2020 12:28:28 +0200 Subject: [PATCH 148/936] fixed a typo --- src/res/homepage/manual.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/res/homepage/manual.md b/src/res/homepage/manual.md index 2f33314a3e..34dfe39d62 100644 --- a/src/res/homepage/manual.md +++ b/src/res/homepage/manual.md @@ -44,7 +44,7 @@ opened automatically for all clients. ![My profile dialog](profile.png) -From the View menu, select My Pofile... to set your Alias/Name +From the View menu, select My Profile... to set your Alias/Name which is displayed below your fader in the server audio mixer board. If an instrument and/or country is set, icons for these selections will also be shown below your fader. The skill setting changes the background colour of the fader tag and the city entry shows up in the tool tip of the fader tag (see screenshot below). From cf7a01d231a5b9a910a58732e990a211de6fa360 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 11 Jun 2020 16:42:50 +0200 Subject: [PATCH 149/936] add new "slim channel" skin, intended for large ensembles (#339) --- ChangeLog | 1 + src/audiomixerboard.cpp | 46 ++++++++++++++++++------------ src/audiomixerboard.h | 2 ++ src/clientdlg.h | 4 +-- src/clientsettingsdlg.cpp | 54 +++++++++++++++--------------------- src/clientsettingsdlg.h | 2 +- src/clientsettingsdlgbase.ui | 33 +++++++++++----------- src/multicolorledbar.cpp | 43 ++++++++++++++++++---------- src/multicolorledbar.h | 4 +-- src/settings.cpp | 2 +- src/util.h | 3 +- 11 files changed, 104 insertions(+), 90 deletions(-) diff --git a/ChangeLog b/ChangeLog index a28892d355..6df598ff10 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,7 @@ 3.5.7git +- add new "slim channel" skin, intended for large ensembles (#339) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 4beaaab763..8503620752 100644 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -54,8 +54,8 @@ CChannelFader::CChannelFader ( QWidget* pNW ) QVBoxLayout* pMainGrid = new QVBoxLayout ( pFrame ); QHBoxLayout* pLevelsGrid = new QHBoxLayout ( pLevelsBox ); QVBoxLayout* pMuteSoloGrid = new QVBoxLayout ( pMuteSoloBox ); - QHBoxLayout* pLabelGrid = new QHBoxLayout ( pLabelInstBox ); - QVBoxLayout* pLabelPictGrid = new QVBoxLayout ( ); + pLabelGrid = new QHBoxLayout ( pLabelInstBox ); + pLabelPictGrid = new QVBoxLayout ( ); QVBoxLayout* pPanGrid = new QVBoxLayout ( ); QHBoxLayout* pPanInfoGrid = new QHBoxLayout ( ); @@ -64,7 +64,6 @@ CChannelFader::CChannelFader ( QWidget* pNW ) // setup slider pFader->setPageStep ( 1 ); - pFader->setTickPosition ( QSlider::TicksBothSides ); pFader->setRange ( 0, AUD_MIX_FADER_MAX ); pFader->setTickInterval ( AUD_MIX_FADER_MAX / 9 ); pFader->setMinimumHeight ( 85 ); // if this value is too small, the fader might not be movable with the mouse for fancy skin (#292) @@ -72,7 +71,6 @@ CChannelFader::CChannelFader ( QWidget* pNW ) // setup panning control pPan->setRange ( 0, AUD_MIX_PAN_MAX ); pPan->setValue ( AUD_MIX_PAN_MAX / 2 ); - pPan->setFixedSize ( 50, 50 ); pPan->setNotchesVisible ( true ); pPanInfoGrid->addWidget ( pPanLabel, 0, Qt::AlignLeft ); pPanInfoGrid->addWidget ( pInfoLabel ); @@ -80,12 +78,9 @@ CChannelFader::CChannelFader ( QWidget* pNW ) pPanGrid->addWidget ( pPan, 0, Qt::AlignHCenter ); // setup fader tag label (black bold text which is centered) - plblLabel->setTextFormat ( Qt::PlainText ); - plblLabel->setAlignment ( Qt::AlignHCenter | Qt::AlignVCenter ); - plblLabel->setMinimumHeight ( 40 ); // maximum hight of the instrument+flag pictures - plblLabel->setStyleSheet ( - "QLabel { color: black;" - " font: bold; }" ); + plblLabel->setTextFormat ( Qt::PlainText ); + plblLabel->setAlignment ( Qt::AlignHCenter | Qt::AlignVCenter ); + plblLabel->setStyleSheet ( "QLabel { color: black; font: bold; }" ); // set margins of the layouts to zero to get maximum space for the controls pMainGrid->setContentsMargins ( 0, 0, 0, 0 ); @@ -106,7 +101,7 @@ CChannelFader::CChannelFader ( QWidget* pNW ) pLabelPictGrid->addWidget ( plblInstrument, 0, Qt::AlignHCenter ); pLabelGrid->addLayout ( pLabelPictGrid ); - pLabelGrid->addWidget ( plblLabel, 0, Qt::AlignVCenter ); + pLabelGrid->addWidget ( plblLabel, 0, Qt::AlignVCenter ); // note: just initial add, may be changed later pLevelsGrid->addWidget ( plbrChannelLevel, 0, Qt::AlignRight ); pLevelsGrid->addWidget ( pFader, 0, Qt::AlignLeft ); @@ -188,7 +183,6 @@ void CChannelFader::SetGUIDesign ( const EGUIDesign eNewDesign ) switch ( eNewDesign ) { case GD_ORIGINAL: - // fader pFader->setStyleSheet ( "QSlider { width: 45px;" " border-image: url(:/png/fader/res/faderbackground.png) repeat;" @@ -202,15 +196,34 @@ void CChannelFader::SetGUIDesign ( const EGUIDesign eNewDesign ) " padding-bottom: -15px; }" "QSlider::handle { image: url(:/png/fader/res/faderhandle.png); }" ); + pLabelGrid->addWidget ( plblLabel, 0, Qt::AlignVCenter ); // label next to icons + pLabelInstBox->setMinimumHeight ( 52 ); // maximum hight of the instrument+flag pictures + pPan->setFixedSize ( 50, 50 ); pPanLabel->setText ( tr ( "PAN" ) ); pcbMute->setText ( tr ( "MUTE" ) ); pcbSolo->setText ( tr ( "SOLO" ) ); plbrChannelLevel->SetLevelMeterType ( CMultiColorLEDBar::MT_LED ); break; + case GD_SLIMFADER: + pLabelPictGrid->addWidget ( plblLabel, 0, Qt::AlignHCenter ); // label below icons + pLabelInstBox->setMinimumHeight ( 80 ); // maximum hight of the instrument+flag+label + pPan->setFixedSize ( 28, 28 ); + pFader->setTickPosition ( QSlider::NoTicks ); + pFader->setStyleSheet ( "" ); + pPanLabel->setText ( tr ( "Pan" ) ); + pcbMute->setText ( tr ( "M" ) ); + pcbSolo->setText ( tr ( "S" ) ); + plbrChannelLevel->SetLevelMeterType ( CMultiColorLEDBar::MT_SLIM_BAR ); + break; + default: // reset style sheet and set original paramters + pFader->setTickPosition ( QSlider::TicksBothSides ); pFader->setStyleSheet ( "" ); + pLabelGrid->addWidget ( plblLabel, 0, Qt::AlignVCenter ); // label next to icons + pLabelInstBox->setMinimumHeight ( 52 ); // maximum hight of the instrument+flag pictures + pPan->setFixedSize ( 50, 50 ); pPanLabel->setText ( tr ( "Pan" ) ); pcbMute->setText ( tr ( "Mute" ) ); pcbSolo->setText ( tr ( "Solo" ) ); @@ -241,9 +254,9 @@ void CChannelFader::SetupFaderTag ( const ESkillLevel eSkillLevel ) // setup group box for label/instrument picture: set a thick black border // with nice round edges QString strStile = - "QGroupBox { border: 2px solid black;" - " border-radius: 4px;" - " padding: 3px;"; + "QGroupBox { border: 2px solid black;" + " border-radius: 4px;" + " padding: 3px;"; // the background color depends on the skill level switch ( eSkillLevel ) @@ -356,13 +369,10 @@ void CChannelFader::SetRemoteFaderIsMute ( const bool bIsMute ) { // show orange utf8 SPEAKER WITH CANCELLATION STROKE (U+1F507) pInfoLabel->setText ( "🔇" ); -//QPixmap CancelledSpeakerPixmap ( QString::fromUtf8 ( ":/png/main/res/speakerwithcancellationstroke.png" ) ); -//pInfoLabel->setPixmap ( CancelledSpeakerPixmap.scaled ( 15, 15, Qt::KeepAspectRatio ) ); } else { pInfoLabel->setText ( "" ); -//pInfoLabel->setPixmap ( QPixmap() ); } } diff --git a/src/audiomixerboard.h b/src/audiomixerboard.h index dbfbf5d05c..1e955ccd4f 100644 --- a/src/audiomixerboard.h +++ b/src/audiomixerboard.h @@ -90,6 +90,8 @@ class CChannelFader : public QObject QDial* pPan; QLabel* pPanLabel; QLabel* pInfoLabel; + QHBoxLayout* pLabelGrid; + QVBoxLayout* pLabelPictGrid; QCheckBox* pcbMute; QCheckBox* pcbSolo; diff --git a/src/clientdlg.h b/src/clientdlg.h index 4dbec0b9cb..2489ed339e 100755 --- a/src/clientdlg.h +++ b/src/clientdlg.h @@ -215,9 +215,7 @@ public slots: void OnConnectDlgAccepted(); void OnDisconnected() { Disconnect(); } void OnCentralServerAddressTypeChanged(); - - void OnGUIDesignChanged() - { SetGUIDesign ( pClient->GetGUIDesign() ); } + void OnGUIDesignChanged() { SetGUIDesign ( pClient->GetGUIDesign() ); } void OnDisplayChannelLevelsChanged() { MainMixerBoard->SetDisplayChannelLevels ( pClient->GetDisplayChannelLevels() ); } diff --git a/src/clientsettingsdlg.cpp b/src/clientsettingsdlg.cpp index 084bc4fa3d..0f0ce05fd4 100755 --- a/src/clientsettingsdlg.cpp +++ b/src/clientsettingsdlg.cpp @@ -183,10 +183,10 @@ CClientSettingsDlg::CClientSettingsDlg ( CClient* pNCliP, QWidget* parent, butDriverSetup->setToolTip ( strSndCrdBufDelayTT ); // fancy skin - chbGUIDesignFancy->setWhatsThis ( "" + tr ( "Fancy Skin" ) + ": " + tr ( - "If enabled, a fancy skin will be applied to the main window." ) ); + cbxSkin->setWhatsThis ( "" + tr ( "Skin" ) + ": " + tr ( + "Select the skin to be used for the main window." ) ); - chbGUIDesignFancy->setAccessibleName ( tr ( "Fancy skin check box" ) ); + cbxSkin->setAccessibleName ( tr ( "Skin combo box" ) ); // display channel levels chbDisplayChannelLevels->setWhatsThis ( "" + tr ( "Display Channel Levels" ) + ": " + @@ -312,33 +312,30 @@ CClientSettingsDlg::CClientSettingsDlg ( CClient* pNCliP, QWidget* parent, // init sound card channel selection frame UpdateSoundChannelSelectionFrame(); - // fancy GUI design check box - if ( pClient->GetGUIDesign() == GD_STANDARD ) - { - chbGUIDesignFancy->setCheckState ( Qt::Unchecked ); - } - else - { - chbGUIDesignFancy->setCheckState ( Qt::Checked ); - } - // Display Channel Levels check box chbDisplayChannelLevels->setCheckState ( pClient->GetDisplayChannelLevels() ? Qt::Checked : Qt::Unchecked ); - // "Audio Channels" combo box + // Audio Channels combo box cbxAudioChannels->clear(); cbxAudioChannels->addItem ( tr ( "Mono" ) ); // CC_MONO cbxAudioChannels->addItem ( tr ( "Mono-in/Stereo-out" ) ); // CC_MONO_IN_STEREO_OUT cbxAudioChannels->addItem ( tr ( "Stereo" ) ); // CC_STEREO cbxAudioChannels->setCurrentIndex ( static_cast ( pClient->GetAudioChannels() ) ); - // "Audio Quality" combo box + // Audio Quality combo box cbxAudioQuality->clear(); cbxAudioQuality->addItem ( tr ( "Low" ) ); // AQ_LOW cbxAudioQuality->addItem ( tr ( "Normal" ) ); // AQ_NORMAL cbxAudioQuality->addItem ( tr ( "High" ) ); // AQ_HIGH cbxAudioQuality->setCurrentIndex ( static_cast ( pClient->GetAudioQuality() ) ); + // GUI design (skin) combo box + cbxSkin->clear(); + cbxSkin->addItem ( tr ( "Normal" ) ); // GD_STANDARD + cbxSkin->addItem ( tr ( "Fancy" ) ); // GD_ORIGINAL + cbxSkin->addItem ( tr ( "Slim Channel" ) ); // GD_SLIMFADER + cbxSkin->setCurrentIndex ( static_cast ( pClient->GetGUIDesign() ) ); + // custom central server address edtCentralServerAddress->setText ( pClient->GetServerListCentralServerAddress() ); @@ -380,9 +377,6 @@ CClientSettingsDlg::CClientSettingsDlg ( CClient* pNCliP, QWidget* parent, this, &CClientSettingsDlg::OnNetBufServerValueChanged ); // check boxes - QObject::connect ( chbGUIDesignFancy, &QCheckBox::stateChanged, - this, &CClientSettingsDlg::OnGUIDesignFancyStateChanged ); - QObject::connect ( chbDisplayChannelLevels, &QCheckBox::stateChanged, this, &CClientSettingsDlg::OnDisplayChannelLevelsStateChanged ); @@ -421,6 +415,9 @@ CClientSettingsDlg::CClientSettingsDlg ( CClient* pNCliP, QWidget* parent, QObject::connect ( cbxAudioQuality, static_cast ( &QComboBox::activated ), this, &CClientSettingsDlg::OnAudioQualityActivated ); + QObject::connect ( cbxSkin, static_cast ( &QComboBox::activated ), + this, &CClientSettingsDlg::OnGUIDesignActivated ); + // buttons QObject::connect ( butDriverSetup, &QPushButton::clicked, this, &CClientSettingsDlg::OnDriverSetupClicked ); @@ -639,6 +636,13 @@ void CClientSettingsDlg::OnAudioQualityActivated ( int iQualityIdx ) UpdateDisplay(); // upload rate will be changed } +void CClientSettingsDlg::OnGUIDesignActivated ( int iDesignIdx ) +{ + pClient->SetGUIDesign ( static_cast ( iDesignIdx ) ); + emit GUIDesignChanged(); + UpdateDisplay(); +} + void CClientSettingsDlg::OnAutoJitBufStateChanged ( int value ) { pClient->SetDoAutoSockBufSize ( value == Qt::Checked ); @@ -651,20 +655,6 @@ void CClientSettingsDlg::OnEnableOPUS64StateChanged ( int value ) UpdateDisplay(); } -void CClientSettingsDlg::OnGUIDesignFancyStateChanged ( int value ) -{ - if ( value == Qt::Unchecked ) - { - pClient->SetGUIDesign ( GD_STANDARD ); - } - else - { - pClient->SetGUIDesign ( GD_ORIGINAL ); - } - emit GUIDesignChanged(); - UpdateDisplay(); -} - void CClientSettingsDlg::OnDisplayChannelLevelsStateChanged ( int value ) { pClient->SetDisplayChannelLevels ( value != Qt::Unchecked ); diff --git a/src/clientsettingsdlg.h b/src/clientsettingsdlg.h index 45638fb97a..c6327bae50 100755 --- a/src/clientsettingsdlg.h +++ b/src/clientsettingsdlg.h @@ -87,7 +87,6 @@ class CClientSettingsDlg : public QDialog, private Ui_CClientSettingsDlgBase void OnNetBufValueChanged ( int value ); void OnNetBufServerValueChanged ( int value ); void OnAutoJitBufStateChanged ( int value ); - void OnGUIDesignFancyStateChanged ( int value ); void OnDisplayChannelLevelsStateChanged ( int value ); void OnEnableOPUS64StateChanged ( int value ); void OnCentralServerAddressEditingFinished(); @@ -100,6 +99,7 @@ class CClientSettingsDlg : public QDialog, private Ui_CClientSettingsDlgBase void OnROutChanActivated ( int iChanIdx ); void OnAudioChannelsActivated ( int iChanIdx ); void OnAudioQualityActivated ( int iQualityIdx ); + void OnGUIDesignActivated ( int iDesignIdx ); void OnDriverSetupClicked(); signals: diff --git a/src/clientsettingsdlgbase.ui b/src/clientsettingsdlgbase.ui index 7f625fdea7..40fb9f4566 100755 --- a/src/clientsettingsdlgbase.ui +++ b/src/clientsettingsdlgbase.ui @@ -508,6 +508,13 @@ + + + + Skin + + + @@ -532,27 +539,19 @@ + + + - - - - - Fancy Skin - - - - - - - Display Channel Levels - - - - + + + Display Channel Levels + + @@ -726,7 +725,7 @@ cbxAudioChannels cbxAudioQuality edtNewClientLevel - chbGUIDesignFancy + cbxSkin chbDisplayChannelLevels edtCentralServerAddress diff --git a/src/multicolorledbar.cpp b/src/multicolorledbar.cpp index aa29f4f1ab..5160f66d95 100755 --- a/src/multicolorledbar.cpp +++ b/src/multicolorledbar.cpp @@ -62,11 +62,6 @@ CMultiColorLEDBar::CMultiColorLEDBar ( QWidget* parent, Qt::WindowFlags f ) : pProgressBar->setOrientation ( Qt::Vertical ); pProgressBar->setRange ( 0, 100 * NUM_STEPS_LED_BAR ); pProgressBar->setFormat ( "" ); // suppress percent numbers - pProgressBar->setStyleSheet ( - "QProgressBar { margin: 1px;" - " padding: 1px; " - " width: 15px; }" - "QProgressBar::chunk { background: green; }" ); // setup stacked layout for meter type switching mechanism pStackedLayout = new QStackedLayout ( this ); @@ -76,7 +71,7 @@ CMultiColorLEDBar::CMultiColorLEDBar ( QWidget* parent, Qt::WindowFlags f ) : // according to QScrollArea description: "When using a scroll area to display the // contents of a custom widget, it is important to ensure that the size hint of // the child widget is set to a suitable value." - pProgressBar->setMinimumSize ( QSize ( 19, 1 ) ); // 15px + 2 * 1px + 2 * 1px = 19px + pProgressBar->setMinimumSize ( QSize ( 1, 1 ) ); pLEDMeter->setMinimumSize ( QSize ( 1, 1 ) ); // update the meter type (using the default value of the meter type) @@ -131,6 +126,27 @@ void CMultiColorLEDBar::SetLevelMeterType ( const ELevelMeterType eNType ) case MT_BAR: pStackedLayout->setCurrentIndex ( 1 ); + pProgressBar->setStyleSheet ( + "QProgressBar { margin: 1px;" + " padding: 1px; " + " width: 15px; }" + "QProgressBar::chunk { background: green; }" ); + break; + + case MT_SLIM_BAR: + // set all LEDs to disabled, otherwise we would not get our desired small width + for ( int iLEDIdx = 0; iLEDIdx < NUM_STEPS_LED_BAR; iLEDIdx++ ) + { + vecpLEDs[iLEDIdx]->setColor ( cLED::RL_DISABLED ); + } + + pStackedLayout->setCurrentIndex ( 1 ); + pProgressBar->setStyleSheet ( + "QProgressBar { border: 0px;" + " margin: 0px;" + " padding: 0px; " + " width: 4px; }" + "QProgressBar::chunk { background: green; }" ); break; } } @@ -177,6 +193,7 @@ void CMultiColorLEDBar::setValue ( const double dValue ) break; case MT_BAR: + case MT_SLIM_BAR: pProgressBar->setValue ( 100 * dValue ); break; } @@ -184,18 +201,14 @@ void CMultiColorLEDBar::setValue ( const double dValue ) } CMultiColorLEDBar::cLED::cLED ( QWidget* parent ) : - BitmCubeRoundDisabled ( QString::fromUtf8 ( ":/png/LEDs/res/CLEDDisabledSmall.png" ) ), - BitmCubeRoundBlack ( QString::fromUtf8 ( ":/png/LEDs/res/HLEDBlackSmall.png" ) ), - BitmCubeRoundGreen ( QString::fromUtf8 ( ":/png/LEDs/res/HLEDGreenSmall.png" ) ), - BitmCubeRoundYellow ( QString::fromUtf8 ( ":/png/LEDs/res/HLEDYellowSmall.png" ) ), - BitmCubeRoundRed ( QString::fromUtf8 ( ":/png/LEDs/res/HLEDRedSmall.png" ) ) + BitmCubeRoundBlack ( QString::fromUtf8 ( ":/png/LEDs/res/HLEDBlackSmall.png" ) ), + BitmCubeRoundGreen ( QString::fromUtf8 ( ":/png/LEDs/res/HLEDGreenSmall.png" ) ), + BitmCubeRoundYellow ( QString::fromUtf8 ( ":/png/LEDs/res/HLEDYellowSmall.png" ) ), + BitmCubeRoundRed ( QString::fromUtf8 ( ":/png/LEDs/res/HLEDRedSmall.png" ) ) { // create LED label pLEDLabel = new QLabel ( "", parent ); - // bitmap defines minimum size of the label - pLEDLabel->setMinimumSize ( BitmCubeRoundBlack.width(), BitmCubeRoundBlack.height() ); - // set initial bitmap pLEDLabel->setPixmap ( BitmCubeRoundBlack ); eCurLightColor = RL_BLACK; @@ -209,7 +222,7 @@ void CMultiColorLEDBar::cLED::setColor ( const ELightColor eNewColor ) switch ( eNewColor ) { case RL_DISABLED: - pLEDLabel->setPixmap ( BitmCubeRoundDisabled ); + pLEDLabel->setPixmap ( QPixmap() ); break; case RL_BLACK: diff --git a/src/multicolorledbar.h b/src/multicolorledbar.h index 6fbc1019eb..e64dab1273 100755 --- a/src/multicolorledbar.h +++ b/src/multicolorledbar.h @@ -50,7 +50,8 @@ class CMultiColorLEDBar : public QWidget enum ELevelMeterType { MT_LED, - MT_BAR + MT_BAR, + MT_SLIM_BAR }; CMultiColorLEDBar ( QWidget* parent = nullptr, Qt::WindowFlags f = nullptr ); @@ -77,7 +78,6 @@ class CMultiColorLEDBar : public QWidget QLabel* getLabelPointer() { return pLEDLabel; } protected: - QPixmap BitmCubeRoundDisabled; QPixmap BitmCubeRoundBlack; QPixmap BitmCubeRoundGreen; QPixmap BitmCubeRoundYellow; diff --git a/src/settings.cpp b/src/settings.cpp index 793867f98e..5fba0ea9be 100755 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -269,7 +269,7 @@ void CSettings::Load() // GUI design if ( GetNumericIniSet ( IniXMLDocument, "client", "guidesign", - 0, 1 /* GD_ORIGINAL */, iValue ) ) + 0, 2 /* GD_SLIMFADER */, iValue ) ) { pClient->SetGUIDesign ( static_cast ( iValue ) ); } diff --git a/src/util.h b/src/util.h index aa5fdb0a9f..c119dcc622 100755 --- a/src/util.h +++ b/src/util.h @@ -549,7 +549,8 @@ enum EGUIDesign { // used for settings -> enum values should be fixed GD_STANDARD = 0, - GD_ORIGINAL = 1 + GD_ORIGINAL = 1, + GD_SLIMFADER = 2 }; From bfc438ba20a3edac7ce465a1f5c258a919025a43 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 11 Jun 2020 18:43:32 +0200 Subject: [PATCH 150/936] rename new skin to Compact --- src/clientsettingsdlg.cpp | 6 +- src/res/translation/translation_de_DE.qm | Bin 99231 -> 99376 bytes src/res/translation/translation_de_DE.ts | 212 +++++++++++++--------- src/res/translation/translation_es_ES.qm | Bin 96475 -> 95947 bytes src/res/translation/translation_es_ES.ts | 212 +++++++++++++--------- src/res/translation/translation_fr_FR.qm | Bin 62706 -> 102210 bytes src/res/translation/translation_fr_FR.ts | 214 +++++++++++++--------- src/res/translation/translation_it_IT.qm | Bin 60039 -> 59515 bytes src/res/translation/translation_it_IT.ts | 212 +++++++++++++--------- src/res/translation/translation_nl_NL.qm | Bin 55412 -> 54888 bytes src/res/translation/translation_nl_NL.ts | 212 +++++++++++++--------- src/res/translation/translation_pl_PL.ts | 216 +++++++++++++---------- src/res/translation/translation_pt_PT.qm | Bin 99129 -> 98567 bytes src/res/translation/translation_pt_PT.ts | 212 +++++++++++++--------- 14 files changed, 873 insertions(+), 623 deletions(-) diff --git a/src/clientsettingsdlg.cpp b/src/clientsettingsdlg.cpp index 0f0ce05fd4..26315b8e97 100755 --- a/src/clientsettingsdlg.cpp +++ b/src/clientsettingsdlg.cpp @@ -331,9 +331,9 @@ CClientSettingsDlg::CClientSettingsDlg ( CClient* pNCliP, QWidget* parent, // GUI design (skin) combo box cbxSkin->clear(); - cbxSkin->addItem ( tr ( "Normal" ) ); // GD_STANDARD - cbxSkin->addItem ( tr ( "Fancy" ) ); // GD_ORIGINAL - cbxSkin->addItem ( tr ( "Slim Channel" ) ); // GD_SLIMFADER + cbxSkin->addItem ( tr ( "Normal" ) ); // GD_STANDARD + cbxSkin->addItem ( tr ( "Fancy" ) ); // GD_ORIGINAL + cbxSkin->addItem ( tr ( "Compact" ) ); // GD_SLIMFADER cbxSkin->setCurrentIndex ( static_cast ( pClient->GetGUIDesign() ) ); // custom central server address diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index 8c0751c92f5811ada22d739c3548fc20b2b1aaf5..92eb290f20a113ac5d1be0b45543673cb1b0ab8a 100644 GIT binary patch delta 4333 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 KXKLl(ZT|%-R}8HH delta 4237 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 NA5|&}Up0)_@*jh-_uBvf diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index 090d653c28..dc3211adf2 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -190,17 +190,17 @@ CAudioMixerBoard - + Server - + T R Y I N G T O C O N N E C T V E R B I N D U N G S A U F B A U - + Personal Mix at the Server: Eigener Mix am Server: @@ -208,7 +208,7 @@ CChannelFader - + Channel Level Kanalpegel @@ -217,12 +217,12 @@ Zeigt den Audiopegel vor dem Lautstärkeregler des Kanals. Allen verbundenen Musikern am Server wird ein Audiopegel zugewiesen. - + Input level of the current audio channel at the server Eingangspegel des aktuellen Musikers am Server - + Mixer Fader Kanalregler @@ -231,17 +231,17 @@ Regelt die Lautstärke des Kanals. Für alle Musiker, die gerade am Server verbunden sind, wird ein Lautstärkeregler angezeigt. Damit kann man seinen eigenen lokalen Mix erstellen. - + Local mix level setting of the current audio channel at the server Lokale Mixerpegeleinstellung des aktuellen Kanals am Server - + Status Indicator Statusanzeige - + Shows a status indication about the client which is assigned to this channel. Supported indicators are: Zeigt den Status über den Musiker, der dem Kanal zugewiesen ist. Unterstützte Indikatoren sind: @@ -250,12 +250,12 @@ Durchgestrichener Lautsprecher: Zeigt an, dass der andere Musiker dich stummgeschaltet hat. - + Status indicator label Statusanzeige - + Panning Pan @@ -264,17 +264,17 @@ Legt die Pan-Position von Links nach Rechts fest. Der Pan funktioniert nur im Stereo oder Mono-In/Stereo-Out Modus. - + Local panning position of the current audio channel at the server Lokale Pan-Position von dem aktuellen Audiokanal am Server - + With the Mute checkbox, the audio channel can be muted. Mit dem Mute-Schalter kann man den Kanal stumm schalten. - + Mute button Mute Schalter @@ -283,12 +283,12 @@ Bei aktiviertem Solo Status hört man nur diesen Kanal. Alle anderen Kanäle sind stumm geschaltet. Es ist möglich mehrere Kanäle auf Solo zu stellen. Dann hört man nur die Kanäle, die auf Solo gestellt wurden. - + Solo button Solo Schalter - + Fader Tag Kanalbeschriftung @@ -297,124 +297,135 @@ Mit der Kanalbeschriftung wird der verbundene Teilnehmen identifiziert. Der Name, ein Bild des Instruments und eine Flagge des eigenen Landes kann im eigenen Profil ausgewählt werden. - + Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. Zeigt den Audiopegel vor dem Lautstärkeregler des Kanals. Allen verbundenen Musikern am Server wird ein Audiopegel zugewiesen. - + Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. Regelt die Lautstärke des Kanals. Für alle Musiker, die gerade am Server verbunden sind, wird ein Lautstärkeregler angezeigt. Damit kann man seinen eigenen lokalen Mix erstellen. - + Speaker with cancellation stroke: Indicates that another client has muted you. Durchgestrichener Lautsprecher: Zeigt an, dass der andere Musiker dich stummgeschaltet hat. - + Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. Legt die Pan-Position von Links nach Rechts fest. Der Pan funktioniert nur im Stereo oder Mono-In/Stereo-Out Modus. - + With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. Bei aktiviertem Solo Status hört man nur diesen Kanal. Alle anderen Kanäle sind stumm geschaltet. Es ist möglich mehrere Kanäle auf Solo zu stellen. Dann hört man nur die Kanäle, die auf Solo gestellt wurden. - + The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. Mit der Kanalbeschriftung wird der verbundene Teilnehmen identifiziert. Der Name, ein Bild des Instruments und eine Flagge des eigenen Landes kann im eigenen Profil ausgewählt werden. - + Mixer channel instrument picture Mixerkanal Instrumentenbild - + Mixer channel label (fader tag) Mixerkanalbeschriftung - + Mixer channel country flag Mixerkanal Landesflagge - + PAN - + MUTE - + SOLO - + + M + + + + + S + + + + Alias/Name - + Instrument - + Location Standort - - - + + + Skill Level Spielstärke - + Beginner Anfänger - + Intermediate Mittlere Spielstärke - + Expert Experte - + Musician Profile Profil des Musikers - - + + Mute + Pan - - + + Solo @@ -1086,6 +1097,16 @@ Sound Card Buffer Delay Soundkarten Puffergröße + + + Fancy + Schick + + + + Compact + Kompakt + The buffer delay setting is a fundamental setting of the Die Soundkartenpuffergröße ist eine fundamentale Einstellung der @@ -1166,19 +1187,16 @@ ASIO-Einstellungen Knopf - Fancy Skin - Schicke Oberfläche + Schicke Oberfläche - If enabled, a fancy skin will be applied to the main window. - Falls aktiviert wird eine schicke Oberfläche im Hauptfenster verwendet. + Falls aktiviert wird eine schicke Oberfläche im Hauptfenster verwendet. - Fancy skin check box - Schicke Oberfläche Schalter + Schicke Oberfläche Schalter @@ -1305,7 +1323,7 @@ - + Mono @@ -1315,14 +1333,14 @@ Modus ist die Übertragungsrate etwas höher. Man muss sicher stellen, dass die Internetverbindung die höhere Rate übertragen kann. - + Mono-in/Stereo-out Mono-In/Stereo-Out - + Stereo @@ -1381,6 +1399,21 @@ If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. Falls keiner der vorgegebenen Puffergrößen ausgeählt ist und alle Einstellungen deaktiviert sind, dann wird eine nicht unterstützte Puffergröße im Soundkartentreiber verwendet. Unter Windows kann man den ASIO-Einstellungen Knopf drücken, um die Treibereinstellungen zu öffnen. Unter Linux kann man ein Jack-Konfigurationswerkzeug verwenden, um die Puffergröße zu verändern. + + + Skin + Oberfläche + + + + Select the skin to be used for the main window. + Wählt die Oberfläche aus, die für das Hauptfenster verwendet werden soll. + + + + Skin combo box + Oberfläche Combo-Box + Selects the number of audio channels to be used for communication between client and server. There are three modes available: @@ -1451,17 +1484,18 @@ Die Upload-Rate hängt von der Soundkartenpuffergröße und die Audiokomprimierung ab. Man muss sicher stellen, dass die Upload-Rate immer kleiner ist als die Rate, die die Internetverbindung zur Verfügung stellt (man kann die Upload-Rate des Internetproviders z.B. mit speedtest.net überprüfen). - + Low Niedrig - + + Normal Normal - + High Hoch @@ -1470,22 +1504,22 @@ Manuell - + Custom Benutzerdefiniert - + All Genres Alle Genres - + Genre Rock Genre Rock - + Genre Jazz Genre Jazz @@ -1494,12 +1528,12 @@ Genre Rock/Jazz - + Genre Classical/Folk/Choir Genre Klassik/Volksmusik/Chor - + Default Standard @@ -1508,23 +1542,23 @@ Standard (Nordamerika) - + preferred bevorzugt - - + + Size: Größe: - + Buffer Delay Puffergröße - + Buffer Delay: Puffergröße: @@ -1533,17 +1567,17 @@ Vordefinierte Adresse - + The selected audio device could not be used because of the following error: Das ausgewählte Audiogerät kann aus folgendem Grund nicht verwendet werden: - + The previous driver will be selected. Der vorherige Treiber wird wieder ausgewählt. - + Ok @@ -1664,22 +1698,26 @@ Pegel für neuen Teilnehmer - + + Skin + Oberfläche + + + % - Fancy Skin - Schicke Oberfläche + Schicke Oberfläche - + Display Channel Levels Zeige Signalpegel - + Custom Central Server Address: Benutzerdefinierte Zentralserveradresse: @@ -1688,24 +1726,24 @@ Zentralserveradresse: - + Audio Stream Rate Netzwerkrate - - - + + + val Wert - + Ping Time Ping-Zeit - + Overall Delay Gesamtverzögerung @@ -2638,42 +2676,42 @@ &Fenster - + Unregistered Nicht registriert - + Bad address Ungültige Adresse - + Registration requested Registrierung angefordert - + Registration failed Registrierung fehlgeschlagen - + Check server version Überprüfe Version des Servers - + Registered Registriert - + Central Server full Zentralserver voll - + Unknown value Unbekannter Wert diff --git a/src/res/translation/translation_es_ES.qm b/src/res/translation/translation_es_ES.qm index 0a4a97b5c3613f0ad9e8142fc60ab46b41429a99..89bebdb926be8c2f3161e81e73b07b9e3cae2abe 100644 GIT binary patch delta 3670 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 delta 4020 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 U&Bp(a3B7UeZQB$2Kf`zZ2Q<&Tx&QzG diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index 20f8d3d421..84e93f5529 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -194,17 +194,17 @@ CAudioMixerBoard - + Server Servidor - + T R Y I N G T O C O N N E C T I N T E N T A N D O C O N E C T A R - + Personal Mix at the Server: Mezcla Personal en el Servidor: @@ -212,7 +212,7 @@ CChannelFader - + Channel Level Nivel Canal @@ -221,12 +221,12 @@ Muestra el nivel de audio pre-fader de este canal. Todos los clientes conectados al servidor tienen un nivel de audio asignado, el mismo para cada cliente. - + Input level of the current audio channel at the server Nivel de entrada del canal de audio actual en el servidor - + Mixer Fader Fader Mezclador @@ -235,17 +235,17 @@ Ajusta el nivel de audio de este canal. Todos los clientes conectados al servidor tienen asignado un fader en el cliente, ajustando la mezcla local. - + Local mix level setting of the current audio channel at the server Ajuste local de la mezcla del canal de audio actual en el servidor - + Status Indicator Indicador de Estado - + Shows a status indication about the client which is assigned to this channel. Supported indicators are: Muestra una indicación del estado del cliente asignado a este canal. Los indicadores soportados son: @@ -254,12 +254,12 @@ Altavoz tachado: Indica que el otro cliente te ha muteado. - + Status indicator label Etiqueta indicador estado - + Panning Paneo @@ -268,17 +268,17 @@ Fija el paneo de Izquierda a Derecha del canal. Solo funciona en estéreo o preferiblemente en modo Entrada mono/Salida estéreo. - + Local panning position of the current audio channel at the server Posición local del paneo del canal de audio actual en el servidor - + With the Mute checkbox, the audio channel can be muted. Activando Mute, se puede mutear el canal de audio. - + Mute button Botón Mute @@ -287,12 +287,12 @@ Activando Solo, todos los demás canales de audio excepto este se mutean. Es posible activar esta función para más de un canal. - + Solo button Botón Solo - + Fader Tag Etiqueta Fader @@ -301,124 +301,135 @@ La etiqueta del fader identifica al cliente conectado. El nombre de la etiqueta, la imagen de tu instrumento y la bandera de tu país se pueden establecer en la ventana principal. - + Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. Muestra el nivel de audio pre-fader de este canal. Todos los clientes conectados al servidor tienen un nivel de audio asignado, el mismo valor para cada cliente. - + Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. Ajusta el nivel de audio de este canal. Todos los clientes conectados al servidor tendrán asignado un fader, mostrado en cada cliente, para ajustar la mezcla local. - + Speaker with cancellation stroke: Indicates that another client has muted you. Altavoz tachado: Indica que otro cliente te ha muteado. - + Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. Fija el paneo de Izquierda a Derecha del canal. Solo funciona en modo estéreo o preferiblemente en modo Entrada mono/Salida estéreo. - + With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. Activando Solo, todos los demás canales de audio excepto este se mutean. Es posible activar esta función para más de un canal. - + The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. La etiqueta del fader identifica al cliente conectado. El nombre de la etiqueta, la imagen de tu instrumento y la bandera de tu país se pueden establecer en la ventana principal. - + Mixer channel instrument picture Imagen mezclador canal instrumento - + Mixer channel label (fader tag) Etiqueta mezclador canal (etiqueta fader) - + Mixer channel country flag Bandera país mezclador canal - + PAN PAN - + MUTE MUTE - + SOLO SOLO - + + M + + + + + S + + + + Alias/Name Alias/Nombre - + Instrument Instrumento - + Location Ubicación - - - + + + Skill Level Nivel Habilidad - + Beginner Principiante - + Intermediate Intermedio - + Expert Experto - + Musician Profile Perfil Músico - - + + Mute Mute + Pan Paneo - - + + Solo Solo @@ -1098,6 +1109,16 @@ Sound Card Buffer Delay Retardo Buffer Tarjeta Audio + + + Fancy + + + + + Compact + + The buffer delay setting is a fundamental setting of the Este parámetro es una parte fundamental de la configuración del software @@ -1178,19 +1199,16 @@ Botón configuración ASIO - Fancy Skin - Interfaz Oscura + Interfaz Oscura - If enabled, a fancy skin will be applied to the main window. - Si se activa, se aplicará un aspecto oscuro a la ventana principal. + Si se activa, se aplicará un aspecto oscuro a la ventana principal. - Fancy skin check box - Activar interfaz oscura + Activar interfaz oscura @@ -1317,7 +1335,7 @@ - + Mono Mono @@ -1327,14 +1345,14 @@ aumentará la tasa de datos. Asegúrate de que tu tasa de subida no excede el valor de subida disponible con tu ancho de banda de Internet. - + Mono-in/Stereo-out Entrada mono/Salida estéreo - + Stereo Estéreo @@ -1393,6 +1411,21 @@ If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. Si la configuración de retardo de buffers se encuentra deshabilitada, es porque el driver de audio prohíbe la modificación de este parámetro desde dentro del software. En Windows, pulsa el botón de Configuración ASIO para abrir el panel de configuración del driver. En Linux, utiliza la herramienta de configuración de Jack para cambiar el tamaño del buffer. + + + Skin + + + + + Select the skin to be used for the main window. + + + + + Skin combo box + + Selects the number of audio channels to be used for communication between client and server. There are three modes available: @@ -1463,17 +1496,18 @@ La Tasa de Subida de Audio depende del tamaño actual de paquetes de audio y la configuración de compresión de audio. Asegúrate de que la tasa de subida no es mayor que la velocidad de subida disponible (comprueba la tasa de subida de tu conexión a internet, por ej. con speedtest.net). - + Low Baja - + + Normal Normal - + High Alta @@ -1482,12 +1516,12 @@ Manual - + Custom Personalizado - + All Genres Todos los Géneros @@ -1496,22 +1530,22 @@ Género Rock/Jazz - + Genre Classical/Folk/Choir Género Clásica/Folk/Coro - + Genre Rock Género Rock - + Genre Jazz Género Jazz - + Default Por defecto @@ -1520,23 +1554,23 @@ Por defecto (Norteamérica) - + preferred aconsejado - - + + Size: Tamaño: - + Buffer Delay Retardo Buffer - + Buffer Delay: Retardo Buffer: @@ -1545,17 +1579,17 @@ Dirección Preestablecida - + The selected audio device could not be used because of the following error: El dispositivo de audio seleccionado no puede utilizarse a causa del siguiente error: - + The previous driver will be selected. Se utilizará el driver anterior. - + Ok Ok @@ -1676,22 +1710,26 @@ Nivel Cliente Nuevo - + + Skin + + + + % % - Fancy Skin - Intfaz Oscura + Intfaz Oscura - + Display Channel Levels Mostrar Nivel Canales - + Custom Central Server Address: Dirección Personalizada Servidor Central: @@ -1700,24 +1738,24 @@ Dirección Servidor Central: - + Audio Stream Rate Tasa Muestreo Audio - - - + + + val val - + Ping Time Tiempo Ping - + Overall Delay Retardo Total @@ -2654,42 +2692,42 @@ &Ventana - + Unregistered Sin registrar - + Bad address Dirección no válida - + Registration requested Registro solicitado - + Registration failed Error de registro - + Check server version Comprueba la versión del servidor - + Registered Registrado - + Central Server full Servidor Central lleno - + Unknown value Valor desconocido diff --git a/src/res/translation/translation_fr_FR.qm b/src/res/translation/translation_fr_FR.qm index 9674878990486bc62f0a2a6bb0c723e9d3078a3d..6bd57449f25e3791c13d7ba06927fcdd8d8b6bce 100644 GIT binary patch delta 32619 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

" + tr ( "Alias/Name" ) + "

" + strReceivedName; + strToolTip += "

" + tr ( "Alias/Name" ) + "

" + cChanInfo.strName; } // instrument diff --git a/src/audiomixerboard.h b/src/audiomixerboard.h index 1e955ccd4f..09aeffadbc 100644 --- a/src/audiomixerboard.h +++ b/src/audiomixerboard.h @@ -49,7 +49,8 @@ class CChannelFader : public QObject public: CChannelFader ( QWidget* pNW ); - QString GetReceivedName() { return strReceivedName; } + QString GetReceivedName() { return cReceivedChanInfo.strName; } + int GetReceivedInstrument() { return cReceivedChanInfo.iInstrument; } void SetChannelInfos ( const CChannelInfo& cChanInfo ); void Show() { pFrame->show(); } void Hide() { pFrame->hide(); } @@ -101,7 +102,7 @@ class CChannelFader : public QObject QLabel* plblInstrument; QLabel* plblCountryFlag; - QString strReceivedName; + CChannelInfo cReceivedChanInfo; bool bOtherChannelIsSolo; bool bIsMyOwnFader; From b078bfd7b8b6d0df2e0af14fa5ad6b97f3dd5d3b Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 13 Jun 2020 08:51:05 +0200 Subject: [PATCH 157/936] further preparation for #356 --- src/audiomixerboard.cpp | 17 ++++++++++++++--- src/audiomixerboard.h | 4 +++- src/clientdlg.h | 2 +- src/util.h | 8 ++++++++ 4 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 5753cbaba0..88b198f3ec 100644 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -768,20 +768,31 @@ void CAudioMixerBoard::HideAll() iMyChannelID = INVALID_INDEX; // use original order of channel (by server ID) - ChangeFaderOrder ( false ); + ChangeFaderOrder ( false, ST_BY_NAME ); // emit status of connected clients emit NumClientsChanged ( 0 ); // -> no clients connected } -void CAudioMixerBoard::ChangeFaderOrder ( const bool bDoSort ) +void CAudioMixerBoard::ChangeFaderOrder ( const bool bDoSort, + const EChSortType eChSortType ) { // create a pair list of lower strings and fader ID for each channel QList > PairList; for ( int i = 0; i < MAX_NUM_CHANNELS; i++ ) { - PairList << QPair ( vecpChanFader[i]->GetReceivedName().toLower(), i ); + if ( eChSortType == ST_BY_NAME ) + { + PairList << QPair ( vecpChanFader[i]->GetReceivedName().toLower(), i ); + } + else // ST_BY_INSTRUMENT + { + // note that the sorting will not be the same as we would use QPair + // but this is not a problem since the order of the instrument IDs are arbitrary + // anyway + PairList << QPair ( QString::number ( vecpChanFader[i]->GetReceivedInstrument() ), i ); + } } // if requested, sort the channels diff --git a/src/audiomixerboard.h b/src/audiomixerboard.h index 09aeffadbc..a3321a3457 100644 --- a/src/audiomixerboard.h +++ b/src/audiomixerboard.h @@ -147,7 +147,6 @@ class CAudioMixerBoard : CAudioMixerBoard ( QWidget* parent = nullptr, Qt::WindowFlags f = nullptr ); void HideAll(); - void ChangeFaderOrder ( const bool bDoSort ); void ApplyNewConClientList ( CVector& vecChanInfo ); void SetServerName ( const QString& strNewServerName ); void SetGUIDesign ( const EGUIDesign eNewDesign ); @@ -160,6 +159,9 @@ class CAudioMixerBoard : void SetFaderLevel ( const int iChannelIdx, const int iValue ); + void ChangeFaderOrder ( const bool bDoSort, + const EChSortType eChSortType ); + void SetChannelLevels ( const CVector& vecChannelLevel ); // settings diff --git a/src/clientdlg.h b/src/clientdlg.h index 2489ed339e..27531c8313 100755 --- a/src/clientdlg.h +++ b/src/clientdlg.h @@ -152,7 +152,7 @@ public slots: void OnOpenGeneralSettings() { ShowGeneralSettings(); } void OnOpenChatDialog() { ShowChatWindow(); } void OnOpenAnalyzerConsole() { ShowAnalyzerConsole(); } - void OnSortChannelsByName() { MainMixerBoard->ChangeFaderOrder ( true ); } + void OnSortChannelsByName() { MainMixerBoard->ChangeFaderOrder ( true, ST_BY_NAME ); } void OnSettingsStateChanged ( int value ); void OnChatStateChanged ( int value ); diff --git a/src/util.h b/src/util.h index 935ebd02e2..6e24312b11 100755 --- a/src/util.h +++ b/src/util.h @@ -563,6 +563,14 @@ enum ELicenceType }; +// Channel sort type ----------------------------------------------------------- +enum EChSortType +{ + ST_BY_NAME = 0, + ST_BY_INSTRUMENT = 1 +}; + + // Central server address type ------------------------------------------------- enum ECSAddType { From 14cf23a1d7bbaf8da0f62378efda5669e6baa741 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 13 Jun 2020 09:27:31 +0200 Subject: [PATCH 158/936] fix: Jamulus Server window too wide #357 --- src/serverdlgbase.ui | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/serverdlgbase.ui b/src/serverdlgbase.ui index e00bb4dbbb..de77a8bde2 100755 --- a/src/serverdlgbase.ui +++ b/src/serverdlgbase.ui @@ -69,9 +69,20 @@ + + + + + + + + STATUS + + + @@ -88,13 +99,6 @@ - - - - STATUS - - - From ff31b99dc35fb9065d3c8fdaeb6b3375cc608ba0 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 13 Jun 2020 09:29:51 +0200 Subject: [PATCH 159/936] added Genre label --- src/serverdlgbase.ui | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/serverdlgbase.ui b/src/serverdlgbase.ui index de77a8bde2..418a07c3b5 100755 --- a/src/serverdlgbase.ui +++ b/src/serverdlgbase.ui @@ -7,7 +7,7 @@ 0 0 588 - 415 + 419 @@ -73,6 +73,13 @@ + + + + Genre + + + From 16dc091b48323e95bbc1f911ebd3f83d9b0fcb9d Mon Sep 17 00:00:00 2001 From: Jonathan Date: Sat, 13 Jun 2020 08:58:20 +0100 Subject: [PATCH 160/936] Update for sort order Also a slight clarification --- src/res/homepage/manual.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/res/homepage/manual.md b/src/res/homepage/manual.md index 34dfe39d62..c88aa61caf 100644 --- a/src/res/homepage/manual.md +++ b/src/res/homepage/manual.md @@ -93,7 +93,7 @@ in a direction where the label above the fader shows L -x, where x is the curren In the audio mixer frame, a fader is shown for each connected client at the server (including yourself). The faders allow you to adjust the level of what you hear without affecting what others hear. -The VU meter shows the input level at the server - that is, the sound you are sending. +The VU meter shows the input level at the server - that is, the sound being sent. If you have set your Audio Channel to Stereo or Stereo Out in your Settings, you will also see a pan control. @@ -103,6 +103,7 @@ Using the **Mute button** prevents the indicated channel being heard in your loc The **Solo button** allows you to hear one or more musicians on their own. Those not soloed will be muted. Note also that those musicians who are not soloed will see a "muted" icon above your fader. +Channels are listed left to right in the order that clients connect until they leave, at which point their "slot" is filled by the next new arrival. You can change the sort order using the Edit option in the application menu. From 0578e8177e0aa906d366b50cbf461ce0e3987310 Mon Sep 17 00:00:00 2001 From: dzpex <65598812+dzpex@users.noreply.github.com> Date: Sat, 13 Jun 2020 13:46:57 +0200 Subject: [PATCH 161/936] New feature translated --- src/res/translation/translation_it_IT.qm | Bin 59515 -> 97906 bytes src/res/translation/translation_it_IT.ts | 202 +++++++++++------------ 2 files changed, 101 insertions(+), 101 deletions(-) diff --git a/src/res/translation/translation_it_IT.qm b/src/res/translation/translation_it_IT.qm index 4ae5f3f6e2ccd86c35c4ff3a0e67093994bdbfcc..b05d00aa8bce9df3e27a64ebf1d77ee495b6ee8e 100644 GIT binary patch delta 32857 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 delta 3607 zcmX9=c|c9+8-C8Y=iGfMGmWA}lch3KmSjm`%xJTuEKxU2*`+Djmu^NkDpD@RXfjb~ zk>%hTOHrhf7~2>-jU^h{Lj4TC*POqed(ZjK_rCA*KJW8=uRieqyC^XXJ~Gw1t|fQV zc}Lrd$ovzxzXQ~30CWQ;R}zi{x?C60IYh+B;e^3}Q-O#s0U}0)0(=-SN&tF#(QjHG zG6M+Q1dNLSENK0NM8f+bx+np|^5sDEdT?v^0^!%dAAZ}w?G%E5Q{d?0>4eD89ALxYH$w!_az@shV1;6L>) zU_1f;Dhg<9Mt~>Lb=3(0m8n3FCIr@P2AF7!8cY?exsITTw6Sw%giIplBI6PI?;F6S z1e2Z^frU1h+~pf!-BReKj=*|b=s&MpZ$MPQOkj2smgf>f-5(&UG7lJHxQT6x$^qBg z*yVhgGWN%AcQ-&1hvHMOfb@Lq9X<}o1^&qJ2l^cpQLn+JZlmctSKOn55mADN6P@@dc)=W;Pv*AFO>Re9`?#=gMnYiy{I80h{5J9$7J;P@|_ zim4>l-`JeB;lLPgcDp}mOM8zkT$u?RKgSk-Zfz$g5m)tOi?`bwfbT}LWx75zb}U=g z9tUIvvWH`+(5z&(q9;{6R>Pihn+5!mz}6m{2FSLsjluhXqE2k~5{*M0SGdv- z7@f)O9JPw5yv`M0rg@)rSj4<$uCzoC^qD6!6fn9<#JT&p>!(R{>_qOCDUmRpGu*bH1eEx3_ii`=eHU?$PhBJ0c(|CR@I1@B|vea^Bs6dTzSN_sO>he*cH}(vUW|I)1SJ zAW-JS`?QY%GQ0D>AG*==?)(H3wQSTORYRXGK``#UzjyHVH4jEweEx)-W7SLQ3G1i*T z&85oaCK01j2x;HUQa)dPlEitA&tFaJHyJMS#WfWqvbX%{Pqbm#0lvon12JI7UyS-l z#u3P04gbu{X%WND^3RTxlTW;tsywd%ww6-sBpr=ckksY~eLrWe^hYZi<9?pf#K~09 zZ(&knP)BmsF4AqL_Y_AjEj&4qjL2QO(@2RJLLW$r2dYVg4bswhAE4rtv|=2IMzv4G zwENP^Vp4yQQd)guG%*z@t%-LdFV{;Sr(4mPFO-XIG;GXSvuTQ=S*0_fT()4M8Y z+D)kH!af3;=z?uHb>tvg@kT&*O$~NCECuiFs+oGlf_wJU7RNs^R zde)xA=_Nb5nNCq9E4!~JZLEJHyMK5HVX3UKy^7{P>mON@11)swB3IvjP7L&xTO9NO zriRMhlOF=Q%Ob8FFYi6}03F9u<$cO1VB#rx;EV>c=)3ZXHZ(Q!3 zX-CNiniZ4Z(|h9@MRZmxot{QT^fM}Gt&JikERpuPrbsh*6D7QrBGYj`urg1P)&7`z zouVkZkq6jJQtZD*z4Dl%IPgbT>g^WA@%qbjDt1s*=xO~L8^u`%V#IE#qPBqyC+kZ^ z)6xb?K%rwQO2dR-%YlP2%Biii@QR;u znm-4`+*QsDs-bz^q@3AA8?Kt7j0yXTdZ|>#{kt02c0f7Lk1X|ixN_$>YaqZ+Sv>VR z8BMFQ^fe`tNouK7(=%x9gEbRN zLV$q{B1W`pri~$L?JPv>;isA1krJG-LbGT%?f*?@&DQMKbRP)S>>gfD^KT!jsd(i^ zJ#iON@YPhEY@n;NOmlX6G#OE)=7O~oiD-c4@iSUiK2-BGlHT{}rj>mp#xmz4Q~R#8jMm3!+s8K$GiP*;fxAg-dvrct zPDy}wvTj)IE1KuAx{*t$=hjBu^z&zE!4Tb+j+DT8mF{u|eK5;icg5-s8B5VD;N~Ua zsBQ)$T(zuXO<`6A!YrEt&Q$BrAf$eMSt6|LK2Bn4cllO0*pp>Vcib+U8hW1JrlYNng0XS4MCkeS zg+y5RdY6qkTEpbZ%!90$xvcqCM`k@^9^}9rXU$u?GKZL)9X*(o9LAOT*1Y^1rkXKF z^ This app enables musicians to perform real-time jam sessions over the internet. - + Dà la possibilità ai musicisti di realizzare sessioni live attraverso internet. There is a server which collects the audio data from each client, mixes the audio data and sends the mix back to each client. - + Il server acquisisce i dati audio di ogni client, mixa i dati audio e li rimanda ad ogni client connesso. This app uses the following libraries, resources or code snippets: - + Questa applicazione usa le seguenti librerie, risorse e parti di codice: Country flag icons by Mark James - + Le icone delle bandiere sono state realizzate da Marl James @@ -124,7 +124,7 @@ Released under the GNU General Public License (GPL) - + Rilasciato sotto licensa GNU General Public License (GPL) Under the GNU General Public License (GPL) @@ -320,32 +320,32 @@ Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. - + Visualizza il livello "pre-fader" di questo canale. Tutti i client connessi al server avranno assegnato un livello audio, lo stesso valore per ogni client. Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. - + Regola il livello audio di questo canale. A tutti i client connessi sarà assegnatu un fader per regolare il mix audio locale. Speaker with cancellation stroke: Indicates that another client has muted you. - + Altoparlate con il segnale rosso: indica che un altro client ha messo il tuo canale in mute. Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. - + Regola il bilanciamento Sinistro - Destro del canale. Funziona solo se abilitata la funzione stereo oppure "mono-in/stereo-out". With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. - + Se selezionato il pulsate "Solo", il canale audio sarà settato nella modalità di "Solo" ovvero tutti i canali saranno mutati ad eccezione di quelli in modalità "Solo". The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. - + La targa sotto il Fader identifica il client connesso. Il nome, l'immagine dello strumento, e la bandiera della nazionalità possono essere settati tramite la finestra del profilo. @@ -380,12 +380,12 @@ M - + M S - + S @@ -654,122 +654,122 @@ This shows the level of the two stereo channels for your audio input. - + Visualizza il livello di input dei due canali stereo. If the application is connected to a server and you play your instrument/sing into the microphone, the VU 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. - + Se il programma è connesso ad un server e voi state suonando o cantando, il VU-Meter sarà in funzione. Se ciò non accade probabilemnte avete settato un ingresso errato oppure il livello di input è troppo basso. For proper usage of the application, you should not hear your singing/instrument through the loudspeaker or your headphone when the software is not connected.This can be achieved by muting your input audio channel in the Playback mixer (not the Recording mixer!). - + Per un corretto utilizzo dell'applicazione, non è possibile ascoltare il canto o lo strumento attraverso l'altoparlante o le cuffie quando il programma non è collegato. Basta disattivare l'audio del canale di ingresso nel mixer di riproduzione (non nel mixer di registrazione!). Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. - + Cliccando su questo pulsante il stato passa da Connesso a Disconnesso, implementa infatti la funzionalità di connessione-disconnessione del programma. Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows - + Controlla i livelli relativi dei canali audio locali sinistro e destro. Per un segnale mono funge da pan tra i due canali. Ad esempio, se un microfono è collegato al canale di ingresso destro e uno strumento è collegato al canale di ingresso sinistro che è molto più forte del microfono, spostare il cursore audio in una direzione in cui viene mostrata l'etichetta sopra il fader Reverb effect - + Effetto Reverbero Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. - + Il Reverbero può essere applicato sia in modalità mono che stereo. La selezione del canale mono e il livello di riverbero possono essere modificati. Ad esempio, se un segnale del microfono viene immesso nel canale audio destro della scheda audio e deve essere applicato un effetto di riverbero, impostare il selettore di canale su destra e spostare il fader verso l'alto fino a raggiungere il livello di riverbero desiderato. Reverb effect level setting - + Livello dell'effetto di Reverbero Reverb Channel Selection - + Selezione Canale Reverbero With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. - + Con questi pulsanti di opzione è possibile scegliere il canale di ingresso audio su cui viene applicato l'effetto riverbero. È possibile selezionare il canale di input sinistro o destro. Left channel selection for reverb - + Canale Sinistro per il Reverbero Right channel selection for reverb - + Canale Destro per il Reverbero Green - + Verde The delay is perfect for a jam session. - + Il delay è perfetto per una live session. Yellow - + Giallo Red - + Rosso Opens a dialog where you can select a server to connect to. If you are connected, pressing this button will end the session. - + Apre una finestra di dialogo in cui è possibile selezionare un server a cui connettersi. Se si è connessi, premere questo pulsante per terminare la sessione. Shows the current audio delay status: - + Visualizza lo stato corrente del delay: A session is still possible but it may be harder to play. - + Una sessione è ancora possibile ma potrebbe essere più difficile suonare. The delay is too large for jamming. - + Il delay è eccessivo per una live session. If this LED indicator turns red, you will not have much fun using the application. - + Se il LED diventa rosso non si avrà una buona esperinza di utilizzo dell'applicazione. The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: - + Il LED di stato del buffer mostra lo stato audio dello streaming corrente. Se la luce è rossa, il flusso audio viene interrotto. Ciò è causato da uno dei seguenti problemi: The sound card's buffer delay (buffer size) is too small (see Settings window). - + Il ritardo della scheda audio(ovvero il buffer size) è troppo basso (vedere i Settaggi della Scheda). The upload or download stream rate is too high for your internet bandwidth. - + La banda passante per lo stream (upload e download) è troppo rispetto alla qualità della connessione internet. @@ -825,12 +825,12 @@ &Edit - + &Modifica &Sort Channel Users by Name - + &Canali in ordine Alfabetico @@ -1312,7 +1312,7 @@ mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. - + modalità che aumenterà la velocità dei dati del tuo stream. Assicurati che la tua velocità di upload non superi la velocità di upload disponibile per la tua connessione Internet. @@ -1329,137 +1329,137 @@ The jitter buffer compensates for network and sound card timing jitters. The size of the buffer therefore influences the quality of the audio stream (how many dropouts occur) and the overall delay (the longer the buffer, the higher the delay). - + Il Jitter Buffer compensa i ritardi della rete e della scheda audio. La dimensione del buffer influenza quindi la qualità del flusso audio (quando si verificano i dropout) e il ritardo complessivo (più è alto il buffer, maggiore è il ritardo). You can set the jitter buffer size manually for the local client and the remote server. For the local jitter buffer, dropouts in the audio stream are indicated by the light below the jitter buffer size faders. If the light turns to red, a buffer overrun/underrun has taken place and the audio stream is interrupted. - + È possibile impostare manualmente la dimensione delJitter Buffer per il client locale e il server remoto. Per il Jitter Buffer locale, i dropout nel flusso audio sono indicati dalla luce sotto i fader del Jitter Buffer. Se la luce diventa rossa, si è verificato un sovraccarico / underrun del buffer e il flusso audio viene interrotto. If the Auto setting is enabled, the jitter buffers of the local client and the remote server are set automatically based on measurements of the network and sound card timing jitter. If Auto is enabled, the jitter buffer size faders are disabled (they cannot be moved with the mouse). - + Se la modalità "Auto" è abilitata il Jitter Buffer si regolerà automaticamente sulla base di misure sulla rete e sulle latenze della scheda audio. Quando la modalità "Auto" è abilitata i fader saranno disabilitati. If the Auto setting 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 and to lower the jitter buffer size manually by using the sliders until your personal acceptable amount of dropouts is reached. The LED indicator will display the audio dropouts of the local jitter buffer with a red light. - + Se l'impostazione Auto è abilitata, i buffer di rete del client locale e del server remoto vengono impostati su un valore conservativo per ridurre al minimo la probabilità di interruzione dell'audio. Per modificare il ritardo / latenza audio, si consiglia di disabilitare l'impostazione Auto e di ridurre manualmente la dimensione del buffer utilizzando i fader fino a raggiungere una qualità audio accettabile. L'indicatore LED mostrerà i dropout audio del Jitter Buffer locale con una luce rossa. The buffer delay setting is a fundamental setting of this software. This setting has an influence on many connection properties. - + Il Buffer Delay è un settaggio fondamentale per questo programma. Questo settaggio influenza molte propriètà di connessione. 64 samples: The preferred setting. Provides the lowest latency but does not work with all sound cards. - + 64 Campiono: Settaggio preferito. Permette di ottenere latenze bassissime ma non tutto le schede audio supportano questo valore. 128 samples: Should work for most available sound cards. - + 128 Campioni: Valore accettato dalla maggior parde delle schede audio. 256 samples: Should only be used on very slow computers or with a slow internet connection. - + 256 Campioni: Usato su computer vecchi o su connessioni lente. Some sound card drivers do not allow the buffer delay to be changed from within the application. In this case the buffer delay setting is disabled and has to be changed using the sound card driver. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. - + Alcune driver non permettono il settaggio del buffer delay quando il programma è avviato. In questo caso la scelta del buffer delay è disabilitata è puo essere modificata avviando il software del driver della scheda audio. Su windows cliccare su "ASIO Setup" per aprire i settings del driver ASIO. Su Linux usare la configurazione di Jack per modificare la dimensione del Buffer. If no buffer size is selected and all settings are disabled, an unsupported buffer size is used by the driver. The application will still work with this setting but with restricted performance. - + Si nessuna delle opzioni di Buffer è selezionata vuol dire che una dimensione non supportata è in uso da parte del driver. Il programma continuerà a funzionare con performance limitate. If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. - + Se le impostazioni di ritardo del buffer sono disabilitate, il driver audio non può modificare questa impostazione dal programma. Su Windows, premi il pulsante ASIO Setup per aprire il pannello delle impostazioni del driver. Su Linux, utilizzare lo strumento di configurazione Jack per modificare la dimensione del buffer. Skin - + Vista Select the skin to be used for the main window. - + Selezione la vista da applicare alla finestra principale. Skin combo box - + Box di selezione Vista Selects the number of audio channels to be used for communication between client and server. There are three modes available: - + Seleziona il numero di canali audio da utilizzare per la comunicazione tra client e server. Sono disponibili tre modalità: and - + e These modes use one and two audio channels respectively. - + Questa modalità usa rispettivamente uno o due canali audio. Mono in/Stereo-out - + Mono in/Stereo-out The audio signal sent to the server is mono but the return signal is stereo. This is useful if the sound card has the instrument on one input channel and the microphone on the other. In that case the two input signals can be mixed to one mono channel but the server mix is heard in stereo. - + Il segnale audio inviato al server è mono ma il segnale di ritorno è stereo. Ciò è utile se la scheda audio ha lo strumento su un canale di ingresso e il microfono sull'altro. In tal caso, i due segnali di ingresso possono essere miscelati su un canale mono ma il mix del server viene ascoltato in stereo. Enabling - + Abilitando In stereo streaming mode, no audio channel selection for the reverb effect will be available on the main window since the effect is applied to both channels in this case. - + Nella modalità stereo, nessuna selezione di canali audio per l'effetto riverbero sarà disponibile nella finestra principale poiché in questo caso l'effetto viene applicato ad entrambi i canali. The higher the audio quality, the higher your audio stream's data rate. Make sure your upload rate does not exceed the available bandwidth of your internet connection. - + Maggiore è la qualità audio, maggiore è la quantità dei dati del flusso audio. Assicurati che la tua velocità di upload non superi la larghezza di banda disponibile della tua connessione Internet. This setting defines the fader level of a newly connected client in percent. If a new client connects to the current server, they will get the specified initial fader level if no other fader level from a previous connection of that client was already stored. - + Questa impostazione definisce il livello di dissolvenza di un client appena connesso in percentuale. Se un nuovo client si connette al server corrente, otterrà il livello di fader iniziale specificato se nessun altro livello di fader da una precedente connessione di quel client era già memorizzato. Leave this blank unless you need to enter the address of a central server other than the default. - + Lasciare vuoto questo campo a meno che non sia necessario immettere l'indirizzo di un server centrale diverso da quello predefinito. The Ping Time is the time required for the audio stream to travel from the client to the server and back again. This delay is introduced by the network and should be about 20-30 ms. If this delay is higher than about 50 ms, your distance to the server is too large or your internet connection is not sufficient. - + Il ping è il tempo necessario affinché il flusso audio passi dal client al server e viceversa. Questo ritardo è introdotto dalla rete e dovrebbe essere di circa 20-30 ms. Se questo ritardo è superiore a circa 50 ms, la distanza dal server è eccessiva o la connessione a Internet non è sufficiente. Overall Delay is calculated from the current Ping Time and the delay introduced by the current buffer settings. - + Il ritardo complessivo viene calcolato dal tempo di ping corrente e dal ritardo introdotto dalle impostazioni del buffer correnti. Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net). - + L'Upstream audio dipende dalle dimensioni del pacchetto audio e dalle impostazioni di compressione correnti. Assicurati che la velocità di upstream non sia superiore alla velocità della tua connessione (controlla questo con un servizio come speedtest.net). @@ -1480,12 +1480,12 @@ Fancy - + Fantasia Compact - + Compatto @@ -1676,7 +1676,7 @@ Skin - + Vista @@ -1764,17 +1764,17 @@ The Connection Setup window shows a list of available servers. Server operators can optionally list their servers by music genre. Use the List dropdown to select a genre, click on the server you want to join and press the Connect button to connect to it. Alternatively, double click on on the server name. Permanent servers (those that have been listed for longer than 48 hours) are shown in bold. - + La finestra "Connessioni" mostra un elenco di server disponibili. Gli operatori di server possono facoltativamente elencare i loro server per genere musicale. Utilizzare l'elenco a discesa per selezionare un genere, fare clic sul server a cui si desidera accedere e premere il pulsante Connetti per connettersi ad esso. In alternativa, fai doppio clic sul nome del server. I server permanenti (quelli che sono stati elencati per più di 48 ore) sono mostrati in grassetto. If you know the IP address or URL of a server, you can connect to it using the Server name/Address field. An optional port number can be added after the IP address or URL using a colon as a separator, e.g, example.org: - + Se si conosce l'indirizzo IP o l'URL di un server, è possibile connettersi ad esso utilizzando il campo Nome / indirizzo server. Un numero di porta opzionale può essere aggiunto dopo l'indirizzo IP o l'URL usando i due punti come separatore, ad esempio: esempio.org: . The field will also show a list of the most recently used server addresses. - + . Il campo mostrerà anche un elenco degli indirizzi server utilizzati più di recente. @@ -2097,12 +2097,12 @@ Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. - + Scrivi qui il tuo nome o un alias in modo che gli altri musicisti con cui vuoi suonare sappiano chi sei. Puoi anche aggiungere una foto dello strumento che suoni e una bandiera del paese in cui ti trovi. Puoi anche aggiungere la tua città e il tuo livello di abilità nel suonare il tuo strumento. What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. - + Ciò che hai impostato apparirà sul tuo fader sulla scheda del mixer quando sei collegato a un server Jamulus. Questo tag verrà mostrato anche su ogni client collegato allo stesso server. @@ -2332,17 +2332,17 @@ Ukulele - + Uculele Bass Ukulele - + Uculele Basso No Name - + Senza Nome @@ -2422,12 +2422,12 @@ If the start minimized on operating system start check box is checked, the server will be started when the operating system starts up and is automatically minimized to a system task bar icon. - + Se la casella di controllo "Avvia ridotto a icona" all'avvio del sistema operativo è selezionata, il server verrà avviato all'avvio del sistema operativo e verrà automaticamente ridotto a icona a icona nella barra delle attività del sistema. If the Make My Server Public check box is checked, this server registers itself at the central server so that all users of the application can see the server in the connect dialog server list and connect to it. The registration of the server is renewed periodically to make sure that all servers in the connect dialog server list are actually available. - + Se la casella di controllo "Rendi pubblico il mio server" è selezionata, questo server si registra sul server centrale in modo che tutti gli utenti possano vedere il server nell'elenco dei server. La registrazione del server viene rinnovata periodicamente per assicurarsi che tutti i server nell'elenco siano effettivamente disponibili. @@ -2476,7 +2476,7 @@ The server name identifies your server in the connect dialog server list at the clients. - + Il nome del server identifica il tuo server nell'elenco dei server nella finestra di dialogo di connessione sui client. @@ -2516,62 +2516,62 @@ Checkbox to turn on or off server recording - + Spunta per abilitare o disabilitare la registrazione sul server Enable Recorder - + Abilita Registrazione Checked when the recorder is enabled, otherwise unchecked. The recorder will run when a session is in progress, if (set up correctly and) enabled. - + Se selezionato la registrazione è abilitata. La registrazione verrà eseguito quando è in corso una sessione, se (impostato correttamente e abilitato). Current session directory text box (read-only) - + Casella di testo per la Cartella della sessione Corrente (Sola Lettura) Current Session Directory - + Cartella della sessione Corrente Enabled during recording and holds the current recording session directory. Disabled after recording or when the recorder is not enabled. - + Abilitato durante la registrazione e imposta la directory della sessione di registrazione. Disabilitato dopo la registrazione o quando il registratore non è abilitato. Recorder status label - + Etichetta dello stato di Registrazione Recorder Status - + Stato di Registrazione Displays the current status of the recorder. - + Visualizza lo stato del registratore. Request new recording button - + Pulsante per una nuova registrazione New Recording - + Nuova Registrazione During a recording session, the button can be used to start a new recording. - + Durante una sessione di registrazione questo pulsante può essere usato per iniziare una nuova registrazione. @@ -2619,17 +2619,17 @@ Recording - + Registrazione Not recording - + Registrazione Ferma Not enabled - + Non Abilitata @@ -2738,17 +2738,17 @@ Enable jam recorder - + Abilita Registrazione Jam New recording - + Nuova Registrazione Recordings folder - + Cartella di Registrazione @@ -2817,12 +2817,12 @@ Current system audio input device sample rate of %1 Hz is not supported. Please open the Audio-MIDI-Setup in Applications->Utilities and try to set a sample rate of %2 Hz. - La frequenza di campionamento corrente del dispositivo audio in ingresso di %1 Hz non è supportata. Apri Impostazioni-Audio-MIDI in Applicazioni-> Utilità e prova a impostare una frequenza di campionamento di% 2 Hz. + La frequenza di campionamento corrente del dispositivo audio in ingresso di %1 Hz non è supportata. Apri Impostazioni-Audio-MIDI in Applicazioni-> Utilità e prova a impostare una frequenza di campionamento di %2 Hz. Current system audio output device sample rate of %1 Hz is not supported. Please open the Audio-MIDI-Setup in Applications->Utilities and try to set a sample rate of %2 Hz. - La frequenza di campionamento corrente del dispositivo audio in uscita %1 Hz non è supportata. Apri Impostazioni-Audio-MIDI in Applicazioni-> Utilità e prova a impostare una frequenza di campionamento di% 2 Hz. + La frequenza di campionamento corrente del dispositivo audio in uscita %1 Hz non è supportata. Apri Impostazioni-Audio-MIDI in Applicazioni-> Utilità e prova a impostare una frequenza di campionamento di %2 Hz. From 8de92ed5f77828c2cbffd5db94c7108d1bdfd879 Mon Sep 17 00:00:00 2001 From: Alberstein8 Date: Sat, 13 Jun 2020 14:07:09 +0200 Subject: [PATCH 162/936] Sort by instrument, new sortby function with parameter to set order Sort by instrument added, using the same function for sorting by name or instrument --- src/audiomixerboard.cpp | 23 ----------------------- src/clientdlg.h | 2 +- 2 files changed, 1 insertion(+), 24 deletions(-) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 307a53c896..d40e11bb55 100644 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -813,29 +813,6 @@ void CAudioMixerBoard::ChangeFaderOrder ( const bool bDoSort, } } -void CAudioMixerBoard::ChangeFaderOrderByInstrument ( const bool bDoSort ) -{ - // create a pair list of instruments ID and fader ID for each channel - QList > PairList; - - for ( int i = 0; i < MAX_NUM_CHANNELS; i++ ) - { - PairList << QPair ( vecpChanFader[i]->GetReceivedInstrument(), i ); - } - - // if requested, sort the channels - if ( bDoSort ) - { - qStableSort ( PairList.begin(), PairList.end() ); - } - - // add channels to the layout in the new order - for ( int i = 0; i < MAX_NUM_CHANNELS; i++ ) - { - pMainLayout->insertWidget ( 0, vecpChanFader[PairList[i].second]->GetMainWidget() ); - } -} - void CAudioMixerBoard::ApplyNewConClientList ( CVector& vecChanInfo ) { // we want to set the server name only if the very first faders appear diff --git a/src/clientdlg.h b/src/clientdlg.h index 87c981c7c0..7b2e9dfafa 100755 --- a/src/clientdlg.h +++ b/src/clientdlg.h @@ -153,7 +153,7 @@ public slots: void OnOpenChatDialog() { ShowChatWindow(); } void OnOpenAnalyzerConsole() { ShowAnalyzerConsole(); } void OnSortChannelsByName() { MainMixerBoard->ChangeFaderOrder ( true, ST_BY_NAME ); } - + void OnSortChannelsByInstrument() { MainMixerBoard->ChangeFaderOrder ( true, ST_BY_INSTRUMENT ); } void OnSettingsStateChanged ( int value ); void OnChatStateChanged ( int value ); From 61f25b564402354c93734a4c99dba27d8055ca91 Mon Sep 17 00:00:00 2001 From: Alberstein8 Date: Sat, 13 Jun 2020 14:15:24 +0200 Subject: [PATCH 163/936] Removed iReceivedInstrument decalration --- src/audiomixerboard.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/audiomixerboard.h b/src/audiomixerboard.h index 1ee8d81081..08862464e4 100644 --- a/src/audiomixerboard.h +++ b/src/audiomixerboard.h @@ -105,9 +105,6 @@ class CChannelFader : public QObject CChannelInfo cReceivedChanInfo; - int iReceivedInstrument; - - bool bOtherChannelIsSolo; bool bIsMyOwnFader; From 7c73b93b9f80b813b5e26963e8e7b062165d7cd4 Mon Sep 17 00:00:00 2001 From: Alberstein8 Date: Sat, 13 Jun 2020 14:58:36 +0200 Subject: [PATCH 164/936] Clean some empty lines to match original code --- src/audiomixerboard.cpp | 3 --- src/audiomixerboard.h | 1 - 2 files changed, 4 deletions(-) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index d40e11bb55..88b198f3ec 100644 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -447,7 +447,6 @@ void CChannelFader::SetChannelInfos ( const CChannelInfo& cChanInfo ) // Label text -------------------------------------------------------------- - // break text at predefined position const int iBreakPos = MAX_LEN_FADER_TAG / 2; @@ -769,10 +768,8 @@ void CAudioMixerBoard::HideAll() iMyChannelID = INVALID_INDEX; // use original order of channel (by server ID) - ChangeFaderOrder ( false, ST_BY_NAME ); - // emit status of connected clients emit NumClientsChanged ( 0 ); // -> no clients connected } diff --git a/src/audiomixerboard.h b/src/audiomixerboard.h index 08862464e4..a3321a3457 100644 --- a/src/audiomixerboard.h +++ b/src/audiomixerboard.h @@ -49,7 +49,6 @@ class CChannelFader : public QObject public: CChannelFader ( QWidget* pNW ); - QString GetReceivedName() { return cReceivedChanInfo.strName; } int GetReceivedInstrument() { return cReceivedChanInfo.iInstrument; } void SetChannelInfos ( const CChannelInfo& cChanInfo ); From 1c89e7590033fcb18985ab649065bd61360fbc0e Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 13 Jun 2020 17:41:44 +0200 Subject: [PATCH 165/936] merge fixes --- ChangeLog | 1 + src/util.cpp | 1 + 2 files changed, 2 insertions(+) diff --git a/ChangeLog b/ChangeLog index 6df598ff10..1baa93cb9b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -7,6 +7,7 @@ - add new "slim channel" skin, intended for large ensembles (#339) +- support sorting faders by channel instrument, coded by Alberstein8 (#356) diff --git a/src/util.cpp b/src/util.cpp index 13808bbc25..b1b4ba8a9e 100755 --- a/src/util.cpp +++ b/src/util.cpp @@ -425,6 +425,7 @@ CAboutDlg::CAboutDlg ( QWidget* parent ) : QDialog ( parent ) "" "

Jos van den Oever (vandenoever)

" "

Tormod Volden (tormodvolden)

" + "

Alberstein8 (Alberstein8)

" "

Gauthier Fleutot Östervall (fleutot)

" "

Stanislas Michalak (stanislas-m)

" "

JP Cimalando (jpcima)

" From 1e80a8659b09b118ab7160f5376d3f51fa824644 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 13 Jun 2020 17:43:41 +0200 Subject: [PATCH 166/936] update translation files --- src/res/translation/translation_de_DE.ts | 297 +++++++++++----------- src/res/translation/translation_es_ES.ts | 297 +++++++++++----------- src/res/translation/translation_fr_FR.qm | Bin 102210 -> 102064 bytes src/res/translation/translation_fr_FR.ts | 304 ++++++++++++----------- src/res/translation/translation_it_IT.qm | Bin 97906 -> 97784 bytes src/res/translation/translation_it_IT.ts | 302 +++++++++++----------- src/res/translation/translation_nl_NL.ts | 298 +++++++++++----------- src/res/translation/translation_pl_PL.ts | 298 +++++++++++----------- src/res/translation/translation_pt_PT.qm | Bin 98567 -> 98441 bytes src/res/translation/translation_pt_PT.ts | 304 ++++++++++++----------- 10 files changed, 1086 insertions(+), 1014 deletions(-) diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index da776a61d5..6dfdae60b8 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -28,17 +28,17 @@ verwendet die folgenden Bibliotheken, Ressourcen oder Codeschnipsel: - + Qt cross-platform application framework Qt plattformübergreifender Anwendungsrahmen - + Audio reverberation code by Perry R. Cook and Gary P. Scavone Halleffekt von Perry R. Cook und Gary P. Scavone - + Some pixmaps are from the Einige Bilder sind von @@ -47,82 +47,82 @@ Die Bilder der Länderflaggen sind von Mark James - + This app enables musicians to perform real-time jam sessions over the internet. Diese Software ermöglicht Musikern über das Internet in Echtzeit zu jammen. - + There is a server which collects the audio data from each client, mixes the audio data and sends the mix back to each client. Es gibt einen Server, der die Audiodaten von allen Musikern sammelt, zusammen mischt und wieder an alle verbundenen Musikern zurück schickt. - + This app uses the following libraries, resources or code snippets: Diese Applikation verwendet die folgenden Bibliotheken, Ressourcen oder Codeschnipsel: - + Country flag icons by Mark James 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 Holländisch - + Italian Italienisch - + German Deutsch - + About Über - + , Version - + Internet Jam Session Software - + Released under the GNU General Public License (GPL) Unter der GNU General Public License (GPL) @@ -190,17 +190,17 @@ CAudioMixerBoard - + Server - + T R Y I N G T O C O N N E C T V E R B I N D U N G S A U F B A U - + Personal Mix at the Server: Eigener Mix am Server: @@ -367,44 +367,44 @@ - + Alias/Name - + Instrument - + Location Standort - - - + + + Skill Level Spielstärke - + Beginner Anfänger - + Intermediate Mittlere Spielstärke - + Expert Experte - + Musician Profile Profil des Musikers @@ -1513,22 +1513,22 @@ Manuell - + Custom Benutzerdefiniert - + All Genres Alle Genres - + Genre Rock Genre Rock - + Genre Jazz Genre Jazz @@ -1537,12 +1537,12 @@ Genre Rock/Jazz - + Genre Classical/Folk/Choir Genre Klassik/Volksmusik/Chor - + Default Standard @@ -1926,28 +1926,28 @@ CHelpMenu - + &Help &Hilfe - - + + Getting &Started... &Erste Schritte... - + Software &Manual... Software&handbuch... - + What's &This Konte&xthilfe - + &About... Ü&ber... @@ -1955,102 +1955,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 Sie stimmen zu, dass alle Daten, Klänge oder andere Arbeiten, die zum Server gesendet werden, Ihnen gehören oder von Ihnen selbst oder einem Lizenzgeber erstellt wurden und dass Sie diese Daten, Klänge oder andere Arbeiten unter die folgende Creative Commons Lizenz stellen (Für weitere Informationen über die Lizenz, siehe - + You are free to: Sie dürfen: - + Share Teilen - + copy and redistribute the material in any medium or format das Material in jedwedem Format oder Medium vervielfältigen und weiterverbreiten - + Adapt Bearbeiten - + remix, transform, and build upon the material das Material remixen, verändern und darauf aufbauen - + The licensor cannot revoke these freedoms as long as you follow the license terms. Der Lizenzgeber kann diese Freiheiten nicht widerrufen solange Sie sich an die Lizenzbedingungen halten. - + Under the following terms: Unter folgenden Bedingungen: - + Attribution Namensnennung - + 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. Sie müssen angemessene Urheber- und Rechteangaben machen, einen Link zur Lizenz beifügen und angeben, ob Änderungen vorgenommen wurden. Diese Angaben dürfen in jeder angemessenen Art und Weise gemacht werden, allerdings nicht so, dass der Eindruck entsteht, der Lizenzgeber unterstütze gerade Sie oder Ihre Nutzung besonders. - + NonCommercial Nicht kommerziell - + You may not use the material for commercial purposes. Sie dürfen das Material nicht für kommerzielle Zwecke nutzen. - + ShareAlike Weitergabe unter gleichen Bedingungen - + If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. Wenn Sie das Material remixen, verändern oder anderweitig direkt darauf aufbauen, dürfen Sie Ihre Beiträge nur unter derselben Lizenz wie das Original verbreiten. - + No additional restrictions Keine weiteren Einschränkungen - + You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. Sie dürfen keine zusätzlichen Klauseln oder technische Verfahren einsetzen, die anderen rechtlich irgendetwas untersagen, was die Lizenz erlaubt. @@ -2062,85 +2062,85 @@ 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 @@ -2153,7 +2153,7 @@ Was man hier sieht wird auch am Fader im Mixer angezeigt, wenn du mit einem - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level 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. @@ -2162,217 +2162,217 @@ Was man hier sieht wird auch am Fader im Mixer angezeigt, wenn du mit einem Server verbunden bist. Dieses Schild wird auch bei allen anderen Musikern, die mit dem gleichen Server verbunden sind, angezeigt. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Was man hier sieht wird auch am Fader im Mixer angezeigt, wenn du mit einem Server verbunden bist. Dieses Schild wird auch bei allen anderen Musikern, die mit dem gleichen Server verbunden sind, angezeigt. - + 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 - + Vocal Bass Gesang Bass - + Vocal Tenor Gesang Tenor - + Vocal Alto Gesang Alt - + Vocal Soprano Gesang Sopran - + Banjo Banjo - + Mandolin Mandoline - + Ukulele - + Bass Ukulele @@ -2685,42 +2685,42 @@ &Fenster - + Unregistered Nicht registriert - + Bad address Ungültige Adresse - + Registration requested Registrierung angefordert - + Registration failed Registrierung fehlgeschlagen - + Check server version Überprüfe Version des Servers - + Registered Registriert - + Central Server full Zentralserver voll - + Unknown value Unbekannter Wert @@ -2734,7 +2734,7 @@ - + Name Name @@ -2759,13 +2759,18 @@ Veröffentliche meinen Server in der Serverliste - - + + Genre + + + + + STATUS - + Custom Central Server Address: Benutzerdefinierte Zentralserveradresse: @@ -2774,37 +2779,37 @@ Zentralserveradresse - + My Server Info Meine Serverinformationen - + Location: City Standort: Stadt - + Location: Country Standort: Land - + Enable jam recorder Aktivere die Aufnahme - + New recording Neue Aufnahme - + Recordings folder Verzeichnis für die Aufnahmen - + TextLabelNameVersion diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index 1c18d4ddf6..e8e494ad3d 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -32,17 +32,17 @@ utiliza las siguientes librerías, recursos o fragmentos de código: - + Qt cross-platform application framework Qt cross-platform application framework - + Audio reverberation code by Perry R. Cook and Gary P. Scavone Código de reverberación de audio de Perry R. Cook y Gary P. Scavone - + Some pixmaps are from the Algunos pixmaps son del @@ -51,82 +51,82 @@ Iconos de banderas nacionales de Mark James - + This app enables musicians to perform real-time jam sessions over the internet. Esta aplicación permite a músicos realizar jam sessions en tiempo real por internet. - + There is a server which collects the audio data from each client, mixes the audio data and sends the mix back to each client. Hay un servidor que recoge el audio de cada cliente, los mezcla y la envía la mezcla de vuelta a cada cliente. - + This app uses the following libraries, resources or code snippets: Esta aplicación utiliza las siguientes librerías, recursos o fragmentos de código: - + Country flag icons by Mark James 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 - + Italian Italiano - + German Alemán - + About Acerca de - + , Version , Versión - + Internet Jam Session Software Internet Jam Session Software - + Released under the GNU General Public License (GPL) Publicado bajo la GNU General Public License (GPL) @@ -194,17 +194,17 @@ CAudioMixerBoard - + Server Servidor - + T R Y I N G T O C O N N E C T I N T E N T A N D O C O N E C T A R - + Personal Mix at the Server: Mezcla Personal en el Servidor: @@ -371,44 +371,44 @@ - + Alias/Name Alias/Nombre - + Instrument Instrumento - + Location Ubicación - - - + + + Skill Level Nivel Habilidad - + Beginner Principiante - + Intermediate Intermedio - + Expert Experto - + Musician Profile Perfil Músico @@ -1521,12 +1521,12 @@ Manual - + Custom Personalizado - + All Genres Todos los Géneros @@ -1535,22 +1535,22 @@ Género Rock/Jazz - + Genre Classical/Folk/Choir Género Clásica/Folk/Coro - + Genre Rock Género Rock - + Genre Jazz Género Jazz - + Default Por defecto @@ -1942,28 +1942,28 @@ CHelpMenu - + &Help &Ayuda - - + + Getting &Started... Cómo &Empezar... - + Software &Manual... Manual del &Software... - + What's &This Qué es &Esto - + &About... &Acerca de... @@ -1971,102 +1971,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. @@ -2078,85 +2078,85 @@ 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 @@ -2169,7 +2169,7 @@ Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Escribe tu nombre o alias aquí para que otros 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. @@ -2178,217 +2178,217 @@ Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor. Esta etiqueta también se mostrará en cada cliente conectado al mismo servidor que tú. Si se deja el nombre vacío, se muestra la dirección IP en su lugar. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor Jamulus. Esta etiqueta también se mostrará en cada cliente conectado al mismo servidor que tú. - + 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 - + Vocal Bass Voz Bajo - + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Mandolina - + Ukulele Ukulele - + Bass Ukulele Ukulele Barítono @@ -2697,42 +2697,42 @@ &Ventana - + Unregistered Sin registrar - + Bad address Dirección no válida - + Registration requested Registro solicitado - + Registration failed Error de registro - + Check server version Comprueba la versión del servidor - + Registered Registrado - + Central Server full Servidor Central lleno - + Unknown value Valor desconocido @@ -2746,7 +2746,7 @@ - + Name Nombre @@ -2771,13 +2771,18 @@ Mi Servidor es Público (Registra Mi Servidor en la Lista de Servidores) - - + + Genre + + + + + STATUS ESTADO - + Custom Central Server Address: Dirección Personalizada Servidor Central: @@ -2786,37 +2791,37 @@ Dirección Servidor Central: - + My Server Info Info Mi Servidor - + Location: City Ubicación: Ciudad - + Location: Country Ubicación: País - + Enable jam recorder Habilitar grabación Jam - + New recording Nueva grabación - + Recordings folder Carpeta grabaciones - + TextLabelNameVersion TextLabelNameVersion diff --git a/src/res/translation/translation_fr_FR.qm b/src/res/translation/translation_fr_FR.qm index 6bd57449f25e3791c13d7ba06927fcdd8d8b6bce..922678b1da3c995291d271eb8093e33489820d51 100644 GIT binary patch delta 3937 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

XD>Dy2r`EcZ@J1O7;td%wy9Y?@^k z3tO;>?((4Y5Mp4T>>;ftJNK1+R;;4MuUsCPLA6Mp(T-Qg%0b3EZ|TBFdHj>dRFT2* z?6wS>ugdWyp8?0e)f5|V>h?x`9ssgn0@m5-DM=k3$n3wLJiPAQ{OGH zgf8r^_wJq!EPb!{siMHNN&3+#B)&c~^-)(Tu=M%*scQ&#ey5K;f0}HxSD*D0M=dy7 z|GgLws57q3jlS7T o2J0Q5Zy7j=RQy`svO6BEFE@*3qwm2ueV2aAWv}04FXk5f|D$h`vj6}9 delta 4022 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 T&&oLGY_TZW`FOH3>+Ab}1p=(D diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index 5e993b40bd..916a79294b 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -32,17 +32,17 @@ utilise les bibliothèques, ressources ou extraits de code suivants : - + Qt cross-platform application framework Cadriciel d'application multiplateforme Qt - + Audio reverberation code by Perry R. Cook and Gary P. Scavone Code de réverbération audio par Perry R. Cook et Gary P. Scavone - + Some pixmaps are from the Certaines images sont issues de @@ -51,82 +51,82 @@ Icônes de drapeaux de pays par Mark James - + This app enables musicians to perform real-time jam sessions over the internet. Cette app permet aux musiciens de faire des bÅ“ufs en temps réel sur internet. - + There is a server which collects the audio data from each client, mixes the audio data and sends the mix back to each client. Il y a un serveur qui collecte les données audio de chaque client, les mixe, et renvoie le mixage à chaque client. - + This app uses the following libraries, resources or code snippets: Cette app utilise les bibliothèques, ressources ou extraits de code suivants : - + Country flag icons by Mark James 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 - + Italian Italien - + German Allemand - + About À propos - + , Version , version - + Internet Jam Session Software Logiciels de bÅ“uf sur Internet - + Released under the GNU General Public License (GPL) Publié sous la licence publique générale GNU (GPL) @@ -212,7 +212,7 @@ T E N T A T I V E D E C O N N E X I O N - + Personal Mix at the Server: Mixage personnel du serveur : @@ -723,7 +723,7 @@ - + C&onnect Se c&onnecter @@ -768,28 +768,27 @@ Édit&er - &Sort Channel Users by Name - &Trier les utilisateurs du canal par nom + &Trier les utilisateurs du canal par nom - + None Aucun - + Center Centre - + R D - + L G @@ -864,22 +863,32 @@ Le processeur du client ou du serveur est à 100%. - + + Sort Channel Users by &Name + + + + + Sort Channel Users by &Instrument + + + + Central Server Serveur central - + user utilisateur - + users utilisateurs - + D&isconnect Dé&connecter @@ -1516,12 +1525,12 @@ Manuel - + Custom Personnalisé - + All Genres Tous les genres @@ -1530,22 +1539,22 @@ Genre rock/jazz - + Genre Classical/Folk/Choir Genre classique/folk/choeur - + Genre Rock Genre Rock - + Genre Jazz Genre Jazz - + Default Défaut @@ -1929,28 +1938,28 @@ CHelpMenu - + &Help &Aide - - + + Getting &Started... Premier pa&s... - + Software &Manual... &Manuel du logiciel... - + What's &This Qu'est-ce que c'est ? - + &About... À &propos @@ -1958,102 +1967,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. @@ -2065,85 +2074,85 @@ . 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 Dialogue d'édition de pseudo ou de nom - + Instrument picture button Bouton d'image d'instrument - + Country flag button Bouton de drapeau de pays - + City edit box Dialogue d'édition de ville - + Skill level combo box Choix déroulant de niveau de compétence - - - + + + 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 @@ -2156,222 +2165,222 @@ Ce que vous réglez ici apparaîtra au niveau de votre fader sur la table de mixage lorsque vous serez connecté à un serveur - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Écrivez votre nom ou un pseudonyme ici pour que les autres musiciens avec lesquels vous voulez jouer sachent qui vous êtes. Vous pouvez également ajouter une photo de l'instrument dont vous jouez et un drapeau du pays dans lequel vous vous trouvez. Vous pouvez également ajouter votre ville et votre niveau de compétence pour jouer de votre instrument. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Ce que vous réglez ici apparaîtra au niveau de votre chariot sur la table de mixage lorsque vous serez connecté à un serveur Jamulus. Cette étiquette sera également affichée dans chaque client qui est connecté au même serveur que vous. - + 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 - + Vocal Bass Voix basse - + Vocal Tenor Voix ténor - + Vocal Alto Voix alto - + Vocal Soprano Voix soprano - + Banjo Banjo - + Mandolin Mandoline - + Ukulele Ukulélé - + Bass Ukulele Ukulélé basse @@ -2680,42 +2689,42 @@ &Fenêtre - + Unregistered Non inscrit - + Bad address Mauvaise adresse - + Registration requested Inscription demandée - + Registration failed Échec de l'inscription - + Check server version Vérifier la version du serveur - + Registered Inscrit - + Central Server full Serveur central rempli - + Unknown value Valeur inconnue @@ -2729,7 +2738,7 @@ - + Name Nom @@ -2754,13 +2763,18 @@ Rendre mon serveur public (inscrire mon serveur dans la liste des serveurs) - - + + Genre + + + + + STATUS ÉTAT - + Custom Central Server Address: Adresse personnalisée du serveur central : @@ -2769,37 +2783,37 @@ Adresse du serveur central : - + My Server Info Informations de mon serveur - + Location: City Emplacement : ville - + Location: Country Emplacement : pays - + Enable jam recorder Activer l'enregistreur de bÅ“uf - + New recording Nouvel enregistrement - + Recordings folder Dossier des enregistrements - + TextLabelNameVersion diff --git a/src/res/translation/translation_it_IT.qm b/src/res/translation/translation_it_IT.qm index b05d00aa8bce9df3e27a64ebf1d77ee495b6ee8e..fad3e633e9b0a61294ffc6a4d9ec0131c35a5a5b 100644 GIT binary patch delta 4044 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 diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index 8bcdba053e..1fcc8ed6d1 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -28,17 +28,17 @@ usa le seguenti librerie, risorse o parti di codice: - + Qt cross-platform application framework - + Audio reverberation code by Perry R. Cook and Gary P. Scavone Audio reverberation sviluppato da Perry R. Cook and Gary P. Scavone - + Some pixmaps are from the Alcune pixmaps provengono da @@ -47,82 +47,82 @@ Icone delle bandiere a cura di Mark James - + This app enables musicians to perform real-time jam sessions over the internet. Dà la possibilità ai musicisti di realizzare sessioni live attraverso internet. - + There is a server which collects the audio data from each client, mixes the audio data and sends the mix back to each client. Il server acquisisce i dati audio di ogni client, mixa i dati audio e li rimanda ad ogni client connesso. - + This app uses the following libraries, resources or code snippets: Questa applicazione usa le seguenti librerie, risorse e parti di codice: - + Country flag icons by Mark James Le icone delle bandiere sono state realizzate da Marl James - + For details on the contributions check out the Per maggiori informazioni su chi ha contribuito, visitare - + Github Contributors list Lista dei collaboratori su Github - + Spanish Spagnolo - + French Francese - + Portuguese Portoghese - + Dutch Olandese - + Italian Italiano - + German Tedesco - + About Informazioni su - + , Version , Versione - + Internet Jam Session Software - + Released under the GNU General Public License (GPL) Rilasciato sotto licensa GNU General Public License (GPL) @@ -200,7 +200,7 @@ I N A T T E S A D I C O N N E S S I O N E - + Personal Mix at the Server: Mixer personale sul Server: @@ -560,7 +560,7 @@ - + L L @@ -783,7 +783,7 @@ - + C&onnect C&onnetti @@ -829,41 +829,50 @@ + Sort Channel Users by &Name + + + + + Sort Channel Users by &Instrument + + + &Sort Channel Users by Name - &Canali in ordine Alfabetico + &Canali in ordine Alfabetico - + None Nullo - + Center Centro - + R R - + Central Server Server Centrale - + user utente - + users utenti - + D&isconnect D&isconnetti @@ -1528,32 +1537,32 @@ Ok - + Custom Personalizzato - + All Genres Tutti i Generi - + Genre Rock Genere Rock - + Genre Jazz Genere Jazz - + Genre Classical/Folk/Choir Genere Classica/Folk/Corale - + Default Default @@ -1893,28 +1902,28 @@ CHelpMenu - + &Help &Aiuto - - + + Getting &Started... &Introduzione... - + Software &Manual... &Manuale Software... - + What's &This &Cos'è Questo - + &About... I&nformazioni su... @@ -1922,102 +1931,102 @@ CLicenceDlg - + I &agree to the above licence terms &Accetto i termini di licenza - + Accept Accetto - + Decline Declino - + By connecting to this server and agreeing to this notice, you agree to the following: Collegandosi a questo server e accettando questo avviso, si accetta quanto segue: - + 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 Dichiari che tutti i dati, audio o altre opere trasmessi a questo server sono di tua proprietà e creati da te o dai tuoi licenziatari e che rendi questi dati, audio o altre opere disponibili a terzi mediante la seguente Licenza Creative Commons (per ulteriori informazioni su questa licenza, vedere - + You are free to: Sei libero di: - + Share Condividere - + copy and redistribute the material in any medium or format copiare e ridistribuire il materiale in qualsiasi supporto o formato - + Adapt Adattare - + remix, transform, and build upon the material remixare, trasformare e modificare il materiale - + The licensor cannot revoke these freedoms as long as you follow the license terms. Il licenziante non può revocare queste libertà fintanto che segui i termini della licenza. - + Under the following terms: Sotto i seguenti requisiti: - + Attribution Attribuzione - + 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. È necessario accreditare in modo appropriato, fornire un collegamento alla licenza e indicare se sono state apportate modifiche. Puoi farlo in modo ragionevole, ma non in modo tale da suggerire a te o al tuo utilizzo il supporto del licenziante. - + NonCommercial Non Commerciale - + You may not use the material for commercial purposes. Non è possibile utilizzare il materiale a fini commerciali. - + ShareAlike Condividere allo stesso modo - + If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. Se remixate, trasformate o sviluppate il materiale, dovete distribuire i vostri contributi con la stessa licenza dell'originale. - + No additional restrictions Nessuna restrizione aggiuntiva - + You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. Non è possibile applicare termini legali o misure tecnologiche che impediscono legalmente ad altre persone di fare qualsiasi cosa consentita dalla licenza. @@ -2025,60 +2034,60 @@ CMusProfDlg - - + + Musician Profile Profilo del Musicista - + Alias/Name Nome/Alias - + Instrument Strumento - + Country Paese - + City Città - + Skill Livello - + &Close &Chiudi - - - + + + None None - + Beginner Principiante - + Intermediate Intermedio - + Expert Esperto @@ -2095,247 +2104,247 @@ questo tag verrà mostrato anche a ciascun client connesso allo stesso server. Se viene lasciato vuoto, verrà visualizzato l'indirizzo IP. - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Scrivi qui il tuo nome o un alias in modo che gli altri musicisti con cui vuoi suonare sappiano chi sei. Puoi anche aggiungere una foto dello strumento che suoni e una bandiera del paese in cui ti trovi. Puoi anche aggiungere la tua città e il tuo livello di abilità nel suonare il tuo strumento. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Ciò che hai impostato apparirà sul tuo fader sulla scheda del mixer quando sei collegato a un server Jamulus. Questo tag verrà mostrato anche su ogni client collegato allo stesso server. - + Alias or name edit box Box di modifica Nome o Alias - + Instrument picture button Immagine dello strumento - + Country flag button Pulsante bandiera del paese - + City edit box Box di modifica Città - + Skill level combo box Livello di Abilità - + Drum Set Batteria - + Djembe Djembe - + Electric Guitar Chitarra elettrica - + Acoustic Guitar Chitarra Acustica - + Bass Guitar Basso Elettrico - + Keyboard Tastiera - + Synthesizer Sintetizzatore - + Grand Piano Grand Piano - + Accordion Fisarmonica - + Vocal Voce - + Microphone Microfono - + Harmonica Armonica - + Trumpet Tromba - + Trombone Trombone - + French Horn Corno Francese - + Tuba Tuba - + Saxophone Sassofono - + Clarinet Clarinet - + Flute Flauto - + Violin Violino - + Cello Cello - + Double Bass Contrabbasso - + Recorder Recorder - + Streamer Streamer - + Listener Ascoltatore - + Guitar+Vocal Chitarra+Voce - + Keyboard+Vocal Tastiera+Voce - + Bodhran Bodhran - + Bassoon Fagotto - + Oboe Oboe - + Harp Arpa - + Viola Viola - + Congas Congas - + Bongo Bongo - + Vocal Bass Voce Basso - + Vocal Tenor Voce Tenore - + Vocal Alto Voce Alto - + Vocal Soprano Voce Soprano - + Banjo Banjo - + Mandolin Mandolino - + Ukulele Uculele - + Bass Ukulele Uculele Basso @@ -2632,42 +2641,42 @@ Non Abilitata - + Unregistered Non registrato - + Bad address Indirizzo Errato - + Registration requested Registrazione richiesta - + Registration failed Registrazione fallita - + Check server version Controlla Versione server - + Registered Registrato - + Central Server full Server Centrale Pieno - + Unknown value Valore sconosciuto @@ -2681,7 +2690,7 @@ - + Name Nome @@ -2706,13 +2715,18 @@ Rendi il server Pubblico (Regista il server nella lista dei server pubblici) - - + + Genre + + + + + STATUS STATO - + Custom Central Server Address: Indirizzo server centrale alternativo: @@ -2721,37 +2735,37 @@ Indirizzo Server Centrale: - + My Server Info Informazioni sul Server - + Location: City Ubicazione: Città - + Location: Country Ubicazione: Paese - + Enable jam recorder Abilita Registrazione Jam - + New recording Nuova Registrazione - + Recordings folder Cartella di Registrazione - + TextLabelNameVersion TextLabelNameVersion diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index 254f8a7b56..7b289a7fe5 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -28,17 +28,17 @@ gebruikt de volgende libraries, bronnen of code snippets: - + Qt cross-platform application framework Qt cross-platform applicatieframework - + Audio reverberation code by Perry R. Cook and Gary P. Scavone Audio reverberatiecode door Perry R. Cook en Gary P. Scavone - + Some pixmaps are from the Sommige pixmaps zijn van de @@ -47,82 +47,82 @@ Landvlag-iconen van Mark James - + This app enables musicians to perform real-time jam sessions over the internet. - + There is a server which collects the audio data from each client, mixes the audio data and sends the mix back to each client. - + This app uses the following libraries, resources or code snippets: - + Country flag icons by 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 - + Italian - + German Duits - + About Over - + , Version , Versie - + Internet Jam Session Software Internet Jamsessie Software - + Released under the GNU General Public License (GPL) @@ -200,7 +200,7 @@ A A N H E T V E R B I N D E N - + Personal Mix at the Server: @@ -552,7 +552,7 @@ - + L L @@ -775,7 +775,7 @@ - + C&onnect C&onnect @@ -821,41 +821,46 @@ - &Sort Channel Users by Name + Sort Channel Users by &Name + + + + + Sort Channel Users by &Instrument - + None Geen - + Center Centrum - + R R - + Central Server - + user gebruiker - + users gebruikers - + D&isconnect &Afmelden @@ -1480,32 +1485,32 @@ Handmatig - + Custom - + All Genres - + Genre Rock - + Genre Jazz - + Genre Classical/Folk/Choir - + Default Standaard @@ -1885,28 +1890,28 @@ CHelpMenu - + &Help &Hulp - - + + Getting &Started... Aan de slag... - + Software &Manual... Softwarehandleiding... - + What's &This Wat Is Dit - + &About... &Over... @@ -1914,102 +1919,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. @@ -2017,60 +2022,60 @@ 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 @@ -2087,247 +2092,247 @@ 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. - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. - + 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 - + Vocal Bass - + Vocal Tenor - + Vocal Alto - + Vocal Soprano - + Banjo Banjo - + Mandolin Mandoline - + Ukulele - + Bass Ukulele @@ -2636,42 +2641,42 @@ &Window - + Unregistered Niet geregistreerd - + Bad address Slecht adres - + Registration requested Aanmelding gevraagd - + Registration failed Registratie is mislukt - + Check server version Controleer de versie van de server - + Registered Geregistreerd - + Central Server full Centrale server vol - + Unknown value Onbekende waarde @@ -2685,7 +2690,7 @@ - + Name Naam @@ -2710,13 +2715,18 @@ Maak mijn server openbaar (Registreer mijn server in de lijst met servers) - - + + Genre + + + + + STATUS STATUS - + Custom Central Server Address: @@ -2725,37 +2735,37 @@ Adres Centrale Server: - + My Server Info Mijn serverinfo - + Location: City Locatie: Stad - + Location: Country Locatie: Land - + Enable jam recorder - + New recording - + Recordings folder - + TextLabelNameVersion TextLabelNameVersion diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index 80c1f4cff8..d408dab75b 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -4,97 +4,97 @@ CAboutDlg - + Qt cross-platform application framework - + Audio reverberation code by Perry R. Cook and Gary P. Scavone - + Some pixmaps are from the - + This app enables musicians to perform real-time jam sessions over the internet. - + There is a server which collects the audio data from each client, mixes the audio data and sends the mix back to each client. - + This app uses the following libraries, resources or code snippets: - + Country flag icons by Mark James - + For details on the contributions check out the - + Github Contributors list - + Spanish - + French - + Portuguese - + Dutch - + Italian - + German - + About - + , Version - + Internet Jam Session Software - + Released under the GNU General Public License (GPL) @@ -168,7 +168,7 @@ - + Personal Mix at the Server: @@ -464,7 +464,7 @@ - + L @@ -635,7 +635,7 @@ - + C&onnect @@ -681,41 +681,46 @@ - &Sort Channel Users by Name + Sort Channel Users by &Name + + + + + Sort Channel Users by &Instrument - + None - + Center - + R - + Central Server - + user - + users - + D&isconnect @@ -1220,32 +1225,32 @@ - + Custom - + All Genres - + Genre Rock - + Genre Jazz - + Genre Classical/Folk/Choir - + Default @@ -1593,28 +1598,28 @@ CHelpMenu - + &Help &Pomoc - - + + Getting &Started... - + Software &Manual... - + What's &This - + &About... @@ -1622,102 +1627,102 @@ CLicenceDlg - + I &agree to the above licence terms - + Accept - + Decline - + By connecting to this server and agreeing to this notice, you agree to the following: - + 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. @@ -1725,305 +1730,305 @@ CMusProfDlg - - + + Musician Profile - + Alias/Name - + Instrument - + Country Kraj - + City - + Skill - + &Close - - - + + + None - + Beginner - + Intermediate - + Expert - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. - + Alias or name edit box - + Instrument picture button - + Country flag button - + City edit box - + Skill level combo box - + Drum Set - + Djembe - + Electric Guitar - + Acoustic Guitar - + Bass Guitar - + Keyboard - + Synthesizer - + Grand Piano - + Accordion - + Vocal - + Microphone - + Harmonica - + Trumpet - + Trombone - + French Horn - + Tuba - + Saxophone - + Clarinet - + Flute - + Violin - + Cello - + Double Bass - + Recorder - + Streamer - + Listener - + Guitar+Vocal - + Keyboard+Vocal - + Bodhran - + Bassoon - + Oboe - + Harp - + Viola - + Congas - + Bongo - + Vocal Bass - + Vocal Tenor - + Vocal Alto - + Vocal Soprano - + Banjo - + Mandolin - + Ukulele - + Bass Ukulele @@ -2284,42 +2289,42 @@ - + Unregistered - + Bad address - + Registration requested - + Registration failed - + Check server version - + Registered - + Central Server full - + Unknown value @@ -2333,7 +2338,7 @@ - + Name @@ -2358,48 +2363,53 @@ - - + + Genre + + + + + STATUS - + Custom Central Server Address: - + My Server Info - + Location: City - + Location: Country - + Enable jam recorder - + New recording - + Recordings folder - + TextLabelNameVersion diff --git a/src/res/translation/translation_pt_PT.qm b/src/res/translation/translation_pt_PT.qm index 52dbe3fcfb2ede979d06d103c2c28cdccf7471cd..da5729efa190f6048e9a87fad3a50037f467e7ba 100644 GIT binary patch delta 3960 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 delta 4063 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 diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index f834f2465b..fda43a8f16 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -32,17 +32,17 @@ utiliza as seguintes bibliotecas, recursos ou partes de código: - + 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 @@ -51,82 +51,82 @@ Ãcones de bandeira do país de Mark James - + This app enables musicians to perform real-time jam sessions over the internet. Esta aplicação permite aos músicos realizar jam sessions em tempo real pela Internet. - + There is a server which collects the audio data from each client, mixes the audio data and sends the mix back to each client. Existe um servidor que reúne os dados de áudio de cada cliente, mistura os dados de áudio e envia a mistura de volta para cada cliente. - + This app uses the following libraries, resources or code snippets: Esta aplicação utiliza as seguintes bibliotecas, recursos ou partes de código: - + Country flag icons by Mark James Ãcones das bandeiras dos países por 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 - + Italian Italiano - + German Alemão - + About Sobre o - + , Version , Versão - + Internet Jam Session Software Programa de Jam Sessions pela Internet - + Released under the GNU General Public License (GPL) Lançado sob a Licença Pública Geral GNU (GPL) @@ -212,7 +212,7 @@ T E N T A N D O L I G A R - + Personal Mix at the Server: Mistura Pessoal no Servidor: @@ -719,7 +719,7 @@ - + C&onnect &Ligar @@ -764,28 +764,27 @@ &Editar - &Sort Channel Users by Name - Ordenar os Canais por &Nome... + Ordenar os Canais por &Nome... - + None Nenhum - + Center Centro - + R R - + L L @@ -860,22 +859,32 @@ O CPU do cliente ou servidor está a 100%. - + + Sort Channel Users by &Name + + + + + Sort Channel Users by &Instrument + + + + Central Server Servidor Central - + user utilizador - + users utilizadores - + D&isconnect Desl&igar @@ -1504,22 +1513,22 @@ Manual - + Custom Personalizado - + All Genres Servidor Geral - + Genre Rock Servidor Rock - + Genre Jazz Servidor Jazz @@ -1528,12 +1537,12 @@ Servidor Rock/Jazz - + Genre Classical/Folk/Choir Serv. Clássica/Folclore/Coro - + Default Servidor Padrão @@ -1913,28 +1922,28 @@ CHelpMenu - + &Help &Ajuda - - + + Getting &Started... Como Começa&r... - + Software &Manual... &Manual do Programa... - + What's &This O que é &isto - + &About... &Sobre... @@ -1942,102 +1951,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. @@ -2049,85 +2058,85 @@ . 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 @@ -2140,222 +2149,222 @@ O que definir aqui aparecerá por baixo do seu fader na secção de mistura quando estiver ligado a um servidor - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Escreva 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 também definir uma imagem do instrumento que toca e uma bandeira do país onde vive. A cidade onde 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 Jamulus server. This tag will also be shown at each client which is connected to the same server as you. O que definir aqui aparecerá por baixo do seu fader na secção de mistura quando estiver ligado a um servidor Esta etiqueta também será exibida em cada cliente que estiver ligado ao mesmo 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 - + Vocal Bass Voz Baixo - + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Bandolim - + Ukulele Ukulele - + Bass Ukulele Ukulele Baixo @@ -2664,42 +2673,42 @@ &Janela - + Unregistered Não Registado - + Bad address Endereço incorrecto - + Registration requested Registo solicitado - + Registration failed Falha no registo - + Check server version Verifique versão do servidor - + Registered Registado - + Central Server full Servidor Central Cheio - + Unknown value Valor desconhecido @@ -2713,7 +2722,7 @@ - + Name Nome do Servidor @@ -2738,13 +2747,18 @@ Tornar Servidor Público (Registar na Lista de Servidores) - - + + Genre + + + + + STATUS ESTADO - + Custom Central Server Address: Endereço do Servidor Central Personalizado: @@ -2753,37 +2767,37 @@ Endereço do Servidor Central: - + My Server Info Informação do Servidor - + Location: City Localização: Cidade - + Location: Country Localização: País - + Enable jam recorder Activar gravação - + New recording Nova gravação - + Recordings folder Pasta de gravações - + TextLabelNameVersion TextLabelNameVersion From 2285148cb875a3bc940be67a2a06e7e2de7766b2 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 13 Jun 2020 18:15:52 +0200 Subject: [PATCH 167/936] Reference HTML file for welcome message #361 --- src/server.cpp | 18 +++++++++++++++++- src/server.h | 1 + 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/server.cpp b/src/server.cpp index 1df29a5534..31e9ef6b7f 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -250,7 +250,6 @@ CServer::CServer ( const int iNewMaxNumChan, bNCentServPingServerInList, &ConnLessProtocol ), bAutoRunMinimized ( false ), - strWelcomeMessage ( strNewWelcomeMessage ), eLicenceType ( eNLicenceType ), bDisconnectAllClientsOnQuit ( bNDisconnectAllClientsOnQuit ), pSignalHandler ( CSignalHandler::getSingletonP() ) @@ -402,6 +401,23 @@ CServer::CServer ( const int iNewMaxNumChan, QString().number( static_cast ( iPortNumber ) ) ); } + // manage welcome message: if the welcome message is a valid link to a local + // file, the content of that file is used as the welcome message (#361) + strWelcomeMessage = strNewWelcomeMessage; // first copy text, may be overwritten + if ( QFileInfo ( strNewWelcomeMessage ).exists() ) + { + QFile file ( strNewWelcomeMessage ); + + if ( file.open ( QIODevice::ReadOnly | QIODevice::Text ) ) + { + // use entrie file content for the welcome message + strWelcomeMessage = file.readAll(); + } + } + + // restrict welcome message to maximum allowed length + strWelcomeMessage = strWelcomeMessage.left ( MAX_LEN_CHAT_TEXT ); + // enable jam recording (if requested) - kicks off the thread if ( !strRecordingDirName.isEmpty() ) { diff --git a/src/server.h b/src/server.h index 833ef479da..db5dd24afb 100755 --- a/src/server.h +++ b/src/server.h @@ -28,6 +28,7 @@ #include #include #include +#include #include #ifdef USE_OPUS_SHARED_LIB # include "opus/opus_custom.h" From e883a51db9bc6870b9dbcbb2e0ab70d92cc337e2 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 14 Jun 2020 08:49:58 +0200 Subject: [PATCH 168/936] support for storing/recovering the server window positions (#357) --- ChangeLog | 1 + src/server.cpp | 1 + src/server.h | 3 +++ src/serverdlg.cpp | 17 +++++++++++++++++ src/serverdlg.h | 23 ++++++++++++----------- src/settings.cpp | 8 ++++++++ 6 files changed, 42 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1baa93cb9b..603224b361 100644 --- a/ChangeLog +++ b/ChangeLog @@ -9,6 +9,7 @@ - support sorting faders by channel instrument, coded by Alberstein8 (#356) +- support for storing/recovering the server window positions (#357) diff --git a/src/server.cpp b/src/server.cpp index 31e9ef6b7f..f9266e0bc8 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -234,6 +234,7 @@ CServer::CServer ( const int iNewMaxNumChan, const bool bNDisconnectAllClientsOnQuit, const bool bNUseDoubleSystemFrameSize, const ELicenceType eNLicenceType ) : + vecWindowPosMain (), // empty array bUseDoubleSystemFrameSize ( bNUseDoubleSystemFrameSize ), iMaxNumChannels ( iNewMaxNumChan ), Socket ( this, iPortNumber ), diff --git a/src/server.h b/src/server.h index db5dd24afb..113c4e6947 100755 --- a/src/server.h +++ b/src/server.h @@ -251,6 +251,9 @@ class CServer : void SetLicenceType ( const ELicenceType NLiType ) { eLicenceType = NLiType; } ELicenceType GetLicenceType() { return eLicenceType; } + // window position/state settings + QByteArray vecWindowPosMain; + protected: // access functions for actual channels bool IsConnected ( const int iChanNum ) diff --git a/src/serverdlg.cpp b/src/serverdlg.cpp index e8f8c41726..ab43358c61 100755 --- a/src/serverdlg.cpp +++ b/src/serverdlg.cpp @@ -332,6 +332,14 @@ lvwClients->setMinimumHeight ( 140 ); layout()->setMenuBar ( pMenu ); + // Window positions -------------------------------------------------------- + // main window + if ( !pServer->vecWindowPosMain.isEmpty() && !pServer->vecWindowPosMain.isNull() ) + { + restoreGeometry ( pServer->vecWindowPosMain ); + } + + // Connections ------------------------------------------------------------- // check boxes QObject::connect ( chbRegisterServer, &QCheckBox::stateChanged, @@ -399,6 +407,15 @@ lvwClients->setMinimumHeight ( 140 ); Timer.start ( GUI_CONTRL_UPDATE_TIME ); } +void CServerDlg::closeEvent ( QCloseEvent* Event ) +{ + // store window positions + pServer->vecWindowPosMain = saveGeometry(); + + // default implementation of this event handler routine + Event->accept(); +} + void CServerDlg::OnStartOnOSStartStateChanged ( int value ) { const bool bCurAutoStartMinState = ( value == Qt::Checked ); diff --git a/src/serverdlg.h b/src/serverdlg.h index 80fe109a9d..e2ddd33628 100755 --- a/src/serverdlg.h +++ b/src/serverdlg.h @@ -58,6 +58,7 @@ class CServerDlg : public QDialog, private Ui_CServerDlgBase protected: virtual void changeEvent ( QEvent* pEvent ); + virtual void closeEvent ( QCloseEvent* Event ); void UpdateGUIDependencies(); void UpdateSystemTrayIcon ( const bool bIsActive ); @@ -65,20 +66,20 @@ class CServerDlg : public QDialog, private Ui_CServerDlgBase void ModifyAutoStartEntry ( const bool bDoAutoStart ); void UpdateRecorderStatus( QString sessionDir ); - QTimer Timer; - CServer* pServer; - CSettings* pSettings; + QTimer Timer; + CServer* pServer; + CSettings* pSettings; - CVector vecpListViewItems; - QMutex ListViewMutex; + CVector vecpListViewItems; + QMutex ListViewMutex; - QMenuBar* pMenu; + QMenuBar* pMenu; - bool bSystemTrayIconAvaialbe; - QSystemTrayIcon SystemTrayIcon; - QPixmap BitmapSystemTrayInactive; - QPixmap BitmapSystemTrayActive; - QMenu* pSystemTrayIconMenu; + bool bSystemTrayIconAvaialbe; + QSystemTrayIcon SystemTrayIcon; + QPixmap BitmapSystemTrayInactive; + QPixmap BitmapSystemTrayActive; + QMenu* pSystemTrayIconMenu; public slots: void OnAboutToQuit() { pSettings->Save(); } diff --git a/src/settings.cpp b/src/settings.cpp index 5fba0ea9be..0920d18b07 100755 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -427,6 +427,10 @@ if ( GetFlagIniSet ( IniXMLDocument, "server", "defcentservaddr", bValue ) ) { pServer->SetLicenceType ( static_cast ( iValue ) ); } + + // window position of the main window + pServer->vecWindowPosMain = FromBase64ToByteArray ( + GetIniSetting ( IniXMLDocument, "server", "winposmain_base64" ) ); } } @@ -666,6 +670,10 @@ void CSettings::Save() // licence type SetNumericIniSet ( IniXMLDocument, "server", "licencetype", static_cast ( pServer->GetLicenceType() ) ); + + // window position of the main window + PutIniSetting ( IniXMLDocument, "server", "winposmain_base64", + ToBase64 ( pServer->vecWindowPosMain ) ); } // prepare file name for storing initialization data in XML file and store From 0f12b32766786218c5e964c7a0cddf5b1565f820 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 14 Jun 2020 11:36:28 +0200 Subject: [PATCH 169/936] update --- ChangeLog | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ChangeLog b/ChangeLog index 603224b361..2c543c83df 100644 --- a/ChangeLog +++ b/ChangeLog @@ -11,6 +11,8 @@ - support for storing/recovering the server window positions (#357) +TODO Mac audio interface -> crackling +TODO try to reproduce: Quitting client when server window minimized not handled cleanly #355 From ac140ff8a256e88532aa634a6f708f52a9750d1d Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 14 Jun 2020 19:17:50 +0200 Subject: [PATCH 170/936] use actual instrument name for sorting by instrument --- src/audiomixerboard.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 88b198f3ec..021b6e2270 100644 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -788,10 +788,7 @@ void CAudioMixerBoard::ChangeFaderOrder ( const bool bDoSort, } else // ST_BY_INSTRUMENT { - // note that the sorting will not be the same as we would use QPair - // but this is not a problem since the order of the instrument IDs are arbitrary - // anyway - PairList << QPair ( QString::number ( vecpChanFader[i]->GetReceivedInstrument() ), i ); + PairList << QPair ( CInstPictures::GetName ( vecpChanFader[i]->GetReceivedInstrument() ), i ); } } From c7080afd0f236c7e3af146cae1cb6bb649003f5d Mon Sep 17 00:00:00 2001 From: Peter L Jones Date: Sun, 14 Jun 2020 18:17:12 +0100 Subject: [PATCH 171/936] Define protocol message for server jam recorder state publishing --- src/protocol.cpp | 46 ++++++++++++++++++++++++++++++++++++++++++++++ src/protocol.h | 4 ++++ src/util.h | 8 ++++++++ 3 files changed, 58 insertions(+) mode change 100644 => 100755 src/protocol.h diff --git a/src/protocol.cpp b/src/protocol.cpp index 32b4de4feb..c781090273 100755 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -216,6 +216,17 @@ MESSAGES (with connection) note: does not have any data -> n = 0 +- PROTMESSID_RECORDER_STATE: notifies of changes in the server jam recorder state + + +--------------+ + | 1 byte state | + +--------------+ + + state is a value from the enum ERecorderState: + - 0 undefined (not used by protocol messages) + - tbc + + CONNECTION LESS MESSAGES ------------------------ @@ -659,6 +670,10 @@ if ( rand() < ( RAND_MAX / 2 ) ) return false; case PROTMESSID_VERSION_AND_OS: bRet = EvaluateVersionAndOSMes ( vecbyMesBodyData ); break; + + case PROTMESSID_RECORDER_STATE: + bRet = EvaluateRecorderStateMes ( vecbyMesBodyData ); + break; } // immediately send acknowledge message @@ -1544,6 +1559,37 @@ bool CProtocol::EvaluateVersionAndOSMes ( const CVector& vecData ) return false; // no error } +void CProtocol::CreateRecorderStateMes ( const ERecorderState eRecorderState ) +{ + CVector vecData ( 1 ); // 1 byte of data + int iPos = 0; // init position pointer + + // build data vector + // recorder state + PutValOnStream ( vecData, iPos, static_cast ( eRecorderState ), 1 ); + + CreateAndSendMessage ( PROTMESSID_RECORDER_STATE, vecData ); +} + +bool CProtocol::EvaluateRecorderStateMes(const CVector& vecData) +{ + int iPos = 0; // init position pointer + + // check size + if ( vecData.Size() != 1 ) + { + return true; // return error code + } + + // server jam recorder state + const ERecorderState eRecorderState = static_cast ( GetValFromStream ( vecData, iPos, 1 ) ); + + // invoke message action + emit RecorderStateReceived ( eRecorderState ); + + return false; // no error +} + // Connection less messages ---------------------------------------------------- void CProtocol::CreateCLPingMes ( const CHostAddress& InetAddr, const int iMs ) diff --git a/src/protocol.h b/src/protocol.h old mode 100644 new mode 100755 index 0c154e1117..2c4a07607c --- a/src/protocol.h +++ b/src/protocol.h @@ -59,6 +59,7 @@ #define PROTMESSID_CHANNEL_PAN 30 // set channel pan for mix #define PROTMESSID_MUTE_STATE_CHANGED 31 // mute state of your signal at another client has changed #define PROTMESSID_CLIENT_ID 32 // current user ID and server status +#define PROTMESSID_RECORDER_STATE 33 // contains the state of the jam recorder (ERecorderState) // message IDs of connection less messages (CLM) // DEFINITION -> start at 1000, end at 1999, see IsConnectionLessMessageID @@ -114,6 +115,7 @@ class CProtocol : public QObject void CreateOpusSupportedMes(); void CreateReqChannelLevelListMes ( const bool bRCL ); void CreateVersionAndOSMes(); + void CreateRecorderStateMes ( const ERecorderState eRecorderState ); void CreateCLPingMes ( const CHostAddress& InetAddr, const int iMs ); void CreateCLPingWithNumClientsMes ( const CHostAddress& InetAddr, @@ -239,6 +241,7 @@ class CProtocol : public QObject bool EvaluateLicenceRequiredMes ( const CVector& vecData ); bool EvaluateReqChannelLevelListMes ( const CVector& vecData ); bool EvaluateVersionAndOSMes ( const CVector& vecData ); + bool EvaluateRecorderStateMes ( const CVector& vecData ); bool EvaluateCLPingMes ( const CHostAddress& InetAddr, const CVector& vecData ); @@ -302,6 +305,7 @@ public slots: void LicenceRequired ( ELicenceType eLicenceType ); void ReqChannelLevelList ( bool bOptIn ); void VersionAndOSReceived ( COSUtil::EOpSystemType eOSType, QString strVersion ); + void RecorderStateReceived ( ERecorderState eRecorderState ); void CLPingReceived ( CHostAddress InetAddr, int iMs ); diff --git a/src/util.h b/src/util.h index 6e24312b11..f317aa8e55 100755 --- a/src/util.h +++ b/src/util.h @@ -563,6 +563,14 @@ enum ELicenceType }; +// Server jam recorder state enum ---------------------------------------------- +enum ERecorderState +{ + RS_UNDEFINED = 0 + // ... to be defined ... +}; + + // Channel sort type ----------------------------------------------------------- enum EChSortType { From cf543eab7c4e27fe88c2dbbd865bbbbf3dc37868 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 14 Jun 2020 21:00:19 +0200 Subject: [PATCH 172/936] merge fixes --- src/protocol.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/protocol.cpp b/src/protocol.cpp index c781090273..3cc6dab687 100755 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -1565,7 +1565,7 @@ void CProtocol::CreateRecorderStateMes ( const ERecorderState eRecorderState ) int iPos = 0; // init position pointer // build data vector - // recorder state + // server jam recorder state (1 byte) PutValOnStream ( vecData, iPos, static_cast ( eRecorderState ), 1 ); CreateAndSendMessage ( PROTMESSID_RECORDER_STATE, vecData ); @@ -1581,11 +1581,17 @@ bool CProtocol::EvaluateRecorderStateMes(const CVector& vecData) return true; // return error code } - // server jam recorder state - const ERecorderState eRecorderState = static_cast ( GetValFromStream ( vecData, iPos, 1 ) ); + // server jam recorder state (1 byte) + const int iRecorderState = + static_cast ( GetValFromStream ( vecData, iPos, 1 ) ); + + if ( iRecorderState != RS_UNDEFINED ) // ... to be defined ... + { + return true; + } // invoke message action - emit RecorderStateReceived ( eRecorderState ); + emit RecorderStateReceived ( static_cast ( iRecorderState ) ); return false; // no error } From ed10faea6d523a8444c739ab0ad64b8c711ba9a5 Mon Sep 17 00:00:00 2001 From: Peter L Jones Date: Sun, 14 Jun 2020 19:16:43 +0100 Subject: [PATCH 173/936] Define and send recorder state --- src/channel.h | 3 +++ src/server.cpp | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/server.h | 4 ++++ src/util.h | 6 ++++-- 4 files changed, 62 insertions(+), 2 deletions(-) diff --git a/src/channel.h b/src/channel.h index b56f93eeaa..dd34736b10 100755 --- a/src/channel.h +++ b/src/channel.h @@ -168,6 +168,9 @@ class CChannel : public QObject void CreateConClientListMes ( const CVector& vecChanInfo ) { Protocol.CreateConClientListMes ( vecChanInfo ); } + void CreateRecorderStateMes ( const ERecorderState eRecorderState ) + { Protocol.CreateRecorderStateMes ( eRecorderState ); } + CNetworkTransportProps GetNetworkTransportPropsFromCurrentSettings(); bool ChannelLevelsRequired() const { return bChannelLevelsRequired; } diff --git a/src/server.cpp b/src/server.cpp index f9266e0bc8..33cffbd49b 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -610,6 +610,9 @@ void CServer::OnNewConnection ( int iChID, // send version info (for, e.g., feature activation in the client) vecChannels[iChID].CreateVersionAndOSMes(); + // send recording state message on connection + vecChannels[iChID].CreateRecorderStateMes ( GetRecorderState() ); + // reset the conversion buffers DoubleFrameSizeConvBufIn[iChID].Reset(); DoubleFrameSizeConvBufOut[iChID].Reset(); @@ -721,6 +724,9 @@ void CServer::RequestNewRecording() { emit RestartRecorder(); } + + // send recording state message - doesn't hurt + CreateAndSendRecorderStateForAllConChannels(); } void CServer::SetEnableRecording ( bool bNewEnableRecording ) @@ -747,6 +753,9 @@ void CServer::SetEnableRecording ( bool bNewEnableRecording ) emit StopRecorder(); } } + + // send recording state message + CreateAndSendRecorderStateForAllConChannels(); } void CServer::Start() @@ -759,6 +768,9 @@ void CServer::Start() // emit start signal emit Started(); + + // send recording state message + CreateAndSendRecorderStateForAllConChannels(); } } @@ -778,6 +790,9 @@ void CServer::Stop() // emit stopped signal emit Stopped(); + + // send recording state message - to no one + CreateAndSendRecorderStateForAllConChannels(); } } @@ -1330,6 +1345,42 @@ void CServer::CreateAndSendChatTextForAllConChannels ( const int iCurChanID } } +void CServer::CreateAndSendRecorderStateForAllConChannels() +{ + // get recorder state + ERecorderState eRecorderState = GetRecorderState(); + + // now send recorder state to all connected clients + for ( int i = 0; i < iMaxNumChannels; i++ ) + { + if ( vecChannels[i].IsConnected() ) + { + // send message + vecChannels[i].CreateRecorderStateMes ( eRecorderState ); + } + } +} + +ERecorderState CServer::GetRecorderState() +{ + // return recorder state + if ( bRecorderInitialised ) + { + if ( bEnableRecording ) + { + return RS_RECORDING; + } + else + { + return RS_NOT_ENABLED; + } + } + else + { + return RS_NOT_INITIALISED; + } +} + void CServer::CreateOtherMuteStateChanged ( const int iCurChanID, const int iOtherChanID, const bool bIsMuted ) diff --git a/src/server.h b/src/server.h index 113c4e6947..5add392ab5 100755 --- a/src/server.h +++ b/src/server.h @@ -273,6 +273,10 @@ class CServer : virtual void CreateAndSendChatTextForAllConChannels ( const int iCurChanID, const QString& strChatText ); + virtual void CreateAndSendRecorderStateForAllConChannels(); + + ERecorderState GetRecorderState(); + virtual void CreateOtherMuteStateChanged ( const int iCurChanID, const int iOtherChanID, const bool bIsMuted ); diff --git a/src/util.h b/src/util.h index f317aa8e55..56c3aa49c3 100755 --- a/src/util.h +++ b/src/util.h @@ -566,8 +566,10 @@ enum ELicenceType // Server jam recorder state enum ---------------------------------------------- enum ERecorderState { - RS_UNDEFINED = 0 - // ... to be defined ... + RS_UNDEFINED = 0, + RS_NOT_INITIALISED = 1, + RS_NOT_ENABLED = 2, + RS_RECORDING = 3 }; From fa0ff9faae590f33ec5ab20e9211772ded0f0d84 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 15 Jun 2020 17:29:17 +0200 Subject: [PATCH 174/936] merge fixes and some other stuff --- ChangeLog | 3 +-- mac/sound.cpp | 2 +- src/protocol.cpp | 5 ++++- src/server.cpp | 6 ------ 4 files changed, 6 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2c543c83df..63b92d3ea1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -11,8 +11,7 @@ - support for storing/recovering the server window positions (#357) -TODO Mac audio interface -> crackling -TODO try to reproduce: Quitting client when server window minimized not handled cleanly #355 + diff --git a/mac/sound.cpp b/mac/sound.cpp index e006d24759..2d69b0ae30 100755 --- a/mac/sound.cpp +++ b/mac/sound.cpp @@ -907,7 +907,7 @@ OSStatus CSound::deviceNotification ( AudioDeviceID, pSound->EmitReinitRequestSignal ( RS_RELOAD_RESTART_AND_INIT ); } -/* +/* NOTE that this code does not solve the crackling sound issue if ( inAddresses->mSelector == kAudioDeviceProcessorOverload ) { // xrun handling (it is important to act on xruns under CoreAudio diff --git a/src/protocol.cpp b/src/protocol.cpp index 3cc6dab687..838e71454c 100755 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -1585,7 +1585,10 @@ bool CProtocol::EvaluateRecorderStateMes(const CVector& vecData) const int iRecorderState = static_cast ( GetValFromStream ( vecData, iPos, 1 ) ); - if ( iRecorderState != RS_UNDEFINED ) // ... to be defined ... + if ( ( iRecorderState != RS_UNDEFINED ) && + ( iRecorderState != RS_NOT_INITIALISED ) && + ( iRecorderState != RS_NOT_ENABLED ) && + ( iRecorderState != RS_RECORDING ) ) { return true; } diff --git a/src/server.cpp b/src/server.cpp index 33cffbd49b..b14c8e82fa 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -768,9 +768,6 @@ void CServer::Start() // emit start signal emit Started(); - - // send recording state message - CreateAndSendRecorderStateForAllConChannels(); } } @@ -790,9 +787,6 @@ void CServer::Stop() // emit stopped signal emit Stopped(); - - // send recording state message - to no one - CreateAndSendRecorderStateForAllConChannels(); } } From 3f4125fe9dd3f71913138571f4a9563353c56671 Mon Sep 17 00:00:00 2001 From: Peter L Jones Date: Sun, 14 Jun 2020 22:02:13 +0100 Subject: [PATCH 175/936] Client side changes for recorder state --- src/audiomixerboard.cpp | 32 ++++++++++++++++++++++++++++++-- src/audiomixerboard.h | 5 +++++ src/channel.cpp | 3 +++ src/channel.h | 1 + src/client.cpp | 3 +++ src/client.h | 1 + src/clientdlg.cpp | 3 +++ src/clientdlg.h | 3 +++ src/server.cpp | 2 +- 9 files changed, 50 insertions(+), 3 deletions(-) mode change 100644 => 100755 src/audiomixerboard.cpp mode change 100644 => 100755 src/audiomixerboard.h diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp old mode 100644 new mode 100755 index 021b6e2270..581408c01d --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -619,7 +619,8 @@ CAudioMixerBoard::CAudioMixerBoard ( QWidget* parent, Qt::WindowFlags ) : bIsPanSupported ( false ), bNoFaderVisible ( true ), iMyChannelID ( INVALID_INDEX ), - strServerName ( "" ) + strServerName ( "" ), + eRecorderState ( RS_UNDEFINED ) { // add group box and hboxlayout QHBoxLayout* pGroupBoxLayout = new QHBoxLayout ( this ); @@ -627,6 +628,14 @@ CAudioMixerBoard::CAudioMixerBoard ( QWidget* parent, Qt::WindowFlags ) : pScrollArea = new CMixerBoardScrollArea ( this ); pMainLayout = new QHBoxLayout ( pMixerWidget ); + + setAccessibleName ( "Personal Mix at the Server groupbox" ); + setWhatsThis ( "" + tr( "Personal Mix at the Server" ) + ": " + + tr ( "When connected to a server, the controls here allow you to set " ) + + tr ( "your local mix without affecting what others hear from you.") + "
" + + tr ( "The title shows the server name and, when known, " + "whether it is actively recording." ) ); + // set title text (default: no server given) SetServerName ( "" ); @@ -807,13 +816,32 @@ void CAudioMixerBoard::ChangeFaderOrder ( const bool bDoSort, } } +QString CAudioMixerBoard::GetTitle() +{ + QString myTitle = ""; + if ( eRecorderState == RS_RECORDING ) + { + myTitle = "[" + tr ( "RECORDING ACTIVE" ) + "] "; + } + return myTitle + tr ( "Personal Mix at: " ) + strServerName; +} + +void CAudioMixerBoard::SetRecorderState ( const ERecorderState newRecorderState ) +{ + eRecorderState = newRecorderState; + if ( !strServerName.isEmpty() && !bNoFaderVisible ) + { + setTitle ( GetTitle() ); + } +} + void CAudioMixerBoard::ApplyNewConClientList ( CVector& vecChanInfo ) { // we want to set the server name only if the very first faders appear // in the audio mixer board to show a "try to connect" before if ( bNoFaderVisible ) { - setTitle ( tr ( "Personal Mix at the Server: " ) + strServerName ); + setTitle ( GetTitle() ); } // get number of connected clients diff --git a/src/audiomixerboard.h b/src/audiomixerboard.h old mode 100644 new mode 100755 index a3321a3457..9415453b90 --- a/src/audiomixerboard.h +++ b/src/audiomixerboard.h @@ -164,6 +164,8 @@ class CAudioMixerBoard : void SetChannelLevels ( const CVector& vecChannelLevel ); + void SetRecorderState ( const ERecorderState newRecorderState ); + // settings CVector vecStoredFaderTags; CVector vecStoredFaderLevels; @@ -188,6 +190,8 @@ class CAudioMixerBoard : } }; + QString GetTitle(); + bool GetStoredFaderSettings ( const CChannelInfo& ChanInfo, int& iStoredFaderLevel, int& iStoredPanValue, @@ -209,6 +213,7 @@ class CAudioMixerBoard : bool bNoFaderVisible; int iMyChannelID; QString strServerName; + ERecorderState eRecorderState; virtual void UpdateGainValue ( const int iChannelIdx, const double dValue, diff --git a/src/channel.cpp b/src/channel.cpp index f5c7419dd9..924f74d504 100755 --- a/src/channel.cpp +++ b/src/channel.cpp @@ -108,6 +108,9 @@ qRegisterMetaType ( "CHostAddress" ); QObject::connect ( &Protocol, &CProtocol::VersionAndOSReceived, this, &CChannel::VersionAndOSReceived ); + QObject::connect ( &Protocol, &CProtocol::RecorderStateReceived, + this, &CChannel::RecorderStateReceived ); + QObject::connect ( &Protocol, &CProtocol::ReqChannelLevelList, this, &CChannel::OnReqChannelLevelList ); } diff --git a/src/channel.h b/src/channel.h index dd34736b10..723d9ad4fb 100755 --- a/src/channel.h +++ b/src/channel.h @@ -290,6 +290,7 @@ public slots: void ReqNetTranspProps(); void LicenceRequired ( ELicenceType eLicenceType ); void VersionAndOSReceived ( COSUtil::EOpSystemType eOSType, QString strVersion ); + void RecorderStateReceived ( ERecorderState eRecorderState ); void Disconnected(); void DetectedCLMessage ( CVector vecbyMesBodyData, diff --git a/src/client.cpp b/src/client.cpp index 13b42cf286..35b8fea569 100755 --- a/src/client.cpp +++ b/src/client.cpp @@ -165,6 +165,9 @@ CClient::CClient ( const quint16 iPortNumber, QObject::connect ( &Channel, &CChannel::VersionAndOSReceived, this, &CClient::VersionAndOSReceived ); + QObject::connect ( &Channel, &CChannel::RecorderStateReceived, + this, &CClient::RecorderStateReceived ); + QObject::connect ( &ConnLessProtocol, &CProtocol::CLMessReadyForSending, this, &CClient::OnSendCLProtMessage ); diff --git a/src/client.h b/src/client.h index b8497bbf4b..0a5760685d 100755 --- a/src/client.h +++ b/src/client.h @@ -424,6 +424,7 @@ public slots: void LicenceRequired ( ELicenceType eLicenceType ); void VersionAndOSReceived ( COSUtil::EOpSystemType eOSType, QString strVersion ); void PingTimeReceived ( int iPingTime ); + void RecorderStateReceived ( ERecorderState eRecorderState ); void CLServerListReceived ( CHostAddress InetAddr, CVector vecServerInfo ); diff --git a/src/clientdlg.cpp b/src/clientdlg.cpp index 89c3d59a86..9c73e8e528 100755 --- a/src/clientdlg.cpp +++ b/src/clientdlg.cpp @@ -472,6 +472,9 @@ CClientDlg::CClientDlg ( CClient* pNCliP, QObject::connect ( pClient, &CClient::MuteStateHasChangedReceived, this, &CClientDlg::OnMuteStateHasChangedReceived ); + QObject::connect ( pClient, &CClient::RecorderStateReceived, + this, &CClientDlg::OnRecorderStateReceived ); + // This connection is a special case. On receiving a licence required message via the // protocol, a modal licence dialog is opened. Since this blocks the thread, we need // a queued connection to make sure the core protocol mechanism is not blocked, too. diff --git a/src/clientdlg.h b/src/clientdlg.h index 7b2e9dfafa..4058b6de65 100755 --- a/src/clientdlg.h +++ b/src/clientdlg.h @@ -221,6 +221,9 @@ public slots: void OnDisplayChannelLevelsChanged() { MainMixerBoard->SetDisplayChannelLevels ( pClient->GetDisplayChannelLevels() ); } + void OnRecorderStateReceived ( ERecorderState eRecorderState ) + { MainMixerBoard->SetRecorderState ( eRecorderState ); } + void OnAudioChannelsChanged() { UpdateRevSelection(); } void OnNumClientsChanged ( int iNewNumClients ); void OnNewClientLevelChanged() { MainMixerBoard->iNewClientFaderLevel = pClient->iNewClientFaderLevel; } diff --git a/src/server.cpp b/src/server.cpp index b14c8e82fa..8c449e8bf0 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -740,7 +740,7 @@ void CServer::SetEnableRecording ( bool bNewEnableRecording ) #if QT_VERSION >= QT_VERSION_CHECK(5, 5, 0) // TODO we should use the ConsoleWriterFactory() instead of qInfo() - qInfo() << "Recording state " << ( bEnableRecording ? "enabled" : "disabled" ); + qInfo() << "Recording state" << ( bEnableRecording ? "enabled" : "disabled" ); #endif if ( !bEnableRecording ) From 8d3cdb7a4baaceb2a2df1fd0af34cd429f8b659e Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 15 Jun 2020 21:48:30 +0200 Subject: [PATCH 176/936] merge fixes --- ChangeLog | 3 + src/audiomixerboard.cpp | 22 +++--- src/audiomixerboard.h | 3 +- src/protocol.cpp | 4 +- src/res/translation/translation_de_DE.qm | Bin 99512 -> 99501 bytes src/res/translation/translation_de_DE.ts | 85 +++++++++++++++-------- src/res/translation/translation_es_ES.qm | Bin 96083 -> 96072 bytes src/res/translation/translation_es_ES.ts | 85 +++++++++++++++-------- src/res/translation/translation_fr_FR.qm | Bin 102064 -> 102053 bytes src/res/translation/translation_fr_FR.ts | 85 +++++++++++++++-------- src/res/translation/translation_it_IT.qm | Bin 97784 -> 97773 bytes src/res/translation/translation_it_IT.ts | 85 +++++++++++++++-------- src/res/translation/translation_nl_NL.ts | 85 +++++++++++++++-------- src/res/translation/translation_pl_PL.ts | 85 +++++++++++++++-------- src/res/translation/translation_pt_PT.qm | Bin 98441 -> 98430 bytes src/res/translation/translation_pt_PT.ts | 85 +++++++++++++++-------- 16 files changed, 402 insertions(+), 225 deletions(-) diff --git a/ChangeLog b/ChangeLog index 63b92d3ea1..203b40e55f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -9,6 +9,8 @@ - support sorting faders by channel instrument, coded by Alberstein8 (#356) +- add server recording indicator, coded by pljones (#295) + - support for storing/recovering the server window positions (#357) @@ -17,6 +19,7 @@ + 3.5.6 (2020-06-09) - support sorting faders by channel name (#178) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 581408c01d..0a1d902d54 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -630,9 +630,9 @@ CAudioMixerBoard::CAudioMixerBoard ( QWidget* parent, Qt::WindowFlags ) : setAccessibleName ( "Personal Mix at the Server groupbox" ); - setWhatsThis ( "" + tr( "Personal Mix at the Server" ) + ": " + + setWhatsThis ( "" + tr ( "Personal Mix at the Server" ) + ": " + tr ( "When connected to a server, the controls here allow you to set " ) + - tr ( "your local mix without affecting what others hear from you.") + "
" + + tr ( "your local mix without affecting what others hear from you." ) + "
" + tr ( "The title shows the server name and, when known, " "whether it is actively recording." ) ); @@ -816,23 +816,23 @@ void CAudioMixerBoard::ChangeFaderOrder ( const bool bDoSort, } } -QString CAudioMixerBoard::GetTitle() +void CAudioMixerBoard::UpdateTitle() { - QString myTitle = ""; + QString strTitlePrefix = ""; + if ( eRecorderState == RS_RECORDING ) { - myTitle = "[" + tr ( "RECORDING ACTIVE" ) + "] "; + strTitlePrefix = "[" + tr ( "RECORDING ACTIVE" ) + "] "; } - return myTitle + tr ( "Personal Mix at: " ) + strServerName; + + setTitle ( strTitlePrefix + tr ( "Personal Mix at: " ) + strServerName ); } void CAudioMixerBoard::SetRecorderState ( const ERecorderState newRecorderState ) { + // store the new recorder state and update the title eRecorderState = newRecorderState; - if ( !strServerName.isEmpty() && !bNoFaderVisible ) - { - setTitle ( GetTitle() ); - } + UpdateTitle(); } void CAudioMixerBoard::ApplyNewConClientList ( CVector& vecChanInfo ) @@ -841,7 +841,7 @@ void CAudioMixerBoard::ApplyNewConClientList ( CVector& vecChanInf // in the audio mixer board to show a "try to connect" before if ( bNoFaderVisible ) { - setTitle ( GetTitle() ); + UpdateTitle(); } // get number of connected clients diff --git a/src/audiomixerboard.h b/src/audiomixerboard.h index 9415453b90..3d8457bea4 100755 --- a/src/audiomixerboard.h +++ b/src/audiomixerboard.h @@ -190,8 +190,6 @@ class CAudioMixerBoard : } }; - QString GetTitle(); - bool GetStoredFaderSettings ( const CChannelInfo& ChanInfo, int& iStoredFaderLevel, int& iStoredPanValue, @@ -200,6 +198,7 @@ class CAudioMixerBoard : void StoreFaderSettings ( CChannelFader* pChanFader ); void UpdateSoloStates(); + void UpdateTitle(); void OnGainValueChanged ( const int iChannelIdx, const double dValue ); diff --git a/src/protocol.cpp b/src/protocol.cpp index 838e71454c..61be002633 100755 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -1585,8 +1585,8 @@ bool CProtocol::EvaluateRecorderStateMes(const CVector& vecData) const int iRecorderState = static_cast ( GetValFromStream ( vecData, iPos, 1 ) ); - if ( ( iRecorderState != RS_UNDEFINED ) && - ( iRecorderState != RS_NOT_INITIALISED ) && + // note that RS_UNDEFINED is only internally used + if ( ( iRecorderState != RS_NOT_INITIALISED ) && ( iRecorderState != RS_NOT_ENABLED ) && ( iRecorderState != RS_RECORDING ) ) { diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index 56d35893528b09673cba8dbe6328a6a9f658fb61..e697891c68f7ea074b54485dc717fa3cfdce932c 100644 GIT binary patch delta 4021 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 M+hK3E18Wxjf8kE8D*ylh delta 4057 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 CAudioMixerBoard - + + Personal Mix at the Server + + + + + When connected to a server, the controls here allow you to set + + + + + your local mix without affecting what others hear from you. + + + + + The title shows the server name and, when known, whether it is actively recording. + + + + Server - + T R Y I N G T O C O N N E C T V E R B I N D U N G S A U F B A U - - Personal Mix at the Server: + + RECORDING ACTIVE + + + + + Personal Mix at: Eigener Mix am Server:
@@ -715,7 +740,7 @@ - + C&onnect &Verbinden @@ -769,18 +794,18 @@ Keine - + Center Mitte - + R - + L @@ -865,22 +890,22 @@ Sortiere Kanäle nach &Instrument - + Central Server Zentralserver - + user Musiker - + users Musiker - + D&isconnect &Trennen @@ -1513,22 +1538,22 @@ Manuell - + Custom Benutzerdefiniert - + All Genres Alle Genres - + Genre Rock Genre Rock - + Genre Jazz Genre Jazz @@ -1537,12 +1562,12 @@ Genre Rock/Jazz - + Genre Classical/Folk/Choir Genre Klassik/Volksmusik/Chor - + Default Standard @@ -2643,22 +2668,22 @@ Server - + Predefined Address Vordefinierte Adresse - + Recording Aufnahme - + Not recording Keine Aufnahme - + Not enabled Nicht aktiviert @@ -2685,42 +2710,42 @@ &Fenster - + Unregistered Nicht registriert - + Bad address Ungültige Adresse - + Registration requested Registrierung angefordert - + Registration failed Registrierung fehlgeschlagen - + Check server version Überprüfe Version des Servers - + Registered Registriert - + Central Server full Zentralserver voll - + Unknown value Unbekannter Wert diff --git a/src/res/translation/translation_es_ES.qm b/src/res/translation/translation_es_ES.qm index 0d5c7ce9696e13cf4116ec73ee40adc06777f87f..cbaba548a5564a69b5c9f59105af5e68d0145cac 100644 GIT binary patch delta 3976 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 delta 4005 zcmX9=c|c8h8-9N0o^#J#&OJ9vW0^{WMvBT7St@%Ap;U@2QHV(;ONK5+M#E%Z$MTgV zNf?ItM6#rfYV2cXq%29k8bof9@2&gSbI(2J{LcG6@AJIxTTm<9sTH;e4d0(-)M$xD=>wd1hjQIaAkP(I;Z@2e2D(1S zfCcSMn6HOjHV@c+54+b+z|&{2FU_axMvUEc9ng-%*z{Q7`9O>>2IF9$U_9yw z*?={8-;;#)>>3l^P-co@Ojk~sH!fu^-=zRue3(c7mtbucu%MzcKsSqpWLg9BPqEpF zF+jV|YEoXIp{wZp+f!MgVG&8E$Nw4CLmq z8z-~C9KU1tKU@bhYtJhDK9LAlvge^$z?&*o<(C6C-JHGIpaweTGh>$q66GyUGif>y zR>W!bjeyrF&g?z8;ieO3UN9CYisCxU9f_efT-Qnpupy3fd)g0Zy2DLLAf^JJ8Mxp< zM7_I_i*AYplY4W96?9-p7Pq=V2Il<3C1MUSaFW}-X&P{d<5E2RDS+YJku_VuJngv* z(h7Q7n6N?OGE%I7jYcj@-xo0V=CT?|)Y>-OxrHPlZ7_G)o)|ik#9eWi57yPNhAYet z1EkyBQ{Piy{r7P1V@XVV(@j`h%6%}9m=wQp#+7lvjqf>Qu`BRff3DHC7Pz=up*$5t zJ)xIEnO8@m4OCb*Q2_oY72o_G0T#*>{inNvb*WbP-aAO5T%w2#=no7CP$XQKP5!SQ zt4Q=J0m4Tsb{*dbHX%T9dWj2I_&&v7UFo0&p^Ex{h=Dytiu%X&;$9bCe3u1ueaUx> z<){Q}`Jt^g6M5I_c;M(Zewue7iR>O9l3EKkBAj2)KbIuY#K$e1N!l37$L)_LI|}?t zPbc#K<~)9r&O~Fh4)HPzTDVaZQw;JHA`P0P?z&uC3bm0#2 zf4kK!Kgid=@MVMP!=;x@STT!#c%9VG{l)*ioibDC_j|KS)**m(r6}MO+vtS(#*a!!pukq3ZzPi7$#FkjS?0Nuprx}35#0#MgMAHd0i#2#7$W7AQHH= zRM=pce;CYVhmaVV1ZH_r*mRSqo~jnM%p|Id9tpdiJf=(qVfSGX=$~sfha?(^-b%r~8BoS4g#^MY!Ac>; z2UzQ()H>e?-Y2svoho!z31$uoMrx!`oJn>d@wO#7o$v=*nx)7 zB7^eK_K)PpTIG@4K;YprWm*D7p1oX|;UWRm*~-jlSFmw<<>kpFQggKln@f~eGv))S z$;um#C;%%*WkIw9O})Fys*UC}US}z*t%<=M7nE<`wzTRR<-6SJfVG*jp$jo>-&y&^ zf=VSC28nFrF={}OB3DHR#TSd_m*~MCKZq6+;=#O_Xz4*UA2d&NHZG?QRwNGZa*)Py zwCK|%3+&r{qHo?HpvV72e{*_oVv{%}V;$gKE{52tslf~oXBdfL_qpQY5Mn6mKr1ro z2XTolT^nReaoPA1Kt3UED$PGrV3jtAVOh;wG@}$5r|9{{pW&spZSHzy()zr;=?{8l}2>6g8U4+iJT> zJ~R_T)x*pv;4PJE*UrSu)O7V2)`movtM(4NK%MQFI`|{qHy%~b-uj*vnXT&CHI&$w z59)RlFCmz@6ztH`Etu)!aQ$e(4J>t9jhX?IRja3Tk24%6IhGaanYG)=V=G2}f_^GZ!BAGkuxXON#g zOSLM6H*HFLwPxKNz})J!1II50?*E`2JA5@*po7-0BW>2Z%e3KrhXNla7_`y-=-@x* zXrs$1vtbF^<*)o`Q2T2)t`DW!eWm@mdL3o7O1r~}#A5^P{xLh~|9tI%G#_AAh4zqJ zJ%a4Bu(X zs%4s9)~(2F{k4yd{|zSDXrFkGCA%EbKAAXzRNiDl<6P|r{xykdl+?EVE?BpvQu{L; znE5`*auqRRCrehF-&4&KT9MgalB|q0zVF|Yde*k34!KI|)oTga(N6Lhts)UF?j?C$ zeMTFPo#b2K3f7~Y6tasV=gXyt>`qiug%t6WN-?ffT6mG}_w$#cp3{f+RY@`T%ZR8v zY1>mGY<9}_TT%x@q?FBw@LQ?UwNbIOQ94L@Qyu{pVbV<%bpsnu>E_lLlHM`tR-e&y z>I~^lS!dutsPy6;Dd|RU>E)8?6z0Fuo9Od265mP2kR6n+tdk!erF1XoERGVNJAzt~ zIWN~a*JOcBiPCv*Orm!7ter0KI2CYlvIz@~y08gUpx!-97^K%lbRfR(Rq0|r)Kb3; z(=8iGADj`d`(@WVFprD6!}B5m`(R!A$Q)W(Lv@$mI#8iATamdH>#pUN0LSfg`Qfvv zzuwf9gwpkdd|heBZnVz4XwX&Fko3G#bgyR8jk)J_ZwC8NzuTd!KkEb5ezYt$w&@Gl8M3p E2Va`RL;wH) diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index e8e494ad3d..525fb64947 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -194,18 +194,43 @@ CAudioMixerBoard - + + Personal Mix at the Server + + + + + When connected to a server, the controls here allow you to set + + + + + your local mix without affecting what others hear from you. + + + + + The title shows the server name and, when known, whether it is actively recording. + + + + Server Servidor - + T R Y I N G T O C O N N E C T I N T E N T A N D O C O N E C T A R - - Personal Mix at the Server: + + RECORDING ACTIVE + + + + + Personal Mix at: Mezcla Personal en el Servidor: @@ -727,7 +752,7 @@ - + C&onnect C&onectar @@ -777,18 +802,18 @@ Ninguno - + Center Centro - + R R - + L L @@ -873,22 +898,22 @@ Ordenar Canales por &Instrumento - + Central Server Servidor Central - + user usuario - + users usuarios - + D&isconnect D&esconectar @@ -1521,12 +1546,12 @@ Manual - + Custom Personalizado - + All Genres Todos los Géneros @@ -1535,22 +1560,22 @@ Género Rock/Jazz - + Genre Classical/Folk/Choir Género Clásica/Folk/Coro - + Genre Rock Género Rock - + Genre Jazz Género Jazz - + Default Por defecto @@ -2655,22 +2680,22 @@ - + Predefined Address Dirección Preestablecida - + Recording Grabando - + Not recording No grabando - + Not enabled No habilitado @@ -2697,42 +2722,42 @@ &Ventana - + Unregistered Sin registrar - + Bad address Dirección no válida - + Registration requested Registro solicitado - + Registration failed Error de registro - + Check server version Comprueba la versión del servidor - + Registered Registrado - + Central Server full Servidor Central lleno - + Unknown value Valor desconocido diff --git a/src/res/translation/translation_fr_FR.qm b/src/res/translation/translation_fr_FR.qm index 922678b1da3c995291d271eb8093e33489820d51..7cd6001711d0d1faaa2d74e55e6f937a99854393 100644 GIT binary patch delta 3962 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 T*$Ew{#C=y~cf87uos0cH_w1gK delta 4018 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 C&Z@2e diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index 916a79294b..0e73552bd7 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -202,18 +202,43 @@ CAudioMixerBoard - + + Personal Mix at the Server + + + + + When connected to a server, the controls here allow you to set + + + + + your local mix without affecting what others hear from you. + + + + + The title shows the server name and, when known, whether it is actively recording. + + + + Server Serveur - + T R Y I N G T O C O N N E C T T E N T A T I V E D E C O N N E X I O N - - Personal Mix at the Server: + + RECORDING ACTIVE + + + + + Personal Mix at: Mixage personnel du serveur : @@ -723,7 +748,7 @@ - + C&onnect Se c&onnecter @@ -777,18 +802,18 @@ Aucun - + Center Centre - + R D - + L G @@ -873,22 +898,22 @@ - + Central Server Serveur central - + user utilisateur - + users utilisateurs - + D&isconnect Dé&connecter @@ -1525,12 +1550,12 @@ Manuel - + Custom Personnalisé - + All Genres Tous les genres @@ -1539,22 +1564,22 @@ Genre rock/jazz - + Genre Classical/Folk/Choir Genre classique/folk/choeur - + Genre Rock Genre Rock - + Genre Jazz Genre Jazz - + Default Défaut @@ -2647,22 +2672,22 @@ serveur - + Predefined Address Adresse prédéfinie - + Recording Enregistrement - + Not recording Ne pas enregistrer - + Not enabled Non activé @@ -2689,42 +2714,42 @@ &Fenêtre - + Unregistered Non inscrit - + Bad address Mauvaise adresse - + Registration requested Inscription demandée - + Registration failed Échec de l'inscription - + Check server version Vérifier la version du serveur - + Registered Inscrit - + Central Server full Serveur central rempli - + Unknown value Valeur inconnue diff --git a/src/res/translation/translation_it_IT.qm b/src/res/translation/translation_it_IT.qm index fad3e633e9b0a61294ffc6a4d9ec0131c35a5a5b..11929a8da4725a54657c1b23d2f3d2b44dabcea0 100644 GIT binary patch delta 4023 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 diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index 1fcc8ed6d1..d49733c283 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -190,18 +190,43 @@ CAudioMixerBoard - + + Personal Mix at the Server + + + + + When connected to a server, the controls here allow you to set + + + + + your local mix without affecting what others hear from you. + + + + + The title shows the server name and, when known, whether it is actively recording. + + + + Server Server - + T R Y I N G T O C O N N E C T I N A T T E S A D I C O N N E S S I O N E - - Personal Mix at the Server: + + RECORDING ACTIVE + + + + + Personal Mix at: Mixer personale sul Server: @@ -560,7 +585,7 @@ - + L L @@ -783,7 +808,7 @@ - + C&onnect C&onnetti @@ -847,32 +872,32 @@ Nullo - + Center Centro - + R R - + Central Server Server Centrale - + user utente - + users utenti - + D&isconnect D&isconnetti @@ -1537,32 +1562,32 @@ Ok - + Custom Personalizzato - + All Genres Tutti i Generi - + Genre Rock Genere Rock - + Genre Jazz Genere Jazz - + Genre Classical/Folk/Choir Genere Classica/Folk/Corale - + Default Default @@ -2621,62 +2646,62 @@ &Finestra - + Predefined Address Indirizzo Predefinito - + Recording Registrazione - + Not recording Registrazione Ferma - + Not enabled Non Abilitata - + Unregistered Non registrato - + Bad address Indirizzo Errato - + Registration requested Registrazione richiesta - + Registration failed Registrazione fallita - + Check server version Controlla Versione server - + Registered Registrato - + Central Server full Server Centrale Pieno - + Unknown value Valore sconosciuto diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index 7b289a7fe5..c864878d9e 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -190,18 +190,43 @@ CAudioMixerBoard - + + Personal Mix at the Server + + + + + When connected to a server, the controls here allow you to set + + + + + your local mix without affecting what others hear from you. + + + + + The title shows the server name and, when known, whether it is actively recording. + + + + Server Server - + T R Y I N G T O C O N N E C T A A N H E T V E R B I N D E N - - Personal Mix at the Server: + + RECORDING ACTIVE + + + + + Personal Mix at: @@ -552,7 +577,7 @@ - + L L @@ -775,7 +800,7 @@ - + C&onnect C&onnect @@ -835,32 +860,32 @@ Geen - + Center Centrum - + R R - + Central Server - + user gebruiker - + users gebruikers - + D&isconnect &Afmelden @@ -1485,32 +1510,32 @@ Handmatig - + Custom - + All Genres - + Genre Rock - + Genre Jazz - + Genre Classical/Folk/Choir - + Default Standaard @@ -2599,22 +2624,22 @@ server - + Predefined Address - + Recording - + Not recording - + Not enabled @@ -2641,42 +2666,42 @@ &Window - + Unregistered Niet geregistreerd - + Bad address Slecht adres - + Registration requested Aanmelding gevraagd - + Registration failed Registratie is mislukt - + Check server version Controleer de versie van de server - + Registered Geregistreerd - + Central Server full Centrale server vol - + Unknown value Onbekende waarde diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index d408dab75b..18bd9f20ad 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -158,18 +158,43 @@ CAudioMixerBoard - - Server + + Personal Mix at the Server + + + + + When connected to a server, the controls here allow you to set + + + + + your local mix without affecting what others hear from you. + + + + + The title shows the server name and, when known, whether it is actively recording. + Server + + + + T R Y I N G T O C O N N E C T - - Personal Mix at the Server: + + RECORDING ACTIVE + + + + + Personal Mix at: @@ -464,7 +489,7 @@ - + L @@ -635,7 +660,7 @@ - + C&onnect @@ -695,32 +720,32 @@ - + Center - + R - + Central Server - + user - + users - + D&isconnect @@ -1225,32 +1250,32 @@ - + Custom - + All Genres - + Genre Rock - + Genre Jazz - + Genre Classical/Folk/Choir - + Default @@ -2244,22 +2269,22 @@ - + Predefined Address - + Recording - + Not recording - + Not enabled @@ -2289,42 +2314,42 @@ - + Unregistered - + Bad address - + Registration requested - + Registration failed - + Check server version - + Registered - + Central Server full - + Unknown value diff --git a/src/res/translation/translation_pt_PT.qm b/src/res/translation/translation_pt_PT.qm index da5729efa190f6048e9a87fad3a50037f467e7ba..1fca6c2dc3683fdf2a45b343c8107cae1b70efc7 100644 GIT binary patch delta 3984 zcmX9>dt6Ov7k=J-_T`+j&)EkfV!Fs>J}Q;UofJbi3Xw}ra#zwQ8S>G|kS5X~48}b* zB*}~qGtE?T%ScKwrWxfjR5ayIhJ35eAN`)aJA1$HTF-i(wcee)Mr=tCH(Qyu0vHR7 zJZMJaYBQEkCY%U(pEhGCJ=1z$u?-MHfCJM2hoOMB5C~cT>}>=lg#umaFF2ks*^Hsx zfT^cwo!h{wRX}A0_>>dCwX@*&tpiLBQRa&ox4<9x35*%R*KGz9W`J*^msa{huulX! zPln)72^iBMxEu!RG9h@T0p-6!7!wHW>kh%EKbY4T2xBvVE=>@EM+2k(YD1=WfiP_{ zm^uu?Is*mx48lPHCRF-C$aDs5c00ygFY!~8LR z3Tuo*|3odDh*S?8XEi63!d)Fdz`Ym}$@ z0!!V^c&!OHdJ$tYtx%bl3fyzTT_OV4_u}D{-oWy!c+?aF=5YeGJ3YZdT+n1{9s-n( zK@%bKu*9oA4}d3^nDC4;Q}t!~nw`YRCN_BSA)s3q=Hp%m)+L)6vq@Nyf3i8rF~BG9 z*^1!*(N0k;b!}-mopTBYv#;c?790pzvk-t}$-itek#Ti5`UfpJPlJN z`<0Ua!w;x-9NP^x^*^eU%LapeQKR~^J1rEoSM~DFT=Ml~)yrynabFQHy~qK2oZ&5F zIV!Ukb+@4snp_X6e zOE%qZ#cyx!PyVkM(sqIR$^4$_5T7}2 zEg1J1pH)E(swS`vS-%Z@_Aw){Oy;w%Q)x;c^10^|>A42}qYIsuE~`RkF} zNVJPvu_KA%5nnchHooO)#=0eG$A!+ObNt<^9>C%ZzV;kxxK81pxW|JU7|{Gwk1Vbz7$*!k{1Hr z3qzjf0J|>xWrn5!c1?p}Kd-f1N`hUz=QABtj ztiw{_pt=yqSSuV%A`jWt2wBAi#7wYo;bS#rQXmxjz6WZ{g|gW#)c5)dH)pgm`rM2q zTZAWP^T`8V!h1I|Z-^*-a7qOx9~K3N7HZ7mQc*~30WJ>~g+l?r`a)42Pzg90Mau*O zb%`Bfm$MZ4qYm~((-YogomZA z#U$nxvC{TkGyy)hk#^SPQ^OCJcIg7>{+MJg?Fq@W_p%L{CrLUzKOf9WBmKOSjv(#b zrE`B$<~~}fczre9o1}Y2YOL}l>E7uPgelU4cju|!U6AT+ZD{(ZsdaZ6iP{0`cBeeZ zV-;%Wbr0!uu(u7FbX47M!Vh%(8LD>8p+K6;)&2`g$vyo|>M32w?R)Ii3ol&++U1z> z<1BS_>kD2t)zRTsN#!l-=$n3oKdR%NrILE9)a(74X%akAZ^)zsFixHJ19gLE0qR^S z1+1^Az8wD)c;TT@3L1gJWKEaStyGd}nx0G60`>Pa_7eht1*SC3@OBjO4r`4^SE6R_ z3(XkTp3X&f8vl7eQyV^8x(5hY@NKQ(BmMqn znzqMx?$q&&2Q%fd}^z`(1{w)CmGt} z;}n?io3^BVs0nOHXKlR;Q51Ml`&dIN_v|e5S>)#cwX9b8(|Kr@+^(k+n9mk@;JBs0 zom|=5D*-I*3pvQrk

Emlyn Bolton (emlynmac)

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 delta 3947 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 diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index bd8aea67b2..5e993b40bd 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -202,17 +202,17 @@ CAudioMixerBoard - + Server Serveur - + T R Y I N G T O C O N N E C T T E N T A T I V E D E C O N N E X I O N - + Personal Mix at the Server: Mixage personnel du serveur : @@ -220,7 +220,7 @@ CChannelFader - + Channel Level Niveau de canal @@ -229,12 +229,12 @@ Affiche le niveau audio pré-fader de ce canal. Tous les clients connectés au serveur se verront attribuer un niveau audio, la même valeur pour chaque client. - + Input level of the current audio channel at the server Niveau d'entrée du canal audio actuel sur le serveur - + Mixer Fader Charriot du mixeur @@ -243,17 +243,17 @@ Règle le niveau audio de ce canal. Tous les clients connectés au serveur se verront attribuer un chariot audio à chaque client, ce qui permettra d'ajuster le mixage local. - + Local mix level setting of the current audio channel at the server Réglage du niveau de mixage local du canal audio actuel sur le serveur - + Status Indicator Indicateur d'état - + Shows a status indication about the client which is assigned to this channel. Supported indicators are: Affiche une indication sur l'état du client qui est affecté à ce canal. Les indicateurs pris en charge sont : @@ -262,12 +262,12 @@ Haut-parleur avec barre d'annulation : indique que l'autre client vous a mis en sourdine. - + Status indicator label Étiquette d'indicateur d'état - + Panning Panoramique @@ -276,17 +276,17 @@ Règle la position panoramique du canal de gauche à droite. Fonctionne uniquement en mode stéréo ou de préférence en mode entrée mono/sortie stéréo. - + Local panning position of the current audio channel at the server Position panoramique locale du canal audio actuel sur le serveur - + With the Mute checkbox, the audio channel can be muted. En cochant la case Muet, le canal audio peut être mis en sourdine. - + Mute button Bouton de sourdine @@ -295,12 +295,12 @@ En cochant la case Solo, le canal audio peut être réglé sur solo, ce qui signifie que tous les autres canaux, à l'exception du canal actuel, sont mis en sourdine. Il est possible de mettre plus d'un canal en solo. - + Solo button Bouton de solo - + Fader Tag Étiquette de chariot @@ -309,124 +309,135 @@ L'étiquette de chariot identifie le client connecté. Le nom du tag, la photo de votre instrument et un drapeau de votre pays peuvent être définis dans la fenêtre principale. - + Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. Affiche le niveau audio pré-fader de ce canal. Tous les clients connectés au serveur se verront attribuer un niveau audio, la même valeur pour chaque client. - + Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. Ajuste le niveau audio de ce canal. Tous les clients connectés au serveur se verront attribuer un chariot audio, affiché sur chaque client, pour ajuster le mixage local. - + Speaker with cancellation stroke: Indicates that another client has muted you. Haut-parleur avec barré d'annulation : indique qu'un autre client vous a mis en sourdine. - + Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. Règle le panoramique de gauche à droite du canal. Fonctionne uniquement en mode stéréo ou de préférence en mode entrée mono/sortie stéréo. - + With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. Avec la case-à-cocher Solo, le canal audio peut être réglé sur solo, ce qui signifie que tous les autres canaux, sauf le canal en solo, sont coupés. Il est possible de mettre plus d'un canal en solo. - + The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. L'étiquette de chariot identifie le client connecté. Le nom de l'étiquette, une photo de votre instrument et le drapeau de votre pays peuvent être définis dans la fenêtre principale. - + Mixer channel instrument picture Image d'instrument de canal de mixeur - + Mixer channel label (fader tag) Label de canal de mixeur (étiquette de chariot) - + Mixer channel country flag Drapeau de pays de canal de mixeur - + PAN PAN - + MUTE MUET - + SOLO SOLO - + + M + + + + + S + + + + Alias/Name Pseudo/nom - + Instrument Instrument - + Location Localisation - - - + + + Skill Level Niveau de compétence - + Beginner Débutant - + Intermediate Intermédiaire - + Expert Expert - + Musician Profile Profil de musicien - - + + Mute Muet + Pan Pan - - + + Solo Solo @@ -1182,19 +1193,16 @@ Bouton-poussoir de paramétrage ASIO - Fancy Skin - Habillage fantaisie + Habillage fantaisie - If enabled, a fancy skin will be applied to the main window. - Si activée, un habillage fantaisie sera appliqué à la fenêtre principale. + Si activée, un habillage fantaisie sera appliqué à la fenêtre principale. - Fancy skin check box - Case-à-cocher pour l'habillage fantaisie + Case-à-cocher pour l'habillage fantaisie @@ -1321,7 +1329,7 @@ - + Mono Mono @@ -1331,14 +1339,14 @@ mode augmentera le débit de données de votre flux. Assurez-vous que votre débit montant ne dépasse pas la vitesse de téléchargement disponible de votre connexion internet. - + Mono-in/Stereo-out Mono-entrée/stéréo-sortie - + Stereo Stéréo @@ -1397,6 +1405,21 @@ If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. Si les paramètres de délai de la mémoire tampon sont désactivés, il est interdit par le pilote audio de modifier ce paramètre depuis le logiciel. Sous Windows, appuyez sur le bouton Paramètres ASIO pour ouvrir le panneau des paramètres du pilote. Sous Linux, utilisez l'outil de configuration Jack pour modifier la taille de la mémoire tampon. + + + Skin + + + + + Select the skin to be used for the main window. + + + + + Skin combo box + + Selects the number of audio channels to be used for communication between client and server. There are three modes available: @@ -1463,31 +1486,42 @@ Le débit montant audio dépend de la taille actuelle des paquets audio et du réglage de la compression. Assurez-vous que le débit montant n'est pas supérieur à votre vitesse de téléchargement Internet disponible (vérifiez cela avec un service tel que speedtest.net). - + Low Basse - + + Normal Normale - + High Haute + + + Fancy + + + + + Compact + + Manual Manuel - + Custom Personnalisé - + All Genres Tous les genres @@ -1496,22 +1530,22 @@ Genre rock/jazz - + Genre Classical/Folk/Choir Genre classique/folk/choeur - + Genre Rock Genre Rock - + Genre Jazz Genre Jazz - + Default Défaut @@ -1520,23 +1554,23 @@ Défaut (Amérique du Nord) - + preferred préféré - - + + Size: Taille : - + Buffer Delay Délai de temporisation - + Buffer Delay: Délai de temporisation : @@ -1545,17 +1579,17 @@ Adresse prédéfinie - + The selected audio device could not be used because of the following error: Le périphérique audio sélectionné n'a pas pu être utilisé en raison de l'erreur suivante : - + The previous driver will be selected. Le pilote précédent sera sélectionné. - + Ok Ok @@ -1676,22 +1710,26 @@ Niveau de nouveau client - + + Skin + + + + % % - Fancy Skin - Habillage fantaisie + Habillage fantaisie - + Display Channel Levels Afficher les niveaux des canaux - + Custom Central Server Address: Adresse personnalisée du serveur central : @@ -1700,24 +1738,24 @@ Adresse du serveur central : - + Audio Stream Rate Débit du flux audio - - - + + + val val - + Ping Time Temps de réponse - + Overall Delay Délai global @@ -2425,7 +2463,7 @@ If the start minimized on operating system start check box is checked, the server will be started when the operating system starts up and is automatically minimized to a system task bar icon. - Si la case "Démarrage minimisé au démarrage du système d'exploitation" est cochée, le serveur sera démarré au démarrage du système d'exploitation et sera automatiquement réduit à une icône de la barre des tâches du système. + Si la case "Démarrage minimisé au démarrage du système d'exploitation" est cochée, le serveur sera démarré au démarrage du système d'exploitation et sera automatiquement réduit à une icône de la barre des tâches du système. @@ -2642,42 +2680,42 @@ &Fenêtre - + Unregistered Non inscrit - + Bad address Mauvaise adresse - + Registration requested Inscription demandée - + Registration failed Échec de l'inscription - + Check server version Vérifier la version du serveur - + Registered Inscrit - + Central Server full Serveur central rempli - + Unknown value Valeur inconnue diff --git a/src/res/translation/translation_it_IT.qm b/src/res/translation/translation_it_IT.qm index 4c02decab9f29f76da9a7a2d9559597737b89028..4ae5f3f6e2ccd86c35c4ff3a0e67093994bdbfcc 100644 GIT binary patch delta 3187 zcmX9=dt8n8AAg^x=Q;OFY)z2FcR~7)_9R zT?Kk9gVcwc&-(+?NIMX{7t)yV3|s-pJP;^qf;4s~1A9T5@*xvnA|r!J;gf;PTaZ#r zK$}=d+ay>KtAw=63wX;FQt^DC^cAGztAMP(pt?X-x|P7tcMmY2jf_*B;n~;+nD2pJ zm(Bwn_rY)DSwJbmZ}%b~aS{A(i$JFu8FRP8Y-7NbE%2Xy8?c>(e>vmX8WG@~YXz=( zAfRk5(7geHRhs}sEXECE1!*@hA(R{U=!lSTQWu?wus1J&o`nd1Kt?`kkBH9i0iQ32 zMd=Q#bAhFG-8w5`0^)!<4M@r(L*4Eorz{^BaSL0Qlmec=;@ciqn6N)~d)XZYoi$?{ z_KltdoDzhdyb?WB0U!aU#supw0uUR4XIJ18tgonik{aJSY(Dz+VW z1Ge8+oLkRa!tW{0?JEX$`Y5iyjV4TBD}P+zYYV1=A>mnWU7O*;t6#U;^2OC4)M7|@HHm-$q|P|QwC6IMhDxm zSYUCO!^XldfpRz;SUecG`I*Cu-}pZ8mFT=kU;)F$VXZ=y%EYOG7l48$(X!()aQKBd zcYyUYFtn|>EIyhk`-;o*7E#F~#U%eez!*<4w|O8C<04~%UCe9s3s-*`yW7P4i=UAZ zo48};Wh%W&+_}mO1Z9i6#;qokH^hP~9OcoyIRP8ROYs{3?Qj{>c8Ik@7%;Y6#(De28)vC2AyoXuo=nUTe{~B73e95OO%I^| z67l|-T6#o;_-Fv%|MZUd;?+p{n3rVymlH9lSjJozsY~z_PFSgA_3Ff)+iRtM+t|zR z|CELrC=Rho8fG~J6njX%E#ragZj#^YuKd57G{w$Vjax27C-i23dTH)J7Yh8L^l|GT z?U^SneR7wKMo4M1zXA4kk=7<;0bgvCGONi{&-qezG?|+ARN7eg8_@5Cy+V4&n&2$u z<*`n+UB;MHBDcvdlD4T&Q;HX*ZEF&M+*+xi@)RZYQabxDKQBHgRrXJ#Y?%%#zeyIDhmedDY+VDQKBz!>WuQ#Bq~I=U&i!1 z%CZ7#eS%hb?q(2q2~<`l_NFOYl=m~7=>Bt*4V_uPe_Q3VXN;FOT={pWEY83-gG!OH zheH^zav7ftoZPB%HIw+FjVkZvrJUL)s!^Ttc`B?|1y}e0&cCZBJ4FFq>Qxp`4Tr0{ zYFhI@KuLpYp@o%tPmpoFUA4Fef2*rhxtpnkeQi{mZkN)jzEN$~Gr@hkRe5>VR;ue% zU!8ZO6o;ygZQ^;T6;yXDRKmIksyjzU5Q|jxE#;i*KUEE#xXz=qTL0@~GSFA;c*qx+ z9;Wt6xko#?B4g%cb>E2xd9F@Z_bX<=bP?ifF?m5XKj5* zv8WUO`vB_1*%w)@0-VmNQv;gmYgOv>T};6CmfC)hL-ffc_4(w# zfTd$K##2lvv`EvwW<3M9Xu8Z_4Sd{A<2f;izNpg-cVwb|AsXKf{C#P+W{jc@weXY1 z8aU$^r@m1W@rnyT&SVDfG*(UX4m*%ANo)F-6(o6RJ+=%0+^V(ai`-z2RmP8(YNvcv3LJ{pPH*D6t7h#C ze-Vhkt&N*d$>Ge^#x-!m)zh@`kw3GQTJ8KdYk;i>wF}Jj&l^*EeW*V*A(1$&C`c#)UW&>MrQuo!aAfWej-PRE=IA#lE zOdqD(weEf1093lYLyf@M8M@^BGS#dPDEpn1j@AcP`m*=0^>gaUM3)f#g6lNo3kUS;>p{OvxBsAZ zv&NL`%ReB&dk*O*hgNhq z8|JhlF|$?}mW*bA_c|K3Y<$i$KFqLtbSb45W;peX`Sy?kujfC8KZoR6aTo!%fk@k z+}4B_9yTWI{)b2J3FC^j+~>;g#ube_*|6J2yAvgqTZw z)GiobxJJR delta 3539 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 U|1thYoCHVvc=Nu`tb=F&8&1Cr<^TWy diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index cbbdadb008..488ca02352 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -190,17 +190,17 @@ CAudioMixerBoard - + Server Server - + T R Y I N G T O C O N N E C T I N A T T E S A D I C O N N E S S I O N E - + Personal Mix at the Server: Mixer personale sul Server: @@ -210,25 +210,26 @@ + Pan Bilanciamento - - + + Mute Mute - - + + Solo Solo - + Channel Level Volume @@ -237,12 +238,12 @@ Visualizza il livello audio pre-fader di questo canale. A tutti i client connessi al server verrà assegnato un livello audio, lo stesso valore per ciascun client. - + Input level of the current audio channel at the server Livello di input del canale audio corrente sul server - + Mixer Fader Mixer Fader @@ -251,17 +252,17 @@ Regola il livello audio di questo canale. A tutti i client connessi al server verrà assegnato un fader audio su ciascun client, regolando il mix locale. - + Local mix level setting of the current audio channel at the server Impostazione del livello di volume locale del canale audio corrente sul server - + Status Indicator Indicatore di Stato - + Shows a status indication about the client which is assigned to this channel. Supported indicators are: Visualizza lo stato del client assegnato a questo canale. Gli Stati supportati sono: @@ -270,12 +271,12 @@ Altoparlante segnato: Indica che un altro client ha messo in mute il tuo canale. - + Status indicator label Etichetta dell'indicatore di stato - + Panning Bilanciamento @@ -284,17 +285,17 @@ Imposta il Bilanciamento da Sinistra a Destra del canale. Funzione abilitata in modalità stereo oppure in modalità mono in/stereo out. - + Local panning position of the current audio channel at the server Bilancimento locale del canale audio corrente sul server - + With the Mute checkbox, the audio channel can be muted. Quando il Mute è selezionato, il canale audio è mutato. - + Mute button Pulsante Mute @@ -303,12 +304,12 @@ Quando il Solo è attivo, il canale audio sarà in modalità solista escludendo gli altri canali che non saranno più udibili. E' possibile attivare il solo su più canali per sentirli contemporaneamente. - + Solo button Pulsante Solo - + Fader Tag Tag Fader @@ -317,104 +318,114 @@ Il tag fader identifica il client connesso. Il nome del tag, l'immagine del tuo strumento e una bandiera del tuo paese possono essere impostati nella finestra principale del profilo. - + Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. - + Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. - + Speaker with cancellation stroke: Indicates that another client has muted you. - + Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. - + With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. - + The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. - + Mixer channel instrument picture Immagine dello strumento - + Mixer channel label (fader tag) Etichetta del Canale (fader tag) - + Mixer channel country flag Bandiera del Paese - + PAN Bil. (L / R) - + MUTE MUTE - + SOLO SOLO - + + M + + + + + S + + + + Alias/Name Identificativo/Nome - + Instrument Strumento - + Location Località - - - + + + Skill Level Livello di Preparazione - + Beginner Principiante - + Intermediate Livello Intermedio - + Expert Esperto - + Musician Profile Profilo del Musicista @@ -1158,19 +1169,16 @@ Pulsante del pannello di setup ASIO - Fancy Skin - Tema Fantaia + Tema Fantaia - If enabled, a fancy skin will be applied to the main window. - Se selezionato questo tema verrà applicato alla finestra principale. + Se selezionato questo tema verrà applicato alla finestra principale. - Fancy skin check box - Check Box Tema Fantasia + Check Box Tema Fantasia @@ -1297,7 +1305,7 @@ - + Mono Mono @@ -1307,14 +1315,14 @@ - + Mono-in/Stereo-out Mono-in/Stereo-out - + Stereo Stereo @@ -1373,6 +1381,21 @@ If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. + + + Skin + + + + + Select the skin to be used for the main window. + + + + + Skin combo box + + Selects the number of audio channels to be used for communication between client and server. There are three modes available: @@ -1439,38 +1462,49 @@ - + Low Low - + + Normal Normal - + High High - + + Fancy + + + + + Compact + + + + preferred consigliato - - + + Size: Livello: - + Buffer Delay Buffer Delay - + Buffer Delay: Buffer Delay: @@ -1479,47 +1513,47 @@ Indirizzo Preferito - + The selected audio device could not be used because of the following error: La scheda audio selezionata non può essere usata per i seguenti motivi: - + The previous driver will be selected. Sarà ripristinato il driver precedentemente usato. - + Ok Ok - + Custom Personalizzato - + All Genres Tutti i Generi - + Genre Rock Genere Rock - + Genre Jazz Genere Jazz - + Genre Classical/Folk/Choir Genere Classica/Folk/Corale - + Default Default @@ -1640,22 +1674,26 @@ Livello Nuovo Client - + + Skin + + + + % % - Fancy Skin - Tema Fantasia + Tema Fantasia - + Display Channel Levels Visualizza Livelli Canali - + Custom Central Server Address: Indirizzo Server Centrale alternativo: @@ -1664,24 +1702,24 @@ Indirizzo Server Centrale: - + Audio Stream Rate Velocità dello Streaming - - - + + + val val - + Ping Time Ping - + Overall Delay Overall Delay @@ -2594,42 +2632,42 @@ - + Unregistered Non registrato - + Bad address Indirizzo Errato - + Registration requested Registrazione richiesta - + Registration failed Registrazione fallita - + Check server version Controlla Versione server - + Registered Registrato - + Central Server full Server Centrale Pieno - + Unknown value Valore sconosciuto diff --git a/src/res/translation/translation_nl_NL.qm b/src/res/translation/translation_nl_NL.qm index 947037daaa409a5a5aa0965ad69cee904e629c83..39f6496f5dcbb6bd51977f852b0d47b4b2645dc3 100644 GIT binary patch delta 2898 zcmX9=e_T!XAAat+=iGbG{Z(ucBT{_**b>E8X~v?Th@$8RDG^#z8e`QJHT|HKM3FYE zkc5~SR#d3XVwkV_ZZu{|er&Cpy!PF`kDb4sd(Qd%cs|ebyx*VOc~t$dQl0mzB@@6< zV6Gi;Ixs-3phKyGp?YE@asTE03tN@z@}Fa@p9az zL`3<;0#O}EE}=q0`XRrL_PK4u$7^cn?j7tOew~CnP;tHk*qDwZo^ybYuH)O>8NR@n z*ZG4O5{7F-XL7Ik=cV#- zeF)@q6+{Tb+`p_;?KxuyY`dYlxRv|N2~u4=QU&a=SKaL9wCq&XPeFgu>3OOLQGCBz zR<#C^=XuA1F9kbGSZ~3m(Hoc_DD*em0?reJA@>r24?Yv#y6*y5YK3_jWN9BMgihcw z2M!jpu$V0N3p+N41HK8uUSAq-8YGmZF;JC#go>BC+iX$rgQ-HrUefc36soMo0tRcL z>cvVRbFy$Uj>{u+jZi!4Gr-?XIPbI!$UQGKorwXoGllzsM}gwuLRS)X_i9%#^qA0X zp+CacLQnEqmQssabKx0{j#t~CS`J*$r~|(v(fBRuq+nN|e}p>YbTshJLiP4TJAvv1 z^|ANdfTrE*&O5FY%qv&4O%fRWMA74)q~(j@{!PHnI5FbWr$E`e;tJPuED?*iHZGDz zxr=K{lITm5nC#1>PQE4<_KX9_6C$p=(BRK{JQ&@*CY4jjEmE$0d-9rZshD#GobX43Yc|@E5 zb}x~<{~XF^NeV8Yz}}ao$ap6%bWeKsWnhcfNSVv_vE> zRMA*V#;#Js-&}C_A5x<)le)NDx*GKt$GG}Qg|KAb)|6+EK#;qp!p+D? zT+mb|OaiK&YHH`uLH$()H=NYeRWOQv?wX6YXR>)+*EA+LvFV-FwC32b(_YlH4W<&F zw=^9c+$XP(=8r+Sz}AymRn9?n^)1=~mVi_iL#KA2PXMs1M?1dfeKskbcFLeqMyW#^ zcwqwYYM^$m%>rQX0Byubnb}X#F6{XW*cYo^6~PmZxusxMlJ>pfeAe~W78cXv(qL`T z-5N&FNn30r!P4tmMdANwcVDt&wkB&Wr;B*M$ky8XFX~xsx3z79_`xnfXZ-OgPaLYV zJ~0VcFiJN%{Q*zru3-9j-I&?c?5;<2W2?Bq>K}CeOPkrm&gnw>G0anAbg>sNkjQog zlaq7_|BMgQt^JJ(^orAc=-0zq$hYXS%ei5SovxsosgIwnyOjDXu+mL7*OEY>AopwD zN~wm*jw?3;OB&^ovu6UYZt=DVyZz z{4QQ2>*VNm9$@1OIW8=f*G7t*{pQP%TYi!A?2~}C$K?DMt@QG!eDHQDC9jo_-J}(x zzmcoIb)sezA=*taf)=*#EW0@I+cSbU51e?$Ly@G15WSN&;c30Qthe|9qox~TOH zeOPvKzP|A=H{9TBPZRfa8X=_F<{Y;&fUy&McBUfcM-+OWHP zCNQGj@bO!ntd=|lH%Nx^kKX3h-(omC(F`2VHk|oNV*RT<42_4I*rBHzEi(GGj6>PcC=juPh>kw_$S8t zsZ_A|qVclMg*WnQRd7g_X^rOsI`Xf@rd`{A z2M!%E9q^>${k|~Oc98IhR0a2*Fx8)H24+N?E-i^BL2J_$TL)l8UsG#4#~t2bdKAg; zZ~SWRd*vxGX_xu6rHoKXrFnp^0(iIHJp6G9`&FRX*~Shi?>4&`vVm3I<|*l!bi~`s zJS~HYxOgfU^1FHVFRUI-k9h?dV#O(Q{DHry{4jG$78j_yZccezMx~?81vW3E;byM6 zmdloJZGMzm1I+r?{5XrmvbE;Uf%ky1tIU5?R&o9#^NYF7JfP9a-v0pqLuFe{a&Tw% z#y_{3($vAKa$&^*c!#pD$j*ClICj1|xwOTX) delta 3256 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 CAudioMixerBoard - + Server Server - + T R Y I N G T O C O N N E C T A A N H E T V E R B I N D E N - + Personal Mix at the Server: @@ -210,25 +210,26 @@ + Pan Pan - - + + Mute Demp - - + + Solo Solo - + Channel Level Kanaalniveau @@ -237,12 +238,12 @@ Geeft het pre-fader-audioniveau van dit kanaal weer. Alle verbonden clients op de server krijgen een audioniveau toegewezen, dezelfde waarde voor elke client. - + Input level of the current audio channel at the server Invoerniveau van het huidige audiokanaal op de server - + Mixer Fader Mixer Fader @@ -251,42 +252,42 @@ Past het geluidsniveau van dit kanaal aan. Alle verbonden clients op de server krijgen een audiofader toegewezen bij elke client, waarbij de lokale mix wordt aangepast. - + Local mix level setting of the current audio channel at the server Lokale instelling van het mixniveau van het huidige audiokanaal op de server - + Status Indicator - + Shows a status indication about the client which is assigned to this channel. Supported indicators are: - + Status indicator label - + Panning - + Local panning position of the current audio channel at the server - + With the Mute checkbox, the audio channel can be muted. Met het selectievakje Demp kan het audiokanaal worden gedempt. - + Mute button Dempknop @@ -295,12 +296,12 @@ Met het selectievakje Solo kan het audiokanaal worden ingesteld op solo, zodat alle overige kanalen worden gedempt. Het is mogelijk om meer dan één kanaal op solo in te stellen. - + Solo button Soloknop - + Fader Tag Fader tag @@ -309,104 +310,114 @@ De fadertag identificeert de verbonden client. De tagnaam, de afbeelding van uw instrument en een vlag van uw land kunnen in het hoofdvenster worden ingesteld. - + Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. - + Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. - + Speaker with cancellation stroke: Indicates that another client has muted you. - + Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. - + With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. - + The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. - + Mixer channel instrument picture Afbeelding van het mengkanaalinstrument - + Mixer channel label (fader tag) Label van het mengkanaal (faderlabel) - + Mixer channel country flag Landvlag van het kanaal - + PAN - + MUTE DEMP - + SOLO SOLO - + + M + + + + + S + + + + Alias/Name Alias/Naam - + Instrument Instrument - + Location Locatie - - - + + + Skill Level Vaardigheidssniveau - + Beginner Beginner - + Intermediate Gemiddeld - + Expert Gevorderd - + Musician Profile Muzikantenprofiel @@ -1150,19 +1161,16 @@ ASIO-instellingsdrukknop - Fancy Skin - Edele huid + Edele huid - If enabled, a fancy skin will be applied to the main window. - Indien ingeschakeld wordt er een fancy skin op het hoofdvenster aangebracht. + Indien ingeschakeld wordt er een fancy skin op het hoofdvenster aangebracht. - Fancy skin check box - Fancy skin check box + Fancy skin check box @@ -1285,7 +1293,7 @@ - + Mono Mono @@ -1295,14 +1303,14 @@ - + Mono-in/Stereo-out Mono-in/Stereo-out - + Stereo Stereo @@ -1361,6 +1369,21 @@ If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. + + + Skin + + + + + Select the skin to be used for the main window. + + + + + Skin combo box + + Selects the number of audio channels to be used for communication between client and server. There are three modes available: @@ -1427,51 +1450,62 @@ - + Low Laag - + + Normal Normaal - + High Hoog + + + Fancy + + + + + Compact + + Manual Handmatig - + Custom - + All Genres - + Genre Rock - + Genre Jazz - + Genre Classical/Folk/Choir - + Default Standaard @@ -1480,38 +1514,38 @@ Standaard (Noord-Amerika) - + preferred gewenst - - + + Size: Size: - + Buffer Delay Buffervertraging - + Buffer Delay: Buffervertraging: - + The selected audio device could not be used because of the following error: Het geselecteerde audioapparaat kon niet worden gebruikt vanwege de volgende fout: - + The previous driver will be selected. Het vorige stuurprogramma wordt geselecteerd. - + Ok Ok @@ -1632,22 +1666,26 @@ Nieuw client-niveau - + + Skin + + + + % % - Fancy Skin - Fancy Skin + Fancy Skin - + Display Channel Levels Weergave Kanaalniveaus - + Custom Central Server Address: @@ -1656,24 +1694,24 @@ Centraal Serveradres: - + Audio Stream Rate Audio Stream Rate - - - + + + val val - + Ping Time Ping-tijd - + Overall Delay Algehele vertraging @@ -2598,42 +2636,42 @@ &Window - + Unregistered Niet geregistreerd - + Bad address Slecht adres - + Registration requested Aanmelding gevraagd - + Registration failed Registratie is mislukt - + Check server version Controleer de versie van de server - + Registered Geregistreerd - + Central Server full Centrale server vol - + Unknown value Onbekende waarde diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index 07150e67e6..80c1f4cff8 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -158,17 +158,17 @@ CAudioMixerBoard - + Server - + T R Y I N G T O C O N N E C T - + Personal Mix at the Server: @@ -178,187 +178,198 @@ + Pan - - + + Mute - - + + Solo - + Channel Level - + Input level of the current audio channel at the server - + Mixer Fader - + Local mix level setting of the current audio channel at the server - + Status Indicator - + Shows a status indication about the client which is assigned to this channel. Supported indicators are: - + Status indicator label - + Panning - + Local panning position of the current audio channel at the server - + With the Mute checkbox, the audio channel can be muted. - + Mute button - + Solo button - + Fader Tag - + Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. - + Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. - + Speaker with cancellation stroke: Indicates that another client has muted you. - + Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. - + With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. - + The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. - + Mixer channel instrument picture - + Mixer channel label (fader tag) - + Mixer channel country flag - + PAN - + MUTE - + SOLO - + + M + + + + + S + + + + Alias/Name - + Instrument - + Location - - - + + + Skill Level - + Beginner - + Intermediate - + Expert - + Musician Profile @@ -924,21 +935,6 @@ ASIO setup push button - - - Fancy Skin - - - - - If enabled, a fancy skin will be applied to the main window. - - - - - Fancy skin check box - - Display Channel Levels @@ -1046,19 +1042,19 @@ - + Mono - + Mono-in/Stereo-out - + Stereo @@ -1117,6 +1113,21 @@ If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. + + + Skin + + + + + Select the skin to be used for the main window. + + + + + Skin combo box + + Selects the number of audio channels to be used for communication between client and server. There are three modes available: @@ -1183,83 +1194,94 @@ - + Low - + + Normal - + High - + + Fancy + + + + + Compact + + + + Custom - + All Genres - + Genre Rock - + Genre Jazz - + Genre Classical/Folk/Choir - + Default - + preferred - - + + Size: - + Buffer Delay - + Buffer Delay: - + The selected audio device could not be used because of the following error: - + The previous driver will be selected. - + Ok @@ -1380,44 +1402,44 @@ - - % + + Skin - - Fancy Skin + + % - + Display Channel Levels - + Custom Central Server Address: - + Audio Stream Rate - - - + + + val - + Ping Time - + Overall Delay @@ -2262,42 +2284,42 @@ - + Unregistered - + Bad address - + Registration requested - + Registration failed - + Check server version - + Registered - + Central Server full - + Unknown value diff --git a/src/res/translation/translation_pt_PT.qm b/src/res/translation/translation_pt_PT.qm index 11bc528e6dec652be415b09abaf291934fee36af..52dbe3fcfb2ede979d06d103c2c28cdccf7471cd 100644 GIT binary patch delta 3670 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 EADmN9WdHyG delta 4043 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 CAudioMixerBoard - + Server Servidor - + T R Y I N G T O C O N N E C T T E N T A N D O L I G A R - + Personal Mix at the Server: Mistura Pessoal no Servidor: @@ -220,7 +220,7 @@ CChannelFader - + Channel Level Nível do Canal @@ -229,12 +229,12 @@ Mostra o nível de áudio pré-fader deste canal. Todos os clientes ligados ao servidor terão atribuído um nível de áudio, o mesmo valor para cada cliente. - + Input level of the current audio channel at the server Nível de entrada deste canal de áudio do servidor - + Mixer Fader Fader da Mistura @@ -243,17 +243,17 @@ Ajusta o nível de áudio deste canal. Por cada cliente ligado ao servidor será atribuído um fader de áudio em todos os clientes, podendo cada um ajustar a sua mistura local. - + Local mix level setting of the current audio channel at the server Configuração do nível de mistura local deste canal de áudio do servidor - + Status Indicator Indicador de Estado - + Shows a status indication about the client which is assigned to this channel. Supported indicators are: Mostra uma indicação de estado sobre o cliente que está atribuído a este canal. Os indicadores suportados são: @@ -262,12 +262,12 @@ Alti-falante com sinal de proibição: Indica que o cliente silenciou o teu canal. - + Status indicator label Etiqueta do indicador de estado - + Panning Panorâmica @@ -276,17 +276,17 @@ Define a posição de panorâmica da esquerda para a direita do canal. Funciona apenas no modo estéreo ou, de preferência, no modo Entrada Mono/Saída Estéreo. - + Local panning position of the current audio channel at the server Posição de panorâmica local do canal de áudio actual no servidor - + With the Mute checkbox, the audio channel can be muted. Com a caixa de seleção Mute, o canal de áudio pode ser silenciado. - + Mute button Botão Mute @@ -295,12 +295,12 @@ Com a caixa de seleção Solo, o canal de áudio pode ser definido como solo, o que significa que todos os outros canais, exceto o canal atual, serão silenciados. É possível definir mais que um canal no modo solo. - + Solo button Botão Solo - + Fader Tag Identificador do Fader @@ -309,124 +309,135 @@ O Identificador do fader identifica o cliente ligado. O nome no identificador, a imagem do instrumento e a bandeira do país podem ser definidos no Meu Perfil. - + Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. Mostra o nível de áudio pré-fader deste canal. A todos os clientes ligados ao servidor será atribuído um nível de áudio, o mesmo valor para cada cliente. - + Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. Ajusta o nível de áudio deste canal. A todos os clientes ligados ao servidor será atribuído um fader de áudio,exibido em cada cliente, para ajustar a mistura local. - + Speaker with cancellation stroke: Indicates that another client has muted you. Alti-falante com sinal de proibição: Indica que o cliente silenciou o teu canal. - + Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. Define a posição de panorâmica da esquerda para a direita do canal. Funciona apenas no modo estéreo ou, de preferência, no modo Entrada Mono/Saída Estéreo. - + With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. Com a caixa de seleção Solo, o canal de áudio pode ser definido como solo, o que significa que todos os outros canais, exceto o canal atual, serão silenciados. É possível definir mais que um canal no modo solo. - + The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. O Identificador do fader identifica o cliente ligado. O nome no identificador, a imagem do instrumento e a bandeira do país podem ser definidos no Meu Perfil. - + Mixer channel instrument picture Imagem do instrumento do canal da mistura - + Mixer channel label (fader tag) Identificação do canal da mistura (identificador do fader) - + Mixer channel country flag Bandeira do país do canal da mistura - + PAN PAN - + MUTE MUTE - + SOLO SOLO - + + M + + + + + S + + + + Alias/Name Nome/Alcunha - + Instrument Instrumento - + Location Localização - - - + + + Skill Level Nível de Habilidade - + Beginner Principiante - + Intermediate Intermediário - + Expert Avançado - + Musician Profile Perfil do músico - - + + Mute Mute + Pan Pan - - + + Solo Solo @@ -1170,19 +1181,16 @@ Botão de configuração do ASIO - Fancy Skin - Skin Sofisticada + Skin Sofisticada - If enabled, a fancy skin will be applied to the main window. - Se ativada, uma skin sofisticada será aplicada à janela principal. + Se ativada, uma skin sofisticada será aplicada à janela principal. - Fancy skin check box - Caixa de ativação da skin sofisticada + Caixa de ativação da skin sofisticada @@ -1309,7 +1317,7 @@ - + Mono Mono @@ -1324,14 +1332,14 @@ A taxa de transmissão do áudio depende do tamanho do pacote de áudio e da configuração de compactação de áudio. Verifique se a taxa de transmissão não é maior que a taxa disponível (verifique a taxa de upload da sua ligação à Internet usando, por exemplo, o speedtest.net). - + Mono-in/Stereo-out Entrada Mono/Saída Estéreo - + Stereo Estéreo @@ -1390,6 +1398,21 @@ If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. Se as configurações de atraso do buffer estiverem desativadas, é porque o driver de áudio proibe modificar essa configuração a partir da aplicação. No Windows, pressione o botão Configuração do Driver para abrir o painel de configurações do driver. No Linux, use a ferramenta de configuração Jack para alterar o atraso do buffer. + + + Skin + + + + + Select the skin to be used for the main window. + + + + + Skin combo box + + Selects the number of audio channels to be used for communication between client and server. There are three modes available: @@ -1451,41 +1474,52 @@ A latência geral é calculada a partir da latência da ligação atual e do atraso introduzido pelas configurações do buffer. - + Low Baixa - + + Normal Normal - + High Alta + + + Fancy + + + + + Compact + + Manual Manual - + Custom Personalizado - + All Genres Servidor Geral - + Genre Rock Servidor Rock - + Genre Jazz Servidor Jazz @@ -1494,12 +1528,12 @@ Servidor Rock/Jazz - + Genre Classical/Folk/Choir Serv. Clássica/Folclore/Coro - + Default Servidor Padrão @@ -1508,38 +1542,38 @@ Servidor Padrão (America do Norte) - + preferred preferido - - + + Size: Tamanho: - + Buffer Delay Atraso do buffer - + Buffer Delay: Atraso do buffer: - + The selected audio device could not be used because of the following error: O dispositivo de áudio selecionado não pôde ser usado devido ao seguinte erro: - + The previous driver will be selected. O driver anterior será selecionado. - + Ok Ok @@ -1660,22 +1694,26 @@ Nível de Novo Cliente - + + Skin + + + + % % - Fancy Skin - Skin Sofisticada + Skin Sofisticada - + Display Channel Levels Mostrar Níveis de Canais - + Custom Central Server Address: Endereço do Servidor Central Personalizado: @@ -1684,24 +1722,24 @@ Endereço do Servidor Central: - + Audio Stream Rate Taxa de Transmissão de Ãudio - - - + + + val val - + Ping Time Latência da Ligação - + Overall Delay Latência Geral @@ -2626,42 +2664,42 @@ &Janela - + Unregistered Não Registado - + Bad address Endereço incorrecto - + Registration requested Registo solicitado - + Registration failed Falha no registo - + Check server version Verifique versão do servidor - + Registered Registado - + Central Server full Servidor Central Cheio - + Unknown value Valor desconhecido From 0d77ccdcc4b9a9e1508a00641c1dbef6e10905ce Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 11 Jun 2020 19:58:51 +0200 Subject: [PATCH 151/936] under Mac the slim fader label must be a bit higher so that all have the same length --- src/audiomixerboard.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 8503620752..127711e6e0 100644 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -207,7 +207,7 @@ void CChannelFader::SetGUIDesign ( const EGUIDesign eNewDesign ) case GD_SLIMFADER: pLabelPictGrid->addWidget ( plblLabel, 0, Qt::AlignHCenter ); // label below icons - pLabelInstBox->setMinimumHeight ( 80 ); // maximum hight of the instrument+flag+label + pLabelInstBox->setMinimumHeight ( 84 ); // maximum hight of the instrument+flag+label pPan->setFixedSize ( 28, 28 ); pFader->setTickPosition ( QSlider::NoTicks ); pFader->setStyleSheet ( "" ); From fe338049b2e9e8cce292292c34913346d1d2d7f0 Mon Sep 17 00:00:00 2001 From: Peter L Jones Date: Thu, 11 Jun 2020 20:49:50 +0100 Subject: [PATCH 152/936] Add recorder state to console --- src/server.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/server.cpp b/src/server.cpp index e52aa3e8c1..f968d97966 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -240,6 +240,7 @@ CServer::CServer ( const int iNewMaxNumChan, Logging ( iMaxDaysHistory ), iFrameCount ( 0 ), JamRecorder ( strRecordingDirName ), + bEnableRecording ( false ), bWriteStatusHTMLFile ( false ), HighPrecisionTimer ( bNUseDoubleSystemFrameSize ), ServerListManager ( iPortNumber, @@ -405,7 +406,7 @@ CServer::CServer ( const int iNewMaxNumChan, if ( !strRecordingDirName.isEmpty() ) { bRecorderInitialised = JamRecorder.Init ( this, iServerFrameSizeSamples ); - bEnableRecording = bRecorderInitialised; + SetEnableRecording ( bRecorderInitialised ); } // enable all channels (for the server all channel must be enabled the @@ -665,6 +666,7 @@ void CServer::OnAboutToQuit() void CServer::OnHandledSignal ( int sigNum ) { +qDebug() << "OnHandledSignal" << sigNum; #ifdef _WIN32 // Windows does not actually get OnHandledSignal triggered QCoreApplication::instance()->exit(); @@ -705,7 +707,12 @@ void CServer::SetEnableRecording ( bool bNewEnableRecording ) { if ( bRecorderInitialised ) { + // note that this block executes regardless of whether + // what appears to be a change is being applied, to ensure + // the requested state is the result + bEnableRecording = bNewEnableRecording; + qInfo() << "Recording state" << ( bEnableRecording ? "enabled" : "disabled" ); if ( !bEnableRecording ) { From 4c94633c1a8808553fa3ba0a7723f00f2bd60aae Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Fri, 12 Jun 2020 18:26:34 +0200 Subject: [PATCH 153/936] clean up the reverberation and panning code in the client --- src/client.cpp | 140 +++++++++------------------------------------- src/client.h | 6 +- src/util.cpp | 147 +++++++++++++++++++++++++++++-------------------- src/util.h | 18 ++++-- 4 files changed, 126 insertions(+), 185 deletions(-) diff --git a/src/client.cpp b/src/client.cpp index 10d3afac4e..13b42cf286 100755 --- a/src/client.cpp +++ b/src/client.cpp @@ -889,8 +889,9 @@ void CClient::Init() iNumAudioChannels ); // init reverberation - AudioReverbL.Init ( SYSTEM_SAMPLE_RATE_HZ ); - AudioReverbR.Init ( SYSTEM_SAMPLE_RATE_HZ ); + AudioReverb.Init ( eAudioChannelConf, + iStereoBlockSizeSam, + SYSTEM_SAMPLE_RATE_HZ ); // init the sound card conversion buffers if ( bSndCrdConversionBufferRequired ) @@ -973,118 +974,41 @@ void CClient::ProcessAudioDataIntern ( CVector& vecsStereoSndCrd ) // add reverberation effect if activated if ( iReverbLevel != 0 ) { - // calculate attenuation amplification factor - const double dRevLev = static_cast ( iReverbLevel ) / AUD_REVERB_MAX / 4; - - if ( eAudioChannelConf == CC_STEREO ) - { - // for stereo always apply reverberation effect on both channels - for ( i = 0; i < iStereoBlockSizeSam; i += 2 ) - { - // both channels (stereo) - AudioReverbL.ProcessSample ( vecsStereoSndCrd[i], vecsStereoSndCrd[i + 1], dRevLev ); - } - } - else - { - // mono and mono-in/stereo out mode - if ( bReverbOnLeftChan ) - { - for ( i = 0; i < iStereoBlockSizeSam; i += 2 ) - { - // left channel - int16_t sRightDummy = 0; // has to be 0 for mono reverb - AudioReverbL.ProcessSample ( vecsStereoSndCrd[i], sRightDummy, dRevLev ); - } - } - else - { - for ( i = 1; i < iStereoBlockSizeSam; i += 2 ) - { - // right channel - int16_t sRightDummy = 0; // has to be 0 for mono reverb - AudioReverbR.ProcessSample ( vecsStereoSndCrd[i], sRightDummy, dRevLev ); - } - } - } + AudioReverb.Process ( vecsStereoSndCrd, + bReverbOnLeftChan, + static_cast ( iReverbLevel ) / AUD_REVERB_MAX / 4 ); } - // mix both signals depending on the fading setting, convert - // from double to short - if ( iAudioInFader == AUD_FADER_IN_MIDDLE ) - { - // no action require if fader is in the middle and stereo is used - if ( eAudioChannelConf != CC_STEREO ) - { - // mix channels together (store result in first half of the vector) - for ( i = 0, j = 0; i < iMonoBlockSizeSam; i++, j += 2 ) - { - // for the sum make sure we have more bits available (cast to - // int32), after the normalization by 2, the result will fit - // into the old size so that cast to int16 is safe - vecsStereoSndCrd[i] = static_cast ( - ( static_cast ( vecsStereoSndCrd[j] ) + vecsStereoSndCrd[j + 1] ) / 2 ); - } - } - } - else + // apply pan (audio fader) and mix mono signals + if ( !( ( iAudioInFader == AUD_FADER_IN_MIDDLE ) && ( eAudioChannelConf == CC_STEREO ) ) ) { + // calculate pan gain in the range 0 to 1, where 0.5 is the middle position + const double dPan = static_cast ( iAudioInFader ) / AUD_FADER_IN_MAX; + if ( eAudioChannelConf == CC_STEREO ) { - // stereo - const double dAttFactStereo = static_cast ( - AUD_FADER_IN_MIDDLE - abs ( AUD_FADER_IN_MIDDLE - iAudioInFader ) ) / AUD_FADER_IN_MIDDLE; + // for stereo only apply pan attenuation on one channel (same as pan in the server) + const double dGainL = std::min ( 0.5, 1 - dPan ) * 2; + const double dGainR = std::min ( 0.5, dPan ) * 2; - if ( iAudioInFader > AUD_FADER_IN_MIDDLE ) - { - for ( i = 0, j = 0; i < iMonoBlockSizeSam; i++, j += 2 ) - { - // attenuation on right channel - vecsStereoSndCrd[j + 1] = Double2Short ( dAttFactStereo * vecsStereoSndCrd[j + 1] ); - } - } - else + for ( i = 0, j = 0; i < iMonoBlockSizeSam; i++, j += 2 ) { - for ( i = 0, j = 0; i < iMonoBlockSizeSam; i++, j += 2 ) - { - // attenuation on left channel - vecsStereoSndCrd[j] = Double2Short ( dAttFactStereo * vecsStereoSndCrd[j] ); - } + // note that the gain is always <= 1, therefore a simple cast is + // ok since we never can get an overload + vecsStereoSndCrd[j + 1] = static_cast ( dGainR * vecsStereoSndCrd[j + 1] ); + vecsStereoSndCrd[j] = static_cast ( dGainL * vecsStereoSndCrd[j] ); } } else { - // mono and mono-in/stereo out mode - // make sure that in the middle position the two channels are - // amplified by 1/2, if the pan is set to one channel, this - // channel should have an amplification of 1 - const double dAttFactMono = static_cast ( - AUD_FADER_IN_MIDDLE - abs ( AUD_FADER_IN_MIDDLE - iAudioInFader ) ) / AUD_FADER_IN_MIDDLE / 2; + // for mono implement a cross-fade between channels and mix them + const double dGainL = 1 - dPan; + const double dGainR = dPan; - const double dAmplFactMono = 0.5 + static_cast ( - abs ( AUD_FADER_IN_MIDDLE - iAudioInFader ) ) / AUD_FADER_IN_MIDDLE / 2; - - if ( iAudioInFader > AUD_FADER_IN_MIDDLE ) - { - for ( i = 0, j = 0; i < iMonoBlockSizeSam; i++, j += 2 ) - { - // attenuation on right channel (store result in first half - // of the vector) - vecsStereoSndCrd[i] = Double2Short ( - dAmplFactMono * vecsStereoSndCrd[j] + - dAttFactMono * vecsStereoSndCrd[j + 1] ); - } - } - else + for ( i = 0, j = 0; i < iMonoBlockSizeSam; i++, j += 2 ) { - for ( i = 0, j = 0; i < iMonoBlockSizeSam; i++, j += 2 ) - { - // attenuation on left channel (store result in first half - // of the vector) - vecsStereoSndCrd[i] = Double2Short ( - dAmplFactMono * vecsStereoSndCrd[j + 1] + - dAttFactMono * vecsStereoSndCrd[j] ); - } + vecsStereoSndCrd[i] = Double2Short ( + dGainL * vecsStereoSndCrd[j] + dGainR * vecsStereoSndCrd[j + 1] ); } } } @@ -1175,20 +1099,6 @@ void CClient::ProcessAudioDataIntern ( CVector& vecsStereoSndCrd ) } } -/* -// TEST -// fid=fopen('c:\\temp\test2.dat','r');x=fread(fid,'int16');fclose(fid); -static FILE* pFileDelay = fopen("c:\\temp\\test2.dat", "wb"); -short sData[2]; -for (i = 0; i < iMonoBlockSizeSam; i++) -{ - sData[0] = (short) vecsStereoSndCrd[i]; - fwrite(&sData, size_t(2), size_t(1), pFileDelay); -} -fflush(pFileDelay); -*/ - - // for muted stream we have to add our local data here if ( bMuteOutStream ) { diff --git a/src/client.h b/src/client.h index d56435c634..b8497bbf4b 100755 --- a/src/client.h +++ b/src/client.h @@ -151,8 +151,7 @@ class CClient : public QObject void SetReverbOnLeftChan ( const bool bIL ) { bReverbOnLeftChan = bIL; - AudioReverbL.Clear(); - AudioReverbR.Clear(); + AudioReverb.Clear(); } void SetDoAutoSockBufSize ( const bool bValue ); @@ -354,8 +353,7 @@ class CClient : public QObject int iAudioInFader; bool bReverbOnLeftChan; int iReverbLevel; - CAudioReverb AudioReverbL; - CAudioReverb AudioReverbR; + CAudioReverb AudioReverb; int iSndCrdPrefFrameSizeFactor; int iSndCrdFrameSizeFactor; diff --git a/src/util.cpp b/src/util.cpp index 9805128722..13808bbc25 100755 --- a/src/util.cpp +++ b/src/util.cpp @@ -165,20 +165,24 @@ uint32_t CCRC::GetCRC() three series allpass units, followed by four parallel comb filters, and two decorrelation delay lines in parallel at the output. */ -void CAudioReverb::Init ( const int iSampleRate, - const double rT60 ) +void CAudioReverb::Init ( const EAudChanConf eNAudioChannelConf, + const int iNStereoBlockSizeSam, + const int iSampleRate, + const double rT60 ) { - int delay, i; + // store paramters + eAudioChannelConf = eNAudioChannelConf; + iStereoBlockSizeSam = iNStereoBlockSizeSam; // delay lengths for 44100 Hz sample rate - int lengths[9] = { 1116, 1356, 1422, 1617, 225, 341, 441, 211, 179 }; - const double scaler = static_cast ( iSampleRate ) / 44100.0; + int lengths[9] = { 1116, 1356, 1422, 1617, 225, 341, 441, 211, 179 }; + const double scaler = static_cast ( iSampleRate ) / 44100.0; if ( scaler != 1.0 ) { - for ( i = 0; i < 9; i++ ) + for ( int i = 0; i < 9; i++ ) { - delay = static_cast ( floor ( scaler * lengths[i] ) ); + int delay = static_cast ( floor ( scaler * lengths[i] ) ); if ( ( delay & 1 ) == 0 ) { @@ -194,12 +198,12 @@ void CAudioReverb::Init ( const int iSampleRate, } } - for ( i = 0; i < 3; i++ ) + for ( int i = 0; i < 3; i++ ) { allpassDelays[i].Init ( lengths[i + 4] ); } - for ( i = 0; i < 4; i++ ) + for ( int i = 0; i < 4; i++ ) { combDelays[i].Init ( lengths[i] ); combFilters[i].setPole ( 0.2 ); @@ -285,58 +289,81 @@ double CAudioReverb::COnePole::Calc ( const double dIn ) return dLastSample; } -void CAudioReverb::ProcessSample ( int16_t& iInputOutputLeft, - int16_t& iInputOutputRight, - const double dAttenuation ) +void CAudioReverb::Process ( CVector& vecsStereoInOut, + const bool bReverbOnLeftChan, + const double dAttenuation ) { - // compute one output sample - double temp, temp0, temp1, temp2; - - // we sum up the stereo input channels (in case mono input is used, a zero - // shall be input for the right channel) - const double dMixedInput = 0.5 * ( iInputOutputLeft + iInputOutputRight ); - - temp = allpassDelays[0].Get(); - temp0 = allpassCoefficient * temp; - temp0 += dMixedInput; - allpassDelays[0].Add ( temp0 ); - temp0 = - ( allpassCoefficient * temp0 ) + temp; - - temp = allpassDelays[1].Get(); - temp1 = allpassCoefficient * temp; - temp1 += temp0; - allpassDelays[1].Add ( temp1 ); - temp1 = - ( allpassCoefficient * temp1 ) + temp; - - temp = allpassDelays[2].Get(); - temp2 = allpassCoefficient * temp; - temp2 += temp1; - allpassDelays[2].Add ( temp2 ); - temp2 = - ( allpassCoefficient * temp2 ) + temp; - - const double temp3 = temp2 + combFilters[0].Calc ( combCoefficient[0] * combDelays[0].Get() ); - const double temp4 = temp2 + combFilters[1].Calc ( combCoefficient[1] * combDelays[1].Get() ); - const double temp5 = temp2 + combFilters[2].Calc ( combCoefficient[2] * combDelays[2].Get() ); - const double temp6 = temp2 + combFilters[3].Calc ( combCoefficient[3] * combDelays[3].Get() ); - - combDelays[0].Add ( temp3 ); - combDelays[1].Add ( temp4 ); - combDelays[2].Add ( temp5 ); - combDelays[3].Add ( temp6 ); - - const double filtout = temp3 + temp4 + temp5 + temp6; - - outLeftDelay.Add ( filtout ); - outRightDelay.Add ( filtout ); - - // inplace apply the attenuated reverb signal - iInputOutputLeft = Double2Short ( - ( 1.0 - dAttenuation ) * iInputOutputLeft + - 0.5 * dAttenuation * outLeftDelay.Get() ); - - iInputOutputRight = Double2Short ( - ( 1.0 - dAttenuation ) * iInputOutputRight + - 0.5 * dAttenuation * outRightDelay.Get() ); + double dMixedInput, temp, temp0, temp1, temp2; + + for ( int i = 0; i < iStereoBlockSizeSam; i += 2 ) + { + // we sum up the stereo input channels (in case mono input is used, a zero + // shall be input for the right channel) + if ( eAudioChannelConf == CC_STEREO ) + { + dMixedInput = 0.5 * ( vecsStereoInOut[i] + vecsStereoInOut[i + 1] ); + } + else + { + if ( bReverbOnLeftChan ) + { + dMixedInput = vecsStereoInOut[i]; + } + else + { + dMixedInput = vecsStereoInOut[i + 1]; + } + } + + temp = allpassDelays[0].Get(); + temp0 = allpassCoefficient * temp; + temp0 += dMixedInput; + allpassDelays[0].Add ( temp0 ); + temp0 = - ( allpassCoefficient * temp0 ) + temp; + + temp = allpassDelays[1].Get(); + temp1 = allpassCoefficient * temp; + temp1 += temp0; + allpassDelays[1].Add ( temp1 ); + temp1 = - ( allpassCoefficient * temp1 ) + temp; + + temp = allpassDelays[2].Get(); + temp2 = allpassCoefficient * temp; + temp2 += temp1; + allpassDelays[2].Add ( temp2 ); + temp2 = - ( allpassCoefficient * temp2 ) + temp; + + const double temp3 = temp2 + combFilters[0].Calc ( combCoefficient[0] * combDelays[0].Get() ); + const double temp4 = temp2 + combFilters[1].Calc ( combCoefficient[1] * combDelays[1].Get() ); + const double temp5 = temp2 + combFilters[2].Calc ( combCoefficient[2] * combDelays[2].Get() ); + const double temp6 = temp2 + combFilters[3].Calc ( combCoefficient[3] * combDelays[3].Get() ); + + combDelays[0].Add ( temp3 ); + combDelays[1].Add ( temp4 ); + combDelays[2].Add ( temp5 ); + combDelays[3].Add ( temp6 ); + + const double filtout = temp3 + temp4 + temp5 + temp6; + + outLeftDelay.Add ( filtout ); + outRightDelay.Add ( filtout ); + + // inplace apply the attenuated reverb signal (for stereo always apply + // reverberation effect on both channels) + if ( ( eAudioChannelConf == CC_STEREO ) || bReverbOnLeftChan ) + { + vecsStereoInOut[i] = Double2Short ( + ( 1.0 - dAttenuation ) * vecsStereoInOut[i] + + 0.5 * dAttenuation * outLeftDelay.Get() ); + } + + if ( ( eAudioChannelConf == CC_STEREO ) || !bReverbOnLeftChan ) + { + vecsStereoInOut[i + 1] = Double2Short ( + ( 1.0 - dAttenuation ) * vecsStereoInOut[i + 1] + + 0.5 * dAttenuation * outRightDelay.Get() ); + } + } } diff --git a/src/util.h b/src/util.h index c119dcc622..935ebd02e2 100755 --- a/src/util.h +++ b/src/util.h @@ -694,8 +694,8 @@ class CStereoSignalLevelMeter } protected: - double UpdateCurLevel ( double dCurLevel, - const short& sMax ); + double UpdateCurLevel ( double dCurLevel, + const short& sMax ); double dCurLevelL; double dCurLevelR; @@ -1098,11 +1098,15 @@ class CAudioReverb public: CAudioReverb() {} - void Init ( const int iSampleRate, const double rT60 = 1.1 ); + void Init ( const EAudChanConf eNAudioChannelConf, + const int iNStereoBlockSizeSam, + const int iSampleRate, + const double rT60 = 1.1 ); + void Clear(); - void ProcessSample ( int16_t& iInputOutputLeft, - int16_t& iInputOutputRight, - const double dAttenuation ); + void Process ( CVector& vecsStereoInOut, + const bool bReverbOnLeftChan, + const double dAttenuation ); protected: void setT60 ( const double rT60, const int iSampleRate ); @@ -1122,6 +1126,8 @@ class CAudioReverb double dLastSample; }; + EAudChanConf eAudioChannelConf; + int iStereoBlockSizeSam; CFIFO allpassDelays[3]; CFIFO combDelays[4]; COnePole combFilters[4]; From 0aea018a613ed49c8726ebed2b99e7972b825568 Mon Sep 17 00:00:00 2001 From: Alberstein8 Date: Sat, 13 Jun 2020 01:14:43 +0200 Subject: [PATCH 154/936] Addded sort by instrument --- src/audiomixerboard.cpp | 27 ++++++++++ src/audiomixerboard.h | 5 ++ src/clientdlg.cpp | 5 +- src/clientdlg.h | 1 + src/res/translation/translation_de_DE.qm | Bin 99376 -> 99512 bytes src/res/translation/translation_de_DE.ts | 57 ++++++++++++--------- src/res/translation/translation_es_ES.qm | Bin 95947 -> 96083 bytes src/res/translation/translation_es_ES.ts | 61 ++++++++++++----------- 8 files changed, 103 insertions(+), 53 deletions(-) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 127711e6e0..8036a358f8 100644 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -447,6 +447,9 @@ void CChannelFader::SetChannelInfos ( const CChannelInfo& cChanInfo ) // store original received name strReceivedName = cChanInfo.strName; + // store received instrument for sorting + iReceivedInstrument = cChanInfo.iInstrument; + // break text at predefined position const int iBreakPos = MAX_LEN_FADER_TAG / 2; @@ -769,6 +772,7 @@ void CAudioMixerBoard::HideAll() // use original order of channel (by server ID) ChangeFaderOrder ( false ); + ChangeFaderOrderByInstrument ( false ); // emit status of connected clients emit NumClientsChanged ( 0 ); // -> no clients connected @@ -799,6 +803,29 @@ void CAudioMixerBoard::ChangeFaderOrder ( const bool bDoSort ) } } +void CAudioMixerBoard::ChangeFaderOrderByInstrument ( const bool bDoSort ) +{ + // create a pair list of instruments ID and fader ID for each channel + QList > PairList; + + for ( int i = 0; i < MAX_NUM_CHANNELS; i++ ) + { + PairList << QPair ( vecpChanFader[i]->GetReceivedInstrument(), i ); + } + + // if requested, sort the channels + if ( bDoSort ) + { + qStableSort ( PairList.begin(), PairList.end() ); + } + + // add channels to the layout in the new order + for ( int i = 0; i < MAX_NUM_CHANNELS; i++ ) + { + pMainLayout->insertWidget ( 0, vecpChanFader[PairList[i].second]->GetMainWidget() ); + } +} + void CAudioMixerBoard::ApplyNewConClientList ( CVector& vecChanInfo ) { // we want to set the server name only if the very first faders appear diff --git a/src/audiomixerboard.h b/src/audiomixerboard.h index 1e955ccd4f..20e4b2c60c 100644 --- a/src/audiomixerboard.h +++ b/src/audiomixerboard.h @@ -50,6 +50,7 @@ class CChannelFader : public QObject CChannelFader ( QWidget* pNW ); QString GetReceivedName() { return strReceivedName; } + int GetReceivedInstrument() { return iReceivedInstrument; } void SetChannelInfos ( const CChannelInfo& cChanInfo ); void Show() { pFrame->show(); } void Hide() { pFrame->hide(); } @@ -103,6 +104,9 @@ class CChannelFader : public QObject QString strReceivedName; + int iReceivedInstrument; + + bool bOtherChannelIsSolo; bool bIsMyOwnFader; @@ -147,6 +151,7 @@ class CAudioMixerBoard : void HideAll(); void ChangeFaderOrder ( const bool bDoSort ); + void ChangeFaderOrderByInstrument (const bool bDoSort ); void ApplyNewConClientList ( CVector& vecChanInfo ); void SetServerName ( const QString& strNewServerName ); void SetGUIDesign ( const EGUIDesign eNewDesign ); diff --git a/src/clientdlg.cpp b/src/clientdlg.cpp index 4b0c561195..89c3d59a86 100755 --- a/src/clientdlg.cpp +++ b/src/clientdlg.cpp @@ -282,9 +282,12 @@ CClientDlg::CClientDlg ( CClient* pNCliP, // Edit menu -------------------------------------------------------------- pEditMenu = new QMenu ( tr ( "&Edit" ), this ); - pEditMenu->addAction ( tr ( "&Sort Channel Users by Name" ), this, + pEditMenu->addAction ( tr ( "Sort Channel Users by &Name" ), this, SLOT ( OnSortChannelsByName() ), QKeySequence ( Qt::CTRL + Qt::Key_N ) ); + pEditMenu->addAction ( tr ( "Sort Channel Users by &Instrument" ), this, + SLOT ( OnSortChannelsByInstrument() ), QKeySequence ( Qt::CTRL + Qt::Key_I ) ); + // Main menu bar ----------------------------------------------------------- pMenu = new QMenuBar ( this ); diff --git a/src/clientdlg.h b/src/clientdlg.h index 2489ed339e..9767d04373 100755 --- a/src/clientdlg.h +++ b/src/clientdlg.h @@ -153,6 +153,7 @@ public slots: void OnOpenChatDialog() { ShowChatWindow(); } void OnOpenAnalyzerConsole() { ShowAnalyzerConsole(); } void OnSortChannelsByName() { MainMixerBoard->ChangeFaderOrder ( true ); } + void OnSortChannelsByInstrument() { MainMixerBoard->ChangeFaderOrderByInstrument ( true ); } void OnSettingsStateChanged ( int value ); void OnChatStateChanged ( int value ); diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index 92eb290f20a113ac5d1be0b45543673cb1b0ab8a..56d35893528b09673cba8dbe6328a6a9f658fb61 100644 GIT binary patch delta 4086 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 Kk{iZWcKI*H;ld>V delta 4042 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 cJSApeo0J!x+;0|xT CAudioMixerBoard - + Server - + T R Y I N G T O C O N N E C T V E R B I N D U N G S A U F B A U - + Personal Mix at the Server: Eigener Mix am Server: @@ -367,44 +367,44 @@ - + Alias/Name - + Instrument - + Location Standort - - - + + + Skill Level Spielstärke - + Beginner Anfänger - + Intermediate Mittlere Spielstärke - + Expert Experte - + Musician Profile Profil des Musikers @@ -715,7 +715,7 @@ - + C&onnect &Verbinden @@ -760,28 +760,27 @@ B&earbeiten - &Sort Channel Users by Name - &Sortiere Kanäle nach Namen + &Sortiere Kanäle nach Namen - + None Keine - + Center Mitte - + R - + L @@ -856,22 +855,32 @@ Die CPU des Computers ist voll ausgelastet. - + + Sort Channel Users by &Name + Sortiere Kanäle nach &Namen + + + + Sort Channel Users by &Instrument + Sortiere Kanäle nach &Instrument + + + Central Server Zentralserver - + user Musiker - + users Musiker - + D&isconnect &Trennen diff --git a/src/res/translation/translation_es_ES.qm b/src/res/translation/translation_es_ES.qm index 89bebdb926be8c2f3161e81e73b07b9e3cae2abe..0d5c7ce9696e13cf4116ec73ee40adc06777f87f 100644 GIT binary patch delta 4076 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 ul5e7-4NPcn~_j-A-9$o~Q!h}h=< delta 4005 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 vH)UDasFXhQOiBJ{!v=7=MV~B9IqKK{LV|Pk& CAudioMixerBoard - + Server Servidor - + T R Y I N G T O C O N N E C T I N T E N T A N D O C O N E C T A R - + Personal Mix at the Server: Mezcla Personal en el Servidor: @@ -371,44 +371,44 @@ - + Alias/Name Alias/Nombre - + Instrument Instrumento - + Location Ubicación - - - + + + Skill Level Nivel Habilidad - + Beginner Principiante - + Intermediate Intermedio - + Expert Experto - + Musician Profile Perfil Músico @@ -727,7 +727,7 @@ - + C&onnect C&onectar @@ -772,28 +772,23 @@ &Editar - - &Sort Channel Users by Name - &Ordenar Canales por Nombre - - - + None Ninguno - + Center Centro - + R R - + L L @@ -868,22 +863,32 @@ El procesador del cliente o del servidor está al 100%. - + + Sort Channel Users by &Name + Ordenar Canales por &Nombre + + + + Sort Channel Users by &Instrument + Ordenar Canales por &Instrumento + + + Central Server Servidor Central - + user usuario - + users usuarios - + D&isconnect D&esconectar @@ -2350,7 +2355,7 @@ Vocal Bass - Voz bajo + Voz Bajo From e1b982c34c3c86999080755feac3b5eadd0c6f47 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 13 Jun 2020 08:20:03 +0200 Subject: [PATCH 155/936] merge fixes --- src/server.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/server.cpp b/src/server.cpp index f968d97966..1df29a5534 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -666,7 +666,10 @@ void CServer::OnAboutToQuit() void CServer::OnHandledSignal ( int sigNum ) { -qDebug() << "OnHandledSignal" << sigNum; + // show the signal number on the command line (note that this does not work for the Windows command line) +// TODO we should use the ConsoleWriterFactory() instead of qDebug() + qDebug() << "OnHandledSignal: " << sigNum; + #ifdef _WIN32 // Windows does not actually get OnHandledSignal triggered QCoreApplication::instance()->exit(); @@ -710,9 +713,12 @@ void CServer::SetEnableRecording ( bool bNewEnableRecording ) // note that this block executes regardless of whether // what appears to be a change is being applied, to ensure // the requested state is the result - bEnableRecording = bNewEnableRecording; - qInfo() << "Recording state" << ( bEnableRecording ? "enabled" : "disabled" ); + +#if QT_VERSION >= QT_VERSION_CHECK(5, 5, 0) +// TODO we should use the ConsoleWriterFactory() instead of qInfo() + qInfo() << "Recording state " << ( bEnableRecording ? "enabled" : "disabled" ); +#endif if ( !bEnableRecording ) { From e4b01fa39511ac3931e37679992185366ef14a54 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 13 Jun 2020 08:31:28 +0200 Subject: [PATCH 156/936] prepare for pull request: #356 --- src/audiomixerboard.cpp | 12 ++++++------ src/audiomixerboard.h | 5 +++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 127711e6e0..5753cbaba0 100644 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -314,7 +314,7 @@ void CChannelFader::Reset() plblInstrument->setToolTip ( "" ); plblCountryFlag->setVisible ( false ); plblCountryFlag->setToolTip ( "" ); - strReceivedName = ""; + cReceivedChanInfo = CChannelInfo(); SetupFaderTag ( SL_NOT_SET ); // set a defined tool tip time out @@ -438,15 +438,15 @@ void CChannelFader::SetChannelLevel ( const uint16_t iLevel ) void CChannelFader::SetChannelInfos ( const CChannelInfo& cChanInfo ) { + // store received channel info + cReceivedChanInfo = cChanInfo; + // init properties for the tool tip int iTTInstrument = CInstPictures::GetNotUsedInstrument(); QLocale::Country eTTCountry = QLocale::AnyCountry; // Label text -------------------------------------------------------------- - // store original received name - strReceivedName = cChanInfo.strName; - // break text at predefined position const int iBreakPos = MAX_LEN_FADER_TAG / 2; @@ -521,9 +521,9 @@ void CChannelFader::SetChannelInfos ( const CChannelInfo& cChanInfo ) QString strToolTip = ""; // alias/name - if ( !strReceivedName.isEmpty() ) + if ( !cChanInfo.strName.isEmpty() ) { - strToolTip += "

u%%xPWI`$V>$Byz{e{XWj zX8G>;ktFixZOD)yzc%p=)OhlA9bQ&~Ib73q{E-8*eyFovO^i4W*4cdXifX>K4Ou@= zolP?h>uOQgr?CTd$U>c?<1$L%C!Nn|HSlG+&adciI{hc6%l83a>f%UqWTV-IOb-Jw&h_T3Py0qSuiS~)^J3DHj z)V=cb%Vt0?OVq`T=Jz4(KU zHN38FStyCyOZP1L44o`Jb&VA?OD@$pM>nP4B-k zl{%NDe#$Yb<#Hc0mO(!+kV@tJl^JJ5=p#B)z<1R8nAeT;tyHF8K8iM+eNF$}ju&*0 z3)iPFjH0iFMfxM7@&VTxeZg}lV6LgY?SlD4=+76H0w?YCm*>x+QuNZ7&Zheycl~us znr4kUeeDwxVNjs{aTxtS;;H`GkN{wetbchbfI8=HMQZ6lRF76VUvC7qepEhPK<*hi zSFuuO0nZDS-tqCknKw%BhCMV}ycHJ<8=C)PQ zm)7@z*tN==>>Lu~CFR{@%G}k*VCR2?793#k=#c>YH`d^Fg#uG;H;j!V@%33?n0bo= zTYb?mYa?MskzxL|i{zpUhLrC(ngQnxo1`c}ZDZKgIn)d^4|=V7S+^(qYY2q1OVS|GQ4i5fZ4bing>iL6~8t#XGekAg@=Ph3qQsfF6uk9 lA3rZ<=@(J6BD;+XU(sz=?2vA0-&l8D8)bba%9?#T=l{y*qptt} delta 4023 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 diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index fda43a8f16..bb350ebceb 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -202,18 +202,43 @@ CAudioMixerBoard - + + Personal Mix at the Server + + + + + When connected to a server, the controls here allow you to set + + + + + your local mix without affecting what others hear from you. + + + + + The title shows the server name and, when known, whether it is actively recording. + + + + Server Servidor - + T R Y I N G T O C O N N E C T T E N T A N D O L I G A R - - Personal Mix at the Server: + + RECORDING ACTIVE + + + + + Personal Mix at: Mistura Pessoal no Servidor: @@ -719,7 +744,7 @@ - + C&onnect &Ligar @@ -773,18 +798,18 @@ Nenhum - + Center Centro - + R R - + L L @@ -869,22 +894,22 @@ - + Central Server Servidor Central - + user utilizador - + users utilizadores - + D&isconnect Desl&igar @@ -1513,22 +1538,22 @@ Manual - + Custom Personalizado - + All Genres Servidor Geral - + Genre Rock Servidor Rock - + Genre Jazz Servidor Jazz @@ -1537,12 +1562,12 @@ Servidor Rock/Jazz - + Genre Classical/Folk/Choir Serv. Clássica/Folclore/Coro - + Default Servidor Padrão @@ -2631,22 +2656,22 @@ - + Predefined Address Endereço Predefinido - + Recording A gravar - + Not recording Não está a gravar - + Not enabled Desactivado @@ -2673,42 +2698,42 @@ &Janela - + Unregistered Não Registado - + Bad address Endereço incorrecto - + Registration requested Registo solicitado - + Registration failed Falha no registo - + Check server version Verifique versão do servidor - + Registered Registado - + Central Server full Servidor Central Cheio - + Unknown value Valor desconhecido From c5e4d75be077df7026413ccf7385cf237c1f59fa Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 15 Jun 2020 22:45:11 +0200 Subject: [PATCH 177/936] move the channels tighter together in slim fader mode; adjust help text so that we have as little HTML as possible to simplify translation --- src/audiomixerboard.cpp | 20 ++++++++++++++------ src/res/translation/translation_de_DE.ts | 24 +++++++----------------- src/res/translation/translation_es_ES.ts | 24 +++++++----------------- src/res/translation/translation_fr_FR.ts | 24 +++++++----------------- src/res/translation/translation_it_IT.ts | 24 +++++++----------------- src/res/translation/translation_nl_NL.ts | 24 +++++++----------------- src/res/translation/translation_pl_PL.ts | 24 +++++++----------------- src/res/translation/translation_pt_PT.ts | 24 +++++++----------------- 8 files changed, 63 insertions(+), 125 deletions(-) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 0a1d902d54..232795824c 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -628,13 +628,11 @@ CAudioMixerBoard::CAudioMixerBoard ( QWidget* parent, Qt::WindowFlags ) : pScrollArea = new CMixerBoardScrollArea ( this ); pMainLayout = new QHBoxLayout ( pMixerWidget ); - setAccessibleName ( "Personal Mix at the Server groupbox" ); - setWhatsThis ( "" + tr ( "Personal Mix at the Server" ) + ": " + - tr ( "When connected to a server, the controls here allow you to set " ) + - tr ( "your local mix without affecting what others hear from you." ) + "
" + - tr ( "The title shows the server name and, when known, " - "whether it is actively recording." ) ); + setWhatsThis ( "" + tr ( "Personal Mix at the Server" ) + ": " + tr ( + "When connected to a server, the controls here allow you to set your " + "local mix without affecting what others hear from you. The title shows " + "the server name and, when known, whether it is actively recording." ) ); // set title text (default: no server given) SetServerName ( "" ); @@ -718,6 +716,16 @@ void CAudioMixerBoard::SetServerName ( const QString& strNewServerName ) void CAudioMixerBoard::SetGUIDesign ( const EGUIDesign eNewDesign ) { + // move the channels tighter together in slim fader mode + if ( eNewDesign == GD_SLIMFADER ) + { + pMainLayout->setSpacing ( 2 ); + } + else + { + pMainLayout->setSpacing ( 6 ); // Qt default spacing value + } + // apply GUI design to child GUI controls for ( int i = 0; i < MAX_NUM_CHANNELS; i++ ) { diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index 69ce25b39d..e277548b80 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -190,42 +190,32 @@ CAudioMixerBoard - + Personal Mix at the Server - - When connected to a server, the controls here allow you to set + + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. - - your local mix without affecting what others hear from you. - - - - - The title shows the server name and, when known, whether it is actively recording. - - - - + Server - + T R Y I N G T O C O N N E C T V E R B I N D U N G S A U F B A U - + RECORDING ACTIVE - + Personal Mix at: Eigener Mix am Server: diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index 525fb64947..46f1aa36b0 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -194,42 +194,32 @@ CAudioMixerBoard - + Personal Mix at the Server - - When connected to a server, the controls here allow you to set + + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. - - your local mix without affecting what others hear from you. - - - - - The title shows the server name and, when known, whether it is actively recording. - - - - + Server Servidor - + T R Y I N G T O C O N N E C T I N T E N T A N D O C O N E C T A R - + RECORDING ACTIVE - + Personal Mix at: Mezcla Personal en el Servidor: diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index 0e73552bd7..a68567912f 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -202,42 +202,32 @@ CAudioMixerBoard - + Personal Mix at the Server - - When connected to a server, the controls here allow you to set + + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. - - your local mix without affecting what others hear from you. - - - - - The title shows the server name and, when known, whether it is actively recording. - - - - + Server Serveur - + T R Y I N G T O C O N N E C T T E N T A T I V E D E C O N N E X I O N - + RECORDING ACTIVE - + Personal Mix at: Mixage personnel du serveur : diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index d49733c283..ab4e963336 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -190,42 +190,32 @@ CAudioMixerBoard - + Personal Mix at the Server - - When connected to a server, the controls here allow you to set + + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. - - your local mix without affecting what others hear from you. - - - - - The title shows the server name and, when known, whether it is actively recording. - - - - + Server Server - + T R Y I N G T O C O N N E C T I N A T T E S A D I C O N N E S S I O N E - + RECORDING ACTIVE - + Personal Mix at: Mixer personale sul Server: diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index c864878d9e..e5536f94d4 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -190,42 +190,32 @@ CAudioMixerBoard - + Personal Mix at the Server - - When connected to a server, the controls here allow you to set + + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. - - your local mix without affecting what others hear from you. - - - - - The title shows the server name and, when known, whether it is actively recording. - - - - + Server Server - + T R Y I N G T O C O N N E C T A A N H E T V E R B I N D E N - + RECORDING ACTIVE - + Personal Mix at: diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index 18bd9f20ad..8c0cb2bb60 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -158,42 +158,32 @@ CAudioMixerBoard - + Personal Mix at the Server - - When connected to a server, the controls here allow you to set + + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. - - your local mix without affecting what others hear from you. - - - - - The title shows the server name and, when known, whether it is actively recording. - - - - + Server - + T R Y I N G T O C O N N E C T - + RECORDING ACTIVE - + Personal Mix at: diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index bb350ebceb..7eb3a4624c 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -202,42 +202,32 @@ CAudioMixerBoard - + Personal Mix at the Server - - When connected to a server, the controls here allow you to set + + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. - - your local mix without affecting what others hear from you. - - - - - The title shows the server name and, when known, whether it is actively recording. - - - - + Server Servidor - + T R Y I N G T O C O N N E C T T E N T A N D O L I G A R - + RECORDING ACTIVE - + Personal Mix at: Mistura Pessoal no Servidor: From 4841437d4602632215a0ef66018bbe2cf3bb1a76 Mon Sep 17 00:00:00 2001 From: daryl Date: Tue, 16 Jun 2020 12:54:30 +0200 Subject: [PATCH 178/936] Spanish tr update --- src/res/translation/translation_es_ES.ts | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index 46f1aa36b0..a89863cd5c 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -196,12 +196,12 @@ Personal Mix at the Server - + Mezcla personal en el Servidor When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. - + Estando conectado a un servidor, estos controles te permiten hacer tu mezcla personal sin afectar lo que otros escuchan de tí. El título muestra el nombre del servidor y, cuando se conoce, si está activamente grabando. @@ -216,7 +216,7 @@ RECORDING ACTIVE - + GRABACIÓN ACTIVA @@ -378,12 +378,12 @@ M - + M S - + S @@ -1132,12 +1132,12 @@ Fancy - + Oscuro Compact - + Compacto The buffer delay setting is a fundamental setting of the @@ -1434,17 +1434,17 @@ Skin - + Skin Select the skin to be used for the main window. - + Elige el skin a utilizar para la ventana principal. Skin combo box - + Campo skin @@ -1732,7 +1732,7 @@ Skin - + Skin @@ -2788,7 +2788,7 @@ Genre - + Género From dc7a844f0b8bac2863e6a74ce771ccb68082db1a Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 16 Jun 2020 16:58:45 +0200 Subject: [PATCH 179/936] bug fix with recording state indicator --- src/audiomixerboard.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 232795824c..97ff713547 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -782,6 +782,7 @@ void CAudioMixerBoard::HideAll() // set flags bIsPanSupported = false; bNoFaderVisible = true; + eRecorderState = RS_UNDEFINED; iMyChannelID = INVALID_INDEX; // use original order of channel (by server ID) From 1651a8d0654164187acd53d5e8f17046db4598e6 Mon Sep 17 00:00:00 2001 From: Hector Martin Date: Wed, 3 Jun 2020 14:10:50 +0900 Subject: [PATCH 180/936] Add a "headless" build type which does not depend on QtGui/QtWidgets --- Jamulus.pro | 59 ++++++++++++++++++++------------ src/client.h | 1 - src/clientdlg.h | 1 + src/clientsettingsdlg.h | 1 + src/historygraph.cpp | 2 ++ src/historygraph.h | 8 +++-- src/main.cpp | 35 +++++++++++++++---- src/multicolorledbar.h | 16 +++++---- src/serverlogging.cpp | 20 +++++++++-- src/serverlogging.h | 4 +++ src/socket.h | 1 - src/soundbase.cpp | 6 ++++ src/soundbase.h | 1 - src/util.cpp | 75 +++++++++++++++++++++-------------------- src/util.h | 29 ++++++++++------ 15 files changed, 168 insertions(+), 91 deletions(-) diff --git a/Jamulus.pro b/Jamulus.pro index 501922eab6..b9fbd0dd78 100755 --- a/Jamulus.pro +++ b/Jamulus.pro @@ -10,10 +10,15 @@ CONFIG += qt \ thread \ release -QT += widgets \ - network \ +QT += network \ xml +!contains(CONFIG, "headless") { + QT += widgets +} else { + QT -= gui +} + TRANSLATIONS = src/res/translation/translation_de_DE.ts \ src/res/translation/translation_fr_FR.ts \ src/res/translation/translation_pt_PT.ts \ @@ -324,25 +329,18 @@ win32 { RCC_DIR = src/res RESOURCES += src/resources.qrc -FORMS += src/clientdlgbase.ui \ +FORMS_GUI = src/clientdlgbase.ui \ src/serverdlgbase.ui \ src/clientsettingsdlgbase.ui \ src/chatdlgbase.ui \ src/connectdlgbase.ui \ src/aboutdlgbase.ui -HEADERS += src/audiomixerboard.h \ - src/buffer.h \ +HEADERS += src/buffer.h \ src/channel.h \ - src/chatdlg.h \ src/client.h \ - src/clientsettingsdlg.h \ - src/connectdlg.h \ src/global.h \ - src/clientdlg.h \ - src/serverdlg.h \ src/multicolorled.h \ - src/multicolorledbar.h \ src/protocol.h \ src/server.h \ src/serverlist.h \ @@ -352,13 +350,21 @@ HEADERS += src/audiomixerboard.h \ src/soundbase.h \ src/testbench.h \ src/util.h \ - src/analyzerconsole.h \ src/recorder/jamrecorder.h \ src/recorder/creaperproject.h \ src/recorder/cwavestream.h \ src/historygraph.h \ src/signalhandler.h +HEADERS_GUI = src/audiomixerboard.h \ + src/chatdlg.h \ + src/clientsettingsdlg.h \ + src/connectdlg.h \ + src/clientdlg.h \ + src/serverdlg.h \ + src/multicolorledbar.h \ + src/analyzerconsole.h + HEADERS_OPUS = libs/opus/celt/arch.h \ libs/opus/celt/bands.h \ libs/opus/celt/celt.h \ @@ -430,18 +436,10 @@ HEADERS_OPUS_X86 = libs/opus/celt/x86/celt_lpc_sse.h \ libs/opus/celt/x86/vq_sse.h \ libs/opus/celt/x86/x86cpu.h -SOURCES += src/audiomixerboard.cpp \ - src/buffer.cpp \ +SOURCES += src/buffer.cpp \ src/channel.cpp \ - src/chatdlg.cpp \ src/client.cpp \ - src/clientsettingsdlg.cpp \ - src/connectdlg.cpp \ - src/clientdlg.cpp \ - src/serverdlg.cpp \ src/main.cpp \ - src/multicolorled.cpp \ - src/multicolorledbar.cpp \ src/protocol.cpp \ src/server.cpp \ src/serverlist.cpp \ @@ -451,12 +449,21 @@ SOURCES += src/audiomixerboard.cpp \ src/socket.cpp \ src/soundbase.cpp \ src/util.cpp \ - src/analyzerconsole.cpp \ src/recorder/jamrecorder.cpp \ src/recorder/creaperproject.cpp \ src/recorder/cwavestream.cpp \ src/historygraph.cpp +SOURCES_GUI = src/audiomixerboard.cpp \ + src/chatdlg.cpp \ + src/clientsettingsdlg.cpp \ + src/connectdlg.cpp \ + src/clientdlg.cpp \ + src/serverdlg.cpp \ + src/multicolorled.cpp \ + src/multicolorledbar.cpp \ + src/analyzerconsole.cpp + SOURCES_OPUS = libs/opus/celt/bands.c \ libs/opus/celt/celt.c \ libs/opus/celt/celt_decoder.c \ @@ -985,6 +992,14 @@ DISTFILES_OPUS += libs/opus/AUTHORS \ libs/opus/celt/arm/armopts.s.in \ libs/opus/celt/arm/celt_pitch_xcorr_arm.s \ +!contains(CONFIG, "headless") { + HEADERS += $$HEADERS_GUI + SOURCES += $$SOURCES_GUI + FORMS += $$FORMS_GUI +} else { + DEFINES += HEADLESS +} + # use external OPUS library if requested contains(CONFIG, "opus_shared_lib") { message(OPUS codec is used from a shared library.) diff --git a/src/client.h b/src/client.h index 0a5760685d..24c6175016 100755 --- a/src/client.h +++ b/src/client.h @@ -28,7 +28,6 @@ #include #include #include -#include #ifdef USE_OPUS_SHARED_LIB # include "opus/opus_custom.h" #else diff --git a/src/clientdlg.h b/src/clientdlg.h index 4058b6de65..79ead5ce69 100755 --- a/src/clientdlg.h +++ b/src/clientdlg.h @@ -33,6 +33,7 @@ #include #include #include +#include #if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0) # include #endif diff --git a/src/clientsettingsdlg.h b/src/clientsettingsdlg.h index c6327bae50..da5c31cb77 100755 --- a/src/clientsettingsdlg.h +++ b/src/clientsettingsdlg.h @@ -34,6 +34,7 @@ #include #include #include +#include #include "global.h" #include "client.h" #include "multicolorled.h" diff --git a/src/historygraph.cpp b/src/historygraph.cpp index ffdf1daa06..9bd005c635 100644 --- a/src/historygraph.cpp +++ b/src/historygraph.cpp @@ -299,6 +299,7 @@ void AHistoryGraph::AddMarker ( const SHistoryData& curHistoryData ) /* JPEG History Graph implementation ******************************************/ +#ifndef HEADLESS CJpegHistoryGraph::CJpegHistoryGraph ( const int iMaxDaysHistory ) : AHistoryGraph ( iMaxDaysHistory ), PlotPixmap ( 1, 1, QImage::Format_RGB32 ), @@ -401,6 +402,7 @@ void CJpegHistoryGraph::point ( const unsigned int x, const unsigned int y, cons PlotPainter.setPen ( QPen ( QBrush( QColor ( colour ) ), size ) ); PlotPainter.drawPoint ( x, y ); } +#endif /* SVG History Graph implementation *******************************************/ diff --git a/src/historygraph.h b/src/historygraph.h index 309c28d89d..77034f97fc 100644 --- a/src/historygraph.h +++ b/src/historygraph.h @@ -34,8 +34,10 @@ #include "util.h" // for CJpegHistoryGraph -#include -#include +#ifndef HEADLESS +# include +# include +#endif // for CSvgHistoryGraph #include @@ -134,6 +136,7 @@ class AHistoryGraph /* Implementations ************************************************************/ +#ifndef HEADLESS class CJpegHistoryGraph : public QObject, virtual public AHistoryGraph { Q_OBJECT @@ -157,6 +160,7 @@ class CJpegHistoryGraph : public QObject, virtual public AHistoryGraph public slots: void OnTimerDailyUpdate() { Update(); } }; +#endif class CSvgHistoryGraph : public QObject, virtual public AHistoryGraph { diff --git a/src/main.cpp b/src/main.cpp index 03b1fc3535..801be8e8ce 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -22,15 +22,18 @@ * \******************************************************************************/ -#include -#include +#include #include #include #include #include #include "global.h" -#include "clientdlg.h" -#include "serverdlg.h" +#ifndef HEADLESS +# include +# include +# include "clientdlg.h" +# include "serverdlg.h" +#endif #include "settings.h" #include "testbench.h" #include "util.h" @@ -471,7 +474,7 @@ int main ( int argc, char** argv ) if ( ( !strcmp ( argv[i], "--version" ) ) || ( !strcmp ( argv[i], "-v" ) ) ) { - tsConsole << CAboutDlg::GetVersionAndNameStr ( false ) << endl; + tsConsole << GetVersionAndNameStr ( false ) << endl; exit ( 1 ); } @@ -499,6 +502,14 @@ int main ( int argc, char** argv ) #endif } +#ifdef HEADLESS + if (bUseGUI) + { + bUseGUI = false; + tsConsole << "No GUI support compiled. Running in headless mode." << endl; + } +#endif + // Dependencies ------------------------------------------------------------ // per definition: if we are in "GUI" server mode and no central server @@ -523,9 +534,13 @@ int main ( int argc, char** argv ) // Application/GUI setup --------------------------------------------------- // Application object +#ifdef HEADLESS + QCoreApplication* pApp = new QCoreApplication ( argc, argv ); +#else QCoreApplication* pApp = bUseGUI ? new QApplication ( argc, argv ) : new QCoreApplication ( argc, argv ); +#endif #ifdef ANDROID // special Android coded needed for record audio permission handling @@ -602,6 +617,7 @@ int main ( int argc, char** argv ) CSettings Settings ( &Client, strIniFileName ); Settings.Load(); +#ifndef HEADLESS if ( bUseGUI ) { // GUI object @@ -619,9 +635,10 @@ int main ( int argc, char** argv ) pApp->exec(); } else +#endif { // only start application without using the GUI - tsConsole << CAboutDlg::GetVersionAndNameStr ( false ) << endl; + tsConsole << GetVersionAndNameStr ( false ) << endl; pApp->exec(); } @@ -645,6 +662,7 @@ int main ( int argc, char** argv ) bDisconnectAllClientsOnQuit, bUseDoubleSystemFrameSize, eLicenceType ); +#ifndef HEADLESS if ( bUseGUI ) { // load settings from init-file @@ -671,9 +689,10 @@ int main ( int argc, char** argv ) pApp->exec(); } else +#endif { // only start application without using the GUI - tsConsole << CAboutDlg::GetVersionAndNameStr ( false ) << endl; + tsConsole << GetVersionAndNameStr ( false ) << endl; // update serverlist Server.UpdateServerList(); @@ -686,6 +705,7 @@ int main ( int argc, char** argv ) catch ( CGenErr generr ) { // show generic error +#ifndef HEADLESS if ( bUseGUI ) { QMessageBox::critical ( nullptr, @@ -695,6 +715,7 @@ int main ( int argc, char** argv ) nullptr ); } else +#endif { tsConsole << generr.GetErrorText() << endl; } diff --git a/src/multicolorledbar.h b/src/multicolorledbar.h index e64dab1273..6f855b5b4c 100755 --- a/src/multicolorledbar.h +++ b/src/multicolorledbar.h @@ -24,12 +24,14 @@ #pragma once -#include -#include -#include -#include -#include -#include +#ifndef HEADLESS +# include +# include +# include +# include +# include +# include +#endif #include "util.h" #include "global.h" @@ -42,6 +44,7 @@ /* Classes ********************************************************************/ +#ifndef HEADLESS class CMultiColorLEDBar : public QWidget { Q_OBJECT @@ -95,3 +98,4 @@ class CMultiColorLEDBar : public QWidget CVector vecpLEDs; QProgressBar* pProgressBar; }; +#endif diff --git a/src/serverlogging.cpp b/src/serverlogging.cpp index 702aa7b088..cdbe446878 100755 --- a/src/serverlogging.cpp +++ b/src/serverlogging.cpp @@ -47,13 +47,15 @@ void CServerLogging::Start ( const QString& strLoggingFileName ) void CServerLogging::EnableHistory ( const QString& strHistoryFileName ) { - if ( strHistoryFileName.right ( 4 ).compare ( ".svg", Qt::CaseInsensitive ) == 0 ) +#ifndef HEADLESS + if ( strHistoryFileName.right ( 4 ).compare ( ".svg", Qt::CaseInsensitive ) != 0 ) { - SvgHistoryGraph.Start ( strHistoryFileName ); + JpegHistoryGraph.Start ( strHistoryFileName ); } else +#endif { - JpegHistoryGraph.Start ( strHistoryFileName ); + SvgHistoryGraph.Start ( strHistoryFileName ); } } @@ -68,7 +70,9 @@ void CServerLogging::AddNewConnection ( const QHostAddress& ClientInetAddr ) *this << strLogStr; // in log file // add element to history +#ifndef HEADLESS JpegHistoryGraph.Add ( QDateTime::currentDateTime(), ClientInetAddr ); +#endif SvgHistoryGraph.Add ( QDateTime::currentDateTime(), ClientInetAddr ); } @@ -82,10 +86,14 @@ void CServerLogging::AddServerStopped() *this << strLogStr; // in log file // add element to history and update on server stop +#ifndef HEADLESS JpegHistoryGraph.Add ( QDateTime::currentDateTime(), AHistoryGraph::HIT_SERVER_STOP ); +#endif SvgHistoryGraph.Add ( QDateTime::currentDateTime(), AHistoryGraph::HIT_SERVER_STOP ); +#ifndef HEADLESS JpegHistoryGraph.Update(); +#endif SvgHistoryGraph.Update(); } @@ -133,7 +141,9 @@ void CServerLogging::ParseLogFile ( const QString& strFileName ) if ( strAddress.isEmpty() ) { // server stop +#ifndef HEADLESS JpegHistoryGraph.Add ( curDateTime, AHistoryGraph::HIT_SERVER_STOP ); +#endif SvgHistoryGraph.Add ( curDateTime, CSvgHistoryGraph::HIT_SERVER_STOP ); } else @@ -144,7 +154,9 @@ void CServerLogging::ParseLogFile ( const QString& strFileName ) if ( curAddress.setAddress ( strlistCurLine.at ( 1 ).trimmed() ) ) { // new client connection +#ifndef HEADLESS JpegHistoryGraph.Add ( curDateTime, curAddress ); +#endif SvgHistoryGraph.Add ( curDateTime, curAddress ); } } @@ -152,7 +164,9 @@ void CServerLogging::ParseLogFile ( const QString& strFileName ) } } +#ifndef HEADLESS JpegHistoryGraph.Update(); +#endif SvgHistoryGraph.Update(); } diff --git a/src/serverlogging.h b/src/serverlogging.h index 7aeae493ba..71587d55e1 100755 --- a/src/serverlogging.h +++ b/src/serverlogging.h @@ -39,7 +39,9 @@ class CServerLogging { public: CServerLogging ( const int iMaxDaysHistory ) : +#ifndef HEADLESS JpegHistoryGraph ( iMaxDaysHistory ), +#endif SvgHistoryGraph ( iMaxDaysHistory ), bDoLogging ( false ), File ( DEFAULT_LOG_FILE_NAME ) {} @@ -56,7 +58,9 @@ class CServerLogging void operator<< ( const QString& sNewStr ); QString CurTimeDatetoLogString(); +#ifndef HEADLESS CJpegHistoryGraph JpegHistoryGraph; +#endif CSvgHistoryGraph SvgHistoryGraph; bool bDoLogging; QFile File; diff --git a/src/socket.h b/src/socket.h index bf21abf001..adc9c67f6f 100755 --- a/src/socket.h +++ b/src/socket.h @@ -25,7 +25,6 @@ #pragma once #include -#include #include #include #include diff --git a/src/soundbase.cpp b/src/soundbase.cpp index 7f4b530c98..7d5adb4a2f 100755 --- a/src/soundbase.cpp +++ b/src/soundbase.cpp @@ -22,6 +22,10 @@ * \******************************************************************************/ +#ifndef HEADLESS +# include +#endif + #include "soundbase.h" @@ -137,6 +141,7 @@ QString CSoundBase::SetDev ( const int iNewDev ) // the same driver is used but the driver properties seems to // have changed so that they are not compatible to our // software anymore +#ifndef HEADLESS QMessageBox::critical ( nullptr, APP_NAME, QString ( tr ( "The audio driver properties " "have changed to a state which is incompatible with this " @@ -145,6 +150,7 @@ QString CSoundBase::SetDev ( const int iNewDev ) strErrorMessage + QString ( "


" + tr ( "Please restart the software." ) ), tr ( "Close" ), nullptr ); +#endif _exit ( 0 ); } diff --git a/src/soundbase.h b/src/soundbase.h index b6a7a4cbe4..fbd5883af9 100755 --- a/src/soundbase.h +++ b/src/soundbase.h @@ -26,7 +26,6 @@ #include #include -#include #include "global.h" #include "util.h" diff --git a/src/util.cpp b/src/util.cpp index b1b4ba8a9e..65fcebe730 100755 --- a/src/util.cpp +++ b/src/util.cpp @@ -371,6 +371,7 @@ void CAudioReverb::Process ( CVector& vecsStereoInOut, * GUI Utilities * \******************************************************************************/ // About dialog ---------------------------------------------------------------- +#ifndef HEADLESS CAboutDlg::CAboutDlg ( QWidget* parent ) : QDialog ( parent ) { setupUi ( this ); @@ -455,43 +456,6 @@ CAboutDlg::CAboutDlg ( QWidget* parent ) : QDialog ( parent ) setWindowTitle ( tr ( "About " ) + APP_NAME ); } -QString CAboutDlg::GetVersionAndNameStr ( const bool bWithHtml ) -{ - QString strVersionText = ""; - - // name, short description and GPL hint - if ( bWithHtml ) - { - strVersionText += ""; - } - else - { - strVersionText += " *** "; - } - - strVersionText += APP_NAME + tr ( ", Version " ) + VERSION; - - if ( bWithHtml ) - { - strVersionText += "
"; - } - else - { - strVersionText += "\n *** "; - } - - if ( !bWithHtml ) - { - strVersionText += tr ( "Internet Jam Session Software" ); - strVersionText += "\n *** "; - } - - strVersionText += tr ( "Released under the GNU General Public License (GPL)" ); - - return strVersionText; -} - - // Licence dialog -------------------------------------------------------------- CLicenceDlg::CLicenceDlg ( QWidget* parent ) : QDialog ( parent ) { @@ -886,6 +850,7 @@ CHelpMenu::CHelpMenu ( const bool bIsClient, QWidget* parent ) : QMenu ( tr ( "& addAction ( tr ( "&About..." ), this, SLOT ( OnHelpAbout() ) ); } +#endif /******************************************************************************\ * Other Classes * @@ -1428,3 +1393,39 @@ void DebugError ( const QString& pchErDescr, printf ( "\nDebug error! For more information see test/DebugError.dat\n" ); exit ( 1 ); } + +QString GetVersionAndNameStr ( const bool bWithHtml ) +{ + QString strVersionText = ""; + + // name, short description and GPL hint + if ( bWithHtml ) + { + strVersionText += ""; + } + else + { + strVersionText += " *** "; + } + + strVersionText += APP_NAME + QCoreApplication::tr ( ", Version " ) + VERSION; + + if ( bWithHtml ) + { + strVersionText += "
"; + } + else + { + strVersionText += "\n *** "; + } + + if ( !bWithHtml ) + { + strVersionText += QCoreApplication::tr ( "Internet Jam Session Software" ); + strVersionText += "\n *** "; + } + + strVersionText += QCoreApplication::tr ( "Released under the GNU General Public License (GPL)" ); + + return strVersionText; +} diff --git a/src/util.h b/src/util.h index 56c3aa49c3..9118f617e6 100755 --- a/src/util.h +++ b/src/util.h @@ -24,19 +24,22 @@ #pragma once +#include #include #include #include -#include -#include -#include -#include -#include -#include -#include -#include +#ifndef HEADLESS +# include +# include +# include +# include +# include +# include +# include +# include +# include +#endif #include -#include #include #include #include @@ -56,7 +59,9 @@ using namespace std; // because of the library: "vector" #else # include #endif -#include "ui_aboutdlgbase.h" +#ifndef HEADLESS +# include "ui_aboutdlgbase.h" +#endif class CClient; // forward declaration of CClient @@ -100,6 +105,7 @@ inline int CalcBitRateBitsPerSecFromCodedBytes ( const int iCeltNumCodedBytes, return ( SYSTEM_SAMPLE_RATE_HZ * iCeltNumCodedBytes * 8 ) / iFrameSize; } +QString GetVersionAndNameStr ( const bool bWithHtml = true ); /******************************************************************************\ @@ -408,6 +414,7 @@ template void CMovingAv::Add ( const TData tNewD ) /******************************************************************************\ * GUI Utilities * \******************************************************************************/ +#ifndef HEADLESS // About dialog ---------------------------------------------------------------- class CAboutDlg : public QDialog, private Ui_CAboutDlgBase { @@ -416,7 +423,6 @@ class CAboutDlg : public QDialog, private Ui_CAboutDlgBase public: CAboutDlg ( QWidget* parent = nullptr ); - static QString GetVersionAndNameStr ( const bool bWithHtml = true ); }; @@ -484,6 +490,7 @@ public slots: void OnHelpSoftwareMan() { QDesktopServices::openUrl ( QUrl ( SOFTWARE_MANUAL_URL ) ); } }; +#endif // Console writer factory ------------------------------------------------------ // this class was written by pljones From a2a489e6f0c0399f9cd72ce582aeeda82749e10a Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Wed, 17 Jun 2020 19:26:24 +0200 Subject: [PATCH 181/936] merge fixes --- ChangeLog | 1 + src/util.cpp | 1 + 2 files changed, 2 insertions(+) diff --git a/ChangeLog b/ChangeLog index 203b40e55f..f453a3ffe6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -13,6 +13,7 @@ - support for storing/recovering the server window positions (#357) +- add a headless build type which does not depend on QtGui/QtWidgets, coded by marcan (#322) diff --git a/src/util.cpp b/src/util.cpp index 65fcebe730..d039d80223 100755 --- a/src/util.cpp +++ b/src/util.cpp @@ -421,6 +421,7 @@ CAboutDlg::CAboutDlg ( QWidget* parent ) : QDialog ( parent ) "

Olivier Humbert (trebmuh)

" "

Tarmo Johannes (tarmoj)

" "

mirabilos (mirabilos)

" + "

Hector Martin (marcan)

" "

newlaurent62 (newlaurent62)

" "

AronVietti (AronVietti)

" "

Emlyn Bolton (emlynmac)

" From 30d81814239278b0e996b205af24c4baf793930b Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Wed, 17 Jun 2020 19:34:51 +0200 Subject: [PATCH 182/936] some more merge fixes --- Jamulus.pro | 12 ++++++------ src/main.cpp | 7 ++++--- src/soundbase.cpp | 4 ---- src/soundbase.h | 3 +++ 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Jamulus.pro b/Jamulus.pro index b9fbd0dd78..6cc6f0a41e 100755 --- a/Jamulus.pro +++ b/Jamulus.pro @@ -13,10 +13,10 @@ CONFIG += qt \ QT += network \ xml -!contains(CONFIG, "headless") { - QT += widgets -} else { +contains(CONFIG, "headless") { QT -= gui +} else { + QT += widgets } TRANSLATIONS = src/res/translation/translation_de_DE.ts \ @@ -992,12 +992,12 @@ DISTFILES_OPUS += libs/opus/AUTHORS \ libs/opus/celt/arm/armopts.s.in \ libs/opus/celt/arm/celt_pitch_xcorr_arm.s \ -!contains(CONFIG, "headless") { +contains(CONFIG, "headless") { + DEFINES += HEADLESS +} else { HEADERS += $$HEADERS_GUI SOURCES += $$SOURCES_GUI FORMS += $$FORMS_GUI -} else { - DEFINES += HEADLESS } # use external OPUS library if requested diff --git a/src/main.cpp b/src/main.cpp index 801be8e8ce..9a19c85f9b 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -503,7 +503,7 @@ int main ( int argc, char** argv ) } #ifdef HEADLESS - if (bUseGUI) + if ( bUseGUI ) { bUseGUI = false; tsConsole << "No GUI support compiled. Running in headless mode." << endl; @@ -538,8 +538,8 @@ int main ( int argc, char** argv ) QCoreApplication* pApp = new QCoreApplication ( argc, argv ); #else QCoreApplication* pApp = bUseGUI - ? new QApplication ( argc, argv ) - : new QCoreApplication ( argc, argv ); + ? new QApplication ( argc, argv ) + : new QCoreApplication ( argc, argv ); #endif #ifdef ANDROID @@ -662,6 +662,7 @@ int main ( int argc, char** argv ) bDisconnectAllClientsOnQuit, bUseDoubleSystemFrameSize, eLicenceType ); + #ifndef HEADLESS if ( bUseGUI ) { diff --git a/src/soundbase.cpp b/src/soundbase.cpp index 7d5adb4a2f..5e8a9702dd 100755 --- a/src/soundbase.cpp +++ b/src/soundbase.cpp @@ -22,10 +22,6 @@ * \******************************************************************************/ -#ifndef HEADLESS -# include -#endif - #include "soundbase.h" diff --git a/src/soundbase.h b/src/soundbase.h index fbd5883af9..ab588a4678 100755 --- a/src/soundbase.h +++ b/src/soundbase.h @@ -26,6 +26,9 @@ #include #include +#ifndef HEADLESS +# include +#endif #include "global.h" #include "util.h" From b84d9448ed39fbfbc8dc2460d6f1ff0bb2c061b9 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Wed, 17 Jun 2020 19:38:45 +0200 Subject: [PATCH 183/936] output a qmake message on headless mode --- Jamulus.pro | 1 + 1 file changed, 1 insertion(+) diff --git a/Jamulus.pro b/Jamulus.pro index 6cc6f0a41e..a2297d6af8 100755 --- a/Jamulus.pro +++ b/Jamulus.pro @@ -14,6 +14,7 @@ QT += network \ xml contains(CONFIG, "headless") { + message(Headless mode activated.) QT -= gui } else { QT += widgets From e9f0af6864f3089b14d37670d4fb478da53c3cae Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 18 Jun 2020 16:20:19 +0200 Subject: [PATCH 184/936] check "headless nosound" mode in Travis --- .travis.yml | 4 ++++ Jamulus.pro | 3 +-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index b403dd389c..18bab97a35 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,6 +12,10 @@ matrix: - gcc script: - echo $TRAVIS_TAG + # headless server compilation + - qmake "CONFIG+=headless nosound" Jamulus.pro + - make + # normal compilation - qmake Jamulus.pro - make #deploy function is only available in travis-ci.com (not free) but not in travis-ci.org (free) diff --git a/Jamulus.pro b/Jamulus.pro index 6cc6f0a41e..e7a1cf3b68 100755 --- a/Jamulus.pro +++ b/Jamulus.pro @@ -281,8 +281,7 @@ win32 { DEFINES += HAVE_STDINT_H # only include jack support if CONFIG nosound is not set - nosoundoption = $$find(CONFIG, "nosound") - count(nosoundoption, 0) { + !contains(CONFIG, "nosound") { message(Jack Audio Interface Enabled.) contains(CONFIG, "raspijamulus") { From e73b198f9291437a9cac90b8b9e94363ebbabc52 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 18 Jun 2020 19:16:31 +0200 Subject: [PATCH 185/936] the local pan middle position is no longer attenuated in Mono-in/Stereo-out mode (#353) --- ChangeLog | 1 + src/client.cpp | 12 +++++++----- src/server.cpp | 4 ++-- src/util.h | 19 +++++++++++++------ 4 files changed, 23 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index f453a3ffe6..38b297710f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -15,6 +15,7 @@ - add a headless build type which does not depend on QtGui/QtWidgets, coded by marcan (#322) +- the local pan middle position is no longer attenuated in Mono-in/Stereo-out mode (#353) diff --git a/src/client.cpp b/src/client.cpp index 35b8fea569..b88ace5a51 100755 --- a/src/client.cpp +++ b/src/client.cpp @@ -991,8 +991,8 @@ void CClient::ProcessAudioDataIntern ( CVector& vecsStereoSndCrd ) if ( eAudioChannelConf == CC_STEREO ) { // for stereo only apply pan attenuation on one channel (same as pan in the server) - const double dGainL = std::min ( 0.5, 1 - dPan ) * 2; - const double dGainR = std::min ( 0.5, dPan ) * 2; + const double dGainL = MathUtils::GetLeftPan ( dPan, false ); + const double dGainR = MathUtils::GetRightPan ( dPan, false ); for ( i = 0, j = 0; i < iMonoBlockSizeSam; i++, j += 2 ) { @@ -1004,12 +1004,14 @@ void CClient::ProcessAudioDataIntern ( CVector& vecsStereoSndCrd ) } else { - // for mono implement a cross-fade between channels and mix them - const double dGainL = 1 - dPan; - const double dGainR = dPan; + // for mono implement a cross-fade between channels and mix them, for + // mono-in/stereo-out use no attenuation in pan center + const double dGainL = MathUtils::GetLeftPan ( dPan, eAudioChannelConf != CC_MONO_IN_STEREO_OUT ); + const double dGainR = MathUtils::GetRightPan ( dPan, eAudioChannelConf != CC_MONO_IN_STEREO_OUT ); for ( i = 0, j = 0; i < iMonoBlockSizeSam; i++, j += 2 ) { + // note that we need the Double2Short for stereo pan mode vecsStereoSndCrd[i] = Double2Short ( dGainL * vecsStereoSndCrd[j] + dGainR * vecsStereoSndCrd[j + 1] ); } diff --git a/src/server.cpp b/src/server.cpp index 8c449e8bf0..0f2aa18446 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -1203,8 +1203,8 @@ void CServer::ProcessData ( const CVector >& vecvecsData, // calculate combined gain/pan for each stereo channel where we define // the panning that center equals full gain for both channels - const double dGainL = std::min ( 0.5, 1 - dPan ) * 2 * dGain; - const double dGainR = std::min ( 0.5, dPan ) * 2 * dGain; + const double dGainL = MathUtils::GetLeftPan ( dPan, false ) * dGain; + const double dGainR = MathUtils::GetRightPan ( dPan, false ) * dGain; // if channel gain is 1, avoid multiplication for speed optimization if ( ( dGainL == static_cast ( 1.0 ) ) && ( dGainR == static_cast ( 1.0 ) ) ) diff --git a/src/util.h b/src/util.h index 9118f617e6..ee70d662fe 100755 --- a/src/util.h +++ b/src/util.h @@ -508,8 +508,6 @@ class ConsoleWriterFactory /******************************************************************************\ * Other Classes/Enums * \******************************************************************************/ - - // Audio channel configuration ------------------------------------------------- enum EAudChanConf { @@ -1199,13 +1197,11 @@ class MathUtils // different IIR weights for up and down direction if ( dNewValue < dOldValue ) { - dOldValue = - dOldValue * dWeightDown + ( 1.0 - dWeightDown ) * dNewValue; + dOldValue = dOldValue * dWeightDown + ( 1.0 - dWeightDown ) * dNewValue; } else { - dOldValue = - dOldValue * dWeightUp + ( 1.0 - dWeightUp ) * dNewValue; + dOldValue = dOldValue * dWeightUp + ( 1.0 - dWeightUp ) * dNewValue; } } @@ -1223,6 +1219,17 @@ class MathUtils return round ( dValue + dHysteresis ); } } + + // calculate pan gains: in cross fade mode the pan center is attenuated + // by 6 dB, otherwise the center equals full gain for both channels + static inline double GetLeftPan ( const double dPan, const bool bXFade) + { + return bXFade ? 1 - dPan : std::min ( 0.5, 1 - dPan ) * 2; + } + static inline double GetRightPan ( const double dPan, const bool bXFade) + { + return bXFade ? dPan : std::min ( 0.5, dPan ) * 2; + } }; From 86ddedb3069aa2cbaec7c094cad5e488e697e021 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 18 Jun 2020 19:22:21 +0200 Subject: [PATCH 186/936] fix compiler warnings --- src/main.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main.cpp b/src/main.cpp index 9a19c85f9b..8acd1a43ef 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -508,6 +508,9 @@ int main ( int argc, char** argv ) bUseGUI = false; tsConsole << "No GUI support compiled. Running in headless mode." << endl; } + Q_UNUSED ( bStartMinimized ) // avoid compiler warnings + Q_UNUSED ( bShowComplRegConnList ) // avoid compiler warnings + Q_UNUSED ( bShowAnalyzerConsole ) // avoid compiler warnings #endif From 44977e6557699df304887180ccfcccac10b3835d Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 18 Jun 2020 21:00:27 +0200 Subject: [PATCH 187/936] added pt_BR initial translation file, update all translation files --- Jamulus.pro | 1 + src/res/translation/translation_de_DE.ts | 289 +-- src/res/translation/translation_es_ES.ts | 285 +-- src/res/translation/translation_fr_FR.ts | 285 +-- src/res/translation/translation_it_IT.ts | 287 +-- src/res/translation/translation_nl_NL.ts | 287 +-- src/res/translation/translation_pl_PL.ts | 291 +-- src/res/translation/translation_pt_BR.ts | 2626 ++++++++++++++++++++++ src/res/translation/translation_pt_PT.ts | 285 +-- 9 files changed, 3670 insertions(+), 966 deletions(-) create mode 100644 src/res/translation/translation_pt_BR.ts diff --git a/Jamulus.pro b/Jamulus.pro index b2476a5c16..e1ab05fd8d 100755 --- a/Jamulus.pro +++ b/Jamulus.pro @@ -23,6 +23,7 @@ contains(CONFIG, "headless") { TRANSLATIONS = src/res/translation/translation_de_DE.ts \ src/res/translation/translation_fr_FR.ts \ src/res/translation/translation_pt_PT.ts \ + src/res/translation/translation_pt_BR.ts \ src/res/translation/translation_es_ES.ts \ src/res/translation/translation_nl_NL.ts \ src/res/translation/translation_pl_PL.ts\ diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index e277548b80..a90b0107a0 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -28,17 +28,17 @@ verwendet die folgenden Bibliotheken, Ressourcen oder Codeschnipsel: - + Qt cross-platform application framework Qt plattformübergreifender Anwendungsrahmen - + Audio reverberation code by Perry R. Cook and Gary P. Scavone Halleffekt von Perry R. Cook und Gary P. Scavone - + Some pixmaps are from the Einige Bilder sind von @@ -47,84 +47,73 @@ Die Bilder der Länderflaggen sind von Mark James - + This app enables musicians to perform real-time jam sessions over the internet. Diese Software ermöglicht Musikern über das Internet in Echtzeit zu jammen. - + There is a server which collects the audio data from each client, mixes the audio data and sends the mix back to each client. Es gibt einen Server, der die Audiodaten von allen Musikern sammelt, zusammen mischt und wieder an alle verbundenen Musikern zurück schickt. - + This app uses the following libraries, resources or code snippets: Diese Applikation verwendet die folgenden Bibliotheken, Ressourcen oder Codeschnipsel: - + Country flag icons by Mark James 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 Holländisch - + Italian Italienisch - + German Deutsch - + About Über - - , Version - - - - - Internet Jam Session Software - - - - Released under the GNU General Public License (GPL) - Unter der GNU General Public License (GPL) + Unter der GNU General Public License (GPL) Under the GNU General Public License (GPL) @@ -210,12 +199,12 @@ V E R B I N D U N G S A U F B A U - + RECORDING ACTIVE - + Personal Mix at: Eigener Mix am Server: @@ -1528,22 +1517,22 @@ Manuell - + Custom Benutzerdefiniert - + All Genres Alle Genres - + Genre Rock Genre Rock - + Genre Jazz Genre Jazz @@ -1552,12 +1541,12 @@ Genre Rock/Jazz - + Genre Classical/Folk/Choir Genre Klassik/Volksmusik/Chor - + Default Standard @@ -1941,28 +1930,28 @@ CHelpMenu - + &Help &Hilfe - - + + Getting &Started... &Erste Schritte... - + Software &Manual... Software&handbuch... - + What's &This Konte&xthilfe - + &About... Ü&ber... @@ -1970,102 +1959,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 Sie stimmen zu, dass alle Daten, Klänge oder andere Arbeiten, die zum Server gesendet werden, Ihnen gehören oder von Ihnen selbst oder einem Lizenzgeber erstellt wurden und dass Sie diese Daten, Klänge oder andere Arbeiten unter die folgende Creative Commons Lizenz stellen (Für weitere Informationen über die Lizenz, siehe - + You are free to: Sie dürfen: - + Share Teilen - + copy and redistribute the material in any medium or format das Material in jedwedem Format oder Medium vervielfältigen und weiterverbreiten - + Adapt Bearbeiten - + remix, transform, and build upon the material das Material remixen, verändern und darauf aufbauen - + The licensor cannot revoke these freedoms as long as you follow the license terms. Der Lizenzgeber kann diese Freiheiten nicht widerrufen solange Sie sich an die Lizenzbedingungen halten. - + Under the following terms: Unter folgenden Bedingungen: - + Attribution Namensnennung - + 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. Sie müssen angemessene Urheber- und Rechteangaben machen, einen Link zur Lizenz beifügen und angeben, ob Änderungen vorgenommen wurden. Diese Angaben dürfen in jeder angemessenen Art und Weise gemacht werden, allerdings nicht so, dass der Eindruck entsteht, der Lizenzgeber unterstütze gerade Sie oder Ihre Nutzung besonders. - + NonCommercial Nicht kommerziell - + You may not use the material for commercial purposes. Sie dürfen das Material nicht für kommerzielle Zwecke nutzen. - + ShareAlike Weitergabe unter gleichen Bedingungen - + If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. Wenn Sie das Material remixen, verändern oder anderweitig direkt darauf aufbauen, dürfen Sie Ihre Beiträge nur unter derselben Lizenz wie das Original verbreiten. - + No additional restrictions Keine weiteren Einschränkungen - + You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. Sie dürfen keine zusätzlichen Klauseln oder technische Verfahren einsetzen, die anderen rechtlich irgendetwas untersagen, was die Lizenz erlaubt. @@ -2077,85 +2066,85 @@ 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 @@ -2168,7 +2157,7 @@ Was man hier sieht wird auch am Fader im Mixer angezeigt, wenn du mit einem - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level 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. @@ -2177,217 +2166,217 @@ Was man hier sieht wird auch am Fader im Mixer angezeigt, wenn du mit einem Server verbunden bist. Dieses Schild wird auch bei allen anderen Musikern, die mit dem gleichen Server verbunden sind, angezeigt. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Was man hier sieht wird auch am Fader im Mixer angezeigt, wenn du mit einem Server verbunden bist. Dieses Schild wird auch bei allen anderen Musikern, die mit dem gleichen Server verbunden sind, angezeigt. - + 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 - + Vocal Bass Gesang Bass - + Vocal Tenor Gesang Tenor - + Vocal Alto Gesang Alt - + Vocal Soprano Gesang Sopran - + Banjo Banjo - + Mandolin Mandoline - + Ukulele - + Bass Ukulele @@ -2700,42 +2689,42 @@ &Fenster - + Unregistered Nicht registriert - + Bad address Ungültige Adresse - + Registration requested Registrierung angefordert - + Registration failed Registrierung fehlgeschlagen - + Check server version Überprüfe Version des Servers - + Registered Registriert - + Central Server full Zentralserver voll - + Unknown value Unbekannter Wert @@ -2972,46 +2961,64 @@ Ungültige Geräteauswahl. - + The audio driver properties have changed to a state which is incompatible with this software. The selected audio device could not be used because of the following error: Die Audiotreibereigenschaften haben sich geändert. Die neuen Einstellungen sind nicht mehr kompatibel zu dieser Software. Das ausgewählte Audiogerät konnte nicht benutzt werden wegen folgendem Fehler: - + Please restart the software. Bitte starte die Software neu. - + Close - + No usable Kein benutzbares - + audio device (driver) found. Audiogerät (Treiber) konnte gefunden werden. - + In the following there is a list of all available drivers with the associated error message: Im folgenden wird eine Liste aller gefundenen Audiogeräte mit entsprechender Fehlermeldung angezeigt: - + Do you want to open the ASIO driver setups? Willst du die ASIO-Treibereinstellungen öffnen? - + could not be started because of audio interface issues. konnte nicht gestartet werden wegen Problemen mit dem Audiogerät. + + QCoreApplication + + + , Version + + + + + Internet Jam Session Software + + + + + Released under the GNU General Public License (GPL) + Unter der GNU General Public License (GPL) + + global diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index 46f1aa36b0..a839efb22b 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -32,17 +32,17 @@ utiliza las siguientes librerías, recursos o fragmentos de código: - + Qt cross-platform application framework Qt cross-platform application framework - + Audio reverberation code by Perry R. Cook and Gary P. Scavone Código de reverberación de audio de Perry R. Cook y Gary P. Scavone - + Some pixmaps are from the Algunos pixmaps son del @@ -51,84 +51,81 @@ Iconos de banderas nacionales de Mark James - + This app enables musicians to perform real-time jam sessions over the internet. Esta aplicación permite a músicos realizar jam sessions en tiempo real por internet. - + There is a server which collects the audio data from each client, mixes the audio data and sends the mix back to each client. Hay un servidor que recoge el audio de cada cliente, los mezcla y la envía la mezcla de vuelta a cada cliente. - + This app uses the following libraries, resources or code snippets: Esta aplicación utiliza las siguientes librerías, recursos o fragmentos de código: - + Country flag icons by Mark James 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 - + Italian Italiano - + German Alemán - + About Acerca de - , Version - , Versión + , Versión - Internet Jam Session Software - Internet Jam Session Software + Internet Jam Session Software - Released under the GNU General Public License (GPL) - Publicado bajo la GNU General Public License (GPL) + Publicado bajo la GNU General Public License (GPL) Under the GNU General Public License (GPL) @@ -214,12 +211,12 @@ I N T E N T A N D O C O N E C T A R - + RECORDING ACTIVE - + Personal Mix at: Mezcla Personal en el Servidor: @@ -1536,12 +1533,12 @@ Manual - + Custom Personalizado - + All Genres Todos los Géneros @@ -1550,22 +1547,22 @@ Género Rock/Jazz - + Genre Classical/Folk/Choir Género Clásica/Folk/Coro - + Genre Rock Género Rock - + Genre Jazz Género Jazz - + Default Por defecto @@ -1957,28 +1954,28 @@ CHelpMenu - + &Help &Ayuda - - + + Getting &Started... Cómo &Empezar... - + Software &Manual... Manual del &Software... - + What's &This Qué es &Esto - + &About... &Acerca de... @@ -1986,102 +1983,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. @@ -2093,85 +2090,85 @@ 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 @@ -2184,7 +2181,7 @@ Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Escribe tu nombre o alias aquí para que otros 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. @@ -2193,217 +2190,217 @@ Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor. Esta etiqueta también se mostrará en cada cliente conectado al mismo servidor que tú. Si se deja el nombre vacío, se muestra la dirección IP en su lugar. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor Jamulus. Esta etiqueta también se mostrará en cada cliente conectado al mismo servidor que tú. - + 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 - + Vocal Bass Voz Bajo - + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Mandolina - + Ukulele Ukulele - + Bass Ukulele Ukulele Barítono @@ -2712,42 +2709,42 @@ &Ventana - + Unregistered Sin registrar - + Bad address Dirección no válida - + Registration requested Registro solicitado - + Registration failed Error de registro - + Check server version Comprueba la versión del servidor - + Registered Registrado - + Central Server full Servidor Central lleno - + Unknown value Valor desconocido @@ -2984,46 +2981,64 @@ Selección de dispositivo no válida. - + The audio driver properties have changed to a state which is incompatible with this software. The selected audio device could not be used because of the following error: Las propiedades del driver de audio han cambiado a un estado que es incompatible con este software. El dispositivo de audio seleccionado no se pudo utilizar a causa del siguiente error: - + Please restart the software. Por favor reinicie el software. - + Close Cerrar - + No usable Ningún driver - + audio device (driver) found. de audio utilizable encontrado. - + In the following there is a list of all available drivers with the associated error message: A continuación hay una lista de todos los drivers disponibles con el error asociado: - + Do you want to open the ASIO driver setups? ¿Quieres abrir la configuración del driver ASIO? - + could not be started because of audio interface issues. no pudo arrancar debido a problemas con el dispositivo de audio. + + QCoreApplication + + + , Version + , Versión + + + + Internet Jam Session Software + Internet Jam Session Software + + + + Released under the GNU General Public License (GPL) + Publicado bajo la GNU General Public License (GPL) + + global diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index a68567912f..d4a71bd5f5 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -32,17 +32,17 @@ utilise les bibliothèques, ressources ou extraits de code suivants : - + Qt cross-platform application framework Cadriciel d'application multiplateforme Qt - + Audio reverberation code by Perry R. Cook and Gary P. Scavone Code de réverbération audio par Perry R. Cook et Gary P. Scavone - + Some pixmaps are from the Certaines images sont issues de @@ -51,84 +51,81 @@ Icônes de drapeaux de pays par Mark James - + This app enables musicians to perform real-time jam sessions over the internet. Cette app permet aux musiciens de faire des bÅ“ufs en temps réel sur internet. - + There is a server which collects the audio data from each client, mixes the audio data and sends the mix back to each client. Il y a un serveur qui collecte les données audio de chaque client, les mixe, et renvoie le mixage à chaque client. - + This app uses the following libraries, resources or code snippets: Cette app utilise les bibliothèques, ressources ou extraits de code suivants : - + Country flag icons by Mark James 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 - + Italian Italien - + German Allemand - + About À propos - , Version - , version + , version - Internet Jam Session Software - Logiciels de bÅ“uf sur Internet + Logiciels de bÅ“uf sur Internet - Released under the GNU General Public License (GPL) - Publié sous la licence publique générale GNU (GPL) + Publié sous la licence publique générale GNU (GPL) Under the GNU General Public License (GPL) @@ -222,12 +219,12 @@ T E N T A T I V E D E C O N N E X I O N - + RECORDING ACTIVE - + Personal Mix at: Mixage personnel du serveur : @@ -1540,12 +1537,12 @@ Manuel - + Custom Personnalisé - + All Genres Tous les genres @@ -1554,22 +1551,22 @@ Genre rock/jazz - + Genre Classical/Folk/Choir Genre classique/folk/choeur - + Genre Rock Genre Rock - + Genre Jazz Genre Jazz - + Default Défaut @@ -1953,28 +1950,28 @@ CHelpMenu - + &Help &Aide - - + + Getting &Started... Premier pa&s... - + Software &Manual... &Manuel du logiciel... - + What's &This Qu'est-ce que c'est ? - + &About... À &propos @@ -1982,102 +1979,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. @@ -2089,85 +2086,85 @@ . 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 Dialogue d'édition de pseudo ou de nom - + Instrument picture button Bouton d'image d'instrument - + Country flag button Bouton de drapeau de pays - + City edit box Dialogue d'édition de ville - + Skill level combo box Choix déroulant de niveau de compétence - - - + + + 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 @@ -2180,222 +2177,222 @@ Ce que vous réglez ici apparaîtra au niveau de votre fader sur la table de mixage lorsque vous serez connecté à un serveur - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Écrivez votre nom ou un pseudonyme ici pour que les autres musiciens avec lesquels vous voulez jouer sachent qui vous êtes. Vous pouvez également ajouter une photo de l'instrument dont vous jouez et un drapeau du pays dans lequel vous vous trouvez. Vous pouvez également ajouter votre ville et votre niveau de compétence pour jouer de votre instrument. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Ce que vous réglez ici apparaîtra au niveau de votre chariot sur la table de mixage lorsque vous serez connecté à un serveur Jamulus. Cette étiquette sera également affichée dans chaque client qui est connecté au même serveur que vous. - + 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 - + Vocal Bass Voix basse - + Vocal Tenor Voix ténor - + Vocal Alto Voix alto - + Vocal Soprano Voix soprano - + Banjo Banjo - + Mandolin Mandoline - + Ukulele Ukulélé - + Bass Ukulele Ukulélé basse @@ -2704,42 +2701,42 @@ &Fenêtre - + Unregistered Non inscrit - + Bad address Mauvaise adresse - + Registration requested Inscription demandée - + Registration failed Échec de l'inscription - + Check server version Vérifier la version du serveur - + Registered Inscrit - + Central Server full Serveur central rempli - + Unknown value Valeur inconnue @@ -2976,46 +2973,64 @@ Sélection de périphérique invalide. - + The audio driver properties have changed to a state which is incompatible with this software. The selected audio device could not be used because of the following error: Les propriétés du pilote audio ont changé et sont devenues incompatibles avec ce logiciel. Le périphérique audio sélectionné n'a pas pu être utilisé en raison de l'erreur suivante : - + Please restart the software. Veuillez redémarrer le logiciel - + Close Fermer - + No usable Pas de périphérique audio (pilote) - + audio device (driver) found. utilisable trouvé - + In the following there is a list of all available drivers with the associated error message: Vous trouverez ci-dessous une liste de tous les pilotes disponibles avec le message d'erreur associé : - + Do you want to open the ASIO driver setups? Voulez-vous ouvrir les configurations des pilotes ASIO ? - + could not be started because of audio interface issues. n'a pas pu être lancé en raison de problèmes d'interface audio. + + QCoreApplication + + + , Version + , version + + + + Internet Jam Session Software + Logiciels de bÅ“uf sur Internet + + + + Released under the GNU General Public License (GPL) + Publié sous la licence publique générale GNU (GPL) + + global diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index ab4e963336..f1f9cdab4f 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -28,17 +28,17 @@ usa le seguenti librerie, risorse o parti di codice: - + Qt cross-platform application framework - + Audio reverberation code by Perry R. Cook and Gary P. Scavone Audio reverberation sviluppato da Perry R. Cook and Gary P. Scavone - + Some pixmaps are from the Alcune pixmaps provengono da @@ -47,84 +47,77 @@ Icone delle bandiere a cura di Mark James - + This app enables musicians to perform real-time jam sessions over the internet. Dà la possibilità ai musicisti di realizzare sessioni live attraverso internet. - + There is a server which collects the audio data from each client, mixes the audio data and sends the mix back to each client. Il server acquisisce i dati audio di ogni client, mixa i dati audio e li rimanda ad ogni client connesso. - + This app uses the following libraries, resources or code snippets: Questa applicazione usa le seguenti librerie, risorse e parti di codice: - + Country flag icons by Mark James Le icone delle bandiere sono state realizzate da Marl James - + For details on the contributions check out the Per maggiori informazioni su chi ha contribuito, visitare - + Github Contributors list Lista dei collaboratori su Github - + Spanish Spagnolo - + French Francese - + Portuguese Portoghese - + Dutch Olandese - + Italian Italiano - + German Tedesco - + About Informazioni su - , Version - , Versione - - - - Internet Jam Session Software - + , Versione - Released under the GNU General Public License (GPL) - Rilasciato sotto licensa GNU General Public License (GPL) + Rilasciato sotto licensa GNU General Public License (GPL) Under the GNU General Public License (GPL) @@ -210,12 +203,12 @@ I N A T T E S A D I C O N N E S S I O N E - + RECORDING ACTIVE - + Personal Mix at: Mixer personale sul Server: @@ -1552,32 +1545,32 @@ Ok - + Custom Personalizzato - + All Genres Tutti i Generi - + Genre Rock Genere Rock - + Genre Jazz Genere Jazz - + Genre Classical/Folk/Choir Genere Classica/Folk/Corale - + Default Default @@ -1917,28 +1910,28 @@ CHelpMenu - + &Help &Aiuto - - + + Getting &Started... &Introduzione... - + Software &Manual... &Manuale Software... - + What's &This &Cos'è Questo - + &About... I&nformazioni su... @@ -1946,102 +1939,102 @@ CLicenceDlg - + I &agree to the above licence terms &Accetto i termini di licenza - + Accept Accetto - + Decline Declino - + By connecting to this server and agreeing to this notice, you agree to the following: Collegandosi a questo server e accettando questo avviso, si accetta quanto segue: - + 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 Dichiari che tutti i dati, audio o altre opere trasmessi a questo server sono di tua proprietà e creati da te o dai tuoi licenziatari e che rendi questi dati, audio o altre opere disponibili a terzi mediante la seguente Licenza Creative Commons (per ulteriori informazioni su questa licenza, vedere - + You are free to: Sei libero di: - + Share Condividere - + copy and redistribute the material in any medium or format copiare e ridistribuire il materiale in qualsiasi supporto o formato - + Adapt Adattare - + remix, transform, and build upon the material remixare, trasformare e modificare il materiale - + The licensor cannot revoke these freedoms as long as you follow the license terms. Il licenziante non può revocare queste libertà fintanto che segui i termini della licenza. - + Under the following terms: Sotto i seguenti requisiti: - + Attribution Attribuzione - + 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. È necessario accreditare in modo appropriato, fornire un collegamento alla licenza e indicare se sono state apportate modifiche. Puoi farlo in modo ragionevole, ma non in modo tale da suggerire a te o al tuo utilizzo il supporto del licenziante. - + NonCommercial Non Commerciale - + You may not use the material for commercial purposes. Non è possibile utilizzare il materiale a fini commerciali. - + ShareAlike Condividere allo stesso modo - + If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. Se remixate, trasformate o sviluppate il materiale, dovete distribuire i vostri contributi con la stessa licenza dell'originale. - + No additional restrictions Nessuna restrizione aggiuntiva - + You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. Non è possibile applicare termini legali o misure tecnologiche che impediscono legalmente ad altre persone di fare qualsiasi cosa consentita dalla licenza. @@ -2049,60 +2042,60 @@ CMusProfDlg - - + + Musician Profile Profilo del Musicista - + Alias/Name Nome/Alias - + Instrument Strumento - + Country Paese - + City Città - + Skill Livello - + &Close &Chiudi - - - + + + None None - + Beginner Principiante - + Intermediate Intermedio - + Expert Esperto @@ -2119,247 +2112,247 @@ questo tag verrà mostrato anche a ciascun client connesso allo stesso server. Se viene lasciato vuoto, verrà visualizzato l'indirizzo IP. - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Scrivi qui il tuo nome o un alias in modo che gli altri musicisti con cui vuoi suonare sappiano chi sei. Puoi anche aggiungere una foto dello strumento che suoni e una bandiera del paese in cui ti trovi. Puoi anche aggiungere la tua città e il tuo livello di abilità nel suonare il tuo strumento. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Ciò che hai impostato apparirà sul tuo fader sulla scheda del mixer quando sei collegato a un server Jamulus. Questo tag verrà mostrato anche su ogni client collegato allo stesso server. - + Alias or name edit box Box di modifica Nome o Alias - + Instrument picture button Immagine dello strumento - + Country flag button Pulsante bandiera del paese - + City edit box Box di modifica Città - + Skill level combo box Livello di Abilità - + Drum Set Batteria - + Djembe Djembe - + Electric Guitar Chitarra elettrica - + Acoustic Guitar Chitarra Acustica - + Bass Guitar Basso Elettrico - + Keyboard Tastiera - + Synthesizer Sintetizzatore - + Grand Piano Grand Piano - + Accordion Fisarmonica - + Vocal Voce - + Microphone Microfono - + Harmonica Armonica - + Trumpet Tromba - + Trombone Trombone - + French Horn Corno Francese - + Tuba Tuba - + Saxophone Sassofono - + Clarinet Clarinet - + Flute Flauto - + Violin Violino - + Cello Cello - + Double Bass Contrabbasso - + Recorder Recorder - + Streamer Streamer - + Listener Ascoltatore - + Guitar+Vocal Chitarra+Voce - + Keyboard+Vocal Tastiera+Voce - + Bodhran Bodhran - + Bassoon Fagotto - + Oboe Oboe - + Harp Arpa - + Viola Viola - + Congas Congas - + Bongo Bongo - + Vocal Bass Voce Basso - + Vocal Tenor Voce Tenore - + Vocal Alto Voce Alto - + Vocal Soprano Voce Soprano - + Banjo Banjo - + Mandolin Mandolino - + Ukulele Uculele - + Bass Ukulele Uculele Basso @@ -2656,42 +2649,42 @@ Non Abilitata - + Unregistered Non registrato - + Bad address Indirizzo Errato - + Registration requested Registrazione richiesta - + Registration failed Registrazione fallita - + Check server version Controlla Versione server - + Registered Registrato - + Central Server full Server Centrale Pieno - + Unknown value Valore sconosciuto @@ -2928,46 +2921,64 @@ Device Selezionato non valido. - + The audio driver properties have changed to a state which is incompatible with this software. The selected audio device could not be used because of the following error: I settaggi del driver audio sono stati cambiati con parametri incompatibili con questo programma. La scheda audio selezionata non può essere usata a causa dei seguenti errori: - + Please restart the software. Perfavore riavvia il programma. - + Close Chiudi - + No usable Device Non utilizzabile - + audio device (driver) found. driver non trovati. - + In the following there is a list of all available drivers with the associated error message: Di seguito è riportato un elenco di tutti i driver disponibili con errore associato: - + Do you want to open the ASIO driver setups? Vuoi aprire il setup dei Driver Audio ASIO? - + could not be started because of audio interface issues. Impossibile avviare a causa di problemi con il dispositivo audio. + + QCoreApplication + + + , Version + , Versione + + + + Internet Jam Session Software + + + + + Released under the GNU General Public License (GPL) + Rilasciato sotto licensa GNU General Public License (GPL) + + global diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index e5536f94d4..d7f1ecf8fd 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -28,17 +28,17 @@ gebruikt de volgende libraries, bronnen of code snippets: - + Qt cross-platform application framework Qt cross-platform applicatieframework - + Audio reverberation code by Perry R. Cook and Gary P. Scavone Audio reverberatiecode door Perry R. Cook en Gary P. Scavone - + Some pixmaps are from the Sommige pixmaps zijn van de @@ -47,84 +47,77 @@ Landvlag-iconen van Mark James - + This app enables musicians to perform real-time jam sessions over the internet. - + There is a server which collects the audio data from each client, mixes the audio data and sends the mix back to each client. - + This app uses the following libraries, resources or code snippets: - + Country flag icons by 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 - + Italian - + German Duits - + About Over - , Version - , Versie + , Versie - Internet Jam Session Software - Internet Jamsessie Software - - - - Released under the GNU General Public License (GPL) - + Internet Jamsessie Software Under the GNU General Public License (GPL) @@ -210,12 +203,12 @@ A A N H E T V E R B I N D E N - + RECORDING ACTIVE - + Personal Mix at: @@ -1500,32 +1493,32 @@ Handmatig - + Custom - + All Genres - + Genre Rock - + Genre Jazz - + Genre Classical/Folk/Choir - + Default Standaard @@ -1905,28 +1898,28 @@ CHelpMenu - + &Help &Hulp - - + + Getting &Started... Aan de slag... - + Software &Manual... Softwarehandleiding... - + What's &This Wat Is Dit - + &About... &Over... @@ -1934,102 +1927,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. @@ -2037,60 +2030,60 @@ 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 @@ -2107,247 +2100,247 @@ 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. - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. - + 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 - + Vocal Bass - + Vocal Tenor - + Vocal Alto - + Vocal Soprano - + Banjo Banjo - + Mandolin Mandoline - + Ukulele - + Bass Ukulele @@ -2656,42 +2649,42 @@ &Window - + Unregistered Niet geregistreerd - + Bad address Slecht adres - + Registration requested Aanmelding gevraagd - + Registration failed Registratie is mislukt - + Check server version Controleer de versie van de server - + Registered Geregistreerd - + Central Server full Centrale server vol - + Unknown value Onbekende waarde @@ -2928,46 +2921,64 @@ Ongeldige apparaatkeuze. - + The audio driver properties have changed to a state which is incompatible with this software. The selected audio device could not be used because of the following error: De eigenschappen van de audiodriver zijn veranderd in een toestand die niet compatibel is met deze software. Het geselecteerde audioapparaat kon niet worden gebruikt vanwege de volgende fout: - + Please restart the software. Start de software opnieuw op. - + Close Sluiten - + No usable Niet bruikbaar - + audio device (driver) found. audioapparaat (stuurprogramma) gevonden. - + In the following there is a list of all available drivers with the associated error message: Hieronder vindt u een lijst van alle beschikbare drivers met de bijbehorende foutmelding: - + Do you want to open the ASIO driver setups? Wilt u de ASIO-stuurprogramma's openen? - + could not be started because of audio interface issues. kon niet worden gestart vanwege problemen met de audio-interface. + + QCoreApplication + + + , Version + , Versie + + + + Internet Jam Session Software + Internet Jamsessie Software + + + + Released under the GNU General Public License (GPL) + + + global diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index 8c0cb2bb60..0d1ce5c696 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -4,100 +4,85 @@ CAboutDlg - + Qt cross-platform application framework - + Audio reverberation code by Perry R. Cook and Gary P. Scavone - + Some pixmaps are from the - + This app enables musicians to perform real-time jam sessions over the internet. - + There is a server which collects the audio data from each client, mixes the audio data and sends the mix back to each client. - + This app uses the following libraries, resources or code snippets: - + Country flag icons by Mark James - + For details on the contributions check out the - + Github Contributors list - + Spanish - + French - + Portuguese - + Dutch - + Italian - + German - + About - - - , Version - - - - - Internet Jam Session Software - - - - - Released under the GNU General Public License (GPL) - - CAboutDlgBase @@ -178,12 +163,12 @@ - + RECORDING ACTIVE - + Personal Mix at: @@ -1240,32 +1225,32 @@ - + Custom - + All Genres - + Genre Rock - + Genre Jazz - + Genre Classical/Folk/Choir - + Default @@ -1613,28 +1598,28 @@ CHelpMenu - + &Help &Pomoc - - + + Getting &Started... - + Software &Manual... - + What's &This - + &About... @@ -1642,102 +1627,102 @@ CLicenceDlg - + I &agree to the above licence terms - + Accept - + Decline - + By connecting to this server and agreeing to this notice, you agree to the following: - + 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. @@ -1745,305 +1730,305 @@ CMusProfDlg - - + + Musician Profile - + Alias/Name - + Instrument - + Country Kraj - + City - + Skill - + &Close - - - + + + None - + Beginner - + Intermediate - + Expert - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. - + Alias or name edit box - + Instrument picture button - + Country flag button - + City edit box - + Skill level combo box - + Drum Set - + Djembe - + Electric Guitar - + Acoustic Guitar - + Bass Guitar - + Keyboard - + Synthesizer - + Grand Piano - + Accordion - + Vocal - + Microphone - + Harmonica - + Trumpet - + Trombone - + French Horn - + Tuba - + Saxophone - + Clarinet - + Flute - + Violin - + Cello - + Double Bass - + Recorder - + Streamer - + Listener - + Guitar+Vocal - + Keyboard+Vocal - + Bodhran - + Bassoon - + Oboe - + Harp - + Viola - + Congas - + Bongo - + Vocal Bass - + Vocal Tenor - + Vocal Alto - + Vocal Soprano - + Banjo - + Mandolin - + Ukulele - + Bass Ukulele @@ -2304,42 +2289,42 @@ - + Unregistered - + Bad address - + Registration requested - + Registration failed - + Check server version - + Registered - + Central Server full - + Unknown value @@ -2572,46 +2557,64 @@ - + The audio driver properties have changed to a state which is incompatible with this software. The selected audio device could not be used because of the following error: - + Please restart the software. - + Close zamknij - + No usable - + audio device (driver) found. - + In the following there is a list of all available drivers with the associated error message: - + Do you want to open the ASIO driver setups? - + could not be started because of audio interface issues. + + QCoreApplication + + + , Version + + + + + Internet Jam Session Software + + + + + Released under the GNU General Public License (GPL) + + + global diff --git a/src/res/translation/translation_pt_BR.ts b/src/res/translation/translation_pt_BR.ts new file mode 100644 index 0000000000..12a85b31c2 --- /dev/null +++ b/src/res/translation/translation_pt_BR.ts @@ -0,0 +1,2626 @@ + + + + + CAboutDlg + + + This app enables musicians to perform real-time jam sessions over the internet. + + + + + There is a server which collects the audio data from each client, mixes the audio data and sends the mix back to each client. + + + + + This app uses the following libraries, resources or code snippets: + + + + + Qt cross-platform application framework + + + + + Audio reverberation code by Perry R. Cook and Gary P. Scavone + + + + + Some pixmaps are from the + + + + + Country flag icons by Mark James + + + + + For details on the contributions check out the + + + + + Github Contributors list + + + + + Spanish + + + + + French + + + + + Portuguese + + + + + Dutch + + + + + Italian + + + + + German + + + + + About + + + + + CAboutDlgBase + + + About + + + + + TextLabelVersion + + + + + Copyright (C) 2005-2020 Volker Fischer and others + + + + + A&bout + + + + + &Libraries + + + + + &Contributors + + + + + &Translation + + + + + &OK + + + + + CAnalyzerConsole + + + Analyzer Console + + + + + Error Rate of Each Buffer Size + + + + + CAudioMixerBoard + + + Personal Mix at the Server + + + + + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. + + + + + Server + + + + + T R Y I N G T O C O N N E C T + + + + + RECORDING ACTIVE + + + + + Personal Mix at: + + + + + CChannelFader + + + + + Pan + + + + + + + Mute + + + + + + + Solo + + + + + Channel Level + + + + + Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. + + + + + Input level of the current audio channel at the server + + + + + Mixer Fader + + + + + Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. + + + + + Local mix level setting of the current audio channel at the server + + + + + Status Indicator + + + + + Shows a status indication about the client which is assigned to this channel. Supported indicators are: + + + + + Speaker with cancellation stroke: Indicates that another client has muted you. + + + + + Status indicator label + + + + + Panning + + + + + Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. + + + + + Local panning position of the current audio channel at the server + + + + + With the Mute checkbox, the audio channel can be muted. + + + + + Mute button + + + + + With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. + + + + + Solo button + + + + + Fader Tag + + + + + The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. + + + + + Mixer channel instrument picture + + + + + Mixer channel label (fader tag) + + + + + Mixer channel country flag + + + + + PAN + + + + + MUTE + + + + + SOLO + + + + + M + + + + + S + + + + + Alias/Name + + + + + Instrument + + + + + Location + + + + + + + Skill Level + + + + + Beginner + + + + + Intermediate + + + + + Expert + + + + + Musician Profile + + + + + CChatDlg + + + Chat Window + + + + + The chat window shows a history of all chat messages. + + + + + Chat history + + + + + Input Message Text + + + + + 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. + + + + + New chat text edit box + + + + + CChatDlgBase + + + Chat + + + + + Cl&ear + + + + + &Close + + + + + CClientDlg + + + Input Level Meter + + + + + This shows the level of the two stereo channels for your audio input. + + + + + Make sure not to clip the input signal to avoid distortions of the audio signal. + + + + + If the application is connected to a server and you play your instrument/sing into the microphone, the VU 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. + + + + + For proper usage of the application, you should not hear your singing/instrument through the loudspeaker or your headphone when the software is not connected.This can be achieved by muting your input audio channel in the Playback mixer (not the Recording mixer!). + + + + + Input level meter + + + + + Simulates an analog LED level meter. + + + + + Connect/Disconnect Button + + + + + Opens a dialog where you can select a server to connect to. If you are connected, pressing this button will end the session. + + + + + Connect and disconnect toggle button + + + + + Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. + + + + + Local Audio Input Fader + + + + + Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows + + + + + + L + + + + + , where + + + + + is the current attenuation indicator. + + + + + Local audio input fader (left/right) + + + + + Reverb effect + + + + + Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. + + + + + Reverb effect level setting + + + + + Reverb Channel Selection + + + + + With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. + + + + + Left channel selection for reverb + + + + + Right channel selection for reverb + + + + + Delay Status LED + + + + + Shows the current audio delay status: + + + + + Green + + + + + The delay is perfect for a jam session. + + + + + Yellow + + + + + A session is still possible but it may be harder to play. + + + + + Red + + + + + The delay is too large for jamming. + + + + + If this LED indicator turns red, you will not have much fun using the application. + + + + + Delay status LED indicator + + + + + Buffers Status LED + + + + + The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: + + + + + The network jitter buffer is not large enough for the current network/audio interface jitter. + + + + + The sound card's buffer delay (buffer size) is too small (see Settings window). + + + + + The upload or download stream rate is too high for your internet bandwidth. + + + + + The CPU of the client or server is at 100%. + + + + + Buffers status LED indicator + + + + + + C&onnect + + + + + &View + + + + + &Connection Setup... + + + + + My &Profile... + + + + + C&hat... + + + + + &Settings... + + + + + &Analyzer Console... + + + + + E&xit + + + + + &Edit + + + + + Sort Channel Users by &Name + + + + + Sort Channel Users by &Instrument + + + + + None + + + + + Center + + + + + R + + + + + Central Server + + + + + user + + + + + users + + + + + D&isconnect + + + + + CClientDlgBase + + + Delay + + + + + Buffers + + + + + Input + + + + + L + + + + + R + + + + + Settings + + + + + Chat + + + + + Mute Myself + + + + + C&onnect + + + + + Pan + + + + + Center + + + + + Reverb + + + + + Left + + + + + Right + + + + + CClientSettingsDlg + + + Jitter Buffer Size + + + + + The jitter buffer compensates for network and sound card timing jitters. The size of the buffer therefore influences the quality of the audio stream (how many dropouts occur) and the overall delay (the longer the buffer, the higher the delay). + + + + + You can set the jitter buffer size manually for the local client and the remote server. For the local jitter buffer, dropouts in the audio stream are indicated by the light below the jitter buffer size faders. If the light turns to red, a buffer overrun/underrun has taken place and the audio stream is interrupted. + + + + + The jitter buffer setting is therefore a trade-off between audio quality and overall delay. + + + + + If the Auto setting is enabled, the jitter buffers of the local client and the remote server are set automatically based on measurements of the network and sound card timing jitter. If Auto is enabled, the jitter buffer size faders are disabled (they cannot be moved with the mouse). + + + + + If the Auto setting 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 and to lower the jitter buffer size manually by using the sliders until your personal acceptable amount of dropouts is reached. The LED indicator will display the audio dropouts of the local jitter buffer with a red light. + + + + + Local jitter buffer slider control + + + + + Server jitter buffer slider control + + + + + Auto jitter buffer switch + + + + + Jitter buffer status LED indicator + + + + + Sound Card Device + + + + + The ASIO driver (sound card) can be selected using + + + + + 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. + + + + + If the driver is selected during an active connection, the connection is stopped, the driver is changed and the connection is started again automatically. + + + + + Sound card device selector combo box + + + + + If the ASIO4ALL driver is used, please note that this driver usually introduces approx. 10-30 ms of additional audio delay. Using a sound card with a native ASIO driver is therefore recommended. + + + + + If you are using the kX ASIO driver, make sure to connect the ASIO inputs in the kX DSP settings panel. + + + + + Sound Card Channel Mapping + + + + + If the selected sound card device offers more than one input or output channel, the Input Channel Mapping and Output Channel Mapping settings are visible. + + + + + For each + + + + + input/output channel (Left and Right channel) a different actual sound card channel can be selected. + + + + + Left input channel selection combo box + + + + + Right input channel selection combo box + + + + + Left output channel selection combo box + + + + + Right output channel selection combo box + + + + + Enable Small Network Buffers + + + + + If enabled, the support for very small network audio packets is activated. Very small network packets are only actually used if the sound card buffer delay is smaller than + + + + + samples. The smaller the network buffers, the lower the audio latency. But at the same time the network load increases and the probability of audio dropouts also increases. + + + + + Enable small network buffers check box + + + + + Sound Card Buffer Delay + + + + + The buffer delay setting is a fundamental setting of this software. This setting has an influence on many connection properties. + + + + + Three buffer sizes are supported + + + + + 64 samples: The preferred setting. Provides the lowest latency but does not work with all sound cards. + + + + + 128 samples: Should work for most available sound cards. + + + + + 256 samples: Should only be used on very slow computers or with a slow internet connection. + + + + + Some sound card drivers do not allow the buffer delay to be changed from within the application. In this case the buffer delay setting is disabled and has to be changed using the sound card driver. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. + + + + + If no buffer size is selected and all settings are disabled, an unsupported buffer size is used by the driver. The application will still work with this setting but with restricted performance. + + + + + The actual buffer delay has influence on the connection status, the current upload rate and the overall delay. The lower the buffer size, the higher the probability of a red light in the status indicator (drop outs) and the higher the upload rate and the lower the overall delay. + + + + + The buffer setting is therefore a trade-off between audio quality and overall delay. + + + + + If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. + + + + + 64 samples setting radio button + + + + + 128 samples setting radio button + + + + + 256 samples setting radio button + + + + + ASIO setup push button + + + + + Skin + + + + + Select the skin to be used for the main window. + + + + + Skin combo box + + + + + Display Channel Levels + + + + + If enabled, each client channel will display a pre-fader level bar. + + + + + Display channel levels check box + + + + + Audio Channels + + + + + Selects the number of audio channels to be used for communication between client and server. There are three modes available: + + + + + + Mono + + + + + and + + + + + + + Stereo + + + + + These modes use one and two audio channels respectively. + + + + + Mono in/Stereo-out + + + + + The audio signal sent to the server is mono but the return signal is stereo. This is useful if the sound card has the instrument on one input channel and the microphone on the other. In that case the two input signals can be mixed to one mono channel but the server mix is heard in stereo. + + + + + Enabling + + + + + mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. + + + + + In stereo streaming mode, no audio channel selection for the reverb effect will be available on the main window since the effect is applied to both channels in this case. + + + + + Audio channels combo box + + + + + Audio Quality + + + + + The higher the audio quality, the higher your audio stream's data rate. Make sure your upload rate does not exceed the available bandwidth of your internet connection. + + + + + Audio quality combo box + + + + + New Client Level + + + + + This setting defines the fader level of a newly connected client in percent. If a new client connects to the current server, they will get the specified initial fader level if no other fader level from a previous connection of that client was already stored. + + + + + New client level edit box + + + + + Custom Central Server Address + + + + + Leave this blank unless you need to enter the address of a central server other than the default. + + + + + Central server address line edit + + + + + Current Connection Status Parameter + + + + + The Ping Time is the time required for the audio stream to travel from the client to the server and back again. This delay is introduced by the network and should be about 20-30 ms. If this delay is higher than about 50 ms, your distance to the server is too large or your internet connection is not sufficient. + + + + + Overall Delay is calculated from the current Ping Time and the delay introduced by the current buffer settings. + + + + + Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net). + + + + + If this LED indicator turns red, you will not have much fun using the + + + + + software. + + + + + ASIO Setup + + + + + Mono-in/Stereo-out + + + + + Low + + + + + + Normal + + + + + High + + + + + Fancy + + + + + Compact + + + + + preferred + + + + + + Size: + + + + + Buffer Delay + + + + + Buffer Delay: + + + + + The selected audio device could not be used because of the following error: + + + + + The previous driver will be selected. + + + + + Ok + + + + + Custom + + + + + All Genres + + + + + Genre Rock + + + + + Genre Jazz + + + + + Genre Classical/Folk/Choir + + + + + Default + + + + + CClientSettingsDlgBase + + + Settings + + + + + Soundcard + + + + + Device + + + + + Input Channel Mapping + + + + + + L + + + + + + R + + + + + Output Channel Mapping + + + + + Enable Small Network Buffers + + + + + Buffer Delay + + + + + (preferred) + + + + + (default) + + + + + (safe) + + + + + Driver Setup + + + + + Jitter Buffer + + + + + Auto + + + + + Local + + + + + Server + + + + + + Size + + + + + Misc + + + + + Audio Channels + + + + + Audio Quality + + + + + New Client Level + + + + + Skin + + + + + % + + + + + Display Channel Levels + + + + + Custom Central Server Address: + + + + + Audio Stream Rate + + + + + + + val + + + + + Ping Time + + + + + Overall Delay + + + + + CConnectDlg + + + Server List + + + + + The Connection Setup window shows a list of available servers. Server operators can optionally list their servers by music genre. Use the List dropdown to select a genre, click on the server you want to join and press the Connect button to connect to it. Alternatively, double click on on the server name. Permanent servers (those that have been listed for longer than 48 hours) are shown in bold. + + + + + Server list view + + + + + Server Address + + + + + If you know the IP address or URL of a server, you can connect to it using the Server name/Address field. An optional port number can be added after the IP address or URL using a colon as a separator, e.g, example.org: + + + + + . The field will also show a list of the most recently used server addresses. + + + + + Server address edit box + + + + + Holds the current server IP address or URL. It also stores old URLs in the combo box list. + + + + + Server List Selection + + + + + Selects the server list to be shown. + + + + + Server list selection combo box + + + + + Filter + + + + + The server list is filtered by the given text. Note that the filter is case insensitive. + + + + + Filter edit box + + + + + Show All Musicians + + + + + If you check this check box, the musicians of all servers are shown. If you uncheck the check box, all list view items are collapsed. + + + + + Show all musicians check box + + + + + CConnectDlgBase + + + Connection Setup + + + + + List + + + + + Filter + + + + + Show All Musicians + + + + + Server Name + + + + + Ping Time + + + + + Musicians + + + + + Location + + + + + Server Name/Address + + + + + C&ancel + + + + + &Connect + + + + + CHelpMenu + + + &Help + + + + + + Getting &Started... + + + + + Software &Manual... + + + + + What's &This + + + + + &About... + + + + + CLicenceDlg + + + I &agree to the above licence terms + + + + + Accept + + + + + Decline + + + + + By connecting to this server and agreeing to this notice, you agree to the following: + + + + + 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. + + + + + CMusProfDlg + + + No Name + + + + + + Musician Profile + + + + + Alias/Name + + + + + Instrument + + + + + Country + + + + + City + + + + + Skill + + + + + &Close + + + + + + + None + + + + + Beginner + + + + + Intermediate + + + + + Expert + + + + + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. + + + + + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. + + + + + Alias or name edit box + + + + + Instrument picture button + + + + + Country flag button + + + + + City edit box + + + + + Skill level combo box + + + + + Drum Set + + + + + Djembe + + + + + Electric Guitar + + + + + Acoustic Guitar + + + + + Bass Guitar + + + + + Keyboard + + + + + Synthesizer + + + + + Grand Piano + + + + + Accordion + + + + + Vocal + + + + + Microphone + + + + + Harmonica + + + + + Trumpet + + + + + Trombone + + + + + French Horn + + + + + Tuba + + + + + Saxophone + + + + + Clarinet + + + + + Flute + + + + + Violin + + + + + Cello + + + + + Double Bass + + + + + Recorder + + + + + Streamer + + + + + Listener + + + + + Guitar+Vocal + + + + + Keyboard+Vocal + + + + + Bodhran + + + + + Bassoon + + + + + Oboe + + + + + Harp + + + + + Viola + + + + + Congas + + + + + Bongo + + + + + Vocal Bass + + + + + Vocal Tenor + + + + + Vocal Alto + + + + + Vocal Soprano + + + + + Banjo + + + + + Mandolin + + + + + Ukulele + + + + + Bass Ukulele + + + + + CServerDlg + + + Client List + + + + + The client list shows all clients which are currently connected to this server. Some information about the clients like the IP address and name are given for each connected client. + + + + + Connected clients list view + + + + + Start Minimized on Operating System Start + + + + + If the start minimized on operating system start check box is checked, the server will be started when the operating system starts up and is automatically minimized to a system task bar icon. + + + + + Show Creative Commons Licence Dialog + + + + + If enabled, a Creative Commons BY-NC-SA 4.0 Licence dialog is shown each time a new user connects the server. + + + + + Make My Server Public + + + + + If the Make My Server Public check box is checked, this server registers itself at the central server so that all users of the application can see the server in the connect dialog server list and connect to it. The registration of the server is renewed periodically to make sure that all servers in the connect dialog server list are actually available. + + + + + Register Server Status + + + + + If the Make My Server Public check box is checked, this will show whether registration with the central server is successful. If the registration failed, please choose another server list. + + + + + Custom Central Server Address + + + + + The custom central server address is the IP address or URL of the central server at which the server list of the connection dialog is managed. + + + + + Central server address line edit + + + + + Server List Selection + + + + + Selects the server list (i.e. central server address) in which your server will be added. + + + + + Server list selection combo box + + + + + Server Name + + + + + The server name identifies your server in the connect dialog server list at the clients. + + + + + Server name line edit + + + + + Location City + + + + + The city in which this server is located can be set here. If a city name is entered, it will be shown in the connect dialog server list at the clients. + + + + + City where the server is located line edit + + + + + Location country + + + + + The country in which this server is located can be set here. If a country is entered, it will be shown in the connect dialog server list at the clients. + + + + + Country where the server is located combo box + + + + + Checkbox to turn on or off server recording + + + + + Enable Recorder + + + + + Checked when the recorder is enabled, otherwise unchecked. The recorder will run when a session is in progress, if (set up correctly and) enabled. + + + + + Current session directory text box (read-only) + + + + + Current Session Directory + + + + + Enabled during recording and holds the current recording session directory. Disabled after recording or when the recorder is not enabled. + + + + + Recorder status label + + + + + Recorder Status + + + + + Displays the current status of the recorder. + + + + + Request new recording button + + + + + New Recording + + + + + During a recording session, the button can be used to start a new recording. + + + + + + E&xit + + + + + &Hide + + + + + + + server + + + + + &Open + + + + + server + + + + + Server + + + + + &Window + + + + + Predefined Address + + + + + Recording + + + + + Not recording + + + + + Not enabled + + + + + Unregistered + + + + + Bad address + + + + + Registration requested + + + + + Registration failed + + + + + Check server version + + + + + Registered + + + + + Central Server full + + + + + Unknown value + + + + + CServerDlgBase + + + Client IP:Port + + + + + + Name + + + + + Jitter Buffer Size + + + + + Start Minimized on Windows Start + + + + + Show Creative Commons BY-NC-SA 4.0 Licence Dialog + + + + + Make My Server Public (Register My Server in the Server List) + + + + + Genre + + + + + + STATUS + + + + + Custom Central Server Address: + + + + + My Server Info + + + + + Location: City + + + + + Location: Country + + + + + Enable jam recorder + + + + + New recording + + + + + Recordings folder + + + + + TextLabelNameVersion + + + + + CSound + + + Error closing stream: $s + + + + + The Jack server is not running. This software requires a Jack server to run. Normally if the Jack server is not running this software will automatically start the Jack server. It seems that this auto start has not worked. Try to start the Jack server manually. + + + + + The Jack server sample rate is different from the required one. The required sample rate is: + + + + + You can use a tool like <i><a href=http://qjackctl.sourceforge.net>QJackCtl</a></i> to adjust the Jack server sample rate. + + + + + Make sure to set the Frames/Period to a low value like + + + + + to achieve a low delay. + + + + + + The Jack port registering failed. + + + + + Cannot activate the Jack client. + + + + + The Jack server was shut down. This software requires a Jack server to run. Try to restart the software to solve the issue. + + + + + CoreAudio input AudioHardwareGetProperty call failed. It seems that no sound card is available in the system. + + + + + CoreAudio output AudioHardwareGetProperty call failed. It seems that no sound card is available in the system. + + + + + Current system audio input device sample rate of %1 Hz is not supported. Please open the Audio-MIDI-Setup in Applications->Utilities and try to set a sample rate of %2 Hz. + + + + + Current system audio output device sample rate of %1 Hz is not supported. Please open the Audio-MIDI-Setup in Applications->Utilities and try to set a sample rate of %2 Hz. + + + + + The audio input stream format for this audio device is not compatible with this software. + + + + + The audio output stream format for this audio device is not compatible with this software. + + + + + The buffer sizes of the current input and output audio device cannot be set to a common value. Please choose other input/output audio devices in your system settings. + + + + + The audio driver could not be initialized. + + + + + The audio device does not support the required sample rate. The required sample rate is: + + + + + The audio device does not support setting the required sampling rate. This error can happen if you have an audio interface like the Roland UA-25EX where you set the sample rate with a hardware switch on the audio device. If this is the case, please change the sample rate to + + + + + Hz on the device and restart the + + + + + software. + + + + + The audio device does not support the required number of channels. The required number of channels for input and output is: + + + + + + Required audio sample format not available. + + + + + No ASIO audio device (driver) found. + + + + + The + + + + + software requires the low latency audio interface ASIO to work properly. This is not a standard Windows audio interface and therefore a special audio driver is required. Either your sound card has a native ASIO driver (which is recommended) or you might want to use alternative drivers like the ASIO4All driver. + + + + + CSoundBase + + + Invalid device selection. + + + + + The audio driver properties have changed to a state which is incompatible with this software. The selected audio device could not be used because of the following error: + + + + + Please restart the software. + + + + + Close + + + + + No usable + + + + + audio device (driver) found. + + + + + In the following there is a list of all available drivers with the associated error message: + + + + + Do you want to open the ASIO driver setups? + + + + + could not be started because of audio interface issues. + + + + + QCoreApplication + + + , Version + + + + + Internet Jam Session Software + + + + + Released under the GNU General Public License (GPL) + + + + + 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_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index 7eb3a4624c..fde24010ba 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -32,17 +32,17 @@ utiliza as seguintes bibliotecas, recursos ou partes de código: - + 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 @@ -51,84 +51,81 @@ Ãcones de bandeira do país de Mark James - + This app enables musicians to perform real-time jam sessions over the internet. Esta aplicação permite aos músicos realizar jam sessions em tempo real pela Internet. - + There is a server which collects the audio data from each client, mixes the audio data and sends the mix back to each client. Existe um servidor que reúne os dados de áudio de cada cliente, mistura os dados de áudio e envia a mistura de volta para cada cliente. - + This app uses the following libraries, resources or code snippets: Esta aplicação utiliza as seguintes bibliotecas, recursos ou partes de código: - + Country flag icons by Mark James Ãcones das bandeiras dos países por 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 - + Italian Italiano - + German Alemão - + About Sobre o - , Version - , Versão + , Versão - Internet Jam Session Software - Programa de Jam Sessions pela Internet + Programa de Jam Sessions pela Internet - Released under the GNU General Public License (GPL) - Lançado sob a Licença Pública Geral GNU (GPL) + Lançado sob a Licença Pública Geral GNU (GPL) Under the GNU General Public License (GPL) @@ -222,12 +219,12 @@ T E N T A N D O L I G A R - + RECORDING ACTIVE - + Personal Mix at: Mistura Pessoal no Servidor: @@ -1528,22 +1525,22 @@ Manual - + Custom Personalizado - + All Genres Servidor Geral - + Genre Rock Servidor Rock - + Genre Jazz Servidor Jazz @@ -1552,12 +1549,12 @@ Servidor Rock/Jazz - + Genre Classical/Folk/Choir Serv. Clássica/Folclore/Coro - + Default Servidor Padrão @@ -1937,28 +1934,28 @@ CHelpMenu - + &Help &Ajuda - - + + Getting &Started... Como Começa&r... - + Software &Manual... &Manual do Programa... - + What's &This O que é &isto - + &About... &Sobre... @@ -1966,102 +1963,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. @@ -2073,85 +2070,85 @@ . 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 @@ -2164,222 +2161,222 @@ O que definir aqui aparecerá por baixo do seu fader na secção de mistura quando estiver ligado a um servidor - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Escreva 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 também definir uma imagem do instrumento que toca e uma bandeira do país onde vive. A cidade onde 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 Jamulus server. This tag will also be shown at each client which is connected to the same server as you. O que definir aqui aparecerá por baixo do seu fader na secção de mistura quando estiver ligado a um servidor Esta etiqueta também será exibida em cada cliente que estiver ligado ao mesmo 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 - + Vocal Bass Voz Baixo - + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Bandolim - + Ukulele Ukulele - + Bass Ukulele Ukulele Baixo @@ -2688,42 +2685,42 @@ &Janela - + Unregistered Não Registado - + Bad address Endereço incorrecto - + Registration requested Registo solicitado - + Registration failed Falha no registo - + Check server version Verifique versão do servidor - + Registered Registado - + Central Server full Servidor Central Cheio - + Unknown value Valor desconhecido @@ -2960,46 +2957,64 @@ Seleção de dispositivo inválida. - + The audio driver properties have changed to a state which is incompatible with this software. The selected audio device could not be used because of the following error: As propriedades do driver de áudio foram alteradas para um estado incompatível com este programa. O dispositivo de áudio selecionado não pôde ser usado devido ao seguinte erro: - + Please restart the software. Por favor reinicie o programa. - + Close Fechar - + No usable Nenhum dispositivo de áudio (driver) - + audio device (driver) found. utilizável encontrado. - + In the following there is a list of all available drivers with the associated error message: De seguida verá uma lista de todos os drivers disponíveis com a mensagem de erro associada: - + Do you want to open the ASIO driver setups? Deseja abrir as configurações do driver ASIO? - + could not be started because of audio interface issues. não pôde ser iniciado devido a problemas na interface de áudio. + + QCoreApplication + + + , Version + , Versão + + + + Internet Jam Session Software + Programa de Jam Sessions pela Internet + + + + Released under the GNU General Public License (GPL) + Lançado sob a Licença Pública Geral GNU (GPL) + + global From 86e70b7d7856372a80aa0e8d7a5aeb052e7711af Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 18 Jun 2020 21:02:17 +0200 Subject: [PATCH 188/936] initialize pt_BR with pt_PT --- src/res/translation/translation_de_DE.qm | Bin 99501 -> 99393 bytes src/res/translation/translation_es_ES.qm | Bin 96072 -> 96093 bytes src/res/translation/translation_fr_FR.qm | Bin 102053 -> 102074 bytes src/res/translation/translation_it_IT.qm | Bin 97773 -> 97720 bytes src/res/translation/translation_nl_NL.qm | Bin 54888 -> 54902 bytes src/res/translation/translation_pt_BR.qm | Bin 0 -> 98451 bytes src/res/translation/translation_pt_BR.ts | 1892 +++++++++++++--------- src/res/translation/translation_pt_PT.qm | Bin 98430 -> 98451 bytes 8 files changed, 1146 insertions(+), 746 deletions(-) create mode 100644 src/res/translation/translation_pt_BR.qm diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index e697891c68f7ea074b54485dc717fa3cfdce932c..cc52deb035f96b9aeeaf4b075353bbcb50d42799 100644 GIT binary patch delta 4089 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 SMhBc4u@*509xr4O?Ee4+zt+D1 diff --git a/src/res/translation/translation_es_ES.qm b/src/res/translation/translation_es_ES.qm index cbaba548a5564a69b5c9f59105af5e68d0145cac..182addccf81fd9a082ac3f7bbba948b76db2fbbf 100644 GIT binary patch delta 4074 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 delta 4035 zcmX9>cU%-_*FDed%+Aiv>?{^yiHZe35eOEF9k5drEJ#xn6|e>Yu|`?*22F?tjTiw% zjRk^0ut#6?1sej2XcUbxiiKDZf2b%RsQ6vjzs?Rb^US^Ho^$WzevMFEBW(H7RG0x^ z0^l~?jKOWpc%=v76kv?C8H4Yb@v1E#(6c)Z0d~UxeF`vj9*`0Y_{{`5>jD2bLT57u zX99u8>6~%Enl(V#67ZYo-J(wylQ5bVl<;6V`j9{?V0g5aJ6TuFd1&X)q9YY%6z!MPA7qywFHLhv68j0$W;h8ze% z)4)&xA>K#V-XMA(>!1s1>2YXfy%#Ocddx7Ut#?Ai-0^D<1=G{C-xZsfSz+Pwj#5f z1&{S6isbzQc!oUy8vlgn1q!4I@N)SDY<3rTolgLQ(&2rXXl7NIIGi&3co9Au^MN5t zFe!jO5cChG1`)Mad=dER9WdPyLC=Y?syYOBw+Cb2AVk{(Oyh?TdX8yMV2;;(;O~K0 zV@e|m15@zx`Q22Xe%P~u4xTXx2R0LR?;qedo12uu8f5l!0C-zuovQ^tuf?I!eqg=# zc z7jUw%rC#ZrMIE`Iv^Qs2JRZ0l&UIEh5;Iz^=VJ=6A(C^ebOb&WbAjuLp@6@+;K9VW zyQzkY{tyYK_T)^f>AtryK@z`iZNHB@w0WGUJttT)l}zq&dMgu2}_KisBltxB@5oa!ochz?n@N?cpHm z1@;A@C&1ZTvp#PwiF3Fn z!K;k?A2C$3J$nb3ueavNvLRp*n>GLRq=Oa(Xx`l?22u(%?<(lUR0m#sOC{-fpYIsU zQ3+P?!&~ho@~%~Jz;EC4GrUVkT$lNf12tfyrt^!O&XOcv^Q#tzk~W6(tI}dgTTT2L zPqOLeJpPwPXYzmP!$?v}MAEJ0Ee_-7WazhHA{;da)R?25g z{EkXf!Drp12KCq5R%A9!d`@-<5S`5DT%*zy-{%isAO=5d=a1N~1Gw(|kt+_sd~5#N z;%y|_WrQaB@o@`(eJFkS+EFt;^5^edB-L~O@b{7^GmU}2-z^AiP*?up-Cn@LdHl0; zr0R$De6>>?*xXM1yZ7!u#zDT$JCPE&DX5>x*3lKM$lA3LEIq=h^F<3^^rriMS%UQx zf9j-RLO+vL7^!}rFmNx~W864l=<8hIm*K)N1F2On3&TT>gAI)rT$_Bsct2tM$KF)) zM}nV`YpFICTxFLLH=$MlJ|>%^$8&*n_lc- zFyo_qAuWvxuK>!_7~ve$MxMS(xC(}vul_gvhxvn`)fABfS$1rrmt^R(+H zb)exBrrneDp6qC<)TW;e0PZZ-W~`^kPk*h=8lsRr4r_CwUBM>s+LH%EDbv~70zVRI z`(`sXU(lY7p1AQKb)vZ<_lypTJ1biLj~@KKTI}K*M~$Xl?CL?a9~>gO zG_IshRv?bF+D&6QLiDl91^d6v;*`R{K%d9rG)sDK(rYm=D<1GJ7ej0%YBaXutVW{R zeTKL+gqVuj+KNnBDK4`qC;zK$#T66F0Ck_ZwU|^LnH}Q{%e6V)A#Jm(*VA>26&;3ITjENG9H&oE|3h_~hBZ;=N_~;Ke zs`W#$vgrbK!pmZn6}>;IjZV2=W1@KbOI`FWFT!-)syB&1 z@1eR4UX9dm5_LajPymf~x}>8fY7{T*b%(`GVAj9tisD`aFI7n`r~&dErA}pAX*K&G zSw~UBd0ZsfPWGYM5Fm}Ppn$jhCAoGcW~T3w#xYvkKAn)f!}Dm-*ewOWr~8d*(%hfx zXpz|<&8?=yK37YNr^nHPk|HHU^rWF>E&XU3(c<$!X-kh-pe|DSx#=0HQjrec-3{1` zl#bk{nn$KeNB^{@T02Q+N^jD>P%0IK(DNTfsmO{L`f7tzQr4gBcV8+SK!K0BDOIg5 zqx*GI;{j?!k3LEt+!AR|{8exKO!r^6)A!oxM6*EBn>?=2fp^OEtytM#@4t&`>i$3< zR#yWSI$9s@$&+8d(a)b$O!gb6pI=1>H#qC(zi%K_YxRq#|4mx3&`17z5Ug#eKI+r= zV0}yVF&;F8!lvoJ@uUxiWa~5hIs(aq^jTqdsMG$d&v{FMe_>6ZO*Ixjh z9@C%MM483J=<_Wc$ft$+i(gO!YL~4q{yiUP4%U~pnF%&vvc9T6G2}f~|3V^_4_YGg zS>$Wai?UARO`B4xY+>yH=2j&Snz$6Wy;2@OavfMeFL`Q5dkUmbju8n0;H` zE|nqro%$ZWjiyV>`^l+N-)+Ju?BO@26O6si2R85?KF_54c`(-5WYyK=Bzi-@j8`B*7aie16_=#-G{6ggk6EIi$bcD?t?!b&Q|gp11JGj!k4ONn|yAKGzGiMf59 zh{{v8RuW-zla(YJN<@D_+1Z0SDK+uajHsVJ*Nj(Fl?!8HX~*oP6b9Y}x&$kwI!E$< zZ&#)C=NMAsZsqELvGgH7<>vLyz^(x0>01)lrJl<3Wiu)AC(4`XlQb=#D~%!Bhyjg3 zz4IF}aLCZ*H==l(Pb)H)uMIBMxnP0e2JelD)WCFxfNU!1((Ps}sWF86QpvvRLTI8N zLA+sM2a5dGJwr@=4Ykll8w<)q!dyTU<67IQfjJR4zFN`s6+R0HX zUTgeGj0D75V`_()RO5Q%`Ieb5WS8;0iH42!6ywdrOmb7avD~tPTJbDnb%PJEb)>Q0 zLM4|}8XH}Lfr+b)jX9BEowSn|fXypN&W>dRlD=qbJhs8ON|Rh0%Oa9`w=*95+?Hd> Zk;_;{%hh+R{YloI<%XWLUCtcY{{zv|$(;ZI diff --git a/src/res/translation/translation_fr_FR.qm b/src/res/translation/translation_fr_FR.qm index 7cd6001711d0d1faaa2d74e55e6f937a99854393..eb3d65b597da749333d4a7b777da77864bf67726 100644 GIT binary patch delta 4041 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 R==WASYd`E*#WL27{U1SU-OvC4 delta 4117 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 diff --git a/src/res/translation/translation_nl_NL.qm b/src/res/translation/translation_nl_NL.qm index 39f6496f5dcbb6bd51977f852b0d47b4b2645dc3..d2fcf5296cbacae38004d4ecf20c8e86881816d7 100644 GIT binary patch delta 3042 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 MZ}=wQ$H9vK1G&q4{Qv*} diff --git a/src/res/translation/translation_pt_BR.qm b/src/res/translation/translation_pt_BR.qm new file mode 100644 index 0000000000000000000000000000000000000000..5b8bebb48363b6d89550a9fb73845afdeb201a05 GIT binary patch literal 98451 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 F{~xuOH4p#* literal 0 HcmV?d00001 diff --git a/src/res/translation/translation_pt_BR.ts b/src/res/translation/translation_pt_BR.ts index 12a85b31c2..fde24010ba 100644 --- a/src/res/translation/translation_pt_BR.ts +++ b/src/res/translation/translation_pt_BR.ts @@ -1,87 +1,135 @@ - + CAboutDlg - - This app enables musicians to perform real-time jam sessions over the internet. - + The + O - - There is a server which collects the audio data from each client, mixes the audio data and sends the mix back to each client. - + software enables musicians to perform real-time jam sessions over the internet. There is a + permite aos músicos realizar jam sessions em tempo real pela Internet. Existe um servidor - - This app uses the following libraries, resources or code snippets: - + software enables musicians to perform real-time jam sessions over the internet. + permite aos músicos realizar jam sessions em tempo real pela Internet. + + + server which collects the audio data from each + que reúne os dados de áudio de cada cliente + + + There is a + Existe um servidor + + + client, mixes the audio data and sends the mix back to each client. + , que mistura os dados de áudio e envia a mistura de volta para cada cliente. + + + uses the following libraries, resources or code snippets: + utiliza as seguintes bibliotecas, recursos ou partes de código: 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 + Ãcones de bandeira do país de Mark James + + + + This app enables musicians to perform real-time jam sessions over the internet. + Esta aplicação permite aos músicos realizar jam sessions em tempo real pela Internet. + + + + There is a server which collects the audio data from each client, mixes the audio data and sends the mix back to each client. + Existe um servidor que reúne os dados de áudio de cada cliente, mistura os dados de áudio e envia a mistura de volta para cada cliente. + + + + This app uses the following libraries, resources or code snippets: + Esta aplicação utiliza as seguintes bibliotecas, recursos ou partes de código: Country flag icons by Mark James - + Ãcones das bandeiras dos países por 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 Italian - + Italiano German - + Alemão About - + Sobre o + + + , Version + , Versão + + + Internet Jam Session Software + Programa de Jam Sessions pela Internet + + + Released under the GNU General Public License (GPL) + Lançado sob a Licença Pública Geral GNU (GPL) + + + Under the GNU General Public License (GPL) + Sob a Licença Pública Geral GNU (GPL) @@ -89,42 +137,50 @@ About - + Sobre TextLabelVersion - + TextLabelVersion Copyright (C) 2005-2020 Volker Fischer and others - + Copyright (C) 2005-2020 Volker Fischer e outros A&bout - + &Sobre &Libraries - + &Bibliotecas &Contributors - + &Colaboradores &Translation - + &Tradução + + + Author: Volker Fischer + Autor: Volker Fischer + + + Copyright (C) 2005-2020 + Copyright (C) 2005-2020 &OK - + &OK @@ -132,12 +188,12 @@ Analyzer Console - + Consola de Análise Error Rate of Each Buffer Size - + Taxa de Erros de Cada Tamanho de Buffer @@ -155,12 +211,12 @@ Server - + Servidor T R Y I N G T O C O N N E C T - + T E N T A N D O L I G A R @@ -170,156 +226,159 @@ Personal Mix at: - + Mistura Pessoal no Servidor: CChannelFader - - - - - Pan - - - - - - - Mute - - - - - - - Solo - - Channel Level - + Nível do Canal - - Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. - + Displays the pre-fader audio level of this channel. All connected clients at the server will be assigned an audio level, the same value for each client. + Mostra o nível de áudio pré-fader deste canal. Todos os clientes ligados ao servidor terão atribuído um nível de áudio, o mesmo valor para cada cliente. Input level of the current audio channel at the server - + Nível de entrada deste canal de áudio do servidor Mixer Fader - + Fader da Mistura - - Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. - + Adjusts the audio level of this channel. All connected clients at the server will be assigned an audio fader at each client, adjusting the local mix. + Ajusta o nível de áudio deste canal. Por cada cliente ligado ao servidor será atribuído um fader de áudio em todos os clientes, podendo cada um ajustar a sua mistura local. Local mix level setting of the current audio channel at the server - + Configuração do nível de mistura local deste canal de áudio do servidor Status Indicator - + Indicador de Estado Shows a status indication about the client which is assigned to this channel. Supported indicators are: - + Mostra uma indicação de estado sobre o cliente que está atribuído a este canal. Os indicadores suportados são: - - Speaker with cancellation stroke: Indicates that another client has muted you. - + Speaker with cancellation stroke: Indicates that the other client has muted you. + Alti-falante com sinal de proibição: Indica que o cliente silenciou o teu canal. Status indicator label - + Etiqueta do indicador de estado Panning - + Panorâmica - - Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. - + Sets the panning position from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. + Define a posição de panorâmica da esquerda para a direita do canal. Funciona apenas no modo estéreo ou, de preferência, no modo Entrada Mono/Saída Estéreo. Local panning position of the current audio channel at the server - + Posição de panorâmica local do canal de áudio actual no servidor With the Mute checkbox, the audio channel can be muted. - + Com a caixa de seleção Mute, o canal de áudio pode ser silenciado. Mute button - + Botão Mute - - With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. - + With the Solo checkbox, the audio channel can be set to solo which means that all other channels except of the current channel are muted. It is possible to set more than one channel to solo. + Com a caixa de seleção Solo, o canal de áudio pode ser definido como solo, o que significa que todos os outros canais, exceto o canal atual, serão silenciados. É possível definir mais que um canal no modo solo. Solo button - + Botão Solo Fader Tag - + Identificador do Fader + + + The fader tag identifies the connected client. The tag name, the picture of your instrument and a flag of your country can be set in the main window. + O Identificador do fader identifica o cliente ligado. O nome no identificador, a imagem do instrumento e a bandeira do país podem ser definidos no Meu Perfil. + + + + Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. + Mostra o nível de áudio pré-fader deste canal. A todos os clientes ligados ao servidor será atribuído um nível de áudio, o mesmo valor para cada cliente. + + + + Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. + Ajusta o nível de áudio deste canal. A todos os clientes ligados ao servidor será atribuído um fader de áudio,exibido em cada cliente, para ajustar a mistura local. + + + + Speaker with cancellation stroke: Indicates that another client has muted you. + Alti-falante com sinal de proibição: Indica que o cliente silenciou o teu canal. + + + + Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. + Define a posição de panorâmica da esquerda para a direita do canal. Funciona apenas no modo estéreo ou, de preferência, no modo Entrada Mono/Saída Estéreo. + + + + With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. + Com a caixa de seleção Solo, o canal de áudio pode ser definido como solo, o que significa que todos os outros canais, exceto o canal atual, serão silenciados. É possível definir mais que um canal no modo solo. The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. - + O Identificador do fader identifica o cliente ligado. O nome no identificador, a imagem do instrumento e a bandeira do país podem ser definidos no Meu Perfil. Mixer channel instrument picture - + Imagem do instrumento do canal da mistura Mixer channel label (fader tag) - + Identificação do canal da mistura (identificador do fader) Mixer channel country flag - + Bandeira do país do canal da mistura PAN - + PAN MUTE - + MUTE SOLO - + SOLO @@ -334,44 +393,65 @@ Alias/Name - + Nome/Alcunha Instrument - + Instrumento Location - + Localização Skill Level - + Nível de Habilidade Beginner - + Principiante Intermediate - + Intermediário Expert - + Avançado Musician Profile - + Perfil do músico + + + + + + Mute + Mute + + + + + + Pan + Pan + + + + + + Solo + Solo @@ -379,32 +459,32 @@ Chat Window - + Janela de Mensagens The chat window shows a history of all chat messages. - + A janela de mensagens mostra um histórico de todas as mensagens enviadas durante a sessão. Chat history - + Histórico de Mensagens Input Message Text - + Texto da Mensagem 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. - + Introduza o texto da mensagem no campo de introdução e pressione Enter para enviar a mensagem ao servidor, que distribui a mensagem a todos os clientes ligados. A sua mensagem será exibida na janela de mensagens. New chat text edit box - + Campo de edição de texto da mensagem @@ -412,17 +492,17 @@ Chat - + Mensagens Cl&ear - + &Limpar &Close - + &Fechar @@ -430,299 +510,395 @@ Input Level Meter - + Medidor do Nível de Entrada - - This shows the level of the two stereo channels for your audio input. - + The input level indicators show the input level of the two stereo channels of the current selected audio input. + Os indicadores do nível de entrada mostram o nível dos dois canais stereo da entrada de áudio selecionada. Make sure not to clip the input signal to avoid distortions of the audio signal. - + Certifique-se de não clipar o sinal de entrada para evitar distorções no sinal de áudio. - - If the application is connected to a server and you play your instrument/sing into the microphone, the VU 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. - + If the + Se o cliente - - For proper usage of the application, you should not hear your singing/instrument through the loudspeaker or your headphone when the software is not connected.This can be achieved by muting your input audio channel in the Playback mixer (not the Recording mixer!). - + software, you should not hear your singing/instrument in the loudspeaker or your headphone when the + , não deve ouvir a sua voz/instrumento diretamente nas colunas ou nos headphones enquanto o cliente + + + 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. + estiver ligado a um servidor e tocar o seu instrumento/cantar no microfone, os LEDs do medidor do nível de entrada devem piscar. Se tal não acontecer, provavelmente selecionou o canal de entrada errado (por exemplo, entrada de linha em vez da entrada do microfone) ou ajustou o ganho da entrada muito baixo no misturador de áudio (Windows) ou na placa de som. + + + For a proper usage of the + Para um uso adequado do cliente + + + software is not connected. This can be achieved by muting your input audio channel in the Playback mixer (not the Recording mixer!). + não estiver ligado a um servidor. Isso pode ser feito silenciando (mute) o canal da entrada de áudio no dispositivo de reprodução (não no dispositivo de captura!) Input level meter - + Medidor do nível de entrada Simulates an analog LED level meter. - + Simula um medidor de nível analógico LED. Connect/Disconnect Button - + Botão de Ligar/Desligar - - Opens a dialog where you can select a server to connect to. If you are connected, pressing this button will end the session. - + Push this button to connect to a server. A dialog where you can select a server will open. If you are connected, pressing this button will end the session. + Pressione este botão para se ligar a um servidor. Uma janela será aberta onde pode selecionar um servidor. Se já estiver ligado a um servidor, pressionar este botão encerrará a sessão. Connect and disconnect toggle button - + Botão de alternação entre ligar e desligar - - Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. - + Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the + Clicar nesse botão altera a legenda do botão de Ligar para Desligar, ou seja, implementa uma funcionalidade de alternação para conectar e desconectar o cliente + + + software. + . Local Audio Input Fader - + Fader da Entrada Local de Ãudio - - Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows - + + Local audio input fader (left/right) + Fader de entrada local de áudio (esquerdo/direito) - - - L - + Reverberation effect level setting + Ajuste do nível do efeito de reverberação - - , where - + Left channel selection for reverberation + Seleção do canal esquerdo para reverberação - - is the current attenuation indicator. - + Right channel selection for reverberation + Seleção do canal direito para reverberação - - Local audio input fader (left/right) - + If this LED indicator turns red, you will not have much fun using the + Se este indicador LED ficar vermelho, não se vai divertir muito ao usar o - - Reverb effect - + + This shows the level of the two stereo channels for your audio input. + Isto mostra o nível dos dois canais estéreo para a sua entrada de áudio. - - Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. - + + If the application is connected to a server and you play your instrument/sing into the microphone, the VU 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. + Se a aplicação estiver ligada a um servidor e tocar o seu instrumento/cantar no microfone, os LEDs do medidor do nível de entrada devem piscar. Se tal não acontecer, provavelmente selecionou o canal de entrada errado (por exemplo, entrada de linha em vez da entrada do microfone) ou ajustou o ganho da entrada muito baixo no misturador de áudio (Windows) ou na placa de som. - - Reverb effect level setting - + + For proper usage of the application, you should not hear your singing/instrument through the loudspeaker or your headphone when the software is not connected.This can be achieved by muting your input audio channel in the Playback mixer (not the Recording mixer!). + Para um uso adequado da aplicação, não deve ouvir a sua voz/instrumento diretamente nas colunas ou nos headphones enquanto a aplicação não estiver ligada a um servidor. Isso pode ser feito silenciando (mute) o canal da entrada de áudio no dispositivo de reprodução (não no dispositivo de captura!). - - Reverb Channel Selection - + + Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. + Clicar nesse botão altera a legenda do botão de Ligar para Desligar, ou seja, implementa uma funcionalidade de alternação para conectar e desconectar a aplicação. + + + + Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows + Controla os níveis relativos dos canais esquerdo e direito. Para um sinal mono, actua como uma panorâmica entre os dois canais. Por exemplo, se um microfone estiver ligado no canal direito e um instrumento estiver ligado no canal esquerdo, mais alto que o microfone, mova o fader de áudio numa direção em que a etiqueta acima do fader mostre + + + + Reverb effect + Efeito de Reverberação + + + + Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. + O efeito de reverberação pode ser aplicado a um canal local de áudio mono ou a ambos os canais no modo estéreo. A seleção do canal mono e o nível de reverberação podem ser modificados. Por exemplo, se o sinal do microfone for alimentado no canal de áudio direito da placa de som, e for necessário aplicar um efeito de reverberação, ajuste o seletor de canal para a direita e mova o fader para cima até que o nível de reverberação desejado seja atingido. + + + + Reverb effect level setting + Ajuste do nível do efeito de reverberação + + + + Reverb Channel Selection + Seleção do Canal de Reverberação With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. - + Com estes botões de seleção, pode ser escolhido o canal de entrada de áudio no qual o efeito de reverberação é aplicado. Pode ser selecionado o canal de entrada esquerdo ou direito. Left channel selection for reverb - + Seleção do canal esquerdo para reverberação Right channel selection for reverb - - - - - Delay Status LED - - - - - Shows the current audio delay status: - + Seleção do canal direito para reverberação Green - + Verde The delay is perfect for a jam session. - + A latência é perfeita para uma jam session. Yellow - - - - - A session is still possible but it may be harder to play. - + Amarelo Red - + Vermelho - - The delay is too large for jamming. - + + Delay status LED indicator + Indicador LED do estado de latência - - If this LED indicator turns red, you will not have much fun using the application. - + + Opens a dialog where you can select a server to connect to. If you are connected, pressing this button will end the session. + Abre uma caixa de diálogo onde pode seleccionar a que servidor se ligar. Se estiver ligado, pressionar este botão vai terminar a sessão. - - Delay status LED indicator - + + Shows the current audio delay status: + Mostra o estado actual da latência de áudio: - - Buffers Status LED - + + A session is still possible but it may be harder to play. + Ainda é possível fazer uma sessão, mas poderá ser mais difícil tocar a tempo. - - The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: - + + The delay is too large for jamming. + A latência é demasiada para tocar a tempo. - - The network jitter buffer is not large enough for the current network/audio interface jitter. - + + If this LED indicator turns red, you will not have much fun using the application. + Se este indicador LED ficar vermelho, não se vai divertir muito ao usar a aplicação. + + + + The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: + O indicador LED do estado dos buffers mostra o estado atual do áudio/transmissão. Se a luz estiver vermelha, o fluxo de áudio é interrompido. Isto é causado por um dos seguintes problemas: The sound card's buffer delay (buffer size) is too small (see Settings window). - + O buffer (tamanho do buffer) da placa de som é demasiado pequeno (verificar janela das Definições). The upload or download stream rate is too high for your internet bandwidth. - - - - - The CPU of the client or server is at 100%. - + A taxa de upload ou download é muito elevada para a sua largura de banda da Internet. Buffers status LED indicator - + Indicador LED do estado dos buffers C&onnect - + &Ligar &View - + &Ver &Connection Setup... - + &Ligar a Servidor... My &Profile... - + Meu &Perfil... C&hat... - + &Mensagens... &Settings... - + &Definições... &Analyzer Console... - + Consola de &Análise... E&xit - + &Sair &Edit - + &Editar - - Sort Channel Users by &Name - - - - - Sort Channel Users by &Instrument - + &Sort Channel Users by Name + Ordenar os Canais por &Nome... None - + Nenhum Center - + Centro R + R + + + + + L + L + + + With the audio fader, the relative levels of the left and right local audio channels can be changed. For a mono signal it acts like a panning between the two channels. If, e.g., a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows + Com o fader de áudio, os níveis relativos dos canais locais esquerdo e direito podem ser alterados. Para um sinal mono, atua como uma panorâmica entre os dois canais. Se, por exemplo, um microfone estiver ligado no canal direito e um instrumento estiver ligado no canal esquerdo, mais alto que o microfone, mova o fader de áudio numa direção em que a etiqueta acima do fader mostre + + + + , where + , onde + + + + is the current attenuation indicator. + é o indicador de atenuação atual. + + + Reverberation Level + Nível de Reverberação + + + A reverberation effect can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverberation level can be modified. If, e.g., the microphone signal is fed into the right audio channel of the sound card and a reverberation effect shall be applied, set the channel selector to right and move the fader upwards until the desired reverberation level is reached. + Um efeito de reverberação pode ser aplicado a um canal local de áudio mono ou a ambos os canais no modo estéreo. A seleção do canal mono e o nível de reverberação podem ser modificados. Se, por exemplo, o sinal do microfone for alimentado no canal de áudio direito da placa de som, e for aplicado um efeito de reverberação, ajuste o seletor de canal para a direita e mova o fader para cima até que o nível de reverberação desejado seja atingido. + + + The reverberation effect requires significant CPU so it should only be used on fast PCs. If the reverberation level fader is set to minimum (which is the default setting), the reverberation effect is switched off and does not cause any additional CPU usage. + O efeito de reverberação requer uma utilização do CPU significativa, de forma a que só deve ser usado em PCs rápidos. Se o atenuador do nível de reverberação estiver definido como mínimo (que é a configuração padrão), o efeito de reverberação será desativado e não causará nenhum uso adicional do CPU. + + + Reverberation Channel Selection + Seleção do Canal de Reverberação + + + With these radio buttons the audio input channel on which the reverberation effect is applied can be chosen. Either the left or right input channel can be selected. + Com estes botões de seleção, pode ser escolhido o canal de entrada de áudio no qual o efeito de reverberação é aplicado. Pode ser selecionado o canal de entrada esquerdo ou direito. + + + + Delay Status LED + LED do Estado da Latência + + + The delay status LED indicator shows the current audio delay status. If the light is green, the delay is perfect for a jam session. If the light is yellow, a session is still possible but it may be harder to play. If the light is red, the delay is too large for jamming. + O indicador LED do estado da latência mostra o estado atual do atraso do áudio. Se a luz estiver verde, o atraso é perfeito para uma jam session. Se a luz estiver amarela, uma sessão ainda é possível, mas pode ser mais difícil tocar sincronizado. Se a luz estiver vermelha, o atraso é demasiado grande para uma sessão de jamming. + + + + Buffers Status LED + LED do Estado dos Buffers + + + The buffers status LED indicator shows the current audio/streaming status. If the light is green, there are no buffer overruns/underruns and the audio stream is not interrupted. If the light is red, the audio stream is interrupted caused by one of the following problems: + O indicador LED do estado dos buffers mostra o estado atual do áudio/transmissão. Se a luz estiver verde, não haverá buffer em excesso/déficit e o fluxo de áudio não será interrompido. Se a luz estiver vermelha, o fluxo de áudio é interrompido devido a um dos seguintes problemas: + + + + The network jitter buffer is not large enough for the current network/audio interface jitter. + O jitter buffer da rede não é grande o suficiente para o jitter atual da interface de rede/áudio. + + + The sound card buffer delay (buffer size) is set to too small a value. + O atraso do buffer da placa de som (buffer size) está definido para um valor demasiado baixo. + + + The upload or download stream rate is too high for the current available internet bandwidth. + A taxa de upload ou download é muito alta para a largura de banda disponível na ligação à Internet. + + + + The CPU of the client or server is at 100%. + O CPU do cliente ou servidor está a 100%. + + + + Sort Channel Users by &Name + + + + + Sort Channel Users by &Instrument Central Server - + Servidor Central user - + utilizador users - + utilizadores D&isconnect - + Desl&igar @@ -730,72 +906,72 @@ Delay - + Latência Buffers - + Buffers Input - + Entrada L - + L R - + R Settings - + Definições Chat - + Mensagens Mute Myself - + Silenciar-me C&onnect - + &Ligar Pan - + Pan Center - + Centro Reverb - + Reverb Left - + Esquerdo Right - + Direito @@ -803,416 +979,536 @@ Jitter Buffer Size - + Tamanho do Jitter Buffer - - The jitter buffer compensates for network and sound card timing jitters. The size of the buffer therefore influences the quality of the audio stream (how many dropouts occur) and the overall delay (the longer the buffer, the higher the delay). - + The jitter buffer compensates for network and sound card timing jitters. The size of this jitter buffer has therefore influence on the quality of the audio stream (how many dropouts occur) and the overall delay (the longer the buffer, the higher the delay). + O jitter buffer (ou buffer de instabilidade) compensa os desvios de temporização da rede e da placa de som. O tamanho desse jitter buffer influencia, portanto, a qualidade do fluxo de áudio (quantas interrupções ocorrem) e a latência geral (quanto maior o buffer, maior a latência). - - You can set the jitter buffer size manually for the local client and the remote server. For the local jitter buffer, dropouts in the audio stream are indicated by the light below the jitter buffer size faders. If the light turns to red, a buffer overrun/underrun has taken place and the audio stream is interrupted. - + The jitter buffer size can be manually chosen for the local client and the remote server. For the local jitter buffer, dropouts in the audio stream are indicated by the light below the jitter buffer size faders. If the light turns to red, a buffer overrun/underrun took place and the audio stream is interrupted. + O tamanho do jitter buffer pode ser escolhido manualmente para o cliente local e o servidor remoto. Para o jitter buffer local, as interrupções no fluxo de áudio são indicadas pela luz na parte inferior dos faders do jitter buffer. Se a luz ficar vermelha, ocorreu um excesso/déficit do buffer e o fluxo de áudio é interrompido. The jitter buffer setting is therefore a trade-off between audio quality and overall delay. - + A configuração do jitter buffer é, portanto, uma troca entre a qualidade do áudio e o atraso geral. - - If the Auto setting is enabled, the jitter buffers of the local client and the remote server are set automatically based on measurements of the network and sound card timing jitter. If Auto is enabled, the jitter buffer size faders are disabled (they cannot be moved with the mouse). - + An auto setting of the jitter buffer size setting is available. If the check Auto is enabled, the jitter buffers of the local client and the remote server are set automatically based on measurements of the network and sound card timing jitter. If the Auto check is enabled, the jitter buffer size faders are disabled (they cannot be moved with the mouse). + Está disponível uma configuração automática do tamanho do jitter buffer. Se a opção Auto estiver ativada, os jitter buffers do cliente local e do servidor remoto serão configurados automaticamente com base nas medições da instabilidade de sincronização da rede e da placa de som. Se a opção Auto estiver ativada, os faders do jitter buffer serão desativados (não poderão ser movidos manualmente). - - If the Auto setting 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 and to lower the jitter buffer size manually by using the sliders until your personal acceptable amount of dropouts is reached. The LED indicator will display the audio dropouts of the local jitter buffer with a red light. - + If 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 with a red light. + Caso a configuração automática do jitter buffer estiver ativada, os buffers de rede do cliente local e do servidor remoto são configurados com um valor conservador para minimizar a probabilidade de perda de áudio. Para ajustar o atraso/latência do áudio, é recomendável desativar a funcionalidade de configuração automática e diminuir o tamanho do jitter buffer manualmente usando os controles deslizantes até que a quantidade de perdas de áudio lhe sejam pessoalmente aceitáveis. O indicador LED representará as interrupções de áudio do jitter buffer local através de uma luz vermelha. Local jitter buffer slider control - + Controle deslizante do jitter buffer local Server jitter buffer slider control - + Controle deslizante do jitter buffer do servidor Auto jitter buffer switch - + Interruptor do jitter buffer automático Jitter buffer status LED indicator - + Indicador LED de estado do jitter buffer Sound Card Device - + Dispositivo da Placa de Som The ASIO driver (sound card) can be selected using - + O driver ASIO (placa de som) pode ser selecionado usando o 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. - + no Windows. No MacOS/Linux, não é possível seleccionar a placa de som. Se o driver ASIO selecionado não for válido, uma mensagem de erro será exibida e o driver válido anterior será selecionado. If the driver is selected during an active connection, the connection is stopped, the driver is changed and the connection is started again automatically. - + Se o driver for selecionado durante uma ligação ativa, a ligação será interrompida, o driver será alterado e a ligação reiniciada automaticamente. Sound card device selector combo box - + Seletor de dispositivo da placa de som If the ASIO4ALL driver is used, please note that this driver usually introduces approx. 10-30 ms of additional audio delay. Using a sound card with a native ASIO driver is therefore recommended. - + Caso o driver ASIO4ALL seja usado, note que esse driver geralmente introduz aprox. 10-30 ms de atraso de áudio adicional. Dado isto, é recomendável usar uma placa de som com um driver ASIO nativo. If you are using the kX ASIO driver, make sure to connect the ASIO inputs in the kX DSP settings panel. - + Se estiver a usar o driver kX ASIO, certifique-se de ligar as entradas ASIO no painel de configurações do kX DSP. Sound Card Channel Mapping - + Mapeamento de Canais da Placa de Som If the selected sound card device offers more than one input or output channel, the Input Channel Mapping and Output Channel Mapping settings are visible. - + Caso o dispositivo selecionado da placa de som ofereça mais que um canal de entrada ou saída, as configurações de Mapeamento de canais de entrada e de saída estarão visíveis. For each - + Para cada canal de entrada/saída do input/output channel (Left and Right channel) a different actual sound card channel can be selected. - + (canal esquerdo e direito), um canal real da placa de som pode ser selecionado. Left input channel selection combo box - + Seletor de canal de entrada esquerdo Right input channel selection combo box - + Seletor de canal de entrada direito Left output channel selection combo box - + Seletor de canal de saída esquerdo Right output channel selection combo box - + Seletor de canal de saída direito Enable Small Network Buffers - + Activar Buffers de Rede Pequenos If enabled, the support for very small network audio packets is activated. Very small network packets are only actually used if the sound card buffer delay is smaller than - + Se ativado, o suporte para pacotes de áudio de rede muito pequenos é ativado. Pacotes de rede muito pequenos serão apenas realmente usados se o atraso do buffer da placa de som for menor que samples. The smaller the network buffers, the lower the audio latency. But at the same time the network load increases and the probability of audio dropouts also increases. - + amostras. Quanto menor o buffer da rede, menor a latência do áudio. Mas, ao mesmo tempo, a carga da rede e a probabilidade de interrupção do áudio também aumentam. Enable small network buffers check box - + Caixa de activação de buffers de rede pequenos Sound Card Buffer Delay - + Atraso do Buffer da Placa de Som - - The buffer delay setting is a fundamental setting of this software. This setting has an influence on many connection properties. - + The buffer delay setting is a fundamental setting of the + A configuração do atraso do buffer (buffer delay) é uma configuração fundamental do cliente + + + software. This setting has influence on many connection properties. + . Esta configuração tem influência em muitas propriedades da ligação. Three buffer sizes are supported - + Três tamanhos de buffer são suportados - - 64 samples: The preferred setting. Provides the lowest latency but does not work with all sound cards. - + 64 samples: This is the preferred setting since it provides the lowest latency but does not work with all sound cards. + 64 amostras: esta é a configuração preferida, pois oferece menor latência, mas não funciona com todas as placas de som. - - 128 samples: Should work for most available sound cards. - + 128 samples: This setting should work for most available sound cards. + 128 amostras: esta configuração deve funcionar na maioria das placas de som disponíveis. - - 256 samples: Should only be used on very slow computers or with a slow internet connection. - + 256 samples: This setting should only be used if only a very slow computer or a slow internet connection is available. + 256 amostras: esta configuração deve ser usada se apenas estiver disponível um computador muito lento ou uma ligação lenta à Internet. - - Some sound card drivers do not allow the buffer delay to be changed from within the application. In this case the buffer delay setting is disabled and has to be changed using the sound card driver. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. - + Some sound card drivers do not allow the buffer delay to be changed from within the + Alguns drivers da placa de som não permitem que o atraso do buffer seja alterado pelo cliente - - If no buffer size is selected and all settings are disabled, an unsupported buffer size is used by the driver. The application will still work with this setting but with restricted performance. - + software. In this case the buffer delay setting is disabled. To change the actual buffer delay, this setting has to be changed in the sound card driver. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. + . Nesse caso, a configuração de atraso do buffer estará desativada. Para alterar o atraso do buffer, essa configuração deve ser alterada no driver da placa de som. No Windows, pressione o botão Configuração do Driver para abrir o painel de configurações do driver. No Linux, use a ferramenta de configuração Jack para alterar o atraso do buffer. + + + If no buffer size is selected and all settings are disabled, an unsupported buffer size is used by the driver. The + Se nenhum atraso do buffer estiver selecionado e todas as configurações estiverem desativadas, um atraso do buffer não suportado será usado pelo driver. O cliente + + + software will still work with this setting but with restricted performance. + ainda funcionará com essa configuração, mas com desempenho restrito. The actual buffer delay has influence on the connection status, the current upload rate and the overall delay. The lower the buffer size, the higher the probability of a red light in the status indicator (drop outs) and the higher the upload rate and the lower the overall delay. - + O atraso do buffer influencia o estado da ligação, a taxa de upload atual e a latência geral. Quanto menor o atraso do buffer, maior a probabilidade de a luz vermelha no indicador de estado (interrupções), maior a taxa de upload e menor a latência geral. The buffer setting is therefore a trade-off between audio quality and overall delay. - + A configuração do buffer é, portanto, uma troca entre qualidade de áudio e latência geral. - - If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. - + If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the + Se as configurações de atraso do buffer estiverem desativadas, é porque o driver de áudio proibe modificar essa configuração a partir do cliente + + + software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. + . No Windows, pressione o botão <i>Configuração do Driver</i> para abrir o painel de configurações do driver. No Linux, use a ferramenta de configuração <i>Jack</i> para alterar o atraso do buffer. 64 samples setting radio button - + Botão de configuração de 64 amostras 128 samples setting radio button - + Botão de configuração de 128 amostras 256 samples setting radio button - + Botão de configuração de 256 amostras ASIO setup push button - + Botão de configuração do ASIO - - Skin - + Fancy Skin + Skin Sofisticada - - Select the skin to be used for the main window. - + If enabled, a fancy skin will be applied to the main window. + Se ativada, uma skin sofisticada será aplicada à janela principal. - - Skin combo box - + Fancy skin check box + Caixa de ativação da skin sofisticada Display Channel Levels - + Mostrar Níveis de Canais If enabled, each client channel will display a pre-fader level bar. - + Se ativado, cada canal de cliente exibirá uma barra de nível pré-fader. Display channel levels check box - + Caixa de activação para exibir níveis de canais Audio Channels - + Canais de Ãudio - - Selects the number of audio channels to be used for communication between client and server. There are three modes available: - + Select the number of audio channels to be used. There are three modes available. The mono and stereo modes use one and two audio channels respectively. In mono-in/stereo-out mode the audio signal which is sent to the server is mono but the return signal is stereo. This is useful if the sound card has the instrument on one input channel and the microphone on the other channel. In that case the two input signals can be mixed to one mono channel but the server mix can be heard in stereo. + Selecione o número de canais de áudio a serem usados. Existem três modos disponíveis. Os modos mono e estéreo usam um e dois canais de áudio, respectivamente. No modo Entrada Mono/Saída Estéreo, o sinal de áudio enviado ao servidor é mono, mas o sinal de retorno é estéreo. Isso é útil quando a placa de som coloca o instrumento e o microfone em canais diferentes. Nesse caso, os dois sinais de entrada podem ser misturados num canal mono, mas a mistura do servidor pode ser ouvida em estéreo. + + + Enabling the stereo streaming mode will increase the stream data rate. Make sure that the current upload rate does not exceed the available bandwidth of your internet connection. + Ativar o modo de transmissão estéreo aumenta a taxa do fluxo de dados. Verifique que a taxa de transmissão não excede a largura de banda disponível da sua ligação à Internet. + + + In stereo streaming mode, no audio channel selection for the reverberation effect will be available on the main window since the effect is applied on both channels in this case. + No modo de transmissão estéreo, nenhuma seleção de canal de áudio para o efeito de reverberação estará disponível na janela principal, pois o efeito é aplicado em ambos os canais. + + + + Audio channels combo box + Seletor de canais áudio + + + + Audio Quality + Qualidade de Ãudio + + + Select the desired audio quality. A low, normal or high audio quality can be selected. The higher the audio quality, the higher the audio stream data rate. Make sure that the current upload rate does not exceed the available bandwidth of your internet connection. + Selecione a qualidade de áudio desejada. Pode ser selecionada uma qualidade de áudio baixa, normal ou alta. Quanto maior a qualidade do áudio, maior a taxa de dados do fluxo de áudio. Verifique que a taxa de transmissão não excede a largura de banda disponível da sua ligação à Internet. + + + + Audio quality combo box + Seletor de qualidade áudio + + + + New Client Level + Nível de Novo Cliente + + + The new client level setting defines the fader level of a new connected client in percent. I.e. if a new client connects to the current server, it will get the specified initial fader level if no other fader level of a previous connection of that client was already stored. + A configuração de nível de novo cliente define, em percentagem, o nível do fader de um novo cliente ligado. Por exemplo, se um cliente novo se ligar ao servidor atual, o seu canal terá o nível inicial do fader especificado, excepto quando um diferente nível do fader de uma ligação anterior desse mesmo cliente já tenha sido definido. + + + + New client level edit box + Caixa de edição no nível de novo cliente + + + + Custom Central Server Address + Endereço do Servidor Central Personalizado + + + The custom central server address is the IP address or URL of the central server at which the server list of the connection dialog is managed. This address is only used if the custom server list is selected in the connection dialog. + O endereço personalizado do servidor central é o endereço IP ou URL do servidor central no qual a lista de servidores da Configuração de Ligação é gerida. Este endereço é usado apenas se a lista de servidores personalizados estiver selecionada na Configuração de Ligação. + + + Central Server Address + Endereço do servidor central + + + The central server address is the IP address or URL of the central server at which the server list of the connection dialog is managed. With the central server address type either the local region can be selected of the default central servers or a manual address can be specified. + O endereço do servidor central é o endereço IP ou URL do servidor central a partir do qual é gerida a lista de servidores do diálogo de ligação. Com a configuração do endereço do servidor central, é possível selecionar um dos servidores centrais padrão ou especificar um endereço manual. + + + Default central server type combo box + Seletor de servidor central padrão + + + + Central server address line edit + Caixa de edição do endereço do servidor central + + + + Current Connection Status Parameter + Parâmetros do Estado da Ligação + + + The ping time is the time required for the audio stream to travel from the client to the server and back again. This delay is introduced by the network. This delay should be as low as 20-30 ms. If this delay is higher (e.g., 50-60 ms), your distance to the server is too large or your internet connection is not sufficient. + A latência da ligação é o tempo necessário para o fluxo de áudio viajar do cliente para o servidor e vice-versa. Esta latência é introduzida pela rede. Esta latência deve ser tão baixa quanto 20-30 ms. Se esta latência for maior (por exemplo, 50-60 ms), a distância até ao servidor é muito grande ou sua ligação à Internet não é suficiente. + + + The overall delay is calculated from the current ping time and the delay which is introduced by the current buffer settings. + A latência geral é calculada a partir da latência da ligação atual e do atraso introduzido pelas configurações do buffer. + + + The upstream rate depends on the current audio packet size and the audio compression setting. Make sure that the upstream rate is not higher than the available rate (check the upstream capabilities of your internet connection by, e.g., using speedtest.net). + A taxa de transmissão depende do tamanho do pacote de áudio e da configuração de compactação de áudio. Verifique se a taxa de transmissão não é maior que a taxa disponível (verifique a taxa de upload da sua ligação à Internet usando, por exemplo, o speedtest.net). + + + + If this LED indicator turns red, you will not have much fun using the + Se este indicador LED ficar vermelho, não se irá divertir muito ao usar o + + + + software. + . + + + + ASIO Setup + Configuração ASIO Mono - + Mono - - and - + + mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. + vai aumentar a quantidade de dados da transmissão. Verifique se a taxa de upload não ultrapassa a velocidade de upload disponível da sua ligação à Internet. + + + + Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net). + A taxa de transmissão do áudio depende do tamanho do pacote de áudio e da configuração de compactação de áudio. Verifique se a taxa de transmissão não é maior que a taxa disponível (verifique a taxa de upload da sua ligação à Internet usando, por exemplo, o speedtest.net). + + + + Mono-in/Stereo-out + Entrada Mono/Saída Estéreo Stereo - + Estéreo - - These modes use one and two audio channels respectively. - + + The jitter buffer compensates for network and sound card timing jitters. The size of the buffer therefore influences the quality of the audio stream (how many dropouts occur) and the overall delay (the longer the buffer, the higher the delay). + O jitter buffer (ou buffer de instabilidade) compensa os desvios de temporização da rede e da placa de som. O tamanho do buffer influencia, portanto, a qualidade do fluxo de áudio (quantas interrupções ocorrem) e a latência geral (quanto maior o buffer, maior a latência). - - Mono in/Stereo-out - + + You can set the jitter buffer size manually for the local client and the remote server. For the local jitter buffer, dropouts in the audio stream are indicated by the light below the jitter buffer size faders. If the light turns to red, a buffer overrun/underrun has taken place and the audio stream is interrupted. + Pode escolher o tamanho do jitter buffer manualmente para o cliente local e o servidor remoto. Para o jitter buffer local, as interrupções no fluxo de áudio são indicadas pela luz na parte inferior dos faders do jitter buffer. Se a luz ficar vermelha, ocorreu um excesso/déficit do buffer e o fluxo de áudio é interrompido. - - The audio signal sent to the server is mono but the return signal is stereo. This is useful if the sound card has the instrument on one input channel and the microphone on the other. In that case the two input signals can be mixed to one mono channel but the server mix is heard in stereo. - + + If the Auto setting is enabled, the jitter buffers of the local client and the remote server are set automatically based on measurements of the network and sound card timing jitter. If Auto is enabled, the jitter buffer size faders are disabled (they cannot be moved with the mouse). + Caso a configuração automática estiver activada, os buffers de rede do cliente local e do servidor remoto são configurados automaticamente com um valor conservador para minimizar a probabilidade de perda de áudio. Se o modo automático estiver ligado, os controlos estarão desactivados (não podem ser alterados pelo utilizador). - - Enabling - + + If the Auto setting 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 and to lower the jitter buffer size manually by using the sliders until your personal acceptable amount of dropouts is reached. The LED indicator will display the audio dropouts of the local jitter buffer with a red light. + Caso a configuração automática do jitter buffer estiver ativada, os buffers de rede do cliente local e do servidor remoto são configurados com um valor conservador para minimizar a probabilidade de perda de áudio. Para ajustar o atraso/latência do áudio, é recomendável desativar a funcionalidade de configuração automática e diminuir o tamanho do jitter buffer manualmente usando os controles deslizantes até que a quantidade de perdas de áudio lhe sejam pessoalmente aceitáveis. O indicador LED representará as interrupções de áudio do jitter buffer local através de uma luz vermelha. - - mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. - + + The buffer delay setting is a fundamental setting of this software. This setting has an influence on many connection properties. + A configuração do atraso do buffer (buffer delay) é uma configuração fundamental da aplicação. Esta configuração tem influência em muitas propriedades da ligação. - - In stereo streaming mode, no audio channel selection for the reverb effect will be available on the main window since the effect is applied to both channels in this case. - + + 64 samples: The preferred setting. Provides the lowest latency but does not work with all sound cards. + 64 amostras: Cnfiguração preferida. Fornece menor latência, mas não funciona com todas as placas de som. - - Audio channels combo box - + + 128 samples: Should work for most available sound cards. + 128 amostras: Deve funcionar na maioria das placas de som disponíveis. - - Audio Quality - + + 256 samples: Should only be used on very slow computers or with a slow internet connection. + 256 amostras: Deve apenas ser usada se tiver um computador muito lento ou uma ligação lenta à Internet. - - The higher the audio quality, the higher your audio stream's data rate. Make sure your upload rate does not exceed the available bandwidth of your internet connection. - + + Some sound card drivers do not allow the buffer delay to be changed from within the application. In this case the buffer delay setting is disabled and has to be changed using the sound card driver. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. + Alguns drivers da placa de som não permitem que o atraso do buffer seja alterado pela aplicação. Nesse caso, a configuração de atraso do buffer estará desativada e deve ser alterada no driver da placa de som. No Windows, pressione o botão Configuração do Driver para abrir o painel de configurações do driver. No Linux, use a ferramenta de configuração Jack para alterar o atraso do buffer. - - Audio quality combo box - + + If no buffer size is selected and all settings are disabled, an unsupported buffer size is used by the driver. The application will still work with this setting but with restricted performance. + Se nenhum atraso do buffer estiver selecionado e todas as configurações estiverem desativadas, um atraso do buffer não suportado será usado pelo driver. A aplicação ainda funcionará com essa configuração, mas com desempenho restrito. - - New Client Level - + + If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. + Se as configurações de atraso do buffer estiverem desativadas, é porque o driver de áudio proibe modificar essa configuração a partir da aplicação. No Windows, pressione o botão Configuração do Driver para abrir o painel de configurações do driver. No Linux, use a ferramenta de configuração Jack para alterar o atraso do buffer. - - This setting defines the fader level of a newly connected client in percent. If a new client connects to the current server, they will get the specified initial fader level if no other fader level from a previous connection of that client was already stored. + + Skin - - New client level edit box + + Select the skin to be used for the main window. - - Custom Central Server Address + + Skin combo box - - Leave this blank unless you need to enter the address of a central server other than the default. - + + Selects the number of audio channels to be used for communication between client and server. There are three modes available: + Selecione o número de canais de áudio a serem usados para a comunicação entre cliente e servidor. Existem três modos disponíveis: - - Central server address line edit - + + and + e - - Current Connection Status Parameter - + + These modes use one and two audio channels respectively. + Estes modos usam um e dois canais de áudio, respectivamente. + + + + Mono in/Stereo-out + Entrada Mono/Saída Estéreo + + + + The audio signal sent to the server is mono but the return signal is stereo. This is useful if the sound card has the instrument on one input channel and the microphone on the other. In that case the two input signals can be mixed to one mono channel but the server mix is heard in stereo. + O sinal de áudio enviado ao servidor é mono, mas o sinal de retorno é estéreo. Isso é útil quando a placa de som coloca o instrumento e o microfone em canais diferentes. Nesse caso, os dois sinais de entrada podem ser misturados num canal mono, mas a mistura do servidor pode ser ouvida em estéreo. - - The Ping Time is the time required for the audio stream to travel from the client to the server and back again. This delay is introduced by the network and should be about 20-30 ms. If this delay is higher than about 50 ms, your distance to the server is too large or your internet connection is not sufficient. - + + Enabling + Activar o modo - - Overall Delay is calculated from the current Ping Time and the delay introduced by the current buffer settings. - + + In stereo streaming mode, no audio channel selection for the reverb effect will be available on the main window since the effect is applied to both channels in this case. + No modo de transmissão estéreo, nenhuma seleção de canal de áudio para o efeito de reverberação estará disponível na janela principal, pois o efeito é aplicado em ambos os canais. - - Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net). - + + The higher the audio quality, the higher your audio stream's data rate. Make sure your upload rate does not exceed the available bandwidth of your internet connection. + Quanto maior a qualidade de áudio, maior a quantidade de dados da transmissão. Verifique se a taxa de upload não ultrapassa a velocidade de upload disponível da sua ligação à Internet. - - If this LED indicator turns red, you will not have much fun using the - + + This setting defines the fader level of a newly connected client in percent. If a new client connects to the current server, they will get the specified initial fader level if no other fader level from a previous connection of that client was already stored. + Esta opção define o nível do fader de um cliente novo, em percentagem. Se um cliente novo se liga ao mesmo servidor, este irá ter o nível do fader específicado, excepto se já definiu o nível do fader desse cliente previamente. - - software. - + + Leave this blank unless you need to enter the address of a central server other than the default. + Deixe este campo em branco excepto se necessitar de introduzir um endereço alternativo de um servidor central. - - ASIO Setup - + + The Ping Time is the time required for the audio stream to travel from the client to the server and back again. This delay is introduced by the network and should be about 20-30 ms. If this delay is higher than about 50 ms, your distance to the server is too large or your internet connection is not sufficient. + A latência da ligação é o tempo necessário para o fluxo de áudio viajar do cliente para o servidor e vice-versa. Esta latência é introduzida pela rede e deve ser cerca de 20-30 ms. Se esta latência for maior que 50 ms, a distância até ao servidor é muito grande ou sua ligação à Internet não é suficiente. - - Mono-in/Stereo-out - + + Overall Delay is calculated from the current Ping Time and the delay introduced by the current buffer settings. + A latência geral é calculada a partir da latência da ligação atual e do atraso introduzido pelas configurações do buffer. Low - + Baixa Normal - + Normal High - + Alta @@ -1224,71 +1520,83 @@ Compact + + Manual + Manual + + + + Custom + Personalizado + + + + All Genres + Servidor Geral + + + + Genre Rock + Servidor Rock + + + + Genre Jazz + Servidor Jazz + + + Genre Rock/Jazz + Servidor Rock/Jazz + + + + Genre Classical/Folk/Choir + Serv. Clássica/Folclore/Coro + + + + Default + Servidor Padrão + + + Default (North America) + Servidor Padrão (America do Norte) + preferred - + preferido Size: - + Tamanho: Buffer Delay - + Atraso do buffer Buffer Delay: - + Atraso do buffer: The selected audio device could not be used because of the following error: - + O dispositivo de áudio selecionado não pôde ser usado devido ao seguinte erro: The previous driver will be selected. - + O driver anterior será selecionado. Ok - - - - - Custom - - - - - All Genres - - - - - Genre Rock - - - - - Genre Jazz - - - - - Genre Classical/Folk/Choir - - - - - Default - + Ok @@ -1296,115 +1604,115 @@ Settings - + Definições Soundcard - + Placa de Som Device - + Dispositivo Input Channel Mapping - + Mapeamento do Canal de Entrada L - + L R - + R Output Channel Mapping - + Mapeamento do Canal de Saída Enable Small Network Buffers - + Activar Buffers de Rede Pequenos Buffer Delay - + Atraso do buffer (preferred) - + (preferido) (default) - + (padrão) (safe) - + (seguro) Driver Setup - + Configuração do Driver Jitter Buffer - + Jitter Buffer Auto - + Auto Local - + Local Server - + Servidor Size - + Tamanho Misc - + Outras Config. Audio Channels - + Canais de Ãudio Audio Quality - + Qualidade de Ãudio New Client Level - + Nível de Novo Cliente @@ -1414,39 +1722,47 @@ % - + % + + + Fancy Skin + Skin Sofisticada Display Channel Levels - + Mostrar Níveis de Canais Custom Central Server Address: - + Endereço do Servidor Central Personalizado: + + + Central Server Address: + Endereço do Servidor Central: Audio Stream Rate - + Taxa de Transmissão de Ãudio val - + val Ping Time - + Latência da Ligação Overall Delay - + Latência Geral @@ -1454,87 +1770,107 @@ Server List - + Lista de servidores - - The Connection Setup window shows a list of available servers. Server operators can optionally list their servers by music genre. Use the List dropdown to select a genre, click on the server you want to join and press the Connect button to connect to it. Alternatively, double click on on the server name. Permanent servers (those that have been listed for longer than 48 hours) are shown in bold. - + The server list shows a list of available servers which are registered at the central server. Select a server from the list and press the connect button to connect to this server. Alternatively, double click a server from the list to connect to it. If a server is occupied, a list of the connected musicians is available by expanding the list item. Permanent servers are shown in bold font. + A lista de servidores mostra a os servidores disponíveis registados no servidor central. Selecione um servidor da lista e pressione o botão Ligar para se ligar a este servidor. Como alternativa, clique duas vezes num servidor da lista para se ligar ao mesmo. Se um servidor estiver ocupado, uma lista dos músicos ligados estará disponível expandindo o item da lista. Os servidores permanentes são mostrados em negrito. + + + Note that it may take some time to retrieve the server list from the central server. If no valid central server address is specified in the settings, no server list will be available. + Observe que pode demorar algum tempo para obter a lista de servidores do servidor central. Se nenhum endereço de servidor central válido for especificado nas definições, nenhuma lista de servidores estará disponível. Server list view - + Vista da lista de servidores Server Address - + Endereço do servidor + + + The IP address or URL of the server running the + O endereço IP ou URL do servidor executando o servidor + + + 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: + deve ser definido aqui. Um número de porta opcional pode ser adicionado após o endereço IP ou URL usando o caractere dois pontos como separador, por exemplo, example.org: + + + . A list of the most recent used server IP addresses or URLs is available for selection. + . Uma lista dos endereços IP ou URLs dos servidores usados recentemente está disponível para seleção. + + + + The Connection Setup window shows a list of available servers. Server operators can optionally list their servers by music genre. Use the List dropdown to select a genre, click on the server you want to join and press the Connect button to connect to it. Alternatively, double click on on the server name. Permanent servers (those that have been listed for longer than 48 hours) are shown in bold. + A janela Configuração da ligação mostra uma lista de servidores disponíveis. Os operadores dos servidores podem registar os seus servidores por género musical. Utilize o menu Lista para selecionar um género, clique no servidor ao qual se deseja ligar e pressione o botão Ligar. Como alternativa, clique duas vezes no nome do servidor. Servidores permanentes (aqueles que estão registados há mais de 48 horas) são mostrados em negrito. If you know the IP address or URL of a server, you can connect to it using the Server name/Address field. An optional port number can be added after the IP address or URL using a colon as a separator, e.g, example.org: - + Se souver o endereço IP ou URL de um servidor, pode ligar-se a este utilizando o campo Nome/Endereço do Servidor. Um número de porta opcional pode ser adicionado após o endereço IP ou URL usando o caractere dois pontos como separador, por exemplo, example.org: . The field will also show a list of the most recently used server addresses. - + . Este campo também irá mostrar uma lista dos endereços IP ou URLs dos servidores usados recentemente. Server address edit box - + Caixa de edição do endereço do servidor Holds the current server IP address or URL. It also stores old URLs in the combo box list. - + Contém o endereço IP ou URL do servidor atual. Também armazena URLs antigos na lista do seletor. Server List Selection - + Selecção da Lista de Servidores Selects the server list to be shown. - + Seleciona a lista de servidores a ser apresentada. Server list selection combo box - + Caixa de selecção de lista de servidores Filter - + Filtro 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. Filter edit box - + Caixa de edição do filtro Show All Musicians - + Mostrar Todos os Músicos If you check this check box, the musicians of all servers are shown. If you uncheck the check box, all list view items are collapsed. - + Se marcar esta caixa de seleção, os músicos de todos os servidores serão mostrados. Se desmarcar a caixa de seleção, todos os itens em exibição na lista serão recolhidos. Show all musicians check box - + Caixa de seleção para mostrar músicos @@ -1542,57 +1878,57 @@ Connection Setup - + Configuração da Ligação List - + Lista Filter - + Filtro Show All Musicians - + Mostrar Todos os Músicos Server Name - + Nome do Servidor Ping Time - + Latência Musicians - + Músicos Location - + Localização Server Name/Address - + Nome/Endereço do Servidor C&ancel - + &Cancelar &Connect - + &Ligar @@ -1600,28 +1936,28 @@ &Help - + &Ajuda Getting &Started... - + Como Começa&r... Software &Manual... - + &Manual do Programa... What's &This - + O que é &isto &About... - + &Sobre... @@ -1629,413 +1965,425 @@ 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. CMusProfDlg - - No Name - + 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 - - - - - Skill - - - - - &Close - + Cidade - - - - None - + + Skill + Habilidade + + + + &Close + &Fechar Beginner - + Principiante Intermediate - + Intermediário Expert - - - - - Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. - - - - - What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. - - - - - Alias or name edit box - + Avançado - - Instrument picture button - + 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 in. The city you live in and the skill level 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. - - Country flag button - + 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 - - City edit box - + + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. + Escreva 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 também definir uma imagem do instrumento que toca e uma bandeira do país onde vive. A cidade onde vive e o nível de habilidade com o seu instrumento também podem ser adicionados. - - Skill level combo box - + + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. + O que definir aqui aparecerá por baixo do seu fader na secção de mistura quando estiver ligado a um servidor Esta etiqueta também será exibida em cada cliente que estiver ligado ao mesmo 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 Vocal Bass - + Voz Baixo Vocal Tenor - + Voz Tenor Vocal Alto - + Voz Alto Vocal Soprano - + Voz Soprano Banjo - + Banjo Mandolin - + Bandolim Ukulele - + Ukulele Bass Ukulele - + Ukulele Baixo + + + + No Name + Sem Nome @@ -2043,290 +2391,338 @@ Client List - + Lista de Clientes The client list shows all clients which are currently connected to this server. Some information about the clients like the IP address and name are given for each connected client. - + A lista de clientes mostra todos os clientes que estão atualmente ligados a este servidor. Algumas informações sobre os clientes, como o endereço IP e o nome, são fornecidas para cada cliente ligado. Connected clients list view - + Lista de clientes ligados Start Minimized on Operating System Start - + Iniciar Minimizado com o Sistema Operativo - - If the start minimized on operating system start check box is checked, the server will be started when the operating system starts up and is automatically minimized to a system task bar icon. - + If the start minimized on operating system start check box is checked, the + Se a caixa de seleção Iniciar Minimizado com o Sistema Operativo estiver marcada, o servidor + + + server will be started when the operating system starts up and is automatically minimized to a system task bar icon. + será iniciado quando o sistema operativo for iniciado, e minimizado automaticamente para um ícone da barra de tarefas do sistema. Show Creative Commons Licence Dialog - + Mostrar Diálogo da Licença Creative Commons If enabled, a Creative Commons BY-NC-SA 4.0 Licence dialog is shown each time a new user connects the server. - + Se ativada, uma caixa de diálogo Creative Commons BY-NC-SA 4.0 será exibida sempre que um novo utilizador se ligar ao servidor. Make My Server Public - + Tornar Servidor Público - - If the Make My Server Public check box is checked, this server registers itself at the central server so that all users of the application can see the server in the connect dialog server list and connect to it. The registration of the server is renewed periodically to make sure that all servers in the connect dialog server list are actually available. - + If the Make My Server Public check box is checked, this server registers itself at the central server so that all + Se a caixa de seleção Tornar Servidor Público estiver marcada, esse servidor irá registar-se no servidor central para que todos os utilizadores do + + + users can see the server in the connect dialog server list and connect to it. The registration of the server is renewed periodically to make sure that all servers in the connect dialog server list are actually available. + possam ver o servidor na lista do diálogo de ligação e ligar-se a ele. O registo do servidor é renovado periodicamente para garantir que todos os servidores na lista de diálogo de ligação estejam realmente disponíveis. Register Server Status - + Estado de Registo do Servidor + + + If the Make My Server Public check box is checked, this will show whether registration with the central server is successful. + Se a caixa de seleção Tornar Servidor Público estiver marcada, isto mostrará o sucesso ou insucesso do registo no servidor central. + + + Central Server Address + Endereço do servidor central + + + The Central server address is the IP address or URL of the central server at which this server is registered. With the central server address type either the local region can be selected of the default central servers or a manual address can be specified. + O endereço do servidor central é o endereço IP ou o URL do servidor central no qual esse servidor será registado. Com o menu dos servidores centrais, é possível selecionar um dos servidores centrais padrão ou especificar um endereço manual. If the Make My Server Public check box is checked, this will show whether registration with the central server is successful. If the registration failed, please choose another server list. - + Se a caixa de seleção Tornar Meu Servidor Público fôr seleccionada, isto apresentará se o registro no servidor central foi bem-sucedido. Se o registo falhar, escolha outra lista de servidores. + + + Default central server type combo box + Seletor do servidor central padrão + + + + If the start minimized on operating system start check box is checked, the server will be started when the operating system starts up and is automatically minimized to a system task bar icon. + Se a caixa de seleção Iniciar Minimizado com o Sistema Operativo estiver marcada, o servidor será iniciado quando o sistema operativo for iniciado, e minimizado automaticamente para um ícone da barra de tarefas do sistema. + + + + If the Make My Server Public check box is checked, this server registers itself at the central server so that all users of the application can see the server in the connect dialog server list and connect to it. The registration of the server is renewed periodically to make sure that all servers in the connect dialog server list are actually available. + Se a caixa de seleção Tornar Servidor Público estiver marcada, este servidor irá registar-se no servidor central para que todos os utilizadores da aplicação o possam ver na lista de servidores e ligar-se a ele. O registo dos servidores é renovado periodicamente para garantir que todos os servidores na lista estão realmente disponíveis. Custom Central Server Address - + Endereço do Servidor Central Personalizado The custom central server address is the IP address or URL of the central server at which the server list of the connection dialog is managed. - + O endereço do servidor central personalizado é o endereço IP ou URL do servidor central no qual a lista de servidores da Configuração da Ligação é gerida. Central server address line edit - + Caixa de edição do endereço do servidor central Server List Selection - + Selecção da Lista de Servidores Selects the server list (i.e. central server address) in which your server will be added. - + Seleciona a lista de servidores (ou seja, endereço do servidor central) à qual seu servidor será adicionado. Server list selection combo box - + Caixa de selecção de lista de servidores Server Name - + Nome do Servidor + + + The server name identifies your server in the connect dialog server list at the clients. If no name is given, the IP address is shown instead. + O nome do servidor identifica o servidor na lista do diálogo de ligação exibido nos clientes. Se nenhum nome for fornecido, o endereço IP será mostrado. The server name identifies your server in the connect dialog server list at the clients. - + O nome do servidor identifica o servidor na lista do diálogo de ligação exibido nos clientes. Server name line edit - + Caixa de edição do nome do servidor Location City - + ;Localização: Cidade The city in which this server is located can be set here. If a city name is entered, it will be shown in the connect dialog server list at the clients. - + A cidade onde este servidor está localizado pode ser definida aqui. Se um nome de cidade for inserido, este será mostrado na lista do diálogo de ligação dos clientes. City where the server is located line edit - + Caixa de edição da cidade onde o servidor se encontra Location country - + Localização: País The country in which this server is located can be set here. If a country is entered, it will be shown in the connect dialog server list at the clients. - + O país em que este servidor está localizado pode ser definido aqui. Se um país for inserido, ele será mostrado na lista do diálogo de logação dos clientes. Country where the server is located combo box - + Seletor do país onde o servidor de encontra Checkbox to turn on or off server recording - + Caixa de selecção para ligar ou desligar a gravação no servidor Enable Recorder - + Activar Gravador Checked when the recorder is enabled, otherwise unchecked. The recorder will run when a session is in progress, if (set up correctly and) enabled. - + Activo quando o gravador estiver ligado, caso contrário inactivo. O gravador irá correr quando uma sessão estiver a decorrer, se (correctamente configurado e ) activo. Current session directory text box (read-only) - + Caixa de texto com a pasta da gravação actual (apenas leitura) Current Session Directory - + Pasta da Sessão Acual Enabled during recording and holds the current recording session directory. Disabled after recording or when the recorder is not enabled. - + Activo durante a gravação e exibe a pasta da gravação actual. Inactivo depois de gravação ou quando o gravador não estiver ligado. Recorder status label - + Etiqueta do estado do Gravador Recorder Status - + Estado do Gravador Displays the current status of the recorder. - + Mostra o estado actual do gravador. Request new recording button - + Botão para começar nova gravação New Recording - + Nova Gravação During a recording session, the button can be used to start a new recording. - + Durante uma sessão de gravação, este botão pode ser usado para começar uma nova gravação. E&xit - + &Sair &Hide - + &Esconder servidor server - + &Open - + &Abrir servidor server - - - - - Server - - - - - &Window - + Predefined Address - + Endereço Predefinido Recording - + A gravar Not recording - + Não está a gravar Not enabled - + Desactivado + + + Manual + Manual + + + Default + Servidor Padrão + + + Default (North America) + Servidor Padrão (America do Norte) + + + + Server + - Servidor + + + + &Window + &Janela Unregistered - + Não Registado Bad address - + Endereço incorrecto Registration requested - + Registo solicitado Registration failed - + Falha no registo Check server version - + Verifique versão do servidor Registered - + Registado Central Server full - + Servidor Central Cheio Unknown value - + Valor desconhecido @@ -2334,33 +2730,33 @@ Client IP:Port - + IP do Cliente:Porta Name - + Nome do Servidor Jitter Buffer Size - + Tamanho do Jitter Buffer Start Minimized on Windows Start - + Iniciar Minimizado com o Sistema Operativo Show Creative Commons BY-NC-SA 4.0 Licence Dialog - + Mostrar Diálogo da Licença Creative Commons BY-NC-SA 4.0 Make My Server Public (Register My Server in the Server List) - + Tornar Servidor Público (Registar na Lista de Servidores) @@ -2371,182 +2767,186 @@ STATUS - + ESTADO Custom Central Server Address: - + Endereço do Servidor Central Personalizado: + + + Central Server Address: + Endereço do Servidor Central: My Server Info - + Informação do Servidor Location: City - + Localização: Cidade Location: Country - + Localização: País Enable jam recorder - + Activar gravação New recording - + Nova gravação Recordings folder - + Pasta de gravações TextLabelNameVersion - + TextLabelNameVersion CSound - - - Error closing stream: $s - - The Jack server is not running. This software requires a Jack server to run. Normally if the Jack server is not running this software will automatically start the Jack server. It seems that this auto start has not worked. Try to start the Jack server manually. - + O servidor Jack não está em execução. Este programa requer um servidor Jack para ser executado. Normalmente, se o servidor Jack não estiver em execução, este programa iniciará automaticamente o servidor Jack. Parece que esse início automático não funcionou. Tente iniciar o servidor Jack manualmente. The Jack server sample rate is different from the required one. The required sample rate is: - + A taxa de amostragem (sample rate) do servidor Jack é diferente da necessária. A taxa de amostragem necessária é: You can use a tool like <i><a href=http://qjackctl.sourceforge.net>QJackCtl</a></i> to adjust the Jack server sample rate. - + Pode usar uma ferramenta como <i><a href=http://qjackctl.sourceforge.net>QJackCtl</a></i> para ajustar a taxa de amostragem do servidor Jack. Make sure to set the Frames/Period to a low value like - + Certifique-se de definir Frames/Período para um valor baixo como to achieve a low delay. - + para obter uma latência baixa. The Jack port registering failed. - + O registo da porta Jack falhou. Cannot activate the Jack client. - + Não é possível ativar o cliente Jack. The Jack server was shut down. This software requires a Jack server to run. Try to restart the software to solve the issue. - + O servidor Jack foi desligado. Este programa requer um servidor Jack para ser executado. Tente reiniciar o programa para resolver o problema. CoreAudio input AudioHardwareGetProperty call failed. It seems that no sound card is available in the system. - + A entrada do CoreAudio falhou na chamada AudioHardwareGetProperty. Parece que nenhuma placa de som está disponível no sistema. CoreAudio output AudioHardwareGetProperty call failed. It seems that no sound card is available in the system. - + A saída do CoreAudio falhou na chamada AudioHardwareGetProperty. Parece que nenhuma placa de som está disponível no sistema. Current system audio input device sample rate of %1 Hz is not supported. Please open the Audio-MIDI-Setup in Applications->Utilities and try to set a sample rate of %2 Hz. - + A taxa de amostragem (sample rate) de %1 Hz do dispositivo de entrada de áudio atual não é suportada. Por favor, abra o Audio-MIDI-Setup em Applications-> Utilities e tente definir uma taxa de amostragem de %2 Hz. Current system audio output device sample rate of %1 Hz is not supported. Please open the Audio-MIDI-Setup in Applications->Utilities and try to set a sample rate of %2 Hz. - + A taxa de amostragem (sample rate) de %1 Hz do dispositivo de saída de áudio atual não é suportada. Por favor, abra o Audio-MIDI-Setup em Applications-> Utilities e tente definir uma taxa de amostragem de %2 Hz. The audio input stream format for this audio device is not compatible with this software. - + O formato do fluxo de entrada de áudio para este dispositivo de áudio não é compatível com este programa. The audio output stream format for this audio device is not compatible with this software. - + O formato do fluxo de saída de áudio para este dispositivo de áudio não é compatível com este programa. The buffer sizes of the current input and output audio device cannot be set to a common value. Please choose other input/output audio devices in your system settings. - + Os tamanhos de buffer do dispositivo de áudio de entrada e saída atual não podem ser definidos para um valor comum. Por favor, escolha outros dispositivos de áudio de entrada/saída nas configurações do seu sistema. The audio driver could not be initialized. - + O driver de áudio não pôde ser inicializado. The audio device does not support the required sample rate. The required sample rate is: - + O dispositivo de áudio não suporta a taxa de amostragem (sample rate) necessária. A taxa de amostragem necessária é: The audio device does not support setting the required sampling rate. This error can happen if you have an audio interface like the Roland UA-25EX where you set the sample rate with a hardware switch on the audio device. If this is the case, please change the sample rate to - + O dispositivo de áudio não suporta definir a taxa de amostragem (sample rate) necessária. Este erro pode ocorrer se você tiver uma interface de áudio como o Roland UA-25EX, onde se define a taxa de amostragem através de um interruptor de hardware no dispositivo de áudio. Se for esse o caso, altere a taxa de amostragem para Hz on the device and restart the - + Hz no dispositivo e reinicie o cliente software. - + . The audio device does not support the required number of channels. The required number of channels for input and output is: - + O dispositivo de áudio não suporta o número necessário de canais. O número necessário de canais para entrada e saída é: Required audio sample format not available. - + Formato de amostra de áudio necessário não disponível. No ASIO audio device (driver) found. - + Nenhum dispositivo de áudio ASIO (driver) encontrado. The - + O programa software requires the low latency audio interface ASIO to work properly. This is not a standard Windows audio interface and therefore a special audio driver is required. Either your sound card has a native ASIO driver (which is recommended) or you might want to use alternative drivers like the ASIO4All driver. - + requer que a interface de áudio de baixa latência ASIO funcione corretamente. Esta não é uma interface de áudio padrão do Windows e, portanto, é necessário um driver de áudio especial. Ou a sua placa de som possui um driver ASIO nativo (recomendado), ou pode usar drivers alternativos, como o driver ASIO4All. + + + + Error closing stream: $s + Erro ao fechar o stream: $s @@ -2554,47 +2954,47 @@ Invalid device selection. - + Seleção de dispositivo inválida. The audio driver properties have changed to a state which is incompatible with this software. The selected audio device could not be used because of the following error: - + As propriedades do driver de áudio foram alteradas para um estado incompatível com este programa. O dispositivo de áudio selecionado não pôde ser usado devido ao seguinte erro: Please restart the software. - + Por favor reinicie o programa. Close - + Fechar No usable - + Nenhum dispositivo de áudio (driver) audio device (driver) found. - + utilizável encontrado. In the following there is a list of all available drivers with the associated error message: - + De seguida verá uma lista de todos os drivers disponíveis com a mensagem de erro associada: Do you want to open the ASIO driver setups? - + Deseja abrir as configurações do driver ASIO? could not be started because of audio interface issues. - + não pôde ser iniciado devido a problemas na interface de áudio. @@ -2602,17 +3002,17 @@ , Version - + , Versão Internet Jam Session Software - + Programa de Jam Sessions pela Internet Released under the GNU General Public License (GPL) - + Lançado sob a Licença Pública Geral GNU (GPL) @@ -2620,7 +3020,7 @@ 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/res/translation/translation_pt_PT.qm b/src/res/translation/translation_pt_PT.qm index 1fca6c2dc3683fdf2a45b343c8107cae1b70efc7..5b8bebb48363b6d89550a9fb73845afdeb201a05 100644 GIT binary patch delta 4067 zcmZu!d0dU@`@Wv{yvteN6H18EOlFcMWe_1-qY}{~Dkp1HnpCoW>14=Em&sYf~9Jsb02#o^&%b!5&3-C|Yfhqn4-*5w1bQgj{ zGGI{$p;sj^*%gBG9-!6@!mu=;%n!n-aTLHY2wwfbhTeiOW-kS@0z%L?fJbZ_GVvUQ z;0a)2BZQTD3NRT$reFlht03&_4RmvYkQ)o;|1*UArgOy5D|lul08h)|d5_+6b!|h| z)dyb5MvA1x72Y%NQRXS|K1+eL=3#XIpTQy?VRT^%5V{*am$m@xAjS^f3&tIS@0tR@ z?H zPNRPZjQxumqjoVvD%X9#ViG?YN=UUxTqD+@xe;DEKNDGJqH# zX;gA??_iYm4D!JTu)XeQRa>qz{tld5CR4-y^e+_rWDH5z_1Xr9N zP9@hQan=5Zzy|%rH6>6J?Ko?~vUKjXF&Ql8DA&AnF>vV-*L>L>_;WA!&b}Tvvp^vp z3I>}yLLr`S0E;wNbbC($OiWPN=0(wUo}zDeNDDS9ZhuA#ee0rVygQS0U8iWQq7Qcj@zN_Q$!9)% zrv#3eu;d4~$?FvFUY7_QXyPaP6jO7x@PhBIjLb5zjwJ8klCN# zH+BV;<^-QzK?ZfVx(%7LHJ@|90Lc_kIXMGdFqU!j@x5J2m9(!K4Zyu!)(eiSQ#|8c?1W1{;oo4L>QkzZ(ap-XwT_=s`rr z34wZ&?Tu|hP#X12#!+Evj1$!t+-} zVV5tE94Kn~R|1YN#7;?i@(l;Ea~=i$s6sScqwie9#c38#$RXXt#1LY_<&>B_-jaro zm$)U0>Dn?8itGEa*G`cap(DMFwLoO=%{IJvT}748%};d>gV3 zqBP&0uC*tng=0VIUpGM7P(k&?xg=~vz5J9)(~|rZOFtSN*BK)z_3zfpIi#$ZMf2Bb_q?r zV&%lnr2lON%7_c+Y2y(l{Me+7YkNOZ85en(4lEm#ao6b7w8&Gr_(dwvBSyJubTj$P z66NZB6hO-ZW!e$)hlYpBLy~bVSg&o$i;4dNFUnQ&se0g4H&y474Rj>?M`ahg0(dfC z<={u9nf0Y=h?zUE@vzFh3o$d}d(|k`j+*Wdl~4Ey;F*UiaNsD~{Y9Wki1o9s&z)&1mL~BYW=%f8V-|H`)_4XEibALU#D8f zhN_PIZAUeBSDm~<=YWt4s#AspD#0t&MH^zsX^E=1#F=C_M^)lNfqPo0>Xr~w+yhnf z9x|ZXT-E!b#K44TwZ4^}H~pjje0yJ-0aj|S%d}qAEw!=j$CD~`&E6V)a{ zrw;d~qtfHA)Dh#0$Z*Ql5p^ZNhiB@Dw{NJM)#~Wbn`FVy)iICugLU>$$A0{t%cwr#ECA0V)hE{y z6A6jx0y8Jl=kMxs9m#mw4^$WZMuG8R>MQNSzy=&p*EthIzQO9JD(Z6g0~$V?^gJeA zqg43N3F(H$%+86rzK6zj>^$I(hsJYw64(@lCZLle1yZA#)n_mz0!`f41;BMq4JWz9`fl5&PNK;lP z)BL~ltnCNuJzaC_z#WoFmgc^XC!w9@{`e8p<*Q8CYOZ$+ImZ5c7*a8+ylQxi4o7j4LTS8A=BX?)+=rtMkZ9{4Iy>*zS2EO)Hd>l-C7-&H%h z@Db_1!bou>LyXNMf+ra7)5+d`y%c*O~*=Yvw^4=I_u;czf$Iz zx~{(xwOb~&Asez)*Z)~A*wkq{pEao@vmD*T160cScT8BaQ5QarO6Anigdr`uC`$_X zcDgS9wXvQobEaDsSISK5h&+4Em?wa=&t{i=0Or_%k%mAV&hzT|v6b&W@T z!K|EQsii$R<4xJpSXvLPPm`@?lYEA~mAfjl$%q1F`@}@x*c#dXc{(O_qYbod@0ZQl;A&K z$uU_i)GIM^tl}uC#zQtPOQD5l@0OQ6-%A-^mD4Ofb^lyB^Apv>Y~{?ipD4GI3(8Xg z+Zg$Vg)5zwW%+3$F_X7Iex5>^cGxX9c6&%C9!vR6PA;tzBEOqZ0yy8%+xldYDlX~W zKTiUdDD}gODKM_5e$3)Wz?bih`YG2bvZcZLX=@1g1nFm8Jx?D@(y!glkp)lG|0u-( z;t~B;%P^{Oi@uO%0S4*xg+^+kUS9f&)GRs!hUqIUs>p%`{j)c|z$RP$YcrYDaZ%sg zKLi-JTHl-#17`Cv5-hHZ0yL)(fVuenn0|)h_g^|F*@^&*;{g_oi%MId@72!CZ{*zg k@Zqts(UCKzB}C4RNi*-T?0?+dZJzo6?;am-WKQh=0Ou*m5&!@I delta 4028 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 MaZ&kEM%Iu0AE Date: Thu, 18 Jun 2020 21:06:39 +0200 Subject: [PATCH 189/936] small fix --- src/audiomixerboard.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 97ff713547..6e11194b04 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -629,7 +629,7 @@ CAudioMixerBoard::CAudioMixerBoard ( QWidget* parent, Qt::WindowFlags ) : pMainLayout = new QHBoxLayout ( pMixerWidget ); setAccessibleName ( "Personal Mix at the Server groupbox" ); - setWhatsThis ( "" + tr ( "Personal Mix at the Server" ) + ": " + tr ( + setWhatsThis ( "" + tr ( "Personal Mix at the Server" ) + ": " + tr ( "When connected to a server, the controls here allow you to set your " "local mix without affecting what others hear from you. The title shows " "the server name and, when known, whether it is actively recording." ) ); From d52779518e0adfccdbe878f1b2f175808c3f7667 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 18 Jun 2020 21:12:12 +0200 Subject: [PATCH 190/936] update German translation --- src/res/translation/translation_de_DE.qm | Bin 99393 -> 100588 bytes src/res/translation/translation_de_DE.ts | 14 +++++++------- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index cc52deb035f96b9aeeaf4b075353bbcb50d42799..d4dd8d80d17119175980d308ceebf93f9738f7ae 100644 GIT binary patch delta 4915 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 delta 4072 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 t@F(r!aZ7$LHvOoiUu`)tJ;C Personal Mix at the Server - + Eigener Mix am Server When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. - + Wenn man mit einem Server verbunden ist, dann kann man hier den eigenen Mix verstellen ohne dass man etwas daran verändert, was die anderen von mir hören. Der Titel zeigt den Servernamen an und falls bekannt den Aufnahmestatus des Servers. @@ -201,7 +201,7 @@ RECORDING ACTIVE - + AUFNAHME AKTIV @@ -2765,7 +2765,7 @@ Genre - + Genre @@ -3006,17 +3006,17 @@ , Version - + , Version Internet Jam Session Software - + Internet Jam Session Software Released under the GNU General Public License (GPL) - Unter der GNU General Public License (GPL) + Unter der GNU General Public License (GPL) From d5434400a0a3309d411dfd1cf882f3ed5aefdd10 Mon Sep 17 00:00:00 2001 From: daryl Date: Thu, 18 Jun 2020 22:12:47 +0200 Subject: [PATCH 191/936] Update Spanish tr --- src/res/translation/translation_es_ES.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index aee09a118e..fb46d7183f 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -3026,17 +3026,17 @@ , Version - , Versión + , Versión Internet Jam Session Software - Internet Jam Session Software + Internet Jam Session Software Released under the GNU General Public License (GPL) - Publicado bajo la GNU General Public License (GPL) + Publicado bajo la GNU General Public License (GPL) From a3dfa4fdf86c5aaebdbbe78be5c1434d4dc8ff5f Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Fri, 19 Jun 2020 16:22:59 +0200 Subject: [PATCH 192/936] update --- ChangeLog | 2 +- Jamulus.pro | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 38b297710f..baed46ea11 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,7 +5,7 @@ 3.5.7git -- add new "slim channel" skin, intended for large ensembles (#339) +- add new "compact" skin, intended for large ensembles (#339) - support sorting faders by channel instrument, coded by Alberstein8 (#356) diff --git a/Jamulus.pro b/Jamulus.pro index c16ddf04c7..852647f494 100755 --- a/Jamulus.pro +++ b/Jamulus.pro @@ -10,6 +10,7 @@ contains(CONFIG, "noupcasename") { contains(CONFIG, "multithreading") { unix { message(The OpenMP multithreading is enabled.) + message(NOTE THAT THE OpenMP IMPLEMENTATION IS STILL EXPERIMENTAL AND MAY NOT BE STABLE.) DEFINES += USE_OMP QMAKE_CXXFLAGS += -fopenmp QMAKE_LFLAGS += -fopenmp From db7a7599b6a6d9e89164fb2d5227e9f35862cc5f Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Fri, 19 Jun 2020 21:29:09 +0200 Subject: [PATCH 193/936] bug fixes for OMP implementation --- src/server.cpp | 37 ++++++++++++++++++++----------------- src/server.h | 4 ++-- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/src/server.cpp b/src/server.cpp index 27d8f04a7e..73af1ce0d6 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -335,14 +335,13 @@ CServer::CServer ( const int iNewMaxNumChan, // do not know the required sizes for the vectors, we allocate memory for // the worst case here: - // we always use stereo audio buffers (which is the worst case) - vecsSendData.Init ( 2 /* stereo */ * DOUBLE_SYSTEM_FRAME_SIZE_SAMPLES /* worst case buffer size */ ); - // allocate worst case memory for the temporary vectors vecChanIDsCurConChan.Init ( iMaxNumChannels ); vecvecdGains.Init ( iMaxNumChannels ); vecvecdPannings.Init ( iMaxNumChannels ); vecvecsData.Init ( iMaxNumChannels ); + vecvecsSendData.Init ( iMaxNumChannels ); + vecvecbyCodedData.Init ( iMaxNumChannels ); vecNumAudioChannels.Init ( iMaxNumChannels ); vecNumFrameSizeConvBlocks.Init ( iMaxNumChannels ); vecUseDoubleSysFraSizeConvBuf.Init ( iMaxNumChannels ); @@ -351,18 +350,22 @@ CServer::CServer ( const int iNewMaxNumChan, for ( i = 0; i < iMaxNumChannels; i++ ) { // init vectors storing information of all channels - vecvecdGains[i].Init ( iMaxNumChannels ); + vecvecdGains[i].Init ( iMaxNumChannels ); vecvecdPannings[i].Init ( iMaxNumChannels ); - // we always use stereo audio buffers (see "vecsSendData") + // we always use stereo audio buffers (which is the worst case) vecvecsData[i].Init ( 2 /* stereo */ * DOUBLE_SYSTEM_FRAME_SIZE_SAMPLES /* worst case buffer size */ ); - } - // allocate worst case memory for the coded data - vecbyCodedData.Init ( MAX_SIZE_BYTES_NETW_BUF ); + // (note that we only allocate iMaxNumChannels buffers for the send + // and coded data because of the OMP implementation) + vecvecsSendData[i].Init ( 2 /* stereo */ * DOUBLE_SYSTEM_FRAME_SIZE_SAMPLES /* worst case buffer size */ ); + + // allocate worst case memory for the coded data + vecvecbyCodedData[i].Init ( MAX_SIZE_BYTES_NETW_BUF ); + } // allocate worst case memory for the channel levels - vecChannelLevels.Init ( iMaxNumChannels ); + vecChannelLevels.Init ( iMaxNumChannels ); // enable history graph (if requested) if ( !strHistoryFileName.isEmpty() ) @@ -922,7 +925,7 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE for ( int iB = 0; iB < vecNumFrameSizeConvBlocks[i]; iB++ ) { // get data - const EGetDataStat eGetStat = vecChannels[iCurChanID].GetData ( vecbyCodedData, iCeltNumCodedBytes ); + const EGetDataStat eGetStat = vecChannels[iCurChanID].GetData ( vecvecbyCodedData[i], iCeltNumCodedBytes ); // if channel was just disconnected, set flag that connected // client list is sent to all other clients @@ -940,7 +943,7 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE // get pointer to coded data if ( eGetStat == GS_BUFFER_OK ) { - pCurCodedData = &vecbyCodedData[0]; + pCurCodedData = &vecvecbyCodedData[i][0]; } else { @@ -1023,7 +1026,7 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE vecvecdGains[i], vecvecdPannings[i], vecNumAudioChannels, - vecsSendData, + vecvecsSendData[i], iCurNumAudChan, iNumClients ); @@ -1068,12 +1071,12 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE // is false and the Get() function is not called at all. Therefore if the buffer is not needed // we do not spend any time in the function but go directly inside the if condition. if ( ( vecUseDoubleSysFraSizeConvBuf[i] == 0 ) || - DoubleFrameSizeConvBufOut[iCurChanID].Put ( vecsSendData, SYSTEM_FRAME_SIZE_SAMPLES * vecNumAudioChannels[i] ) ) + DoubleFrameSizeConvBufOut[iCurChanID].Put ( vecvecsSendData[i], SYSTEM_FRAME_SIZE_SAMPLES * vecNumAudioChannels[i] ) ) { if ( vecUseDoubleSysFraSizeConvBuf[i] != 0 ) { // get the large frame from the conversion buffer - DoubleFrameSizeConvBufOut[iCurChanID].GetAll ( vecsSendData, DOUBLE_SYSTEM_FRAME_SIZE_SAMPLES * vecNumAudioChannels[i] ); + DoubleFrameSizeConvBufOut[iCurChanID].GetAll ( vecvecsSendData[i], DOUBLE_SYSTEM_FRAME_SIZE_SAMPLES * vecNumAudioChannels[i] ); } for ( int iB = 0; iB < vecNumFrameSizeConvBlocks[i]; iB++ ) @@ -1088,15 +1091,15 @@ opus_custom_encoder_ctl ( CurOpusEncoder, OPUS_SET_BITRATE ( CalcBitRateBitsPerSecFromCodedBytes ( iCeltNumCodedBytes, iClientFrameSizeSamples ) ) ); iUnused = opus_custom_encode ( CurOpusEncoder, - &vecsSendData[iB * SYSTEM_FRAME_SIZE_SAMPLES * vecNumAudioChannels[i]], + &vecvecsSendData[i][iB * SYSTEM_FRAME_SIZE_SAMPLES * vecNumAudioChannels[i]], iClientFrameSizeSamples, - &vecbyCodedData[0], + &vecvecbyCodedData[i][0], iCeltNumCodedBytes ); } // send separate mix to current clients vecChannels[iCurChanID].PrepAndSendPacket ( &Socket, - vecbyCodedData, + vecvecbyCodedData[i], iCeltNumCodedBytes ); } diff --git a/src/server.h b/src/server.h index 5add392ab5..28bcd2e44b 100755 --- a/src/server.h +++ b/src/server.h @@ -342,8 +342,8 @@ class CServer : CVector vecNumFrameSizeConvBlocks; CVector vecUseDoubleSysFraSizeConvBuf; CVector vecAudioComprType; - CVector vecsSendData; - CVector vecbyCodedData; + CVector > vecvecsSendData; + CVector > vecvecbyCodedData; // Channel levels CVector vecChannelLevels; From dbb0148a7045d9b9378a12cda13daa1fcd382a27 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 20 Jun 2020 12:40:47 +0200 Subject: [PATCH 194/936] changed translation management so that not only the PC language setting is used but also the country --- src/main.cpp | 2 +- src/resources.qrc | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 8acd1a43ef..251ec0d091 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -587,7 +587,7 @@ int main ( int argc, char** argv ) if ( bUseGUI && bUseTranslation ) { - if ( myappTranslator.load ( ":/translations/translation.qm" ) ) + if ( myappTranslator.load ( QLocale(), "translation", "_", ":/translations" ) ) { pApp->installTranslator ( &myappTranslator ); } diff --git a/src/resources.qrc b/src/resources.qrc index bc735b5b18..8539e4d83f 100755 --- a/src/resources.qrc +++ b/src/resources.qrc @@ -1,24 +1,24 @@ - - res/translation/translation_de_DE.qm + + res/translation/translation_de_DE.qm - - res/translation/translation_fr_FR.qm + + res/translation/translation_fr_FR.qm - - res/translation/translation_pt_PT.qm + + res/translation/translation_pt_PT.qm - - res/translation/translation_es_ES.qm + + res/translation/translation_es_ES.qm - - res/translation/translation_nl_NL.qm + + res/translation/translation_nl_NL.qm - - res/translation/translation_it_IT.qm + + res/translation/translation_it_IT.qm - - res/translation/translation_pl_PL.qm + + res/translation/translation_pl_PL.qm From 2ce9b4907e08fd8deb383ad2faad9628193dd8fb Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 20 Jun 2020 12:45:41 +0200 Subject: [PATCH 195/936] added empty Swedish translation files --- Jamulus.pro | 5 +- src/res/translation/translation_es_ES.qm | Bin 96093 -> 97686 bytes src/res/translation/translation_sv_SE.qm | Bin 0 -> 23 bytes src/res/translation/translation_sv_SE.ts | 2626 ++++++++++++++++++++++ src/resources.qrc | 3 + 5 files changed, 2632 insertions(+), 2 deletions(-) create mode 100644 src/res/translation/translation_sv_SE.qm create mode 100644 src/res/translation/translation_sv_SE.ts diff --git a/Jamulus.pro b/Jamulus.pro index 852647f494..16fc79b63c 100755 --- a/Jamulus.pro +++ b/Jamulus.pro @@ -37,8 +37,9 @@ TRANSLATIONS = src/res/translation/translation_de_DE.ts \ src/res/translation/translation_pt_BR.ts \ src/res/translation/translation_es_ES.ts \ src/res/translation/translation_nl_NL.ts \ - src/res/translation/translation_pl_PL.ts\ - src/res/translation/translation_it_IT.ts + src/res/translation/translation_pl_PL.ts \ + src/res/translation/translation_it_IT.ts \ + src/res/translation/translation_sv_SE.ts INCLUDEPATH += src diff --git a/src/res/translation/translation_es_ES.qm b/src/res/translation/translation_es_ES.qm index 182addccf81fd9a082ac3f7bbba948b76db2fbbf..3699bd948aff069a2180128a47ae4ca7292e01a0 100644 GIT binary patch delta 5154 zcmZ`-dt8m#*Z=P4JkPmbVkDtDj2THP_e+$JE>xycLXFf(*K_K0Dj7QbFf)e9He*~S_YqR=jBz&&hRH-Ek$0VQ=Hq>Tf4qO_`#k&Ed+oKp>$}$8$IUund9$#n zjkyxQN5H9a!qGs$k9M4xVaJ+ogkgYl9AP9dvdE6{z3h12icvtvDnOV3tT6-KeE}Jb zM@<1%c>vJ~^xYqbp|u^;?HJDi3K-rvn$t!7um$ICB{M+Bsz8TRToT2mafA zK+81n4;O)PJ-|P`1{8`Qc+4foiXe2q1Wa5E!RI@m_6&rf7NCaSM@EnX6Cnim1sl={ z!sv}ahjS2O0)Y{`Y-ncuV+e6$!2}lwb2Q{(J%myLIA2HD0&E}yR=m&^!X|G(I|f2| zHdw@d2nS|?NqRxtEgU#71mZc9h)G{aP8|itAAzdp79cChj%SqcIKTs*r{VF$2YA>H z-D^$~T|Gk3H;`yoK0(m(<3!y}1Z_3}k1`N+n-&a6vmtX{i{QEB;G4||Nxn^tI3VO0 zIn?5h(0K%6G8Z$>qSy4(vfx1=!>nto}#WWj=SrD-G=9 zAGuQpbbun0yC1m&Y(N$F!bDnHon^!|(@ zFBOS*#L$?qR7i@Nt9berkFlJ|Ba%# z`;&mbKNHOhttJMSik5Hv1}v&Vv@>rYSmq4T@14m`)=p8wO=4ixLQ%slTDPi&mpm`0 zp4XpmXX0Rn^EQ64t?Wv9zeh#D)`k4UQK!Ishw$;=)q#zy<}>;nrZPIr7iLZ(jesv) zZKCoV$WITUI$rV>zpSY*rR<>{|IFuCkEiK8 z&v*gpMSM->QowPp4H;_qbAxE(i}iM_UB+KKPU`2@@i#0K7T8{}9ML z!aq1-CRNw=14He^m?1jk?<7{5bk`w@MQ z<%KShG1NaQ1aG%wQvF?_S1DCT=ssc4Kjpv*rQoaT4M;Z%gX8yr`85iDuOq;u79r@( zN5tc2LbO>!^?TJ@h_R4p){GP;>Ak>GBZTxJYHGEIgp9r&scv5g25Z9@=psygdJmY& z3)8OZfg`!XmuVZQx4#kQ>5IWS{Ua=>BC6xZ35zBX)zw#p<#%pTq|rjj1_{trBdpj; z>zrNeSo>BmuU<`*sR9HWo}WZ`4@|vZD3u)mm9wKJ)h2!sTf%$(f zREE3({&*#vo7_Sj@u+ZlB2k*v#*U}=36FoSpw4$fc+;E8Ij%)`>s3rA;WuKTdkdYE zABcsygePLnVqtwaFsDVV=ywV5DiF7usiDS^A$I>)Jk#uWil{er8v>? zA@zeQanX2U#A}my?ieRJv{s7OSzb|DJ{E6097|f-D&91g0yvZ>E*q$%DtRj2mg5ID zra-)R%OpB$^2LXuNwiL8we5k4IPuZ4G+^^u@vqm(A#IVkGRKRK%NFs2`Hs|@6U2|S zL}`gx{OlQR?BOPUemDW>{HeInji~ny7r*OBsZ(T1*!(TPuwNwH1F|z~k;L&An)lTK zNymsHu<$gAOE76*@Ht7prm0l_%`K7ux3zSh_mhOXm6PFWN#uzEfX86TSVvkI6)G85 zHU|jzlEiz+sNtkZK5Zh(N7P7i9)+Nq$PH0CTz_*}sBrLLUs19QmCX z7Dl z_ncZ{aE=WbpCaw~$u7EK#Y%gXSJ0VoO*(2ywV95?f26U_)DTuqm8SlB0%(2Ej&D+= zIo1V3o1{5uXGrx2r8$>F3G<|d^~I#-rP9wso2ck8K!vZ&xq1nuXsoPDws|)2KrHk4BpgWDDI4NIo?E_` z`L!pCCOODPvQ{L<2H7axe(HEPW#eDb_qV^xk`})J6Q7VJJ+7sG;33PLP(*gF%I2kX zrbDbq_SFz;-9M8p>SO|%w#yd3en8@EBinL)Ev0sqZ08lqefD$NF7x>=l=EEK!792a zO!!!KDBeV;+eq0-H;UZ*j_g#m4;?xkWz{{&^PnEGN7Jgwp+2&v@2D~T=__mYrwGTs zmTTV8_l8LMhpYO~*^nd;K123ys_gi{Adgu?sSS*jCr|kU$ekijenF{9{z-1uh456z z`{k))Dybvgk*7YYreoG5Pkq%$HSejfq&>zVxE0%9ajF0XL# z0$kk8^5bo(GdUiRS8gW{xs~#&RtaEz7s(&_5LIF8PgGXjg?)G>UFE z4;2nwyr>E$D*A`z0@wE{f&ylOO<1moYUfFgEK{WP8VtOit;p$J0bE|8$hl2{`Cn2@ z{VR&j5NE~w&nHs~&7q2~AI$;lu~V_shs4x1La}<}Qu@%WShFb{NcK^z^KYOVQk4xE z7pK^?a2VYQLloP6)nL)hiUX%9GEuqWNI(m)%c7{&L*`kpbZw&Z{dbwNTU~4FpjApw&pc|$3CiF=DN(&o8G4j*ejz~_ zS?LGXJxCe9oE(>ZpiDpDO!eQkzcT$kV^q;59uBDCEY*QMqoC6!*L%HNW zF_tP1(nV0pyz}iiAwiYy zM2=tYpfbL!qhE1*R0YFnzr?euRm;uK=@QsQwINkcKSZ{uHV>}=dhJvldgcWrHQSJl z=&d?-xElDOtLkJ*5;+7_^<;XFY^$niN2lK7?y3imNsJM4)nAinJYB4+9~4d<@xH2I zPdHe+Lbar&HFeA@YNwhyV9`o-hbdG=em&J4&C)X9>2GTHq9Wj@A!_$0tLg9&)IN@` zV8LPP{xhSflliCzD!!un=F|amzNE|LX?5US%1K_h9nX5I!*9_Kiy`aPpZr-%mr*Bm zhBd;+SJe8=Eup^j+Te})_1J1+&PUTK zj_wnRW=*G2o2g3bHGUt?1g7=T1e_uVFb`K%_J)K#hQ!7n@RP@G?yH2QEOhS zdE6KdENi8C>7WK{-&xbtZ#;?mlBQ{!9?WG?8d%nL5r8%bKoWE?(%(evUaI+9(P}XL z#MfaOjbzf87TK019Xv}G_GYpU?Z@bhxdwe=rZy~Xsy5N2HKppbQ95J3&S<&Wp}l2R zhkRcxg6RJS0x*pJ4MzwrBAkp^pQGt51_4xu6bt=xhzuMa5ji3xJV+ZbJUS#MkZjay z_8<_sFwxd}`mtgt>FLHCOO|}VI$E;t@`BF#&2nT(2ayRni+{PJIhAJGL(tNyJlZSk zzumWmmkR^gOQevrWFd{7we*%k-;!*58RaHgtpr8aLA4TzazWOnz_A>pin)V^ei{ZIVH+*Cm;B z$y$>^YfjYW+7jhyOB#JM84a1a+EkrUr%lYvG!$qH4SCj?xjK{e(WuQdBvGcbDANUL zrc^_oNt>9GLI%_HQ?v!ClzjuG-)J?FXw;?{4O!M@UfO8VgelFGsnh1B8VYi4+vVy8 zTScPPCuY%Z`eaWsKptl34F!7Jv(=I|&7@7s)h5yo`MS(Ptx=a`FecM(UL*|X-A6iZ zmZ~{~y^oTGS$cMH+MV`MxQNE1{&zgeHon(AKcCQl`W&g{f;r%Sha6?vhVv?oj z_b$78nD2`^C=u~*nknt?rwJny^+}eYMJ~G?W>0Z z+Chpa*sQ*HgpVQvmVly;o!d}MRwZOpWL6FR_dGStv-oWMc=yxoW4xUHKRY`wX?OeI i2v4P`gYbwXW$gj~C+Z-b-dJ*e1asc|^$2#Z*Z%+y)8I}3 delta 4049 zcmX9>dt6O<_kOUE<ILSiT&%B7sl(6)+Y0f=^oo^sX>tkOlZ({scbU0AHB`d|Ctk^=%;b z3WPohfaPNdeaq>vYY-ghB^A9Oj7$YC*+3ZQ18k-5?gPOFyF-|;p8^;NAz&;p@~s)0 z$3Y1G8fcD#u*wJ%Iypi}7l4wL5Hk7$ol_uWM}v7hgpm6^82brYJ8$5RGH6##1I}N8 zSbPo$WH2}$0_N;BV?i4F9(`Up0FM@;Z`noqo`~^VE)YZaF#cdH@VF4;AJBcy zhg#4C_C*8S6O2H;1|AU)DD!XOah?MC@H0FIZ3dfq9G>SADPuQyUD^h)BbYdxGW!?? z?{!ob7YUOB=>DCVnmI&2aQ$p1UrTZA?gK*E5 z`rj(S@|{Fs-~enmmj)~=#_lC_aL6_6TTj&0FU0}d>wvyJ4)(VPG)s|r_ASuV0l$v% z2kS8c*OEyGQESXtn25i75@R8wQJ$L&-1bHV5rHB*JPou37G&Ys>jhxWd-2?~Z6w&F z3cPL@3Kag^ip<#pb#{-5DqkklP-Ys&3=b&t27wKkzX#}YkGVTnf*BiG=;3a_Y&SL| zk%ZYciNyu{L2q(l$rCInpj#}}w+Srh3ES;=73d$z(sQlA`lhpkZRY}FIx`h+^at|& zS>dnQVE_5VZoa<&rtW1A{XUWSWcD;X8+fyrJ@?B4o3fA9tdW2Y0j!~GJa4{dFz?9RRX&D`OWdygfUIk{%;}Q`;nY(gZlcoT>HgJ19NWJZ^a{Iqe0ULjc z%Os7Uca|CJc5s<{tbny^xNIX?@{2oMb|Z;d`h`0_kEA12aru3Tp?zJrv-WeqtW6eN zaqdh&p2t1*JqqU3o2!c@5p5f6#!F$`ds70~%z0eH@})q5o@==53gn#U8f~kA++G^( z(O|k>snHg^Cb2%#boodD_`7PXPtFCKmZEVEa|N@C)A-&<1FCpUY=AT1^i-2@Y6kiL z`AtotXDLxwuGy0HGuXtZn%@=;0gK$Hx!au%np2~xy+;ge4c64&rw6wd@#4E|zcDu*8CK&Vz7Y`eCWPvu#t8Ax6WsPg=_hx^QMtDz%ShyOWNAR zFZXaD|0nzNn;QlKmzSBb;u^m*g#6w2wHX8N@@bd<2iO|;eJlSaHw@tSfA0?Lh~zUS z{y?RP<1?>QgSz=sE3)33_`_MDK(r%&xQt43aS4C)JlU|(f&Z<~N~*yV{E}dY;2XFY>7fAKoZvNj?%8a|l-?JjB2cF<7?${7BjDLQX zRQ(`@f9V_#Ha&;0{V)>PKZdXKN(TDP7u065b#z=SvNl1WM+UP@#qgojMsV5Qn zo#1aI+g@8M1f-H?wp$3(qU^!K7YlPosMJZDg>MIT2CN1O|840LPH{rq>qk_IQeoMx zDB!dptT9phWG*&BVpK9%XD=bCgs2YQCZtRws*C3cTPp68zc&e6_lkgxkFYI^9<)4Q z#)=?e=T2fwi815lw}g*K<(5La?hKIjA0homa#edDA+so-n9&Irn(tF0M}#7ePsE&` zV7eOKL>YAvZcJ&R)ZdH+Uc$?hdDQU=gilW7=KxpXvwbo!>5f+D+eDM^3$2hqm|vw8 z_ILv;i?s5fa-h!%ZO4_=%0CurJDsG!?-gi6Z_snj|7fRMR#HP!wDBRtgdNi+OzJ?x zsmY|>o%(_NxI(-COdz#ltu`ZpB0nW+GlwYDyFImsV_d;J)3hfJO(UCr)aLt>Sijh2 z#?PVJbD491y$;&KI}}LgJZ({oJsmtl`+S`x+4YUKsv9wx>Y;u6wxv}s)4n?sMkU#; zt?x>V+nEk&n>$m@go`3ucL;F(EOO83pcNsaIAW~Pdu1=irB@SYCou69Mlj; zoh(=!)in)R1kt-|Hds$P(YL?_=(Sw@+LE60St|x*t^z!x#LzwxShow})COYO^}V<- zl$iQ&zgA=>xvjX!mVQtUi%TY!0*2w@#v)Sn!a?HZ?KB&PD&n>Wc{EPniQ5%#`o32* z*LbqH>!KCe?;r7aWFA=C!Q!cHw7?ik#ItvafiZfqX!U)-qK)`4)QL)bOni9Ujc}Rx zxbZxgK0>VOYDNAZnWabr#25$$ka8{;Qr+kFPRg(^;M4AYr9piN%7z)sW$HjmcLE-auIk2B-@v$~kp`-kXa=3J)5WwkEmh9{w$ZfQ+2iMU+1 z+OvWBjje8Nh86k0zCf4yJ2i^RLfug@3Cw1w?qd8K;Ke~n&94SdUXePLZluy|mU=`} z!+AJe>ND9J2(OVwSWv+0VknYf6yjeG^ZN4v-QfP2Beo#wE_ERLEs;tcDey7#rK)A63a1My^U#yGYx~idiTq8;H}wae0WJ8u#0Nywp1TcN2Lk7 zr=RJ;lV2_MvnLf%(gk)SphG z%wiOMo`pToX{!E0dul*!$LfoYlQY(jre42KJ~B)N^XV?;8d!TC?})hd-D z{IwNXuP5@ItbfTS$K(pH@r3qr#Uwh=xYmsI@8$RWE8z2WrEP6FSa(5bm&1Xzvs1dP zAVzF=DOT(2NUZHzk@cRSST)cXzY(F>Rkx+-swn;XEdn#KKNa_}I-)vP@jUm0*6=?S z-y&CPD0`I9Efl#XN|~G6iE6r0nfsVZ;T5LLJ5ARepD58!=|$TYD+_L31@re;Ha;f8 z!X1@VTS`O}ie8RmAN z$jcWS7QC+pylV|h#?TAH42B(B-qEh-W!O7A3b3m(92}De*w+~H-`Z2{hqWSe4KbWQ zQwkjV({M3z2AK6XhSG5Q?j2w#>qx`x>1xCCmn23HN5hM0^n2tuL(Nc=H!#Y^P$T zc%>gPuudH!uO(lHs-sq|p&fFQIyQl75;Mt+7xPr_`)}#5S+P3#*;5*39n^14Eg3#@ zRHF_yk!VJ%(VAmqpN{H^L^?QZy1L@ke#-a{HPy1k1^3kS7ODq-r>1`(w9ZxY{!RwE zolf{rGEP`ZBJAa4oO+W2iyLN~zK$?$t}*gT0om!kF=+=!t+<2nCou}p zCK0 z3<{w?-0cj;hQm={9bV1>n^m6k$k;5WPU*ZjwRe}xIorA&(B(wfd24cR^;;Z}v+jq- hnw*RuXW8ZyAC2R3{>qtTpYzot@7X5`J=xU({|_Ae;2{72 diff --git a/src/res/translation/translation_sv_SE.qm b/src/res/translation/translation_sv_SE.qm new file mode 100644 index 0000000000000000000000000000000000000000..9dad8dffceb9623e88f8b96d9cd0caf25574c6fa GIT binary patch literal 23 fcmcE7ks@*G{hX<16=n7(EZlpygMop8iIEWihQJ9+ literal 0 HcmV?d00001 diff --git a/src/res/translation/translation_sv_SE.ts b/src/res/translation/translation_sv_SE.ts new file mode 100644 index 0000000000..2cab5caac5 --- /dev/null +++ b/src/res/translation/translation_sv_SE.ts @@ -0,0 +1,2626 @@ + + + + + CAboutDlg + + + This app enables musicians to perform real-time jam sessions over the internet. + + + + + There is a server which collects the audio data from each client, mixes the audio data and sends the mix back to each client. + + + + + This app uses the following libraries, resources or code snippets: + + + + + Qt cross-platform application framework + + + + + Audio reverberation code by Perry R. Cook and Gary P. Scavone + + + + + Some pixmaps are from the + + + + + Country flag icons by Mark James + + + + + For details on the contributions check out the + + + + + Github Contributors list + + + + + Spanish + + + + + French + + + + + Portuguese + + + + + Dutch + + + + + Italian + + + + + German + + + + + About + + + + + CAboutDlgBase + + + About + + + + + TextLabelVersion + + + + + Copyright (C) 2005-2020 Volker Fischer and others + + + + + A&bout + + + + + &Libraries + + + + + &Contributors + + + + + &Translation + + + + + &OK + + + + + CAnalyzerConsole + + + Analyzer Console + + + + + Error Rate of Each Buffer Size + + + + + CAudioMixerBoard + + + Personal Mix at the Server + + + + + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. + + + + + Server + + + + + T R Y I N G T O C O N N E C T + + + + + RECORDING ACTIVE + + + + + Personal Mix at: + + + + + CChannelFader + + + + + Pan + + + + + + + Mute + + + + + + + Solo + + + + + Channel Level + + + + + Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. + + + + + Input level of the current audio channel at the server + + + + + Mixer Fader + + + + + Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. + + + + + Local mix level setting of the current audio channel at the server + + + + + Status Indicator + + + + + Shows a status indication about the client which is assigned to this channel. Supported indicators are: + + + + + Speaker with cancellation stroke: Indicates that another client has muted you. + + + + + Status indicator label + + + + + Panning + + + + + Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. + + + + + Local panning position of the current audio channel at the server + + + + + With the Mute checkbox, the audio channel can be muted. + + + + + Mute button + + + + + With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. + + + + + Solo button + + + + + Fader Tag + + + + + The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. + + + + + Mixer channel instrument picture + + + + + Mixer channel label (fader tag) + + + + + Mixer channel country flag + + + + + PAN + + + + + MUTE + + + + + SOLO + + + + + M + + + + + S + + + + + Alias/Name + + + + + Instrument + + + + + Location + + + + + + + Skill Level + + + + + Beginner + + + + + Intermediate + + + + + Expert + + + + + Musician Profile + + + + + CChatDlg + + + Chat Window + + + + + The chat window shows a history of all chat messages. + + + + + Chat history + + + + + Input Message Text + + + + + 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. + + + + + New chat text edit box + + + + + CChatDlgBase + + + Chat + + + + + Cl&ear + + + + + &Close + + + + + CClientDlg + + + Input Level Meter + + + + + This shows the level of the two stereo channels for your audio input. + + + + + Make sure not to clip the input signal to avoid distortions of the audio signal. + + + + + If the application is connected to a server and you play your instrument/sing into the microphone, the VU 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. + + + + + For proper usage of the application, you should not hear your singing/instrument through the loudspeaker or your headphone when the software is not connected.This can be achieved by muting your input audio channel in the Playback mixer (not the Recording mixer!). + + + + + Input level meter + + + + + Simulates an analog LED level meter. + + + + + Connect/Disconnect Button + + + + + Opens a dialog where you can select a server to connect to. If you are connected, pressing this button will end the session. + + + + + Connect and disconnect toggle button + + + + + Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. + + + + + Local Audio Input Fader + + + + + Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows + + + + + + L + + + + + , where + + + + + is the current attenuation indicator. + + + + + Local audio input fader (left/right) + + + + + Reverb effect + + + + + Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. + + + + + Reverb effect level setting + + + + + Reverb Channel Selection + + + + + With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. + + + + + Left channel selection for reverb + + + + + Right channel selection for reverb + + + + + Delay Status LED + + + + + Shows the current audio delay status: + + + + + Green + + + + + The delay is perfect for a jam session. + + + + + Yellow + + + + + A session is still possible but it may be harder to play. + + + + + Red + + + + + The delay is too large for jamming. + + + + + If this LED indicator turns red, you will not have much fun using the application. + + + + + Delay status LED indicator + + + + + Buffers Status LED + + + + + The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: + + + + + The network jitter buffer is not large enough for the current network/audio interface jitter. + + + + + The sound card's buffer delay (buffer size) is too small (see Settings window). + + + + + The upload or download stream rate is too high for your internet bandwidth. + + + + + The CPU of the client or server is at 100%. + + + + + Buffers status LED indicator + + + + + + C&onnect + + + + + &View + + + + + &Connection Setup... + + + + + My &Profile... + + + + + C&hat... + + + + + &Settings... + + + + + &Analyzer Console... + + + + + E&xit + + + + + &Edit + + + + + Sort Channel Users by &Name + + + + + Sort Channel Users by &Instrument + + + + + None + + + + + Center + + + + + R + + + + + Central Server + + + + + user + + + + + users + + + + + D&isconnect + + + + + CClientDlgBase + + + Delay + + + + + Buffers + + + + + Input + + + + + L + + + + + R + + + + + Settings + + + + + Chat + + + + + Mute Myself + + + + + C&onnect + + + + + Pan + + + + + Center + + + + + Reverb + + + + + Left + + + + + Right + + + + + CClientSettingsDlg + + + Jitter Buffer Size + + + + + The jitter buffer compensates for network and sound card timing jitters. The size of the buffer therefore influences the quality of the audio stream (how many dropouts occur) and the overall delay (the longer the buffer, the higher the delay). + + + + + You can set the jitter buffer size manually for the local client and the remote server. For the local jitter buffer, dropouts in the audio stream are indicated by the light below the jitter buffer size faders. If the light turns to red, a buffer overrun/underrun has taken place and the audio stream is interrupted. + + + + + The jitter buffer setting is therefore a trade-off between audio quality and overall delay. + + + + + If the Auto setting is enabled, the jitter buffers of the local client and the remote server are set automatically based on measurements of the network and sound card timing jitter. If Auto is enabled, the jitter buffer size faders are disabled (they cannot be moved with the mouse). + + + + + If the Auto setting 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 and to lower the jitter buffer size manually by using the sliders until your personal acceptable amount of dropouts is reached. The LED indicator will display the audio dropouts of the local jitter buffer with a red light. + + + + + Local jitter buffer slider control + + + + + Server jitter buffer slider control + + + + + Auto jitter buffer switch + + + + + Jitter buffer status LED indicator + + + + + Sound Card Device + + + + + The ASIO driver (sound card) can be selected using + + + + + 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. + + + + + If the driver is selected during an active connection, the connection is stopped, the driver is changed and the connection is started again automatically. + + + + + Sound card device selector combo box + + + + + If the ASIO4ALL driver is used, please note that this driver usually introduces approx. 10-30 ms of additional audio delay. Using a sound card with a native ASIO driver is therefore recommended. + + + + + If you are using the kX ASIO driver, make sure to connect the ASIO inputs in the kX DSP settings panel. + + + + + Sound Card Channel Mapping + + + + + If the selected sound card device offers more than one input or output channel, the Input Channel Mapping and Output Channel Mapping settings are visible. + + + + + For each + + + + + input/output channel (Left and Right channel) a different actual sound card channel can be selected. + + + + + Left input channel selection combo box + + + + + Right input channel selection combo box + + + + + Left output channel selection combo box + + + + + Right output channel selection combo box + + + + + Enable Small Network Buffers + + + + + If enabled, the support for very small network audio packets is activated. Very small network packets are only actually used if the sound card buffer delay is smaller than + + + + + samples. The smaller the network buffers, the lower the audio latency. But at the same time the network load increases and the probability of audio dropouts also increases. + + + + + Enable small network buffers check box + + + + + Sound Card Buffer Delay + + + + + The buffer delay setting is a fundamental setting of this software. This setting has an influence on many connection properties. + + + + + Three buffer sizes are supported + + + + + 64 samples: The preferred setting. Provides the lowest latency but does not work with all sound cards. + + + + + 128 samples: Should work for most available sound cards. + + + + + 256 samples: Should only be used on very slow computers or with a slow internet connection. + + + + + Some sound card drivers do not allow the buffer delay to be changed from within the application. In this case the buffer delay setting is disabled and has to be changed using the sound card driver. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. + + + + + If no buffer size is selected and all settings are disabled, an unsupported buffer size is used by the driver. The application will still work with this setting but with restricted performance. + + + + + The actual buffer delay has influence on the connection status, the current upload rate and the overall delay. The lower the buffer size, the higher the probability of a red light in the status indicator (drop outs) and the higher the upload rate and the lower the overall delay. + + + + + The buffer setting is therefore a trade-off between audio quality and overall delay. + + + + + If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. + + + + + 64 samples setting radio button + + + + + 128 samples setting radio button + + + + + 256 samples setting radio button + + + + + ASIO setup push button + + + + + Skin + + + + + Select the skin to be used for the main window. + + + + + Skin combo box + + + + + Display Channel Levels + + + + + If enabled, each client channel will display a pre-fader level bar. + + + + + Display channel levels check box + + + + + Audio Channels + + + + + Selects the number of audio channels to be used for communication between client and server. There are three modes available: + + + + + + Mono + + + + + and + + + + + + + Stereo + + + + + These modes use one and two audio channels respectively. + + + + + Mono in/Stereo-out + + + + + The audio signal sent to the server is mono but the return signal is stereo. This is useful if the sound card has the instrument on one input channel and the microphone on the other. In that case the two input signals can be mixed to one mono channel but the server mix is heard in stereo. + + + + + Enabling + + + + + mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. + + + + + In stereo streaming mode, no audio channel selection for the reverb effect will be available on the main window since the effect is applied to both channels in this case. + + + + + Audio channels combo box + + + + + Audio Quality + + + + + The higher the audio quality, the higher your audio stream's data rate. Make sure your upload rate does not exceed the available bandwidth of your internet connection. + + + + + Audio quality combo box + + + + + New Client Level + + + + + This setting defines the fader level of a newly connected client in percent. If a new client connects to the current server, they will get the specified initial fader level if no other fader level from a previous connection of that client was already stored. + + + + + New client level edit box + + + + + Custom Central Server Address + + + + + Leave this blank unless you need to enter the address of a central server other than the default. + + + + + Central server address line edit + + + + + Current Connection Status Parameter + + + + + The Ping Time is the time required for the audio stream to travel from the client to the server and back again. This delay is introduced by the network and should be about 20-30 ms. If this delay is higher than about 50 ms, your distance to the server is too large or your internet connection is not sufficient. + + + + + Overall Delay is calculated from the current Ping Time and the delay introduced by the current buffer settings. + + + + + Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net). + + + + + If this LED indicator turns red, you will not have much fun using the + + + + + software. + + + + + ASIO Setup + + + + + Mono-in/Stereo-out + + + + + Low + + + + + + Normal + + + + + High + + + + + Fancy + + + + + Compact + + + + + preferred + + + + + + Size: + + + + + Buffer Delay + + + + + Buffer Delay: + + + + + The selected audio device could not be used because of the following error: + + + + + The previous driver will be selected. + + + + + Ok + + + + + Custom + + + + + All Genres + + + + + Genre Rock + + + + + Genre Jazz + + + + + Genre Classical/Folk/Choir + + + + + Default + + + + + CClientSettingsDlgBase + + + Settings + + + + + Soundcard + + + + + Device + + + + + Input Channel Mapping + + + + + + L + + + + + + R + + + + + Output Channel Mapping + + + + + Enable Small Network Buffers + + + + + Buffer Delay + + + + + (preferred) + + + + + (default) + + + + + (safe) + + + + + Driver Setup + + + + + Jitter Buffer + + + + + Auto + + + + + Local + + + + + Server + + + + + + Size + + + + + Misc + + + + + Audio Channels + + + + + Audio Quality + + + + + New Client Level + + + + + Skin + + + + + % + + + + + Display Channel Levels + + + + + Custom Central Server Address: + + + + + Audio Stream Rate + + + + + + + val + + + + + Ping Time + + + + + Overall Delay + + + + + CConnectDlg + + + Server List + + + + + The Connection Setup window shows a list of available servers. Server operators can optionally list their servers by music genre. Use the List dropdown to select a genre, click on the server you want to join and press the Connect button to connect to it. Alternatively, double click on on the server name. Permanent servers (those that have been listed for longer than 48 hours) are shown in bold. + + + + + Server list view + + + + + Server Address + + + + + If you know the IP address or URL of a server, you can connect to it using the Server name/Address field. An optional port number can be added after the IP address or URL using a colon as a separator, e.g, example.org: + + + + + . The field will also show a list of the most recently used server addresses. + + + + + Server address edit box + + + + + Holds the current server IP address or URL. It also stores old URLs in the combo box list. + + + + + Server List Selection + + + + + Selects the server list to be shown. + + + + + Server list selection combo box + + + + + Filter + + + + + The server list is filtered by the given text. Note that the filter is case insensitive. + + + + + Filter edit box + + + + + Show All Musicians + + + + + If you check this check box, the musicians of all servers are shown. If you uncheck the check box, all list view items are collapsed. + + + + + Show all musicians check box + + + + + CConnectDlgBase + + + Connection Setup + + + + + List + + + + + Filter + + + + + Show All Musicians + + + + + Server Name + + + + + Ping Time + + + + + Musicians + + + + + Location + + + + + Server Name/Address + + + + + C&ancel + + + + + &Connect + + + + + CHelpMenu + + + &Help + + + + + + Getting &Started... + + + + + Software &Manual... + + + + + What's &This + + + + + &About... + + + + + CLicenceDlg + + + I &agree to the above licence terms + + + + + Accept + + + + + Decline + + + + + By connecting to this server and agreeing to this notice, you agree to the following: + + + + + 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. + + + + + CMusProfDlg + + + No Name + + + + + + Musician Profile + + + + + Alias/Name + + + + + Instrument + + + + + Country + + + + + City + + + + + Skill + + + + + &Close + + + + + + + None + + + + + Beginner + + + + + Intermediate + + + + + Expert + + + + + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. + + + + + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. + + + + + Alias or name edit box + + + + + Instrument picture button + + + + + Country flag button + + + + + City edit box + + + + + Skill level combo box + + + + + Drum Set + + + + + Djembe + + + + + Electric Guitar + + + + + Acoustic Guitar + + + + + Bass Guitar + + + + + Keyboard + + + + + Synthesizer + + + + + Grand Piano + + + + + Accordion + + + + + Vocal + + + + + Microphone + + + + + Harmonica + + + + + Trumpet + + + + + Trombone + + + + + French Horn + + + + + Tuba + + + + + Saxophone + + + + + Clarinet + + + + + Flute + + + + + Violin + + + + + Cello + + + + + Double Bass + + + + + Recorder + + + + + Streamer + + + + + Listener + + + + + Guitar+Vocal + + + + + Keyboard+Vocal + + + + + Bodhran + + + + + Bassoon + + + + + Oboe + + + + + Harp + + + + + Viola + + + + + Congas + + + + + Bongo + + + + + Vocal Bass + + + + + Vocal Tenor + + + + + Vocal Alto + + + + + Vocal Soprano + + + + + Banjo + + + + + Mandolin + + + + + Ukulele + + + + + Bass Ukulele + + + + + CServerDlg + + + Client List + + + + + The client list shows all clients which are currently connected to this server. Some information about the clients like the IP address and name are given for each connected client. + + + + + Connected clients list view + + + + + Start Minimized on Operating System Start + + + + + If the start minimized on operating system start check box is checked, the server will be started when the operating system starts up and is automatically minimized to a system task bar icon. + + + + + Show Creative Commons Licence Dialog + + + + + If enabled, a Creative Commons BY-NC-SA 4.0 Licence dialog is shown each time a new user connects the server. + + + + + Make My Server Public + + + + + If the Make My Server Public check box is checked, this server registers itself at the central server so that all users of the application can see the server in the connect dialog server list and connect to it. The registration of the server is renewed periodically to make sure that all servers in the connect dialog server list are actually available. + + + + + Register Server Status + + + + + If the Make My Server Public check box is checked, this will show whether registration with the central server is successful. If the registration failed, please choose another server list. + + + + + Custom Central Server Address + + + + + The custom central server address is the IP address or URL of the central server at which the server list of the connection dialog is managed. + + + + + Central server address line edit + + + + + Server List Selection + + + + + Selects the server list (i.e. central server address) in which your server will be added. + + + + + Server list selection combo box + + + + + Server Name + + + + + The server name identifies your server in the connect dialog server list at the clients. + + + + + Server name line edit + + + + + Location City + + + + + The city in which this server is located can be set here. If a city name is entered, it will be shown in the connect dialog server list at the clients. + + + + + City where the server is located line edit + + + + + Location country + + + + + The country in which this server is located can be set here. If a country is entered, it will be shown in the connect dialog server list at the clients. + + + + + Country where the server is located combo box + + + + + Checkbox to turn on or off server recording + + + + + Enable Recorder + + + + + Checked when the recorder is enabled, otherwise unchecked. The recorder will run when a session is in progress, if (set up correctly and) enabled. + + + + + Current session directory text box (read-only) + + + + + Current Session Directory + + + + + Enabled during recording and holds the current recording session directory. Disabled after recording or when the recorder is not enabled. + + + + + Recorder status label + + + + + Recorder Status + + + + + Displays the current status of the recorder. + + + + + Request new recording button + + + + + New Recording + + + + + During a recording session, the button can be used to start a new recording. + + + + + + E&xit + + + + + &Hide + + + + + + + server + + + + + &Open + + + + + server + + + + + Server + + + + + &Window + + + + + Predefined Address + + + + + Recording + + + + + Not recording + + + + + Not enabled + + + + + Unregistered + + + + + Bad address + + + + + Registration requested + + + + + Registration failed + + + + + Check server version + + + + + Registered + + + + + Central Server full + + + + + Unknown value + + + + + CServerDlgBase + + + Client IP:Port + + + + + + Name + + + + + Jitter Buffer Size + + + + + Start Minimized on Windows Start + + + + + Show Creative Commons BY-NC-SA 4.0 Licence Dialog + + + + + Make My Server Public (Register My Server in the Server List) + + + + + Genre + + + + + + STATUS + + + + + Custom Central Server Address: + + + + + My Server Info + + + + + Location: City + + + + + Location: Country + + + + + Enable jam recorder + + + + + New recording + + + + + Recordings folder + + + + + TextLabelNameVersion + + + + + CSound + + + Error closing stream: $s + + + + + The Jack server is not running. This software requires a Jack server to run. Normally if the Jack server is not running this software will automatically start the Jack server. It seems that this auto start has not worked. Try to start the Jack server manually. + + + + + The Jack server sample rate is different from the required one. The required sample rate is: + + + + + You can use a tool like <i><a href=http://qjackctl.sourceforge.net>QJackCtl</a></i> to adjust the Jack server sample rate. + + + + + Make sure to set the Frames/Period to a low value like + + + + + to achieve a low delay. + + + + + + The Jack port registering failed. + + + + + Cannot activate the Jack client. + + + + + The Jack server was shut down. This software requires a Jack server to run. Try to restart the software to solve the issue. + + + + + CoreAudio input AudioHardwareGetProperty call failed. It seems that no sound card is available in the system. + + + + + CoreAudio output AudioHardwareGetProperty call failed. It seems that no sound card is available in the system. + + + + + Current system audio input device sample rate of %1 Hz is not supported. Please open the Audio-MIDI-Setup in Applications->Utilities and try to set a sample rate of %2 Hz. + + + + + Current system audio output device sample rate of %1 Hz is not supported. Please open the Audio-MIDI-Setup in Applications->Utilities and try to set a sample rate of %2 Hz. + + + + + The audio input stream format for this audio device is not compatible with this software. + + + + + The audio output stream format for this audio device is not compatible with this software. + + + + + The buffer sizes of the current input and output audio device cannot be set to a common value. Please choose other input/output audio devices in your system settings. + + + + + The audio driver could not be initialized. + + + + + The audio device does not support the required sample rate. The required sample rate is: + + + + + The audio device does not support setting the required sampling rate. This error can happen if you have an audio interface like the Roland UA-25EX where you set the sample rate with a hardware switch on the audio device. If this is the case, please change the sample rate to + + + + + Hz on the device and restart the + + + + + software. + + + + + The audio device does not support the required number of channels. The required number of channels for input and output is: + + + + + + Required audio sample format not available. + + + + + No ASIO audio device (driver) found. + + + + + The + + + + + software requires the low latency audio interface ASIO to work properly. This is not a standard Windows audio interface and therefore a special audio driver is required. Either your sound card has a native ASIO driver (which is recommended) or you might want to use alternative drivers like the ASIO4All driver. + + + + + CSoundBase + + + Invalid device selection. + + + + + The audio driver properties have changed to a state which is incompatible with this software. The selected audio device could not be used because of the following error: + + + + + Please restart the software. + + + + + Close + + + + + No usable + + + + + audio device (driver) found. + + + + + In the following there is a list of all available drivers with the associated error message: + + + + + Do you want to open the ASIO driver setups? + + + + + could not be started because of audio interface issues. + + + + + QCoreApplication + + + , Version + + + + + Internet Jam Session Software + + + + + Released under the GNU General Public License (GPL) + + + + + global + + + For more information use the What's This help (help menu, right mouse button or Shift+F1) + + + + diff --git a/src/resources.qrc b/src/resources.qrc index 8539e4d83f..8d270f90ac 100755 --- a/src/resources.qrc +++ b/src/resources.qrc @@ -20,6 +20,9 @@ res/translation/translation_pl_PL.qm + + res/translation/translation_sv_SE.qm + res/CLEDDisabledSmall.png From 70d2a0e0698622d9c56452f68e04b062aaa60aaf Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 20 Jun 2020 13:47:15 +0200 Subject: [PATCH 196/936] added a TODO comment --- src/server.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/server.cpp b/src/server.cpp index 73af1ce0d6..7fcae82e5b 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -997,6 +997,9 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE } #ifdef USE_OMP +// TODO This does not work as expected, the CPU is at high levels even if not much work is to be done. So we +// have an issue using OMP in the OnTimer() function. Even if #pragma omp parallel for is used on a trivial +// for loop for testing, still the CPU usage goes to very high values -> What is the cause of this issue? # pragma omp parallel for #endif for ( int i = 0; i < iNumClients; i++ ) From bd2cca5a2cd9a34ded534bdc3e4829e924e4407f Mon Sep 17 00:00:00 2001 From: Alberstein8 Date: Sat, 20 Jun 2020 16:20:27 +0200 Subject: [PATCH 197/936] New Select option to move faders at once New Select switch. All selected channels can be modified in their faders levels at the same time. Useful if channels are organized by instruments, set same level to similar instruments or to raise level of one particular set --- src/audiomixerboard.cpp | 72 +++++++++++++++++++++++++++++++++++++++-- src/audiomixerboard.h | 11 ++++++- 2 files changed, 79 insertions(+), 4 deletions(-) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 97ff713547..23c004f860 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -45,6 +45,7 @@ CChannelFader::CChannelFader ( QWidget* pNW ) pMuteSoloBox = new QWidget ( pFrame ); pcbMute = new QCheckBox ( tr ( "Mute" ), pMuteSoloBox ); pcbSolo = new QCheckBox ( tr ( "Solo" ), pMuteSoloBox ); + pcbSelect = new QCheckBox ( tr ( "Select"), pMuteSoloBox ); pLabelInstBox = new QGroupBox ( pFrame ); plblLabel = new QLabel ( "", pFrame ); @@ -108,6 +109,7 @@ CChannelFader::CChannelFader ( QWidget* pNW ) pMuteSoloGrid->addWidget ( pcbMute, 0, Qt::AlignLeft ); pMuteSoloGrid->addWidget ( pcbSolo, 0, Qt::AlignLeft ); + pMuteSoloGrid->addWidget ( pcbSelect, 0, Qt::AlignLeft ); pMainGrid->addLayout ( pPanGrid ); pMainGrid->addWidget ( pLevelsBox, 0, Qt::AlignHCenter ); @@ -152,6 +154,13 @@ CChannelFader::CChannelFader ( QWidget* pNW ) "one channel to solo." ) ); pcbSolo->setAccessibleName ( tr ( "Solo button" ) ); + pcbSelect->setWhatsThis ( "" + tr ( "Select" ) + ": " + tr ( "With the Select checkbox, the " + "audio channel can be selected among others which means that all changes " + " made in any of the selected channels' fader are adjusted to the rest like all were the same " + ) ); + pcbSelect->setAccessibleName ( tr ( "Select button" ) ); + + QString strFaderText = "" + tr ( "Fader Tag" ) + ": " + tr ( "The fader tag " "identifies the connected client. The tag name, a picture of your " "instrument and the flag of your country can be set in the main window." ); @@ -176,6 +185,9 @@ CChannelFader::CChannelFader ( QWidget* pNW ) QObject::connect ( pcbSolo, &QCheckBox::stateChanged, this, &CChannelFader::soloStateChanged ); + + QObject::connect ( pcbSelect, &QCheckBox::stateChanged, + this, &CChannelFader::OnSelectStateChanged ); } void CChannelFader::SetGUIDesign ( const EGUIDesign eNewDesign ) @@ -202,6 +214,7 @@ void CChannelFader::SetGUIDesign ( const EGUIDesign eNewDesign ) pPanLabel->setText ( tr ( "PAN" ) ); pcbMute->setText ( tr ( "MUTE" ) ); pcbSolo->setText ( tr ( "SOLO" ) ); + pcbSelect->setText ( tr ( "SELECT" ) ); plbrChannelLevel->SetLevelMeterType ( CMultiColorLEDBar::MT_LED ); break; @@ -214,6 +227,7 @@ void CChannelFader::SetGUIDesign ( const EGUIDesign eNewDesign ) pPanLabel->setText ( tr ( "Pan" ) ); pcbMute->setText ( tr ( "M" ) ); pcbSolo->setText ( tr ( "S" ) ); + pcbSelect->setText ( tr ( "SL" ) ); plbrChannelLevel->SetLevelMeterType ( CMultiColorLEDBar::MT_SLIM_BAR ); break; @@ -227,6 +241,7 @@ void CChannelFader::SetGUIDesign ( const EGUIDesign eNewDesign ) pPanLabel->setText ( tr ( "Pan" ) ); pcbMute->setText ( tr ( "Mute" ) ); pcbSolo->setText ( tr ( "Solo" ) ); + pcbSelect->setText ( tr ( "Select" ) ); plbrChannelLevel->SetLevelMeterType ( CMultiColorLEDBar::MT_BAR ); break; } @@ -305,6 +320,7 @@ void CChannelFader::Reset() // reset mute/solo check boxes and level meter pcbMute->setChecked ( false ); pcbSolo->setChecked ( false ); + pcbSelect->setChecked ( false ); plbrChannelLevel->setValue ( 0 ); // clear instrument picture, country flag, tool tips and label text @@ -325,6 +341,7 @@ void CChannelFader::Reset() bOtherChannelIsSolo = false; bIsMyOwnFader = false; + bIsSelected = false; } void CChannelFader::SetFaderLevel ( const int iLevel ) @@ -376,6 +393,11 @@ void CChannelFader::SetRemoteFaderIsMute ( const bool bIsMute ) } } +void CChannelFader::SetFaderIsSelect ( const bool bIsSelected ) +{ + pcbSelect->setChecked ( bIsSelected ); +} + void CChannelFader::SendFaderLevelToServer ( const int iLevel ) { // if mute flag is set or other channel is on solo, do not apply the new @@ -603,6 +625,17 @@ double CChannelFader::CalcFaderGain ( const int value ) } } +void CChannelFader::OnSelectStateChanged ( int value ) +{ + // call selecting function + SetSelected ( static_cast ( value ) == Qt::Checked ); +} + +void CChannelFader::SetSelected ( const bool bState ) +{ + // Just in case we need future actions here... + bIsSelected = bState; +} /******************************************************************************\ * CAudioMixerBoard * @@ -614,6 +647,7 @@ CAudioMixerBoard::CAudioMixerBoard ( QWidget* parent, Qt::WindowFlags ) : vecStoredPanValues ( MAX_NUM_STORED_FADER_SETTINGS, AUD_MIX_PAN_MAX / 2 ), vecStoredFaderIsSolo ( MAX_NUM_STORED_FADER_SETTINGS, false ), vecStoredFaderIsMute ( MAX_NUM_STORED_FADER_SETTINGS, false ), + vecStoredFaderIsSelect( MAX_NUM_STORED_FADER_SETTINGS, false ), iNewClientFaderLevel ( 100 ), bDisplayPans ( false ), bIsPanSupported ( false ), @@ -908,17 +942,20 @@ void CAudioMixerBoard::ApplyNewConClientList ( CVector& vecChanInf int iStoredPanValue; bool bStoredFaderIsSolo; bool bStoredFaderIsMute; + bool bStoredFaderIsSelect; if ( GetStoredFaderSettings ( vecChanInfo[j], iStoredFaderLevel, iStoredPanValue, bStoredFaderIsSolo, - bStoredFaderIsMute ) ) + bStoredFaderIsMute, + bStoredFaderIsSelect) ) { vecpChanFader[i]->SetFaderLevel ( iStoredFaderLevel ); vecpChanFader[i]->SetPanValue ( iStoredPanValue ); vecpChanFader[i]->SetFaderIsSolo ( bStoredFaderIsSolo ); vecpChanFader[i]->SetFaderIsMute ( bStoredFaderIsMute ); + vecpChanFader[i]->SetFaderIsSelect ( bStoredFaderIsSelect ); } } @@ -1005,7 +1042,32 @@ void CAudioMixerBoard::UpdateGainValue ( const int iChannelIdx, const double dValue, const bool bIsMyOwnFader ) { - emit ChangeChanGain ( iChannelIdx, dValue, bIsMyOwnFader ); + if ( !vecpChanFader[iChannelIdx]->IsSelect() ) + { + emit ChangeChanGain ( iChannelIdx, dValue, bIsMyOwnFader ); + } + else // This is selected, so all selected must be updated as well + { + // update current, don't touch fader + emit ChangeChanGain ( iChannelIdx, dValue, bIsMyOwnFader ); + for ( int i = MAX_NUM_CHANNELS - 1; i >= 0; i-- ) + { + // update rest of faders selected + if ( vecpChanFader[i]->IsSelect() ) + { + if ( i != iChannelIdx ) + { + // temporaly unselect so it does not repeat this again and again... + vecpChanFader[i]->SetFaderIsSelect( FALSE ); + // "move" faders with moving fader level + vecpChanFader[i]->SetFaderLevel( vecpChanFader[iChannelIdx]->GetFaderLevel() ); + // back to selected status + vecpChanFader[i]->SetFaderIsSelect( TRUE ); + } + } + } + } + } void CAudioMixerBoard::UpdatePanValue ( const int iChannelIdx, @@ -1024,6 +1086,7 @@ void CAudioMixerBoard::StoreFaderSettings ( CChannelFader* pChanFader ) CVector viOldStoredPanValues ( vecStoredPanValues ); CVector vbOldStoredFaderIsSolo ( vecStoredFaderIsSolo ); CVector vbOldStoredFaderIsMute ( vecStoredFaderIsMute ); + CVector vbOldStoredFaderIsSelected ( vecStoredFaderIsSelect ); // init temporary list count (may be overwritten later on) int iTempListCnt = 0; @@ -1038,6 +1101,7 @@ void CAudioMixerBoard::StoreFaderSettings ( CChannelFader* pChanFader ) vecStoredPanValues[0] = pChanFader->GetPanValue(); vecStoredFaderIsSolo[0] = pChanFader->IsSolo(); vecStoredFaderIsMute[0] = pChanFader->IsMute(); + vecStoredFaderIsSelect[0] = pChanFader->IsSelect(); iTempListCnt = 1; for ( int iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) @@ -1066,7 +1130,8 @@ bool CAudioMixerBoard::GetStoredFaderSettings ( const CChannelInfo& ChanInfo, int& iStoredFaderLevel, int& iStoredPanValue, bool& bStoredFaderIsSolo, - bool& bStoredFaderIsMute) + bool& bStoredFaderIsMute, + bool& bStoredFaderIsSelect) { // only do the check if the name string is not empty if ( !ChanInfo.strName.isEmpty() ) @@ -1081,6 +1146,7 @@ bool CAudioMixerBoard::GetStoredFaderSettings ( const CChannelInfo& ChanInfo, iStoredPanValue = vecStoredPanValues[iIdx]; bStoredFaderIsSolo = vecStoredFaderIsSolo[iIdx] != 0; bStoredFaderIsMute = vecStoredFaderIsMute[iIdx] != 0; + bStoredFaderIsSelect = vecStoredFaderIsSelect[iIdx] != 0; // values found and copied, return OK return true; diff --git a/src/audiomixerboard.h b/src/audiomixerboard.h index 3d8457bea4..e46cba125e 100755 --- a/src/audiomixerboard.h +++ b/src/audiomixerboard.h @@ -57,6 +57,7 @@ class CChannelFader : public QObject bool IsVisible() { return !pFrame->isHidden(); } bool IsSolo() { return pcbSolo->isChecked(); } bool IsMute() { return pcbMute->isChecked(); } + bool IsSelect() { return pcbSelect->isChecked(); } void SetGUIDesign ( const EGUIDesign eNewDesign ); void SetDisplayChannelLevel ( const bool eNDCL ); bool GetDisplayChannelLevel(); @@ -69,6 +70,7 @@ class CChannelFader : public QObject void SetFaderIsSolo ( const bool bIsSolo ); void SetFaderIsMute ( const bool bIsMute ); void SetRemoteFaderIsMute ( const bool bIsMute ); + void SetFaderIsSelect ( const bool bIsMute ); int GetFaderLevel() { return pFader->value(); } int GetPanValue() { return pPan->value(); } void Reset(); @@ -81,6 +83,7 @@ class CChannelFader : public QObject void SendFaderLevelToServer ( const int iLevel ); void SendPanValueToServer ( const int iPan ); void SetupFaderTag ( const ESkillLevel eSkillLevel ); + void SetSelected ( const bool bState ); QFrame* pFrame; @@ -96,6 +99,7 @@ class CChannelFader : public QObject QCheckBox* pcbMute; QCheckBox* pcbSolo; + QCheckBox* pcbSelect; QGroupBox* pLabelInstBox; QLabel* plblLabel; @@ -106,11 +110,13 @@ class CChannelFader : public QObject bool bOtherChannelIsSolo; bool bIsMyOwnFader; + bool bIsSelected; public slots: void OnLevelValueChanged ( int value ) { SendFaderLevelToServer ( value ); } void OnPanValueChanged ( int value ) { SendPanValueToServer ( value ); } void OnMuteStateChanged ( int value ); + void OnSelectStateChanged ( int value ); signals: void gainValueChanged ( double value, bool bIsMyOwnFader ); @@ -166,12 +172,14 @@ class CAudioMixerBoard : void SetRecorderState ( const ERecorderState newRecorderState ); + // settings CVector vecStoredFaderTags; CVector vecStoredFaderLevels; CVector vecStoredPanValues; CVector vecStoredFaderIsSolo; CVector vecStoredFaderIsMute; + CVector vecStoredFaderIsSelect; int iNewClientFaderLevel; protected: @@ -194,7 +202,8 @@ class CAudioMixerBoard : int& iStoredFaderLevel, int& iStoredPanValue, bool& bStoredFaderIsSolo, - bool& bStoredFaderIsMute ); + bool& bStoredFaderIsMute, + bool& bStoredFaderIsSelect); void StoreFaderSettings ( CChannelFader* pChanFader ); void UpdateSoloStates(); From 25f10fcb6dcd917a2323a61e3afdd98ca04408b9 Mon Sep 17 00:00:00 2001 From: Alberstein8 Date: Sat, 20 Jun 2020 16:26:18 +0200 Subject: [PATCH 198/936] Update audiomixerboard.cpp --- src/audiomixerboard.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 23c004f860..d86e01af5a 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -317,7 +317,7 @@ void CChannelFader::Reset() pFader->setValue ( AUD_MIX_FADER_MAX ); pPan->setValue ( AUD_MIX_PAN_MAX / 2 ); - // reset mute/solo check boxes and level meter + // reset mute/solo/select check boxes and level meter pcbMute->setChecked ( false ); pcbSolo->setChecked ( false ); pcbSelect->setChecked ( false ); From b7b39ba6f2b19940275363a9f830a46e9c813b8b Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 20 Jun 2020 17:26:52 +0200 Subject: [PATCH 199/936] some fixes for headless mode --- src/global.h | 5 +++++ src/multicolorledbar.h | 23 ++++++----------------- src/server.h | 1 - src/util.h | 4 +--- 4 files changed, 12 insertions(+), 21 deletions(-) diff --git a/src/global.h b/src/global.h index eb893c73e9..22b9bb9048 100755 --- a/src/global.h +++ b/src/global.h @@ -171,6 +171,11 @@ LED bar: lbr #define LOW_BOUND_SIG_METER ( -50.0 ) // dB #define UPPER_BOUND_SIG_METER ( 0.0 ) // dB +// defines for LED level meter CMultiColorLEDBar +#define NUM_STEPS_LED_BAR 8 +#define RED_BOUND_LED_BAR 7 +#define YELLOW_BOUND_LED_BAR 5 + // maximum number of connected clients at the server (must not be larger than 256) #define MAX_NUM_CHANNELS 50 // max number channels for server diff --git a/src/multicolorledbar.h b/src/multicolorledbar.h index 6f855b5b4c..d22d0f092b 100755 --- a/src/multicolorledbar.h +++ b/src/multicolorledbar.h @@ -24,27 +24,17 @@ #pragma once -#ifndef HEADLESS -# include -# include -# include -# include -# include -# include -#endif +#include +#include +#include +#include +#include +#include #include "util.h" #include "global.h" -/* Definitions ****************************************************************/ -// defines for LED level meter CMultiColorLEDBar -#define NUM_STEPS_LED_BAR 8 -#define RED_BOUND_LED_BAR 7 -#define YELLOW_BOUND_LED_BAR 5 - - /* Classes ********************************************************************/ -#ifndef HEADLESS class CMultiColorLEDBar : public QWidget { Q_OBJECT @@ -98,4 +88,3 @@ class CMultiColorLEDBar : public QWidget CVector vecpLEDs; QProgressBar* pProgressBar; }; -#endif diff --git a/src/server.h b/src/server.h index 28bcd2e44b..4a370ad0a1 100755 --- a/src/server.h +++ b/src/server.h @@ -43,7 +43,6 @@ #include "util.h" #include "serverlogging.h" #include "serverlist.h" -#include "multicolorledbar.h" #include "recorder/jamrecorder.h" diff --git a/src/util.h b/src/util.h index ee70d662fe..71e5babffb 100755 --- a/src/util.h +++ b/src/util.h @@ -38,6 +38,7 @@ # include # include # include +# include "ui_aboutdlgbase.h" #endif #include #include @@ -59,9 +60,6 @@ using namespace std; // because of the library: "vector" #else # include #endif -#ifndef HEADLESS -# include "ui_aboutdlgbase.h" -#endif class CClient; // forward declaration of CClient From c9516f196271696af128b5f163a688f2d9c73931 Mon Sep 17 00:00:00 2001 From: Adam Sampson Date: Sat, 20 Jun 2020 16:43:18 +0100 Subject: [PATCH 200/936] Escape server and user names in the status HTML. --- src/server.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/server.cpp b/src/server.cpp index 7fcae82e5b..efaeb650c9 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -1590,7 +1590,7 @@ void CServer::WriteHTMLChannelList() } QTextStream streamFileOut ( &serverFileListFile ); - streamFileOut << strServerNameWithPort << endl << "" << endl; } -void CServer::RequestNewRecording() +void CServer::CreateAndSendRecorderStateForAllConChannels() { - if ( bRecorderInitialised && bEnableRecording ) - { - emit RestartRecorder(); - } - - // send recording state message - doesn't hurt - CreateAndSendRecorderStateForAllConChannels(); -} + // get recorder state + ERecorderState eRecorderState = JamController.GetRecorderState(); -void CServer::SetEnableRecording ( bool bNewEnableRecording ) -{ - if ( bRecorderInitialised ) + // now send recorder state to all connected clients + for ( int i = 0; i < iMaxNumChannels; i++ ) { - // note that this block executes regardless of whether - // what appears to be a change is being applied, to ensure - // the requested state is the result - bEnableRecording = bNewEnableRecording; - -#if QT_VERSION >= QT_VERSION_CHECK(5, 5, 0) -// TODO we should use the ConsoleWriterFactory() instead of qInfo() - qInfo() << "Recording state" << ( bEnableRecording ? "enabled" : "disabled" ); -#endif - - if ( !bEnableRecording ) - { - emit StopRecorder(); - } - else if ( !IsRunning() ) + if ( vecChannels[i].IsConnected() ) { - // This dirty hack is for the GUI. It doesn't care. - emit StopRecorder(); + // send message + vecChannels[i].CreateRecorderStateMes ( eRecorderState ); } } - - // send recording state message - CreateAndSendRecorderStateForAllConChannels(); -} - -void CServer::SetRecordingDir ( QString newRecordingDir ) -{ - if ( bRecorderInitialised ) - { - // We have a thread and we want to start a new one. - // We only want one running. - // This could take time, unfortunately. - // Hopefully changing recording directory will NOT happen during a long jam... - emit EndRecorderThread(); - thJamRecorder.wait(); - } - - if ( !newRecordingDir.isEmpty() ) - { - pJamRecorder = new recorder::CJamRecorder ( newRecordingDir ); - strRecorderErrMsg = pJamRecorder->Init ( this, iServerFrameSizeSamples ); - bRecorderInitialised = ( strRecorderErrMsg == QString::null ); - bEnableRecording = bRecorderInitialised; - } - else - { - // This is the only time this is ever true - UI needs to handle it - strRecorderErrMsg = QString::null; - bRecorderInitialised = false; - bEnableRecording = false; - } - if ( bRecorderInitialised ) - { - strRecordingDir = newRecordingDir; - pJamRecorder->moveToThread ( &thJamRecorder ); - thJamRecorder.setObjectName ( "Jamulus::JamRecorder" ); - - QObject::connect ( &thJamRecorder, &QThread::finished, - pJamRecorder, &QObject::deleteLater ); - - QObject::connect ( pJamRecorder, &recorder::CJamRecorder::RecordingSessionStarted, - this, &CServer::RecordingSessionStarted ); - - thJamRecorder.start(); - } - else - { - strRecordingDir = ""; - } } void CServer::customEvent ( QEvent* pEvent ) diff --git a/src/server.h b/src/server.h index 10f84df5a1..1cf1c40bcc 100755 --- a/src/server.h +++ b/src/server.h @@ -43,8 +43,7 @@ #include "util.h" #include "serverlogging.h" #include "serverlist.h" -#include "recorder/jamrecorder.h" - +#include "recorder/jamcontroller.h" /* Definitions ****************************************************************/ // no valid channel number @@ -199,13 +198,20 @@ class CServer : CVector& veciJitBufNumFrames, CVector& veciNetwFrameSizeFact ); - bool GetRecorderInitialised() { return bRecorderInitialised; } - QString GetRecorderErrMsg() { return strRecorderErrMsg; } - bool GetRecordingEnabled() { return bEnableRecording; } - void RequestNewRecording(); + // Jam recorder ------------------------------------------------------------ + bool GetRecorderInitialised() { return JamController.GetRecorderInitialised(); } + QString GetRecorderErrMsg() { return JamController.GetRecorderErrMsg(); } + bool GetRecordingEnabled() { return JamController.GetRecordingEnabled(); } + void RequestNewRecording() { JamController.RequestNewRecording(); } + void SetEnableRecording ( bool bNewEnableRecording ); - QString GetRecordingDir() { return strRecordingDir; } - void SetRecordingDir( QString newRecordingDir ); + + QString GetRecordingDir() { return JamController.GetRecordingDir(); } + + void SetRecordingDir( QString newRecordingDir ) + { JamController.SetRecordingDir ( newRecordingDir, iServerFrameSizeSamples ); } + + virtual void CreateAndSendRecorderStateForAllConChannels(); // Server list management -------------------------------------------------- void UpdateServerList() { ServerListManager.Update(); } @@ -277,10 +283,6 @@ class CServer : virtual void CreateAndSendChatTextForAllConChannels ( const int iCurChanID, const QString& strChatText ); - virtual void CreateAndSendRecorderStateForAllConChannels(); - - ERecorderState GetRecorderState(); - virtual void CreateOtherMuteStateChanged ( const int iCurChanID, const int iOtherChanID, const bool bIsMuted ); @@ -366,19 +368,14 @@ class CServer : QString strServerHTMLFileListName; QString strServerNameWithPort; - // recording thread - bool bRecorderInitialised; - bool bEnableRecording; - QThread thJamRecorder; - recorder::CJamRecorder* pJamRecorder; - QString strRecorderErrMsg; - QString strRecordingDir; - CHighPrecisionTimer HighPrecisionTimer; // server list CServerListManager ServerListManager; + // jam recorder + recorder::CJamController JamController; + // GUI settings bool bAutoRunMinimized; @@ -399,6 +396,8 @@ class CServer : const CHostAddress RecHostAddr, const int iNumAudChan, const CVector vecsData ); + + // pass through from jam controller void RestartRecorder(); void StopRecorder(); void RecordingSessionStarted ( QString sessionDir ); @@ -480,3 +479,5 @@ public slots: void OnHandledSignal ( int sigNum ); }; + +Q_DECLARE_METATYPE(CVector) From 3b964ac77e48f72cd3d2605a21d050827e2c8f2d Mon Sep 17 00:00:00 2001 From: Volker Fischer <46655886+corrados@users.noreply.github.com> Date: Sun, 28 Jun 2020 11:19:44 +0200 Subject: [PATCH 281/936] Prepare for next version --- Jamulus.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jamulus.pro b/Jamulus.pro index 306d65e8f4..2f7fdb58aa 100755 --- a/Jamulus.pro +++ b/Jamulus.pro @@ -1,4 +1,4 @@ -VERSION = 3.5.7 +VERSION = 3.5.8git # use target name which does not use a captital letter at the beginning contains(CONFIG, "noupcasename") { From dbef15d0e0fd988fef2257f20929c770209a0ce1 Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Sun, 28 Jun 2020 11:35:21 +0100 Subject: [PATCH 282/936] Updates for 3.5.7 Group switch, recording indicator. --- src/res/homepage/manual.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/res/homepage/manual.md b/src/res/homepage/manual.md index c88aa61caf..1cff31b138 100644 --- a/src/res/homepage/manual.md +++ b/src/res/homepage/manual.md @@ -30,7 +30,9 @@ The **Delay Status** LED shows the current audio delay status: ![Input level](inputlevel.png) This shows the level of the two stereo channels for your audio input. -Make sure not to clip the input signal to avoid distortions of the audio signal. +Make sure not to clip the input signal to avoid distortions of the audio signal (the LEDs will indicate clipping when it occurs). + + ### Chat button @@ -105,7 +107,9 @@ The **Solo button** allows you to hear one or more musicians on their own. Those Channels are listed left to right in the order that clients connect until they leave, at which point their "slot" is filled by the next new arrival. You can change the sort order using the Edit option in the application menu. +You can group faders together using the "group" toggle. Moving the fader of any member of the group will move the other faders in that group by the same amount. +If the server operator has enabled recording, you will see a message above the mixer showing that you are being recorded. From b5230c3420638d913576f1706ae2a777c9c47d13 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 28 Jun 2020 15:03:23 +0200 Subject: [PATCH 283/936] merge fixes --- src/server.cpp | 47 +++++++++++++++++++++++------------------------ src/server.h | 2 ++ 2 files changed, 25 insertions(+), 24 deletions(-) diff --git a/src/server.cpp b/src/server.cpp index 899a6bbef8..7f1ca63796 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -403,9 +403,6 @@ CServer::CServer ( const int iNewMaxNumChan, QString().number( static_cast ( iPortNumber ) ) ); } - // jam recorder needs the frame size - JamController.SetRecordingDir ( strRecordingDirName, iServerFrameSizeSamples ); - // manage welcome message: if the welcome message is a valid link to a local // file, the content of that file is used as the welcome message (#361) strWelcomeMessage = strNewWelcomeMessage; // first copy text, may be overwritten @@ -423,7 +420,9 @@ CServer::CServer ( const int iNewMaxNumChan, // restrict welcome message to maximum allowed length strWelcomeMessage = strWelcomeMessage.left ( MAX_LEN_CHAT_TEXT ); - // enable jam recording (if requested) - kicks off the thread + // enable jam recording (if requested) - kicks off the thread (note + // that jam recorder needs the frame size which is given to the jam + // recorder in the SetRecordingDir() function) SetRecordingDir ( strRecordingDirName ); // enable all channels (for the server all channel must be enabled the @@ -487,14 +486,14 @@ CServer::CServer ( const int iNewMaxNumChan, QObject::connect ( &JamController, &recorder::CJamController::EndRecorderThread, this, &CServer::EndRecorderThread ); - QObject::connect( this, &CServer::Stopped, + QObject::connect ( this, &CServer::Stopped, &JamController, &recorder::CJamController::Stopped ); - QObject::connect( this, &CServer::ClientDisconnected, + QObject::connect ( this, &CServer::ClientDisconnected, &JamController, &recorder::CJamController::ClientDisconnected ); qRegisterMetaType> ( "CVector" ); - QObject::connect( this, &CServer::AudioFrame, + QObject::connect ( this, &CServer::AudioFrame, &JamController, &recorder::CJamController::AudioFrame ); QObject::connect ( QCoreApplication::instance(), &QCoreApplication::aboutToQuit, @@ -1348,6 +1347,22 @@ void CServer::CreateAndSendChatTextForAllConChannels ( const int iCurChanID } } +void CServer::CreateAndSendRecorderStateForAllConChannels() +{ + // get recorder state + ERecorderState eRecorderState = JamController.GetRecorderState(); + + // now send recorder state to all connected clients + for ( int i = 0; i < iMaxNumChannels; i++ ) + { + if ( vecChannels[i].IsConnected() ) + { + // send message + vecChannels[i].CreateRecorderStateMes ( eRecorderState ); + } + } +} + void CServer::CreateOtherMuteStateChanged ( const int iCurChanID, const int iOtherChanID, const bool bIsMuted ) @@ -1533,7 +1548,7 @@ void CServer::SetEnableRecording ( bool bNewEnableRecording ) { JamController.SetEnableRecording ( bNewEnableRecording, IsRunning() ); - // send recording state message - doesn't hurt + // the recording state may have changed, send recording state message CreateAndSendRecorderStateForAllConChannels(); } @@ -1586,22 +1601,6 @@ void CServer::WriteHTMLChannelList() streamFileOut << "" << endl; } -void CServer::CreateAndSendRecorderStateForAllConChannels() -{ - // get recorder state - ERecorderState eRecorderState = JamController.GetRecorderState(); - - // now send recorder state to all connected clients - for ( int i = 0; i < iMaxNumChannels; i++ ) - { - if ( vecChannels[i].IsConnected() ) - { - // send message - vecChannels[i].CreateRecorderStateMes ( eRecorderState ); - } - } -} - void CServer::customEvent ( QEvent* pEvent ) { if ( pEvent->type() == QEvent::User + 11 ) diff --git a/src/server.h b/src/server.h index 1cf1c40bcc..3eea6a82b7 100755 --- a/src/server.h +++ b/src/server.h @@ -198,6 +198,7 @@ class CServer : CVector& veciJitBufNumFrames, CVector& veciNetwFrameSizeFact ); + // Jam recorder ------------------------------------------------------------ bool GetRecorderInitialised() { return JamController.GetRecorderInitialised(); } QString GetRecorderErrMsg() { return JamController.GetRecorderErrMsg(); } @@ -213,6 +214,7 @@ class CServer : virtual void CreateAndSendRecorderStateForAllConChannels(); + // Server list management -------------------------------------------------- void UpdateServerList() { ServerListManager.Update(); } From 7d10fb13cd9f82dbd841c35861baee9ee5029613 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 28 Jun 2020 15:10:26 +0200 Subject: [PATCH 284/936] update --- ChangeLog | 2 ++ src/server.h | 1 + 2 files changed, 3 insertions(+) diff --git a/ChangeLog b/ChangeLog index db6494b4cb..4b24a8bb8e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,8 @@ 3.5.8git +TODO improve settings management -> move settings class in client/server classes, move actual settings variables + TODO add new register message which contains version and, e.g., max number of clients TODO https://github.com/corrados/jamulus/issues/341#issuecomment-647172946 diff --git a/src/server.h b/src/server.h index 3eea6a82b7..1c1577cdfe 100755 --- a/src/server.h +++ b/src/server.h @@ -159,6 +159,7 @@ class CServerSlots : public CServerSlots template<> class CServerSlots<0> {}; + class CServer : public QObject, public CServerSlots From 9ac17acd0101788f0d87d3699fe59f0abc287a45 Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Sun, 28 Jun 2020 14:54:45 +0100 Subject: [PATCH 285/936] Updated for 3.5.7 --- src/res/homepage/chat.png | Bin 17119 -> 67859 bytes src/res/homepage/faders.png | Bin 62108 -> 44871 bytes src/res/homepage/main.png | Bin 144587 -> 323009 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/src/res/homepage/chat.png b/src/res/homepage/chat.png index b631d3d7ec4afab05c1d542a50d9b1f8a8ddf06a..4b3b7f8b51b93530df9f60de97e378b704fc544e 100644 GIT binary patch literal 67859 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 QYybcN07*qoM6N<$f{M_#G5`Po diff --git a/src/res/homepage/main.png b/src/res/homepage/main.png index ba9fb1bb7b521a604e4e995b70a17ef78f451695..12be74a6d02b3b70d433bf18392bab0fc61dc8e6 100644 GIT binary patch literal 323009 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
Wdk zRf0;TS}g^jYc=YPR_q878Vng-TGH_4%aP5Tz!q`MGH* z&p73j)u)~^Tq{{>XiaF1Fc(7l#Xm7HVv#6BBrr~)#7r~ZvUS_RMxzl_ll-kud81d? zikr<=q6&zZAgoraQ6OFjhOK(te{52W4T4g+6j;zHL|kKPwxOAZ1ymE(s?~C2MUzIo z-iQ;YFvf=EN~IJS`f<#smR@^EuL;mK>vPR|9Zs1v=I3UZ=qW2tI_tF4#|FyBVguW@ z?Vp=#1hp8}pLfk?;Gk#*Nwex!J+mz`3i=TzTTsiWMu2to2VaDQT>wK&c{Pj0g>szH4;~r`S6=wQa|a zx`~>$l=xvitIU8*;%2j%BrZ`^V}dZMRm&Dih%v&rQEw%Q^IdDHT&Y9`jubF%%+J;n zh2TQV!C$tolKa{T7LGED%m<8*zVhn^q?6yubxY zZV%{%1cbM8l4PY)A=zrRd@@ZEKtzoA#dZSXKb(}q?*>x=8bHMO7nMVjBvDlomB=m{ z8D6w_@d+oKuzdOQ6Hh#G$&w`_BO|q1tyC%nL6B2rt(}>fx%uXsFTM0q08tc$1z0~? zA1!iXMTArmK@bR_F7>#25*`i&00s$%$h=B!#R3)JbI4Ye|ofSc>x88R9E#La4CM{<>)-`j8h$hWOqZvCTL`)EwgiFr5 z{w?o%(`j4&@$bL-v#qVb28ZFofJv*~veltl)SPQLF#>w83!Nr)1dxEVJDQFb-BEqt zGJ69TGS=gP?z(1XXH_)}f=Z?0SGZNREpP!q=bWD>iOAgCyg$HHtNP;&1Pc8lBMCuiHwHSn0)F8Amc)Uure5yvp_-YSzVosxC8=BE00gLl=f-Q}>`$i7EpyCsqE=Ydk$5K zfK(M*stuP1QbtKtRYE{YP#qc>7|v%DBtUhElB9{M!=(Xa%BNC!1QR+ci1=~XR0f9! zMn+%|iPR4qI<#ke`%{~?Ke-8^kTmpPMsW}a2o0!EQ4v@eI2r;XYNRqaFtB8KSR2vO z5DCLnbJ-~QxN+n;!< z!v^SJj%Wje151_%wP6+V9NtTRnMhw4S8b;DkGyA zi@qcf8T+N`V5tT|QyWo7V~)A8n4nY}tr#Ow5J;;ry?4*lzKI9#z3(Aw)dH%4h^P_{ zLcpXG7EvR{km4W$ibxm^EnZR?TaIwZK~x=zZnrl+TdEEEu0s_hRh?1*P?aXC3{`C2 z0a8_&p6-dN!%GH)X*Q7b=HL<)8`TEOB2ZP3s+uGUzz<>mBB$Z`fZk3%zmtW1Vh>{s zdn`>v`npEX5su#1B#`RNw|w|^3lV>rredBJBvYTXT|hU8sDx5g8l}L(grM4>v~Lj@6A~>|BPJ+^L8T;7l)yM^NH$cVo>LM^lXmD- zf}{bAF;)hK26SM=1rZ^}OUu_#RGjbgb7{9@005rVG?vnKS4leO05WerfX^>JS9UK2 zN%()dD|zNf=}4qej>emZLJ7~SG1i)a;Q_4;IU73X zvh|Nn2)y^*5!Ti#)g?YIS7;h1RCVeP%Xq6SB%^8qg=?49E;3CHKa=qcblX}FirGaZ z*OQWTgmW|&C2K2T;Hp%Ktx=I!shSH)73qtd=mQM^P$Vpc(a4Ba1`@H*Y*qxH3;8xC z)tdv=w+^PZAfz|4wh#ajW9T2lVUi@IkdE{(kx97~_%@ibmdk;ugVw=ve%&c6&l{6O zor5!0qQF+dKx?FFS)oWvNmVEb5K2)=m&6sGJrRmT<)}P7%5p97FPgrcj}Hmj?veI0tB6c6tLB5T5FBTR{_Nvn2KNNq+>dcsW%!?6#4TKy*)TdlBya-;XU{LtQ18``h5yjVQL#a?WPSs{G_Ip z{pAapd0;05UQ-@Use)i&aI9Sa)ND-thjr9Ly5lsK@hJb+Y0hPX+ zQs3fygH2O)a#TEY(aUTXq_biYiE}m#2No|H7)yx2d&bU$N-?PdlyHRqa$`UUHKsa4 z6Go+=RG}9_q1azCdgbG9k0=c)6Q$UoIyP1v86>Sj6jX$&214;=OF}p*L;|Y7BSzxLFL$3h_k<1cx1P zjw_Dd*UU)w%##!Wpnw(M8>ftA{iFby8KolXk(2;d7}lzdDH8^EY+#@k8fdGT)X78% zs(&qq|Guh-Up+Ji)`IY#J%G{=h<+zqj7Vq`>&4oxQH)LI=a;N`*=W$Ypbt*<9ptA^@)*T zJiFtuyT10-A3S!@fz3k)lM^p`+h2Y4y(9bY{qO(q`P(Dq$wznwNDojwy5 zGE>RSqa(0wF#f(6*%oteMjt4Wp3>?{kP}(_?Lr>4d-omyA`%1vQ&+z~NE%}f95@I- zjETbT4_33yfuxtI=kDnwgaCyiFn&2FwJ~pP06@RI?o%UoH~>HhfgO;b=1n4EnhIW4 z%tY^56A;wQaZZDL5}zPV3^JESPR4@B6BJc)FJ{DO*fNC`xZEk9khUe3kD<@ z@Q-&zS#_!J(Dq;eq^F!c8JS$r{;yoYv+(W8jEt+%tcTViwJG*zb>4M;>dGAE8%@sqAx!9va z)c)80!&+IR%wv-zgrizMjRs{~>oMhk_siEIqwpv@}w+q&B9+A=EWju%3c(7T#!nC$MA)RZWZ|ZUgrED*Bibta!c-NeVt9F4~TS0 zvpXU~-tJPXAd9P;$AChcWBN~_v^Keg8jiiP=N~#GCmlA>5#_Is2j^{LK-Tu2V~F@= zbD&WBLMYe+;4}3~qhC3P;iO>p{&~OD;}V{gWr#)X+S!(0>+4HS~MM%}U9(5cSMYJGm%F`l1uRE&-pM2RDx=4q<2w2{DEyrgMm@^AG>)fBV}X z>^}QrfBWH=jGlA$N%n#1#`Z_P_dj+$v~;LcKJA*fzi!FOGfy3}4>z1drDXet@BhtT z-m-6Oq-ty}vZ_>npv@!qlnR7+Y9QVqI@FoV2k_>QdanIUupN@e=29j7$@)UAg#zeZ zhjy@dGJG-lum9^s+W_*APQACoGwUz%)#jxTh>p^HD}vuQ&BFZBW?EU1uKweBM_6Y~ zP+v)30#Z^*Pe(C9id@>A!P0M)B?Wju0p+;r5C-? z3!|^8_(B9(H{z@9DA&h#AeTT^CX3vs1?JUd7hPM<0u+6RHqs#>&DBwTT9g13|Cnq~ zcJT}U003sgtF@`L4v&H=fs_!*2oi`t;AgU!_Q~Cp4I(3vko3~;#kA|rh?9O}*|Wh> z`0I|AgBpp@*KeZ6-4e+8CQ10`lzM0oK|w&hs_L;20L)d^RbZd;`=MX5f|WgEFz=Dl z6`}3~9;8=ZTO26d-P+HPvhU~JIrV8b;wwvsXivZK4M2cwVa;dB_t3q?qA-KZdO1%(T0sW! zFRT{HU)tb>;QKcCiaT-?kV=xID&@f@x&Qzm07*naRI>-sD1KvKO)haC4qt^Z8=D1C zDnOqhTlny~^6k=Ws7@E*gaoOoifo<8qo7`+>bzY2F^2SALn$LZOYygO(GLVDAaiLS zF8PAe>cwG7IcglUuh|x2m!*n`K;YdhNkh_10D!zh^p@wP6N4(Sia-$=lQ3~51zG?ul#!8~1)YPg4qz&x!-rbW^Q}yzhSHASZ4F`X* zY2T!?m7$@*S~QuYilVB*59Lf+!PrR`z3Tc)^eN<*S;KJvt2wH2c zwbEV_MaOD<5Bf%tq^A5mb9j%jNR@96evR25krjcYeH#2hX8@#AB~uH`NbjlK0#`;#@N6HzQGjX?a12)0jI^&B_h7z`2UTc75lmrOm|^Yv&`zt$LIX$ zZyuGIyDu2&3^Dc9(uSX>&6DSMxiOMp_nGD_D*d-l)L}qUosz2buRn2;y-u%~%vc-P zK#a8ONv8+u%V6PwSw9*ACKpH>1PCZd?-Uvl5z{_uqGVoFCPo10^6f;@p0*1l#2PC? zB4LpW0`S^2CSA_-K9#T9+mcf?ah$}lf1_UCh7bf{`=f%LNDZ}x30Yd?T^iE`+8W3+_;-{HypU~Sgsa<^tG8+2yAwaHJ@x8eyK!U#A0J$RC$qPuk z5fbXM=aYf74T|_TJ`tH6diY4d8>&-Br%95K*|6SieqLe_2)s2B>YpAVeX9om2#{;l z-?E^rJiIM@k_FcM{J*2>Vs`phAh2C#?*%-ah4MxGDX}h&005+_`s3)w1;^}bro@Se zU$RnFF`lec-d<8(m#MQP5Wous@S*{!3YiZAiGsku8K|H|G>KTm0girLhNuEm-%|<1 z2q^x2gPs~MG=+0e6(l0gMy_Cpq&nJ4X=>fQzu0iec`v{C`uEC`i#Cl5u%+{Q;A zd3@J=6d7XzKf6oSOz}-G81r;Nho12}RnMx8@=;?qgQBGSId(24zIs`)c*kWkcZ3@p~S8y5# zWCqz$VunubboJ-m^>}1S`o}H^Z(T-=2`aUL+CbrTj0BL5c~b`u)|>O%vA^u;&sZo> zm}|8U(&X)cq9p*SF#4icN3kt*DNaOuY1$*!Y@qg)iU@Kw`?5$v#27m?JX|W3+3}18 zMT|?5g9rD=aWhGhKBW4@z2O;pTb*PJ$;SX+TEFZ))f@@T$}z@R8x9N(RVszgqKkkO z5q0jsp@Xev!?^4ozv(JdI!WyHDvY&3 z5DX0sRcakyg(qo@QS#9K{q=g?CF#7hyR_aC0SIz419Jj>!u-A)X=vv^IYfNUypW9F zLiL>@0}9cBCqz6ax|QYmNp) z>V7Lgz`z(4O|(8Y->Nqpt+M0o9&~D=a((OlU;3;}UU%)9i`Ts6CBqS0^Roxm-u7s@ zR;msy8eKe84h(6l!()rbTB8G)eC)B?Z@KTCuUqrZ-+!6L&A8b-uwm8-=6C-5Ti-qR z-LJaz?Z5rX+Ux^=_m`VCZk?4%h-^)wIA;3Ito#zX521rmKNt|rn^u*+$1I=c$JHv|$gM&k7t~zI6XehlW zA>y3d^7K=O_V24V>K&{@sCmv(Nr zW64M*vll_nQp%V1xoyGApN109`sUDEYp)sQY5p+3?h;w@$TK@v$Hcd z-E`B3KJ+2q@P0Yc{^fwAi2VHLKmVgY`lE?GyGIu-9vK}~=R^bsRPNcmdv<2#>dP_2-Dpwg7ffB#RP`ueT6PV62Z86J&FC2zXc+PT@;J-f%}=jPu3q4(c- z(@hQ5U#tS8Z%wKn{lG_eZQnJqd;GLBSLbmy2=+}(?AY0;pGsT@Dm^X#M%ee z?it@bI52E&pK~lZvNg@_@ymC@Ir76WK4qGxU&b8lcBb<1j*(Zj?Q42f9Z_Xj2|dY} zRo4@9Y&dFPvkSS5j7dMWc|_j2kQ%p*qS57}gG)hLxaQ2%{Ot7O4?j4)bH~{5Kmcb2 zCF4J@N(dw{B$R|<;J-FY5o1)KFi8+j&Nq_5#Vu1xdUkXHs+w{M&FQ^Q9~^f|LX0ss z2m{d_8z0!LLAhLtEXN;zWUC@9)k=ZU`k}2G_o*`7bFyI+S!)d&2R1*xr=~qNz8JCM_7!iq>J1Zn_nyA$EZ-Z@ zyWMls0KW94PrUu@Z|s^jKQpjrr0Na%H-sNfdh~E^VUsUSD$rOcZ!8kbcBjtrvEJ@1nGyte%945?65fM48Jry zTVE4^bFS~9^=A$d0mO!-s9Z5dN@1v#+O+D_fqfhH9dOn-fslq&Rlxb3X-evAS_qW> zac_!L2CAbcoD>Z$g{{$_=j{V3#RgFj<);=&QdLTo!LpDFQliR0N&KN^hz-j@$v++r zkl7RlHZ0eoG6=tX-mc^TaB}u2QZABskRCV#_=;E`_p5MH=6h$35Gl)NaBJEQ;sx;P;gsS+t zI|(r$J3s9AB0;m&8a(sNlTSKHRayA>kU;#CLuXxZ)@V4ot-dXcLSqDE*7l+FM;3&t zHhX}X03n61le}O+$4gdU5=GJU$YJc?lfF{Q5aZv(;L3)>(_k##9xg`29&zMErU8i>|z=jPjo5o=U0Gd#bO9d}GtW zIp@-%Uf_sZ@p((n8yXpU=7W0|{7Bb@JPH6izB&4$#WDMu?Q^X8Q(fM!ycd-w>er;Y z1YLxxl2UgqV~njurDPzaaWKyKqpuWt`&B||89?YyM<_|9SR0tq$Z#+?CN}Ur1`Cfz zbk#`GFJ=^@==b9xQn*f2!*@sR^z<&L&scbhrk8P&U4cbndPVUpakK^YlGgzN(6M9P zPRw?HQV>Q5lvH1S_I{SsV1Og~ntcn*Am}`jVI=Jg{WQ@(jh@H8Xy9eiYPGVPZV{;} z<9I>#1xc(86KJAwBesDhSdDCBx^4rjVOXC};MA2$rN*3z!dkVIw(S=YtY1@4-HWzC zX8$5d5~X?>HXF*Y)S906Ppn6wwd&$Vt29uVo_BPNi6AgRV?G=iECnwxVJWo9W@keq zK%{5j(Q3saVr|cH^9&^CTY?~LPSuUI083FIaqMCj*2+_JPMpTZhHy4%l}Bo!eI7|j z)sX2EU?P(C_CVg<`G#h#J&dnOay}t~s5z5Mz)CZAi3_Whso6wSW3eF;o3zTq1L1-t z{jy=LWs>-QI9r;@wGRMsD<){IJur8m8E40K3FB9I9D?+-%>W@33tJhi)XKH4Z`r>< zp;lwYsd*G!?cTPKwxFJfV)xP)KI36Wx+6gR;JiQyzG|}L*`s0<+D6}jzJbS#WA-&u zX!AAXSxT@z~=rfEoIRcLm}|GI`-c0KYIy=3akh^v4ltfrVm^dlfG%EX2H$rWCAu z`p^@TF-Asz_SpQ)zUi=H{^OfgJ^7b^f5OFQ@4M!Pzxw<8Ya^p0(c}&D>vmo8lHYsH z>YC|wXkYNiMdZ7$J_aKIV1S=~ZRcsLmi_dp#>Af1zPClgFnRsyB>Oc8|Kl;bDGmWrRZd@C$3r3b)^}!3)oIK~$9QNefFBLiWZIkc= zcfTIH4~*37$rtY*UwQWOyVlpICK?A0O}+m&E*ZT2=81VFd zx?u65HE(?RRg1;NEWAkR-x8ffFw=WSaA1Q=KXhp&sE9QH19EQOfT)O09W*tYNKDs2 zDB<+_>G%E4`~Kl$|FFHaJz8L2!FH?`Vz%n^Fp&%ey7Tz@mF__!5o*zQBbD zUI+ph5y5d=XEK^R$&g-mjVjm?YsU_R=Uw%M@l}n9^*FiO zr+a-qz#BPLEjkdK z`;vd&b9!UXE-X7i;^*CyM)aJgs_9UWQip59AAQS59TTCOn3ZLtGdEl`0H{D$zqzs! z-?=^c(l3Sri9^hXBLhGF%8%TfGskke_xTR--2;HmQMK)0_%V5bF(~&9@CljdiFgN8L_~OOo<~~4QHz-VzYIR`Ftw+oX4jpO3!<1(fUfS~Xz|SJeHQQ( zil?`z_vZ+|6sBIlAc-*CxogjNrcNsT=-_E?!%Hq$Iytl=ZZv~mY>?^*cJ8`n?;}?% zDc{C3ANiL(AN!NwROAgS}yzWhrjsY-&^vE z%g=GHUO313Ji@VbQAUzh^X4rW96sT+yY9UB>gBVgnlzSj!&W}LDVd%URhf^ z9;{84efSUm^`q}R`{gfN>1J9cc-}c=Dfj(^KyrHi(DupQ4aYN!r zm2rz?@9;l9ICft%7n7#XW~T>%Gp-;akn|KI(}7Az1VQ@5y7pNLeMZRg2=YTEfOrpG z6(UB2#?U!-9tZS`ou2ZXet6w`HRQ>Sz$ak(e-|>->I^72nmO_`#VkgQF@Bx4C;h_q zSBz>G+f%|}Alb0$<=`zTyXO(Y2m*WbrTYv9Fd|G>BiYs76@0_1RdAhqhjJP8p+B#ECTLON+f|$>J&o9|$r2$CiP8~@R|14#m zqyv42>AbOZt!owXSVO{er4=JX6sg6AP`{t5rn&Z=Sd>M1Y08=cC0j`kJ0r z03@Ar>8*&#pA!N^2mytv-tuzB(hFm{9PMt_nEntT1d@I>FNJzxTyxi0502IiN6sm|HFa!&z+3UaG#5AV}5P_tNtnk}1K7;>yqTj8D=fQ8< zNLFxeY#9aK%zfFZ1*S{(MFZ;!XQ%l=#6RBP-R@KsBI)0eP^>1u?#jl_WElg;1Gy^t z>ciuR?dQb`GF?~ij_3vvMFab`T`+$CX~PcV2T&b!civ%>7*UBoyD$Fpx~kfPpL*|L z8Ouk$_xOyx>b)=#p23rnRCVnKvBel;jfe^ClBL!(F*$wwpBA7sLt~{HaA*pxXW?!! z_0)TJzZK@x^*>!R8)C<9m`Lj_%zVpi--h8~_s4%2FFwJ1`b!tmU9@6k$Ntua^Uq6g zo#izAx7|qRoPT^#0I}8{gGam|1ll~fb>n`FEjwlTkc}OmZDaEmbd*vwk|bxWz2k~{ zgr~<*uIkh*>UHzfQxGH{|9CPmWIp@lmk09llgA!;x*omZ0^l6O|DV104ved~`i6gJ z?!DWzt1ek`lPyc`w%mKgGy|rYVoETCVroJUq(OjC0)&!aYA}iE%~XTIz2bs#@7=Pj zUbo&d=lkRCu2#)0I$Y;ca62z7{H|H%^iKMx|1z3;8%4K9|!UDHE17leCd)vVn-{-doUhxZMhmEMrw z)jNCjjjx|E@5$5a2OV}lx?JagAOKRDx-LPArnRD1vt=5Vgiy6poPrXFWvFb=kp|&w zUy$ozQ~rnPX?GHdXm+%fB|x^U|E#dZTH*w{_tp_t*xCd~`zXXW05Si((1Tc^^{KW**(E1tf<*MY%cUni7ydpG`XPY`WIlVE>9kL)Eg8D&0> zotKY-V$lJX5>he|Gcyq>iW)CMbT|ZT%T8-uf3z+!P-|`6j7qIpbc7%wL_!g5jWF6+ zE!rqHS82>S9zMzyEEBg^|F6|Ao1-})TLA$ur6a`)XC5*%q|_l4p@JT$Eaxx2kX`dd z?_NSEipPa;Ei!yQEkLRgpMxC(ESWU7n&g3|fEbpEa0rG(pm^@gyWg!Fc;`)54at(0 z8T$bIzX@gws-o4c|KNq^zt=DO^^NECOh?2xh4K4%WMf~Kj>z*MEekaPQd9_mvQj=; zN#O>EsPt7=5wz6wN)0v>lp*pZ$N<5U>+ z{~THs34?0G@^HP;D=VUh^d)Pp)q9mRXVMMlE13hT8R4)M-dR~+ABc!70ANQ_rbyEu z1E>jt0hX2}StyDS#FD(34zC8okJ?lCC=-JmkVjX%cEc@SWSlnR(HF1tTD7M7e~$lU z?2G3KZbUdCo6U*APC1@_t4#tTiVv4WB!p-@sgiKX1^^*M%Uz*SFzl~^*oG*3HJEI} z9JM;=p9)S|*NkNkpixWUD3D+|C;NwN;u9gJEX4ve0WlLuumnsXqOpKbnI#hof>acf z6$w@#B(Y@s8Za=}Ub(0ET-<(P0gmQw=V((rPInuzV%tUM7Br2%CPZlrz|p$LTw-tb zq@b~$%miDZjK13c#@-XJW0OEE9g0sb;!Xev1Y#lqduu{e^NQ)o@dzUNVS25n&IAM6%Fn)d4fy4^9HWEp6|Mc`}9+% zPUYnbk8V5oaP>HjH0;{7;j__}%k4O3;w+&E7gulo`t=XKUa_mB&U9qt<_{fl=5<$0 z^p&oA`NR$>!V!YsUvARv}fb1RjrK6>ZH*(>$(qKV^s zjPsGsXe?>#aa*tmGc!wj!bUbh<6eLOzq#ApJ)Blik#zeFg{iBTAten12FjOT6Bk~r zWv16X^2fykuYT>5P_m=6OJV&VCWxcV8i?RfjeVcL_~w_3c9i?so7J(;x9L2B1w&k2^QIHHKt{0uELjSigB+xM#gC1(+pAC$!NZO(@#ZxdkC&h_Vt9+UTyE zA#CE6UEUr+UszAS<%-U(xpOdV6y|r7^B1errU{_t(T6|kdF^*|YD1xezeo#q>z`>! z^Aycl|6ve;qy4HqD4YNYA)5jLUqny8`HIf2ujgRIXnfZ}E?lZ!ez{G74|`nu{hZoR zWdAiILiqy}D+slZW*sTl6?EHxxXG!^ypVpw-P(b==FOZU0%`f zhc6rlSq&KqbjyV5-u21tzn#6cG-KKuFJ95xBSCH@)df8Se-J+J-uGwRHEUOSk6XTY zd~&v8#P7Iml~tQFD>D;8hDvvC*t)xG&w3N~SIOI8@0L<^oM5eshAkFR#Dyc~#L@19 zT94ecI&HZ$#j$}{$a8ZG)z* zsBvtcKr~d-QV`iDMP`m|Li%q)ym-w$TEMOX+Z6bJI8`tMPNlS@Vb#*I7ap0Ev-ERo z;r>UD^nUQ{dNmYMz2e*DWm^}TcVE!!_CG%SU7x9M%-dkxJp^eUw7G=N5~@%G>)(Ik z+DAUvToX4^ESPHq=8<a;aQ2mJoD&Kq&MROJ z|KB6Y0)}BNU9j`?`^OBWa@VtO&f1sTqes%HK($~iP*#1nO@ZfUcHo>V*ND?H>ftWp z>fnDd1t|8H0G(9DB4IAs!;4C^>jyuxuue+g|poWSM|?P$})bVNuu?bs>bJG@91q zf$fZ%m8u02@=ieWP$!0#iP%Mole!tf6Qckid$L7jM@XzuvsnKRZ9xb^$m~|&z2lxS zh1=&Iw4A>SjM}ATvZ{pgGW3ijXNK?Xg(ZJp6wZ3%xm(j$-*#4xBiR>M&RT+*go~;+ zfBDBhzO}i=ecIKJu2}YC^@g=uKYIDq-(ESyqrzXi>a%xeeYS8-F+tli^MPqy3k$pj z-7<%td;JUZiY*sJ&6-c2oP5T(E=4`P`Mr8xa`)peJ$B)lLsIe!I-h&XUl;B(9BvqU z-+uazkzrvn>>_6b@-~MCuQA=|{R&H25ch-j=Ejv=lP8Ve5g4gaDIkZ<&x1Qan z-uLDYM=Xa6`o0gJzyHiLN9AMR^K`O$fGNzN10vIwvsubSTb%E4~W;!oepIsf(Y z_QK;by`E5hhNY_2x^>;NyEdGD>A3sOeMp->X7Xr1{0af&kh{Nq=kvWmt=rA>HXJeb ztlse1tj90znPG(B(DZ{}K62}%_61$NeI{P;r_VQ56WpR=(+3aVKBe!lKFM9XW)7YH z*Uc_y^*g?M=JIogWEB?pdYyIKM+fRjlhU%Hf-X%HmaJOz#tl8Xc1js=)&+l_zdtPC zbXv8mUzjnpUGHAW-Fmejd(}Pf@2a&lC|tLB){M(W<@W56QrLgQuijo!?Sdi`8aFO$ z46tNwP5EvC)*Ryc+lHKxRb&0M{MFP8KdH-69Z7n6az8JFb$ zF?(CDQ3HYC|HQ%J<0IO=HvXL$EI1tEhC7CwkyUMNT>eVh1)nywQ(PWB%NOXJ4o%rr z7QF6ndrNP->?{+P3^=g5KZ|CdtW7zj0lYHI6~;q}3#)Mo!*Z>#Q9dG|>`q)XMI`%E}cI#a@^`X~SRY{FZ zs9dr5ulJpoSJ)|S;N|x()Fq@T87wq4xM#t$S5EGq+_j+HnCbVvv#nmZfQl{OK6Tke z6T1!Q;mhyd>8f|O1wwnj`NKJ<4b14?J+=3wX@6aQn3ABH44P&O_OUx^Kj9SObey%0-<2NKM)FqHD_`g`+|rB5wnzu zp9_m`PiS*wMXdZSo9dW|rraz$n?A8iIh$}v{JC{B<%t-C>QFQR%K|BaSW0P{rj&qC zH0{6V>f{*p>}uNkNScRe6=chKROnh%|Nr6mU@%N}rg`_i_4c3YBVSZ^Ybf5MXmabW zoP}k{1&17!+xM66`04dG_P#u8;T;cOYHV5{LO~=YL$<1%F$)KUt9C5@=<5a)ob$^k zAG&j>w;Gm~meZ*>O9(bC!(Sf=1Oma3i6qT3wRW9)7G}|*jT_&5_WqiT{-0iN?%1&8 z+pT+i9lGVUtKYlw{ok#GH#4tOJJ0T)KL6e0GBfY(YdV#zT)Oy&z13OyJ-Twu&V_H? zu;HhJFMsyPc%#0dJ`k+)M=Zq=S^3QM=e)Ezy~n`O1=#n~hu7a%#V@~ceZiiOKbiCW zzEEbzyd0szost3>0G;61O9_e@s(9;nvp!27x_|Swy0X%u^*d6kcu^$nq6782_HQlO zd1(0$tAGzncB&kNX@sg&mW0)0dqUES~p=bFce!pPJq+zn!y6 z)f{S4TCxZ`K&+4(K`<1+sH!(RXQq1_wtX@4rV{b_%HI!Hp{S~snLj8`E8nqw>0j^p zU3T7EzZtjv@jHJ1+8$rw@Nq+|-2t$0xgeW zytAxa?5gyP+h4Z#z)#z^hQ6D(Xz~r?Ge(c?b$Aa(4rTV+egA(IV&j&rbe>qJ1OTkK z9Fg4{-gs;Ihn`{O+qcwLRP6X^@6i%`dx1>4t5%O z+5ok51$(3Q8&Tu_qKu}gbz-THq%{j1Hz&wlg#1=;?}W8U?aIFKc}AZEXe zd$l@R9e<#YBevYpYC5grBoc1}%-mwV`qXjKx@L5oKVCJMnIQ#(?JboIAX@Omm{GMs z2u(MA(nu!CAaW{dgJFf-z8(`N6^$C3nwF|*s;VlgAcce_L5iZPf~6$M02pjaX-dm7 zOtwrRIS>dgTlvF=b!&wsA<*RD48VY3BN&Y6CLC_J!`{M31k2Qe!H85{E~mrMSj>dV zN)lx05km@1Q-!T7#)E-~$l{hmGC>;QU^rqaZjV!qE+B%X5%LF3(p)Z=(n2FYHkjDn zz}x7;>?<65@z}2V!Buk>>>-UTI8!pxQ@jpgnPGojRYO=N?2qJ==b__rIdfD8M!b~? z0A$ok(B>rzZMnA!LX-pTSn-GdogjjUlOu7LZw$Hc2|_Sja%dmH)1ymaeolmsO7fJh`gHN8TBF}t z(?=>K1RzvRl`!(Id+^E0M~e?v)bIWFi5uV9v+JkLPzSj+0IsR`y)kPB?j3Z&v)hg7 zul(@$z8mg4XYw-#5AE1}7=1ToisEA5ir_1MZnC>rt%hB zmrd=0sdrxj%eG+XFil+C=l*F1f(yQyYL5Z-N*rTA4eC`*1?w_*%7ag>sr~c3bx+q#SSeBsg4eHC->zvjvBS1tZ#%hi*74hGUMdTGtG zXQn3UC|mLL%un~J1()47^S$4W7IjrXsC?7v@_@xGrJ9kOqc~Lq$h`1ZZ@u%-*qWIa z4!vjYx)0{8xpUy?tO37#=wIUxmDh##efh7yJw5lwm3#fhh(L8EpyW@!?&050%FIeh zf?mt<0~HjlezbpR$~eb_N0@irl!KeDxGlQVqAyT`bEg4U0ab_APKosgCXfRV5NM13 zKLc2rmIMj=$iHn*kjwxHMNtG;%GlKaLTNSwk98z=)laPU0K)@$*M$Qyb;xaO*^4g- z85nvOp12Re;NkCX01-eiOpt(NRQuI`XYy~?Q7AwAo>#ldBoN!U5rt`*>;AQ_@%@<4 zp;yQXi1c3L24?#f)$aIlZP|H;=lqmbIJ78x%fjWG5AN)~ucAVt%b1aAq@;~|@TE7V zmDbdi{xs*k7oK0ZY0J?XD4GfYMGw5U?%s@dAG+k~N49R+cCgkm=63-m=8wXDLSVHw7@WY2+FJ4!dJmrB0{&Y_J;CJ_qf9%J3AIuA0S(K!jK$mNO_x=mF z^g>B3Z+hrp1E}4|n|}MJshzz(j}yj*cjtV!szfQA{?5i{C%Cr#W#XBSFIn>Wd+W~q z^&qn9<7^O@j#feT3EWti`0!-=HjCJ*Z(^8cV;b4~(-vAA0oxiDIbk4<6{9hQ#KK$B z;-Bv@`bq1WEfJ@hAVGpS@npVa5QAgJO$MmB1V?udv6{rfB~-5kSfojnRZl^F!Prrw zQ&N&ifdE08#B7^3nWVxHkW#V*NrEIxVgO7;Nvgxa=HZR&LwZQpT&8_e-Ug9iQ`gc8 z3p!@{_{jDhr6CItuncl0=XD?4$yK+1e{n^vD(sn;>8#zm^H6QbghFhw;!N${Z)k>5dGOGo zGQV)B1h8dUb|43K6?}z&;};7%XL22Uvp0W?w;E=O+S4$hwdn zo&>?rkH6R_$mw*mXz)iOrqtN94BqpPNALZ|QF(QTt49qW1|TIgM`YK$duROS)eSWc zk1q*fK(JxJrZ7kk)|k}0dyW^|OG-#4 z>Z;-cb&5k_fFV@u-Mw29%psdljnJVD+ZAdzaQygzX4T&MdT(l{ z9nV~K!P5uqg5}=!@+a3gEI_bPUs@T+892CW<~Ik5iw{MtqP?$QGvo0&2jEUgb(($& z#fq4wGW3Sq$1a_@?8Tdh&Mdh2fje%x?Yw^3YQ&QN{$4668PKERBu$|Z$YdDAkW#lt zG9m()sLeTN6EItr73)b!C{f+<_#l_6CILYp0%njyQIixXfCTCxO%h3}Z~+8FfcR$G ze-~0W!G^_9g&;+N>V##1O=u1nfMtQ%lolBFN1dC;ZvmF3VK(iqZJ|_D)#+7}T?jQG zU>rjOIe8F4FaWf2V4zOc9bfy7j$R6pB020R8Zo53XZN1<3qJU2_X_lXaQY3MKV5di zy7_NAc9hg3_q@?vlVsJRM=!kX&E-{;nv%k11CSXptXMa1`0MJejO6?R1)Cd8%cw1@ z2-FgWj31L42vybvEdfY4G?W$}DytDBmcIClK~G8ucWP=@j#ICf_RT0V67q*?8ysP& z^t$9X7cYJI%MY)c_~D}yZ@O>BZP$%Edhlp%kkZdNt56AtjjRb5_IYC2*4je{%P_*1 zpa8a1C7WrGt-9D~=H5)(LyG_{aUAa!pr%WI$4&n~jh{i+M3i0>wRj3JQ|!{sn5t^+Lq_g|D{r}eQcq?1tABd@vmJ&Y-4N~i zj+=4+Z4%OI@ip~S!DM)@9sZL z?@_V%?=SxCy&o!dii9nPFWIdLSVpj}DkL?RH`%LMk^1_eZZd?>9B!}2p$LW83I+lp z-GWe@Zjaj`1f(<~p>V{I#6}2N!%v@b;i!~-pUryzU_jN6l$Z=#r?Lwcl^KTpY|}H| zDlH!3Xwd^j(K2Ks?50nQnb^}ZHxYxDLYN4G&1Cj(v_a9VQYVb478T1d`j1cnD8LC0 zZ6^q}ELIdXKIdulkQNI?{ZE`pWe6=CsSN}xK^75fE{`e{wp3Mk9Et~|2mov{B!TQV z08NZNt+hfT*plS&b?rScS$@84&4SMtPr7M*p(FWd`-}`nRUkS3J!DJqCHuF|`C#^j z+V0oAJnx>fwC`@|bkBlBdXNwbMX64L6v3coR8dmfb#&+Y>PnADf>U#)x)HVSGb7dO zHlaH6ZhHDJw-%*IBT!TBcXaA2jFpxU013smYc6FJm+qingrgMj7I2BeL1MhtMx04Hf zmf^3d40#H>QNwyDNGPY`OHZ~$sG_9I?>Mu2X1xLGc-Aj(4(|;~W_A~zTPP!Yg&@W4 zYnPLmYJ9)9JV2H=yFHHn@ZO7a4sGd0Aj(81Gc14)D#68 zK!6DZ0lj&sRzL_HUh>t3+ID@;9M{Q3Dh12eE!()gGz6!+VAzO}`Kjj74f9tXtY|PO zv-8-IJv*kh5Xn=5AOexlv~Vz3SydG=bce%HQ&W?gnih#fyl#)j=}1XQ1|W6gcv1xb z_{Xn5-sS2s_RKyRFk8_JPYrgb8tYe^?eB-uc)dyMV6cF~U@H<) zoK9ishBk2g$aWv?*f;;_*X!IlH=j3UxPGWl^863ptg~v3+-t_=yPZd7zxd|zy27b{ zeCuDotbPBHTW^@9D~(2PvJV>o3P6?xx5uTpp&Z$|!@Oleejq!Eh=h=gBzKbAA%%O~ z&42mBh22wRI9OZLpmlE-uCNqas)V8_3WcE!o$=Q9XD|HvldnE}<&D?wIO6U1@r9jJ zGzI=0`@)V(vJpJIt&F5c^Z0yCZxy!3m&73^KJFyGCZeTFt4K^XHlo>GZ>$M8_Fs#! z(rz%j-CB-}XrtJTjoX+@^P>JtY!$^R=$dw28jI1i&>$g*K}5`KO4BwKF|$y}HZCUW znhZc%U=WixIWrQ}(>it;amM)i#S2S!@0XUrFb#vrG(aG*A_T!?OM)4S0wT#40T2X+ zZ5dJom^DQq(qIS)1qw%5mk0z{7N;b;r5-$bgz_ewIbivo)fFL;+PUAzFnd+qbwXT zg)6HuaDCMNDTENvb<>-klA7!_{DBAyl99SPf5gxMO5`|+=yPm* zjq`deL~~}dIT%1JW+T}4ik2Xr7J~p)KnSos;jo>fydBejo1zJK2?AhWK>&bTl*x{r z;MgL$)*vMdL0h*KM^ZD79w@D=HHAuPX`Z4q>{+-be{|8Nfa}1%D#Nhc?Nht%TH_oy zW=x+P$=rB-)k%QaVp0_H?_WB9>8AbV{s<*ybnH2B@R0rmDGs5KzHj9>i#P1AtdA(3 zwA`*e2Mit3JIB*Jnbr_(!FWqHdPq%k6(8BUb^DTFs7`W3)f8`PT1t9yc4ms(l?)?U zQ{0;HdbD;#9=1Z%#@6Ozf&?2($=xPgc~ifI&usqu_Yc%=nl!RQ@{vVl0bP%T4F-{_ zIh+nvkWdu>Y?kd^vv!TTuT~*8O$#8QXikSi6$FN&YEFkk699y&I-Cysu4iUefbvgf zK4*0k>)xMVFSVgXqqALMUAUYMm&!W2PP(GsqwCl1{_gW{3PL>`btOk#U8eME2Ut*@ zPDg7ON&^5SObJWEVz7iMV;vMjYN})2?046%`tklZ|Eg+gbaHllFvFqNEq?C$x2ihi zcgjvt{fAa>ZitvkNlsVSey0t|dvV+5_47Xd-aEPzSC@r+T_%moaa3E1)8TO1WUz$l z>wfk*Ie&j+`M+Lxz;kGTtGd`#blr?QUz+4Jz!Ky{)zYu#2uXphD?WJXxi5cu`-@FA zveT7Q1}4chLII4L((OxE*6l0}gCH$Z%r*bK?~BTUVZFL`@17ca!GF69mHKKaapPpmxz0J!Mw zIUjho{pPAaKewm^0K9`!pgCLtKuy6?c2z5BN9-B;&tfV48Qat6z`&=x|=%)loD9VX{S&KRPcj91X1zIE=nDxLTIXw%m zx#iwU>xijjj682}`Uk~TN2}5YP8!`WCo9;0%;>BQ-`8kn_C;rRcMDM?RKN;U6>s?d z2mjtmT|hA{2?$kl#Dta<)!}qFWGL(zcJ|2pcYoaU-o1ZJpFW6oY$E|SLJep)bYfBd z%w?OGF8J=N5pv(#e|)zrZ(#4P-3xNOOLo_m?5r-B ze0tyPkG`Mx>O;Q^4|ebW_?=?u8$4w4ur!298<#{OSw^pbX*x*7(YjvL6t-$)KgV^x zCUO@`pBasuNdUJzqQLghXa5tO?KD-->`?Linz)0Jcu86lFcIuyPbb3#$HFP-nysK& z-J-7qiY-eDVPCidG_7xxb_{ShWcp1RtSvsUdl7MQiHog>6$VQ|ibXc9r6r|8LID#X zrDR2c-Es_;Y@1I_DZxl2dy~QmNXhObugBwISr1?D$z!{$dVhCDkACBa8x?C`Sh4JA=TTSw z^2$j)vy(iURbRR1$1h)f^~>E2mc8!IaC(xGd|nlyTBXzI)B7ynvFvbi{+LPKJ;AV* z?DZx4T;Pm>XIyx8x6;to9UtwMx&6+$?WQq%KK=We_4#K`yYb2~UEHvsIBJ(YzjjkG zc{`1rcKt6V_RLO65{AFx(8iD7c@B!b<0K1Y}!&1MB>CW zu`f9}ZnCp!7AKx}E39ifQNobcm;`|Y5-r`02@%=;NDvkRK=vgtgaod$y(LFaiyaqs z)%P5%&D*lk*LP@fwZ3W9zM>&{LtH`k{LdV{vx{qT=B_B|-n0FP^=~JS8o0i+W=x-) zm}s9Iqy#CVeBFnC{=?HBEm(Kdh`Of_y#2G)e;Zr7s@Z7c_cGAG*6NzD=oQ8c6t%aSjkQb zM2M0L&P@OSAOJ~3K~$KY+!4Qd?it6+Z_fH`$xGXp*goENeF`!JOryF~kJOhPt#nVj z;EEd-?t5|WGndZ=04VA0vQi+8Kz(^cud58`P`IJ;Xhhe`gA6tsDuWTdtU73dZ2M*1 zf?0oA006$>7vK5N^kJx5SKm+`(W`61VN)A0Ya{ROl87I2_OGL7!;_&trbLV^)brkK# z+<43N=XWQc>yE!asz3bl`?H>3KMMdvzp34>xn;2BuQ;shb=6@L1R0TPhtp;}^?2=H zp85EL->v@uK$ok=o-;BxR}HYmk~~h$=}XN?;eD&Wd|~yM0NRbX=8hFx zXn+7LAOxrioB#s>APiWJf>C!}6Rzzre4uKUuU-D)vujI6Ui{BLPc2kK?fPYHn)%>! zi%R=mbKh$-dcc*`rH5jgrfT1r^KXCvI2>CK9Detkc}cz`MN{&-J12mJN@`V}Ro zXC5srt857DIC6B`;o^%%4(ZlDCuWdu4a`uK(gn{x`27CnUchM?6JHy7)r<>Pxr&CR z8YUbbN3u6Ip|=pMhhGN~n3*&+BNI*)(nO%114f&w1pq(@K_rMETR#YRY>-Ogz}C&X z7H=#ZG{S;Oq%b0xXPn)~`e>nr%rWPWa#e&~1BZ_2r+%~0NE$Jrf0hSU&Xikjo^$Bc zZ{NIa@tXhuZD_h%0|%>0^@v_pYY4CrsP;$n%DRRIWS#z--~BfH!av^lyW7;*lyDF-#;IG;qkZLe`MqP0D!#fy5BZ6-)yKZiRfBY&}2a%3LIGY@+)6d+hun5 znfi+<6FRzbJKg`%ee&U#zk2+!uK?;Y;)Xxo|BF#6ehxO-Sj^zq*kQx&4H9Q%aaAwz z7igkQQi8e}KNlN!X}yPG5SkmX$@XY;WrAHk+l7glh!~P36A`lnSlEMV^e2{(fUQ2+ zdXof5+FDdB?SC6TkFMD&2vI{OfowDn5d#s((nB>B6sWJLtqGQvSdyJ-X^NCAEn-F3 z>c3FHHu)F?Fi4vAE;~ug1hUOvl1LJnl1$btG8txKUSO7r+wF8EIjYyMJKA+nx6!Bf zUr^#4b!I`sfsOmCI!qXzlB8)48E&Ypta8+aBoUk8`pW96x}eTP%q&!`Z0XEb79Na* z{be$D_~dC*x&=Oa?T;TVuNZK}ZP%YQ_52@KKew=i83eYZ)8R<+B^!HI?QjIvQ&kt4Q_3mcw-M((+s;YKl2M_3* zbm)^OU!S)xPyjyZ@OJrC-+iZhe#9fw=5BMZ_+;aZNxdXB_~n24<;4TDW%2eOx9a2jX|>DVxaYQ~=hkNooc_q|Q-^gx?SUVc zZORDOcCXBtdta?kGzc{2 zI54p2Jg^mKp%Vv@#iq#YbHSe<8+6rm#nnOGkW4~NO3BRcW&z#q`NzMeTIoFt*pYkI zqc7%Pb)d8+Xt1KWl2Y1t$VWgu&Mb{iCuL~Ja zG+$=>ZXH8VM?UrHJ9h>>eKWOVT;9|g$h6EM!$w|x^HqC)++$s8(FvYtApsb&!x@i! z)A!cW+Ca!)p*Xy0dA$pA-CCH9j^lpu@H-=}-e2Jlnb4f6x$QeS%Np{}e(1~mO1)kG zb`BGgNeXxSGah`bV9GT|tAeH!uB?uQ?H!gwaY6;aK)WGRA73!I+^?G^RF^xwbN61I zl1((&ZH!H>0QsGH{&im_Zs2FMaH(1>1t{u73W3U-nbW zcke6rcI}d;Lf`k*tna>Ex$j7Iz;I>^o-llHR>i!}HyjRXUB*nl`<78%l7!|miZ|^& z5+2}nhbxbiSL%vdy6fXt-%W93UG+rQhF#@CRjM{EpZUr*PvPL(3;MRB&~bX76M+!A z`gzN;q-m9wS9rWhwSmz0KW)wQ`BIX-Y_?(D zB!X#nxnkzR5q_X{!<=Ux`1Ih=3va*gnsL6mKyKfH%}=hKGv69kJ&WG0JBPt z+S<}>3s;Og@4USHY#k;E0hp$5%)<+2U)!K&7Y)@|55YJ5rayc%?AnHm{GlD)It(>; z+`a#rHF-x_Lm(oB=JI&5@(WT?TlBzN|GF~dE9_batzgQ1v-76=y7tUQxz%y}jOX(w z-h8;KHe`{aIDGB8=4GQU;OIF1h6nS_o5QqD8wg07Sn6Bf<9BYqqxuv5c+?f*DeR2!a%V6cR+1 zlmw7%=dl$BJ9UD9Vp^t!V=>Ap;AhY^V`L&C*u=EmiAa!02+*cF!VFE46)`Qt3Nf2( zGFXQtEeVsMG6BRfTczDv03a1o2xNhyR3?&=6(Y8zG%c1E2$DHL{~%^*Nr&6z&|F%u zc;z=`8MmI+Z|Vi-MMkF|S+#i8HtoVmlaidODkMlz)#zbC6819z3^0fyRfl$L-xi2a zYQcyeg_)6XdGAS=|9YtIZI>;iqf573ZRt^y2yC&?TuztUg_>>4cZI!|oHl;S6mLOy zrDWyu#XAd!UzqQ3B>5awo3|G?4DC@cs87zSLj(FI*H-U1e6T90)|HhUO~}h21;MHVdv2P&@ z!;U?r09e|a^iCWsStug1W!Xow7u90Ojemdjua^~h0pP+*bxXma@86y|w_fzS`LUOt zy?La)YCh%iCP|zWnoxrXrtWfN=CvEGX9i5^k60BI^#_91(e_zMH7VIOrIm&*nKeT< z!;uik*7{EYL?k&JB45YeBMYDi5FjN?9icFg()08Sdcr_3fPhTy*mqdLU?>EZuuMe4 zh{&8i5cDHtbsTYKM@=A52Se*L{QOR;jv%3)g#h5})Nk~-A?*+hAQX~eLkM4| z0jG5uCJ^vLH`y?i>>dL<_lH7Yh7mzH49+P!Ex$;SsBcKP3cV5W@t`G$C@2GirktfX zGAa&NwC~!%a9lB)YchLlhz!F9n!3Y~f6qbfJxA(|ghYA9uiAV?`)0;PJ zY%dMEA3=K#ZLwjIx1jHsK2dsw1Bh5L@nAqp%IQ70OA&+sF)RbYfHX*u$)@V-Hez%i z6@tJPEEAy+takYW^YS$X1eiKPA&wYCiSiZ`EFy{u|A~SWE-j<&2e?CLs)|5!0UFX% zLT62L?AxZ8N6BcUrzWd_r_qGM? za9@A9AVrPT*~fdnTD?a;`R@G_lB@PC-mtH_YG*Nomn|kMd}QZ0A8#?O{Qmb{) zG|IQGdwYYCGTM2;jaT;bwK4r5oKQQ*5H!v99XfRB+^MXr49vb{Z&p@zVZlFAQqn4` ztJ5>mDr;&@(@OPvs~h~afj~-HauX{^GcddJhD_|`g*=k9ai(sV8C{AdpEt!(RSqb{ zU#?rdb7xA{KHW31bmyWMX1={G7Voq93wK%{zJG0Bqh#gdx8D5Js#5#o3ZKlMx4h(~ zcYZnACv`$IV^D`homdTrc*p=U>TXsRN0o_(~m_0p4pI-#lQ6B&k%%q&& z48K0R-Dd3z^6Z3@|fAEkUi8{nT*^x@H^sQvw}g zK?oGr^Wqe2Spy=HlBJY_K@vp709(Ws0J8TL5)mLr^BJhdegsi>7rd@W(=5go}wTA`p4xvaZV^j$YMR@t9NM^Pcje%$ZbL>6Z&#EYDBZGobEU`a*zn$KFP5A& z<(!ctr}Y~)ao8tMy|GqxXk;1ws-yc4HwdM8&z7GM+E=Ty7M1PTfo3p-=JF(YBjmL8 zz!L(+_wA8Q?nd@*d;(xuQq!~>uAA<3I(O~f{rOjOeO|AWEV)@g*lngLir*i+^r8zo zb!_kV2mkr*d(Anac`N{}vKs?9wsrHkP=o+**|^SWK8ND&>LZCj=j>Dg!%$$LqO#qT z(?BBIoAU4-DMC~CmDB+^>1#@uSrI_Z;l0}qGW8!lVOWtDtQ%5QgyK+ev|`)F{h;3c zMvockfu)L(em!#b{JoSg5Jbsch&jqIRa5U@;( zpt&6Bn&NKb2F(Nr5gmwH0g)g!BU~S9^tWgEFlB8OGYKI`fFl7J^2Y-Zks#tgo%Aya zAp~(ljbxBe1Ti;MNhwVw*+~EhkYRtFRiz?qkRpU2z+!)$WF}#s?j_cPG7^Y&u0jYR z=&~*x4H7HbNkG8m^5hLET>06Ob7x$ns;Z10H#{!Ph%~~DLk9^#c0?h_l!1EoM~g{< zgdmPI$WXNEQFj8HL9PqfX+*2j2xdJXBe6b~h)4*spCpIsWiXz#?WN0xNUS_Wf&@`h zv7-do@_%AbQCCghFX3)|pb5A=sI6k5Do!W&8XU^*==plKq6e)|MA@<)eFq%Nx=DgK zg1oaIzGMCsf7v+e+RMK9eYZ1yarwQsOdOP(1j{lk3F`am?x#=N`|hN(W*_b{ZuYlN z7k&TO)EQrXGiP)8%_CFYo@7C~&*cCKRW%r$uK4w*f4Q`qR_{qp`XUr!_|ACj#rJOL zXbLSQrOq%lO*`R=wgzSMvl%eD4f4wL3LGSYD!u-60WUpC^>Sp zran+qG_b1d=$f^w&nfDj*R?Z;Bgdj~xIqs^6j@UjG6CqJhN`Nn?5Y~_rV3Y*gUIJ` zDF6h*pxkrr|MaO}yWY8C(vwR*_;|_8E4!3`_wu8wO52Z}@#agv>$~d7^M5n*%O_r& zH@V*>UAz=ATkSqidEQP$67uk_!vW3Ld&-&VxdmYvj&5`$D`-^(5NB($I9MkG3?b~h zHi#@4sEf%$oG}f%*B~JTne4BU(Pt9G9P!Igv+y7xU`1rS1B&vz$$=W_kH!T6BP8{x zKs5>hgpj&y2s6iATVqgLE@F@I-vs}}=T-vP8c3qce*lR&Qo^hK(3m^hYG%y;KV7g> z&^5tq?^;cCVIw&OkNs-a9Q(DqND5e>%I8+?)4)6pIZ~W@p zO@8vEXLy3;RhF#=Ggwtshf_5}AyxxhR;<{6df|}FhJ8OQ-4;&E4u_=b)D+d>P#U%_ z+fXv7efP;1w|6$wt^lAwU%y?yp%iMG*Q18Zmc0A)f&~-rzW0iOgNFC?F5h>c*f^t~ zBT~9{?iX9@6>oaFD^y(>GIAu7rn=Lzv)oFU!7OF;`$Emzs}0zsYDTa|X=#>-P!!X$ z{`t=PLXc%ix7%Y{GP-Keoah81%aTr~>)ZJY1rY;8%|A`qJYxWH)*^~OGbgIQjbZGE zW@)wswk%SW+WCt*=!d-i8kE(s1=e*@SBtD{>y?*{*Iy?=BIxg!BtpsF!&WEEeqKuJ zxQ8)Y1KScF*K`PgZ6cMHg*b^V5^Bku`%l09ON@SU8%IGPfH@M;g&<8;WAtwxn24zP$#DQA5{O15 zlomk}LnQi>P!ypk2*EY%FSCDmLPFIv#gvI(l5Uc^oqltYH4D-lM7Ekru&dC56D?R- z?Xy!dd|$o(@s+pS5I_UjHWj-!YO{$bI*zr5s8-m-sa4V(BaPN;YlBF%Y>HMgZA4Vi z647?mn!)1o21?ClmnV?hoeJDZ8&}eST?lv3(sPWg4%BZTfBywtdL5VSCcPdGCs?*1 za|{F^_1vdsZaM$^mtXqqgKxIJ|LDVW=B#|>okyk@Dv%6TlXJ5R(gqE2ynR@Z=Ih*V zNPb>6?JlqN8}`;-wr|w5p}LaNvog{Mh@OWOPG3rDdKRDq@{~3yHvthr%KBg^H@CgV z?JhoAcJN5KsUyFjXL53~B7|vKmX1fB<`wXjB8wOj4hB|E}OM=&|OnQ6%$x4LuPn!RIkdySa!`k-K# zUG7ML8JdHNckVb;(r4(tB$1P)O4@Hl2j^RG56ct%G}bmKa{gbH>Hx4mgY;+6sQjDTCr-+h|Ys@T{U}m ztl3>&@8>q+T8R2@E0S{*D|H}9+AozLul-tS*HSJ&B{f)#&%=x+=5 z)gIilzphWOF&E!F{ow0s45u%}=W?_n#6J@R2_`m-XkTp$j}Rg%MTtRUAcC&z%#34? zpeKVwzLGJ)Ixg(4D(SS-YLZ=*x|Q9@=V3_=)!4D0&p3l#ecd(fQa*H`At`-l$m7uK zvMT)XSSJA@l7L9gYTvaT7HwI*YUB2cyYzBJH6=!BdSS12ShsuInlpMsjNO1|% zvcKYeLSVq&@g0-LV^LL)gv%NlHtybi;Ja@tD*r$Bt~|hwqRjuk>f>GW-rO^}?}Q|f zgUfIvAoq<3Ubu32uHuO-s4I%FuAr-^tf(9-=*og33aB7*2*@Qwju1#l$VIN1WbQZb z?C$#ZkE-t1@0esVnbCm$GU-=c_0{ox^;Ol^)m7D9b7s$3Fn4Z4U0uvH*z;POnroiC z#E>M+Tqb?jgTJ3PY3kA=j`lKxBeJ>o2Ew!>CSmxJ*+c9~Zjz-*5QD~;4F4^?g0bVlq27L^^q4|J@C*K=X~m_haUaSLo3do7mq*!(#gB7D{PC| z^Rk&dNC<<$Qol#6NK1OfLXjitP!s@=uFG6-JgL8=z4u_YO|veUDijLY{`B_k9WN|@ z+7P0yE+K@7L?W3?CYN`U#~f2A(#0d+afn4$!7Bs@sJ-$Vn`Sn)6T#k*OTBPgIsrW=gy9u zJ4JJ|O)yO%$WyHdL`0;Hv^N0BV1@*9WljV-{zN}U14_gJM3h#%xj;0Zu1!nTWHI3e||Y*Si&gm z-0;_@9?P{QOgL*hH~i(HKfdY;?0EV1?|*O0@yixYX^9zbKHa@ydxlIiyXO8M|J*od zN$VS%dIs|L#+A#BtvhmVXgV!a3q%z3yhIcpYs+=MvH|Es^hL)CD&0@Eth!~WEfG<; z7`wnwZI4xRW>!xhLy_$ojw@|TTzkvQaEs%{wOzP~XB4-*zGBOMCmog_=(l8X?Yh2( zn{Mo`8~^DWdV3F?zkT&Hool}Bxt_50$i^bUl98By*eNH^{@G8T{=sKHRoM9Pa~8Ey z_xe{>Y;C{rvg6Oa@ZdYX`Pb{d`dMTzdH<3L9j|qR06FBA=}PzmgMT-qY^9VhZ`$M} zVj1ZyfAy7Z+qV@Anml*E!D8;-U;TE~ikCle?)y(W;dm|`O;~1iGkKFjHBSvx_60+Nz%5A+mQl#qg+a0Uc~Q)vZ2}B~2J_}% zZ+`qtqkaXw@;n`K6#92SW*{uow$T|dP+0pv*F5IUn}5Kx7PDtVcfkN0$-)B(%d~C% zHrB9A+cFFRkT5ONKOjd~wrN=g0VITFn}#8T-|Gm|v~6LkiR|)>M-FBN1_uWJ{P^Rs zMBU_Rv*Pi@`~wb*$D=LHO^pqWsfJ`WlU@1Bnus0YXlz)Mnjw%dZOaNT;2~kymSq_N z3?jp_ENKWq013;oY(YjexnSwBi93Gv@O`)cbZPtCzutN83)?w)*0D3{0Z;8Xu7=-F z@1hr}4TFr84?ovDu4Vtj78JN3-nxcn1=Q#hj6uw$HDr?2wq>p4O5I4geANqH)Q6Y2 zamX0m_2{MoOIL;jOTTs*@G4gO5R^Xv2!dol=S4*9Z(33X*h3ZAJw|M64hu?g!^N)6 z0s*FNHcqh2ge;@kQBUI2N9UfShWAydw%@bFFY$z7q@K_u;Lbhr4b!m_tZ^ad&n_j zb@50nD!N{N;Kt{EtG;+9gkeV_wq=+sJ74(2kDtEBl?-7;V(~iL+xgmKx4igAS2BZ4 z(~8ETh9Ma2QY2p7{?xDj>%rS7Ru_*(Eds@27PI6Scdvc;Tc5sUFe9;e%(hJ` zZg}*zD<6<%G!`?q-uTr&J0eyWw3t3 z+4ZMGp8Ma2JATzTH;A=IAcH*SE&^6e{kUUB2YkKFXRM{d$#6Hl4*@%R7BXa4)^ zn?8TTeNSBX=_jt!0b)u^YGf^Q7qvk|wr%zG5A^l+Wiy#{|A6Ou1O0uGNTjua<^8q* z03ZNKL_t)saeXwhX49tA48!w062cIIOw+LKI#KY7mXt0@x1+naMJ8IuNge^X5PEsv#S}p zQ2|TO^*qTS5EM}_{qz!WuPUBYzoUaAhSyd(ki^-@nKO_&lBNXHur^A3#}#Qg(+ zq;wYb4PZufgJNbfY5U6CuDkJ1`d}IW_Vh!~c;5;0Oy^JAx95t*o{R)!v8&H5qA%kb zC}wwTb&Iiqq6D1GwxT<@ZNLGU+4R<;Yxd+Ee`X}x)mJQH=in}OeZ@U@UU=%A0F1Wz zAO7OM9^D#;>kMIPjtnedu3Ncg(@SfYo_C5`^frpA*8oe;^`x3VBqAZq(fY{R-a!pU zQW<>!Nl8GkE;$%$1reB)m8nMFJs%kZVrGA$ffhfU_~udlfOwqO6X*Dwv1%)*S;)yK(S zCnD9pA7&C(JZaad>`2R*L1rx3lpvO#$5yH-LF}L8TP6S%OC<@`?r`muLCeOkso=Jv zLs9*i8%mjmTh++11x29!I}Sl z#{qBu{U4rO)6tjr%tX_;Ig8(RM1;BZ@XLPw+hcxz@8c^s_oVX>R;+o_{)eB`sv=h; zHewK@CzGlASqC4|pB~)V)w5ya8^<0WJ^0W=O~ZWQ#g{g3*_t?Vsq{S4wqe`I=X?74 zHg4YHd9uE#B~h2GZ=YgqGh)r-Cd^)j%m9Rd=T?7%XA~ekHezO53bp~Sh=G2YbICA9 zB>Z7P=@B!SiMdub%qB&;cD}LU&O7F`CpPBX&Hb5J#2x6`vH9j7HO-wnVbOuIY{%*- zf&h=nPFnSKP@80P14s|&6FMUXYhc(4NJP?(Nhg;uvT2%gfLGUGJas=62C;1eUiwS? zbgwvPA!2dr>gI$Ew>Wglg5aX%u&ZyoYWa#S9eo99SgCPS-hRdrOQs}|p8A0=oVTE} z^`JO}H~IZvICp+(`oRrp*b6^$`MJx?MU&z{+reMBxR`BQG#-w%aM{0KTqh2j*J|cf zjtkGd;NrQo{}ByU zVi<;DS}djXJR0_M8o>qPvzA?WvFx0;bicYn0m6iIQVY+yc0-PT!0U-l8x zU2w<*N@M&{mwu9VL=PSB7O7$WMgMivtYyD{YE!?oQgfD^a_*5c40d*T<`DoIx@yY7 zOe7>TSUz;?y~&ow=?CrSlDEsH5ql2?MeD6Z6sCYds)OL12SW`W`wsNnbufCWA7%#B zn^p?-Xv)Y_Afmubs?w9{s;T0-RDpU#XMmJvsNxCwHW-(~c~#qKdykRXnql~TlH#Id z3Nx$2x|jhHg7m9&-OdzQSUnhE_LvEtVVaR>BxdFFrsHx}k|#`NmY&BFU}BPB$p!#o z_J{#x-Ut!~B@GWSk;kUBC41J z15jVI2DCvIb^!2PSE}3cM+JuG6$?z3wd46;{G|Wkn3wK+{e>0V$P#)Fl%J6xH4RB> zV~v{LRnpVGO0jhD3Ct=Y5Pl(|%fx`d?$1)IQuGqkq^5!zmsD#}^$R5?9jpns>gg?9 zF}@d+JgcAtEwrmL1b}X06W%bPs_L-^`#RRUv=`c&tb$ZkVp_qPbOy^@xF_Ws0?M#6D^0H`JqG4tPH8r&RQU- z+Sn}wQAbDT%NsYo`26x{#GEpD!kX7s-G19`P0cM^w{Gj`?9As2!nR*uwYqa)pk-X! z%GX}|_1*Ulqz6tt{nWQDS(0$vQ;$3Wmci;Z!mp1ou za`KVKo^-;(3CLu5WV^_R0bl!6@->(u5)QlFtJaKbX-Om#+t%!SWlO%UduMN7{{Y*$ zfdMcBwI1pA9_)c)MrQpZzq$X3mv?%0yk*Mb6VE$pN>tReibo6T;jq*&hXIZlTyINe zGuc*MVc?L;643?lLN%db5R$N_0AKJ}}M&jHdv zR&{ub&il%>=P}R+c%!LMo;O%<_g{2SeO;0SjUPWD8i@)+NKb;Oy|tNGZtd(!B$CBU zAIr*~a0rlK7nGcR>KCqkw~0(Y(m9wWTqkwJ$G&}X1cd?gWLpn7^UFUt7x^^$yD;_i zFMj*I;4He*C=_I5%84KS;)xLx>|(H=2MfHLb@D>%|L&SLftldt(;`~``m3)O`m@uH zn3G5(B^0uQ+KK;-(&gwIk#uj?mBqbpLP@|-3 zCJX>W*u15|R7%eud@DBX5)lyzwZ9gq9x(v`OujX*23}S(nyTJ(8a1MqJONeuU@kKV zQk2R+h&WoG%mL%X?U!?vsm|dqx1gk#T7!iOeVYrYW zA;~0wB{NH~Cxyq%U;zlQ=Xox%VVXuPS!bA0$7O&e3DcmUZpw6`HW;NwrhY4k!#pZz z@)}y9!5FGz1sD>hS=_ny$v0khB$;+Bk+6l7YSs>5(lJSExfWAt$qhkG-s*Lk4AR?U zm29031Jw9Aj9zAkg^IP zQXiD7OrsVEB!mzUBm|Kdl6wXjhBG+$t2=LB`}&$fvEX>_iWir^u>3ELjjhR4sxg%` z1-yb>Gn2iVD=D6xts3!-j!ee`U4&6!&0fU=Dl~>^ysb*XB-g-fr$yfU02c! z4F(Y`QN)IIoXcRsWTSJtn{4E96LG>j>8_uOo}C~;>3-DDL0tkEdLKFfc04byK0XP6 z1Q~{52m#JH&Y)znBBtPi>umEtrezt(IL?5Cuq}g-E*ASi!me#hyBVW{t%0+8-@ z$Ad6Odl`ZdF;jHy+yT#NZfo1VZR@I6S0w9FBm{shZ$vCZ6dXBy+O$HUKtex|4+8{v zvcJRWVPTl2A=G<1&U6*~B?;5E1n2slbPt4KnI;wci(7h_4BIkD2;!pK)gdJVM8o(- zr4TFx1I&_z@Wc==Q3-IEjI`4v6H%x8p5NTxlkpBb?QkfIXUxD-vJscB+;{Egzw=Uu z@7r|GiYu?V@>7S|ZjQ~-t<>Q_4LZS{vU3QfzMyuAN>ei`e)+P_T|zw%Xb=Rzs^3@c z5@8k85HIyxb--`tKxyZLvUK;T=?@blwl%qeE7b&uwCI@`U@dikn0*GM5C$_O``ht# zodl}`7yyHeXuTCp5eXu}0z?Lgq-186o+qW$);y7#*3(G=AX1Atm{rT6plfA3`RRxqQM!-q6x@d8Qf=Wp-Gg*;TBuaqdPK&@N(Q#O(phT>A0HAF6P!O{c zEc`rmGWs5hS_%S`y()xI8b+j-6qI6wpnUz*bowmSvV!5FmT(mOvJD}kG9S&LZr1A0 z_tzxDfn;V+G7(EKSP&Tk()EOCcns+=2t*J8=kua>9+qX#=X3c;-01=T8 zssd|+`OpOiw6|Qee#;i=xNA3VdU4H~MF$?Vbm>yVG6n}T8(v#;*TWC~<@py9^{E?w z_=B};R&Cw1F%q>`ty-~U-rTp%*)N;T>FM(^0kcPx%sqI+e_i|N+Sa4~?f$PEv;Dyz z{_D4X|Fv7@AAZnRj%Z@f<-g0yEQU1AXuP@Q<)?0zA|H1guYYs0$&A&R8#}vSxb>E0 zpZmO>Ou({*VFFyyFN_>4A)=ypd4RfC$;7qCBc$%X)PuIQMCVVagxD2|&jNeDxb`jjqWv1mLR z85qnZk|{TzX1PZiLc*}hnE(khqP{E2AYs_Hf3O7wZU7(>WuI8w9f%|esm_donh~l3 zNzW4v*4q1%fBZ&jLSj>X-gD397cHJSDK4{mXc|)x7joGg#LRPV{?&QWXKuRa6TkWW z9rwKB{NsrmWDua%LNbAcfLfcoZzJGVTbMqo)FdQm<*ooh>kC7D9w0z% zXE+HpnNh8pRZ#JFLqUn`&*Pw;AB4-rl&P!~qIKoqKdb`3$KPihQx<%TVw8b-K( z-&<2~pFlJopEY%QQ*&EOL;V9!KDG3;GZrmeV5;#NIQWo59{9r_9{kgzPe1-hE}gOJ zq7$c0X>M*22LI*N7fw6+?M25O;VOb*fjvY_e(?{FzX8$ku8;ofkw;HOYVgrt-FN-U zRV!cLam3Ln?sxIGpSb|QY>+YWutUYP8C#xtBAGCw&bCOhtu>YCPJ62!d6+vp++tz+ zNhd7)z^99HU_^Re3q&jnXq+^A;R55am3Msgs_kdJ`@@&LuSrm$#tW8FKrjwf2J99@ zfJCy6C)a1|S^+i-nds)Vw6hb%0-9RbvWN*&rz2_t!&>$6=0ZFcZ)t6_P0KKhfxh0? zR;{#c+b~Qb5K*C!1B~(G+jH5hFa$8FtCSK@g;unFg%t2!0x*F6A+IE21*4Yx(?RKs~lGs|wwBwAX}`1XHodG^^CZ~N&R&ptP` zHBr~za?tegtDal+;!CTHLe}bDXBsr?J?9aKS%!y@5rTw?{D3+A-PioEW!??nyXLOn zT=RwB-TJ$$9=Z9vc`|ANQn&-yZR6iN)jxBepuk-S0nNAk1 zxW%5!`q8#mV*Hb@=?JYLUQv2a z0#H4kj! z#R?_G06+vm@T61=XNdqN8I+W3u=`I87lFK)p;q}04bO2b%Ub*T22tNIW5%?{9(!!* z(xnkQ0wA4E7m5YTvQ9qzjHmwe=rezQyuGD44kkCh^u+48lUtm0@^LdiIPl7~Ut{Ucd;h0g&Q=dIBLP`vzI$7jJLBvx|M~;( z`tCbF_Wg$+|NWnPJ}_@G_9gZ0`h2G_+8@ z50OdW!q8HFbHa0zsni+od~ZBrTajpbVBn37>ju+l%eGy&Xb6)85_PE=(`WR8J`>7@ZuwQ@h`9KWOLG?7o2cv?%``)z>PMz@umo*|AKPNKux2>?5=~E~tM2GQ#(O3|8}oEMT>hKsl8( zbO;y(Lis`EN)!s3Y6yj3W;3KNL?j?QhJ;{Y)YNHh#xnzItPK?*$!+8}{_X1Gx52evfO3C4~Edk}O?9X-8_;>7g`WkvDFH!hlu3aqzpvpr>=TzYX_?HCfZYC=@iDhH2UO2d?=?+9lNprnlc;j92aq_{05J=AE=T&8bC zAQEw#8blG99+-B`Lhlk4^uaArd95>`d@70-_^7Kc99Jd$PmCqKE1J<>t~#J_6I(A+yT+Sv^2)X(kwx#W3~QjFkrwc z?C99=#1p+;z4gtJRK&A9IgpR$y@DXO=(%hrwyk($?#4GJ?zgPS>DmbmA0z|{*~H|d zK5%~j)UAUBjWpU?2z7C`?M)e zecOh{n3Il-?>qkMNju7;ua+SY5gclt`}VVs+R`*P0V!hR4n6HCnt1S}q~la6@7N-k zn;H$MGpMO*zfOh4qX_nf&%lTX9AH)}AS))Ff5EeYo#^EVMu6R-X5SDp@7`>vD0mI#hCmg^%@KP1ndRA+9z>=W zeia0YOj_}j3YKCK5kkg)pqcu%mLgR9gb@V!25~4Y)LJJ8DzE?Hi{PKoU}h4cSS*@` zK|+9a754Y{o2EH`{`~g#_Clc$jYjK|b!*nHnKOG%D%Ehn;zOp+nmKXY_;@@<01-LT zGfg96TdwDs`sjx-00|Tat?4IT`rWf(8ITUr1DqR#Fo!>p&pcZachWKEXB&~SV zu}sV9_llOV@;OK35g#nDkcGG{3ZTwG%Da*fYAPcI5dnG8JooHNu0QV*Qvec94g+a+ zd2Hlg8i7UxBBodr^({QuFSc$L(I^T9Ie9YD8G$VCw;yqSpEWcAkUoh6fU3S>)gS@v z$!NqrXW3x}@zXE96pO`Y&)F|MI5>CS0ohz89*@Utd)~a+gSkw%ZOoY1#sKsvxeuY{ z0IESE{o3;Smu?@dH#V(mnwX?Ib4Pvr?wECGs;Omc4NZWA0Sp?8KX}7kpEQx} zMp`x>_SN4#5J6!8eHo1T!zlEyB?12vI{?&23!!?}p#>NQSBjeb(J-9CP^k^+Ka4U2 zty{Hpm1`ijlBarewHIAMHTK-r92F1=*U8qkFFEGa%incmb6vEO;GY<6%%9wPZC?+q zyr0deetGR~0L(=X&0^2FSAAVu6_>mIW!J(Ma632mAZ$>Qkvys-dAFm&?WD z@y(kzClZNAd^##115Vc2 zF({d#mSY*}z180tBn03_8k)y1*uUk`2Rz5=ce&trMIIn4ktvXAiK6ErCJZ~uqxPnl zz{RxJ*{9B_pglNy^=}Rm1|vb7N|6v4=tm~a$$F8`(~d2?Xcn0!c#JnG|D8ZY>^RYA z^nItCaQM7AkE~q%%!@CuCyzengwAc7=T2&$*4C1Y+L?SYRhO7DaRTRZd%3>iZwsgbL92&PwWm6OB_9S!WSKLJV9;f4Jr-*tH+t3 z!IbKa!?%h)xFwL95DnG)Zs501oqJhCra-C6LGZKo-2@QyGgw*fVJ`j&W`<#G>(~~H zL>g1|Qc4ktY}>l!&OiL_qMPF_X!7p4ZgWbl72ssaOL8>3FhUL}LRzJ7*;m z>v!}vC6f)wWHOORXS2*qrs)<61e6Xg7;OxB5b4-J&#{-3vZfva0842IE7{swUmxk~ zD-0Bf0E3DJ*CZ>^l`j-~GP90dI{Bc*MPx?Jm{4CpA3;~W=TIX}ND@Peq6U~@8Wa_X z#=sKUL0A?=Bk0<}lbflb5wftWGd1@CFf%Ler4mCW!7e~VETxkfwCd^`Tbid&nNoDQ zzP>(ckr|C`>+4U%Vu#F_7K_JZHaA8qkM|l%`PG0>VQf&WZBl>QZEP0D&fB^!<8?%* zuI6!53eEv71DQ-utqrhagYa>qrGrNQ7TB$=2{lBOpL40fp^HCERcM&H-IFm)Q3gXN zL4Q#KfEp;v(hpJ&hE8UwzWfrDgebJ>WmK`p9hj6-f0er&%dCs2*)qi6 z;;G~x6%3eydb7nr=kIyq=$`f5|HNKH^(@`JJ(JtV!7v07JC12u?>p`EhIn$*&aMRu z7fqWwRS~e+9FrCTfEGycP&cJh*wYA3LF*lz#$Lt|(48gK);nCgqPfho3^2lt@btDEm+S{V0 zA?=vRHcbRoS~hPzu>Tl>a$D0k`G|-ZUB>^bYSh<-?PIU_adVhIYq5WGTB14cMb#~@kTuuLuU_depf=TM= zD5$G)z^}U@R%nEK5EWKgQ(-lz0e{x0(m$m1>H(~ZqT~^du2Kt%86-05ZR5=XD*aLA z+=A!rH*JP#81TI9J33=_q^-HRZPH{E@>sv2Z^zEgXsofR(Xy;U(M=BwY~8r2r(^p8 zZEX`DjZOtuDz4Uz4jvTaTvBBJz9ssB*m3pg)T{Q;3Nelrp z3|AJKr_4C$Ghf_x*(I6Rw-+t5D=Wz@T2U-G=7gg!{^az<2RUBuO=@Tc-8E78z0|Nl zfGud&1crxI>yaKnB1T6pcoSKfdj)38G$Y_7yksmgKAEsAGZu?OdfD`VQ^>LZT5sP3 z0i?Q;kV8Xyk@~j8hp!*JOO|h3y{#Hcc{-* zo+?0JeKOsw0D!=(UU~$br}W$1aMYtTZU#m0+bu)YqEA|S+pHGY*KCF)nIR>J1hZh4 z+R*e99VP6ctyzVjIJF9;m=6BJ{u&YtU{q~QQXiRCH_TFco|Jx`L_!d1Ov~;YAYmFL zU3D()sDYJ)ea$ShHI-m?BaM*emfijxF_d1Fd`f-6KN2dc3VdG~5yfJ;k#0f2}iD+#3 zt1AxLe*qVZ1k}aijGC?fO@oo?2MNLKPCH`Rzuf-I<#+sQ&C}0%!k)A2$VI0dpK5JM zG&ZSrDl|J?ufFMq7>-W!_+R_0vFJB*V)SHJj#eY}eI z3d0i+0A}`rwHJa=-a~4m)ZdC54z2dl2*Ob-6ab+7NY6BoawvqSXaGY9^3QfGrK7C^ z0L;wndY)hgKt#eYh(wK9pb=rjwk88=tkE*kz6>Hg%(J?wvI$t1odC72K|Lsp4nKe_ zWCwG(g5ydE!?I(EWL?yjg`69$i*EbVxBlg$zdHQdyZ`IV_WprFFeC)qYC|O<{jr~t z9US7d%s4J>${oVHJSgm6@?|n?>RbKC$G1&6?#P)@LvoF;4UG(3;!B-zS$aGRk@&8m zE21LAZ!(pWnqhqigG1Bu6*S@Fe}lw`NEJL3qB>?KoFe#<~rsFLI#gt`P z2=T1`l&}O5nWkc&{ZF+fV{sLi0O`6!q9K`-QZ~h63>ZSdsylMwV$(FG=Q1-qZ`S0g zGbT-rShke1E*3lb;3cMEs3$ecG=q}786l-4!!XqB0#xtJ;f7$ChJdK8LJW{>nmqlu zOD=x9;}F5HEQ2fwPs(5`?vU+hUxSp=GOV(e1OQMY7XaHfnJf1Y>csaQNGXX-#Tv6-OQ*Xw0{n(nLk)&N#I~o78#k$(UcKNOejLDc)Sjw8MTZt=ZBb5}) zW#{sgBha=Wx`G<<)KD9QR?q-|IzWSTR~DS;upULJNj|4$j z(YQ^@lbN&GyvqO?b|e}x^$7y5>t^%nQ*10**wJ|01OUe=W(yuE6HVChgkb>y=OpEy zyzavv-g51hlNQCnKxQx}N2974kWy_uS7utdtvL!gXb|c39td(`hHv>*QjY=DNI^uM zot>FXCXq-~QoJQ#+ctm|D^?JZVHnID)FKgxL{ESJ!20#6)>iE`Gz`E{1X>vg%t7B1 z1eH<`g}#Zw90PLOwr%a~Bq9nw)G;e{-SFCme%ap~Z60cP06>B$LVy~g83-L8@+N}7 zE1O<%i>@8f=Ygn(OoEh|wS4*Ncf4bUVbqt!+C6-=+^1I)$Vdd;J?k==T;=Oaf@xYr z^uo%O2OV~p+1OYXx;vPqc2}Ah8d8(~USN&^1MAoK^!1StgtA3(hG`Pf>J_Vtrxcs) zrXUg#!LA30!2l6F#+ZLC=BtxXT4NeFn7Np+R}nPWs0u2v$0NEz%EuWA_} z)gXwd)&xzUenbSIf?(L-Qo92{pwKr3E1>A~HZ{Kk8)?3~$B1oBASCB%=_se-o0$=s z@Y9|ELA632op({*e@U7qb^ojRAdF$QRoiSNPCLZ?w zPwW?Kjbt1P*{v`9^|dX%MJw4nZSDb+QkH2Ng|640e|2MT9Q&X=EG z^+s>8u6_3Y^QI;Zrznx_T)%qDmd>6*2a(1}v-X=gsg7LF%XDm5yJgGvzQMe-8z#+~ zJ9~1yEEFYK5li-NeDTS(TeC*v)VT|0w_C*`8>S`P?pL0EWpj6q?4}t9AKY%*me{%c zo_mrFrqwXxz(Z!n9arx4NrntaZT6{WA6;vKEg0OEMFXI;FSrR2Q20OTtCX@(DCBZE zfNa~gZQHU;X3phurfDiOltZ(dL3)B9YZpL6tCLa}bq)RbGz|76b7N!E!w)}v!37sw zcG+c~=l#tr-MZt3b50w7#@z)jL1*p{p;y+$$8sUL1uP z$abU&?2BMPN@>L7*Zt^6_dW7RLt_I%UB8r`X&CW%{3qA_B$kMsdDfXZnJY6!-$KwG z0Q1G?f3Cl8VA7PS!K{H00?f%|3cx$hy6hKsx>Ki2z+3A*DKksSLKqi)@|znsZXY*( z0yC7>6A3A0G!_#=eB`pri0FX*_lM(DCNcI1_lcvch0H9OjcD}C|M{QKuUy&O+RCa2 z0RVWeYgx8!+t+;Y8Y^NSam3*TF1(dG(%pg?ETwJOS6qC>y4CAiTgP$L*LU<#TC(j* z;Y7s4n?h4E526MRx%;CKDoaD~M|eOL!KW!vR#c)k-T)|b%=aXsT|8!w03)+CcRL0V zGlN-@1QE2Q8Ptb=)l5MMiEX&-uW&uD|l6 znF+6d)g9M-@!DU#>cx?hi~sGG8_tVHP+Wb-m6zTp%*jW5`uj)j7tiITWez3fVS=I8 zYXX2EG6YEmkv=;}lZ*f=J^>&S#bP0msB3F$b(|uz+_r6-ZQF(+Ow*h-YgQx@?da$% z6brUxhqBWS|Dm{MF?0~Cxg!RXG8dSH{UQO4Df1tTJV5k~+3{-lq(so<-^rXCIKsjaC8{-DIZMNTY( zS#;kxP}~!sXXeXzgEGHaO?h%9t0Mp_b3_@rp2J*piiPf8r|t9)p0VHgzrA<4``-QS zWXrhr`ld##yzbhcytMR|Ki~N7X`QQI=xI!P-7oy)tDpZx_c=HI?((rZnKW z8$NT%Py0XrzxRIZ$fosoeDQ*>Tzbv;nKyoHzrIbcXBK?&_dmIKy1C&OU;e-q|8dPB zr`-D?>RPupd*DSs{PDjXZ@+%uS3Yq5*ZyVER^1EpV*Wl={$W}t-zt^r6<7vfydA}1R-V7%To#ml%>P~V3=k!8f$215JJ5} zFQKuqW$xTaI^FNNF0+Rk;$@&#@q8aeUa5ELp*bWApe*S?I2EW&r#xq0y~5wYQ7P3< z4JuFaOF2ZYyU7$xM8Y(a$+~1RrB))Ul$b$8lc!Ei*4JkS2VKW4)lp@V0je@nUvEMghV!(Zb5A~-bv+kg6%a}=aF&ZZbfXaJN|YnafQGO3 zdi#cAq?%FE|4I=Q7-a>jK)AmAC6|bNHsG8z|2CjR2lfi(?*(K)f_tUWpA;Ewk88*V$r^;Wd4E!CK3QVsUMNKd{am` zHZvfhPV5YMj|ePTO0{g4wWbIX28v#Ddn*zW$t;`Pl7PrdNnxBlU-S6^c+HbGXhsWF*|H_Sid!|z=D`#V=`hKxP` z%<@&~=Bf8yanUc+l-$E?25TRU6SDAqu(djG5EUIOEg>2P~*ghnc5L zDKPl;_3Pi*yd@fqR#dlcs#F;<&?OGRZ{)g7D%}gzO6g)Um1<~g5<>W0Q}9!2XNq2- znlHVbP&YXpH~1I4me%v}rNnfB0S2i@vGSyKL40quidH$xKju^_Avt(pD`4tR4ZwfkXx%ApF__RLVY)K@>jPCb06E znOO#MApZ{lAU!4GkgZ9iPf81J;fqMcV+jeZ&!og%m9L+vj#8B=m?g86(yQ)yn3;&0 zo10r(+lVMoj#82(1ossZ1_0Ktz;qBngbG?-B1W*Pv8uAdP(eZ6X-bLG;|Rk~l?YIZ zN+d`CrD0yO9+{X`ek`Tux@y6RVqZ~8=^2JOZu~^U5J72`38BjAGpGy3%%wKr^TDhX z%P(Sx@i4PQBn(k1Br`+$Zy|j$0T7jF!u*C1WS|%c=%w^L&r=MNdhQki49U`S-LNIW z3;~iXiKw-;El5#CB=|+w*;jB^W66b2u71mzQpu810aC%L>){F!0Ti4gsN?9qhyj+m zzfuV*hpsH0o`zpy0e~T0&viXlDL1Juk^uEV77{J3t%fml`rJWVhQ&U2UyHO}A_Sn|+q2vXCl%|ylTmVEMQDZa%04OPw-vdY`r@iKf zS@oe30N7*pJlADuL`BEu4jGx+9D^qTVN!9B#~=TN?_P8JEw}&dlCyt2<)klMclF`9 z9fN49ud@mR0|l2o4>7x=J8d_$Hx+sY^F=dfQldS{n|jkO1JZLG$0-(yqTtw(h*u~` zFtL7SfL015peSRzRFn7OsNm52(3 zg4(bWz;)etJl@jW#9&WK-J*x}z*HLHd}RJLwa2dOcP z{k8xAgX zNhzgoYbyWXHz4p6Q7jPvr|3xb)EXor(u!0nxnf7B01#?*+`cHZ;iUY6NV+6~04PIP z=?w$QzSCp?s%%YlWgxKm0#B6kEh~;+Vil1YteQiZ24Iz;>$0Na7*2OkfXX15s`W-t9%v?_n)C4CcjN+fkNE{4#h%ntAm2_ zuzE5XvZJW!Ib4+Vjfg@5EP47q>X(=R_|3l-Bp?Bj0KftP%ZgD3=_$^Y_m9*6~ zlNL}(QlWQzHBcEAv}ZNe6M@xuMuLc>^oZ0+GQ!V+nOS|z&~Y3oB?;1}Nl~fI=ykj0 zO-Q%CPzzA)Mk!d(Tq?9nVb`8iMWB*Gm?li13*rBSM#PGAg6BeY4O_Hf%E0M+G5}SC zpd<(wFQuV8Lo!jyRvwC~QdJ>b?>aly!qpT4Ws{Vopfex@id2bk6hJejhISo9AmN9C zSk3(g#Xyi(IScAmU749AJg{b>k}{krRK5g=Kq|x(&aW1H)l!|9PT%t+QQ3km-3#~~ zo$sk{BvI+%OtFQqdQg?E>AQVr-~s@UUf+(OrRZDoeRMLKO(NfVBUR8+793m^$|UFq zskNKXDX9XhTM;N_8RP!1ugO71D7Q63mIO*#B%t3y1RxLxPg4XyiJAa-%Kk0UmO#)` zH-52$7j97Z9I`co>k#@3X!eCrq9wn!OT>yb0s`q1Lgu?7@YwBP>eWA=w zO{Th9KT0SIW`sURRF!Y(3V=e*fx%L$34m%a)I%UCxe-E%fJ&3l+GE(60t|*4k_aFQ zvxA^rz|RzZIz;3@U{^fw$bb?ERZdV?AV^&~eMfCu6FxgZiHCsV(Z4CNR~eCrl;%|U z52ba?Oho>7fLXU-MH?CsYDBN{02rk)U#XyWS5qs0S(@V?)|}9AFfv<{{DJ}iGZ?5) zyInxDsG_kx$X(AI?G2cj*^><640Ntv`O*t@n>MUn`SAb!_DbzV`G+5J&d1NZ@uOe+ z^fwzmcVg2oe|GsztEYbSv&T;rgO9s<(n5(rF#y$Q19qfjmYE_BecP#L9(db#Kl!1= zRi8d=5_YWF6kl@svgs3#`>nHTvSG{S-yP|41gI`N;0Nk)ft84 zHm3Oonp0U#Ln2H@ekV!(UpP=puM$-8U->BstGimUMgw6Z-cNtW6M_x&00`S+EFK+Ir3 zUjdIvFVpO0x48-}~_KHyUQ5W%BGpF1-2b3r?QhC~~eR8AK4m$aTN= zzz_f953i)jN=!WPeOF&`mW9+gU%S=)?o~H@@w^)yCo<#QYyW4#ac5q0Yu}Yu{or%& z`hG4p`N)gD|K$%I+m_Aegk@QV&}Jo(una*ANrq_(($+Hz!?r9G3Yq#tFZ%XPk#Ajd zJi{*%Scabdw8R+*HHK>S3j2iJQpyiqc%EgL@px?c^DnGl zzp-RH)`BoaE}wtr8K=*lHQjOC{&f21|M!cCZ3k6fr2?hw7~uqKrC%ogfc5gAGBEjbf0~9u&vjY|)wdP-?hTY~ zDE%N`mfe;g)iYF5_k;DfcOfX(zO!UpmGpOOkAR#J>M7ank zc(5XZRK);A9ShF+Z~L;=nsfBeht_)Qt&cJ0y6k_~sRLQxUVF|ydT+hmM<0FkahXP$ zgyu$s(w0HC{Scu_LVY_S?Pd4LU8QWMw8o)tkaxz>%&6Vkd^Ajy`{mB-LYB0$UGV~1 zCoiK}7f!V9GS>nufM6*S#0gUWMTS~y1=?)DJ_Ys5LGK@roNEF$hJ=s8)(TFNYn`-p z@58HOv-v@)s#Uc;N${0$di(nL>wfpY|G)gMe`lWO3bIW5!{IP-zP&w{`OP=}nSbq% z{U878?dkmK^*{gb{gL1GZ_icW?r=Qpc=Ps#pZu2J`v?E4fAJ68o~z2V+fCD(>*=@r zo`3hh_!s`I+q0(q;kchPpI(1H{m%d3Pye%EDYvga!$&{$`~J|M{TcH0-^B0u5C7z! z0a?EI{58st|Gq!`zx@o#o7dOi)vx{S|H^;-+kWQuG*^{rH%-&|_WI0^{_)@Q2mjFT z{sX6TMJdy?!)yLyKl7jb@qhW|JcGO4ZhCdC3GmC`?+gKzEnc9_((-|;loA(zSFjz# zQT%c@0F+Yx@PGM708FKP{>2x+={Np{xahWtI@hbKt3UqV{fU=<=0&Zw*1F&CZK7$q zwVZHqo=lrc0q7~TEC-_NqBYVl<>3Nt=d%rx?eJz^3SY%ukT-K-6G3HP+m3$#+VBM! zue)S+_(=3X>i3F1b`H8DrPce#1)+bwD z7C!I}7d!UTuwPkZJ?{@=YH!6till~{RR%~>JOA;eClgDq2994AJbJE~F-#DpeDpHI zFy0wu$K~uw$zQnhkTiNISf>57vtQ$p=JV}Y&hT38^7+yfBg3LbllrL5IUbLfI6QmI313=roZa>RLSXZwKKA_2c?u^7Mr|6NL5j7 zA+%}%I-e`a-Qlu@bCbRj6yaDVl;JU}bJy}PxkQ!#H|J4sdcy89 z^?@nR%gwP#y}_u(W|XZW8EjEVjZItAJ6pnJhy^H`Mp*qqs0m7*T|%(Ms|HI9hjqKh z>yAxt2NOT{4ie{U+Z!Ftd&X0`Yo5H8dqHRcE9fr1S15ogzj@7D0f6+r1nfHP3KLy$E|x`XC{$YN!K@CBBa zgvN%C;txO;O0w3?E1=p6CIDB$ik=#gLqH@&+9dAu=VM`N(cl8S#{6@)tj*TJQu?I? z&y0`+G+Poe06_9b15rS`ACexM&@FR$UwG_XQ{+@Qkwx}2=U0G$S@m4~9>-<#J7dL4 zwO&0t{NmsE#Xs5 za%drMt-x1>fLiNmu2r5!mQG8$$HSP=*8HS0O_s-i4>Sg=DbrMnJ*@1~%_kQ<^8>-c z4`C60g%w*wCpNii`uhuV{mqUauqnSHLZ9%2Cp_Vu5ch}pQS*HqwFgLZt@aKP`$gjS zFQVa*bImqc8P>YMVv}?T57t${j`-kECi3QV{$>7|W!`-L`H%hhPyYG8^0NTG{POMJ z`h{QG?WUVkyq)+TWC$qx-HStcu^;A|7OB(ew46-`topuqO5#Kme)`#`-~8q`?bo_9 zYOUAT*Png*sV$&NeI{z%oo>|Pu0+!64B(M4=4%nTzAJWtEXrZdf??-y7ua3w`;`R< z<`I&i02#ZUKa6ShUL@8hT7Xft|IHfX(@$v|EF`(+0Z3}BF!&1a+XqPygaE-GNL?nt zW!xpsun3TSjY1)q?e}vt5TswJxB&N^GxP!R@o4%!RI&FD5>TP%Mzc8VdN;G~2gzi$ zJVf_l5o>y+F7~{m>7lSZiVgpZ&G>vAEGd0AVEahg7JntO*DM3E+;+r#CAW7ALeRs| z)nR+6WJ|1#hgPr}mt$WKm)8(o)>hh{Jydih3EH#&zJZn-jVL|eo!#Tevb@rIU)Z?^ zUmJTLE*e^;!zm=2Wc&G&x^z_V%k;Oj3g1@a$2 z5JLH*-}&1=GM%cwb%i8KDd%~t>05f9+Kghep4@(gDo+pE5v_t0fk764ktm>O2$ zVEeP?RQB7ETFW3vz}neBoGZYe4a&XfuJLdClw6?ek-QguvlEc@17z>GjMqHD^a>IJ z#Wm_yFZ5oZIV~vyxBzov;xw>ob^uA|m`wt%Sae$0WiTdALwi&0Ktm1=jLP_wP-~sr zrOma__zWzB+7VzNSY>stv_h?Qp8fJ+Zc0gH71kulf3=|1vb9EUy9(F3S{S=tQKIkR zK)!d&Mq}F+U^{&3<1;oI%n1SjJ2d121l&bkv!TiPL`8-G5Fn&l8A~2LzX+J^{{9@m ze>}Vp(=^$;V>9e-K#+KUx6;4ETvO(Q>Pr$z=qs@xr~Km9-d?4SIP z3jd+6fAaZlwI$p;5d;^__Xb5V0{1v%0gqzfQWv$qvLHU3>Yx4Jzk|R19ZY-q`?GmI zpTGXe*Z$N0>_30~`W4!MRV;7-&~E*1h!Mm?FA%H}q^XooKl}WD_>+I?XMgtp!eW<@ zZS!ya!Y{me^X70knm+E-3>{CVwUf*BB#mtgvXs67_x2* zSq$_T)nNOx)DzfXZY4UoP17CG-9&_%`Nl%)J~%B=njUqo^L%F8 zv~%5XpwY$&FrfkhEQPZ9xBz)_n!Yh}doOt8T$7Ohu+*baBdBOIdXPBXl)wE~{_-FF zh0ks=D^e%I?>?tEeuBk#!+8jJ}Se9;azC6>EGvKwNEys9JS(yn6NO&0qcW{{hgw1cYY}hr{MX(|00_oi0Pd`8<98o1i^nSAQPKRBM<4alXEX;p(Zzv=Z$PjC;$mnl+>(o#Asw2y-h;) z^?isD&ln~buCY{lx&2_Mt^BlY&t=xWQFpmi+L!W^SD?SSnz-^5+^f`uv6@ zv;+X4=1Xs8+70^w06-_Ts0KFzN*XWbntePW+tH0c=m-qVE}>8Ht=AoMP1AYFQ<79` zKcPi*8XXtPdm~UGiYUfZef|{RCM)^M{niL-{RFD7k}rQHo;Ci zRqA5DOkHhAv>Fz&tuY0?$+h34q1|v$InVR?e70X^2P`kWi+7A*4M7KKO=?LAz>4yQ z<&>Z8pyXF1dS(N4J=bI*+FU>c+C6K&=c8Zw%g5lAP=p~3IYF(dkn=5O6zmRRjilXf z_cwn2|9$!LgLytn(u$RlUD}j@Bx}}O3a_q?QL}*L4+$9tS)-Id1S_|fQUsmOXN%cN z!@Pw}7iD-Bq%1GP0073?cj77Zxn^VI(t9%ax@H$43*RuVwoblDJ3H#gE^0qUW7EDMb8|LfoF&Y| zHT2$;XqIw|2_<}8(=D;jyM)4dYOYwnSdVtNFJ$8$jH+t&pBG)~v$gvyK%y%}w0Yy0 zKe?tVuZcYrYfUUhW9DRE4T$cAATzhnQ&5H7>*K1@Bav)jia;Y=+xqT!_qnENkqi^s zFR(QNkQ8e^{gg0G{?a-7sJo-js@%As^gh+^sjB_HHIlZrJ%}^^6aa;^qnJ=Csj_qC zrLe`ZscM?E!K9m0+RwUKjT!5jA`^}vX6w{V2JGzu<`O4MIxJZE0Ob2&HNCuHDb%<% zp1!7L=%hU;V}D6kSI4_wiaDZtdlPxc3ydjoCx0O)TO`(hWj3#%p^^#Crpx>l)M8h343z+^7r%$+K(Ono_ zhhTEI{M^gO&jId3E60_{ws|M(j7`E^$*yR4jX+K(Qk#rO+J3ieXdJv{)lRoAq@fep z_uvio`f#u}cu5jg3ki*Jm^H}jRISxFTV=FHQ`B(ax*oLGLOL?%;C-)9t4u-x)KTu;d(p#EKnNhfwqg~riBLtfEb7rAL%=x0;scxUs8;NwDT$=FZT=~ zG-Ai%W<>y_xDC;;6&lxfAgF*XxcatzuLJ-l)t%P32IU1lEzlAmk?!gk5ln}7 z=QU*O@EE%m@$yZwg^27a{(v#`!Pt=7g@T~aB)>PI;hy&ZE{~W$V9?S9KyncAn9wiK zG6(=c5a@3h?oC08_vlPKaIUEYvMt4$E+l|?o*|%snyFdmTh@7+CXh3TLX^E^wS#^_(3W+(s!h-W-neptZEm{gUjGD^j$Q9B4cnEy z_;8s^D6JK3>XXrOu9E%sU#uuMwas{xP(blmF&3^K$A>6C5O;TpXRhyvOW=-H>%L_d z(+uySC?);65deS$h8td5?Z`8yJ$MD$gqk4WKeU6!B!ocl zIjPl1vW`P$Z+RlP#5T;?TM3{9NMlevR+r$y8%d)Td^vQ?c(jZUmg$;O+s(W!J)C$E z%^XX_L6$XbITofSo26!g(9W}M%VXnxqi4YC*h;?s8pg#_%uCpfZlGUEHnQfmTDxoB zvy1Ylf8XmOKn0#22p5^XmoIi>;ju06-GK$qO%azn9V0Le~z@Ge3NY;C)#y`t$~zf4#})01sGA_K9}JSrLP#)_3Hfc`v< zwWj^VeP~04MLkbDdTsMzGfJ@gOMG*IH2B!uE;d`7ZF_46^orJ?yzvkiMSUY4D)9tj8X(RKnk9Y$?t67}JSQsNNy?!gJ7xf_& zfL22D=0a%TQWq<%t=Q(W!lt&HSc`xgga=F8hNQNqsk0mqm1FCulU-f_3Q>XEdA>g1 zp3mnqX6?$viJZzb?MgXe+F^GLlO@$!N!D6xd%pCm<8gCMx;cX4j&hQ<@J93P?alf2 z`uh6q_4#zJbDheB3DbUexVkzVj{5`ZTv?8X7&>##RkrU&Zbq{X$7$q zTci=7;X>gk#P36DIu(-ioAgM6XlDhjgS%C*0UrP`*IFT1SdCrlV1+Gr*_o*TfZh>6 zfo3<`x)9Aq-$>e!-7b=_HM5LR2r2C0t}TH8@(I=ATN$;=*i? zf_E9&CuEBB;*Ly7s`e%`u%(}qCTQ&fuWzp3UY~AHb*|GiftU`{;p*9be>@yfYsGZ6KO8KJs$^@N!R@Q#adS;Wt$rAl z00??h_4@7Gx36Da-(J_#?Rh?*C6uXf;xtdw`E)#rGhj2ffc7}q()u(C=IU_MT&wIvAptGbjI5=d&*25h;y)s~wm)Eb21=$stFbE$ zi!_l;i~vm2Gz3*@P4<^;9yO9=5&-~I0WgF1R6juYFNxB6TF5-9{pBqHiQ>bIaqKVR z$c{>|X1R#eXiI)=%U#sQodQ5s+x!?H%F2_2ims-*l1E zx;p7>H&ih`&L6;_u;zJgr#Ds~hHu+-0ny7?<;|cmhP7SCx57fo!tJ^=ePJY3cjCjb zJ`-l7#e$psQYBCpM~eiaWsw=xR2#lFg~CF%5^8xX6>Hy;yAlcju+)f6Lq5SUIE^J! zqbF%stBp9vF|cMHSQ8JB?ZX%@fRbi{^|diOd&8erOPY8Vkt}xHYW2}a6_xRdIzQ=5 zW)8%c(1-i;#(RFH``i5bTEsmOTcTpnEl3 z>SL8|`aONuV455#?b@pCoqOim<(^{899@&7l_f^@dPg*6p;kZG)rzBBTfFUZqf4_r zn71CtI$p%4OBe8n)2!P{48ZE+6RlU^j^GYzP&l+xmlT~-RX2V9ADt&;c%?=dL~eOHX_pF|DN#Zxuyk1 z5P(t$-OlINH@DYsU%$P%KB-P%!PG{usR%fqPo?nYrciixysGDG0Gjr!JF?U=nFl5N znBf^Fz*5dLqx3bjWoB4X^vw&YbEoHeBS{GM(lRD@)1ND{KLAi$baa6#fS(Aebt72H zwAjNXpdGgaNVEI`qM5jz{VNd77gDt!QYZW5W-1fto`r02uJuTcwVV>GO}YjzrGu-@ z24Y~ci)Lo4)4D3Ql@YE0ePxlbi3V+Fi|Js;;37$=@8lw&X(Uw$6(DOV1+(vv4|Gvu zwIMWXGL%zItu>$SZ*T#ya6SODb7iTKX_eBk$u`~0mBwc+qQeB`8z+N4GfDbbD_2vl zg-2{Z2}8U<&|hBB2hcFBZQ8e$3o!VuShuy@)<2yxbe?4w>;2xka*=HTArt`Zt)A@a zZ+TKpqKyEVLQ>4`aH0EqgsahXuupS=?DQJ|miLMQhyeF`z?V82%_2-j9mHsY?ghE+ zhkr4qFljJW6x7e8!wJcpNWw^&wpG#QMuMHGAbMe?Es}p0)@91e-S4pF zGV<~W#{jst01(T-t=2Z}yvtwMH=yfcCExa?xP?$GyLao`Tm1l|Bw~qS5K3p%}jkKNg&?vAZG*dz^ZBzarjgt_i>* z2dLhjZ}sNY>H5uF=Q6R7A}3Msi-y>hLP4kV?fLZ{*k4@%D7pn^U?}t_kVFi!61liNKeE4F#|2(|)(h+$FT` z)`cNDdoK^35w6$)P-pE!j zG|%>~quk&zcpONLV+b1O75@y9Y`PTmMUqb7UnCHF0}!h}?;f1=6liM}0IIlg`S{5&U8U2)1d2DH0O>K++)C znVGAPrgBQzG}e%oCPpfwOsY8ulqONlI;ju+4T5P6zmXl`3d_}@M#!bSN4kBcy#kLnd_1oCicI+$raxFp7j z5nGr7ovk2Mka;&jqBkyW+UJ#pKp~_#dXW|vlN+uXLKQ-5m0!-raB|z|H-!Q~5z_dR zZH$8KT?lAtH^2$y`<$000d`ih#6v5s7kP{`-QlrOm*zVu{9( zl=K?9HGrkhh=q-vK#=#nUnsgy09X{rV$L+LE@9k)r_nV1mOfmZs2kk>CUOw$#~OVAZAoM(#$S<$m1y_CpY9Iq6+B&wl03E^*d+KI!KAG@r}F-LA0K zdA9oVTva(um{fo>Fhix3-Elun6EUA>bE)a@FvIV|qvx8mQ+qGh(>&ka-qd*piBbTa z&$qYdTWP*Mousng@8>;dRa8oKH=q3!hPKjIp)*wEFBpnRBj_eNu?ZDaBZn@d?@kuW zac}9VFy=(8GwErGTTK=NNcXmta_MWub2 zCT&j8KHWG&qi^$}D%JDZv~9a?SnZ&%zY5*15;iGB-nX*2fXI9dc(jYuC-e*JHY*9p zj>ji?ENf6Zc zymvx`V-XigOly8t$c9|917wd7001BWNklHg;HS5R|4$b41^}(VYoKdD>rqBXh(JPPneVCv~su9`jAb*EEJGA zD>!7iA|}`9*>8I-hFAZhtJ~tjb!Y zTISPpd*oJUU?&Nv!t_vU@57_#ni*4(=4!*e&Q*u$Ryxh+)AZ2O+)YP_-@E-?+`Kip~Ye`pfrTBxh8LB z+|ksb4H<|inI75m#?*D*3YqNc-+&fENQldIi4$@m$~`~;?L;P}-+()W!Y(J6$U*3W zQ_@5*^_I@Q2W#?G#Rg)ZxY( zy=CxmPLx*YtpIE_yQa5G4jPg!p<|g|8A%h{*|zo1Snn7cR_BWFJ^(AO=^de@S>ctY zdvsFh;1x@5d3&J4+p@s!w*BlnEq;@HWNKBL!4Xc>FS z-b+jti>%RIex=)&xU4%twtYgjn%wBynDqi3KD;Avo7f;W$2Zd?Xp77g$QJd$nG#LgK#=8L-sPPknTqRs zInboIGKs(zkh3PHLpU?j_kwR4XX`3Yj}ZD8Xmi-P6X7dYxWOtz2WhzPHWxM}28Zm3 zaOoPI9)R&Ak?v!8oX{wzIIgh}Dw_w5$l}5ky){Zvv!aReLY&ta=S4$8w^WFMX3gpj zL=de!HeSS91VNz|RJN1p0`8^>RTbJFkGtc3p3n1qKA)~<%%v1a^IVAum}eYD`IjI&q z)cH+;;oXa-ctdTcTtE|_qGC+gL+ps%hpTLA;X>|%gaX)5x2E1&gmKL@=EnAAI}wt4YF8&pDP`I%EXtcf-Z?yZzzn@a*~3 zem}i_{lynwe0iQLxq}K+2=2@k@?X0axjwYLGafzH6hu}F4WX;!;dt1;5}>-y zpTGFv! z82Sm6v>M&qf3Y1Z`?ny#UnK4`PLd!CCrTH50w9IsuF>Fe=+Znrl63hJ$%7z34aO&@ zmeWYJR@-y$2<5}!y$Apk%3{?#u<%>!wIOn=?k)u9M|E6>FI;Dv#?9OnnOxGdO+vdhb7Wz51HB|7B)_sZuy?pWFc`2AkiEpp3=UF#5w*;r@MJX&rs$iLD8A#l($HVaGxn@AZEbfKF z;p(tE+??jqd^+xqAAj=kikp`~1_}+uJgctaClh^<2vCa6DqNi)j)nL9hT5 z+Re#5Wt6v8AkfbEJyRO(I`9vIr#=Ccq6(FE^C5|pi`$5dlq7-lA%&!^P#77TnuSE) zMMp?tzqnag+9T06JCDD%mLnit`*4n~v*0=eVK81hN2G!|+$j6=3b;4i(pK*+eKRpx zU^6HZRA-a(P#3i#NyfdSql;X9_~#>Cw4o;ez_co`Wjag0Mq5g$)fS{Kb$3X4xqbu9 z`5v#7P6KQNY>Fg9E-PS75-f_#W&mx^Lg(Y(AqapmXgxA~k-$EUM6eg6`su!z-dY-S zZy9VPJmtV>A&jB1DgdTZN|mvaBnYLb_?d?FcFjYv_{;?(TO3y&4ib{DP=uobO=xFZ z3Khp+JCwIxg+PJYfn?2XQE!@WD!f@~@S%w^-II)Vm&FFQtBVKJ;sde=>=G7HSo2-i zKAEIv+wPVF_=w6*5-<{mn3Be8$GwbT z?E5!2H>H$9o$6_x&(m}`9FLr)S+$h?jx^ybmjF%fWAVtjCWmx6Rlaz(`{?73U%k1$ z`Qpp7&Ya85>84!cvsa(Ky?MLiuFg80=fZM091r`e!|^!nCP+ess#I7epg@*X-3arT zmCbC=Fafkypvu1G|1pMp+avBNOTnOFj-u%Ms_b%IOK#hDI@=`7;yXxeseqsoy}Qsn z=>tSKR+RS!-0n{G zZ9jb|@Z(ebH4@ooGOJ_Qr!KoF#v*f(T2KgJ(?yc2{7x>CT90s%c^zt+w19{5fSM&u z*%2uvdRo{}z8E-+EQ3uSJ1YaAHY>8!6?&hDTJsXnm?vM40$P*xwOI&BkQ8H`#8!qR zvh+Eb!94CqCS%nmfJQ(N_I|U`af7ow2C1T5;j+!-VF9p2k@cW^Qc|63h5xRBbzCEw zmUE7VJNlwY8|&;map_n9)qVuN-+M@WN*;{$NTj+k!7uFk{S?6J6p~wk%P8|mc8CkF$tKa z>7$Ro_Ug^`&HTkYpHCIHr`xwTZ$JO?vp3goCQhn4oo9fD!*QC9hvU_5x06of?sPsG zvuW$br+336=bAui2N+3GxjyOn%MU*J`swxCx3_QK5cRv?{X5fcSLYK^X0cX+$N6+F z)9%Id7l*5|pM2k`)%IWlK*@dvV4EaaEaZ|;D109gEM0oodshHt;pU*vn7Irc%%Qf6 zYGgK^=6SJor_tK(q48=L0FuLF6|Fm2Kz}JKY2uAYtU~D$^XYY!8*f;p0D*iZS^zRW$WAO9L%Ky;KJvj7YU4VzJK{hi3qIkHzC6je!rYF;UMhVrgR|7B2Gf zSHtT;1{V?8TY)%e;!YQt^#D+-{K*Zs#Yb`zFQ<1%*v>s;)+|AKjI3LZ@RxCCD|oqS zwIo6 zj>Ztdhbw;xg+q?yv(SV%2U)_Z!%iE=v`b>K;yZA0H8ucmKq16jIuRVRl+Mtgd2PI zbq6@CKD^51BYpr`W1N7wX`E|z8!;YTWWPucK!6ApLao1@D&*i^K=;O2xVPgb!Z}u6 zFfq=Hkb!_H4S3w6m)sR~u5k{q#zNsu%@-lwOb>%~CTSL6?3>ZdY4()T-#IN@S3Q66 z{F5K~(N}M;Z*IQ?>M#A$cfbGXzRo9Nsw%aDJk;}(+{N)E9ygW?B=8aWTwPPjhZy7K{_hwk!0y=J9M2?e;+`0%z;u=|e+EhmN07Vkx zWgC0gx>#?E0zAn}V`h6bUCtwQ&oyv`u3UrR%v`mF#Be=<8?aOk0+jQh zsQrod-uvxY=UG>fEi1K z6iGH?v`zO|LaX-zyl3y;>rL>em!)OyPR5{0E~ctooP9fD7?HZ+@=2foM6hK_G#wf{ z-?Va8CSkY)MzBbLt@}!ZAg14Vw88~eK=X|G@X~dLO&H_0HM%!p^nBh_VJtlnc|r}; zQUOmx!@>kpI5tb%<_=(`gJE&rm^BGgaN0<$BoW%*Pi8aGCG;WnkE+B0hgtu`h}Wy z@<>U)+%DSWmT^gWvwc~69~Kt1+LrfCnav0;3NiW1O@jO)U}La6a77L`2c#x~VB<#8 z=9*TXrir9Yapqdl?681vBE-4o^?t(EHRVFWsPKU*;t0KRN=Nkb?eXABy7Pj@b&he+ zcU8s}7$%@8rnbUl$n{;^I(ALm8m)e#%NkBRT54a(HbJP1sgTjEbZGYZg8D*{39QJ@ZtAA`~G2nkWk3$bN&3)&5wTY{7qeVJe$$G52ZD# zl-jF`*4}$Xsj3mGRP9-@WA72AMr#&T#ID#QMp25|d)20)R#GEqLyQYvrl(xL7QMd}G3ZOz5dQt>(iTEuTOLU?D@2cMKPf(%~{?YN?<1D#t6@>pbUF zl5|5nb39ZYg8Mdrdl=AE2x`qF9d^$3qLY12H_G5|>7>bx{P#Iudk3+TM@H^VxSV^9 z3>2xQ3@gz3*WSDNwOV=Fk9cXqwK0l7QpZriOUXw`pl@J)* z;Fb9d;IF7u0l4i*AJGQj0~nY*<4ohv=gd6GVR=}8EYq2)?!axIO&a8ISVtkrlOijh ztsjV{a2sc={^?Pqg|?{hgOH1v5Cd!!8+LSQLFuwsx|&BsnbbuzZBa|m$1LbH)`pR{ zRWF+uQDtgmeVkFQA1O;eJj({y6lOEXTf{F|su@2tdcnSL(b_98Z(X$bgsFpU5~<6R zINn0}F6}-vNhl#v#^-gDvb`nq8vcD{L=DmjBF8Nda{v!kc$eQUe>oUmX^l_xPzt%a znAQhEkI%=BF__Spz~FE{f&<<<RNE_?J=@SJEkZfDEu`Z!r7=xjYo)?+oVavZDc zEWl?-w7U#j#{T3e?o4QNZ>hu(+j%M3ET7TE$!$$IXaX1oY>$f*MSj(1S#p{QH%A@Ta zbxD3eZGKDJ8XiaHu=U@!Sl`@THf9cWo$Fc|acC?C$*QL8sW{7~t3EJstMLXVJS}r~ z0CQ7}0IElmaj&TXsvAEd`;ay`<{&289C?u~7M?!#l>WtG7^3E3;a%hWQ~CNVM$<*Z z@3wE|DF7H}tI7vT`3t>MWvKxRJNFG#n1~`*D;w1AJ~4V(SRpVr)dPo{6!duX3y@=S z=*_3v6@Rk(d9gbg@H%GZjB&c+xI zA|cJom=fpuAT&FQJFCI7Po$Z&3cSXi3fC>go&{XsRXqW4mEQ~Dog?ffyR*N{&xh%xM~SRE0w(@nwF z-|XJhg2s2{ruk%r5r++CoXf+YfS!{0jt_7MX?@$E;HVQhjgc^@YRp99if*hG%zgW) zoE#7m31ly)kB$~Odu9`_Y;2L52xE1k{qA2aB_#-V3Nu&3Hq7=)f7S)4`d_R5cmW5E z!t_%OqSPfa?_3%WzJ{T^svNzwGj^KCq|Jlx@bn2hchjaQt7z&QeJPjiKox?Iax_YwutEMdkP7)}_Ll(~7;5TaUW_F~Laq4pz6-SedqPG^q zCkh+AEUj)))y#{2f7{$ei6!4ozpTJ%%lOYOhC}?8Okv4n*>3F9Ama8B3fM7Bpm5&9 z*YvZbvjD)U=Jr);#=d0BP~2oNjSj)zFtt`R&X_$%dqDchPGh=uop5BT_0YrjNP*hW zv6lQ>sB`d~sa-B_o34T1kF!vfc{3e;T<{69aT()}zf>uK#miZBXMdlU_EAq~oZ$&* z+s5HgvSE1HE1ynmz}5Wq7-t9`cOIyenp0A)O;Qo)Q_<}BGM8Lcz(K$;pB#N8kyrQC z7(%WSli>G>jf=LahM9p`tMs>+^ta{+J1y>F+o)|0dV6LCpo+Lc!qBe_af(k5>Q!;> zsGtDRUy+)|EwXsf^S|%D`ab8MS7Hlj8N9&W@G^K2k{14ft*!(T%<|5#aqRVnAVC?% zz+0t6HowLCi36Sy18Dp?`68YQdsLS1N}Y;Gzhe zX1ZF6&9>vUZCqGwYL^RR(h`=k5DRYDK;p3fX^Hq@8qCc3bue2<`M$ZS|J>BQ zxE9B&tl92FL0-Yuh%N+igMpN)SMlJPojAO&azzsyDNW4ptz zEo^31lMo~%i=e=AFReWjtd!6WBpn5u!SyUy+~YBlkFp+#EGc(jCZioE}+zHF#gvr9+9qcx(uEWzSxgdGp< znt)~QG13In{A9y7$IMb7(p1y(kdR?kx8=saRt=qItNhiEv=*Z5c${8kbKeWdMP4h@gvW9(%u1X$Q934dQSub4VXgmCNBk0D zO{(WwTaM0CxBgyzkX2u(bBpL+`Vn5aQQhK!hj;ZC*~YSmlHG&_BEk+v42U$$x(QP~ zD*Jkl`8_)ax)m%tp>5AfG+A=}9I7FFQ4IzF9>WeQ#NHsCkqoZF9f$J^2;u}1lLvwf zTbnuITkgKuhQl_GtWX7fb=LQH+Tf}M#j#J+%i-5xSk}uBYeRRnwAhIEOa`ovBICMh zK7dEu5vkid6I&wD)Oo`Ytr%)4d2*`9&Uez^&X&iWO{=&w^X0hZFHWqy*<3KVTD2Yh zl>{hQsAVZC6(T^++CTm%aRA z+%+vkrj^>K=j6;!y6{0vmvU7qg@=Seyq#!t3ol9<6Ge2!%w9--9JpX|G>VFHoS{J?CI=HB|K8+T& zZqE>iZwGf9xC$RJWdUD9N0>E^n0B!lC!^x@Kf56q8jdA-;(kiyx3Rsl-mfEiSE1ND zPHkmevCulLNWMOa$K%USvVe^B3Oog%&#VK8l_o<~vL^RkqBzvT9%oPFVtaC*MHwbiK-RG3M6RxyUpeb;003pa)|1CZu-@nU8?^>em1+Cmmo$VE z)z+vOrNP~JPlKJzb-iWXuLCqz=%rIdcw2A2C~hd*Z*K?E6;tK^))>Lw@+jf_Yn*`f zdwVY4Wn0)Pi6qGt+fAN`99u;dEyWTdKDbfWFfmayCtzN>Xiq%1tNi$|)wj?harD?( zQx|}MM-dyc#xWv;B8hfnjr#bD!K<rohfbZu-JRd z;;dhy9=VRO6J^-ZL3!;fBXEJ?cDDgfzV)}x>yT{Q9%eheef^gZdr(k&nODLA_WT`* zI~UcURK#wO$^eZEPfhw}?s}kEoLelt5FMGFgd~w8N!LU)%cVEqFph``gcC`8Ns6g6 z{apB6t)I>P_LI2hj#7NW({p5BJju=c$@e)5`j%?BOhCIRy7uBQktCG=Ac?{K5*Of| zw-pNWX7pG?NuEQT7>Ak5Df2=ko0oM6WHGe1izesD; zj+^-t-!6RMpVe=TK;w%t8a;^-IwxPW5w4U`a*Bc)oR7F2$&P|N=5GM@GBITI5*c(E zeI1+3nEUJAu~a%Bf$DrJxy#W4zZ!t+N9DvQXC#m-ZtDB-p~4u$ennZPO$ zPUObSwk)X`-T+6;?S9D^>*m>sav56JyYfi5Fa;3Hp zW?5+4xAmcHPx@lSyUrW`#yyVxnG-!IPmTZl24HiuWVVub-&<&sbN+DRjmC6XRn)uT zm8NqQNTc?%y!6!U7%RGL8dWZdff&3cPXRx|*Ff+aCu4PS0DAK$H`z(#(g@!-mfSzZ z>t@oC2H$1WtlU;9v%P2|lu8G6tu)^dyiMPVjRNubP z0|@I4r@Cn=jk#NHvNWEBcG3U=9S`93C!Q-G*&U zusn5mG030@@_SX-P6uy)!_}*dvWqeLBi#r#a!O4!t(+%is-$97hPFDkkDRY<2o>Zj zZ}L&I@NDb>i5yoYJNEw2U3(^!6^LTte`B+Bqiv(QO2qA#yG7cyDp`Uv#iP z1Dwzc!XxZxDxOi)uEv>e?1xB){`3(Rc#Q?(?18BF5DaOYW7KWqo9DdUN+F3QmjuW= zhxNBWFNNGZWhi0F{6h!)dt3{>T6D~ZUY)^YJytrxLP8YAu!|)yZTlqrQqu}m{CJP2 zLgUk$cVYxpn*KN;MI@n8m3XlVcXP|Z5E@3Iea}f^LF}u(q?3ZRFq5xNDQ7R~O-?+v zWj9ygIl9~8Gf;XmRkm1}_LX1j{SlTsYj|C6o2A$ryT4X9_E*0Cv7W9H*UjGVi^-+# zqNzU(Zdn*<*{qATDWAnpk%`3|O2G+_qGl)o)R|90l1TX%1GiK08LyEK=ZwtGGdz%OmuM3?S($38eRWY9C@ zcW7QcAehebltXa;BCQ=wY04lk2w^|}Iviy(vk<=E@XGz=_PRn;J(t-Au3-|2O{)|F zaNU27E>uuBfnI@Uh|@-BdOy(b_yUE(;pRTc&o?}5_DnbA0Wr} zZ~PN%Z`8nx!_Ubo=Z8Ji|C+$h&rgoc4Ls<-{f&U$%ZFapULO-oF*1vS?(LEf(_#|Q zlZtMZs0?*^QTLl$ zQXm<)bT$$~&{(&DFb7R^WudE9(8cMytJ{5PryHCEku%6Pr5e>tPSrS;jX zfgi55ed5YeBtKlE7d6}K>(jifRsYWO8-{OxCe&;u^#8a1ThI;z9WbQ%LztNZzeDFL z0ZK)%zHXYYp3k8PgAL;Wg>6>8strFcg)T8LC%(XFbTYR&XxO{N!)4MeBixBuC@a3q zU51Met)R0?Gxh1l{;vt%a_TJTaq7GR`(z8}zuPrUAIZ<}{!Bl|3-1dNFxen-sj zNm}lGO&_3^Saz4_t+IK}>E?)>srz=-N-0yABuBC#Moq2xGXD!q?b3h~0qk!!tn}`~U#Jq*O;SszdYg z?99}47Qfmfws(TJW%3>uINEclKECJxXXOvhcxz|XxK;-Q1ax+G=4Ft5ApCco8+sbL z_2-Qi=Mu($Lrw(<{PZF`oIp+5?()|W7B zpGb$Pe)zMtR``XXp~U>1sU&=}rCg(xg&c^3A3{FXy$$!(<% z?5pnmPp0?M;4XdLzooP?>K9N(Q@MVqkl!yD-Zi94fTrb== zrckk3>P1Lqk;}$`Fk+2o^Ov1S^3|k1xXCZnKb!l|&)2jR@u%GQWP6qr0QmmV`+maN zBu2v3D%F=7$@Sy&PSf0xO3HNcfbx$obAE){M1;SOw8VsF>K!EKv(LxHr-hBlTu-6a zDEMa&gM4#K6oemu8AaOuqnbXm*P@@lF7{T0T~&gg?AaklunH2H5LI_NP!Qx#LQqQ( k&DO$prc;m*g*@d<_+4YZ$p8Km;XOc0L+?qAnoZex0Ww(W^+O>CPJV`AG@2a{ytOnBz^ec%7$taUEVbJbm| ztKX_!yPjS9d3QxAD@q~3dG~wCZYp72rIZ4aZCZ!Bgt#%agwGr^Hwz#+M-j1B%zX#$|v!?uoxH2ul-Kyb=`@o3r5qYxDO z4}fZ9%N_rG8VW$EoT2*X7mvQu?#yKWL*uS^l`Gu;5cN)6SOby<>ddN%{SPLAFy!1u zCpyX?)j&Dv|A8`0+`vMs%d%odO>19u{h!7+M{@12F)xj0RYF4U#0A+YRrZyu|2*Ua z$N1brco?L)V=)o?;8S(Jl|ubAY@Ex))%m~S46zVI;uiekv?tojux)2oK9^bYRt+P1 zTfB?@ceE^6)?sr*ox7JS<#nqeOWr|Mich{GZRr1?5AYl|_paVlF)2}RAg=_ZvvG5D z&x+?BxY3Il3^Rlq5 zdQ?A|5lSEIaPI(R?B(xWS9T#JC;ks>N=Xy)9p%_O8m->jOIyeW%r1|h2e#YIUe%!Pn=A9bb`AwvbP}TBnSwOgYaZExr@FZL0F#X3^oecU1IoEv>Fz zuQe7|Rng})-K{jEBKuHayB1(j%71J^~O zZ=O!xAY@*isy}~L%09UJs;fGk4@XMnG6HxkXJ&3)G&Gv$ssD2yC)((RI{#NRDPlgS zy?%%7&hM*S638BL%!)Z7?{;|eYENGzN4gK3=31|-{-V=nxk~BF$MYza96mmQX=CQ= zFVBA#9}bR3tWeoqVLE*}TZ`E!VB&|f|LY@Cn45cz#NN2=^mo0m&09!cfMBI(T@^jZ z?{Fk8Up}{UFM`D8;@oUa|DT;k?oNpw1tg!Jn``j8F#(KCPG0QvbWy~Wt;N0@nE;sbTp)j6Ckl*ZsNRaMreb^g~M0#!vrV|n54RGIWNwY18;C-Y(^LOAAo zS(R3|-p=yaK{**287%q@1y!A$9o6*ztmMt4q`CQVFiF5#qbW@LPYzY&$3=ahSI#)10mKjmZa}lSE_OUh=wX0hYg0ax*k{~-J7Dw|PV#}`;^KTC ze_4O`k^P4$-kKUMpRPtmB&B$_(5#it#V+Lb33Une7eNQAKfDAD_4GEUTK{#7=X?|f4$DA(6UZ<3>IL+R~JKXEmVD`b91D{ z)8rHzt5;mEC-dKarrd~lmN1VCxkbPHneM`v&`gC?xauJ_fiWXvuVmG^?CjE2p1}M? zB4BhZ(!n!GGGpi8$w30-X`>7`%Le>={4*2aM&lV{`#J?~1I!&3{N%6o1rTT0;FziJ z?&iNAg58ws6=%x|UE=@CiEm9#u3bJ#1`b6*^R4#y4h~xRoD8FRPP5W{>pWF_oIOmi zd!Ss`)mNp(s)o=|pd4WGCE?5Afh{%hDqrcIA^aHMUPYt$hF5*V`fH>c9^c~}w`fWf zI{I`Z9MwEqtx07G;UYbEAtinewRTd>IH8gJvxEAb+uZc6YUN*w2gZ>5&8>fWZn|gW z`Z(!$EO}pvVqEurUeVoc^d^UG{;^}l|E==hS74tpmFefXB@Gmv|f<=0}Bv3M1qhfoix7@k^$a^=x zHwG;Rx*Fy?`7NhDVe=fh3!J=7vhaF)?IJ^|ciA7er{uqYj?B4yo9SCX*-z!yygqMV zwG4dkGoGeuc8sz#ib~mRX9#C6C=z&!=++I@SFGMeG;hm4CHvkh_N!%1TDw(1$HeZs z$41Oh2LR>%)1sykDbJ%<^V7;=Os2;C9f#jn-NE0JNHWnRCpf0M|uEIGFQ*-@|}xitN6?%K}z50^%(5N!Ri49_iJ7(zn&hM&~kD(}7qeZ9g@chw3L+t%0LI_gZ?R>Xv%bQZ~=6+bK=Y@m7 z=T1N=XR+<&ryjN7v%!|3ys>QQ`xrx@=k$-SLbBp<8pi~^UbjyPvsIX*?x+2S31?GY z+n$RSS}KRZ8To!`8`Hj*#ZbpK8FwVU58;Kw;^7Z))6Zl(B?qb85r$sx8W@s~_QgvM zIxow%N?-17vY^3@4WtYLFTY2ioGy2`e?#AHcDOZI73_O=@V#YJ(y6eDJ?P0__MCQ!`*1U!*wpJl#^+tP4kf^TfFPDSE!8wp>={VSg=v!VKu%`Wr8zIFq#R6I>O2 z1j{R0eiZzA-pudVZ>ST8ZXHhR0sw;AdVDAUC^_JIuV$m}ldWh)5#ZJex&gMEoz||YAo0;_MW{3 zGHd+&8urw=kz(wAF{_8ZBv5Wz{)osuM%9V_Dzs(jCL$XVawX(>^$gA&D8%3k(bw5k?kalyCUw7qtU3x(Po%lKOHsdHQZ&19xto92wNG zA@YX9kO|jVaL`~3pEjm0VpF@t%aP%KwFoKPc!9scY7(5A0{$cgM{d#umc|YYF4TElYTY0P5Ik+2&kE$EOAsVf0Dwpgk&pSl-n*io z(Kdm8PnF|x_{f5HWp^+jaNaO+a$*{QSuB`{AT|s@Bpd*whXEjh!c%A)3R2@@@;k3q zFIYOCbDSw)^86n9597UWR#&@!sIH01#m(c2es!SK3dGhUalh!h67C_`{Bl^|zWuuI zvr4?-7UK(r3sG>YWYoiD+l2%@4AxPkL=CCRd$_C_!^P^U}a zaDEYFKi41i>)=jcwz=?Xxm;P#AxyR#qrGqYlFX{&u_33Op`cskD802}! zy@Z3r|B}cJ+wJ^R=VNl&@dCZ zt8JUS&IR0Rx!0eVxwbGUwXg`i*XO+ND)Yspe)99r!ZL&pkt;AGL$j_qG^Nw^6&bl! zPQYX8rvz8%rDEs1Qn@?A<;%-J_Elcfc;hKE-B-imp0_{e?oo{}5pq8_g##aY+#ewK zljEu8F9n23V^9X>dR-$>Rg3&K74fWhKj%zry3Q`vwzU^f@iDj=jm?sh%A@X%Hw1mI zRLZ&hJ~}&o_$wOllKw1<=nq-y_&J)Pt1m`wenjXubA8=ez~Q3Uk1M`+yeMph3(;%3 zT(#{dviWsY_;s*CflERtdLb5lG-K+m?O5BHf^Ef4aR^yD^(&sqAwvWH5g!&Xdsn zB~lY{X)I{+^JC;#H`*Y7>va<+U5Cvla8NMjQ16Sk`Nld*?1kG@ZM}R?T~++8E*7wS z+vf$sRWN@2mJC-8nbKIbsP?B; z3VvCiy&-kYcUD)mVQW>y{xN=FL%8ztM588 z7T~$;iTLF;RYK2ZxwFckF(@@!wbfeO{fGVRm!8eTc=LSW*HNjyiY7HwqsQrA203ZO zTt3>ww59g4SO9hSO*iiOLS7z;!S0yi37x>#2YaQ!CM(l4d^(3TjLi-U3GXRi_yGYJ zJI}YZuV~UW`G4#uCT}Szn?nAco83K!UK9)&Y4!cM)~lDZ>I@qj8&xI;1)mf&G-kZX zlaw{MzLF9r*yi7O`Rxyev3$Jl;^F*FR2oT0mp~IZMwx2@+@DEu4nCenTT8jFbM7pH zo-zsH*B?IfOeB|UFmS2Q$A>2#50!+QAKvbY{oYRabwAFl3dJMBf9^Z+62gbIC?Q1` zg^H1lWERm*0XD#_y+I3f8Hvv%VkXmiN`c+Ew-E*|H@)5#uW%T%=L06yJ6;x9OULNG za0ypqfoOi|?rAKh)WGQU7ehMkRu`8)DPr=%} z%M`-Lf=WhO`j=(FhJ@p%@BB{LAj)|ilw(grdsJc~fL4ih`qP2rAWITuC*=gj`D)AY z$s6#v%!Bvu0rr;`t&&;Ma5Geo@tNy?O*p^R*L|ns|4G~u6UVSi{s!v*VeR_=zm|Y^ zC9vCLspN6?fB%AuS9KQ_^SEAI^q)w<(fzn#t1u-Bz4>1b`u{CTsOG{1d-(nN-P-r( zX<=xG8u)L{1n?ElrNI^!?0nk0D8JfyGI||kzzKXCh+Wor{Zjf*n)f+rh3sy~ah$bd z|GNEb-g8NR>30}hcNzb~(HR^;;PHIBOV65_TYP_~!WVRae5vH`(fnZJt*j;JV)shC z>W^>FM*ihHdD;g zNY%UVi%_E|XX}-w_2MJ%SI1ObbyYyQD5NuKjci86-aLV6Las;yd@IuHwO$TUiVPR`O5WfBd?347@+dm(uF{ zxRCqc7tRv+^@9ST&0qM*5({AUw6)G)a*PnLR`LGwbth{qX_OdWCYxRsSR6-P)EN2) z+{^G|$B|lJm`m`3rQVx~4gC>-_jW zT2JizTsWHZ3F=e))w>_^gfn_46^l=7_;{IP0I4i|eG!(F{C2z>&>jIe2L-%C5PQ6h z6}4DLPj}qSDH18TeYvV133h)d*UHbV(tloS?i09-6i>);dNt)itj@f>vSV2lXdjKl zkRtNkiUPe|owbt?YJAR{ei~GkDMbCFHvv87^%*wP3_%7inAz_m0v8%V&kHgs>8*Hy z<7?;<+#rDr=51oVKc{d8{BEane<_BUM!18z&41GaOOHhO(J52d)B|Y;}y`#T&gf>^GLNt_7`+RV)DE*L-$a}}qYZ+X|I z51VZo&~=uUmkA^suz|V_CEWJ1|2l9}4C1Vv67tGTY_($7XA{rP+l^Mcdf&%PxFOCL zPxU+oEHqKCAtE(m0xdhkpGArtL6?fW)@vlhf9w=BGWa+SrG%Z<$M4@-^8>Y(15WO@ zL+S+!)u1h4u|0@5f6XzEq}U9^3UXHLq4J-0u73DC^DykbdDw?2K%2pf*TT=a*xvuU z$+xVy-I0|!&nFPN@^4>aNZhLP^qrqS4Fu;5ux)vaMFc)RnwV+>J*~bQP?><#Xb1yl zcX#~DmXoVYulb9fSpyii?>`nhcI`=g9(X~Bei&$Hflefuy>6yo>*sSX`Kp6pb6in` zbE|sudtyENN{kBslJWoGi#J^{LuPq8R2?DgxvJo){P6>4=JLEW*i};B|2N0}e-NjB+6_bWRZ@ z_&)EN;i>cZYZ@olc?7D@+v@fyy9y4_aQU3=C`A4E@hMd2n59OJ6qDEYp6trfbN4he7d=`jW)l(Abz1$qU+`0qJ8UO8-x-5+q*z!o{fDa#|F_ys??u&ifo5 zn9F`Z;%}t)_DT%qVHmWrQL)s&+}@SwsQ#a9cs;1ojO+1l+k0A~Dothqv5;URkv>CD$!~MT~brJJkXmPXJ*jLlDZD)q_ zO`2*Je~EB|W+a5B`SQOUUR;Bwjk+8zuME0y#nmy9Q$^A+U;yc)(EUHYf{|8;5Vk_7 z)mli1K#BmMg8;CI(-<0PU_n9BuPskuZEi+(qKomQb8@JN6pzjqs~3;jzbm#$Vz?}k(Bw}gYk>hc zuZLws_SD)uEWT*WonlMC@l_X`q2JJLm!l`!z)P{r8`E827maU%r3!duAF!nWlrGKB z`M{O=oV8Ahm@%JBqH0Sn%M>Zm^CAXWs5qN*xtjT~3N96ooF zH0y}0tSs`WcmJL!3<=wtQ{0j=?GWywN2;}gr3d7X5tWrBE_a7Ve$d0_r zG7yoD3^Ag^xs9(lk(m(>HF1JbrW!!|IODWT1Q#UWJvpO-tgt69k>$LXd?kjiS4voE zccwhG1~c=)L8T6_#AinwW9n-vVXI`kX%Z1#EPMV1 zrM+lRjtghGXWjb}_}AZ31_Q7s>NXugea?A^bCS@ln)0A-R8pkp&k-ABz>?S+>8(m{IC{2MA^chy$wP8d5QHGbT{`k^AD73P(2ypj z5j+bb%2>Mz=CPNr$A=Y2LCqn#H?TsOdyJCT%KOgkt|!df_1SZu z4xODcM=dRR?)Qa8h(8l%QG@<$vf(X}+v@@45XlLARtEzs5`SA)FoBaAKb~9WwoeLkSxy?V5M6Bzr;y-xIaCu@v$s_@qiM&rXG#wF5^4c{rt@mN zx)!VUl=nKBhz`!7l6AErQJe5ey{~#<=Psj%>5`GF8Ymz{mAffa71tTmnhEqo_(*ti zF?P@tsb)UDI50eN;|z?r6zMw}z|@C> z11CO_=Y&j>G$nC@6ggVlj1zASm2r5~mOQ>t_RgPsJR_yodjw-2R$#N+)E{VQLXlxF z!XNl1@Z=Rign0Du4O8P*njl69vlS(}rNMG|QhM9>jB5BJO!9F*uEnc4mwD<2`H+n} zx`c}l&qb~r(L_?Fvuba%QxYf{oZ#3oUX&O*P=9986cj!@- zXdsj`9aJ9)vcO9qWG!>R%ywbZlnxY}R%Kwfc|P`jl@U`5wO+BW4;Zutf$0!NC4 z4!1|oP8FI+N@|=#*Dq%FycMj6f`G$9$H0WgZ{`#b5I~-UY6;o$_PxWf5N}T1-Qo7H z^QG+M$peREG&IOnG2bsK5&5X`mx1~k8hO%yh{U3TL4c?VW*xgRqB!5F>bdVOpQ}%4 zsAN3d;J{EGm#jc>izwtc%>twmlFIMpSS4_0Bphvq^W;~X3JHe?de^+@dW-czKmn~R zZ3~Vc*X&oEU)Y&ig5vnZ!_O3HUwF3M7-|bbL*Qk%`9e4$P=Fp3y4gz-A-)%c!EEY#r)KlMqf$rm|v%{+cw)3i4vUPoD`7z|h?kN4Ojv(CBXzPR5LWx6e*_#&-~T+^|B zaD6*li9FvTJd6U0>8a%LL%bI#q08NQ%AwW0a}(<6|6_ps{oR3L!y=M z1o)D9rfwxen|VIl+3i9u%>sM6BAcum>Kg8tXpBeir!r7hG(bDH(SBfb(uB8aE>^U& zDs4$7!9vUE1pz)bla9~tpb$$V_*1{*2DmE7CABNL|oFb*>wD5zjOf|_$!-Mi^nW^(v|_Lw&*tgjM%nT6$z3u8e{`}Fm-$pv1Fvc!$wFgI50HV z!H&X2u|`?|KurYAy7|ZGJoxlk&e^zf`+5>=&Z3prm-r~o--&tL*Bslry!L2D5G!{F zU(Tz)v3(3`BhU8HcNj}=^u*|^n-CNsHP-A(yVABP^kWC{_qWEUy#j1s@t_qQ?gjJ#| zVWX3%Ruee1?8O+JGZdmBv z@OufH>7?4)n`>AL7TMSqn?h0u}5HCh{wId!(zylHR01NPkELf|?d$W&c2FooMO%{DF*Qe$oE*Yw9l@ zghp5;|J_vjpnl374OT>{I~sCSRGy4>o2?@M#5-A}tM2BkAB`xSaWkUFL6- z(y6Mbsq4fdWF7b!@@|&SU>?Op{A0W`MhO+(glgP{g^C=SgPW`@eEVWu!+#)1tfley zZTR0J0fSX(;L6fpnXsW6rjD9bcb4E>T?2{D-?_!a0~Q7umaL2vK*d|`#h3@nk)DDB z1}K1ZnPHtu)mInW*y*K4|DNO;9t!>$((X6!rII5J@mc}BYEmR$y;m|&j_t62A>kGC zY@@$BysK_BJq^ga%)x%UV2B3vWe?7#4z*0qa=VU@;8^i)&xUbaklDJ-!mg?7I=e}TlCsg$R?31?vYXkz=97D zK7bVqR9c?~8h9nb(z@oR75|n5?!EMKAuDTXWu&B}QN9Fyj_Iv4ds zVdp_8Y>-(vy4fcPl9MON4r!!~9y)7Kg%_flBGUbhMrcX+38Q>y^zgKh@NB>XI3Tv{ zkXR}Nz8V@pOEivRwXKU+oMC)y@iPmD)E_hj2Q-cZD&~1cYY8VWsDZ*w+BCq}o!ErL zp0WncK-GWf`R=iyrmw0yvg@e)xQc7v@PQ=*WZ_%hom`w{!Xc*xTVDF@sZ%aQmr6BZ zIUKSyzl}8oS$`*bv&1C$SeQRzeV<%!rDr1rFN9xdc4%{cjbYM(LhaP!+(XT5+s%#L z3l3RU+vgmeRrlHyBKJceC!f(Mva-iVtpTvU|>*bAZutIRpL(bkW{ zsD$Gh;G=~Mjb$jYiGWPT2UTI~t}Y>gX)W^x$p%5TDdfzN&){uvP{W$cm0(zd@sBfI zs70U%&43x}FNbrx5^XwEnk`_rK>o4e{^8F>zNyn)5qI}Kt;IotSf+#NQDmkx|KTLp z-(oxg)it}%K1 z&FVYfRIuBrC@ZBNefK4YjH8NefQ@E8RR$umM@z#G=l-`!VMgAoN_E*ufL(3jv54*w z>kP-TjyzbnG`;E9lqGG(GQQ(1ekDru4Q?0=oz>&ST7MAtD<)o%#f=kSuPVC#M=-q> zhQ2}tJ!xZNFys(MBQA<4vMD?OJSmG+otkw{$rAjIiov8q!49E4&AvYMVK_?~!j!0~ zuj5Q7(OXL$q`c8rm6{=;&ttbmXHlEL2clEs&{ z^4Owj@K#|)Cup=^;_{@+Hf-XEy5$LlY=*jPd>Hk-z`zCc?YCdV%9YwZgWE^r!I(vC z?x(nIGPX&wSgLgrvRn^i;02k=k4gz4dnj8q z_dzSJKHhjs=a%lI2Wq_kW(Es`VCM}GF1eTEV;@h9Nq*r(m5U=0&CU?foEv0 zW;KME!x2FhHsv?4Y4~l%7k?S~CIddlZb`K_OS8^vtKQV_<))p&S$8a}_%PUtz&jZv z({@<&vjM|*@oSMaA+BJQRrr^w-N&L_vl3VpCO$h@Pxii14q6<@B=9;(IVy(9Sa~E# zg<4g@_N`sDZ$F2?eEZ6O+ihq70H~d`2Gd`w1ck{%yf?p~SYvb;SEGGvW5-6katnX9 zQ{uyqLu?+bog|90t8m?9TZ2W+yh#HDCGvuEidue~fP0mn zDk??0a!J9_C2e);jJ)|ia6-#mK*|%^_5Ilf2zv70xB&c>yF0)ZSaq%a( z^K~k;oR4&&5D{x)*bq}Db_iJHgM=Ez5-Rg)<8NuA9r%RP$jpW5zt-gmiIkxB3nxQk?`#<+w=1a^_ib!RM>yXsL@Lw33MFl z`qS8r0&EpB`{vwXb;{vR!1AhTN-?;<5SIB56tfahH>EMayHXuY(3VWGL=?IgUj&0X zN@4zVZJ6d9pn@OGM94@hv}t6eS{)qVq+{{IQeJ;DFVY6h)}zeQMMm{=_?Pi49uRnB zNbonwMBU)5*Qsj;wr_4gLY+AeztY*L?vZ87WvE3QbKpavR#tJz97!?3GTMt}Gb3T+ z1bBwcCl!K={A5}(gdLW2X0Q!QTNQJe-u zrYuJCCY?wM$V;-JG=;|=&%tU2QIWdg|E1*6F&Pao(aqAbKGV34+MW|h?2t=rSWF=8 z7)wpmlGLG%ATbO$l-RyBF6Ne+nvR|x5+po(8hRBzN*ES-S*Xh(ADTL5aTpvxR1c%Q zJ%ZW?M6n40?oLP04w~_t~oS4BIYQpHSg-k8HRTh>Q))0*UCHF;@d6O-+ zARg$;+7#HQ9Vn#Fko9t=~2_()QxW33m~|8VYfZ-Ayu#&ijs zaZ}6Isg7lLc*+f14YLT6%ru?Ifnx1_U4HCDmG>v?S2$SbBdFSF-C+~983G0dz8mct zXV46hY$O-w5*iqUgoX^2gkA&za>VWJt&2;V6YTgJymSy@f8=bCIH7Mmk_v`xV8}Rj z{;m5==v1q8^dB`diU_h3Y?-V0dxD+tZbh*^ZG>;x+ZrOyN7o6xSzfWRBpP{QyNVjr z+)V}r--VT*TPkTIATa~HG3~uWJdo`D;Mn`*RiXi~2cl2d>t&R-(XM67gOdgF<2hWm z$(nluvGSenC27svW%3jntb|eDrztciYJz9eupPEmPtER8iSt<}LQ zaz$N>2Hkn)P{1Rdg57=}0JAXjPAR6LfdGGddq=U)%6^o!IjBM=*0S?zj&&p>0^dnv z50ZavWKk$7)kTP*5298q`Q8CHF`|+V16E{#zA-d5Ck0iMQ4c*r*|=6EBNg9QY&w6c zbz{bteR=kEEz11{ecMMM6E;s2QhZy$Wu*y1hzEFYn~3c`6U)3J>4crm9MZ?%o;jc# zip{|RWPeCm3_z_4CocNi%=LF*+PZGs9(^V4;8##K5ThK4~~*JJ>Xz%`Ge57mAYtk*kpKvtgI@+yvsv%unIzUtxRyp zr4B+2A`6oJ_94J(!;$~z<|Y3P%GtycV=P%#O=@gAUEv1)s1I1@G(0pwj1p)d)%gam zHqxO$!oeY-(w{eyw1CeNFA6mF0u>dajHPgw9s%KG{hRX1Mb zikY@YLu-bfGj2+$xf3MS9)}tfNFrYSODT8i4e9HJDdl)-c)h;?uI* ze$95Xkj)d5pdVKuqVOLF|H7I-Hs3;K=|z1x+C%6II}n2*3C3dA$b-P8MP}TSKaTkb zNdcrz^?VIx4LA4{7Z$oR-@7Cq+j!vS8LY@-!eiN>t=uy` zHmbF-`sW1hSDWm??k6`e44D51SoW7~MDwv#iU&4h{%lG1d zE7yssk|cWpfB^CHp*gVOH^Z{NnofO>E+kWM60e@;X~H9!?fZymCd;OBEjKO zC`ScVH&ip%v6hxJu=1df&$3k1RaQG%MUJ3H@zO*}k@HD})xyU_y9|Cc79>^xE~7Sw zqIseq3R@#jALM)k>1TcC-u_#Kh%isA!M%8zj~r2KPP4#RYP;={#b`{z5%2SZ&Z?>& z8au-K+@-77REtdEW?2$XvXmZM9h{5mj~|WxN1OAkV0}}na??F48fL>SP@3R#P_Ok^PcIA(;!_BdqsP>Ke6239@YNO+5`VVWS`-VORC&uA|)~CwfJDjp}w&}Lemdl5Ga?j24BW1rC1L! z1b}b9BnyG2x{D{(!l#9jEbyqNIg`?(>MhK#h!+MW8pjx4ZQ76(d|S+}s@Lsb?u{>$ zQGFNR0PH*^;9fJN=Np4Nzf71o1th*AhADEz;-hwciNki~wKN84H*gg%4{N^S@vya) zPQpGq!$wBRe=P_lBAS-5Wys$C)c})Qq8qyLvRq=wpkZdHp}}NOSD*I8-A=e3ij zY2AD!_=_W=rp_*Ql}j?_HrNfj+^hRrWuhtJ8*&l& zQ!V^7cao&_tIa`$%&-NyBHcNM zZjVe5;j3bvz@u%Qa?_^7RGZ9bI%qziQ%aB~kHbUj;C8P}uA)|_fEm%Z+aMn+!83aT>7l7X5g^o&7T) zRvy2VbS(zMn!ME4KUrI#Xn^hcQt6^Ds!~WM(GZ)X=+D^-9kHYXIbwWy~N+u6=5P5&Ck zKJeFETIVD@=2ftRRLpVYV{RP5z(vHnC97jOvS^lo_`ZX?19!oLgxpzt5H*qLPI!@M zjK56EglJqPfL>&4PGLov{b8^-#O`lQY&#JdddPsrK*L2EfGT0+uD6f zcP*14G%y4wMSaQkz~xPn93cy|itxlT-p!Q`Df?rCOb0%waYw;4o^1w1Lq(;zFlIsR zlx%PTYL{XZeFU)Mv|1c`^9GC2rNf!GQ_9CsNPjsOo2Ch56L>Nv-+TFjNC2_6Oh_K= z!CZQ&BAk^ID-o`8G@lDQgb7L2uRtcA9uh(Z*}gdaEcPc@#iH!?m`Fg6e@R=j#045# z9R39`Y#eh*cb!STPOw<^*}wc(5@9rcDsm>Vw zj+V`yU&S`nbq9`*lbWUoix4N%!Ppg8HRk5aUg+|codyuxeH0b>60*?I|Z`3tI` z9X-;=RY#ycJ|I>m%O5U%_A8%Y{N{;5AEG|B+eGJ<54riyO1g-*T3CF2g$z;%<+}h{ zd+y1;Wi<@gWgyhM*bFiEA44ZEM&VHvfqaHn)LAp7+~VU{@5f%NRa}9)vDh)QIcnIk z#H4B5wRSO*SMXnjj;^%6Rjx+I=Cl@ie%epI_7YY;T5|R=Mal2c5kagibqRm2-6n)0 zF)c8a8^EVMzZJU%ucM3$xqu+>@Ce&rlP*-`2Qayyigq{HLW9=H;-FdX?DO$}$hW%5 ztW#|{j~2iDiBkvR@H9;VRUD>u>A&+{&m$o4i06BC$;1CyI2)yv|v}(I@ytiiirA zQey{Oe7IM9KwcC2jYLtPZ{E60)P@4p zI54cuQNF^>UFws3{%jF)hcWP*;*h^&T)eOhG82<>5ZiWx%5Tzlm3kYxh>x+DA4KN3 z7vvf|d4^OMcVx0qI)fE5gJmlzikO-P4^1rYAcY;;H$Ccy4N7_vVeRI}(Sqza6mx3o z7?HE!qXFRoe^*wTP7F7cGGZitBW@+%k46)1vj=x`2QTP96hl<~ETWA@9Z_QYedtj% z{;#I~V@0Q&*!+x-uDp@R79(<(c$P-LKSRt24BO#(uD~y^!n5H?K^l-LVr`l7L;|uV+%I| z*Z2~vP9>>wuaWn$1mO1|LOm`J{)%(M&*$2P%*TOa`5HfJYG`LDdc&aQCAk6sviJN5 zSH9N-P47Dv!ev_@)P~2wM)BYc;sJJ4Le=eLmDuq6_nE)uLF(B4q&7eL4d<>llZm{d zE0TYEe9(vr;78cBoqkfC)&V z3jRKw|5Z(lKC~lqrRCcgt5c3e-S(=8l=~1qoG60)Dy{VwGnO?)001t{*1n)p)fEXJ z?X=!>Zi>W$6HHZF*cuGUXv;oSw_8J3m*4I8UXiB6ZlJI*PqOdTy5-+HhK03y?IYTV znsxf`^HRQ@p0fn3r0or?#4+`TcZ)Rn0i7@9TmehEUl`UtEQ|!p!zWq#1f%$OX$swM zjx&rt4r1!Tf60y5RKdd56#6&dEBa3`lFNg)(dvDdvb184aUCt1EKr>A`X2mXz#u>o znWroVQ<1x|mHeh#p^{DI_IyJ8n2-0lE+;y$^fe!2Q`k$7McwK%s8?FpD4TVyuS~kh z*P`nr3?Uwq1Cfw?7Q=PUw7%oP;9daX_Kv0J=m73;RLaFQ%4)G}+Mvrrl(lW(atn^b zf^e-z;P^yrw>L3A0RVw~zFVqRKKl7k&!pGB!Hx;vuy|0Fu*+E+vs5yMEN%tupW=!J zkyyzR=R8S${X^4c`e1ByQJ`I5OVo6k!pb5HyE}x_13YJGeWLZl2i^Ftop2Qm!Vb#m zsSNkDO|ZA0nMTOuutA~ri(>8*D=TzLC)!>lY^k;neJNx=vD||p?@0#NH-Ea2hfwCW z$jFq^8Hh+v-wIM**Rz)JO?Rbss<_0ipQ1Q#iey3Oxe=NzAa@?euEjs|H8Q!e@49+! zvYFdY%520Orxx-H*q5x?Vv|4T(@q8+QfEwpu_e=u1`Yz!3^nI^{a+(Ud>Zst>mn=c zOD|VytMTM$G{UIlDoP;be8^m zCh2Sz>$JBUJILES;TmHdq!)c`@a?uP=8_LsW(~#n^MB{CeInsC#|d**+E`?F7XlTz z&9mz!Ya?~>-Joeh5gTUX5SoHPc~4yP*Ioz^ri|K8?U<-R>+2Agy9V8tQm!sL>1)|z zSKlv3kgdDUQboT|^MY~(++S8P5;D@$ZFCdyAfTfX*}w}XWVIUrN__dfi?^_K7FlFJjE1KsNCZ9G_xK$AXFwHx0)4^Qq!7o#xD zJzuKf|J4F~tDb)m65y^i6!hJ|5w@#(5&|mbpgfk-6XhP+2sClmZccf>J2cc^rIr5- zqY`nD^<$5Q1hhPUW~1R1mx(~iW)w3Mt$NH?lQ7n}qn|`ep1wO^M~^5B zOiN4q-iTbydno|=;m6nNpm2P=*2d(1IRS{IP0rpdQ`nrCkagS~ELt7AZ@OF6k~{ONVoErN?+)Hvb&E4_W7;x7V0Oq#WrLO{hYEA}61;U+%0S zh4JogB#ZBWvhRFw+^pSg_;yMBvYGneOgio3Iy&vwO~McxL8o#Jo31?p9fiuPv@sYw zS+uHJK4@!PtbzUg{{g8$R=)?UISA5d@)jhBsI>2Y#L%LRlTg>q2cWc#TFC= z;YsnXmX=wO6Vm^Bw;?#pa&tqY115*Ls1oKx>=2V_2WO>g^t+-s1fHxE3`9gm2%`4m z&NfVHXE=%t;%#z`lqB9uva(ZoP}q`cyJbpelRD!Q1rtF0v;{2;ZbaeqGXQsuH2yX^ zUey+j?eFT`gehTzSBs>G%P+m;z&?Fc&OHRVCKc-HXz5ZMFaUq}0mhAEk%(5Pq9`Yi zJ#p-q6CQl{;m^MKB7>sET`K^_+^sNN#R`gQ#o@y{T0=WNFQ`}#IGt#L@35f%xQXM2 zc5PcyRFI!T^*h%s`1GB3W^8C6z=DHLziRxjZtcp73&Omia_j2(pMNxE&c=Eo?0&|* zca7`Jm;UFb$G@#p23+>=jmH)>%>L&s|6ZaIr}Q}c-hZDBpl*8ao`*i#lAbWi7<}_5 z_doRMR?6#o)WtVlFr?&wyPhPzNMZM=bT79PRrR$wuptN z-Oq~qkC|}#Q3JY{dgWz{Xjlp0~4GEC`t=AFM8+sR~=ZR?iJ`~1s! zKi3i{{Vw{;)jenb<1Zg=G{-*ceCpkIjw_!3?4AEvTxU`r>VMfozdmUBfByQ?f?eiI zJo1L$_~@mf*MI-$H#KHL)_L4rcaAUl{;5CyXQBBx>vZC6x1DidK?s4z8>%a|u3x@j z_7^jkY>yh^OY6Rz124S$#!)o=p?lu`Nf;qm*mKkwr;i@eqg_!bQMYH?`XwK~@y_=< z?K*yMGPXA|Rw%!0WZ65{zL>U*%jt2>8M`e!(TpuCD?96qGeC0`>_#Og(k}9K>!7w4 zIN!K+YsKcxysE0Kq@<*zq_nhD+wOV$Ew{95+xC^$Ur&<*$feB<2hp(W4VNONT`O8L z4BWM17UXUU5E@GK0ud;$WBQATV=uX$?Y{fvB@K|@so%l9Iw?F> zS6zz*W!;C4y{ccY;=exp$tG3E*7Cs($^n34HM@4#sla#Dsir5HefjC-(jfAN&GVQ1 zeBO|fP+mz%4z0tY4uw>=XGcw>b=%H^Pq?&oblctUZ-k<5g9i5Oglc1LO)V7`cRqOR zRc+LYzr4LJVJpJXd`2<;H02f+=2Xpl^~Gv z86>&mHKOBeak+li3|#0bM7BV^Qk*!MuQT;j;Z|{oXuj^jvv$Bbo_Ng-6Ux@l_~hjk z<@HKY#~uf$4Gpf;Zr44XsFe|S0J|u&YGzPtdyGYjigGIFz5buC%PA+Xv}3=cPdxXQ z{%!y9_m9@9x;111Fn`dAN4Kx5Ru36-)RZNk?yw@X2uj=Gm)=lS`?txf>inq2{J~?7 z>rhv%4m;`Ssf(wT>oOK|3R~sHmc0GM$Lo1GzqmusK}Vnb>tl|c_tN7pe^+6>MWN)d zF-PXt)P#>X`Or_-%&FFWbSypkir-$;Ysail-gswAEflmppm(I9&M9{M28)}w$rVBi z^ys|9AsIt&kR)>6MywI`a0&;apjron2^|Wqg^^|NT+`)_3j5W~km0_gZrCA1i;IiF z-UHfC##n7#-Kr%^cK_oaqc6XF+1qd5@yaVRo_eajp#cDji;Mg9>o<1n*mKW2@1Xwu zufF1nHEY+-nL9WA`k1r|7kMVTR+=8D2nPT8!}}kawzJKNzrW|414{-U(lfMVnQGkn z=>CU3Ezj?J-Yqwt*rnGgCk>kM{6g zh~5eS)$ZCArTTeK+&CA*g(XFi(h*nuVM4DCefyN*#@$+Sb@{7*eDa(40q6Yj_HkX> z4;|9w-St0{NsblANQ)|p?%uR^-KMxoeEHJFJM;ebn~_KN`RJz~q0OL^&pY+-eqBnH z+RaP8n*7>lKh+RGxcdp0opo%V&h3gL(71Ev^AEhaxyPv&oOS$wPOX$^<+erdJo(zZ zDga=m{l}bh`cVgWEykKHKhB!^)+b9V;s97U_{@nDhIVdWTA0fcwdFs}`e4$#3o8-; zp!6Jn%jKiHl@=(8s;$eXzcXpd3d<|C7|*a-S{1i~n(`g_M~*-Gi&bCj(C!rtJ9SK_ zJ>|Q~ii!&n$_d+^c>AAE-uBe*Us>Dz%-`QKvf`Edo}Rs%AadY&fB5a7l~3LO=E??3 z7eU#Gi8q`zxP5Uh)K{$ie(LLQf442Jmv-#UPaO*YeCKC>yZh~Rrb|a0K(=?adh7CU-hboM)m7Sx)x2&;jURXX!3VT2NK~x({=-Qh zeqS#7kNLg(c2zcf^zz%&x2psIOBQ@*-puKE=ox2?8P>aFF;%T!IPHzMzunkKfCc?e zzGTAio?Y4$>=Q0Kx+@*j^(+31K)Q*779)oV6! z09^6oqMdmUUN_>1o*%7V#fkJ6FXv* z@fOsr{%ZF6(dYKbKcGhkw$KzAj$JDj$sTb}cPznnJ#aWVt7^7}Sfl8H1m=A z)n9)3QzEDH$V(@lapVE5LPqv#B$8{XY6L`#Z(g%0N?jtYii;FP)r^kXX3}gkCtf7l zW?RXaa!y2}aR}#xSziA$Z~fKKU7t^WYSOMqpA#-T`tOtT zcPDc5qMO;lXIy!D*Hv#m`^K8uP)Uc}oi#)RxxL5Vbp0_j|HJ=$xRu%u8#m#a+gd&S z=hv6lL8N2v13T>b?B8#!ZeXo?A2a^+t0vam_vp0k9BB9QFW+5TUEQdZ4j6m(8CRXT z<<6HEHiFqjjvgo~Dx{rXzq4e>HDgX5IP1SZHXojL=-Mf- zem3CdbIu>W@|i_#$6s_Te*46GE9<${0z_2v^V}&ff4jR@&F^~TS?6DJ#qOUUoVFbR zfNJOe_a7gwRe|Dl6{@32)eWCK_R_p60^YEvj-U+y#J11>=&RLLP||<&Ij3E9apnEb z%&P&V-LcnPe@5Zb_a{C3bF9s24?OMs3va;6J6~SX0C`;p4(eL-`3r9>t%m%Z>Md*At!O-=|3Mwt znk^iFb?w);VAsN>TX>}3dAD49$ga=dd3w_ByaUIaKjFGdtN;Au>`GEP^gpB*|Mul4 z=kMl`yvEIO>S#5HgJZ}zj)aKfjg1Kig%#kOYcKONqy#(Q=wo_pneo!H)rmGgjUIpO zkdM~Pv;1JHTk-DmKTNp&f~!v3_Sgp-+&fB?1CBoSfGsm#TE03yef8)G#}EDJr|;`E z9?<#OWCnHDyvbi4KkSSnhj*Cy(N-dWNWWu`DqZpJj5SM&zS;W6k;nD5Fo~KJ(>J%@5|DXtc+C8R;<`<*Oak(8D>5;$ndTSbor^HV zw6gsB1 zYa1IIl~4#1iBfHo7PC;vKW*8udaXFQW!WrZ9!&7M68B zXw*3)O6!&_T$exmiX)4b{P!>K&#xnZ_1h!8ADnpjfWkSmY5@TFuC+^kT-^u&fQ3gF z=TYT`A6IVJp~A+WwG3Mwe)2KxHhp~e%U^Bh0Lxcxgm(9xJ@$xcE56tb0FbCyw`BS1 z1i;Fl!@VB7U{JqSpKh-ts#>#PF#rIpU*FLA@c%occSp8xz2EXBR!~#`_0?-;emwuU zt4==hlVxA+${#%DxHfA(cw+hP)1#rXR{01u;uEp;Q~&$fz}wEg?4pC)45t}Se6Z3L z#*S@WHcwkTv2Jtz!NafU-8}-^8vy`#UB%WdTM}SQ+1MYe-o9n)E$NuA%}JUXx&=V7)|^%<%PFO zFF)hPdyZVcc-FVyem!q>MGOE~$D_s$R^V=Y75C^vjPMUiST0yM$cS?KA)TpYFH)>gu!CKKRDcguRH!L8C^NtaxvB zIVYGmW6|kX9zVSG4>NX?IQ?OPc5V2%3Xka24*3=puz1*Uhp>e&&aWc1diIRfC!T%$ z;P+R3Uqb+V>$DeMYkT!Mzy8aR%}eHe^Uc?@ek^xSW9;KdRd-spQ`02FK8)Ej+J1iD;XL=7tt0W9eXRZS4aOJfL#kt9S2$#>V2^ zy9>vT-SqX>T~9h`^M(!EDk`cfDj+8(ueP=?z?jypCtQ1NyS{x-zU;CQBStLw@yC-+ zJaNqE(f8he-}D(X18b9sZDsnIEwF1PDI1E5k%1|U2tw_L4ehP~#kOtR2~4T1;RH&j zK0OP+`JvHzit~oL1|m>eckU3ut#zO%s3yF_e?eEAV@zK^ErdLbC@}#5>Puqz#wm9{ zG;OO&W)(nb)1hq$sd3fJY10=(L$SdZkM8LRkeRPn)rrtn^XlHePL~-wGKvoHKZro- zbkhGlb&~cYx@X-FumAI%d3D_`?UIvUH1YALC+bfz1vZx!Bh)(Df$A21KI8an&${cb z{&T+lcE+rwTk1I|oqBXrcFtN^Zp^CgTDf8yj_J`^0ZpnKL{Z(2@@hD!s1T_V^12>9 z;k4ric5Pb}jyI@zEFKOCF99{{L7D{~ocmJBb zOYK_U09^_S9O@h(w&9akz8G@H$%j;Z^Un`fHMo{5E3FSc>8w)@@6)j)9~z@d7}w{R zVG;+28#b$M*9rH8hz}q_WqCzhDK5%K#Lk_Il@4QXe&|FarJ|^tTG`ghP~G~^p1J3n zc6|;xe8f?wUVqYQYu=*t#|NWkWM;vj)3D?{`e(RUdJ@xLA%1rcJdX5TtuN*PF2*C?- zWNQx~INggIZAD9$KAV6KH`Xxzxq|1(W9Yr=dZ?$*$JQ$-FoY-Q>RX4 zjQ#npyPqig=R5DdYm)AYy%1W8zy@=Cdq!P6AtuYtu9Y+&SGtYA`?2Hdpr9l_47_6Y z%pdCzVa1|V(S8G39rmk-`d2k5g+*G%T&4O|%h$&S9awbO#D@+%E0zNbpZU|v%S~s& z(Nbhy1aNOxHNxq}^n}L?LG|&%O;u0An|lxuX~%|5Q5qOIeBzyLM^!`%|DV0@j+3J} z7OtM%%etUT3U?9;po9_#1R`e;*knJF!31M6&*10$4CeXSfWvdbLSVoFgN+TCBtRmV zBq0#WSvsYQI^CTv$KC1r{^;qR?w+36*}J_v*`MpTI_=K%R99D5SL*5R@^to)Y`-mw zuswtUfQau-B2>`F_5$%?lH+3XpY*`;-~aagy1w3?w&sH^-4p;IN(j({D}Mj;H{CZ0 zG2Y(jo`o%>1KYQ}@PqGua@2{Zo^|F;51hCAZ$E!z>3-jO#eY0yMJZ()A!p9~kK3-B zS^L^^Ppz%%jEp_)%Qwy-YG#XnXK$fpWoJQeb1y}#`C!@lGq3sFl?9{9tKNEYdoN&j zS1)AcWNCR90Em`MIij$yyEkvfF;houS>J)O&|0I;yyflBj{4iTw3l?T3m2gTH3ZLSbUK#-Tm4x|F*6h0KlfU9glZ5^)a15+?SiM`@oJB zOLne!`~A;<_1;UaJ7>!SZxRBu`ki0?c6lQeeobGi`GxoHEuU`ay5*R8rSEN-H*ZYC zXHV^=#9|%#yPq$uq5uRe0))oe8f>n|d2~%ILcjvc9nMaZ0RZTMkN)u3dv&o`PkZyh zmTq;1izy6JblfRNX6L7U^^pbc9eVu9lb8ObLMe~k6)!&Z=9I5raovJFu0o6A9c~v-I4mCz)Yek~>#!3~oSacQ<=cxEy4BdHoG|A7C3So- z#18KM?DgHBEqnXayS{bBO&4wZ#veD!>HdWJO1E&K!13(8$$6Q}?yd~dEusj9M4n-? z%>Ai&oz9zXx_)-EDMDxXq*M`I3!%7VVA#=Q$RM@Jc68lv=`YBB7<1jxVS`O6RZm`% zrQx$RYcIL@B9W^{#J~LIFTH(zwY9a;&Q7{#Pu~6a@A>`jW1s(gysoZf)vEJqYNlR% z@yx5QhLIyXe)l^&FRyR)>L=cQy9&UHMBaGgjkdP7yu3U_y!+0(_Se^cw0wC#8cBF+ zAptLZ-qe+aV`!#Wu)Fa?^AZ0SY-X!_{MN3*ZI_@pDtN9O0oyIT*` z)a|V}NCB|n{XaZjc=cr`95E^{kF?grBIyL;YA`zlR14~xKm6kpBd_@UNz=zpnpT3b z?zRK_s<+j44eofscx&C>eU&y!W1iMm*3y&5kAj9(b#@{I0JNie_0nh7e7OEg_uY2( zNfY0Gu5NF&ed5$9CDy)r3IJr}l&Pb!W_gW2E^Fjr<41IEe0RxbJL3RW>_8XJ-~=MG zkxEoXva++FueT2Yuw&iQ<)8b`c}I7wd~A6G0$^WnFUiWz(gTv{xO1<&uyEazKm2&= zU3Xo3<;Fcvu93rctL(6GR@L8^e6Xnz0iwk%HWmN?Kwn=B(zCK600xT^>x)5FRyKiy zo^C=!$7Mrm+wu0Q>Naxpn7r24cXc8FrPQ|VAZ^%Nv$>-6!qZDjBC(pP{V-!(aZmlm zgH&miNj`hFeE4b0y$co`pFeL@bOG+jI;G& zp9NP~q%?*Shzo~Kyxr?;ZNywl5EltJyB;CChZGSYPVGUR$o7L&9+1i`wPwzRpTi`M zpRVOFk5c_`h)5(NY~GqRYxnQ3A3b^$fb#~~zJ2?$va)DAKC+^s?AT-J{{4GD`z#%x zl+u|eoG{|9yJEX{zxD9L>y|7zHWE4go_m&@fBp)94!*9xrKKf5Kc9uj|9RKlYuByo z?CkVukG^U}`tGx8MFJrl-sqf~4vzIYiN1^mfbNyQylthZyz!lfZ+?e6o3QVN`)_%H zX?u>8)_?GuhnCi(MV$NxlU2KU%NvhwdBad$ym9s4ezp2ytcfeu`jJ)^vL#gA8l@?;yM0E+Qj2e8Pl<^u05Vna`@;>?Cj{I zwB?gGK05b5FSz}>_)9BmaMUpuUUGQb%Ewk7bi-xBgAV5xw$#@4jF@%W!g;Zc4Lwj& zlqK>VU7a0d`kdpBSoiMEre4bVoSvBpy}i8@5h1qsoflurp4#~C#%>^lKwob!WMyYZ zh-`nOWoKQxuwdn$u4@=c41g*0p7qrqzDDu9o>Fh!C%-tg%m7aN+4y?^I)9UiYR|yPZIZt4Yeo zf8UPxmsZTb;>w#la^GEF+ex#E%B;Q1K6UdS#2RtbWmg^9y?sY@Q%5|SJ9hTjCl>Wq zyt6k>8$Nn#?Wx!Q$DP+@zPV~otDRXmcEo`d%XcZBo;$MaJs+;9JAL7mqwMX^e%gqH z5NQ2$*~jPIvGC5Xkk^)1H1%Z^j2+prZuyoL1dFG9SuPF9n6vNs*5@+b{>4w1R2f7_ zq@eU0hyc-v3yvGxy6(@btEyej*M797{`4~z%z1wEC;IBgcn005wR7u4iAc5+$Ji6X zOas!yoAV3`43P&REVRaJ*_IPR*cK~-r#-#BFTVWp?YDeI6euVt*jH7B?d^qaZAU)% z;K4fPV#2bday?tn9WoKG^ zs-FNUT5#Dpqj$de=-Lhh(z9d9^PkSU^|JFm*!)68%wY$uefP;f6kL75C3l`YB1(I^ z+FGmEw8R0x-u=eYuaCO&)a$-_8f~rl_}LBXYTBIH4T7yJpa0XOYcIa==KqTHHtbwl z``K=niQ>ftHu({+ed{+r@4NWov(CHrl)N;%qjAsj=RR0fB`toA_IC7^9DDBk^9ysL zc6V$2u2p~izgIqJK)~itpZFQQ=+bk}{^GIu8Q68O`m-0;F5lJVbsxXK?c8h1 z*SzBpX@?EP;)`}#58{yYFc+Tkb8FKJ!3 zW>;L6Pg=cpP2IwCPCPn)bwy`;PsZ#^zd9T2Sa*9<-QF#)FM9O-4Rt*TBxlYEb8~9n zUR|e97pqvaw)N!sCmi|wzLt)T+!N2d{M@1uY1rF#VBe;{FZ%mi)gf|E!wg2hA!%)Z z<_#Z}Np_Q}K}6fOiBu`u<0KM^Bu7B1f%NqBAYUxbVnrF za}DrT#pCgwo}TN!d=mf=BzD{e0L!wp7us1B>;*Aq*Q3#BZ`@`bV_8--8kNmCd&IJ= zCm(-wTzNSw^OK+anE?g^5MJhuIuXBo|AK+rzfwq z_2FZVx$yPZ|8L5a|7&Rxr>|Uj<(1Dq`z%T`@oUzu{p#251<&*f0kDW=5yJ@zggNXG z7-||B&80!CLj}p%B!t{>?bX*`fBk7^oeQSSkGh2?6E6j`$6p2jQherr{pgA#$etIz z`_R(;6aYxlbh`w&1bc@KBmUGg&+$AeQOxP>N9|}j;!|t5hYxaePPtDm0$K40%WC*h zWjXKJsr1NSgsUo(A=4S~lU)NazMq@`Trzm;wCfhJA|%4DXnwPNjGMITNLp|UODHc zbW5egnVaBm#u4I1=af?0jst*mfCwSXm|K?B+tb77%+JXzC@3f@Dk?249W`oHX=!Ou zQBi(=eojtKW@e@^c5-8%dFGk9bLXaUh(@FAFDop7F@Z>LTMInHkl*)$Op|tAs%_i% zJ@A8H{rqQnxw(jV@7KQe>T9p<`rw1HhabN8M?ZT1si&6h-n~0Bvo0f}JsRz5Z_ka# z&jPq`(W31SKKR#`mIiP-WYnlpzy9^FWg$kyapmP<$TOtS94yAd2@K|7MCYejBg&fvli|E&9J%N=ux90 zmi5MxCD(rb^VdK7Y&t+&T3TC9POojpdwOg{5|2-y^!n?rgMxymfBy6B05JeSoIH8* zyYIeRR8%B8kCtT-AJ5V8_7Tvtfh*ze*sz*KB7zU_aMcG8oh*BDaYnzvq`&%Gml}Ez zaWM>tgo_ia6ZKi57xPw*0N`!`W2_-?L#re!_2Dh|1N7 z7G2>A3>lN9${65kEe&{<{U5$M!e7Mz00P8$XGD!w`QBLUU}tA%Pfu@OU%am`pVEsnGUh$>&^veC z^=E)qfSjD12OfA}=gytu$B!3;3D@ah^FiVR0OpLkD;$PLg85^JWBLbS6jqW5{g|K^ z0H1DR#lkd@q~PN?Gscf2h{^}}X`{Xm1(KP7OTkP_#Cs><=ze?{r8P=iw;a1}XbS>T zKUGq@=csf#GFBaLn7JEz`JLvcnO>k(%aj+`0*!R zdgayg&pY?JFJ5!=Ew@~C%{9wE`sk_O{qB=bKB?WmKSJqIvDlaHyDzqJ<7@A}d-U07 z|M12e&pG?-!oot})9?a0v*_#AZ}6pt`L=`rv4k`4`~@_xTCtpCo<(7~Et+;4)czJV zBcGa5&4e$=nrQII>mQ`{w1$5f5UNe)&k%Q?SD4x25fV6~X~ZyGdXRx92c(Z#(H6N; zsOblF)CU;v!393QhNz7HK?Tbq9s?>2x!SYD5!pmpMHc}8P_!xXBcX_k$0@;=4LP|} zr#g@LcOupht$#9wAPN6`kTgYU(P}6SV9s$)1o4o|TD+%cdsZ3=TTf^Wj zWrst4pt$YZWg`iCmiP zv%|rXQt^D;0pG`r8+bLq2q_fu3=T+7ChT#U16sVL=vJRRwv5k9s$UPg6>=)1pTL#5 zBHNM-D|I=3x+%HHz#@b#^9RmYaOKK%^o2Y~L>dE7oh@30$c&eZNaMeXO8G5ib9nC= z>*aDy)%V7-<($21KE5bbk z0_-e!1mHWGTA~JUCT9WB@l)l5jZkWiu^7H^DCN;Pkyxn-nbt8tsZxruK%UvtaUM^5m0v*IjZS%j6Mhql0Jv^5O>SFiQkB90q3?k5jD*wfvenVBgsgpjL1#Oc$f{q)B_ z{;zL-v#P2JyaR&^?)Y)#KY8fEo}Pr*rvBvNAAS9s-wE&!LIDD#70o>DtTT?CF?sCB zoJhQ_p=Q^XRm)!cu%g4wpalCm?oTrE^n32RdaAYe#UK6X&HZdGxgc8qVmWG>5M--K zy}E;U4HFV2p(A6`i1ZO2vnet+ij{Q^H|W0#@C^qEaW*#;L%~>yu=!PMq4rtdpZUPBU@&#Qylih=6XwoT%VO74Qi@=5pCQXfp;0CL{o$ zsg5MvDYsF=YWomr)VF>Wg_Lb?MP7&4PpJmCQQHB6`!1qSl`|n+@z6YcUWGX4L6{`~ zqO3ndK!V`B?uGztMVh%I(34#rdPuQ3=dZ2-1tijxku04EKr9Q{dBDzHLPX|J!Ra}^ z1^@u&9ewnb|8e>JV~+sn8leDEf_QT==`?TuYORWy7UHHD}5K&BYZ5f z(d=5?5b7Wx6cGgzw&)N6!s8Ub0vPzyLE>K+r7!-RCGyjR5br`Y;$tZTz8oUpsBd8w zBunm%uw^q(q>#N|HM?ObBgDU>Ouf&Ce2{PqEey7*^ma#3VIENj7h};jf3=gH{)vca z0im7&(T{j9wUFYubLzZJLXi8juDX%^ridjx9WeleE!WaJ8pkJ3nsnD4w@o-~Jn)f5 zdV0w5$HUyYxM>p^H44r+12Z!n|3ZD75c2+qAKd@I16oP|K+6A1nFjt8FC(sSY#>RG z7pDwb{Gr_qcJrB#%$_;3qobp@SKs2w zEQmLJ_Tt}`tl87h70DkvacW`nx(+0SSea!DF1+ZR`A3Y(w%cm9uXyc+SJyPefaJ_L z|Aq^XDlaL>&B;o~?#4aq-+JNY5BG^pxg!%V{odo30@zhA{ovtOtL^krM_q8)c_&OC zn`d>_?_Bfd^DnQc>OqK%nSa?uCrz1HR+67(#oFpuJoA5l+0+Y$5JB&H!2^vU>QkXc zuao~4vgAm+jmU+waNz$XNppK2hB5{N4j zC1zGD)r1noP@UpZm8hh0JMOZMj*Rc2(kx1J_68)udwX~2iwVsri z99Ln2sj+?u3>{18DH5JJGpk%p(zNJY&NDIEEmuk%vG)=pf=ogP+tSlvze|OqpNA~2 z3xE_J!IIp$pTdMYCRsA)T7PKJ+S=OH)#(;UOM~KKSihd6rNO!9!pxbNnQ1Z1>hpw< zzrXa-FCY1JND5_xu3ZzemtJZE(uT%FVt7bTPmjf7EiEn4Xf!}{*p9quX=&cZ$g5Tc zge^%R*|ScYKhgqPv-F9_-rURfuI}2|Qpd!=8hys?U%g^l7IrruI2bJ)Klg&$%18Y2 zhfiZzBiqe`aGZYZAuV4>onifi`u-fQ&r$rmtT= zFCY3^8ycZt%#o+xIKIGs;PI8M(Q!webj*}AqhsiDc(I&&aO^ zgJw_^hY=7_wE^7CWobf%9_jTQq!g*Riv$S`m$OYFcvZ8nBdhuDs*;uAPz%Hpf{|QT zTKMuj)>z7$Og&q;h%%a&;|iR>sjtWZ5lyH+y;On4CYsQljB=A$qB#VZW69E7iW7nW zaz@(osKyu}+kPOlU%&gElc&^@7@JCzGx8`9b(y{qjZ845?5sa$niRrK%aZ!6~S4QjYs>Y_KUp}(vf`#Wzn>H;sCwpXGUgq4nP*~WWGa@>!JS!`U zsTMI{7%>eE4Ua$Z#Im>FG9owm#7=8K8FJ1g@!|tWYED!aCc^N$h3X8S3>!CZo_N?{ z@p#-$^zvkWe*U`k>y>sm0}co{{_Vz1nUQcziAbto$h=6!H1SL6rcHD-@kN9!OXdn zA{(|i$*(FLSy!!zH1WcfiTJpHTpT{C^wX~z_P@-{nigf_hO ztM9(Bn?}9in|TjSvL2A{YKlTf?sIn_{*A+Zb&^hWJAj(!^IvT#)2}H6 zVgfL9l6qja#4V{7tbMr@TSg3)&T&v zZ{M+f`;JH?l9QcXI;u1`J3AhWHMO*i88c?`0g=ulT$6xUqb5zrAz&3Af9KDScP|$g7Z8X^<>C#y z_q5=YlB~QDQ3G#D{=|ue7Lc6TU;N4AU*uP5QE8DlK@6Cg>Fe`*Sq1sp9-U006;ouLb?Y5>-Er$JbLY$sz_xbX`o)j`c3)*>c;XE_Ie4Ja#?fi{Q>K@tZL5r{ zcUd-%Hg9`>#hy;&L2c`<4j`E_5*mxgIeNaU3UM=mgl)>#v1{e~+gdn{v}^Z4YEnz# zb-kw6n3NCPRG>Nukx!>-7U#Sn7}LJ>xJLNx`6&>&Z2FHASE!z>J0#)P4HnDDG0(Rq0A((LbZ@_Al4A)%(d zM1Lc7--TpsvMftP=Q4QrD;r8k<*sl}#s&z=@=aK_M_%L4CM^I}#U$`(I70?QTwEZ` z0M_g!8*ZW=H#GNHV*a1v00uZ^;-c6B76!0trLwZ>o8S4a7#9g2RFLq0g3!v!s&9Vh zzd>cG+z`FtDkQY)?%j?ptGD+aIWx2D+#7G|e16HQJxx6%bL8mB6Vmps+*-e{x(7#R z<>bUGK73`v!5Bh%K~Z*BQyVJgT&=ses~Zs_MP*|$VSgt?BG9t0vW*@-GCLQlm%s7J z{$7M=UU6<;Q!_;wO(+#Fb3kr7Aw+&R-oq9`^n5J>eej7O26|EZZ3g38q+rqA@AZIazvP#LBMtIB!(jqT>w6B zjY;%q2c+`vzOQDVgro7h0VHQEStEh$;1ws7ay298Jdxx?2ruEA@>5Ow1%T*2 zZ)QbPCId9&j!%NREQz~b{Bls|E$j#?I-Q5ki*6i0INirxOe6%@q;ez@0dS^?<);0M zm~#Or{RMDe*F|Ymi96!lR`3|_lyrZ}K_ZfSYCh&%yDqd*lwUQcVDxcU+>=98h7^H|9fgzN3WHglhORv zL*IXHmwv#x`;By0Y~9m0XG-p|H#|7yvRFE-d+hsvdS~g@`BxrUy5K86Jm%W=9>~ne zihcU4dw;hs1|A6JfvYSCf}E@z&?se+AjJUzU=aJz13?o*P~*u&VY)yf`IcMN9 z1d#%D?4PnpFjq+s-eCVzz;GGSLkChFog)E59N_116Zsf+N~xAq^kz;BC<0Ps?yXSr zN=O(@D`=6tT`B$$NWAO0la@AbdwGbhMsA7Y4=FZc&*+Vjf2sL54Ud^F=~?HlrhMb| zA1(S}{VC_2v0&!pvZ9=H=<8@cuy4nP%03HX`j_!TM7eGqa=7Z*0z&!9)~DIuBt^ zO6!Ek?UJs7+)~Y)8&YL*R*jReMFcK&#_VRs0o zl%l^AFX9%jevoK4rb!YCCW>w3RdU70LkB-T2MiAyK<~bAFc7vbB(mvlgG;mH#Otc|MAxC?>@Kv zAJ2ILnFwG{W#t`myK7g! zuz1Z28be6m%HQ1m33Ei)FcgP*N?{%^jzG}SgRl16R=l#NbJsXdVdx$<(Gc z>EI~CL)%8B*qjHbC(VT+&YT2VmNE+~Z=$5-+l`{&cXuFiBYE3$EG2vGlD0~?YDM5w z{Xui2rM*sqYWyM4DKElkR|ptI*gAaf?tIFv);df6qM37UYurSRmsz^d`ds&Rrzg1g{1D-U z&Nd>6q}LZT#}?kf4R$b498Gw6Hurx!bC!NcoZf z?^ms;y1@VBA0I3d)!-zGl4S)U16sABN&Jw3<_junuD`SpLWni;#4rEnf6Ok-O}7AP zUw2zW&F)Q~ez0uiz7AeP(W!TQ{|iTCV9N)Ke(?K^-JBjW>C*eZx3IK#_mZFe;`BKenJ9>PPIep&xD;5);$`3e z-ua{Yb}jko&tBcxjQ{}AXyIp9ZuBTz(&ND(LnN`a#LLH9ed^ONPf6bVLiM;7K~SYY>cb;qo%g7PWz z&b#KWZ(Ke#hjB1E>CDq7XAl4@|G2Y`Ef!l2aep;?(gk+-^Dnsm>)*Lz zS{Cc*^uy0S>xc{jU=F^{xOLVSb*#W3Lp7$be1}-9A9kY?8*QDAOJ~3K~xMiB7=dErKT}e zP1Rou>uG!N2j!+Zd~`pQf7EXC=>^SfF>KUXx8^81!o^k|r2TB_z#xU@Tz5I$A>bd8 zQf|~4xQru2=;pB1yWy<(D0-g|0$@p&n;>c*L8|Zu{N>-&`~V0fJiHcgg)b~yq*@#c z#T1luG!Rp=`UljH$*3D4xcP}Sf`ZDW$7s$~Yhzgv%jCA1$PS}ixHd8oiB0b?`RY!V%P(&=-v0RZxjKJ%m!(zk2V)(*&=dd8U((>ww}^5xDBUDoaF-+0KX51_>M6Z*X3RNf5ykPoFT(60d{eTM@tOUrTae6P_d6JqbK4s);`3LT5}GTMTiC3DRzi#X{oG~rMtpwLZp<&)p(t{y`qeK5g8~< zN00+44^O@JAfPS&K?I*R^yxN56pX>gpr&Ko0jX4lNRisqwr%F>Q%US(*FE)=3>p|Y zoCpTg1BlL%N&vvtRN3A2YgX^>Mj+9=yew*C;qj-=$b#;T?>zI$CkLrD>ZH?VWU6vP z+nbtV(ekryyy2LFU^*nd>?UlJQx+l`F*v)**pnj`!^b#WeRFhU-xqJ1+HR+IrMN><_lV0=Ge@mlrcc`$ z&88^Gg8H}0pXk^W#Q`q!3xHlaZg4Y?8AKxAszPSr30y(M?oACHX~i=`ZZMAVs#13; z1L^EE^wJ=+>u1M$jELL;@B~ja6_h|vt-^m5V}qXQ+BgVV2y~8k!cYisGTw~Tyjt^( z{PHWO0JAX7H3Oqg+x#q_2sN{vA{B*<3^BkP5_{9o=rg)}I!Z|M15piMtM5zc8}%sP z>%t4<7!P{mXV>soV+jsiOvm9Xi`bNIbYdc@)a5iek*Zb+BGF)p@{Oa)OoR{%?Fveh z7a?NUZ{JM&;)5hvuDb=CDl#OunMSG7EOsV1ke1%wV(aCm^dV`V(D&3aBxQn9>uU?W zimcn?L$i>Kf5i3W+6~<(Zq`)zoHpzOEVk0LyT&v{^i&Di(nn&%L3ZNl7oFc+K@*=O zf#lEc>q1VWeldXyLSxt!;Wk_-U-Mj$oDE1-_-}kMt4^{ zebzOT`M!=0r)V{LJ`88JTiRTGCsNOLUVWx6#aDm*#Ct1#s<7A_E5(k*yNhlp(RJig zL-K&(){WH3KaS`Ym@x06tfcwb(Z;T>N`gCrzgA=>qm&}X=9wuuQMKF9^Qm1-wxze7 z?72@poD7O_F;?AWpzhmV|C%K;B*$gxcM>`k$cOM>1R^4i!=9;(#}K?)=G_J989v}* z^-z6451e_NIYg4%@(dh`W$hc=FdI!);FK5y+9d#P~x#`_Nyct(ue2@qzu# z_0ixs5njy%Vdu-D{V-#+0Qf{6`d~d2;P8eZlMh=|e+s0Btlp7I+^?{l=Oo;+*_N}J@9r9DSinUvf;lfn2@dbZarmdf;2yNNMG6EM-M{w`^Brt^;L~h z$tT-Xb83?ZN^^X6H`<(;|Mx&qN^_>6J4!B!{7{uN4qMF4@$$V&vnX=oCA_+@;Q_fw z_zim7|EajdahxcZI6@^3G2eI_z_FW!{Z5}&dw$iin`GMv8@6z{^1hqspZgv?{(UlS zS9Q`vb~=x95~3ERyss+a5yic+yc|W|&Y!hIf0#s>>2^a)6fs8hbw?FOh6aOWmW;dL zLC|&Z74xdIsiNL|;HDHmSt0-<$L(r&exm?gUc+I9hvCX~c?<=}xBm6{rjGQrMuDCk z<6y_R-(f84u$-GfoWVw&%!CqK1m}F&I%`)Np-OR0E3{D<0JE@)jUv|<5CM;}!gOkN zW`cJp;6R?_ckdw*6g(3v*?Sje*$VSLEsT|Jq+GBCTIaCCBaFqMc;1B_g%WlS` zfG$srcUK8tRAFEAKD5Ywt{0N@Lk32agjaAJ@BE`zSs}~XK%X0CcKaAh%PNzjB#mpWnt%B)Z7#^ zW#2q1!+#F-&&3)p_O!CJ<@A=i-`Cp4m7bR<)Q*kQ2VFHC7RksSk0(`|>z!!qcM9=V z0A4ijHxk3I0{7bx7=jZG8xFAQh;Lwje@dy)RNo?1e9xva*#X{&_+W6c z{6a3l#vRq?@f4mo#lty_FHL;wwy-!x+uh4w*RSXH`aT{|j<61@?bh?)wU2}Um}Ot+iZIFDDZx=nvqelz(%SGgZq8! z<~$vBCRdSr+WJh+74-!^UhiJiMOR#z_v@K#4yL)<=d?q?=Gf3xVo3i}V7sff>Usro z{aVQH zuvlB>NY*czo-KqHGAvmsvX#dZmF>69A-&(8s8=9#k-SC(dy}UNeVq$Tbr1x#HzpD)H8;Gm;A?Gem3}rhU$H42Gt`j7 zg&fDf6gGfhgxN;zZwGUkR}^UkCxxbt2(E@#omRYRAo}Q};gkHzjqlwHc zEG*a5`fBT)g}EQhpfsIaHMD+2J2)_#`X!W(Vxe z`mkWN77wMBR<^{R5(EO@LmB=#J(0w!)4z?+t$Cy!hUXh%;HfVEYy%=2;!;raQfwbz zhx#HIT~a738~bH($V>eWM)3h!PrRd3iorBjeVAy+=H;kWYw22pk7hb={BRGLzGSmGERin=aHEV<(2QJeu^ z98J~b2}`mMu~I>EW61CV6cQU+)qUx>Lw_mor0IDbMVk_gFBAe^Dr;c%cYF`gvJ?9Y zR_=#6H7d}$ZXe+SNd+b>X(NfslztJDyux3Wb=PCRBM3(=aQahT0tJ;9c31;Vr~fW) zME?VMM$sq$b_3vWmueq1_#fbE;S(w^2%_!j>TagmckXR@RMFa5q8oy2lm0Kx4V z0spHd0c2Td57v5GULPYF+$bvS*}zbim~|5M{6loq{qpaNuS|PF8x;sjtnJe$eOPrr zI7Y3FV0%_t@AKEUjTX>^0Y8kCiZq^HKR9~m3;dB9Uz>=04%qw-uAcl~#1_{cFJ9N5 z?ELwQg_0wEEC!QWyQYpAlV&|)0udAntN`YZx-)b-aN(!+pW@-mx@P&x1H4do_y5O*w(mAb;Dy{YcS!%>Jzkrdr3Zxc{~SCB+W zBfJFnH0ibwEdj_|)A-Z1ye2P5Xf25m9pr>khMt{lKRX%>@DE80D5_b^Lj+&oEVE4t z{e}LnQjz{m~UZDWH1qz{VBs3@VK@Wqje+zR^s6yygdr8|$4!e9Xocp9k! zeCpUpAZFdr7D*c^st^LMMvtLj%+Pey^vL`N^1BJj%C+1dl?Z0--``QIYg41R`cr?J!gJNWx1=4D!NLPr&uBWs z;(OF4SkDJe@JQi%l+=&yPYWh(X)scOL2Hv1b&o<#+Z-&AA=%qm^36B|VCSu_a_!p5 zySd3a{galFxxI6Czg)>~#rXx>=egVm{&W4A*>epwF;iO$)Z}qhL3Cnt3eDZQzJ6CZ zqO!4-ih;v@xaPA~wIDR~ed znxPza85+iv3`s!nUqOTg&ym6v;rmfzb-Mjh#cd5B>juk2i=Q&qXRY;h&`1m50N~^O zeH6at2#yeQ1M@mEYsBzya%^%76>;!H4xjJGE1gJgsNmq)P1`{{oND)Xp$5Zu)Th&P zO$ob=MzLT!x@y}4Q{xb>tCI^lTuow83R>ER{2OADm|I#ro}tkYPR#iKqIMW2h60@N zW$^>&C%DR#@i11x0;IQGBVaNoGZ{K%N;icsJ(cI<>Krf&60pzA1#pnmWm3a2sR*4iXl6E^~>;v=j}wt+@z}S zjw2Liy>dU>(a5`rZ0z`*URg=nAE1$vQj)^rm9^DdY~R=e&Bs%0-_Fif-N)-ABH@uG zmwbn!s3#{uxZj-Utu0A3i!GtKM&Bj;>j5B?beUW z_NymTYBsByN}#N1roL*oKOP!4b6_)lzLdbmPCf#L_+7_{$>|Ll#^((TU~+VZDhS^T zJb5<;z{lqy3c?1$aGV1$;?N$ImXbP3f1?Wu_eR9QEQ8SEJEnE|HWCBka~SY&t@wYd zfxP^Jl8*HRsIZQ|S#LZXoCLy%lOf2_`cQ^PLfD2zZxA`R#dZQ~w7>}c5wlSrv`X$?L6Qm&B})eT0G^D>>sj4G;c zKTJZ$jvB$4om~Y31ovu#g!7ug%I0`7z_|2eSeRz#rLK;fKAtN-Vq6{&)40F?ole^g zp|;~KHB@qCBG^=807tfc?O}{DzQv)YrkZD`*4Wuu!o|f64FFMpzWD@e2wxfoDM&Rb zEdvh7ROZ1dRXs0(v+sGzZ{QM$+d$7=F@S;TKwkx0s?AH*PF>o72aGPtR7j=>gpSuZk_Kye>Bd{&ciVT+Io5* zF%PKy!%uDP^_7(cP=m*<+1afvoY>(Iv2>=rFwh_&@!jB#gnR#i7C8RN^U&XX!BYxK z?N>8g&)ZEk+ceW5J==rD<{bw##O7tKZ}(wZzEF&f6|H*=i$_9@k(W8co1H zpy)s@@pTlmUpi1ZFQEa4*mFoVEmiBH{ZzBEqc9Yl^~6ztn~g!#W72@}lpe_(Emq%L zk3F6e`QbNoSUi0m)!TWQgc3Ja`e^VQki_sci7X={6VF5W$-vp!TS7|7&`@1{c}1yk zIF`tNb`X0yjh~N&MTK;z90PUl#zRbOFo8m**=|!!MP+$*RaZx6VQXu3V?+Ac$I#N! zQAlVDXIeQR zXo+xBJ$b&_6Rvj|U$Xtl)a7OF$q8y(#-vHkT0p;<--i1|Igj&N~pyrXD;x zKy*@+2|@RLPC{qa*jX<=h52Tv3Jv6_;FF+9#rM*L=~xi{X8@uSBWY@24z8967>Vo! zZpLPEJ2B=Mx1=8G1)Y-C?m9xeIO>M7z6?!H>e82}nfGK}@E)bwC5SuzS~yl3OHdiii5 zEaG@6i9`?}pkn=mKc7Zlw_guXh;MO9-dN`O25e}o6-E z30xg}@NR9)jnS)}Z?Uu&J@2DqZMdyhe;8Q0>iUWpCu(r%s&YE*KHtWwS2M8>7kaijH3E=EQ1O>4O@u zT#HZhPcF8SG_l^R|GqUh+!Z5OnnwEWNoXyWwB8*&J;y|d*WcWm_znp?5F^9+yA(J; zZJI@DvxwB?@2Q4R%e!D3+rtWqs0ItDX=bqjUT7EOO3TtVC+-n!cDWVcZU#{schQc3i|r`T3TyePaAhbjT||i zhpT*V71VPCJhUFp4x)DQpf1Cxy3+c{Il6UsU<+0onG@XYU8VJz4=xpp z3abziS&f&2@&*l!o!~FN+kY$6K7L3q8wn!xL@SrNz+jZ|M9uqglyClz;QNh=k`vOD zqebbEaH#a0rqAZB1-%Oy&R^ao;m{JlxU`nfTVI%Tqwv*RS96oR{5P=ruU%1M1(Z>J zIKd~A1!xNJAk1sD=MZ6R+K99hg6tH>$#t3aNmCBIftoeyf01(w!!j-%KHYQnt+K_2 zW~rD6^7i=&Qt*`fkv*6l@^tXK8Ow^w7|Hm26^gyz-}hnndK^|Mj&l9|^!154gr9kH zZPzg|F#Nu?nsB!Co z)P%E%%V~05GHzNi+FF-}_H)63=eTD@L!=-n zm4ARQKU)J!2`FKPM^zuoNtvqb{=j}9(Mv1oTVU0OEBu2PiyQg|El1F;iYLM+%!QL- zeL~{1)mHRKPJJ{N`T|Zrqkw2_O07B!nKlpO5CO6j0T46>ZM;mKTsgOUJ50{ojgUl( z5=t??NsU98lluVC}@jjNVo*%8u?T#~anC$e2`1*pv z@7vL59!!ppM~WBPoav9(JAqb2FE112!Kcg1OPu-AZQteWM9Qex!9Dik)m2TLlM^Dp z_i)>F9i61R!qs8Kk%50oI7u_(kMn47S_(K9rD1O`7!{=q7&~qT{=U9yYLA_5&a2Z* zh0^pr=X0tJ_cdgc(JjX8O_rc7l9~9>8&P%RUNg6{98sICVFX2xK_r!B|3Dt!abwys z2#3~BVsHHSR|U*CH6%}H5jSV&M5Ll3peVubo#_-Bv@;ggi59?*>nGFL*nHODaMBM< z4~LjU&z|;!b0ZVH-Wi6Sg?e8QBu)79nMCMH49`ut>tqiWi>pLb2jeK5FoQ<5hGj80sC$LohQM;vTfH;$mv~89R{K?`r^@O0wHN(} zB4+jr(Jz1>p|MbJzfwAQ+-KUI;HZu`Am zoDXYLyzokP!;@OHtTrn&)U+toA})9Ts|?PO_Ek%1tAT>1^1&jo%$N z=FRP0f(jb}6%~;p#1BXE8MP|SM7k)UpB5R3zn9??rVz1-8C*S&_aL1(kW$-D^Vjzc zQ}zJCLK-EDe@Vd>5(0e#y`O5K4v#pc3k#RqP2T$M3dkr_ct78pysx4Mjf4#v8P2^m zHCIncb3b=Ni4OPo0fOe{N1&&AT3Qv^D%9@iECL)G4u3<5{93K;lWjF^9<{8BF7MOKGYrh`**e9~##_T)iJJ&Q4B*f|V!+pOE-v z+%GGNlEg_-g(cnGmRjqXcxWDxCxSDapz!^=J5+djOteVRl66-6JUY@I-<;6ul_oW|zk%^Hs_xpbh_hXfC@OSAu zxqQyAb$9&@N$G~P1Lk2#gkFG!69>6!RP>Qh$B`L@1OTH_iEd?R(V8qm@MoY1+%%8* zpB8R2JOU+gfF+9wd+Odh1s1?Gv`JA^P&zFtVAPy-afH3pWfKZGu&KCtlk1@dn0+ZV zQnW%fLdl93Ly-#g8zQ=OM@EF|Q5N*nTutrvn7p@~e|96v!)&(o9$%{V_jo-y&9FM4 zFI6AX*VB6}KC8*b3bQ=}o$+~9`1x~D-0S`L{&iOCg|SR|cQ;s+wBwrDlawDmmeGUp z$v&^4^zpKCt>aGwAPSG?wRzpn_)53%^*0z3UCQLh2gwppZ%$N ze&ubR(8}#S-G=ii7yrm~cLnV1fFWbg88E{^$~8fN+f5qqYuL^)hJ|kQkWJnnDdlsy zq;tY-(PllwTjSy(g8fdgzXvjrckJ3%fZYsy42K&=5(5pb=;e}oOyR`D>HZv>B4J`E zy(Ow?9N7^hfk|RV!J;tX0hnO4{aBA{lB*KghK}36TyOECXfev=${Tyd9`jliD~S$u zZc?X;5jq^^O@OF_@W+Cv_Z+=K4;;vS$M!m&FR?`Lv-?v2AHb!M`8ZGX<)QP^3b8U2 z?ftwHN=ebrZoAf)`~JM+xHooSF48_%k}8XM&}G+s`GAbsiu6VTCH#acJU2f-6ibwv zo<6#3cD?T!jW5zISCacO+kOA|xYq3ZYFTP(YPyodE-ev^NI|}eF5CmJLdRrLWZhLM7%)B1i;#8oMBp7u8;(Gw6Al!l(QKPLMLUy7+JkTgu zP-{RsQiGI_v<3PH5F!jxjWsBMeT{0#7XiBHy3;wSy8H?2&JN%2*PU{U{yilh)eaa1 zM*-isfBPlfPEQoemSDu~)EwX6`r#Q8ocpz?PKswFbM&cT0XCnlEiF$A zDhj?Y$?CL~))$hZ_#JWaIa7M^cu~B;VlWRyRbj7UNM@`4yY2=}L)s94`i6RjPK#rW z*Rje!pqeyzo>*4P5lA%*%4UkNEHQ2YjB%xCAv)-2C#6Im19vP*Je3pVk^jQW!s*+9 z1vEa7x{^%>sUF6Z2!ET{!<6te(&S$1qe6{5nkMHVb|^m3AIy3? zl-w5zU|W8OUJ z#q)bTf$#vR6!f2k*g$=`?W&ul;|*%4!r1iqX04~S?dGQ_;#JSy?%-h^N;uKtzVxqA z^zSJtNg!i9HMM0>nd~t78b*?C zrDdCrHvq#6P<6uM$Ad)YZB{KPN-@=4o&BO8yIsY+ITm?!Z^6(~UaZI2u#Dt38?8xi z-;uP;#HdUyz4S>#v6U^SpbLMlX-Lz6MRP5D>MzimTNP!y4$8oWiTvNYPqiW%8L-ydeI;b9*NHheMzTVO!36I%TPcjOuLHX|=#LBSzTmAw1{QoN;+$i#!ZGez6L)Q1)V) z4VF`XKdKhqz@#G>>e7TTM6&&h=@lA)k?Bk}Jo^>G0P4W=kNiWw30PLr+@;q{g5c)w z1y9=~B>l!F`(9^xmjW9a9Xq^to)!uinV!~f@#EX8o;6p%T7P}OTL=)MCiXkcE+{2b zhM7Q?fbo^g`m2$9j#`$*L6Z>(jGdoIhB~ZVTjK#8FoLW`pm`Ivp*)?0{Z78}O=9e~ z1mQ@EDQH_&TrB48^$K!A5s?@L54t|YUksE6!dsWEt*x)Gt)ns-A%e>k&PpoSgOI^R zdwB$59;N6+cS32LIx7Bt;BXqsY6 ziuqnw_TIY?8?yLbK}Zb!tE&Rc|I}dge!L`}d0evR(*{x^K@=x`Nbb4B)*A;w4vC>TIeY_k&4hFkaG$R<9XrZM`Sbm{4i^ODdrjBk)L6 zqn+NeZlzpOOf`)|vx-wpDdI#_SS&d^D3r1wyfBlkr)EV<>-2%#k%f+AHtfQ5u8Ev+ zQ+h`Js|pBp@F5@;6>h2k#%we=d4g^CbV;Kp?3E(`tqvuQR0}P8w~X&kIuX{lBops6 zwVVDx3N~b#^7jh%n%Vnv2Sx!8@-%cs0LX7k|G?IL!*|$LKb^&!ecaDGH)7BTWPjv+ zUpGusS%IO7A9;QJbiV06e&N35xL)miMBd;0eB=8@!=^XdxqwAluZ4n0%@&7IJX@K} z@Mv!Xqx&xvMf$z-t5#MmG6b5U>Slv9%P+Dwjmemm9%ooLU^Ko5`WvB{x3si0X#L7# z!3l*T_#x|`xDG@N}a zVMSRoei`-K=oQ;^&KP{=%*V0qd%EISaE*OeOM>N99C7ZU8zzp+!;6o~JIjD_MB-71 z>AN!1?0Hpc&^RkecRAhuF`fzqB$#8~_)B(}%9kRu2VeNno4wJ{_B?D}fd!l&;X1w! zl?)8FfQD$f=YilrvuUwLm+YS@jPziZJ@28xS}&RmmmHa*1>fq`5^gfFBOF9x_*b;! z5DC&zj&u9_-3M|?!)8CzXv-f+3pMC>MC1lOn+p_Rj`yJ@s3>+G&#~pj(Hf)Z38P3V zt<;~eLH!FdITy}~VV35g>^h4@K5@M3sZZi>zcPUHE-DdHCbjD!2es7kI0X8BfDQNC z73o*ypbEdjI1E~xRTWI{g*1&S%NeAjF5;Q4_f;6(>n5gpuFD@f=D;D~IwtfXgIHl`> zP-HwSr_rLQqC%QKY~I=xt%RaeO`=BYw*~9k%F4?6Iy69L+miuTF0dUYJ(Llh!Ht`Z zOteV!2jU@v%yF~Z3C~q{ZWw3O58tCrEbgOj7suVhU%!aR8+U<7xUW_X7GEw zSHxdv+1{&k&%2K0k`6wY#CqY4rQZ5V2ZsfK-z`J$fNX&p=!*>LW&H<}@^2EXm6R$Y z-HP58ROYjDAj{AT0m)^vHfZF2Iow)y5pZC0+*GwMX-zlZ}jOM z3^-%fl8c8$86vh5v9+aRBH$>c?lu@(bw?G7s9*~dC3SUmb=2N|a$&^Bo`nSau&YwX z*?K{Mvam5&G28c473INPThO zQl;6QMga6y}CK(=SQ_!y0Zv9E~*ln$>>TP+jA}#HCgLl%X3dQ08 z?H8!(Ncfy6vFkgV**$m+^Dex%e}gaw>eD^zTe zjVZK=A#tT_{VU=n7m&n|&NuaBt5!|;#x9A>HWzByThJ&dZ~c~EE~4yNfJ=(D7=q?L z$aOsGMZYuI#$vFsE$bm1lD}mnrHL-kL7|`eBmgIpfYY-fuB(|Y@kd8n`1iN)*(8i- z4k7kC@Rs4g%b-Ll43);M{%)oE9z~J}k$;V<5{ll5GOpy)IKq;8dUkqSVN+9=;Lu2{ ztgQ89Z39+jp6Y-^@{YwiiAKBIHNt;VdFSWnn6zr36k3cl9)x+Qk9xZIU`RE?J>c8rD>PI^ifbh^+KG?5IT;LY zE?MuioI8KkH}jzBOuXyYyuZLN)j$0qhKZzNBG}H>ammSC?o;PdiIf z#~SUH{L<3pl^ZFUUK9}6nP{YplIar2FAXg*z%&3R{Y&Xeu|N3l5GFP@drKobD=Vsz ztBc#kN}cgsk(92kZdCxIFhVdjTBXIeZ@x)@^~CIKU2Sdnfz@?3I=+vv(L_*{m&0bO z-z|hkR1h`5VUy2u*N}ojjE>G05m63MTXQ-34*Bb1k%q)7dh9)N*^Xy9xr9XekvqTuS>I$nP#H(FQv)jK zy5V1x`7k0`(Oed~uqa1FlxUEfGKNGBI0+R4{XTshr7SRet53QbOQ&T z-Xl!X_HuBX3KamO?>c5oUF|ePke@Caj>Ryj6Ua3UT-NV(LT)sA%8A(Y#$SWAw7>GX zo8-7^JIa}wl4tM(7z_vDRLE~Vc7oW+(73po=PNTS3o9-t08kAs>KQsGR1zkG;{+A$ z4;F`a6K2QL&+{#4UVXNKAGQ`YCZ*zR>};STP(TJ;5D_K$3;+<_oP*SnPvaJQ>U`td zIj9_8QOX>855Fhh8Iy>0PUGm^uEhMubOgmH8Of65>xytjZ||0k5;XU!4aS_Z({u)6 zx}6W`r>J7*;NBVS+s&{Mw|vM3*>HUg-4%FUf5*c~_dWiZOy%hvk!0Z&h(YB2vUn6- zoQb>j?tk9po~QdWnX!9`|EN156+*ep6FH2EoE!znUYnmAgE)}>;wz781|L*b7N)E$l^@cX5X`FV@v!Cn`1-kGe%0W{b(HhA<;!r~ zN_>@5KfPuBr|Z$G7DS`}XK+zy4Sc>V3&Qt^5i{M1H?5eR|?ARLFPrGHC5I(=mr`Z!gLA z@54hP;C&8?&Xo6@jTE9gCrNXjsAI@wd8&iH)NgSag~aYOJWE{v{rmTDyg!WeLGMKz zEGCvP=d#+}+^wI5f%LiNJ$-NL!#T;*-H-2lUn0v|q(4YK$ifrf)L`oN%5}G2ms&n| z89qVuapj|w*X)sH?n7bS>2#K(E$^$%x;tu8G$o&Nrr~o#Xs?9$X+T{3D4Pn^g-g56 zZXL&6WJE2R3GRwy;adu38o5-$LLU@DQn)6IVM%Qh>OlqyO&v<>M|rl2$XvDp9|i0# z75CwB;ggnWlNw^M%Xc&X+h=QGG*~97A}y`F#ZI&2Mq5RJAMiLhtG0<{Db=VPRGUB2 z{w0VS{NYhwMsy#~0b1O&-|37_B|t*9Te5F6PNUn}@hct0JDa%;B}GL?jkOvdD&1id z@%hh2PI=$Bf4RQsuG`!#PbRjx4Be?9t11Qlp)%I|HOqC>S=Lp35&U)~Q0zor<;!Yn zraZ5H;#p|)1&)l=b=d^EL3TU*ZdFnQ+&POpGtkBAJEz4>M)AqUCTlUSZTMPkn|}rQUq_f6T*(QPrZyRg^2c14D}`4b zU-|j*@jO?ZXP`=mjlI1B^3soNPn=Daa#hggER{~1zt$KV4vduhF|ANRz_!m=yX67# zoRO<-aD|ofF>J1;e_gT#E(p#$zzmZFq8>{yP!wW>ckk!<%Zt`lMUnlFYM*_e<$YHj2O$n-h zDAQ3$vLr1)8czZe3x`w)*;1yp(+wfI=^=`<>HX){DB#)<%p(unMKVy+dQ6p;G4k%3 z`v6Ld53{CtakrU{@fOpM<*~PV+1F5xFT?G;K>fqtzQl1n?&V_eI7-I;!DY7;<@SxQ_3S3p?|t%W zqbCtd?_I(FZj3BpQvdB=soyKB&_R^@#&ZipCe!Ob>_1vJ!~o*{-N8~sB&3{=f4>-w z^LMcr>xfB-H8lKpu^IeVLFYc6zq@Oh%x_8w1H~ba>4)y&P?hE@)lhCp=a5(zy%1$N zmYn1b#)bzx8TP%OWHTas4eu5rH7Scm)7RDV2c& zX#IN>f4MBhB*)Kwcm zrA);Z;Nl?RWNET$aa$(4G$0&62*msce4#S?YPe$4sHwhUbXeT;_#HN_eXRE z-XNWs>QYADuKXPqD}LJh?BTgzZRsjX$0c+xF||k#`Q9H+W_}$#+F$v;1|+D^+{MSw z(#6_h3V-vv!v(`bsB*H}zakt|VkY5M`R0X^XL9Pksvz5E>D78>{=~Q;)ZlOWn2L%jnE3~;h=v>vu!!4L~}^qFWr5)$7!sJ<2zaW5xN zMrl^8o0wNmAnE}b^5Ud;)iDCh05lhf>)Y+qeX`@u6Wl-su;1=h*!HzMXETW8=s zDoU@TXSBSskXY$B2y6<~d#+E1pVnf$80Cs=hm7XCooP3(Hv(~bIecI5^Y0kWUq8D5 zU4Z#UaU!s9KntSw>!$fqh3yXeT&=v-qV}N6OV6v;=iPZMdPZ$No&l)@llenB{ny)N zD5&Pj(1{I*VTr4goTsT4wh`OC5<30%i^>o1b&=yF7RY=3CO69HE+#ewH~pUkdd!aJ zPtyjmi^wdqhY6{f>q28>Z`(z-Re$T-z{?5x_J3@Ta+OWNpJG-WTEfepSlH_~eC|-i zv^?1Bcl*2?r0TjYX_|vvrPmd7&LwVpL|rC88O3_b6&c8{ku2689azYDd78ohHGs~} zciZ|)xmHZ$oLH3XL3sQofM)CpZUaRSq$9)OYvMLnRV;qCC|1CbBGT&MN1IJte@&&+ z_ZvK*`+kxbMqE(V;JhaF{n5s6pD9K#CHZDB+G@(iz%EIHb)jjY2TifeGqebH{CCyp zr_x6(o^8J*A|r%?BNGwYvgLWPY<+^w6Bg<`658z)3mGQ^>&UrZBITLRNofrvfS$^j zv>1j|^AsQULMmwJOwANc3V^0$qNyV~fMrH&p;p@hr`3MBaU{<(6l8G7R^p7vNU*TD zBUO^*YZ>#+#K?*Mn=p&Kz+NznApggLN+HB40MO<=sapwcg`01pV4uuFVBm63%kX)Z zIu(m#^S)E@24!`p|Iw_@CxO^y_z=Hc<@ri+G|B$~$v~Lqs0>kfcBSvHm|+WV@bOy% zg`MpG`T~UNKS}(-c`g*-et7FpDdH>v@aR3YgAmqj|D)^|N|Tz~v02?}FUzHXUYAbrXw_W?q(CjQ!TXysH!t{pAo_Ecc zf&W*)aH06bZRo(8*P6+{2R%OmtznBX=Dw}psx*}4e|ZOEO0LkKn=SvM5rkZf;P(9G zv6E0-B?4t6zkZ2iHuF~4?Qw3sAMfRUoF8q0a?tJ_#6R0040vTlL+=x^y;Qk;BAvzj z?r<{qWx~9fw;K~sNEK7y;bLQB;&PA4;JMS)qg!3Ve67V<(u^MNDid1!a-_u=NDgM9 ztYa2v)iW9+@R*jLzZ0EFq-0;nxz%`3=MM@+Z$%(QC<;Lg zK^n&_rC+MA;+2AHhF}}^^Ursw1P$^%#9sj6#%cbWa{;e${jAjx)w8ar?&<^!bC3=G z#{4eMyf{(!n}h-{87$A?M9ulOc5=`u8ekw^Vj66P=`5{{Y3{hN=Y4isJ$7)BW&5?_ zh>BlWHmCKeg-7r4)l+8MM+oEZ%$oNyl2gN1O^5&M>vEUdIVQuV>)&H0B3~F;*8qUQ zw1l39?`j*v1@DBjxm#Q;jLp))(CS=|bS~xNY72lKEST(oquZ3x>&Q1|+pX z+8}9A$lZR}$fozx;+dWIcM*)KbmK0U~r~`j+m2@3Jjr^v^k{+E=I&4 zn7!R=D}k~0`-l1EjWv)gNer&wbCqGY<#_}E>kWYMeU4Jkxvemg@4DvW=&>~~Bb3in zJNbH);Q!pyy**VNu>N3jhcG3RAp$DZ)t@E=UVR}`}d#yDZ3d4@ZZoj|J ze%&pF5M&F!5w*L0{0Zsb*_lbTdpliJ*Yn+B*yi-Sm6G_{kC^H}0?dq9nO^ulj21Fz zIg6?#sCLUmGH93m2v}M~kvVat^ z8&ZI=SHxkJz&;EB=j9Di1yB_i1&itj1)uyUjx$**W^Vr9-Co4@tearjU!Xj6<PYS8FSqj0r@bL6G9nqSwT0^f7DdG&S3(eu*t^+b=YWAEFfMF1Kt5fZY0<_0CB z6jc82(be?9&V#_aVWBxp zP~Yw8x$P@hr9xwt)ongc8uuL^bkYtD3%f9PMlwvZw;Jiv>%x4H_A9E~TPaVpSt@`@3Mq-pN{pPakQ%d2g-moXAiD|&(bWLCi4r3LB74@vD`?A-GOB;DactFuVw(Zv^p0&^C z4JfCu9IiiK>MfhxXVY8vb5O$qW_^kZL|ly>ZaWDCB1O>7PoJ-p$k{zR8>ALT3|Fg4 zs;FepPaluIsAB3muQktXN7e#Q(XTM40F+?|b#?5eQ(86Of9gHm@^QER^1*?Zn@dY- zm5cw4vxgmohHDlrA3VF1%8!lG{+=&d+s0}=bTM6b;F=m0YtAvB+iG<>%#{P?FB(ut zgLqH5rZW=;P5xmra2^>QvC2}D{y6U^!|?h_<@<0J3Y$cpxx6UL5KLECvYyxKRU(8XpKWGzjuSmdKzJQ( zH#p&6kYvmR)UCW@4QoeY38=G0MOEZSz*=h7$hJx^e(YC)v}fZ8J;XM^xGYBUI>A9! zeu1vQ>-miH`*KO4lPeDr0RTq(Bz$j^C45gK)qrhon{J;bn{M|(G25DTH$1l6Xu|%o zyIh;Y&fqb&FROf@%_&Iy-{#xd8@sjpbBvw)W|ZD@V9up2;P{HD^{rGuzv&bv42b~T zaLn{IJ}b&!v+Li#m^*oH#nA-f>TjUfO;iv@DPv=Ka0|P;PZo%X$1x>PXKib>Y(rHz zHTll}iy{-ECJ}+pnrgo4X}~!0g2iN_a8TB?H!MMBF@Ci~CGH(i7sY!%<0>R8z(J)! zhOl~zZ+3}hl5AlAS`cEjWQT)`3k4t<0C|jJ@m}r2ELUy%?c7j$y{T8f3Ss=?I?7@J z5rOwW|0RerfhK&u+2OYQA5rk4{i^#7;4r<#H~kF>4GhTtb>6@ZBGK!~qYTbmUuU@B zrDplAwIgQYlNEPSWl3Ep3AZI^01pO}XBoSd^518|%_!4*`L-9E4(oYmmm}=e7gn1^u@T%*h`ggR*kY2xHTxn_= zijrk09@X%ULK{Gc!9YQsDdYMu3$FxE@VbM`itulh6J-p`R>_l!=h;;Q8gLQClawl6 zc2IWb$^)>j;9&smA@fo}Q~;^?67j7gVOYilS5n-KtiDbcNchy`0im&8SbiZ`boGVr z_;Ve{`vPyriwrpw?WWG+4;KQ@Q?*ZR2WDLOyw1n8`fo!v`XB8}fS)Hqko8CVN&vvl z-MG51;b47Tog%;I>2(WAL3K5KEN!lSw^9kIwf`#a!0Pi_JtnQKX1BL>qo{52*cizB zPjG$@se!=4=L)~)qZi_!G zY@l5X492O9T|9g6RN@Gt3%9(pud{l(ES5>(ZS{=t^u698DIV8_x8U_~!C5yx<=x{F z$0WCfNG3T$E={CP6SzSv4zb;+dA={1;kK}rdN>H@F*wZX_= zgf!9;%T8=gb1#*#Gz>6j6`X3fwnk>tSjvxH({X$eKI1a#p(T!xz6x-coEvReJHPJ? zW?kQGuo>pl(;q~Zu!AAXvKYV>Xy>RT1t0#{|Lw!*GschqZf-Z(G!Z(77=8{vw!*ei zkRx1Scr@`dc&bL)WxMd{b2`;-`}C5SZ*^vU-EUC!s{8PiHYKM`v|7ilkr=RG*%YQ$ ztJ(aXV$TVTS<`)3Q5or^-DSE7s_*A#M3VYo^Nzed)PJC`=q(3k)7;FF1$6oF1-BGvb-- zB+_U9kW^##;maw&qnw5YWc-8puJd7crT<|!k=ESGzuj~@K5hM%0=KTE_UaYcd!}JB zz^&~M9PVFpZM&U;H7x*b@k>K{9?21p^R*kp*M%~bJwX68r!A^PEEqO>qsif`@tsDD6vQ}y~E zYTECMKMPQgBPiBf6!Osr1vCjyuSzDhr?{O)`Fc8Qan^ZdRam3Tod`;mLvSfZQwu3P z9tZF$%&pO&+y%~6LYSq#&}RQC%WF2+@>%qtD2jr5jRCyzfAGfr^c4d!nS@+cCnrzu zx69;j;CM@Q?))m6;-;y@k!R=Di{ z9^%$`@TD+Yn8pm^aTc1VEX9L!^R0_27mOGkw&DvU`4H_D@GE+&O!)1*Zn24vp*<`$c$% zvypfJVqF{aG3A?-_qs!S2MaZ+F0-v0vs|C%tBf>C&@%Pdji^?l5Wcptm)4X-baBO{ zaz#?f%=4*;FKkN(7dIZ~&RD~+n>yFj&OP@rwPy@Z-ZU0_XXIqPA6TM{BDjz6XQqSg z%_WW~>+qT?F%S*bYCc2*d78euc?Y`u?_(S6oUBztGIM&p;<(?|I?czyAppJk`T3O1 zwwWwuOF51(O)oQa@}J#-3AQ`-V)6WXX|iSsT_ap~p~)j_Du|z8C}meN920H8&CVTNhU=Mu0~ z4Ylre4k>KM8FC_FW{^C%C?)ah!&>g@*N==vi6mmGH1UuL*&8U~E%lcj@4%@$A9;bv z92^8=URdkxZskBy+FR+PT8tx33v22V<1ugZ`W)=*j z*)FT})9R{Xtc?DpB5EIKEXffX8N8y|rBu<+AXIBk6|1rVInb>KDJFi}_s+nRAdc{~ zZ$xgaX>AX;QHzFGE$xgg&P4g`+=cb)2?5Ob|F?c-lAK0OO!BX8ZicaS8Ef2ni|VmF z3&S(sQHeg*6yaRdK?mlTUL_|a94J&lSP~LJu^qZ<2Kq0Wqyj2%$^QOM;4XtQO5fjc%UWKA+`GjysAs6a=@>XAwL>}PRuyjE z0&5^6c|mEJ^N2*A>|1jp%us2JQp6PBh6<|x3(0WfSSLI)QW!QnE%P-o@#UwwNECJj z2{^2*#AJ2Ay5Os|FBnitO7D(`ZYoGOM}|NUnz;AqK)u>O7TowmPGJNNeU($=1*WLc zhUdu8)>^OLIxkBep0{B_d4fjOc2T;wkd?ET3tgUkMcsNUHFkspQ-^+2t}9EVg1pg+ z54|vD?;s3*2qskVTMp7zh^>PG8`xS2rkmk;enjYD0_IUhy<}D9*i@;zG9%!6`>;58 zLM@m$Uj);k4&w6SPy)$OX1d#L969tj2o{p%3H|rgfhWOVLOW5ab^=OH@1(~Xx*ZIf zAQ%kcyn$*7J$^0hu^$>qn9Y#Y@WQz$sCUitEuOj1QH^@~oI1X3fhmlXL-Vt@ zu}h>^fh-#o#VDf7_@2$eXGoHAr5Ust()sAjt&(5z0~?a>eD1|Kg*f?;V_uCWJ#mmwShF}%Ohe{ z3{R|BdD}KADqIjAaN=0@r^nW>=sBfCvU0UbW+{|EdbPApIv3>X)#{+bKZqki zCRMFQ3fJL!RiR850ST`HIwuK=Qb!mAt;94e?uICpw4OrMjB-Yl z-1AT*c#VyOH0YHZ_e8K3%9SkZIdt<{dDcsy(c#3Gt!7QiG3>*;_pd`1#G8tC& zu}Udv`AdjhFx1~Vk?(F(aXDqRYG4k`z#)_PC^DX#5@-jxnGbM>jNV(Jb0n3b&VUTR zo=eSnJ4E>UMoJHlDQN}?%E?JoIr_|S7a`lds(!tE^1D|CNcsm8Cn+(sKnYr0q2mLv z1f=kCQq9e^{tQ!s<>?-X`+7*5QT1Kss7U2v&!8(xQYY(+2TOqi3Y1RD)G9wdd@gK2 z&I|-F$b|R=l{Ecj)rDOhrKNLADP%59Uq7S(g4A$Kd{3)0zpbdvn4-K+1cb~iOC2%< z5wzBMhP{t^QGb?Yr^_B*BS&Qf83>D~pa+O-4&u-{)a($N}M z5!vvUFKeDH%_TzjPyieGX0KnXXgW}rqD^G2?WbXGWl^6mwYv8e99QK{1b)WLYpP$f zT@Ogf5#hl+edNeT%*n)ih?@1JBAE;&6I(2s{mw?pd}~c&Nfk|QIioYzMbR(Z<;y}H z(dErQ1r)Vojf$&doTK5u$VcOY50p`vsu6aNN2uTfV3S+X)M=_N7ZkFOz|f;oe2gsF z97c~T%yn)1C`)EML9QCsaK^%9iYJGbO`v%DSV;p6F=2zIjD_DtdbKTXu2W~1v4vFS zRv}4hYmLn5gZyijEp@w#U@~-ninAf9Q0gZIlzfa1c7KGCcm=AbEF`jD8aMyi#J6m9 zICZoq%SzcX5yn33+8e?%}`6j;?(8Cv#f;T zW2+mCXW$jxq=k!SNPJGmJ3;|C>bsAzQx=LCVobpDY*K%wQNxIV?*@}bf2n3RH$OlC zyk2Wwcn)a2bYE2J1n0=BvuA=^Iyg%o3Q;M`1lyCV1R(u-%WE z`*n+qI$JB7EC*eTAV^HG^|Rx~NTRfp=?R$mEzczmNoV-%w$^{NoBs<`jw+r@wSBwo z?F9_?j!MmTb#%O4*mbxY=1;9OT8#UB9xXRcnS-}-Fm~@)g5?op{D}M6?}QDmU!T`< z^aIb0hBibe#dL5TNAo9mrHs7%lN`}k>FjJmY%J0jr=lwC9=F-|1bn%~_kujm;x9Jh@ zbDk|-9R4LVA$2OosQMw7P-<^+%H*Sk*!AvT3B>S6=QR{e)f($k4?>p~xQ@x)Hi;v+Xm6R~xfZ?J= z)*V!V8lu_R$@zVKmTW>8$7MaxHesnZ!|RO@LYI@VnE(#aIJu1^f8zJ_An`4asiUPz z@jaVKwg_eZP)ev)Sd3Huz;EA^d^K5=PU>Zt%R!eD)_v6^HE9_)RrfI#&-PhEsxhkX zW+vx73aKCeDQ9UA^ZN{f-Lx>t>(fWY;vjJC}@ zC_q-7`|Qq+LHfK&`0;tM%tafjk{bz77#JBWh~dx5u2bkq00owiaY8{3kc2d}%;U** zoS&BnX5{APWoAw!g9A`V0nw#Si=ccgsq%Yx@)vO+sSv9h;}xzXGr^09OyQjVdbtXD zzX5Gzjm0tP^g3G`(G$Y{FBgE9Z(6H;p^*_)fuC>j$B-gfA{m%00KgbQ3moE%g^FZ- z4uDmnIDM8>sRTnKDaHU2_)&IMqXR83ij1jSl_zm>qTvwDn40fX#FE^IP@SA9-O7X= zlqDWRnftJiYkw)My^*gY8L+D|I!%f&QzIyw>~U~+CPdW5U*@_`4#8C4Pst5H(Q^}P ze8Kp`N={DA%nJNeuc3G#E_R7#9jC04Zh%XUg`5NnBlX}qL9ww6ND>Bklpn0DMtoIn z4@PCg--6IaOQ3B%GH#i zpnQJ}1xzE`>_amH_fXgBCzjF3_#rDtXjn;V)l@pb%>M&W1(=upAAqVzRkku$@X(JG zb@3F`Nl{RzyX+^B78VMgU_JF-kKt{Ap+s6585u=3MU>@`HF???8wdOEa$*VR`GZ); z@!A6wS>o{@{J-TT6_>p`ASn}7>~pekYsZSBmtZRT?7 z&jrbNX<~9QVU>chV{=5X-=g9U+SO`!1O(^+DLx_D4;PG?SyTvwpD#|`??FNy5idsl zhW5;MW$}@}Hhx2Nma?!GX=Nsm k__*+}66|0ba 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 NAtfdcsu3{^{C@zGpS=J8 From e42fea7586523d04ce2977e0a5cab71d589873c9 Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Sun, 28 Jun 2020 14:55:19 +0100 Subject: [PATCH 286/936] Delete chat.jpg Not used --- src/res/homepage/chat.jpg | Bin 26195 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/res/homepage/chat.jpg diff --git a/src/res/homepage/chat.jpg b/src/res/homepage/chat.jpg deleted file mode 100644 index e55da21b56ea7ac169ef0b2e4ba1808c3d83f20a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26195 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 From 67b6b49d9772ebbb0f39657ab6a093f1850e02cc Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 28 Jun 2020 18:24:28 +0200 Subject: [PATCH 287/936] fix linux deploy issue --- Jamulus.pro | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Jamulus.pro b/Jamulus.pro index 4955b7e1c9..afeebab635 100755 --- a/Jamulus.pro +++ b/Jamulus.pro @@ -650,9 +650,12 @@ DISTFILES += ChangeLog \ src/res/translation/translation_de_DE.qm \ src/res/translation/translation_fr_FR.qm \ src/res/translation/translation_pt_PT.qm \ + src/res/translation/translation_pt_BR.qm \ src/res/translation/translation_es_ES.qm \ src/res/translation/translation_nl_NL.qm \ + src/res/translation/translation_pl_PL.qm \ src/res/translation/translation_it_IT.qm \ + src/res/translation/translation_sv_SE.qm \ src/res/CLEDBlack.png \ src/res/CLEDBlackSmall.png \ src/res/CLEDDisabledSmall.png \ From 8b6537c5093b085e8a1bf1e730e321cd5f7f090b Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 28 Jun 2020 20:46:34 +0200 Subject: [PATCH 288/936] remove mainicon.png since it is not used anymore --- Jamulus.pro | 1 - src/aboutdlgbase.ui | 2 +- src/res/mainicon.png | Bin 775 -> 0 bytes src/resources.qrc | 1 - 4 files changed, 1 insertion(+), 3 deletions(-) delete mode 100755 src/res/mainicon.png diff --git a/Jamulus.pro b/Jamulus.pro index afeebab635..738aff202b 100755 --- a/Jamulus.pro +++ b/Jamulus.pro @@ -683,7 +683,6 @@ DISTFILES += ChangeLog \ src/res/ledbuttonnotpressed.png \ src/res/ledbuttonpressed.png \ src/res/fronticon.png \ - src/res/mainicon.png \ src/res/mixerboardbackground.png \ src/res/VLEDBlack.png \ src/res/VLEDBlackSmall.png \ diff --git a/src/aboutdlgbase.ui b/src/aboutdlgbase.ui index 398f30f828..4c7f307783 100755 --- a/src/aboutdlgbase.ui +++ b/src/aboutdlgbase.ui @@ -21,7 +21,7 @@ - :/png/main/res/mainicon.png:/png/main/res/mainicon.png + :/png/main/res/fronticon.png:/png/main/res/fronticon.png true diff --git a/src/res/mainicon.png b/src/res/mainicon.png deleted file mode 100755 index 1fbecddb3eb6b9e4d2b164d9edc8dd35a0951cd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 775 zcmV+i1Ni)jP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipq+ z69z9bqhCb;0013nR9JLFZ*6U5Zgc_CX>@2HM@dakWG-a~0007B zNkl5IXB-CdG@iDU0*YxA#{FKhq0bxtbfmQMSQY*x=YIwa}z9}0kS05h{Finx349>qU? zkawqS_ioBcOUca4*y=ZLczooDUvF)_B3TKps9(k7hZNTji zLi1n0F_E=HP{ZJ0xs8ucs;a8OU?Z?rFo<*^gm8QA{ug7}a&; res/fronticon.png - res/mainicon.png res/flags/flagnone.png From 31bae6836eded60dc931b35c4b7aa662dd1bd186 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 28 Jun 2020 20:51:07 +0200 Subject: [PATCH 289/936] remove vertical LEDs since they are not used --- Jamulus.pro | 21 --------------------- src/res/VLEDBlack.png | Bin 20988 -> 0 bytes src/res/VLEDBlackSmall.png | Bin 1266 -> 0 bytes src/res/VLEDDisabledSmall.png | Bin 798 -> 0 bytes src/res/VLEDGreen.png | Bin 23072 -> 0 bytes src/res/VLEDGreenSmall.png | Bin 1266 -> 0 bytes src/res/VLEDGrey.png | Bin 18451 -> 0 bytes src/res/VLEDGreySmall.png | Bin 1266 -> 0 bytes src/res/VLEDRed.png | Bin 22498 -> 0 bytes src/res/VLEDRedSmall.png | Bin 1266 -> 0 bytes src/res/VLEDYellow.png | Bin 21843 -> 0 bytes src/res/VLEDYellowSmall.png | Bin 1266 -> 0 bytes src/res/VRLEDBlack.png | Bin 7744 -> 0 bytes src/res/VRLEDBlackSmall.png | Bin 1266 -> 0 bytes src/res/VRLEDGreen.png | Bin 9293 -> 0 bytes src/res/VRLEDGreenSmall.png | Bin 1266 -> 0 bytes src/res/VRLEDGrey.png | Bin 7192 -> 0 bytes src/res/VRLEDGreySmall.png | Bin 1266 -> 0 bytes src/res/VRLEDRed.png | Bin 8981 -> 0 bytes src/res/VRLEDRedSmall.png | Bin 1266 -> 0 bytes src/res/VRLEDYellow.png | Bin 8654 -> 0 bytes src/res/VRLEDYellowSmall.png | Bin 1266 -> 0 bytes 22 files changed, 21 deletions(-) delete mode 100755 src/res/VLEDBlack.png delete mode 100755 src/res/VLEDBlackSmall.png delete mode 100755 src/res/VLEDDisabledSmall.png delete mode 100755 src/res/VLEDGreen.png delete mode 100755 src/res/VLEDGreenSmall.png delete mode 100755 src/res/VLEDGrey.png delete mode 100755 src/res/VLEDGreySmall.png delete mode 100755 src/res/VLEDRed.png delete mode 100755 src/res/VLEDRedSmall.png delete mode 100755 src/res/VLEDYellow.png delete mode 100755 src/res/VLEDYellowSmall.png delete mode 100755 src/res/VRLEDBlack.png delete mode 100755 src/res/VRLEDBlackSmall.png delete mode 100755 src/res/VRLEDGreen.png delete mode 100755 src/res/VRLEDGreenSmall.png delete mode 100755 src/res/VRLEDGrey.png delete mode 100755 src/res/VRLEDGreySmall.png delete mode 100755 src/res/VRLEDRed.png delete mode 100755 src/res/VRLEDRedSmall.png delete mode 100755 src/res/VRLEDYellow.png delete mode 100755 src/res/VRLEDYellowSmall.png diff --git a/Jamulus.pro b/Jamulus.pro index 738aff202b..4f709326fc 100755 --- a/Jamulus.pro +++ b/Jamulus.pro @@ -684,27 +684,6 @@ DISTFILES += ChangeLog \ src/res/ledbuttonpressed.png \ src/res/fronticon.png \ src/res/mixerboardbackground.png \ - src/res/VLEDBlack.png \ - src/res/VLEDBlackSmall.png \ - src/res/VLEDDisabledSmall.png \ - src/res/VLEDGreen.png \ - src/res/VLEDGreenSmall.png \ - src/res/VLEDGrey.png \ - src/res/VLEDGreySmall.png \ - src/res/VLEDRed.png \ - src/res/VLEDRedSmall.png \ - src/res/VLEDYellow.png \ - src/res/VLEDYellowSmall.png \ - src/res/VRLEDBlack.png \ - src/res/VRLEDBlackSmall.png \ - src/res/VRLEDGreen.png \ - src/res/VRLEDGreenSmall.png \ - src/res/VRLEDGrey.png \ - src/res/VRLEDGreySmall.png \ - src/res/VRLEDRed.png \ - src/res/VRLEDRedSmall.png \ - src/res/VRLEDYellow.png \ - src/res/VRLEDYellowSmall.png \ src/res/instruments/accordeon.png \ src/res/instruments/aguitar.png \ src/res/instruments/bassguitar.png \ diff --git a/src/res/VLEDBlack.png b/src/res/VLEDBlack.png deleted file mode 100755 index 1b92044f113fe8122efefa6ba58b8d57f64e762b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20988 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 diff --git a/src/res/VLEDDisabledSmall.png b/src/res/VLEDDisabledSmall.png deleted file mode 100755 index 428436c377350457b048bdd353a485fa1fecb5b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 798 zcmV+(1L6FMP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L08*+W zC=?2$QmMKz=JDFvT8(P8n%{f&tov6cV}ne_{{Hf%Z8n?s=;+9{9zC*SW9-S5EB5C% zZ<^I=H7_Fas`&l;B`*j_2LabUe#CWMyl$7-FJBOA$v2y%8jZ^$@=8>7qrS9sZUsF! zAZj#_PoFU3F#vx%4u|80T_y?%(HJmjLbCw;9~H!T+nb zut4AUr-3Mn=#|S;!12loaU4$rqtS@N)zt~{D4piV-Md6lGzo|ZQ54ZyTqMqB6JVT5 zF_@W|0321taU6QR9+{I9B#tjK2}9yI=JfOw&-11|%zXWdM$ttcVTkwb8(|nudr(!b z@9a#OUfSN~e2NLcaU5nFjVYkCzmMPVPv3C4R>K<%5@D211CR;=uI=t#03tGSU6;kr zpA&KW=1sc)3Gw>Q4zBAWA|p}Ny6^kU?(Zjp#>0mkJ$R7x#d@9Df5WSbs(vVyN~F%- z4#4s9GRMoyguV}eI~+1U9;2!sL_}U^v)RTU&z}QOd-8;s5{u diff --git a/src/res/VLEDGreen.png b/src/res/VLEDGreen.png deleted file mode 100755 index fb86baca5b3e700384d5460065eb869d7be8f292..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23072 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 Xt&*X`h-9y|pb2!f3^g0n?Gye7PBG^L diff --git a/src/res/VLEDGreenSmall.png b/src/res/VLEDGreenSmall.png deleted file mode 100755 index c2b2a2a6ed7001ad7ec45a6f20e02dacaadfb06c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1266 zcmai!Pe>F|9LK*i^JZq(-PLq#{kOEGlvI?LOocSE_0J+MsZn@~2qNeZS(lF8Iu{Y0 zx4-y3b!9O?~k-kTr4&wPLH_ulV4yB6y4 zl+>00@C17UgEYFSS2+}VU%oRoNrNyl*wcxzFTNOkD7X810xqhg5R^$tLe2PqC=JO0Xs=A<+Yl{RmF;NspQmK@GdUFzw zho8W$dUm4$I?s0FLVXKfhhL)G74kcs&Jj_Pq#Hlh7tnsO9R;(1&CJGu&Vz1m>A>Rp zJh(3jhz)Cc44S(VTe(f!ezdd-tGN|$Uq%!YB>~$;3QA5bhO>X7=W`I5$Q2j|z!*cC z0|wv2!;J$n`B=WzOD3SO4cU+ndy~Z|7+~a61UQ{FGf3y{fxKz_rNCqYHmFOs3VAb6 z3i6%;m)k-bBx(!jrVf`}u?O&wcxtN&v}^Hf6pgHE58w*An8B*P1Q&CI2|H`i3p%Ac z30#?V3d%(ED^2l0(K#Bo1EJR@Q@s;{VxCcK`|sc zABM^t?0*Ul*~!n6!H-6yQmSeEw}Jq#o~1LvF*O(Db$qKabQ%4 zMx$j^NwbMxYyPk9DI~S{ZsAh&rhtn0F`Uyc!Q=KUQe`$-H64$~8ws*%I+k6=rm_Z+ zo(jDNmCkCbrpdX_>-EkRZ;eDEVci-89=J8g(YiG>O|v$r>E23d;f$8$*$Z}s0%M)G Gp8f{WTnGdJ diff --git a/src/res/VLEDGrey.png b/src/res/VLEDGrey.png deleted file mode 100755 index b1846bf99c65b81c13af3527126f703939b66c71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18451 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 diff --git a/src/res/VLEDGreySmall.png b/src/res/VLEDGreySmall.png deleted file mode 100755 index 68dcbbf715844d082c5617279a73dcc3a75f119e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1266 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 MD4jbssx}e-19(#-c>n+a diff --git a/src/res/VLEDRedSmall.png b/src/res/VLEDRedSmall.png deleted file mode 100755 index 3b22146f9268e3e1b5f3944e8fae9cd14c80fd6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1266 zcmai!O=uHA7>3`O-E5L3OSEZ|nug|3N)gl?yi~zTOJW*IgKb6eCQ|SsRBSJL^dg?^ zLGa?O*h342oQhOI3cV;rM0#ko(7(h+Y-^j%=4bq7<4-q@IAL~XXWwVOFYo+3xtdDo z4WR}Ada^GzM6H)<(52Dy^2qc&HEe7s(TnMK;S9ZKxBC+@2>E;QYVs+KxbOAd90P`l z8}_n+kLC#)bdDzn;?8A<;%twefBbv|Q12&WJ=eNUvODUtA|r`aW@ctQ)VV8!xIyjd z>L@-j#$Hl?VsLQqK#p0!?CfkO3Dfy}zTH?|h4y8Q=2c*Jbifl1L({Ys0{c^`)G|w_ z(>@X}eOq6Tw9d`pTs#g>R~Jw&V}D@*?-v)5qcNY~zeZ4$QyDW1Bhohi8W$csgx=E& z?rs40>hN7j;L_+QLiEiv&4|=;MNzI7D1|fK-GHc|vbSriGUq6LE3STq)XE6$u1p4M zQxht?`*o`t48py+38__yQWef2ejK8r{g6f+E5a;5VO&N~B>+WrKpaXyuHo?_ibYE! zwHCltl>h_6ad=!!BcfP>;&8|aRltg16bQ)I1yCx3Qx-M=do;UR_$N>kK?NuRC0ZA- z{zIdFBm(6pGC3gR__bM%Z~~}oXQ2fBM*zwXg(4~&+hAS~7?~i8oLSn9T9?ROC{9;( z+5@B7(o?Q7;|gtgvfkzrz3|__AGy6_2c%_Aw_Q>5Cat$@rTtOjE~on62yU0$OC`C| zE25>jle;K_AWP~M#!zkz$_OiRdr$eoA!OSER$4N(+WNI4488S~1g6;5)|QV>($e>x zT*UYG1DbdK?pQ%KWx|axE}n%~*VpJ|Mx}GeX0x3HS!cSik%4n(k5-+-Y-xl$*kqk) x688rJfn^JjP%f9VZVdu$w+0EVTf^`7Terr<_`33DbCPZ+AQ?}^rh9Ka`Uw;!2pj+a diff --git a/src/res/VLEDYellow.png b/src/res/VLEDYellow.png deleted file mode 100755 index 9b0638b80fdae22007f0a334dda7f56b4b3eb671..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21843 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ΠjD&n`TMlZNogLL~%n! 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 diff --git a/src/res/VLEDYellowSmall.png b/src/res/VLEDYellowSmall.png deleted file mode 100755 index 63c7687dd75dd4cc21ddf99a4083a6cd7ce5b5b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1266 zcmai!O-NKx6vzMfz2|%5d@6$ujM@mJ3@uXJS&Jl@K?j>5HHvm2L7Nt#wUHLlE@)Sa zmhB=J3c{=+#7z-IA{FIgL?JZCM$A6ueT;KE=lPKzBi-S=`{um=@1A$gdG|iNlHXx931@3J{Opto=%W3S1Og_W@!E@Md+t7h!G36J z9W*VBy7~;x_uNHObQZR4$5^YVs(Qt?meA305sDhzeM^4R9a9PJ>dL@z7QtGM5chc2 zpc}1Jzj9U6jW&2aD`2fg6qy29DUto*LL3`Xnou>t5i|y%DjL`+W$Boh9a37PsbPTf zql=;v0Lz7{5e%?qAD~FI%*gY&{Aa^OC= zblLg18-XJoG>e+{?r07*sK_-~)(mwx1|b4&ASt&{E-#@{*`l(>4=1fE28l}8E`M>w zdl&9EKRcGRqI&i;Rp%psMs4Q^Cy#xAzK=4kP7VAIpm_LODs!jvQbrPj9D*udZAf}j zsYE&HJePGM6lzAH&_bo7RjSzfdK>(KCI%+N>gsBUcGCRj=J!}A_y!FP#eYGhz_&sa zrr8a@Kd?+Yvy-bvs}~XkxqI5OR$%B1DX^UgYHK6zo+j}?V`Jlj3oukH7Tr^Wz(c17 f3Efj891gpu#`vTBk9(~N-kM0KvdPKb>ks|{*IEHh diff --git a/src/res/VRLEDBlack.png b/src/res/VRLEDBlack.png deleted file mode 100755 index 878a4b49dfdf5276625876d91a68f5348ec94368..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7744 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 b?JigRp-&eDxBjq!+g?al%TP04ofz_8*?1k! diff --git a/src/res/VRLEDBlackSmall.png b/src/res/VRLEDBlackSmall.png deleted file mode 100755 index a6921f526431193e531ed3b1d88c2f840426b03a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1266 zcmeAS@N?(olHy`uVBq!ia0vp^JU}eY!3HGlQ`YSVQjEnx?oJHr&dIz4a@dl*-CY>| zgW!U_%O?XxI14-?iy0V#f%<}Z7=5q)5&#Oamw5WRvfpH7W>?{NU!j}Lz`#=E>Eak- zA;_4{GUGSnx^?UR1C3Q582toEktj zh=_aK-@kuYJq>cMgoFgD22dP;k^yqE0O|h!|35f>P$CY-0R=5K01AJY z8gN4KVi+vH|1@cv>RHNhp3G$w{!7=HTGK7f7hVDlRS# q&abdY!$u1U34vpp@!h+3B$XQPQyT;;)OQ{PImgr0&t;ucLK6TaSfdyK diff --git a/src/res/VRLEDGreen.png b/src/res/VRLEDGreen.png deleted file mode 100755 index 846c7dbf1513200345b54bd091fd9bc987a4998a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9293 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 AMF0Q* diff --git a/src/res/VRLEDRed.png b/src/res/VRLEDRed.png deleted file mode 100755 index 4bad9d1d350bfb31fb8c6042a88ac2bf43c5c85a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8981 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 diff --git a/src/res/VRLEDYellow.png b/src/res/VRLEDYellow.png deleted file mode 100755 index 7d945849fa91b1ef1c119dd08be43f00444bae98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8654 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 Z{`J?`xt^cf&2)E?KgrR_xHYn{@d1`>fZ6~6 From a192acacf9588121cb6ecb561b76c65340adcafd Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 29 Jun 2020 19:16:36 +0200 Subject: [PATCH 290/936] better default settings file name handling --- ChangeLog | 4 ++++ src/settings.cpp | 14 +++++--------- src/settings.h | 11 ++++++----- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4b24a8bb8e..ea1b5898df 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,10 +4,14 @@ 3.5.8git +TODO bug fix: incorrect selection of UI language (#408) + TODO improve settings management -> move settings class in client/server classes, move actual settings variables TODO add new register message which contains version and, e.g., max number of clients +TODO bug fix: grouping faders in the client should be proportional (see discussion in #202) + TODO https://github.com/corrados/jamulus/issues/341#issuecomment-647172946 - generate .qm on compile time with lrelease diff --git a/src/settings.cpp b/src/settings.cpp index 0920d18b07..bb63c38c40 100755 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -36,6 +36,7 @@ void CSettings::Load() // prepare file name for loading initialization data from XML file and read // data from file if possible QFile file ( strFileName ); + if ( file.open ( QIODevice::ReadOnly ) ) { QTextStream in ( &file ); @@ -690,11 +691,13 @@ void CSettings::Save() // Help functions ************************************************************** -void CSettings::SetFileName ( const QString& sNFiName ) +void CSettings::SetFileName ( const QString& sNFiName, + const QString& sDefaultFileName ) { // return the file name with complete path, take care if given file name is // empty strFileName = sNFiName; + if ( strFileName.isEmpty() ) { // we use the Qt default setting file paths for the different OSs by @@ -713,14 +716,7 @@ void CSettings::SetFileName ( const QString& sNFiName ) } // append the actual file name - if ( bIsClient ) - { - strFileName = sConfigDir + "/" + DEFAULT_INI_FILE_NAME; - } - else - { - strFileName = sConfigDir + "/" + DEFAULT_INI_FILE_NAME_SERVER; - } + strFileName = sConfigDir + "/" + sDefaultFileName; } } diff --git a/src/settings.h b/src/settings.h index b56f6aab34..ab02d43252 100755 --- a/src/settings.h +++ b/src/settings.h @@ -40,18 +40,19 @@ class CSettings { public: CSettings ( CClient* pNCliP, const QString& sNFiName ) : - pClient ( pNCliP ), bIsClient ( true ) - { SetFileName ( sNFiName ); } + pClient ( pNCliP ), bIsClient ( true ), strFileName ( "" ) + { SetFileName ( sNFiName, DEFAULT_INI_FILE_NAME ); } CSettings ( CServer* pNSerP, const QString& sNFiName ) : - pServer ( pNSerP ), bIsClient ( false ) - { SetFileName ( sNFiName ); } + pServer ( pNSerP ), bIsClient ( false ), strFileName ( "" ) + { SetFileName ( sNFiName, DEFAULT_INI_FILE_NAME_SERVER); } void Load(); void Save(); protected: - void SetFileName ( const QString& sNFiName ); + void SetFileName ( const QString& sNFiName, + const QString& sDefaultFileName ); // The following functions implement the conversion from the general string // to base64 (which should be used for binary data in XML files). This From 059d9ef2037a192c0f4576489c0dce1dc6d472c3 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 29 Jun 2020 20:43:41 +0200 Subject: [PATCH 291/936] new settings classes for client and server, derived from a common base class --- src/clientdlg.cpp | 16 +- src/clientdlg.h | 18 +- src/main.cpp | 4 +- src/serverdlg.cpp | 10 +- src/serverdlg.h | 12 +- src/settings.cpp | 1269 +++++++++++++++++++++++---------------------- src/settings.h | 49 +- 7 files changed, 704 insertions(+), 674 deletions(-) diff --git a/src/clientdlg.cpp b/src/clientdlg.cpp index 8f39d239ab..e705297351 100755 --- a/src/clientdlg.cpp +++ b/src/clientdlg.cpp @@ -26,14 +26,14 @@ /* Implementation *************************************************************/ -CClientDlg::CClientDlg ( CClient* pNCliP, - CSettings* pNSetP, - const QString& strConnOnStartupAddress, - const int iCtrlMIDIChannel, - const bool bNewShowComplRegConnList, - const bool bShowAnalyzerConsole, - QWidget* parent, - Qt::WindowFlags f ) : +CClientDlg::CClientDlg ( CClient* pNCliP, + CClientSettings* pNSetP, + const QString& strConnOnStartupAddress, + const int iCtrlMIDIChannel, + const bool bNewShowComplRegConnList, + const bool bShowAnalyzerConsole, + QWidget* parent, + Qt::WindowFlags f ) : QDialog ( parent, f ), pClient ( pNCliP ), pSettings ( pNSetP ), diff --git a/src/clientdlg.h b/src/clientdlg.h index b19061d56b..8c49016612 100755 --- a/src/clientdlg.h +++ b/src/clientdlg.h @@ -72,14 +72,14 @@ class CClientDlg : public QDialog, private Ui_CClientDlgBase Q_OBJECT public: - CClientDlg ( CClient* pNCliP, - CSettings* pNSetP, - const QString& strConnOnStartupAddress, - const int iCtrlMIDIChannel, - const bool bNewShowComplRegConnList, - const bool bShowAnalyzerConsole, - QWidget* parent = nullptr, - Qt::WindowFlags f = nullptr ); + CClientDlg ( CClient* pNCliP, + CClientSettings* pNSetP, + const QString& strConnOnStartupAddress, + const int iCtrlMIDIChannel, + const bool bNewShowComplRegConnList, + const bool bShowAnalyzerConsole, + QWidget* parent = nullptr, + Qt::WindowFlags f = nullptr ); protected: void SetGUIDesign ( const EGUIDesign eNewDesign ); @@ -96,7 +96,7 @@ class CClientDlg : public QDialog, private Ui_CClientDlgBase void Disconnect(); CClient* pClient; - CSettings* pSettings; + CClientSettings* pSettings; bool bConnected; bool bConnectDlgWasShown; diff --git a/src/main.cpp b/src/main.cpp index 67703a9c8e..d739eff8b1 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -617,7 +617,7 @@ int main ( int argc, char** argv ) strClientName ); // load settings from init-file - CSettings Settings ( &Client, strIniFileName ); + CClientSettings Settings ( &Client, strIniFileName ); Settings.Load(); #ifndef HEADLESS @@ -670,7 +670,7 @@ int main ( int argc, char** argv ) if ( bUseGUI ) { // load settings from init-file - CSettings Settings ( &Server, strIniFileName ); + CServerSettings Settings ( &Server, strIniFileName ); Settings.Load(); // update server list AFTER restoring the settings from the diff --git a/src/serverdlg.cpp b/src/serverdlg.cpp index 905716b8a5..9a63c88fd8 100755 --- a/src/serverdlg.cpp +++ b/src/serverdlg.cpp @@ -26,11 +26,11 @@ /* Implementation *************************************************************/ -CServerDlg::CServerDlg ( CServer* pNServP, - CSettings* pNSetP, - const bool bStartMinimized, - QWidget* parent, - Qt::WindowFlags f ) +CServerDlg::CServerDlg ( CServer* pNServP, + CServerSettings* pNSetP, + const bool bStartMinimized, + QWidget* parent, + Qt::WindowFlags f ) : QDialog ( parent, f ), pServer ( pNServP ), pSettings ( pNSetP ), diff --git a/src/serverdlg.h b/src/serverdlg.h index b633913931..47c56b0967 100755 --- a/src/serverdlg.h +++ b/src/serverdlg.h @@ -52,11 +52,11 @@ class CServerDlg : public QDialog, private Ui_CServerDlgBase Q_OBJECT public: - CServerDlg ( CServer* pNServP, - CSettings* pNSetP, - const bool bStartMinimized, - QWidget* parent = nullptr, - Qt::WindowFlags f = nullptr ); + CServerDlg ( CServer* pNServP, + CServerSettings* pNSetP, + const bool bStartMinimized, + QWidget* parent = nullptr, + Qt::WindowFlags f = nullptr ); protected: virtual void changeEvent ( QEvent* pEvent ); @@ -70,7 +70,7 @@ class CServerDlg : public QDialog, private Ui_CServerDlgBase QTimer Timer; CServer* pServer; - CSettings* pSettings; + CServerSettings* pSettings; CVector vecpListViewItems; QMutex ListViewMutex; diff --git a/src/settings.cpp b/src/settings.cpp index bb63c38c40..9a53bf5d7f 100755 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -28,14 +28,10 @@ /* Implementation *************************************************************/ void CSettings::Load() { - int iIdx; - int iValue; - bool bValue; - QDomDocument IniXMLDocument; - // prepare file name for loading initialization data from XML file and read // data from file if possible - QFile file ( strFileName ); + QDomDocument IniXMLDocument; + QFile file ( strFileName ); if ( file.open ( QIODevice::ReadOnly ) ) { @@ -45,637 +41,17 @@ void CSettings::Load() file.close(); } - - // Actual settings data --------------------------------------------------- - if ( bIsClient ) - { - // client: - - // IP addresses - for ( iIdx = 0; iIdx < MAX_NUM_SERVER_ADDR_ITEMS; iIdx++ ) - { - pClient->vstrIPAddress[iIdx] = - GetIniSetting ( IniXMLDocument, "client", - QString ( "ipaddress%1" ).arg ( iIdx ), "" ); - } - - // stored fader tags - for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) - { - pClient->vecStoredFaderTags[iIdx] = FromBase64ToString ( - GetIniSetting ( IniXMLDocument, "client", - QString ( "storedfadertag%1_base64" ).arg ( iIdx ), "" ) ); - } - - // stored fader levels - for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) - { - if ( GetNumericIniSet ( IniXMLDocument, "client", - QString ( "storedfaderlevel%1" ).arg ( iIdx ), - 0, AUD_MIX_FADER_MAX, iValue ) ) - { - pClient->vecStoredFaderLevels[iIdx] = iValue; - } - } - - // stored pan values - for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) - { - if ( GetNumericIniSet ( IniXMLDocument, "client", - QString ( "storedpanvalue%1" ).arg ( iIdx ), - 0, AUD_MIX_PAN_MAX, iValue ) ) - { - pClient->vecStoredPanValues[iIdx] = iValue; - } - } - - // stored fader solo state - for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) - { - if ( GetFlagIniSet ( IniXMLDocument, "client", - QString ( "storedfaderissolo%1" ).arg ( iIdx ), - bValue ) ) - { - pClient->vecStoredFaderIsSolo[iIdx] = bValue; - } - } - - // stored fader muted state - for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) - { - if ( GetFlagIniSet ( IniXMLDocument, "client", - QString ( "storedfaderismute%1" ).arg ( iIdx ), - bValue ) ) - { - pClient->vecStoredFaderIsMute[iIdx] = bValue; - } - } - - // new client level - if ( GetNumericIniSet ( IniXMLDocument, "client", "newclientlevel", - 0, 100, iValue ) ) - { - pClient->iNewClientFaderLevel = iValue; - } - - // connect dialog show all musicians - if ( GetFlagIniSet ( IniXMLDocument, "client", "connectdlgshowallmusicians", bValue ) ) - { - pClient->bConnectDlgShowAllMusicians = bValue; - } - - // name - pClient->ChannelInfo.strName = FromBase64ToString ( - GetIniSetting ( IniXMLDocument, "client", "name_base64", - ToBase64 ( QCoreApplication::translate ( "CMusProfDlg", "No Name" ) ) ) ); - - // instrument - if ( GetNumericIniSet ( IniXMLDocument, "client", "instrument", - 0, CInstPictures::GetNumAvailableInst() - 1, iValue ) ) - { - pClient->ChannelInfo.iInstrument = iValue; - } - - // country - if ( GetNumericIniSet ( IniXMLDocument, "client", "country", - 0, static_cast ( QLocale::LastCountry ), iValue ) ) - { - pClient->ChannelInfo.eCountry = static_cast ( iValue ); - } - else - { - // if no country is given, use the one from the operating system - pClient->ChannelInfo.eCountry = QLocale::system().country(); - } - - // city - pClient->ChannelInfo.strCity = FromBase64ToString ( - GetIniSetting ( IniXMLDocument, "client", "city_base64" ) ); - - // skill level - if ( GetNumericIniSet ( IniXMLDocument, "client", "skill", - 0, 3 /* SL_PROFESSIONAL */, iValue ) ) - { - pClient->ChannelInfo.eSkillLevel = static_cast ( iValue ); - } - - // audio fader - if ( GetNumericIniSet ( IniXMLDocument, "client", "audfad", - AUD_FADER_IN_MIN, AUD_FADER_IN_MAX, iValue ) ) - { - pClient->SetAudioInFader ( iValue ); - } - - // reverberation level - if ( GetNumericIniSet ( IniXMLDocument, "client", "revlev", - 0, AUD_REVERB_MAX, iValue ) ) - { - pClient->SetReverbLevel ( iValue ); - } - - // reverberation channel assignment - if ( GetFlagIniSet ( IniXMLDocument, "client", "reverblchan", bValue ) ) - { - pClient->SetReverbOnLeftChan ( bValue ); - } - - // sound card selection - // special case with this setting: the sound card initialization depends - // on this setting call, therefore, if no setting file parameter could - // be retrieved, the sound card is initialized with a default setting - // defined here - if ( GetNumericIniSet ( IniXMLDocument, "client", "auddevidx", - 1, MAX_NUMBER_SOUND_CARDS, iValue ) ) - { - pClient->SetSndCrdDev ( iValue ); - } - else - { - // use "INVALID_INDEX" to tell the sound card driver that - // no device selection was done previously - pClient->SetSndCrdDev ( INVALID_INDEX ); - } - - // sound card channel mapping settings: make sure these settings are - // set AFTER the sound card device is set, otherwise the settings are - // overwritten by the defaults - // - // sound card left input channel mapping - if ( GetNumericIniSet ( IniXMLDocument, "client", "sndcrdinlch", - 0, MAX_NUM_IN_OUT_CHANNELS - 1, iValue ) ) - { - pClient->SetSndCrdLeftInputChannel ( iValue ); - } - - // sound card right input channel mapping - if ( GetNumericIniSet ( IniXMLDocument, "client", "sndcrdinrch", - 0, MAX_NUM_IN_OUT_CHANNELS - 1, iValue ) ) - { - pClient->SetSndCrdRightInputChannel ( iValue ); - } - - // sound card left output channel mapping - if ( GetNumericIniSet ( IniXMLDocument, "client", "sndcrdoutlch", - 0, MAX_NUM_IN_OUT_CHANNELS - 1, iValue ) ) - { - pClient->SetSndCrdLeftOutputChannel ( iValue ); - } - - // sound card right output channel mapping - if ( GetNumericIniSet ( IniXMLDocument, "client", "sndcrdoutrch", - 0, MAX_NUM_IN_OUT_CHANNELS - 1, iValue ) ) - { - pClient->SetSndCrdRightOutputChannel ( iValue ); - } - - // sound card preferred buffer size index - if ( GetNumericIniSet ( IniXMLDocument, "client", "prefsndcrdbufidx", - FRAME_SIZE_FACTOR_PREFERRED, FRAME_SIZE_FACTOR_SAFE, iValue ) ) - { - // additional check required since only a subset of factors are - // defined - if ( ( iValue == FRAME_SIZE_FACTOR_PREFERRED ) || - ( iValue == FRAME_SIZE_FACTOR_DEFAULT ) || - ( iValue == FRAME_SIZE_FACTOR_SAFE ) ) - { - pClient->SetSndCrdPrefFrameSizeFactor ( iValue ); - } - } - - // automatic network jitter buffer size setting - if ( GetFlagIniSet ( IniXMLDocument, "client", "autojitbuf", bValue ) ) - { - pClient->SetDoAutoSockBufSize ( bValue ); - } - - // network jitter buffer size - if ( GetNumericIniSet ( IniXMLDocument, "client", "jitbuf", - MIN_NET_BUF_SIZE_NUM_BL, MAX_NET_BUF_SIZE_NUM_BL, iValue ) ) - { - pClient->SetSockBufNumFrames ( iValue ); - } - - // network jitter buffer size for server - if ( GetNumericIniSet ( IniXMLDocument, "client", "jitbufserver", - MIN_NET_BUF_SIZE_NUM_BL, MAX_NET_BUF_SIZE_NUM_BL, iValue ) ) - { - pClient->SetServerSockBufNumFrames ( iValue ); - } - - // enable OPUS64 setting - if ( GetFlagIniSet ( IniXMLDocument, "client", "enableopussmall", bValue ) ) - { - pClient->SetEnableOPUS64 ( bValue ); - } - - // GUI design - if ( GetNumericIniSet ( IniXMLDocument, "client", "guidesign", - 0, 2 /* GD_SLIMFADER */, iValue ) ) - { - pClient->SetGUIDesign ( static_cast ( iValue ) ); - } - - // display channel levels preference - if ( GetFlagIniSet ( IniXMLDocument, "client", "displaychannellevels", bValue ) ) - { - pClient->SetDisplayChannelLevels ( bValue ); - } - - // audio channels - if ( GetNumericIniSet ( IniXMLDocument, "client", "audiochannels", - 0, 2 /* CC_STEREO */, iValue ) ) - { - pClient->SetAudioChannels ( static_cast ( iValue ) ); - } - - // audio quality - if ( GetNumericIniSet ( IniXMLDocument, "client", "audioquality", - 0, 2 /* AQ_HIGH */, iValue ) ) - { - pClient->SetAudioQuality ( static_cast ( iValue ) ); - } - - // central server address - pClient->SetServerListCentralServerAddress ( - GetIniSetting ( IniXMLDocument, "client", "centralservaddr" ) ); - - // central server address type - if ( GetNumericIniSet ( IniXMLDocument, "client", "centservaddrtype", - 0, static_cast ( AT_CUSTOM ), iValue ) ) - { - pClient->SetCentralServerAddressType ( static_cast ( iValue ) ); - } - else - { - // if no address type is given, choose one from the operating system locale - pClient->SetCentralServerAddressType ( CLocale::GetCentralServerAddressType ( QLocale::system().country() ) ); - } - -// TODO compatibility to old version -if ( GetFlagIniSet ( IniXMLDocument, "client", "defcentservaddr", bValue ) ) -{ - // only the case that manual was set in old ini must be considered - if ( !bValue ) - { - pClient->SetCentralServerAddressType ( AT_CUSTOM ); - } -} - - // window position of the main window - pClient->vecWindowPosMain = FromBase64ToByteArray ( - GetIniSetting ( IniXMLDocument, "client", "winposmain_base64" ) ); - - // window position of the settings window - pClient->vecWindowPosSettings = FromBase64ToByteArray ( - GetIniSetting ( IniXMLDocument, "client", "winposset_base64" ) ); - - // window position of the chat window - pClient->vecWindowPosChat = FromBase64ToByteArray ( - GetIniSetting ( IniXMLDocument, "client", "winposchat_base64" ) ); - - // window position of the musician profile window - pClient->vecWindowPosProfile = FromBase64ToByteArray ( - GetIniSetting ( IniXMLDocument, "client", "winposprofile_base64" ) ); - - // window position of the connect window - pClient->vecWindowPosConnect = FromBase64ToByteArray ( - GetIniSetting ( IniXMLDocument, "client", "winposcon_base64" ) ); - - // visibility state of the settings window - if ( GetFlagIniSet ( IniXMLDocument, "client", "winvisset", bValue ) ) - { - pClient->bWindowWasShownSettings = bValue; - } - - // visibility state of the chat window - if ( GetFlagIniSet ( IniXMLDocument, "client", "winvischat", bValue ) ) - { - pClient->bWindowWasShownChat = bValue; - } - - // visibility state of the musician profile window - if ( GetFlagIniSet ( IniXMLDocument, "client", "winvisprofile", bValue ) ) - { - pClient->bWindowWasShownProfile = bValue; - } - - // visibility state of the connect window - if ( GetFlagIniSet ( IniXMLDocument, "client", "winviscon", bValue ) ) - { - pClient->bWindowWasShownConnect = bValue; - } - } - else - { - // server: - - // central server address type (note that it is important - // to set this setting prior to the "central server address") - if ( GetNumericIniSet ( IniXMLDocument, "server", "centservaddrtype", - 0, static_cast ( AT_CUSTOM ), iValue ) ) - { - pServer->SetCentralServerAddressType ( static_cast ( iValue ) ); - } - else - { - // if no address type is given, choose one from the operating system locale - pServer->SetCentralServerAddressType ( CLocale::GetCentralServerAddressType ( QLocale::system().country() ) ); - } - -// TODO compatibility to old version -if ( GetFlagIniSet ( IniXMLDocument, "server", "defcentservaddr", bValue ) ) -{ - // only the case that manual was set in old ini must be considered - if ( !bValue ) - { - pServer->SetCentralServerAddressType ( AT_CUSTOM ); - } -} - - // central server address (to be set after the "use default central - // server address) - pServer->SetServerListCentralServerAddress ( - GetIniSetting ( IniXMLDocument, "server", "centralservaddr" ) ); - - // server list enabled flag - if ( GetFlagIniSet ( IniXMLDocument, "server", "servlistenabled", bValue ) ) - { - pServer->SetServerListEnabled ( bValue ); - } - - // name - pServer->SetServerName ( GetIniSetting ( IniXMLDocument, "server", "name" ) ); - - // city - pServer->SetServerCity ( GetIniSetting ( IniXMLDocument, "server", "city" ) ); - - // country - if ( GetNumericIniSet ( IniXMLDocument, "server", "country", - 0, static_cast ( QLocale::LastCountry ), iValue ) ) - { - pServer->SetServerCountry ( static_cast ( iValue ) ); - } - - // start minimized on OS start - if ( GetFlagIniSet ( IniXMLDocument, "server", "autostartmin", bValue ) ) - { - pServer->SetAutoRunMinimized ( bValue ); - } - - // licence type - if ( GetNumericIniSet ( IniXMLDocument, "server", "licencetype", - 0, 1 /* LT_CREATIVECOMMONS */, iValue ) ) - { - pServer->SetLicenceType ( static_cast ( iValue ) ); - } - - // window position of the main window - pServer->vecWindowPosMain = FromBase64ToByteArray ( - GetIniSetting ( IniXMLDocument, "server", "winposmain_base64" ) ); - } + // read the settings from the given XML file + ReadFromXML ( IniXMLDocument ); } void CSettings::Save() { - int iIdx; - // create XML document for storing initialization parameters QDomDocument IniXMLDocument; - - // Actual settings data --------------------------------------------------- - if ( bIsClient ) - { - // client: - - // IP addresses - for ( iIdx = 0; iIdx < MAX_NUM_SERVER_ADDR_ITEMS; iIdx++ ) - { - PutIniSetting ( IniXMLDocument, "client", - QString ( "ipaddress%1" ).arg ( iIdx ), - pClient->vstrIPAddress[iIdx] ); - } - - // stored fader tags - for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) - { - PutIniSetting ( IniXMLDocument, "client", - QString ( "storedfadertag%1_base64" ).arg ( iIdx ), - ToBase64 ( pClient->vecStoredFaderTags[iIdx] ) ); - } - - // stored fader levels - for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) - { - SetNumericIniSet ( IniXMLDocument, "client", - QString ( "storedfaderlevel%1" ).arg ( iIdx ), - pClient->vecStoredFaderLevels[iIdx] ); - } - - // stored pan values - for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) - { - SetNumericIniSet ( IniXMLDocument, "client", - QString ( "storedpanvalue%1" ).arg ( iIdx ), - pClient->vecStoredPanValues[iIdx] ); - } - - // stored fader solo states - for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) - { - SetFlagIniSet ( IniXMLDocument, "client", - QString ( "storedfaderissolo%1" ).arg ( iIdx ), - pClient->vecStoredFaderIsSolo[iIdx] != 0 ); - } - - // stored fader muted states - for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) - { - SetFlagIniSet ( IniXMLDocument, "client", - QString ( "storedfaderismute%1" ).arg ( iIdx ), - pClient->vecStoredFaderIsMute[iIdx] != 0 ); - } - - // new client level - SetNumericIniSet ( IniXMLDocument, "client", "newclientlevel", - pClient->iNewClientFaderLevel ); - - // connect dialog show all musicians - SetFlagIniSet ( IniXMLDocument, "client", "connectdlgshowallmusicians", - pClient->bConnectDlgShowAllMusicians ); - - // name - PutIniSetting ( IniXMLDocument, "client", "name_base64", - ToBase64 ( pClient->ChannelInfo.strName ) ); - - // instrument - SetNumericIniSet ( IniXMLDocument, "client", "instrument", - pClient->ChannelInfo.iInstrument ); - - // country - SetNumericIniSet ( IniXMLDocument, "client", "country", - static_cast ( pClient->ChannelInfo.eCountry ) ); - - // city - PutIniSetting ( IniXMLDocument, "client", "city_base64", - ToBase64 ( pClient->ChannelInfo.strCity ) ); - - // skill level - SetNumericIniSet ( IniXMLDocument, "client", "skill", - static_cast ( pClient->ChannelInfo.eSkillLevel ) ); - - // audio fader - SetNumericIniSet ( IniXMLDocument, "client", "audfad", - pClient->GetAudioInFader() ); - - // reverberation level - SetNumericIniSet ( IniXMLDocument, "client", "revlev", - pClient->GetReverbLevel() ); - - // reverberation channel assignment - SetFlagIniSet ( IniXMLDocument, "client", "reverblchan", - pClient->IsReverbOnLeftChan() ); - - // sound card selection - SetNumericIniSet ( IniXMLDocument, "client", "auddevidx", - pClient->GetSndCrdDev() ); - - // sound card left input channel mapping - SetNumericIniSet ( IniXMLDocument, "client", "sndcrdinlch", - pClient->GetSndCrdLeftInputChannel() ); - - // sound card right input channel mapping - SetNumericIniSet ( IniXMLDocument, "client", "sndcrdinrch", - pClient->GetSndCrdRightInputChannel() ); - - // sound card left output channel mapping - SetNumericIniSet ( IniXMLDocument, "client", "sndcrdoutlch", - pClient->GetSndCrdLeftOutputChannel() ); - - // sound card right output channel mapping - SetNumericIniSet ( IniXMLDocument, "client", "sndcrdoutrch", - pClient->GetSndCrdRightOutputChannel() ); - - // sound card preferred buffer size index - SetNumericIniSet ( IniXMLDocument, "client", "prefsndcrdbufidx", - pClient->GetSndCrdPrefFrameSizeFactor() ); - - // automatic network jitter buffer size setting - SetFlagIniSet ( IniXMLDocument, "client", "autojitbuf", - pClient->GetDoAutoSockBufSize() ); - - // network jitter buffer size - SetNumericIniSet ( IniXMLDocument, "client", "jitbuf", - pClient->GetSockBufNumFrames() ); - - // network jitter buffer size for server - SetNumericIniSet ( IniXMLDocument, "client", "jitbufserver", - pClient->GetServerSockBufNumFrames() ); - - // enable OPUS64 setting - SetFlagIniSet ( IniXMLDocument, "client", "enableopussmall", - pClient->GetEnableOPUS64() ); - - // GUI design - SetNumericIniSet ( IniXMLDocument, "client", "guidesign", - static_cast ( pClient->GetGUIDesign() ) ); - - // display channel levels preference - SetFlagIniSet ( IniXMLDocument, "client", "displaychannellevels", - pClient->GetDisplayChannelLevels() ); - - // audio channels - SetNumericIniSet ( IniXMLDocument, "client", "audiochannels", - static_cast ( pClient->GetAudioChannels() ) ); - - // audio quality - SetNumericIniSet ( IniXMLDocument, "client", "audioquality", - static_cast ( pClient->GetAudioQuality() ) ); - - // central server address - PutIniSetting ( IniXMLDocument, "client", "centralservaddr", - pClient->GetServerListCentralServerAddress() ); - - // central server address type - SetNumericIniSet ( IniXMLDocument, "client", "centservaddrtype", - static_cast ( pClient->GetCentralServerAddressType() ) ); - - // window position of the main window - PutIniSetting ( IniXMLDocument, "client", "winposmain_base64", - ToBase64 ( pClient->vecWindowPosMain ) ); - - // window position of the settings window - PutIniSetting ( IniXMLDocument, "client", "winposset_base64", - ToBase64 ( pClient->vecWindowPosSettings ) ); - - // window position of the chat window - PutIniSetting ( IniXMLDocument, "client", "winposchat_base64", - ToBase64 ( pClient->vecWindowPosChat ) ); - - // window position of the musician profile window - PutIniSetting ( IniXMLDocument, "client", "winposprofile_base64", - ToBase64 ( pClient->vecWindowPosProfile ) ); - - // window position of the connect window - PutIniSetting ( IniXMLDocument, "client", "winposcon_base64", - ToBase64 ( pClient->vecWindowPosConnect ) ); - - // visibility state of the settings window - SetFlagIniSet ( IniXMLDocument, "client", "winvisset", - pClient->bWindowWasShownSettings ); - - // visibility state of the chat window - SetFlagIniSet ( IniXMLDocument, "client", "winvischat", - pClient->bWindowWasShownChat ); - - // visibility state of the musician profile window - SetFlagIniSet ( IniXMLDocument, "client", "winvisprofile", - pClient->bWindowWasShownProfile ); - - // visibility state of the connect window - SetFlagIniSet ( IniXMLDocument, "client", "winviscon", - pClient->bWindowWasShownConnect ); - } - else - { - // server: - - // central server address - PutIniSetting ( IniXMLDocument, "server", "centralservaddr", - pServer->GetServerListCentralServerAddress() ); - - // central server address type - SetNumericIniSet ( IniXMLDocument, "server", "centservaddrtype", - static_cast ( pServer->GetCentralServerAddressType() ) ); - - // server list enabled flag - SetFlagIniSet ( IniXMLDocument, "server", "servlistenabled", - pServer->GetServerListEnabled() ); - - // name - PutIniSetting ( IniXMLDocument, "server", "name", - pServer->GetServerName() ); - - // city - PutIniSetting ( IniXMLDocument, "server", "city", - pServer->GetServerCity() ); - - // country - SetNumericIniSet ( IniXMLDocument, "server", "country", - static_cast ( pServer->GetServerCountry() ) ); - - // start minimized on OS start - SetFlagIniSet ( IniXMLDocument, "server", "autostartmin", - pServer->GetAutoRunMinimized() ); - - // licence type - SetNumericIniSet ( IniXMLDocument, "server", "licencetype", - static_cast ( pServer->GetLicenceType() ) ); - - // window position of the main window - PutIniSetting ( IniXMLDocument, "server", "winposmain_base64", - ToBase64 ( pServer->vecWindowPosMain ) ); - } + // write the settings in the XML file + WriteToXML ( IniXMLDocument ); // prepare file name for storing initialization data in XML file and store // XML data in file @@ -689,8 +65,6 @@ void CSettings::Save() } } - -// Help functions ************************************************************** void CSettings::SetFileName ( const QString& sNFiName, const QString& sDefaultFileName ) { @@ -812,10 +186,12 @@ QString CSettings::GetIniSetting ( const QDomDocument& xmlFile, // get section QDomElement xmlSection = xmlFile.firstChildElement ( sSection ); + if ( !xmlSection.isNull() ) { // get key QDomElement xmlKey = xmlSection.firstChildElement ( sKey ); + if ( !xmlKey.isNull() ) { // get value @@ -833,6 +209,7 @@ void CSettings::PutIniSetting ( QDomDocument& xmlFile, { // check if section is already there, if not then create it QDomElement xmlSection = xmlFile.firstChildElement ( sSection ); + if ( xmlSection.isNull() ) { // create new root element and add to document @@ -842,6 +219,7 @@ void CSettings::PutIniSetting ( QDomDocument& xmlFile, // check if key is already there, if not then create it QDomElement xmlKey = xmlSection.firstChildElement ( sKey ); + if ( xmlKey.isNull() ) { xmlKey = xmlFile.createElement ( sKey ); @@ -852,3 +230,630 @@ void CSettings::PutIniSetting ( QDomDocument& xmlFile, QDomText currentValue = xmlFile.createTextNode ( sValue ); xmlKey.appendChild ( currentValue ); } + + +// Client settings ------------------------------------------------------------- +void CClientSettings::ReadFromXML ( const QDomDocument& IniXMLDocument ) +{ + int iIdx; + int iValue; + bool bValue; + + // IP addresses + for ( iIdx = 0; iIdx < MAX_NUM_SERVER_ADDR_ITEMS; iIdx++ ) + { + pClient->vstrIPAddress[iIdx] = + GetIniSetting ( IniXMLDocument, "client", + QString ( "ipaddress%1" ).arg ( iIdx ), "" ); + } + + // stored fader tags + for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) + { + pClient->vecStoredFaderTags[iIdx] = FromBase64ToString ( + GetIniSetting ( IniXMLDocument, "client", + QString ( "storedfadertag%1_base64" ).arg ( iIdx ), "" ) ); + } + + // stored fader levels + for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) + { + if ( GetNumericIniSet ( IniXMLDocument, "client", + QString ( "storedfaderlevel%1" ).arg ( iIdx ), + 0, AUD_MIX_FADER_MAX, iValue ) ) + { + pClient->vecStoredFaderLevels[iIdx] = iValue; + } + } + + // stored pan values + for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) + { + if ( GetNumericIniSet ( IniXMLDocument, "client", + QString ( "storedpanvalue%1" ).arg ( iIdx ), + 0, AUD_MIX_PAN_MAX, iValue ) ) + { + pClient->vecStoredPanValues[iIdx] = iValue; + } + } + + // stored fader solo state + for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) + { + if ( GetFlagIniSet ( IniXMLDocument, "client", + QString ( "storedfaderissolo%1" ).arg ( iIdx ), + bValue ) ) + { + pClient->vecStoredFaderIsSolo[iIdx] = bValue; + } + } + + // stored fader muted state + for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) + { + if ( GetFlagIniSet ( IniXMLDocument, "client", + QString ( "storedfaderismute%1" ).arg ( iIdx ), + bValue ) ) + { + pClient->vecStoredFaderIsMute[iIdx] = bValue; + } + } + + // new client level + if ( GetNumericIniSet ( IniXMLDocument, "client", "newclientlevel", + 0, 100, iValue ) ) + { + pClient->iNewClientFaderLevel = iValue; + } + + // connect dialog show all musicians + if ( GetFlagIniSet ( IniXMLDocument, "client", "connectdlgshowallmusicians", bValue ) ) + { + pClient->bConnectDlgShowAllMusicians = bValue; + } + + // name + pClient->ChannelInfo.strName = FromBase64ToString ( + GetIniSetting ( IniXMLDocument, "client", "name_base64", + ToBase64 ( QCoreApplication::translate ( "CMusProfDlg", "No Name" ) ) ) ); + + // instrument + if ( GetNumericIniSet ( IniXMLDocument, "client", "instrument", + 0, CInstPictures::GetNumAvailableInst() - 1, iValue ) ) + { + pClient->ChannelInfo.iInstrument = iValue; + } + + // country + if ( GetNumericIniSet ( IniXMLDocument, "client", "country", + 0, static_cast ( QLocale::LastCountry ), iValue ) ) + { + pClient->ChannelInfo.eCountry = static_cast ( iValue ); + } + else + { + // if no country is given, use the one from the operating system + pClient->ChannelInfo.eCountry = QLocale::system().country(); + } + + // city + pClient->ChannelInfo.strCity = FromBase64ToString ( + GetIniSetting ( IniXMLDocument, "client", "city_base64" ) ); + + // skill level + if ( GetNumericIniSet ( IniXMLDocument, "client", "skill", + 0, 3 /* SL_PROFESSIONAL */, iValue ) ) + { + pClient->ChannelInfo.eSkillLevel = static_cast ( iValue ); + } + + // audio fader + if ( GetNumericIniSet ( IniXMLDocument, "client", "audfad", + AUD_FADER_IN_MIN, AUD_FADER_IN_MAX, iValue ) ) + { + pClient->SetAudioInFader ( iValue ); + } + + // reverberation level + if ( GetNumericIniSet ( IniXMLDocument, "client", "revlev", + 0, AUD_REVERB_MAX, iValue ) ) + { + pClient->SetReverbLevel ( iValue ); + } + + // reverberation channel assignment + if ( GetFlagIniSet ( IniXMLDocument, "client", "reverblchan", bValue ) ) + { + pClient->SetReverbOnLeftChan ( bValue ); + } + + // sound card selection + // special case with this setting: the sound card initialization depends + // on this setting call, therefore, if no setting file parameter could + // be retrieved, the sound card is initialized with a default setting + // defined here + if ( GetNumericIniSet ( IniXMLDocument, "client", "auddevidx", + 1, MAX_NUMBER_SOUND_CARDS, iValue ) ) + { + pClient->SetSndCrdDev ( iValue ); + } + else + { + // use "INVALID_INDEX" to tell the sound card driver that + // no device selection was done previously + pClient->SetSndCrdDev ( INVALID_INDEX ); + } + + // sound card channel mapping settings: make sure these settings are + // set AFTER the sound card device is set, otherwise the settings are + // overwritten by the defaults + // + // sound card left input channel mapping + if ( GetNumericIniSet ( IniXMLDocument, "client", "sndcrdinlch", + 0, MAX_NUM_IN_OUT_CHANNELS - 1, iValue ) ) + { + pClient->SetSndCrdLeftInputChannel ( iValue ); + } + + // sound card right input channel mapping + if ( GetNumericIniSet ( IniXMLDocument, "client", "sndcrdinrch", + 0, MAX_NUM_IN_OUT_CHANNELS - 1, iValue ) ) + { + pClient->SetSndCrdRightInputChannel ( iValue ); + } + + // sound card left output channel mapping + if ( GetNumericIniSet ( IniXMLDocument, "client", "sndcrdoutlch", + 0, MAX_NUM_IN_OUT_CHANNELS - 1, iValue ) ) + { + pClient->SetSndCrdLeftOutputChannel ( iValue ); + } + + // sound card right output channel mapping + if ( GetNumericIniSet ( IniXMLDocument, "client", "sndcrdoutrch", + 0, MAX_NUM_IN_OUT_CHANNELS - 1, iValue ) ) + { + pClient->SetSndCrdRightOutputChannel ( iValue ); + } + + // sound card preferred buffer size index + if ( GetNumericIniSet ( IniXMLDocument, "client", "prefsndcrdbufidx", + FRAME_SIZE_FACTOR_PREFERRED, FRAME_SIZE_FACTOR_SAFE, iValue ) ) + { + // additional check required since only a subset of factors are + // defined + if ( ( iValue == FRAME_SIZE_FACTOR_PREFERRED ) || + ( iValue == FRAME_SIZE_FACTOR_DEFAULT ) || + ( iValue == FRAME_SIZE_FACTOR_SAFE ) ) + { + pClient->SetSndCrdPrefFrameSizeFactor ( iValue ); + } + } + + // automatic network jitter buffer size setting + if ( GetFlagIniSet ( IniXMLDocument, "client", "autojitbuf", bValue ) ) + { + pClient->SetDoAutoSockBufSize ( bValue ); + } + + // network jitter buffer size + if ( GetNumericIniSet ( IniXMLDocument, "client", "jitbuf", + MIN_NET_BUF_SIZE_NUM_BL, MAX_NET_BUF_SIZE_NUM_BL, iValue ) ) + { + pClient->SetSockBufNumFrames ( iValue ); + } + + // network jitter buffer size for server + if ( GetNumericIniSet ( IniXMLDocument, "client", "jitbufserver", + MIN_NET_BUF_SIZE_NUM_BL, MAX_NET_BUF_SIZE_NUM_BL, iValue ) ) + { + pClient->SetServerSockBufNumFrames ( iValue ); + } + + // enable OPUS64 setting + if ( GetFlagIniSet ( IniXMLDocument, "client", "enableopussmall", bValue ) ) + { + pClient->SetEnableOPUS64 ( bValue ); + } + + // GUI design + if ( GetNumericIniSet ( IniXMLDocument, "client", "guidesign", + 0, 2 /* GD_SLIMFADER */, iValue ) ) + { + pClient->SetGUIDesign ( static_cast ( iValue ) ); + } + + // display channel levels preference + if ( GetFlagIniSet ( IniXMLDocument, "client", "displaychannellevels", bValue ) ) + { + pClient->SetDisplayChannelLevels ( bValue ); + } + + // audio channels + if ( GetNumericIniSet ( IniXMLDocument, "client", "audiochannels", + 0, 2 /* CC_STEREO */, iValue ) ) + { + pClient->SetAudioChannels ( static_cast ( iValue ) ); + } + + // audio quality + if ( GetNumericIniSet ( IniXMLDocument, "client", "audioquality", + 0, 2 /* AQ_HIGH */, iValue ) ) + { + pClient->SetAudioQuality ( static_cast ( iValue ) ); + } + + // central server address + pClient->SetServerListCentralServerAddress ( + GetIniSetting ( IniXMLDocument, "client", "centralservaddr" ) ); + + // central server address type + if ( GetNumericIniSet ( IniXMLDocument, "client", "centservaddrtype", + 0, static_cast ( AT_CUSTOM ), iValue ) ) + { + pClient->SetCentralServerAddressType ( static_cast ( iValue ) ); + } + else + { + // if no address type is given, choose one from the operating system locale + pClient->SetCentralServerAddressType ( CLocale::GetCentralServerAddressType ( QLocale::system().country() ) ); + } + +// TODO compatibility to old version +if ( GetFlagIniSet ( IniXMLDocument, "client", "defcentservaddr", bValue ) ) +{ + // only the case that manual was set in old ini must be considered + if ( !bValue ) + { + pClient->SetCentralServerAddressType ( AT_CUSTOM ); + } +} + + // window position of the main window + pClient->vecWindowPosMain = FromBase64ToByteArray ( + GetIniSetting ( IniXMLDocument, "client", "winposmain_base64" ) ); + + // window position of the settings window + pClient->vecWindowPosSettings = FromBase64ToByteArray ( + GetIniSetting ( IniXMLDocument, "client", "winposset_base64" ) ); + + // window position of the chat window + pClient->vecWindowPosChat = FromBase64ToByteArray ( + GetIniSetting ( IniXMLDocument, "client", "winposchat_base64" ) ); + + // window position of the musician profile window + pClient->vecWindowPosProfile = FromBase64ToByteArray ( + GetIniSetting ( IniXMLDocument, "client", "winposprofile_base64" ) ); + + // window position of the connect window + pClient->vecWindowPosConnect = FromBase64ToByteArray ( + GetIniSetting ( IniXMLDocument, "client", "winposcon_base64" ) ); + + // visibility state of the settings window + if ( GetFlagIniSet ( IniXMLDocument, "client", "winvisset", bValue ) ) + { + pClient->bWindowWasShownSettings = bValue; + } + + // visibility state of the chat window + if ( GetFlagIniSet ( IniXMLDocument, "client", "winvischat", bValue ) ) + { + pClient->bWindowWasShownChat = bValue; + } + + // visibility state of the musician profile window + if ( GetFlagIniSet ( IniXMLDocument, "client", "winvisprofile", bValue ) ) + { + pClient->bWindowWasShownProfile = bValue; + } + + // visibility state of the connect window + if ( GetFlagIniSet ( IniXMLDocument, "client", "winviscon", bValue ) ) + { + pClient->bWindowWasShownConnect = bValue; + } +} + +void CClientSettings::WriteToXML ( QDomDocument& IniXMLDocument ) +{ + int iIdx; + + // IP addresses + for ( iIdx = 0; iIdx < MAX_NUM_SERVER_ADDR_ITEMS; iIdx++ ) + { + PutIniSetting ( IniXMLDocument, "client", + QString ( "ipaddress%1" ).arg ( iIdx ), + pClient->vstrIPAddress[iIdx] ); + } + + // stored fader tags + for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) + { + PutIniSetting ( IniXMLDocument, "client", + QString ( "storedfadertag%1_base64" ).arg ( iIdx ), + ToBase64 ( pClient->vecStoredFaderTags[iIdx] ) ); + } + + // stored fader levels + for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) + { + SetNumericIniSet ( IniXMLDocument, "client", + QString ( "storedfaderlevel%1" ).arg ( iIdx ), + pClient->vecStoredFaderLevels[iIdx] ); + } + + // stored pan values + for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) + { + SetNumericIniSet ( IniXMLDocument, "client", + QString ( "storedpanvalue%1" ).arg ( iIdx ), + pClient->vecStoredPanValues[iIdx] ); + } + + // stored fader solo states + for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) + { + SetFlagIniSet ( IniXMLDocument, "client", + QString ( "storedfaderissolo%1" ).arg ( iIdx ), + pClient->vecStoredFaderIsSolo[iIdx] != 0 ); + } + + // stored fader muted states + for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) + { + SetFlagIniSet ( IniXMLDocument, "client", + QString ( "storedfaderismute%1" ).arg ( iIdx ), + pClient->vecStoredFaderIsMute[iIdx] != 0 ); + } + + // new client level + SetNumericIniSet ( IniXMLDocument, "client", "newclientlevel", + pClient->iNewClientFaderLevel ); + + // connect dialog show all musicians + SetFlagIniSet ( IniXMLDocument, "client", "connectdlgshowallmusicians", + pClient->bConnectDlgShowAllMusicians ); + + // name + PutIniSetting ( IniXMLDocument, "client", "name_base64", + ToBase64 ( pClient->ChannelInfo.strName ) ); + + // instrument + SetNumericIniSet ( IniXMLDocument, "client", "instrument", + pClient->ChannelInfo.iInstrument ); + + // country + SetNumericIniSet ( IniXMLDocument, "client", "country", + static_cast ( pClient->ChannelInfo.eCountry ) ); + + // city + PutIniSetting ( IniXMLDocument, "client", "city_base64", + ToBase64 ( pClient->ChannelInfo.strCity ) ); + + // skill level + SetNumericIniSet ( IniXMLDocument, "client", "skill", + static_cast ( pClient->ChannelInfo.eSkillLevel ) ); + + // audio fader + SetNumericIniSet ( IniXMLDocument, "client", "audfad", + pClient->GetAudioInFader() ); + + // reverberation level + SetNumericIniSet ( IniXMLDocument, "client", "revlev", + pClient->GetReverbLevel() ); + + // reverberation channel assignment + SetFlagIniSet ( IniXMLDocument, "client", "reverblchan", + pClient->IsReverbOnLeftChan() ); + + // sound card selection + SetNumericIniSet ( IniXMLDocument, "client", "auddevidx", + pClient->GetSndCrdDev() ); + + // sound card left input channel mapping + SetNumericIniSet ( IniXMLDocument, "client", "sndcrdinlch", + pClient->GetSndCrdLeftInputChannel() ); + + // sound card right input channel mapping + SetNumericIniSet ( IniXMLDocument, "client", "sndcrdinrch", + pClient->GetSndCrdRightInputChannel() ); + + // sound card left output channel mapping + SetNumericIniSet ( IniXMLDocument, "client", "sndcrdoutlch", + pClient->GetSndCrdLeftOutputChannel() ); + + // sound card right output channel mapping + SetNumericIniSet ( IniXMLDocument, "client", "sndcrdoutrch", + pClient->GetSndCrdRightOutputChannel() ); + + // sound card preferred buffer size index + SetNumericIniSet ( IniXMLDocument, "client", "prefsndcrdbufidx", + pClient->GetSndCrdPrefFrameSizeFactor() ); + + // automatic network jitter buffer size setting + SetFlagIniSet ( IniXMLDocument, "client", "autojitbuf", + pClient->GetDoAutoSockBufSize() ); + + // network jitter buffer size + SetNumericIniSet ( IniXMLDocument, "client", "jitbuf", + pClient->GetSockBufNumFrames() ); + + // network jitter buffer size for server + SetNumericIniSet ( IniXMLDocument, "client", "jitbufserver", + pClient->GetServerSockBufNumFrames() ); + + // enable OPUS64 setting + SetFlagIniSet ( IniXMLDocument, "client", "enableopussmall", + pClient->GetEnableOPUS64() ); + + // GUI design + SetNumericIniSet ( IniXMLDocument, "client", "guidesign", + static_cast ( pClient->GetGUIDesign() ) ); + + // display channel levels preference + SetFlagIniSet ( IniXMLDocument, "client", "displaychannellevels", + pClient->GetDisplayChannelLevels() ); + + // audio channels + SetNumericIniSet ( IniXMLDocument, "client", "audiochannels", + static_cast ( pClient->GetAudioChannels() ) ); + + // audio quality + SetNumericIniSet ( IniXMLDocument, "client", "audioquality", + static_cast ( pClient->GetAudioQuality() ) ); + + // central server address + PutIniSetting ( IniXMLDocument, "client", "centralservaddr", + pClient->GetServerListCentralServerAddress() ); + + // central server address type + SetNumericIniSet ( IniXMLDocument, "client", "centservaddrtype", + static_cast ( pClient->GetCentralServerAddressType() ) ); + + // window position of the main window + PutIniSetting ( IniXMLDocument, "client", "winposmain_base64", + ToBase64 ( pClient->vecWindowPosMain ) ); + + // window position of the settings window + PutIniSetting ( IniXMLDocument, "client", "winposset_base64", + ToBase64 ( pClient->vecWindowPosSettings ) ); + + // window position of the chat window + PutIniSetting ( IniXMLDocument, "client", "winposchat_base64", + ToBase64 ( pClient->vecWindowPosChat ) ); + + // window position of the musician profile window + PutIniSetting ( IniXMLDocument, "client", "winposprofile_base64", + ToBase64 ( pClient->vecWindowPosProfile ) ); + + // window position of the connect window + PutIniSetting ( IniXMLDocument, "client", "winposcon_base64", + ToBase64 ( pClient->vecWindowPosConnect ) ); + + // visibility state of the settings window + SetFlagIniSet ( IniXMLDocument, "client", "winvisset", + pClient->bWindowWasShownSettings ); + + // visibility state of the chat window + SetFlagIniSet ( IniXMLDocument, "client", "winvischat", + pClient->bWindowWasShownChat ); + + // visibility state of the musician profile window + SetFlagIniSet ( IniXMLDocument, "client", "winvisprofile", + pClient->bWindowWasShownProfile ); + + // visibility state of the connect window + SetFlagIniSet ( IniXMLDocument, "client", "winviscon", + pClient->bWindowWasShownConnect ); +} + + +// Server settings ------------------------------------------------------------- +void CServerSettings::ReadFromXML ( const QDomDocument& IniXMLDocument ) +{ + int iValue; + bool bValue; + + // central server address type (note that it is important + // to set this setting prior to the "central server address") + if ( GetNumericIniSet ( IniXMLDocument, "server", "centservaddrtype", + 0, static_cast ( AT_CUSTOM ), iValue ) ) + { + pServer->SetCentralServerAddressType ( static_cast ( iValue ) ); + } + else + { + // if no address type is given, choose one from the operating system locale + pServer->SetCentralServerAddressType ( CLocale::GetCentralServerAddressType ( QLocale::system().country() ) ); + } + +// TODO compatibility to old version +if ( GetFlagIniSet ( IniXMLDocument, "server", "defcentservaddr", bValue ) ) +{ + // only the case that manual was set in old ini must be considered + if ( !bValue ) + { + pServer->SetCentralServerAddressType ( AT_CUSTOM ); + } +} + + // central server address (to be set after the "use default central + // server address) + pServer->SetServerListCentralServerAddress ( + GetIniSetting ( IniXMLDocument, "server", "centralservaddr" ) ); + + // server list enabled flag + if ( GetFlagIniSet ( IniXMLDocument, "server", "servlistenabled", bValue ) ) + { + pServer->SetServerListEnabled ( bValue ); + } + + // name + pServer->SetServerName ( GetIniSetting ( IniXMLDocument, "server", "name" ) ); + + // city + pServer->SetServerCity ( GetIniSetting ( IniXMLDocument, "server", "city" ) ); + + // country + if ( GetNumericIniSet ( IniXMLDocument, "server", "country", + 0, static_cast ( QLocale::LastCountry ), iValue ) ) + { + pServer->SetServerCountry ( static_cast ( iValue ) ); + } + + // start minimized on OS start + if ( GetFlagIniSet ( IniXMLDocument, "server", "autostartmin", bValue ) ) + { + pServer->SetAutoRunMinimized ( bValue ); + } + + // licence type + if ( GetNumericIniSet ( IniXMLDocument, "server", "licencetype", + 0, 1 /* LT_CREATIVECOMMONS */, iValue ) ) + { + pServer->SetLicenceType ( static_cast ( iValue ) ); + } + + // window position of the main window + pServer->vecWindowPosMain = FromBase64ToByteArray ( + GetIniSetting ( IniXMLDocument, "server", "winposmain_base64" ) ); +} + +void CServerSettings::WriteToXML ( QDomDocument& IniXMLDocument ) +{ + // central server address + PutIniSetting ( IniXMLDocument, "server", "centralservaddr", + pServer->GetServerListCentralServerAddress() ); + + // central server address type + SetNumericIniSet ( IniXMLDocument, "server", "centservaddrtype", + static_cast ( pServer->GetCentralServerAddressType() ) ); + + // server list enabled flag + SetFlagIniSet ( IniXMLDocument, "server", "servlistenabled", + pServer->GetServerListEnabled() ); + + // name + PutIniSetting ( IniXMLDocument, "server", "name", + pServer->GetServerName() ); + + // city + PutIniSetting ( IniXMLDocument, "server", "city", + pServer->GetServerCity() ); + + // country + SetNumericIniSet ( IniXMLDocument, "server", "country", + static_cast ( pServer->GetServerCountry() ) ); + + // start minimized on OS start + SetFlagIniSet ( IniXMLDocument, "server", "autostartmin", + pServer->GetAutoRunMinimized() ); + + // licence type + SetNumericIniSet ( IniXMLDocument, "server", "licencetype", + static_cast ( pServer->GetLicenceType() ) ); + + // window position of the main window + PutIniSetting ( IniXMLDocument, "server", "winposmain_base64", + ToBase64 ( pServer->vecWindowPosMain ) ); +} diff --git a/src/settings.h b/src/settings.h index ab02d43252..dce526704a 100755 --- a/src/settings.h +++ b/src/settings.h @@ -39,18 +39,15 @@ class CSettings { public: - CSettings ( CClient* pNCliP, const QString& sNFiName ) : - pClient ( pNCliP ), bIsClient ( true ), strFileName ( "" ) - { SetFileName ( sNFiName, DEFAULT_INI_FILE_NAME ); } - - CSettings ( CServer* pNSerP, const QString& sNFiName ) : - pServer ( pNSerP ), bIsClient ( false ), strFileName ( "" ) - { SetFileName ( sNFiName, DEFAULT_INI_FILE_NAME_SERVER); } + CSettings() : strFileName ( "" ) {} void Load(); void Save(); protected: + virtual void ReadFromXML ( const QDomDocument& IniXMLDocument ) = 0; + virtual void WriteToXML ( QDomDocument& IniXMLDocument ) = 0; + void SetFileName ( const QString& sNFiName, const QString& sDefaultFileName ); @@ -106,10 +103,38 @@ class CSettings const QString& sKey, const QString& sValue = "" ); - // pointer to the client/server object which stores the various settings - CClient* pClient; // for client - CServer* pServer; // for server + QString strFileName; +}; + + +class CClientSettings : public CSettings +{ +public: + CClientSettings ( CClient* pNCliP, const QString& sNFiName ) : pClient ( pNCliP ) + { SetFileName ( sNFiName, DEFAULT_INI_FILE_NAME ); } + +protected: + virtual void ReadFromXML ( const QDomDocument& IniXMLDocument ) override; + virtual void WriteToXML ( QDomDocument& IniXMLDocument ) override; + + CClient* pClient; +}; + - bool bIsClient; - QString strFileName; +class CServerSettings : public CSettings +{ +public: + CServerSettings ( CServer* pNSerP, const QString& sNFiName ) : pServer ( pNSerP ) + { SetFileName ( sNFiName, DEFAULT_INI_FILE_NAME_SERVER); } + +protected: + virtual void ReadFromXML ( const QDomDocument& IniXMLDocument ) override; + virtual void WriteToXML ( QDomDocument& IniXMLDocument ) override; + + CServer* pServer; }; + + + + + From 044e4f3dba508c656eacfef612b6a8ce761f6630 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 30 Jun 2020 07:03:27 +0200 Subject: [PATCH 292/936] fix typo --- src/serverdlg.cpp | 2 +- src/serverlist.cpp | 2 +- src/util.h | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/serverdlg.cpp b/src/serverdlg.cpp index 9a63c88fd8..a621e35be9 100755 --- a/src/serverdlg.cpp +++ b/src/serverdlg.cpp @@ -637,7 +637,7 @@ void CServerDlg::UpdateGUIDependencies() case SRS_TIME_OUT: case SRS_CENTRAL_SVR_FULL: case SRS_VERSION_TOO_OLD: - case SRS_NOT_FULFILL_REQIREMENTS: + case SRS_NOT_FULFILL_REQUIREMENTS: strStatus = "" + strStatus + ""; break; diff --git a/src/serverlist.cpp b/src/serverlist.cpp index bf6b82c80f..bc472c1a71 100755 --- a/src/serverlist.cpp +++ b/src/serverlist.cpp @@ -516,7 +516,7 @@ void CServerListManager::StoreRegistrationResult ( ESvrRegResult eResult ) break; case ESvrRegResult::SRR_NOT_FULFILL_REQIREMENTS: - SetSvrRegStatus ( ESvrRegStatus::SRS_NOT_FULFILL_REQIREMENTS ); + SetSvrRegStatus ( ESvrRegStatus::SRS_NOT_FULFILL_REQUIREMENTS ); break; default: diff --git a/src/util.h b/src/util.h index 60aa19bc4e..4f89dfe06a 100755 --- a/src/util.h +++ b/src/util.h @@ -633,7 +633,7 @@ enum ESvrRegStatus SRS_REGISTERED, SRS_CENTRAL_SVR_FULL, SRS_VERSION_TOO_OLD, - SRS_NOT_FULFILL_REQIREMENTS + SRS_NOT_FULFILL_REQUIREMENTS }; inline QString svrRegStatusToString ( ESvrRegStatus eSvrRegStatus ) @@ -664,7 +664,7 @@ inline QString svrRegStatusToString ( ESvrRegStatus eSvrRegStatus ) case SRS_VERSION_TOO_OLD: return QCoreApplication::translate ( "CServerDlg", "Your server version is too old" ); - case SRS_NOT_FULFILL_REQIREMENTS: + case SRS_NOT_FULFILL_REQUIREMENTS: return QCoreApplication::translate ( "CServerDlg", "Requirements not fulfilled" ); } From 3e3fe44a7ff38da653c870cda0b716a3741de42d Mon Sep 17 00:00:00 2001 From: Stefan Weil Date: Mon, 29 Jun 2020 21:18:54 +0200 Subject: [PATCH 293/936] Fix some typos (found by codespell) Signed-off-by: Stefan Weil --- ChangeLog | 2 +- android/sound.cpp | 2 +- libs/opus/celt/arm/armcpu.c | 2 +- libs/opus/celt/arm/celt_pitch_xcorr_arm-gnu.S | 2 +- libs/opus/celt/arm/celt_pitch_xcorr_arm.s | 2 +- libs/opus/celt/celt_encoder.c | 2 +- libs/opus/celt/entcode.h | 2 +- libs/opus/celt/entenc.h | 2 +- libs/opus/celt/kiss_fft.c | 2 +- libs/opus/include/opus.h | 4 ++-- libs/opus/include/opus_multistream.h | 4 ++-- libs/opus/include/opus_projection.h | 2 +- libs/opus/opus_functions.cmake | 2 +- libs/opus/silk/PLC.c | 4 ++-- libs/opus/silk/control_SNR.c | 2 +- libs/opus/silk/decode_core.c | 2 +- libs/opus/silk/decode_indices.c | 2 +- libs/opus/silk/encode_indices.c | 2 +- libs/opus/silk/float/find_pitch_lags_FLP.c | 2 +- libs/opus/silk/main.h | 2 +- libs/opus/silk/mips/NSQ_del_dec_mipsr1.h | 4 ++-- libs/opus/silk/structs.h | 2 +- libs/opus/src/analysis.h | 2 +- libs/opus/src/opus_encoder.c | 2 +- linux/sound.cpp | 2 +- mac/sound.cpp | 4 ++-- src/audiomixerboard.cpp | 16 ++++++++-------- src/buffer.cpp | 4 ++-- src/buffer.h | 4 ++-- src/channel.cpp | 2 +- src/chatdlg.cpp | 4 ++-- src/client.cpp | 4 ++-- src/clientdlg.cpp | 6 +++--- src/connectdlg.cpp | 18 +++++++++--------- src/protocol.cpp | 8 ++++---- src/recorder/jamrecorder.cpp | 6 +++--- src/recorder/jamrecorder.h | 2 +- src/server.cpp | 10 +++++----- src/serverdlg.cpp | 4 ++-- src/serverlist.cpp | 2 +- src/soundbase.cpp | 2 +- src/testbench.h | 2 +- src/util.cpp | 12 ++++++------ windows/deploy_windows.bat | 2 +- windows/sound.cpp | 8 ++++---- 45 files changed, 89 insertions(+), 89 deletions(-) diff --git a/ChangeLog b/ChangeLog index ea1b5898df..48c9ea64b5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -501,7 +501,7 @@ TODO https://github.com/corrados/jamulus/issues/341#issuecomment-647172946 - show number of connected clients in window title (and therefore in OS task bar) -- added "Whats this" help text to the GUI controls in the general settings +- added "What's this" help text to the GUI controls in the general settings dialog, added Tool Tips to some GUI controls - server logging history grid lines of weekend days are now plotted with diff --git a/android/sound.cpp b/android/sound.cpp index 5223cfd656..00c65f8060 100644 --- a/android/sound.cpp +++ b/android/sound.cpp @@ -262,7 +262,7 @@ oboe::DataCallbackResult CSound::onAudioReady(oboe::AudioStream *oboeStream, voi } // We're good to start recording now - // Take the data from the recording device ouput buffer and move + // Take the data from the recording device output buffer and move // it to the vector ready to send up to the server float *floatData = static_cast(audioData); diff --git a/libs/opus/celt/arm/armcpu.c b/libs/opus/celt/arm/armcpu.c index 694a63b78e..6987b69a18 100644 --- a/libs/opus/celt/arm/armcpu.c +++ b/libs/opus/celt/arm/armcpu.c @@ -148,7 +148,7 @@ opus_uint32 opus_cpu_capabilities(void) } #else /* The feature registers which can tell us what the processor supports are - * accessible in priveleged modes only, so we can't have a general user-space + * accessible in privileged modes only, so we can't have a general user-space * detection method like on x86.*/ # error "Configured to use ARM asm but no CPU detection method available for " \ "your platform. Reconfigure with --disable-rtcd (or send patches)." diff --git a/libs/opus/celt/arm/celt_pitch_xcorr_arm-gnu.S b/libs/opus/celt/arm/celt_pitch_xcorr_arm-gnu.S index 10668e54a5..e6a397652f 100644 --- a/libs/opus/celt/arm/celt_pitch_xcorr_arm-gnu.S +++ b/libs/opus/celt/arm/celt_pitch_xcorr_arm-gnu.S @@ -81,7 +81,7 @@ xcorr_kernel_neon_process8: @ @ Load x[0...7] VLD1.16 {d6, d7}, [r4]! - @ Unlike VMOV, VAND is a data processsing instruction (and doesn't get + @ Unlike VMOV, VAND is a data processing instruction (and doesn't get @ assembled to VMOV, like VORR would), so it dual-issues with the prior VLD1. VAND d3, d5, d5 SUBS r12, r12, #8 diff --git a/libs/opus/celt/arm/celt_pitch_xcorr_arm.s b/libs/opus/celt/arm/celt_pitch_xcorr_arm.s index 6e873afc37..65a4461fff 100644 --- a/libs/opus/celt/arm/celt_pitch_xcorr_arm.s +++ b/libs/opus/celt/arm/celt_pitch_xcorr_arm.s @@ -78,7 +78,7 @@ xcorr_kernel_neon_process8 ; ; Load x[0...7] VLD1.16 {d6, d7}, [r4]! - ; Unlike VMOV, VAND is a data processsing instruction (and doesn't get + ; Unlike VMOV, VAND is a data processing instruction (and doesn't get ; assembled to VMOV, like VORR would), so it dual-issues with the prior VLD1. VAND d3, d5, d5 SUBS r12, r12, #8 diff --git a/libs/opus/celt/celt_encoder.c b/libs/opus/celt/celt_encoder.c index d6f8afc20b..f49a0e8e92 100644 --- a/libs/opus/celt/celt_encoder.c +++ b/libs/opus/celt/celt_encoder.c @@ -364,7 +364,7 @@ static int transient_analysis(const opus_val32 * OPUS_RESTRICT in, int len, int unmask=0; /* We should never see NaNs here. If we find any, then something really bad happened and we better abort before it does any damage later on. If these asserts are disabled (no hardening), then the table - lookup a few lines below (id = ...) is likely to crash dur to an out-of-bounds read. DO NOT FIX + lookup a few lines below (id = ...) is likely to crash due to an out-of-bounds read. DO NOT FIX that crash on NaN since it could result in a worse issue later on. */ celt_assert(!celt_isnan(tmp[0])); celt_assert(!celt_isnan(norm)); diff --git a/libs/opus/celt/entcode.h b/libs/opus/celt/entcode.h index 3763e3f284..de145c7193 100644 --- a/libs/opus/celt/entcode.h +++ b/libs/opus/celt/entcode.h @@ -82,7 +82,7 @@ struct ec_ctx{ In the encoder: the low end of the current range.*/ opus_uint32 val; /*In the decoder: the saved normalization factor from ec_decode(). - In the encoder: the number of oustanding carry propagating symbols.*/ + In the encoder: the number of outstanding carry propagating symbols.*/ opus_uint32 ext; /*A buffered input/output symbol, awaiting carry propagation.*/ int rem; diff --git a/libs/opus/celt/entenc.h b/libs/opus/celt/entenc.h index f502eaf662..a544f79c0f 100644 --- a/libs/opus/celt/entenc.h +++ b/libs/opus/celt/entenc.h @@ -35,7 +35,7 @@ _size: The size of the buffer, in chars.*/ void ec_enc_init(ec_enc *_this,unsigned char *_buf,opus_uint32 _size); /*Encodes a symbol given its frequency information. - The frequency information must be discernable by the decoder, assuming it + The frequency information must be discernible by the decoder, assuming it has read only the previous symbols from the stream. It is allowable to change the frequency information, or even the entire source alphabet, so long as the decoder can tell from the context of the diff --git a/libs/opus/celt/kiss_fft.c b/libs/opus/celt/kiss_fft.c index 83775165d8..a0ea27666a 100644 --- a/libs/opus/celt/kiss_fft.c +++ b/libs/opus/celt/kiss_fft.c @@ -42,7 +42,7 @@ #include "stack_alloc.h" /* The guts header contains all the multiplication and addition macros that are defined for - complex numbers. It also delares the kf_ internal functions. + complex numbers. It also declares the kf_ internal functions. */ static void kf_bfly2( diff --git a/libs/opus/include/opus.h b/libs/opus/include/opus.h index d282f21d25..eca574d540 100644 --- a/libs/opus/include/opus.h +++ b/libs/opus/include/opus.h @@ -103,7 +103,7 @@ extern "C" { * @endcode * * where opus_encoder_get_size() returns the required size for the encoder state. Note that - * future versions of this code may change the size, so no assuptions should be made about it. + * future versions of this code may change the size, so no assumptions should be made about it. * * The encoder state is always continuous in memory and only a shallow copy is sufficient * to copy it (e.g. memcpy()) @@ -357,7 +357,7 @@ OPUS_EXPORT int opus_encoder_ctl(OpusEncoder *st, int request, ...) OPUS_ARG_NON * error = opus_decoder_init(dec, Fs, channels); * @endcode * where opus_decoder_get_size() returns the required size for the decoder state. Note that - * future versions of this code may change the size, so no assuptions should be made about it. + * future versions of this code may change the size, so no assumptions should be made about it. * * The decoder state is always continuous in memory and only a shallow copy is sufficient * to copy it (e.g. memcpy()) diff --git a/libs/opus/include/opus_multistream.h b/libs/opus/include/opus_multistream.h index babcee6905..f4dcd1bb9d 100644 --- a/libs/opus/include/opus_multistream.h +++ b/libs/opus/include/opus_multistream.h @@ -143,7 +143,7 @@ extern "C" { *
Vorbis * channel ordering. A decoder may wish to apply an additional permutation * to the mapping the encoder used to achieve a different output channel - * order (e.g. for outputing in WAV order). + * order (e.g. for outputting in WAV order). * * Each multistream packet contains an Opus packet for each stream, and all of * the Opus packets in a single multistream packet must have the same @@ -510,7 +510,7 @@ OPUS_EXPORT OPUS_WARN_UNUSED_RESULT OpusMSDecoder *opus_multistream_decoder_crea int *error ) OPUS_ARG_NONNULL(5); -/** Intialize a previously allocated decoder state object. +/** Initialize a previously allocated decoder state object. * The memory pointed to by \a st must be at least the size returned by * opus_multistream_encoder_get_size(). * This is intended for applications which use their own allocator instead of diff --git a/libs/opus/include/opus_projection.h b/libs/opus/include/opus_projection.h index 9dabf4e85c..5bdc6e66de 100644 --- a/libs/opus/include/opus_projection.h +++ b/libs/opus/include/opus_projection.h @@ -405,7 +405,7 @@ OPUS_EXPORT OPUS_WARN_UNUSED_RESULT OpusProjectionDecoder *opus_projection_decod ) OPUS_ARG_NONNULL(5); -/** Intialize a previously allocated projection decoder state object. +/** Initialize a previously allocated projection decoder state object. * The memory pointed to by \a st must be at least the size returned by * opus_projection_decoder_get_size(). * This is intended for applications which use their own allocator instead of diff --git a/libs/opus/opus_functions.cmake b/libs/opus/opus_functions.cmake index fe309c2c49..f69408cfe2 100644 --- a/libs/opus/opus_functions.cmake +++ b/libs/opus/opus_functions.cmake @@ -248,7 +248,7 @@ function(get_opus_sources SOURCE_GROUP MAKE_FILE SOURCES) if(${list_length} LESS 1) message( FATAL_ERROR - "No files parsed succesfully from ${SOURCE_GROUP} in ${MAKE_FILE}") + "No files parsed successfully from ${SOURCE_GROUP} in ${MAKE_FILE}") endif() # remove trailing whitespaces diff --git a/libs/opus/silk/PLC.c b/libs/opus/silk/PLC.c index f89391651c..bf808cf0c4 100644 --- a/libs/opus/silk/PLC.c +++ b/libs/opus/silk/PLC.c @@ -156,7 +156,7 @@ static OPUS_INLINE void silk_PLC_update( silk_memset( psPLC->LTPCoef_Q14, 0, LTP_ORDER * sizeof( opus_int16 )); } - /* Save LPC coeficients */ + /* Save LPC coefficients */ silk_memcpy( psPLC->prevLPC_Q12, psDecCtrl->PredCoef_Q12[ 1 ], psDec->LPC_order * sizeof( opus_int16 ) ); psPLC->prevLTP_scale_Q14 = psDecCtrl->LTP_scale_Q14; @@ -257,7 +257,7 @@ static OPUS_INLINE void silk_PLC_conceal( /* LPC concealment. Apply BWE to previous LPC */ silk_bwexpander( psPLC->prevLPC_Q12, psDec->LPC_order, SILK_FIX_CONST( BWE_COEF, 16 ) ); - /* Preload LPC coeficients to array on stack. Gives small performance gain */ + /* Preload LPC coefficients to array on stack. Gives small performance gain */ silk_memcpy( A_Q12, psPLC->prevLPC_Q12, psDec->LPC_order * sizeof( opus_int16 ) ); /* First Lost frame */ diff --git a/libs/opus/silk/control_SNR.c b/libs/opus/silk/control_SNR.c index 9a6db27543..455acad6f6 100644 --- a/libs/opus/silk/control_SNR.c +++ b/libs/opus/silk/control_SNR.c @@ -78,7 +78,7 @@ static const unsigned char silk_TargetRate_WB_21[201 - 10] = { 247,248,249,249,250,251,252,253,255 }; -/* Control SNR of redidual quantizer */ +/* Control SNR of residual quantizer */ opus_int silk_control_SNR( silk_encoder_state *psEncC, /* I/O Pointer to Silk encoder state */ opus_int32 TargetRate_bps /* I Target max bitrate (bps) */ diff --git a/libs/opus/silk/decode_core.c b/libs/opus/silk/decode_core.c index 1c352a6522..79f378034d 100644 --- a/libs/opus/silk/decode_core.c +++ b/libs/opus/silk/decode_core.c @@ -98,7 +98,7 @@ void silk_decode_core( pres_Q14 = res_Q14; A_Q12 = psDecCtrl->PredCoef_Q12[ k >> 1 ]; - /* Preload LPC coeficients to array on stack. Gives small performance gain */ + /* Preload LPC coefficients to array on stack. Gives small performance gain */ silk_memcpy( A_Q12_tmp, A_Q12, psDec->LPC_order * sizeof( opus_int16 ) ); B_Q14 = &psDecCtrl->LTPCoef_Q14[ k * LTP_ORDER ]; signalType = psDec->indices.signalType; diff --git a/libs/opus/silk/decode_indices.c b/libs/opus/silk/decode_indices.c index 0bb4a997a5..268e4276b3 100644 --- a/libs/opus/silk/decode_indices.c +++ b/libs/opus/silk/decode_indices.c @@ -120,7 +120,7 @@ void silk_decode_indices( } psDec->ec_prevLagIndex = psDec->indices.lagIndex; - /* Get countour index */ + /* Get contour index */ psDec->indices.contourIndex = (opus_int8)ec_dec_icdf( psRangeDec, psDec->pitch_contour_iCDF, 8 ); /********************/ diff --git a/libs/opus/silk/encode_indices.c b/libs/opus/silk/encode_indices.c index 4bcbc3347b..8a6db2cbe1 100644 --- a/libs/opus/silk/encode_indices.c +++ b/libs/opus/silk/encode_indices.c @@ -140,7 +140,7 @@ void silk_encode_indices( } psEncC->ec_prevLagIndex = psIndices->lagIndex; - /* Countour index */ + /* Contour index */ silk_assert( psIndices->contourIndex >= 0 ); silk_assert( ( psIndices->contourIndex < 34 && psEncC->fs_kHz > 8 && psEncC->nb_subfr == 4 ) || ( psIndices->contourIndex < 11 && psEncC->fs_kHz == 8 && psEncC->nb_subfr == 4 ) || diff --git a/libs/opus/silk/float/find_pitch_lags_FLP.c b/libs/opus/silk/float/find_pitch_lags_FLP.c index dedbcd2836..fc66ffb379 100644 --- a/libs/opus/silk/float/find_pitch_lags_FLP.c +++ b/libs/opus/silk/float/find_pitch_lags_FLP.c @@ -61,7 +61,7 @@ void silk_find_pitch_lags_FLP( x_buf = x - psEnc->sCmn.ltp_mem_length; /******************************************/ - /* Estimate LPC AR coeficients */ + /* Estimate LPC AR coefficients */ /******************************************/ /* Calculate windowed signal */ diff --git a/libs/opus/silk/main.h b/libs/opus/silk/main.h index 1a33eed549..0bed912ecb 100644 --- a/libs/opus/silk/main.h +++ b/libs/opus/silk/main.h @@ -142,7 +142,7 @@ opus_int silk_control_audio_bandwidth( silk_EncControlStruct *encControl /* I Control structure */ ); -/* Control SNR of redidual quantizer */ +/* Control SNR of residual quantizer */ opus_int silk_control_SNR( silk_encoder_state *psEncC, /* I/O Pointer to Silk encoder state */ opus_int32 TargetRate_bps /* I Target max bitrate (bps) */ diff --git a/libs/opus/silk/mips/NSQ_del_dec_mipsr1.h b/libs/opus/silk/mips/NSQ_del_dec_mipsr1.h index cd70713a8f..70222aeeb2 100644 --- a/libs/opus/silk/mips/NSQ_del_dec_mipsr1.h +++ b/libs/opus/silk/mips/NSQ_del_dec_mipsr1.h @@ -86,14 +86,14 @@ static inline void silk_noise_shape_quantizer_del_dec( /*Unused.*/ (void)arch; - //Intialize b_Q14 variables + //Initialize b_Q14 variables b_Q14_0 = b_Q14[ 0 ]; b_Q14_1 = b_Q14[ 1 ]; b_Q14_2 = b_Q14[ 2 ]; b_Q14_3 = b_Q14[ 3 ]; b_Q14_4 = b_Q14[ 4 ]; - //Intialize a_Q12 variables + //Initialize a_Q12 variables a_Q12_0 = a_Q12[0]; a_Q12_1 = a_Q12[1]; a_Q12_2 = a_Q12[2]; diff --git a/libs/opus/silk/structs.h b/libs/opus/silk/structs.h index 3380c757b2..da66fe638d 100644 --- a/libs/opus/silk/structs.h +++ b/libs/opus/silk/structs.h @@ -231,7 +231,7 @@ typedef struct { /* Struct for Packet Loss Concealment */ typedef struct { opus_int32 pitchL_Q8; /* Pitch lag to use for voiced concealment */ - opus_int16 LTPCoef_Q14[ LTP_ORDER ]; /* LTP coeficients to use for voiced concealment */ + opus_int16 LTPCoef_Q14[ LTP_ORDER ]; /* LTP coefficients to use for voiced concealment */ opus_int16 prevLPC_Q12[ MAX_LPC_ORDER ]; opus_int last_frame_lost; /* Was previous frame lost */ opus_int32 rand_seed; /* Seed for unvoiced signal generation */ diff --git a/libs/opus/src/analysis.h b/libs/opus/src/analysis.h index 0b66555f21..cb19cc0dfa 100644 --- a/libs/opus/src/analysis.h +++ b/libs/opus/src/analysis.h @@ -88,7 +88,7 @@ typedef struct { */ void tonality_analysis_init(TonalityAnalysisState *analysis, opus_int32 Fs); -/** Reset a TonalityAnalysisState stuct. +/** Reset a TonalityAnalysisState struct. * * Call this when there's a discontinuity in the data. */ diff --git a/libs/opus/src/opus_encoder.c b/libs/opus/src/opus_encoder.c index e98ac5b8d0..5c1366e193 100644 --- a/libs/opus/src/opus_encoder.c +++ b/libs/opus/src/opus_encoder.c @@ -1604,7 +1604,7 @@ opus_int32 opus_encode_native(OpusEncoder *st, const opus_val16 *pcm, int frame_ redundancy = 1; celt_to_silk = 1; st->silk_bw_switch = 0; - /* Do a prefill without reseting the sampling rate control. */ + /* Do a prefill without resetting the sampling rate control. */ prefill=2; } diff --git a/linux/sound.cpp b/linux/sound.cpp index 0687abfeee..e7239d417e 100755 --- a/linux/sound.cpp +++ b/linux/sound.cpp @@ -187,7 +187,7 @@ int CSound::Init ( const int /* iNewPrefMonoBufferSize */ ) // try setting buffer size // TODO seems not to work! -> no audio after this operation! // Doesn't this give an infinite loop? The set buffer size function will call our -// registerd callback which calls "EmitReinitRequestSignal()". In that function +// registered callback which calls "EmitReinitRequestSignal()". In that function // this CSound::Init() function is called... //jack_set_buffer_size ( pJackClient, iNewPrefMonoBufferSize ); diff --git a/mac/sound.cpp b/mac/sound.cpp index 2d69b0ae30..998686993b 100755 --- a/mac/sound.cpp +++ b/mac/sound.cpp @@ -312,7 +312,7 @@ int CSound::CountChannels ( AudioDeviceID devID, QString CSound::LoadAndInitializeDriver ( int iDriverIdx, bool ) { - // check device capabilities if it fullfills our requirements + // check device capabilities if it fulfills our requirements const QString strStat = CheckDeviceCapabilities ( iDriverIdx ); // check if device is capable @@ -561,7 +561,7 @@ QString CSound::CheckDeviceCapabilities ( const int iDriverIdx ) // add the "[n]:" at the beginning as is in the Audio-Midi-Setup if ( !bConvOK || ( iPropertySize == 0 ) ) { - // use a defalut name in case there was an error or the name is empty + // use a default name in case there was an error or the name is empty sChannelNamesOutput[iCurOutCH] = QString ( "%1: Channel %1" ).arg ( iCurOutCH + 1 ); } diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index b7bfdcdb27..3fbd85ff87 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -204,7 +204,7 @@ void CChannelFader::SetGUIDesign ( const EGUIDesign eNewDesign ) "QSlider::handle { image: url(:/png/fader/res/faderhandle.png); }" ); pLabelGrid->addWidget ( plblLabel, 0, Qt::AlignVCenter ); // label next to icons - pLabelInstBox->setMinimumHeight ( 52 ); // maximum hight of the instrument+flag pictures + pLabelInstBox->setMinimumHeight ( 52 ); // maximum height of the instrument+flag pictures pFader->setMinimumHeight ( 120 ); // if this value is too small, the fader might not be movable with the mouse for fancy skin (#292) pPan->setFixedSize ( 50, 50 ); pPanLabel->setText ( tr ( "PAN" ) ); @@ -216,7 +216,7 @@ void CChannelFader::SetGUIDesign ( const EGUIDesign eNewDesign ) case GD_SLIMFADER: pLabelPictGrid->addWidget ( plblLabel, 0, Qt::AlignHCenter ); // label below icons - pLabelInstBox->setMinimumHeight ( 84 ); // maximum hight of the instrument+flag+label + pLabelInstBox->setMinimumHeight ( 84 ); // maximum height of the instrument+flag+label pFader->setMinimumHeight ( 85 ); pPan->setFixedSize ( 28, 28 ); pFader->setTickPosition ( QSlider::NoTicks ); @@ -229,11 +229,11 @@ void CChannelFader::SetGUIDesign ( const EGUIDesign eNewDesign ) break; default: - // reset style sheet and set original paramters + // reset style sheet and set original parameters pFader->setTickPosition ( QSlider::TicksBothSides ); pFader->setStyleSheet ( "" ); pLabelGrid->addWidget ( plblLabel, 0, Qt::AlignVCenter ); // label next to icons - pLabelInstBox->setMinimumHeight ( 52 ); // maximum hight of the instrument+flag pictures + pLabelInstBox->setMinimumHeight ( 52 ); // maximum height of the instrument+flag pictures pFader->setMinimumHeight ( 85 ); pPan->setFixedSize ( 50, 50 ); pPanLabel->setText ( tr ( "Pan" ) ); @@ -691,7 +691,7 @@ CAudioMixerBoard::CAudioMixerBoard ( QWidget* parent, Qt::WindowFlags ) : pMainLayout->addItem ( new QSpacerItem ( 0, 0, QSizePolicy::Expanding ) ); // set margins of the layout to zero to get maximum space for the controls - pGroupBoxLayout->setContentsMargins ( 0, 0, 0, 1 ); // note: to avoid problems at the botton, use a small margin for that + pGroupBoxLayout->setContentsMargins ( 0, 0, 0, 1 ); // note: to avoid problems at the bottom, use a small margin for that // add the group box to the scroll area pScrollArea->setMinimumWidth ( 200 ); // at least two faders shall be visible @@ -816,7 +816,7 @@ void CAudioMixerBoard::HideAll() // make all controls invisible for ( int i = 0; i < MAX_NUM_CHANNELS; i++ ) { - // before hiding the fader, store its level (if some conditions are fullfilled) + // before hiding the fader, store its level (if some conditions are fulfilled) StoreFaderSettings ( vecpChanFader[i] ); vecpChanFader[i]->SetChannelLevel ( 0 ); @@ -978,7 +978,7 @@ void CAudioMixerBoard::ApplyNewConClientList ( CVector& vecChanInf // if current fader is not used, hide it if ( !bFaderIsUsed ) { - // before hiding the fader, store its level (if some conditions are fullfilled) + // before hiding the fader, store its level (if some conditions are fulfilled) StoreFaderSettings ( vecpChanFader[i] ); vecpChanFader[i]->Hide(); @@ -1067,7 +1067,7 @@ void CAudioMixerBoard::UpdateGainValue ( const int iChannelIdx, if ( vecpChanFader[i]->IsVisible() && vecpChanFader[i]->IsSelect() && ( i != iChannelIdx ) ) { // synchronize faders with moving fader level (it is important - // to set the group flag to avoid inifinite looping) + // to set the group flag to avoid infinite looping) vecpChanFader[i]->SetFaderLevel ( vecpChanFader[i]->GetFaderLevel() + iDiffLevel, true ); } } diff --git a/src/buffer.cpp b/src/buffer.cpp index dd080dba30..70610e5ab5 100755 --- a/src/buffer.cpp +++ b/src/buffer.cpp @@ -291,14 +291,14 @@ void CNetBufWithStats::UpdateAutoSetting() iCurMaxUpDecision = viBufSizesForSim[NUM_STAT_SIMULATION_BUFFERS - 1]; // This is a worst case, something very bad had happened. Hopefully - // this was just temporary so that we initiate a new initialzation + // this was just temporary so that we initiate a new initialization // phase to get quickly back to normal buffer sizes (hopefully). ResetInitCounter(); } // Post calculation (filtering) -------------------------------------------- - // Define different weigths for up and down direction. Up direction + // Define different weights for up and down direction. Up direction // filtering shall be slower than for down direction since we assume // that the lower value is the actual value which can be used for // the current network condition. If the current error rate estimation diff --git a/src/buffer.h b/src/buffer.h index b41f5e9c33..6f135dcb7b 100755 --- a/src/buffer.h +++ b/src/buffer.h @@ -260,7 +260,7 @@ template class CBufferBase eBufState = CBufferBase::BS_OK; } - return true; // no error check in base class, alyways return ok + return true; // no error check in base class, always return ok } virtual bool Get ( CVector& vecData, @@ -327,7 +327,7 @@ template class CBufferBase eBufState = CBufferBase::BS_OK; } - return true; // no error check in base class, alyways return ok + return true; // no error check in base class, always return ok } virtual int GetAvailSpace() const diff --git a/src/channel.cpp b/src/channel.cpp index ce2b7c8ee6..e22f5f1ac0 100755 --- a/src/channel.cpp +++ b/src/channel.cpp @@ -550,7 +550,7 @@ EPutDataStat CChannel::PutAudioData ( const CVector& vecbyData, else { // the protocol parsing failed and this was no audio block, - // we treat this as protocol error (unkown packet) + // we treat this as protocol error (unknown packet) eRet = PS_PROT_ERR; } diff --git a/src/chatdlg.cpp b/src/chatdlg.cpp index e2555bf093..d553a998c3 100755 --- a/src/chatdlg.cpp +++ b/src/chatdlg.cpp @@ -52,7 +52,7 @@ CChatDlg::CChatDlg ( QWidget* parent, Qt::WindowFlags f ) : txvChatWindow->clear(); edtLocalInputText->clear(); - // we do not want to show a curser in the chat history + // we do not want to show a cursor in the chat history txvChatWindow->setCursorWidth ( 0 ); // set a placeholder text to make sure where to type the message in (#384) @@ -85,7 +85,7 @@ void CChatDlg::OnLocalInputTextTextChanged ( const QString& strNewText ) // check and correct length if ( strNewText.length() > MAX_LEN_CHAT_TEXT ) { - // text is too long, update control with shortend text + // text is too long, update control with shortened text edtLocalInputText->setText ( strNewText.left ( MAX_LEN_CHAT_TEXT ) ); } } diff --git a/src/client.cpp b/src/client.cpp index b8ad0edb3d..24afe5d9d4 100755 --- a/src/client.cpp +++ b/src/client.cpp @@ -254,7 +254,7 @@ void CClient::OnSendCLProtMessage ( CHostAddress InetAddr, void CClient::OnInvalidPacketReceived ( CHostAddress RecHostAddr ) { - // message coult not be parsed, check if the packet comes + // message could not be parsed, check if the packet comes // from the server we just connected -> if yes, send // disconnect message since the server may not know that we // are not connected anymore @@ -1184,7 +1184,7 @@ int CClient::EstimatedOverallDelay ( const int iPingTimeMs ) if ( dSoundCardInputOutputLatencyMs == 0.0 ) { - // use an alternative aproach for estimating the sound card delay: + // use an alternative approach for estimating the sound card delay: // // we assume that we have two period sizes for the input and one for the // output, therefore we have "3 *" instead of "2 *" (for input and output) diff --git a/src/clientdlg.cpp b/src/clientdlg.cpp index e705297351..166f0d9810 100755 --- a/src/clientdlg.cpp +++ b/src/clientdlg.cpp @@ -242,7 +242,7 @@ CClientDlg::CClientDlg ( CClient* pNCliP, // Mac Workaround: // If the connect button is the default button, on Mac it is highlighted - // by fading in and out a blue backgroud color. This operation consumes so + // by fading in and out a blue background color. This operation consumes so // much CPU that we get audio interruptions. // Better solution: increase thread priority of worker thread (since the // user can always highlight the button manually, too) -> TODO @@ -711,7 +711,7 @@ void CClientDlg::OnConnectDlgAccepted() // user strMixerBoardLabel = strSelectedAddress; - // special case: if the address is empty, we substitude the default + // special case: if the address is empty, we substitute the default // central server address so that a user which just pressed the connect // button without selecting an item in the table or manually entered an // address gets a successful connection @@ -1197,7 +1197,7 @@ rbtReverbSelR->setStyleSheet ( "color: rgb(220, 220, 220);" break; default: - // reset style sheet and set original paramters + // reset style sheet and set original parameters backgroundFrame->setStyleSheet ( "" ); #ifdef _WIN32 diff --git a/src/connectdlg.cpp b/src/connectdlg.cpp index c94015840d..332b45aa92 100755 --- a/src/connectdlg.cpp +++ b/src/connectdlg.cpp @@ -295,7 +295,7 @@ void CConnectDlg::SetServerList ( const CHostAddress& InetAddr, } else { - // substitude the receive host address for central server + // substitute the receive host address for central server CurHostAddress = InetAddr; } @@ -412,7 +412,7 @@ void CConnectDlg::SetConnClientsList ( const CHostAddress& InetAddr, if ( pCurListViewItem ) { - // first remove any existing childs + // first remove any existing children DeleteAllListViewItemChilds ( pCurListViewItem ); // get number of connected clients @@ -477,8 +477,8 @@ void CConnectDlg::SetConnClientsList ( const CHostAddress& InetAddr, // add the new child to the corresponding server item pCurListViewItem->addChild ( pNewChildListViewItem ); - // at least one server has childs now, show decoration to be able - // to show the childs + // at least one server has children now, show decoration to be able + // to show the children lvwServers->setRootIsDecorated ( true ); } } @@ -486,7 +486,7 @@ void CConnectDlg::SetConnClientsList ( const CHostAddress& InetAddr, void CConnectDlg::OnServerListItemSelectionChanged() { - // get current selected item (we are only interested in the first selcted + // get current selected item (we are only interested in the first selected // item) QList CurSelListItemList = lvwServers->selectedItems(); @@ -569,7 +569,7 @@ void CConnectDlg::UpdateListFilter() bFilterFound = true; } - // search childs + // search children for ( int iCCnt = 0; iCCnt < pCurListViewItem->childCount(); iCCnt++ ) { if ( pCurListViewItem->child ( iCCnt )->text ( 0 ).indexOf ( sFilterText, 0, Qt::CaseInsensitive ) >= 0 ) @@ -785,13 +785,13 @@ void CConnectDlg::SetPingTimeAndNumClientsResult ( const CHostAddress& InetAddr, } } - // if no server item has childs, do not show decoration + // if no server item has children, do not show decoration bool bAnyListItemHasChilds = false; const int iServerListLen = lvwServers->topLevelItemCount(); for ( int iIdx = 0; iIdx < iServerListLen; iIdx++ ) { - // check if the current list item has childs + // check if the current list item has children if ( lvwServers->topLevelItem ( iIdx )->childCount() > 0 ) { bAnyListItemHasChilds = true; @@ -846,7 +846,7 @@ QTreeWidgetItem* CConnectDlg::GetParentListViewItem ( QTreeWidgetItem* pItem ) void CConnectDlg::DeleteAllListViewItemChilds ( QTreeWidgetItem* pItem ) { - // loop over all childs + // loop over all children while ( pItem->childCount() > 0 ) { // get the first child in the list diff --git a/src/protocol.cpp b/src/protocol.cpp index 6307bf7b5f..37a5355d07 100755 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -268,9 +268,9 @@ CONNECTION LESS MESSAGES ... ------------------+----------------------------------+ ... ... 2 bytes number n | n bytes UTF-8 string server name | ... ... ------------------+----------------------------------+ ... - ... ------------------+---------------------------------------------+ ... - ... 2 bytes number n | n bytes UTF-8 string server interal address | ... - ... ------------------+---------------------------------------------+ ... + ... ------------------+----------------------------------------------+ ... + ... 2 bytes number n | n bytes UTF-8 string server internal address | ... + ... ------------------+----------------------------------------------+ ... ... ------------------+---------------------------+ ... 2 bytes number n | n bytes UTF-8 string city | ... ------------------+---------------------------+ @@ -282,7 +282,7 @@ CONNECTION LESS MESSAGES - "is permanent" is a flag which indicates if the server is permanent online or not. If this value is any value <> 0 indicates that the server is permanent online. - - "server interal address" represents the IPv4 address as a dotted quad to + - "server internal address" represents the IPv4 address as a dotted quad to be used by clients with the same external IP address as the server. NOTE: In the PROTMESSID_CLM_SERVER_LIST list, this field will be empty as only the initial IP address should be used by the client. Where diff --git a/src/recorder/jamrecorder.cpp b/src/recorder/jamrecorder.cpp index 651755b1d9..43f1343983 100644 --- a/src/recorder/jamrecorder.cpp +++ b/src/recorder/jamrecorder.cpp @@ -154,7 +154,7 @@ void CJamSession::DisconnectClient(int iChID) } /** - * @brief CJamSession::Frame Process a frame emited for a client by the server + * @brief CJamSession::Frame Process a frame emitted for a client by the server * @param iChID the client channel id * @param name the client name * @param address the client IP and port number @@ -301,7 +301,7 @@ QMap> CJamSession::TracksFromSessionDir(const QString /** * @brief CJamRecorder::Init Create recording directory, if necessary, and connect signal handlers - * @param server Server object emiting signals + * @param server Server object emitting signals * @return QString::null on success else the failure reason */ QString CJamRecorder::Init() @@ -506,7 +506,7 @@ void CJamRecorder::OnDisconnected(int iChID) } /** - * @brief CJamRecorder::OnFrame Handle a frame emited for a client by the server + * @brief CJamRecorder::OnFrame Handle a frame emitted for a client by the server * @param iChID the client channel id * @param name the client name * @param address the client IP and port number diff --git a/src/recorder/jamrecorder.h b/src/recorder/jamrecorder.h index 9ecb79345b..d5c97c77d5 100644 --- a/src/recorder/jamrecorder.h +++ b/src/recorder/jamrecorder.h @@ -149,7 +149,7 @@ class CJamRecorder : public QObject /** * @brief Create recording directory, if necessary, and connect signal handlers - * @param server Server object emiting signals + * @param server Server object emitting signals */ QString Init(); diff --git a/src/server.cpp b/src/server.cpp index 7f1ca63796..ed0a8a2ed2 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -390,7 +390,7 @@ CServer::CServer ( const int iNewMaxNumChan, { QString strCurServerNameForHTMLStatusFile = strServerNameForHTMLStatusFile; - // if server name is empty, substitude a default name + // if server name is empty, substitute a default name if ( strCurServerNameForHTMLStatusFile.isEmpty() ) { strCurServerNameForHTMLStatusFile = "[server address]"; @@ -412,7 +412,7 @@ CServer::CServer ( const int iNewMaxNumChan, if ( file.open ( QIODevice::ReadOnly | QIODevice::Text ) ) { - // use entrie file content for the welcome message + // use entire file content for the welcome message strWelcomeMessage = file.readAll(); } } @@ -616,7 +616,7 @@ void CServer::OnNewConnection ( int iChID, // a channel name request to the client which causes a channel // name message to be transmitted to the server. If the server // receives this message, the channel list will be automatically - // updated (implicitely). + // updated (implicitly). // // Usually it is not required to send the channel list to the // client currently connecting since it automatically requests @@ -631,7 +631,7 @@ void CServer::OnNewConnection ( int iChID, // send welcome message (if enabled) if ( !strWelcomeMessage.isEmpty() ) { - // create formated server welcome message and send it just to + // create formatted server welcome message and send it just to // the client which just connected to the server const QString strWelcomeMessageFormated = "Server Welcome Message: " + strWelcomeMessage; @@ -1021,7 +1021,7 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE vecvecsData[i] ); } - // generate a sparate mix for each channel + // generate a separate mix for each channel // actual processing of audio data -> mix ProcessData ( vecvecsData, vecvecdGains[i], diff --git a/src/serverdlg.cpp b/src/serverdlg.cpp index a621e35be9..8aac767e3e 100755 --- a/src/serverdlg.cpp +++ b/src/serverdlg.cpp @@ -476,7 +476,7 @@ void CServerDlg::OnServerNameTextChanged ( const QString& strNewName ) } else { - // text is too long, update control with shortend text + // text is too long, update control with shortened text edtServerName->setText ( strNewName.left ( MAX_LEN_SERVER_NAME ) ); } } @@ -492,7 +492,7 @@ void CServerDlg::OnLocationCityTextChanged ( const QString& strNewCity ) } else { - // text is too long, update control with shortend text + // text is too long, update control with shortened text edtLocationCity->setText ( strNewCity.left ( MAX_LEN_SERVER_CITY ) ); } } diff --git a/src/serverlist.cpp b/src/serverlist.cpp index bc472c1a71..78074d8759 100755 --- a/src/serverlist.cpp +++ b/src/serverlist.cpp @@ -63,7 +63,7 @@ CServerListManager::CServerListManager ( const quint16 iNPortNum, ServerList.clear(); // Init server list entry (server info for this server) with defaults. Per - // definition the client substitudes the IP address of the central server + // definition the client substitutes the IP address of the central server // itself for his server list. If we are the central server, we assume that // we have a permanent server. CServerListEntry ThisServerListEntry ( CHostAddress(), diff --git a/src/soundbase.cpp b/src/soundbase.cpp index 5e8a9702dd..5807479c37 100755 --- a/src/soundbase.cpp +++ b/src/soundbase.cpp @@ -291,7 +291,7 @@ printf ( "\n" ); // we only want to parse controller messages if ( ( iStatusByte >= 0xB0 ) && ( iStatusByte < 0xC0 ) ) { - // make sure paket is long enough + // make sure packet is long enough if ( vMIDIPaketBytes.Size() > 2 ) { // we are assuming that the controller number is the same diff --git a/src/testbench.h b/src/testbench.h index 1d5cd48181..b2f5b6465c 100755 --- a/src/testbench.h +++ b/src/testbench.h @@ -49,7 +49,7 @@ class CTestbench : public QObject iLPort = static_cast ( GenRandomIntInRange ( -2, 10000 ) ); // bind socket (try 100 port numbers) - quint16 iPortIncrement = 0; // start value: port nubmer plus ten + quint16 iPortIncrement = 0; // start value: port number plus ten bool bSuccess = false; // initialization for while loop while ( !bSuccess && ( iPortIncrement <= 100 ) ) diff --git a/src/util.cpp b/src/util.cpp index 8b4b96678f..d67ef4e65c 100755 --- a/src/util.cpp +++ b/src/util.cpp @@ -141,12 +141,12 @@ void CCRC::AddByte ( const uint8_t byNewInput ) { for ( int i = 0; i < 8; i++ ) { - // shift bits in shift-register for transistion + // shift bits in shift-register for transition iStateShiftReg <<= 1; // take bit, which was shifted out of the register-size and place it // at the beginning (LSB) - // (If condition is not satisfied, implicitely a "0" is added) + // (If condition is not satisfied, implicitly a "0" is added) if ( ( iStateShiftReg & iBitOutMask) > 0 ) { iStateShiftReg |= 1; @@ -196,7 +196,7 @@ void CAudioReverb::Init ( const EAudChanConf eNAudioChannelConf, const int iSampleRate, const double rT60 ) { - // store paramters + // store parameters eAudioChannelConf = eNAudioChannelConf; iStereoBlockSizeSam = iNStereoBlockSizeSam; @@ -807,7 +807,7 @@ void CMusProfDlg::OnAliasTextChanged ( const QString& strNewName ) } else { - // text is too long, update control with shortend text + // text is too long, update control with shortened text pedtAlias->setText ( strNewName.left ( MAX_LEN_FADER_TAG ) ); } } @@ -845,7 +845,7 @@ void CMusProfDlg::OnCityTextChanged ( const QString& strNewCity ) } else { - // text is too long, update control with shortend text + // text is too long, update control with shortened text pedtCity->setText ( strNewCity.left ( MAX_LEN_SERVER_CITY ) ); } } @@ -928,7 +928,7 @@ bool NetworkUtil::ParseNetworkAddress ( QString strAddress, // first try if this is an IP number an can directly applied to QHostAddress if ( !InetAddr.setAddress ( strAddress ) ) { - // it was no vaild IP address, try to get host by name, assuming + // it was no valid IP address, try to get host by name, assuming // that the string contains a valid host name string const QHostInfo HostInfo = QHostInfo::fromName ( strAddress ); diff --git a/windows/deploy_windows.bat b/windows/deploy_windows.bat index 5a3ce83679..eeb4f8875b 100755 --- a/windows/deploy_windows.bat +++ b/windows/deploy_windows.bat @@ -98,7 +98,7 @@ echo Use the Visual Studio x86 x64 Cross Tools Command Prompt to call this skrip goto endofskript :qtdirproblem -echo The QTDIR32 and QTDIR64 is not set, please set these environment variables correclty before calling this script +echo The QTDIR32 and QTDIR64 is not set, please set these environment variables correctly before calling this script goto endofskript :nsispluginproblem diff --git a/windows/sound.cpp b/windows/sound.cpp index 41cdcf1692..097cd655f1 100755 --- a/windows/sound.cpp +++ b/windows/sound.cpp @@ -53,7 +53,7 @@ QString CSound::LoadAndInitializeDriver ( int iDriverIdx, return tr ( "The audio driver could not be initialized." ); } - // check device capabilities if it fullfills our requirements + // check device capabilities if it fulfills our requirements const QString strStat = CheckDeviceCapabilities(); // check if device is capable @@ -165,7 +165,7 @@ QString CSound::CheckDeviceCapabilities() // support the required sample format. But since we have support for // all known sample types, the following check should always pass and // therefore we throw the error message on any channel which does not - // fullfill the sample format requirement (quick hack solution). + // fulfill the sample format requirement (quick hack solution). if ( !CheckSampleTypeSupported ( channelInfosInput[i].type ) ) { // return error string @@ -195,7 +195,7 @@ QString CSound::CheckDeviceCapabilities() // support the required sample format. But since we have support for // all known sample types, the following check should always pass and // therefore we throw the error message on any channel which does not - // fullfill the sample format requirement (quick hack solution). + // fulfill the sample format requirement (quick hack solution). if ( !CheckSampleTypeSupported ( channelInfosOutput[i].type ) ) { // return error string @@ -449,7 +449,7 @@ int CSound::Init ( const int iNewPrefMonoBufferSize ) dInOutLatencyMs = 0.0; } - // check wether the driver requires the ASIOOutputReady() optimization + // check whether the driver requires the ASIOOutputReady() optimization // (can be used by the driver to reduce output latency by one block) bASIOPostOutput = ( ASIOOutputReady() == ASE_OK ); } From b70bcfc474efa1201c45963c4dde27b77785fb1f Mon Sep 17 00:00:00 2001 From: geheimerEichkater <67019343+geheimerEichkater@users.noreply.github.com> Date: Tue, 30 Jun 2020 21:00:02 +0200 Subject: [PATCH 294/936] Updated icons Start of roll out of new design --- android/res/drawable-hdpi/icon.png | Bin 6172 -> 4131 bytes android/res/drawable-ldpi/icon.png | Bin 2110 -> 2466 bytes android/res/drawable-mdpi/icon.png | Bin 3324 -> 3023 bytes android/res/drawable-xhdpi/icon.png | Bin 9388 -> 5230 bytes android/res/drawable-xxhdpi/icon.png | Bin 16652 -> 7482 bytes android/res/drawable-xxxhdpi/icon.png | Bin 24738 -> 9769 bytes distributions/jamulus.png | Bin 99531 -> 27223 bytes mac/mainicon.icns | Bin 200083 -> 89761 bytes src/res/fronticon.png | Bin 2153 -> 2276 bytes windows/mainicon.ico | Bin 66859 -> 34464 bytes 10 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 src/res/fronticon.png mode change 100755 => 100644 windows/mainicon.ico diff --git a/android/res/drawable-hdpi/icon.png b/android/res/drawable-hdpi/icon.png index 0ccf07af8105f94ba77d71e64efd9ef92e40f4dc..3ba6f7222f36a603683151392357ab925f9c5a50 100644 GIT binary patch literal 4131 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 literal 6172 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 V+P`>bPxbm=lf5+&e+_p$_HT+j5qAIp delta 2097 zcmV-12+sGS6TT3TB!32COGiWi{{a60|De66lK=n!32;bRa{vGf6951U69E94oEQKA z00(qQO+^Rf1QHb<9}P8`Q2+o3%Sl8*R9M69n15{4^%=)spYQ$XUGLi7^~a5~6=*@J zFhm>z8z9>xLz`G5Ax>su)l4JHBpF+jWn&wEn21i6nFR!s4S#Vkqv#?`6e=kEFB-rx80e4gk1{=!!=ahPj8AjtqF zzzx`T6@!B|ZEfxB+I4~I>Jiqh1EU6cPys z9UTcyo;-)&e}A3@3p@ma#TWw+0geFsfJnZeoZ|qofNug%0ZRcN&<$Jw762XqY#Rm! z;P`PTq0oHJpP$d1IS>et1tj3xfFJlH(4P+=YYdnIU;}UfxElxpZs58sIM08RlS%mO zGwAMy88g7L!08;zercA?8QBNTpP_7tHUmEf921sSf`4cf&YgqBi=n9rX3YY>KLaeo zP9N|tunqXg7-Q$nP_|KjauqQD8>tj@cEZJr5DsUUnm!#op3zySf!`Tp{$Y$sTvJm^ zS_Hh8t@mWt3^N*kfbSjF(hdo(3CwqDLaXQ0lE(!q|CNSR8;VnXP@PC zI84&(C0JTYWo0Ed-gqN5H8s@K)L>S5;MYWwJr{r1FUV{(ilGN@d_JFCE`OIS%aSoh_4W1o>zi*XIyflVw&L;l zj-jC;Gg(vLGI9T=IDY&%`}gms_tGV%0=3JQk?iZE{qkkZ_1EJI2Jw2mIGs)`%fd1S zCvarnKGv;TMg58u{Hv)6x6}Es&*$4JY1Tx5O0V|g$jAtL_UxglsR^fL5wt8SdV8r@ zv44WgZ@*2^ZMRWgT}@eeIljU|3S2HcmPKiHyx#$Am^+t8%FB6p$r9dr>n$hnIM5>L z8QZpt#{)EYH9&j!?xnf8nW3Q}645B`o*qg(9xP)>q|=nmo5yw2rV%PDqqMM)N{55_ z689RzrWGrAVb?Amf9D-;UcMZ!ZL?gYhF^^;j?+9Ubi6 zy_-NFfYY)lP9{lpcN18%hVH|M@!xU_u~3LmUmw$rA&^XRz01XtwQHHZY8C#P8jR0J zyuF=$Tei>%By5{4Tek4>%P;4e{WjoTNp~4z&gU3<2S|Ta(^?%nXiN|^Hwb!_E_AGn0ZKDks`TSOsN~Oj={~};5 z@T}7qlalm&c6qvU8R2l4!NEaN@i-yNVpcdzaPC}sUwVn!x;g^OmSLyUd~)IT}zkh4yRMMyWOhwc=R=|SH)hhydIAV+-`ZDPR+3_?U*}P zsS6kM(WXsW2`U=J&V~&e)ZgDf*+TfyxYAY9qmn+6B-yrlySlV}>wi{N1Ojq99CA7w za^yair3z#8fHAtXXOChnE&4@qv8I6>pykV#tFf_B$z*aeFlkBmOtj-lC9RcoDtDr* zt4jwC9MJmp>s47NJM{s=po&=aG`#?d9#|En-z=2lxK8Fnr8BF z8G-DqT0Hvu#K;J}oqwIgE?&eOIz(k%9qwq9Xe2`6op)lDmgdxBzVRnXk4}2R7&DO7 z*Nvk!kvkeC9E~!gzn_{=h=S^BOiK&?1q-lBO0E^mFz^SQhzC%NCXxxge6NdlD4xm z<3M7ujLgkHx`1EhOn{XK7zZ#L_zm!TUs&pih(ya4yz2Z;oXjAT4p{-s)H zj5&8zqd1Oxtpk1u+zhzBkl^>jJ@>%u+3@PCuxJrfRODN-7_c6AeM09tj$Wz+rhWm8 zWo0Z+FqpAF9e*9La%HB6KKEu5MPGKA?j7sbCOa7i{t2APE^J{8xZN4Idge^VI@i@@ z97u8TWb6oN1?r74uZ?FOO`Z)M0=|*$rAlnOmT0tsXf%z>b(!K~2QJsVtP*r&-v?M@ zfOG*nf#;1e-T&X$F}CewV8B5nVlzCP=GI$%7*n1tYbteC2~GjZvgK(8-jnp1Wm)2@ b_!99SNl0odgw2MC00000NkvXXu0mjfL?QAl diff --git a/android/res/drawable-mdpi/icon.png b/android/res/drawable-mdpi/icon.png index b3cb62fa7758e5d5f8e3c72a6136a1ba92055a9f..9ea7673bd8604d57ce00d71a4768c8e6fad2a256 100644 GIT binary patch literal 3023 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 literal 9388 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 literal 16652 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 literal 24738 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

FC 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 T5KeOeEkPP8y2`bRmZAR#7+ja3 literal 99531 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 diff --git a/mac/mainicon.icns b/mac/mainicon.icns index a54c1c44395cdac2a26adf839c5516c7e4f252fa..375aae4946ce912988920bd2ab9399091c5b9708 100644 GIT binary patch literal 89761 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%0A?-Gl=K37wg;LzxMuX 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ý@!Hrj@$slf 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 z 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Π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%0AxCzNCzmW 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�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 Z`F~`0+R;(eEhhi~002ovPDHLkV1kPYh1LK7 From eaf9a1ad0ea5a78dbe6b06599978d1a4f39d9501 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 30 Jun 2020 21:37:36 +0200 Subject: [PATCH 295/936] bug fix: grouping faders in the client should be proportional (see discussion in #202) --- ChangeLog | 8 +++-- src/audiomixerboard.cpp | 78 +++++++++++++++++++++++------------------ src/audiomixerboard.h | 46 +++++++++++++----------- 3 files changed, 75 insertions(+), 57 deletions(-) diff --git a/ChangeLog b/ChangeLog index 48c9ea64b5..daaf3ba9b7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,16 +2,18 @@ + 3.5.8git -TODO bug fix: incorrect selection of UI language (#408) +- bug fix: grouping faders in the client should be proportional (see discussion in #202) + + +TODO bug fix: incorrect selection of UI language (#408) !!!!!!!!!!!!!!!!!!!!!!!!!!!!! TODO improve settings management -> move settings class in client/server classes, move actual settings variables TODO add new register message which contains version and, e.g., max number of clients -TODO bug fix: grouping faders in the client should be proportional (see discussion in #202) - TODO https://github.com/corrados/jamulus/issues/341#issuecomment-647172946 - generate .qm on compile time with lrelease diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 3fbd85ff87..a7c5836b7f 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -313,7 +313,7 @@ void CChannelFader::Reset() // init gain and pan value -> maximum value as definition according to server pFader->setValue ( AUD_MIX_FADER_MAX ); - iPreviousFaderLevel = AUD_MIX_FADER_MAX; + dPreviousFaderLevel = AUD_MIX_FADER_MAX; pPan->setValue ( AUD_MIX_PAN_MAX / 2 ); // reset mute/solo/group check boxes and level meter @@ -343,20 +343,20 @@ void CChannelFader::Reset() bIsMyOwnFader = false; } -void CChannelFader::SetFaderLevel ( const int iLevel, - const bool bIsGroupUpdate ) +void CChannelFader::SetFaderLevel ( const double dLevel, + const bool bIsGroupUpdate ) { // first make a range check - if ( ( iLevel >= 0 ) && ( iLevel <= AUD_MIX_FADER_MAX ) ) + if ( ( dLevel >= 0 ) && ( dLevel <= AUD_MIX_FADER_MAX ) ) { // we set the new fader level in the GUI (slider control) and also tell the // server about the change (block the signal of the fader since we want to // call SendFaderLevelToServer with a special additional parameter) pFader->blockSignals ( true ); - pFader->setValue ( iLevel ); + pFader->setValue ( MathUtils::round ( dLevel ) ); pFader->blockSignals ( false ); - SendFaderLevelToServer ( iLevel, bIsGroupUpdate ); + SendFaderLevelToServer ( dLevel, bIsGroupUpdate ); } } @@ -401,23 +401,26 @@ void CChannelFader::SetRemoteFaderIsMute ( const bool bIsMute ) } } -void CChannelFader::SendFaderLevelToServer ( const int iLevel, - const bool bIsGroupUpdate ) +void CChannelFader::SendFaderLevelToServer ( const double dLevel, + const bool bIsGroupUpdate ) { // if mute flag is set or other channel is on solo, do not apply the new - // fader value (exception: we are on solo, in that case we ignore the - // "other channel is on solo" flag) - if ( ( pcbMute->checkState() == Qt::Unchecked ) && - ( !bOtherChannelIsSolo || IsSolo() ) ) + // fader value to the server (exception: we are on solo, in that case we + // ignore the "other channel is on solo" flag) + const bool bSuppressServerUpdate = !( ( pcbMute->checkState() == Qt::Unchecked ) && + ( !bOtherChannelIsSolo || IsSolo() ) ); + + // emit signal for new fader gain value + emit gainValueChanged ( CalcFaderGain ( dLevel ), + bIsMyOwnFader, + bIsGroupUpdate, + bSuppressServerUpdate, + dLevel / dPreviousFaderLevel ); + + // update previous fader level since the level has changed + if ( dLevel > 0 ) { - // emit signal for new fader gain value - emit gainValueChanged ( CalcFaderGain ( iLevel ), - bIsMyOwnFader, - bIsGroupUpdate, - iLevel - iPreviousFaderLevel ); - - // update previous fader level since the level has changed - iPreviousFaderLevel = iLevel; + dPreviousFaderLevel = dLevel; } } @@ -437,7 +440,7 @@ void CChannelFader::SetMute ( const bool bState ) if ( bState ) { // mute channel -> send gain of 0 - emit gainValueChanged ( 0, bIsMyOwnFader, false, 0 ); + emit gainValueChanged ( 0, bIsMyOwnFader, false, false, -1 ); } else { @@ -445,13 +448,13 @@ void CChannelFader::SetMute ( const bool bState ) if ( !bOtherChannelIsSolo || IsSolo() ) { // mute was unchecked, get current fader value and apply - emit gainValueChanged ( CalcFaderGain ( GetFaderLevel() ), bIsMyOwnFader, false, 0 ); + emit gainValueChanged ( CalcFaderGain ( GetFaderLevel() ), bIsMyOwnFader, false, false, -1 ); // TODO When mute or solo is activated, the group synchronization does not work anymore. // To get a smoother experience, we adjust the previous level as soon as the mute is // again set to off (if we would not do that, on the next move of the fader the other // faders in the group would jump which is very bad). - iPreviousFaderLevel = GetFaderLevel(); + dPreviousFaderLevel = GetFaderLevel(); } } } @@ -624,14 +627,14 @@ void CChannelFader::SetChannelInfos ( const CChannelInfo& cChanInfo ) plblLabel->setToolTip ( strToolTip ); } -double CChannelFader::CalcFaderGain ( const int value ) +double CChannelFader::CalcFaderGain ( const double dValue ) { // convert actual slider range in gain values // and normalize so that maximum gain is 1 - const double dInValueRange0_1 = static_cast ( value ) / AUD_MIX_FADER_MAX; + const double dInValueRange0_1 = dValue / AUD_MIX_FADER_MAX; // map range from 0..1 to range -35..0 dB and calculate linear gain - if ( value == 0 ) + if ( dValue == 0 ) { return 0; // -infinity } @@ -718,7 +721,7 @@ inline void CAudioMixerBoard::connectFaderSignalsToMixerBoardSlots() { int iCurChanID = slotId - 1; - void ( CAudioMixerBoard::* pGainValueChanged )( double, bool, bool, int ) = + void ( CAudioMixerBoard::* pGainValueChanged )( double, bool, bool, bool, double ) = &CAudioMixerBoardSlots::OnChGainValueChanged; void ( CAudioMixerBoard::* pPanValueChanged )( double ) = @@ -940,8 +943,8 @@ void CAudioMixerBoard::ApplyNewConClientList ( CVector& vecChanInf ( iNewClientFaderLevel != 100 ) ) { // the value is in percent -> convert range - vecpChanFader[i]->SetFaderLevel ( static_cast ( - iNewClientFaderLevel / 100.0 * AUD_MIX_FADER_MAX ) ); + vecpChanFader[i]->SetFaderLevel ( + iNewClientFaderLevel / 100.0 * AUD_MIX_FADER_MAX ); } } @@ -1051,10 +1054,14 @@ void CAudioMixerBoard::UpdateGainValue ( const int iChannelIdx, const double dValue, const bool bIsMyOwnFader, const bool bIsGroupUpdate, - const int iDiffLevel ) + const bool bSuppressServerUpdate, + const double dLevelRatio ) { // update current gain - emit ChangeChanGain ( iChannelIdx, dValue, bIsMyOwnFader ); + if ( !bSuppressServerUpdate ) + { + emit ChangeChanGain ( iChannelIdx, dValue, bIsMyOwnFader ); + } // if this fader is selected, all other in the group must be updated as // well (note that we do not have to update if this is already a group update @@ -1064,11 +1071,14 @@ void CAudioMixerBoard::UpdateGainValue ( const int iChannelIdx, for ( int i = 0; i < MAX_NUM_CHANNELS; i++ ) { // update rest of faders selected - if ( vecpChanFader[i]->IsVisible() && vecpChanFader[i]->IsSelect() && ( i != iChannelIdx ) ) + if ( vecpChanFader[i]->IsVisible() && + vecpChanFader[i]->IsSelect() && + ( i != iChannelIdx ) && + ( dLevelRatio >= 0 ) ) { // synchronize faders with moving fader level (it is important // to set the group flag to avoid infinite looping) - vecpChanFader[i]->SetFaderLevel ( vecpChanFader[i]->GetFaderLevel() + iDiffLevel, true ); + vecpChanFader[i]->SetFaderLevel ( vecpChanFader[i]->GetPreviousFaderLevel() * dLevelRatio, true ); } } } @@ -1165,7 +1175,7 @@ void CAudioMixerBoard::SetChannelLevels ( const CVector& vecChannelLev for ( int iChId = 0; iChId < MAX_NUM_CHANNELS; iChId++ ) { - if ( vecpChanFader[iChId]->IsVisible() && i < iNumChannelLevels ) + if ( vecpChanFader[iChId]->IsVisible() && ( i < iNumChannelLevels ) ) { vecpChanFader[iChId]->SetChannelLevel ( vecChannelLevel[i++] ); diff --git a/src/audiomixerboard.h b/src/audiomixerboard.h index 266de18c4e..fbf1496f87 100755 --- a/src/audiomixerboard.h +++ b/src/audiomixerboard.h @@ -69,23 +69,24 @@ class CChannelFader : public QObject void SetFaderIsMute ( const bool bIsMute ); void SetRemoteFaderIsMute ( const bool bIsMute ); void SetFaderIsSelect ( const bool bIsMute ); - void SetFaderLevel ( const int iLevel, - const bool bIsGroupUpdate = false ); + void SetFaderLevel ( const double dLevel, + const bool bIsGroupUpdate = false ); - int GetFaderLevel() { return pFader->value(); } - int GetPanValue() { return pPan->value(); } - void Reset(); - void SetChannelLevel ( const uint16_t iLevel ); - void SetIsMyOwnFader() { bIsMyOwnFader = true; } - void UpdateSoloState ( const bool bNewOtherSoloState ); + int GetFaderLevel() { return pFader->value(); } + double GetPreviousFaderLevel() { return dPreviousFaderLevel; } + int GetPanValue() { return pPan->value(); } + void Reset(); + void SetChannelLevel ( const uint16_t iLevel ); + void SetIsMyOwnFader() { bIsMyOwnFader = true; } + void UpdateSoloState ( const bool bNewOtherSoloState ); protected: - double CalcFaderGain ( const int value ); + double CalcFaderGain ( const double dValue ); void SetMute ( const bool bState ); void SetupFaderTag ( const ESkillLevel eSkillLevel ); void SendPanValueToServer ( const int iPan ); - void SendFaderLevelToServer ( const int iLevel, - const bool bIsGroupUpdate ); + void SendFaderLevelToServer ( const double dLevel, + const bool bIsGroupUpdate ); QFrame* pFrame; @@ -112,7 +113,7 @@ class CChannelFader : public QObject bool bOtherChannelIsSolo; bool bIsMyOwnFader; - int iPreviousFaderLevel; + double dPreviousFaderLevel; public slots: void OnLevelValueChanged ( int value ) { SendFaderLevelToServer ( value, false ); } @@ -123,7 +124,8 @@ public slots: void gainValueChanged ( double value, bool bIsMyOwnFader, bool bIsGroupUpdate, - int iDiffLevel ); + bool bSuppressServerUpdate, + double dLevelRatio ); void panValueChanged ( double value ); void soloStateChanged ( int value ); @@ -136,11 +138,13 @@ class CAudioMixerBoardSlots : public CAudioMixerBoardSlots void OnChGainValueChanged ( double dValue, bool bIsMyOwnFader, bool bIsGroupUpdate, - int iDiffLevel ) { UpdateGainValue ( slotId - 1, - dValue, - bIsMyOwnFader, - bIsGroupUpdate, - iDiffLevel ); } + bool bSuppressServerUpdate, + double dLevelRatio ) { UpdateGainValue ( slotId - 1, + dValue, + bIsMyOwnFader, + bIsGroupUpdate, + bSuppressServerUpdate, + dLevelRatio ); } void OnChPanValueChanged ( double dValue ) { UpdatePanValue ( slotId - 1, dValue ); } @@ -149,7 +153,8 @@ class CAudioMixerBoardSlots : public CAudioMixerBoardSlots const double dValue, const bool bIsMyOwnFader, const bool bIsGroupUpdate, - const int iDiffLevel ) = 0; + const bool bSuppressServerUpdate, + const double dLevelRatio ) = 0; virtual void UpdatePanValue ( const int iChannelIdx, const double dValue ) = 0; @@ -244,7 +249,8 @@ class CAudioMixerBoard : const double dValue, const bool bIsMyOwnFader, const bool bIsGroupUpdate, - const int iDiffLevel ); + const bool bSuppressServerUpdate, + const double dLevelRatio ); virtual void UpdatePanValue ( const int iChannelIdx, const double dValue ); From c5c5486cd6b255e7d17a2aa24d7003409677ee6e Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 30 Jun 2020 22:25:49 +0200 Subject: [PATCH 296/936] update for bug fix release 3.5.8 --- ChangeLog | 5 ++++- Jamulus.pro | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index daaf3ba9b7..9d936c1f0b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,12 +3,13 @@ -3.5.8git +3.5.9git - bug fix: grouping faders in the client should be proportional (see discussion in #202) TODO bug fix: incorrect selection of UI language (#408) !!!!!!!!!!!!!!!!!!!!!!!!!!!!! + -> note that for the 3.5.8 bug fix release we want back to the original translation code (e.g. no pt_BR!) TODO improve settings management -> move settings class in client/server classes, move actual settings variables @@ -19,7 +20,9 @@ TODO https://github.com/corrados/jamulus/issues/341#issuecomment-647172946 +3.5.8 (2020-06-30) +- bug fix: incorrect selection of UI language (#408) 3.5.7 (2020-06-28) diff --git a/Jamulus.pro b/Jamulus.pro index 4f709326fc..12c950866d 100755 --- a/Jamulus.pro +++ b/Jamulus.pro @@ -1,4 +1,4 @@ -VERSION = 3.5.8git +VERSION = 3.5.9git # use target name which does not use a captital letter at the beginning contains(CONFIG, "noupcasename") { From b6cd0cd56c8a197492d3495fadd81208bd694b6e Mon Sep 17 00:00:00 2001 From: Olivier Humbert Date: Wed, 1 Jul 2020 13:50:15 +0200 Subject: [PATCH 297/936] typo fix in the changelog --- ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 9d936c1f0b..eb1ade8b24 100644 --- a/ChangeLog +++ b/ChangeLog @@ -9,7 +9,7 @@ TODO bug fix: incorrect selection of UI language (#408) !!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -> note that for the 3.5.8 bug fix release we want back to the original translation code (e.g. no pt_BR!) + -> note that for the 3.5.8 bug fix release we went back to the original translation code (e.g. no pt_BR!) TODO improve settings management -> move settings class in client/server classes, move actual settings variables From 695f205848f489a835fe6526bfc76c28026bcbf2 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Wed, 1 Jul 2020 15:20:28 +0200 Subject: [PATCH 298/936] fix when grouping faders and one fader is on max -> retain ratio if the faders are moved down again --- src/audiomixerboard.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index a7c5836b7f..bd5fe830a4 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -358,6 +358,14 @@ void CChannelFader::SetFaderLevel ( const double dLevel, SendFaderLevelToServer ( dLevel, bIsGroupUpdate ); } + else if ( dLevel >= 0 ) + { + // If the level is above the maximum, we have to store it for the purpose + // of group fader movement. If you move a fader which has lower volume than + // this one and this clips at max, we want to retain the ratio between this + // fader and the others in the group. + dPreviousFaderLevel = dLevel; + } } void CChannelFader::SetPanValue ( const int iPan ) @@ -440,7 +448,7 @@ void CChannelFader::SetMute ( const bool bState ) if ( bState ) { // mute channel -> send gain of 0 - emit gainValueChanged ( 0, bIsMyOwnFader, false, false, -1 ); + emit gainValueChanged ( 0, bIsMyOwnFader, false, false, -1 ); // set level ratio to in invalid value } else { @@ -448,7 +456,7 @@ void CChannelFader::SetMute ( const bool bState ) if ( !bOtherChannelIsSolo || IsSolo() ) { // mute was unchecked, get current fader value and apply - emit gainValueChanged ( CalcFaderGain ( GetFaderLevel() ), bIsMyOwnFader, false, false, -1 ); + emit gainValueChanged ( CalcFaderGain ( GetFaderLevel() ), bIsMyOwnFader, false, false, -1 ); // set level ratio to in invalid value // TODO When mute or solo is activated, the group synchronization does not work anymore. // To get a smoother experience, we adjust the previous level as soon as the mute is From 3b20453f0e5445f16750fdb20dd7456f2a312bb7 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Wed, 1 Jul 2020 15:22:51 +0200 Subject: [PATCH 299/936] added a comment --- src/audiomixerboard.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index bd5fe830a4..eaee3ca9b9 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -425,7 +425,9 @@ void CChannelFader::SendFaderLevelToServer ( const double dLevel, bSuppressServerUpdate, dLevel / dPreviousFaderLevel ); - // update previous fader level since the level has changed + // update previous fader level since the level has changed, avoid to use + // the zero value not to have division by zero and also to retain the ratio + // after the fader is moved up again from the zero position if ( dLevel > 0 ) { dPreviousFaderLevel = dLevel; From afe3a77da63dc1d4826e31cd40a71a6b5f514653 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Wed, 1 Jul 2020 19:53:25 +0200 Subject: [PATCH 300/936] put the front icon in the main window more centered above the LEDs --- ChangeLog | 3 ++ src/clientdlgbase.ui | 67 ++++++++++++++++++++------------------------ 2 files changed, 33 insertions(+), 37 deletions(-) diff --git a/ChangeLog b/ChangeLog index eb1ade8b24..f587ac2477 100644 --- a/ChangeLog +++ b/ChangeLog @@ -20,6 +20,9 @@ TODO https://github.com/corrados/jamulus/issues/341#issuecomment-647172946 + + + 3.5.8 (2020-06-30) - bug fix: incorrect selection of UI language (#408) diff --git a/src/clientdlgbase.ui b/src/clientdlgbase.ui index 0bb9c8e874..ab5ea69147 100755 --- a/src/clientdlgbase.ui +++ b/src/clientdlgbase.ui @@ -61,43 +61,36 @@ 3 - - - - - - 0 - 0 - - - - :/png/main/res/fronticon.png - - - Qt::AlignCenter - - - false - - - - - - - Qt::Horizontal - - - QSizePolicy::Minimum - - - - 40 - 20 - - - - - + + + Qt::Vertical + + + + 10 + 0 + + + + + + + + + 0 + 0 + + + + :/png/main/res/fronticon.png + + + Qt::AlignCenter + + + false + + From 07594d7729a99f7c92543083d63f1fe2803309e2 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Wed, 1 Jul 2020 21:52:17 +0200 Subject: [PATCH 301/936] some code improvements --- src/settings.cpp | 45 ++++++++++++--------------------------------- 1 file changed, 12 insertions(+), 33 deletions(-) diff --git a/src/settings.cpp b/src/settings.cpp index 9a53bf5d7f..2efd5186b2 100755 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -35,9 +35,7 @@ void CSettings::Load() if ( file.open ( QIODevice::ReadOnly ) ) { - QTextStream in ( &file ); - IniXMLDocument.setContent ( in.readAll(), false ); - + IniXMLDocument.setContent ( QTextStream ( &file ).readAll(), false ); file.close(); } @@ -56,11 +54,10 @@ void CSettings::Save() // prepare file name for storing initialization data in XML file and store // XML data in file QFile file ( strFileName ); + if ( file.open ( QIODevice::WriteOnly ) ) { - QTextStream out ( &file ); - out << IniXMLDocument.toString(); - + QTextStream ( &file ) << IniXMLDocument.toString(); file.close(); } } @@ -68,25 +65,22 @@ void CSettings::Save() void CSettings::SetFileName ( const QString& sNFiName, const QString& sDefaultFileName ) { - // return the file name with complete path, take care if given file name is - // empty + // return the file name with complete path, take care if given file name is empty strFileName = sNFiName; if ( strFileName.isEmpty() ) { // we use the Qt default setting file paths for the different OSs by // utilizing the QSettings class - const QSettings TempSettingsObject ( - QSettings::IniFormat, QSettings::UserScope, APP_NAME, APP_NAME ); - - const QString sConfigDir = - QFileInfo ( TempSettingsObject.fileName() ).absolutePath(); + const QString sConfigDir = QFileInfo ( QSettings ( QSettings::IniFormat, + QSettings::UserScope, + APP_NAME, + APP_NAME ).fileName() ).absolutePath(); // make sure the directory exists if ( !QFile::exists ( sConfigDir ) ) { - QDir TempDirectoryObject; - TempDirectoryObject.mkpath ( sConfigDir ); + QDir().mkpath ( sConfigDir ); } // append the actual file name @@ -100,7 +94,7 @@ void CSettings::SetNumericIniSet ( QDomDocument& xmlFile, const int iValue ) { // convert input parameter which is an integer to string and store - PutIniSetting ( xmlFile, strSection, strKey, QString("%1").arg(iValue) ); + PutIniSetting ( xmlFile, strSection, strKey, QString::number ( iValue ) ); } bool CSettings::GetNumericIniSet ( const QDomDocument& xmlFile, @@ -137,14 +131,7 @@ void CSettings::SetFlagIniSet ( QDomDocument& xmlFile, const bool bValue ) { // we encode true -> "1" and false -> "0" - if ( bValue == true ) - { - PutIniSetting ( xmlFile, strSection, strKey, "1" ); - } - else - { - PutIniSetting ( xmlFile, strSection, strKey, "0" ); - } + PutIniSetting ( xmlFile, strSection, strKey, bValue ? "1" : "0" ); } bool CSettings::GetFlagIniSet ( const QDomDocument& xmlFile, @@ -159,15 +146,7 @@ bool CSettings::GetFlagIniSet ( const QDomDocument& xmlFile, if ( !strGetIni.isEmpty() ) { - if ( strGetIni.toInt() ) - { - bValue = true; - } - else - { - bValue = false; - } - + bValue = ( strGetIni.toInt() != 0 ); bReturn = true; } From 5463cec2384d5cf22909d14adae48d18d562f5fb Mon Sep 17 00:00:00 2001 From: Martyna27 Date: Thu, 2 Jul 2020 13:00:16 +0200 Subject: [PATCH 302/936] Partial update --- src/res/translation/translation_pl_PL.qm | Bin 209 -> 13508 bytes src/res/translation/translation_pl_PL.ts | 1029 ++++++++++------------ 2 files changed, 468 insertions(+), 561 deletions(-) diff --git a/src/res/translation/translation_pl_PL.qm b/src/res/translation/translation_pl_PL.qm index 384db547550e5992c79c4c3aae075714333985c4..33447ef5b5ad04de3d04a9811316683fa0d835f3 100755 GIT binary patch literal 13508 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 delta 87 zcmX?-d6Ch`W=D#|srPfHo>i3DpRjQ6T_*+x1_=hOHwHkOfx*jcDv*rh%89-Sr1dj_ m#DvMxO2(7>)byG87^)`c7;E!)07bbN8UKqgvHaEH5(WU@%osQT diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index 953dfb81bf..182419d019 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -4,83 +4,99 @@ CAboutDlg - + Qt cross-platform application framework - + Audio reverberation code by Perry R. Cook and Gary P. Scavone - + Some pixmaps are from the - + This app enables musicians to perform real-time jam sessions over the internet. - + There is a server which collects the audio data from each client, mixes the audio data and sends the mix back to each client. - + This app uses the following libraries, resources or code snippets: - + Country flag icons by Mark James - + For details on the contributions check out the - + Github Contributors list - + Spanish - + hiszpaÅ„ski - + French - + francuski - + Portuguese - + portugalski - + Dutch - + holenderski - + Italian - + wÅ‚oski - + German - + niemiecki - + About + O programie + + + + , Version + , wersja + + + + + Internet Jam Session Software + + + + + Released under the GNU General Public License (GPL) @@ -89,42 +105,43 @@ About - + O programie TextLabelVersion - + *nie jestem pewna(to siÄ™ tÅ‚umaczy?) + Copyright (C) 2005-2020 Volker Fischer and others - + Copyright (C) 2005-2020 Volker Fischer i inni A&bout - + O &programie &Libraries - + &Biblioteki &Contributors - + &Współtwórcy &Translation - + &TÅ‚umaczenia &OK - + &OK @@ -132,44 +149,29 @@ Analyzer Console - + Konsola analizatora Error Rate of Each Buffer Size - + CzÄ™stotliwość wystÄ™powania błędu dla każdego rozmiaru bufora CAudioMixerBoard - - Personal Mix at the Server - - - - - When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. - - - - + Server - + Serwer - + T R Y I N G T O C O N N E C T - - - - - RECORDING ACTIVE - + P R Ó B U J Ę S I Ę P O Å Ä„ C Z Y Ć - - Personal Mix at: + + Personal Mix at the Server: @@ -177,230 +179,188 @@ CChannelFader - - + Pan - - + + Mute - - + + Solo - + Channel Level - + Input level of the current audio channel at the server - + Mixer Fader - + Local mix level setting of the current audio channel at the server - + Status Indicator - + Shows a status indication about the client which is assigned to this channel. Supported indicators are: - + Status indicator label - + Panning - + Local panning position of the current audio channel at the server - + With the Mute checkbox, the audio channel can be muted. - + Mute button - + Solo button - + Fader Tag - + Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. - - - Grp - - - - + Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. - + Speaker with cancellation stroke: Indicates that another client has muted you. - + Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. - + With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. - - - Group - - - - - With the Grp checkbox, a group of audio channels can be defined. All channel faders in a group are moved in proportional synchronization if any one of the group faders are moved. - - - Group button - - - - The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. - + Mixer channel instrument picture - + Mixer channel label (fader tag) - + Mixer channel country flag - + PAN - + MUTE - + SOLO - - GRP - - - - - M - - - - - S - - - - - G - - - - + Alias/Name - + Instrument - + Location - - - + + + Skill Level - + Beginner - + Intermediate - + Expert - + Musician Profile @@ -410,60 +370,50 @@ Chat Window - + Okno Czatu The chat window shows a history of all chat messages. - + Okno rozmowy pokazuje historiÄ™ wszystkich widomoÅ›ci czatu. Chat history - + Historia czatu Input Message Text - + Wprowadzanie wiadomoÅ›ci czatu 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. - + Wpisz tekst widomoÅ›ci w polu edycji i wciÅ›nij enter, aby wysÅ‚ać wiadomość do serwera, który rozeÅ›le jÄ… do wszystkich podłączonych osób. Twoja wiadomość pojawi siÄ™ w oknie czatu. New chat text edit box - - - - - Type a message here - - - - - &Edit - - - - - Cl&ear Chat History - + Pole edycji nowego tekstu czatu CChatDlgBase - + Chat - + Czat - - &Send - + + Cl&ear + &Wyczyść + + + + &Close + &Zamknij @@ -505,7 +455,7 @@ - + L @@ -676,94 +626,89 @@ - + C&onnect - + &Połącz &View - + &Widok &Connection Setup... - + &Konfiguracja połączenia... My &Profile... - + Mój &profil... C&hat... - + &Czat... &Settings... - + &Ustawienia... &Analyzer Console... - + &Konsola analizatora... E&xit - + &Wyjdź &Edit - + &Edytuj - Sort Channel Users by &Name + &Sort Channel Users by Name - - Sort Channel Users by &Instrument - - - - + None - + Center - + R - + Central Server - + user - + users - + D&isconnect - + &Rozłącz @@ -771,72 +716,74 @@ Delay - + * +nie jestem pewna + Opóźnienie Buffers - + Bufory Input - + WejÅ›cie L - + L R - + P Settings - + Ustawienia Chat - + Czat Mute Myself - + Wycisz mnie C&onnect - + &Połącz Pan - + Panorama Center - + Åšrodek Reverb - + PogÅ‚os Left - + Lewy Right - + Prawy @@ -981,6 +928,21 @@ ASIO setup push button + + + Fancy Skin + + + + + If enabled, a fancy skin will be applied to the main window. + + + + + Fancy skin check box + + Display Channel Levels @@ -1088,19 +1050,19 @@ - + Mono - + Mono-in/Stereo-out - + Stereo @@ -1159,21 +1121,6 @@ If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. - - - Skin - - - - - Select the skin to be used for the main window. - - - - - Skin combo box - - Selects the number of audio channels to be used for communication between client and server. There are three modes available: @@ -1236,100 +1183,89 @@ - Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net). + Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net. - + Low - - + Normal - + High - - Fancy - - - - - Compact - - - - + Custom - + All Genres - + Genre Rock - + Genre Jazz - + Genre Classical/Folk/Choir - + Default - + preferred - - + + Size: - + Buffer Delay - + Buffer Delay: - + The selected audio device could not be used because of the following error: - + The previous driver will be selected. - + Ok - + Ok @@ -1337,39 +1273,39 @@ Settings - + Ustawienia Soundcard - + Karta dźwiÄ™kowa Device - + UrzÄ…dzenie Input Channel Mapping - + Mapowanie kanaÅ‚u wejÅ›cia L - + L R - + P Output Channel Mapping - + Mapowanie kanaÅ‚u wyjÅ›cia @@ -1379,27 +1315,27 @@ Buffer Delay - + Opóźnienie bufora (preferred) - + (preferowane) (default) - + (domyÅ›lne) (safe) - + (bezpieczne) Driver Setup - + Konfiguracja sterownika @@ -1409,85 +1345,86 @@ Auto - + Automatyczny Local - + Lokalny Server - + Serwer Size - + Rozmiar Misc - + Różne Audio Channels - + KanaÅ‚y audio Audio Quality - + Jakość audio New Client Level - + *nie wiem + Poziom dołączajÄ…cego siÄ™ uczestnika - - Skin - + + % + % - - % - + + Fancy Skin + Wuszukany wygÄ…d - + Display Channel Levels - + WyÅ›wietlaj poziomy kanaÅ‚y - + Custom Central Server Address: - + WÅ‚asny adres serwera centralnego: - + Audio Stream Rate - + PrÄ™dkość strumienia audio - - - + + + val - + wartość - + Ping Time - + Czas odpowiedzi - + Overall Delay - + Opóźnienie caÅ‚kowite @@ -1583,187 +1520,187 @@ Connection Setup - + Konfiguracja połączenia List - + Lista Filter - + Filtr Show All Musicians - + Pokazuj wszystkich muzyków Server Name - + Nazwa serwera Ping Time - + Czas odpowiedzi Musicians - + Muzycy Location - + Lokalizacja Server Name/Address - + Nazwa serwera/Adres C&ancel - + &Anuluj &Connect - + &Połącz CHelpMenu - + &Help &Pomoc - - + + Getting &Started... - + &Zaczynajmy... - + Software &Manual... - + &Instrukcja programu... - + What's &This - + &Co to - + &About... - + &O programie... CLicenceDlg - + I &agree to the above licence terms - + Accept - + Decline - + By connecting to this server and agreeing to this notice, you agree to the following: - + 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. @@ -1771,488 +1708,490 @@ CMusProfDlg - - + + Musician Profile - + Profil muzyka - + Alias/Name - + Nick/ImiÄ™ - + Instrument - + Instrument - + Country - Kraj + Kraj - + City - + Miasto - + Skill - + UmiejÄ™tnoÅ›ci - + &Close - + &Zamknij - - - + + + None - + *nie jestem pewna + Å»aden - + Beginner - + PoczÄ…tkujÄ…cy - + Intermediate - + Åšredniozaawansowany - + Expert - + Ekspert - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. - + Alias or name edit box - + Instrument picture button - + Country flag button - + City edit box - + Skill level combo box - + Drum Set - + Zestaw perkusyjny - + Djembe - + Djembe - + Electric Guitar - + Gitara elektryczna - + Acoustic Guitar - + Gitara akustyczna - + Bass Guitar - + Gitara basowa - + Keyboard - + Keyboard - + Synthesizer - + Syntezator - + Grand Piano - + Fortepian - + Accordion - + Akordeon - + Vocal - + Wokal - + Microphone - + Mikrofon - + Harmonica - + Harmonijka ustna - + Trumpet - + TrÄ…bka - + Trombone - + Puzon - + French Horn - + Waltornia - + Tuba - + Tuba - + Saxophone - + Saksofon - + Clarinet - + Klarnet - + Flute - + Flet - + Violin - + Skrzypce - + Cello - + Wiolonczela - + Double Bass - + Kontrabas - + Recorder - + *nie wiem + Flet prosty - + Streamer - + Streamer - + Listener - + SÅ‚uchacz - + Guitar+Vocal - + Gitara+Wokal - + Keyboard+Vocal - + Keyboard+Wokal - + Bodhran - + Bodhran - + Bassoon - + Fagot - + Oboe - + Obój - + Harp - + Harfa - + Viola - + Altówka - + Congas - + Kongi - + Bongo - + Bongo - + Vocal Bass - + Bas - + Vocal Tenor - + Tenor - + Vocal Alto - + Alt - + Vocal Soprano - + Sopran - + Banjo - + Banjo - + Mandolin - + Mandolina - + Ukulele - + Ukulele - + Bass Ukulele - + Ukulele basowe No Name - + Brak nazwy CServerDlg - + Client List - + The client list shows all clients which are currently connected to this server. Some information about the clients like the IP address and name are given for each connected client. - + Connected clients list view - + Start Minimized on Operating System Start - + Show Creative Commons Licence Dialog - + If enabled, a Creative Commons BY-NC-SA 4.0 Licence dialog is shown each time a new user connects the server. - + Make My Server Public - + Register Server Status - + If the Make My Server Public check box is checked, this will show whether registration with the central server is successful. If the registration failed, please choose another server list. - + Custom Central Server Address - + The custom central server address is the IP address or URL of the central server at which the server list of the connection dialog is managed. - + Central server address line edit - + Server List Selection - + Selects the server list (i.e. central server address) in which your server will be added. - + Server list selection combo box - + Server Name - + Server name line edit - + Location City - + The city in which this server is located can be set here. If a city name is entered, it will be shown in the connect dialog server list at the clients. - + City where the server is located line edit - + Location country - + The country in which this server is located can be set here. If a country is entered, it will be shown in the connect dialog server list at the clients. - + Country where the server is located combo box - + Checkbox to turn on or off server recording - + Enable Recorder - + Checked when the recorder is enabled, otherwise unchecked. The recorder will run when a session is in progress, if (set up correctly and) enabled. - + Current session directory text box (read-only) - + Current Session Directory - + Enabled during recording and holds the current recording session directory. Disabled after recording or when the recorder is not enabled. - + Recorder status label - + Recorder Status - + Displays the current status of the recorder. - + Request new recording button - + New Recording - + During a recording session, the button can be used to start a new recording. @@ -2285,22 +2224,22 @@ - + Predefined Address - + Recording - + Not recording - + Not enabled @@ -2310,17 +2249,17 @@ - + If the start minimized on operating system start check box is checked, the server will be started when the operating system starts up and is automatically minimized to a system task bar icon. - + If the Make My Server Public check box is checked, this server registers itself at the central server so that all users of the application can see the server in the connect dialog server list and connect to it. The registration of the server is renewed periodically to make sure that all servers in the connect dialog server list are actually available. - + The server name identifies your server in the connect dialog server list at the clients. @@ -2330,52 +2269,42 @@ - + Unregistered - + Bad address - + Registration requested - + Registration failed - + Check server version - + Registered - + Central Server full - - Your server version is too old - - - - - Requirements not fulfilled - - - - + Unknown value @@ -2389,9 +2318,9 @@ - + Name - + Nazwa @@ -2401,7 +2330,8 @@ Start Minimized on Windows Start - + *nie jestem pewna + Uruchom jako zminimalizowany przy starcie Windowsa @@ -2411,58 +2341,53 @@ Make My Server Public (Register My Server in the Server List) - - - - - Genre - + Ustaw mój serwer jako publiczny (zarejestruj na liÅ›cie) - - + + STATUS - + STATUS - + Custom Central Server Address: - + My Server Info - + Informacje o serwerze - + Location: City - + Lokalizacja: Miasto - + Location: Country - + Lokalizacja: Kraj - + Enable jam recorder - + Włącz nargywanie jam-u - + New recording - + Nowe nagranie - + Recordings folder - + Katalog nagraÅ„ - + TextLabelNameVersion - + @@ -2608,70 +2533,52 @@ - + The audio driver properties have changed to a state which is incompatible with this software. The selected audio device could not be used because of the following error: - + Please restart the software. - + Close - zamknij + Zamknij - + No usable - + audio device (driver) found. - + In the following there is a list of all available drivers with the associated error message: - + Do you want to open the ASIO driver setups? - + could not be started because of audio interface issues. - - QCoreApplication - - - , Version - - - - - Internet Jam Session Software - - - - - Released under the GNU General Public License (GPL) - - - global - + For more information use the What's This help (help menu, right mouse button or Shift+F1) - + Aby uzyskać wiÄ™cej informacji użyj "Co to" (Pomoc, prawy przycisk myszy lub Shift+F1) From 2ba93e2d139f5b61cac2a340c137a55559ce96ac Mon Sep 17 00:00:00 2001 From: Martyna27 Date: Thu, 2 Jul 2020 14:42:49 +0200 Subject: [PATCH 303/936] List of translators updated --- src/util.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/util.cpp b/src/util.cpp index d67ef4e65c..b11551c6aa 100755 --- a/src/util.cpp +++ b/src/util.cpp @@ -476,7 +476,9 @@ CAboutDlg::CAboutDlg ( QWidget* parent ) : QDialog ( parent ) "

" + tr ( "Italian" ) + "

" "

Giuseppe Sapienza (dzpex)

" "

" + tr ( "German" ) + "

" - "

Volker Fischer (corrados)

" ); + "

Volker Fischer (corrados)

" + "

" + tr ( "Polish" ) + "

" + "

Martyna Danysz (Martyna27)

"); // set version number in about dialog lblVersion->setText ( GetVersionAndNameStr() ); From f22762d7efcc3a18383ca060780287a96b7a1006 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 2 Jul 2020 17:04:05 +0200 Subject: [PATCH 304/936] support storing group state --- ChangeLog | 2 +- src/audiomixerboard.cpp | 74 ++++++++++++++++++++++------------------- src/audiomixerboard.h | 30 +++++++++-------- src/client.cpp | 1 + src/client.h | 1 + src/clientdlg.cpp | 14 ++++---- src/global.h | 3 ++ src/settings.cpp | 19 +++++++++++ 8 files changed, 88 insertions(+), 56 deletions(-) diff --git a/ChangeLog b/ChangeLog index f587ac2477..d0400aeccf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,7 +5,7 @@ 3.5.9git -- bug fix: grouping faders in the client should be proportional (see discussion in #202) +- bug fix: grouping faders in the client should be proportional (see discussion in #202, #419) TODO bug fix: incorrect selection of UI language (#408) !!!!!!!!!!!!!!!!!!!!!!!!!!!!! diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index eaee3ca9b9..2a151c154a 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -379,11 +379,6 @@ void CChannelFader::SetPanValue ( const int iPan ) } } -void CChannelFader::SetFaderIsSelect ( const bool bIsSelected ) -{ - pcbGroup->setChecked ( bIsSelected ); -} - void CChannelFader::SetFaderIsSolo ( const bool bIsSolo ) { // changing the state automatically emits the signal, too @@ -659,19 +654,20 @@ double CChannelFader::CalcFaderGain ( const double dValue ) * CAudioMixerBoard * \******************************************************************************/ CAudioMixerBoard::CAudioMixerBoard ( QWidget* parent, Qt::WindowFlags ) : - QGroupBox ( parent ), - vecStoredFaderTags ( MAX_NUM_STORED_FADER_SETTINGS, "" ), - vecStoredFaderLevels ( MAX_NUM_STORED_FADER_SETTINGS, AUD_MIX_FADER_MAX ), - vecStoredPanValues ( MAX_NUM_STORED_FADER_SETTINGS, AUD_MIX_PAN_MAX / 2 ), - vecStoredFaderIsSolo ( MAX_NUM_STORED_FADER_SETTINGS, false ), - vecStoredFaderIsMute ( MAX_NUM_STORED_FADER_SETTINGS, false ), - iNewClientFaderLevel ( 100 ), - bDisplayPans ( false ), - bIsPanSupported ( false ), - bNoFaderVisible ( true ), - iMyChannelID ( INVALID_INDEX ), - strServerName ( "" ), - eRecorderState ( RS_UNDEFINED ) + QGroupBox ( parent ), + vecStoredFaderTags ( MAX_NUM_STORED_FADER_SETTINGS, "" ), + vecStoredFaderLevels ( MAX_NUM_STORED_FADER_SETTINGS, AUD_MIX_FADER_MAX ), + vecStoredPanValues ( MAX_NUM_STORED_FADER_SETTINGS, AUD_MIX_PAN_MAX / 2 ), + vecStoredFaderIsSolo ( MAX_NUM_STORED_FADER_SETTINGS, false ), + vecStoredFaderIsMute ( MAX_NUM_STORED_FADER_SETTINGS, false ), + vecStoredFaderGroupID ( MAX_NUM_STORED_FADER_SETTINGS, INVALID_INDEX ), + iNewClientFaderLevel ( 100 ), + bDisplayPans ( false ), + bIsPanSupported ( false ), + bNoFaderVisible ( true ), + iMyChannelID ( INVALID_INDEX ), + strServerName ( "" ), + eRecorderState ( RS_UNDEFINED ) { // add group box and hboxlayout QHBoxLayout* pGroupBoxLayout = new QHBoxLayout ( this ); @@ -967,17 +963,20 @@ void CAudioMixerBoard::ApplyNewConClientList ( CVector& vecChanInf int iStoredPanValue; bool bStoredFaderIsSolo; bool bStoredFaderIsMute; + int iGroupID; if ( GetStoredFaderSettings ( vecChanInfo[j], iStoredFaderLevel, iStoredPanValue, bStoredFaderIsSolo, - bStoredFaderIsMute ) ) + bStoredFaderIsMute, + iGroupID ) ) { vecpChanFader[i]->SetFaderLevel ( iStoredFaderLevel ); vecpChanFader[i]->SetPanValue ( iStoredPanValue ); vecpChanFader[i]->SetFaderIsSolo ( bStoredFaderIsSolo ); vecpChanFader[i]->SetFaderIsMute ( bStoredFaderIsMute ); + vecpChanFader[i]->SetGroupID ( iGroupID ); // Must be the last to be set in the fader! } } @@ -1076,13 +1075,13 @@ void CAudioMixerBoard::UpdateGainValue ( const int iChannelIdx, // if this fader is selected, all other in the group must be updated as // well (note that we do not have to update if this is already a group update // to avoid an infinite loop) - if ( vecpChanFader[iChannelIdx]->IsSelect() && !bIsGroupUpdate ) + if ( ( vecpChanFader[iChannelIdx]->GetGroupID() != INVALID_INDEX ) && !bIsGroupUpdate ) { for ( int i = 0; i < MAX_NUM_CHANNELS; i++ ) { // update rest of faders selected if ( vecpChanFader[i]->IsVisible() && - vecpChanFader[i]->IsSelect() && + ( vecpChanFader[i]->GetGroupID() == vecpChanFader[iChannelIdx]->GetGroupID() ) && ( i != iChannelIdx ) && ( dLevelRatio >= 0 ) ) { @@ -1106,10 +1105,11 @@ void CAudioMixerBoard::StoreFaderSettings ( CChannelFader* pChanFader ) if ( pChanFader->IsVisible() && !pChanFader->GetReceivedName().isEmpty() ) { - CVector viOldStoredFaderLevels ( vecStoredFaderLevels ); - CVector viOldStoredPanValues ( vecStoredPanValues ); - CVector vbOldStoredFaderIsSolo ( vecStoredFaderIsSolo ); - CVector vbOldStoredFaderIsMute ( vecStoredFaderIsMute ); + CVector viOldStoredFaderLevels ( vecStoredFaderLevels ); + CVector viOldStoredPanValues ( vecStoredPanValues ); + CVector vbOldStoredFaderIsSolo ( vecStoredFaderIsSolo ); + CVector vbOldStoredFaderIsMute ( vecStoredFaderIsMute ); + CVector vbOldStoredFaderGroupID ( vecStoredFaderGroupID ); // init temporary list count (may be overwritten later on) int iTempListCnt = 0; @@ -1120,11 +1120,12 @@ void CAudioMixerBoard::StoreFaderSettings ( CChannelFader* pChanFader ) true ); // current fader level and solo state is at the top of the list - vecStoredFaderLevels[0] = pChanFader->GetFaderLevel(); - vecStoredPanValues[0] = pChanFader->GetPanValue(); - vecStoredFaderIsSolo[0] = pChanFader->IsSolo(); - vecStoredFaderIsMute[0] = pChanFader->IsMute(); - iTempListCnt = 1; + vecStoredFaderLevels[0] = pChanFader->GetFaderLevel(); + vecStoredPanValues[0] = pChanFader->GetPanValue(); + vecStoredFaderIsSolo[0] = pChanFader->IsSolo(); + vecStoredFaderIsMute[0] = pChanFader->IsMute(); + vecStoredFaderGroupID[0] = pChanFader->GetGroupID(); + iTempListCnt = 1; for ( int iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) { @@ -1136,10 +1137,11 @@ void CAudioMixerBoard::StoreFaderSettings ( CChannelFader* pChanFader ) // index in case the entry was not present in the vector before if ( iIdx != iOldIdx ) { - vecStoredFaderLevels[iTempListCnt] = viOldStoredFaderLevels[iIdx]; - vecStoredPanValues[iTempListCnt] = viOldStoredPanValues[iIdx]; - vecStoredFaderIsSolo[iTempListCnt] = vbOldStoredFaderIsSolo[iIdx]; - vecStoredFaderIsMute[iTempListCnt] = vbOldStoredFaderIsMute[iIdx]; + vecStoredFaderLevels[iTempListCnt] = viOldStoredFaderLevels[iIdx]; + vecStoredPanValues[iTempListCnt] = viOldStoredPanValues[iIdx]; + vecStoredFaderIsSolo[iTempListCnt] = vbOldStoredFaderIsSolo[iIdx]; + vecStoredFaderIsMute[iTempListCnt] = vbOldStoredFaderIsMute[iIdx]; + vecStoredFaderGroupID[iTempListCnt] = vbOldStoredFaderGroupID[iIdx]; iTempListCnt++; } @@ -1152,7 +1154,8 @@ bool CAudioMixerBoard::GetStoredFaderSettings ( const CChannelInfo& ChanInfo, int& iStoredFaderLevel, int& iStoredPanValue, bool& bStoredFaderIsSolo, - bool& bStoredFaderIsMute ) + bool& bStoredFaderIsMute, + int& iGroupID ) { // only do the check if the name string is not empty if ( !ChanInfo.strName.isEmpty() ) @@ -1167,6 +1170,7 @@ bool CAudioMixerBoard::GetStoredFaderSettings ( const CChannelInfo& ChanInfo, iStoredPanValue = vecStoredPanValues[iIdx]; bStoredFaderIsSolo = vecStoredFaderIsSolo[iIdx] != 0; bStoredFaderIsMute = vecStoredFaderIsMute[iIdx] != 0; + iGroupID = vecStoredFaderGroupID[iIdx]; // values found and copied, return OK return true; diff --git a/src/audiomixerboard.h b/src/audiomixerboard.h index fbf1496f87..bbde40e673 100755 --- a/src/audiomixerboard.h +++ b/src/audiomixerboard.h @@ -50,25 +50,25 @@ class CChannelFader : public QObject CChannelFader ( QWidget* pNW ); QString GetReceivedName() { return cReceivedChanInfo.strName; } - int GetReceivedInstrument() { return cReceivedChanInfo.iInstrument; } - void SetChannelInfos ( const CChannelInfo& cChanInfo ); - void Show() { pFrame->show(); } - void Hide() { pFrame->hide(); } - bool IsVisible() { return !pFrame->isHidden(); } - bool IsSolo() { return pcbSolo->isChecked(); } - bool IsMute() { return pcbMute->isChecked(); } - bool IsSelect() { return pcbGroup->isChecked(); } - void SetGUIDesign ( const EGUIDesign eNewDesign ); - void SetDisplayChannelLevel ( const bool eNDCL ); - bool GetDisplayChannelLevel(); - void SetDisplayPans ( const bool eNDP ); + int GetReceivedInstrument() { return cReceivedChanInfo.iInstrument; } + void SetChannelInfos ( const CChannelInfo& cChanInfo ); + void Show() { pFrame->show(); } + void Hide() { pFrame->hide(); } + bool IsVisible() { return !pFrame->isHidden(); } + bool IsSolo() { return pcbSolo->isChecked(); } + bool IsMute() { return pcbMute->isChecked(); } + int GetGroupID() { return pcbGroup->isChecked() ? 0 : INVALID_INDEX; } + void SetGUIDesign ( const EGUIDesign eNewDesign ); + void SetDisplayChannelLevel ( const bool eNDCL ); + bool GetDisplayChannelLevel(); + void SetDisplayPans ( const bool eNDP ); QFrame* GetMainWidget() { return pFrame; } void SetPanValue ( const int iPan ); void SetFaderIsSolo ( const bool bIsSolo ); void SetFaderIsMute ( const bool bIsMute ); + void SetGroupID ( const int iGroupID ) { pcbGroup->setChecked ( iGroupID != INVALID_INDEX ); } void SetRemoteFaderIsMute ( const bool bIsMute ); - void SetFaderIsSelect ( const bool bIsMute ); void SetFaderLevel ( const double dLevel, const bool bIsGroupUpdate = false ); @@ -203,6 +203,7 @@ class CAudioMixerBoard : CVector vecStoredPanValues; CVector vecStoredFaderIsSolo; CVector vecStoredFaderIsMute; + CVector vecStoredFaderGroupID; int iNewClientFaderLevel; protected: @@ -225,7 +226,8 @@ class CAudioMixerBoard : int& iStoredFaderLevel, int& iStoredPanValue, bool& bStoredFaderIsSolo, - bool& bStoredFaderIsMute ); + bool& bStoredFaderIsMute, + int& iGroupID ); void StoreFaderSettings ( CChannelFader* pChanFader ); void UpdateSoloStates(); diff --git a/src/client.cpp b/src/client.cpp index 24afe5d9d4..fa3e3e5071 100755 --- a/src/client.cpp +++ b/src/client.cpp @@ -38,6 +38,7 @@ CClient::CClient ( const quint16 iPortNumber, vecStoredPanValues ( MAX_NUM_STORED_FADER_SETTINGS, AUD_MIX_PAN_MAX / 2 ), vecStoredFaderIsSolo ( MAX_NUM_STORED_FADER_SETTINGS, false ), vecStoredFaderIsMute ( MAX_NUM_STORED_FADER_SETTINGS, false ), + vecStoredFaderGroupID ( MAX_NUM_STORED_FADER_SETTINGS, INVALID_INDEX ), iNewClientFaderLevel ( 100 ), bConnectDlgShowAllMusicians ( true ), strClientName ( strNClientName ), diff --git a/src/client.h b/src/client.h index 0487e2ec16..675fe41c5f 100755 --- a/src/client.h +++ b/src/client.h @@ -285,6 +285,7 @@ class CClient : public QObject CVector vecStoredPanValues; CVector vecStoredFaderIsSolo; CVector vecStoredFaderIsMute; + CVector vecStoredFaderGroupID; int iNewClientFaderLevel; bool bConnectDlgShowAllMusicians; QString strClientName; diff --git a/src/clientdlg.cpp b/src/clientdlg.cpp index 166f0d9810..3d76b99d8e 100755 --- a/src/clientdlg.cpp +++ b/src/clientdlg.cpp @@ -189,12 +189,13 @@ CClientDlg::CClientDlg ( CClient* pNCliP, MainMixerBoard->SetDisplayChannelLevels ( pClient->GetDisplayChannelLevels() ); // restore fader settings - MainMixerBoard->vecStoredFaderTags = pClient->vecStoredFaderTags; - MainMixerBoard->vecStoredFaderLevels = pClient->vecStoredFaderLevels; - MainMixerBoard->vecStoredPanValues = pClient->vecStoredPanValues; - MainMixerBoard->vecStoredFaderIsSolo = pClient->vecStoredFaderIsSolo; - MainMixerBoard->vecStoredFaderIsMute = pClient->vecStoredFaderIsMute; - MainMixerBoard->iNewClientFaderLevel = pClient->iNewClientFaderLevel; + MainMixerBoard->vecStoredFaderTags = pClient->vecStoredFaderTags; + MainMixerBoard->vecStoredFaderLevels = pClient->vecStoredFaderLevels; + MainMixerBoard->vecStoredPanValues = pClient->vecStoredPanValues; + MainMixerBoard->vecStoredFaderIsSolo = pClient->vecStoredFaderIsSolo; + MainMixerBoard->vecStoredFaderIsMute = pClient->vecStoredFaderIsMute; + MainMixerBoard->vecStoredFaderGroupID = pClient->vecStoredFaderGroupID; + MainMixerBoard->iNewClientFaderLevel = pClient->iNewClientFaderLevel; // init status label OnTimerStatus(); @@ -602,6 +603,7 @@ void CClientDlg::closeEvent ( QCloseEvent* Event ) pClient->vecStoredPanValues = MainMixerBoard->vecStoredPanValues; pClient->vecStoredFaderIsSolo = MainMixerBoard->vecStoredFaderIsSolo; pClient->vecStoredFaderIsMute = MainMixerBoard->vecStoredFaderIsMute; + pClient->vecStoredFaderGroupID = MainMixerBoard->vecStoredFaderGroupID; pClient->iNewClientFaderLevel = MainMixerBoard->iNewClientFaderLevel; pClient->bConnectDlgShowAllMusicians = ConnectDlg.GetShowAllMusicians(); diff --git a/src/global.h b/src/global.h index 304e813bc2..dc4fea5a2f 100755 --- a/src/global.h +++ b/src/global.h @@ -152,6 +152,9 @@ LED bar: lbr #define AUD_MIX_FADER_MAX 100 #define AUD_MIX_PAN_MAX 100 +// maximum number of fader groups +#define MAX_NUM_FADER_GROUPS 10 + // maximum number of recognized sound cards installed in the system #define MAX_NUMBER_SOUND_CARDS 129 // e.g. 16 inputs, 8 outputs + default entry (MacOS) diff --git a/src/settings.cpp b/src/settings.cpp index 2efd5186b2..b11f5d89a6 100755 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -278,6 +278,17 @@ void CClientSettings::ReadFromXML ( const QDomDocument& IniXMLDocument ) } } + // stored fader group ID + for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) + { + if ( GetNumericIniSet ( IniXMLDocument, "client", + QString ( "storedgroupid%1" ).arg ( iIdx ), + 0, MAX_NUM_FADER_GROUPS, iValue ) ) + { + pClient->vecStoredFaderGroupID[iIdx] = iValue; + } + } + // new client level if ( GetNumericIniSet ( IniXMLDocument, "client", "newclientlevel", 0, 100, iValue ) ) @@ -585,6 +596,14 @@ void CClientSettings::WriteToXML ( QDomDocument& IniXMLDocument ) pClient->vecStoredFaderIsMute[iIdx] != 0 ); } + // stored fader group ID + for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) + { + SetNumericIniSet ( IniXMLDocument, "client", + QString ( "storedgroupid%1" ).arg ( iIdx ), + pClient->vecStoredFaderGroupID[iIdx] ); + } + // new client level SetNumericIniSet ( IniXMLDocument, "client", "newclientlevel", pClient->iNewClientFaderLevel ); From 45eef32b7c33c86c6af7d4205d284c46d0e64bf9 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 2 Jul 2020 17:55:59 +0200 Subject: [PATCH 305/936] bug fix with the fader grouping: if you move one fader quickly to the top and another max out, it happened that the other fader was not exactly on max but a bit below --- ChangeLog | 1 + src/audiomixerboard.cpp | 23 ++++++++++++----------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index d0400aeccf..7a38c5ea48 100644 --- a/ChangeLog +++ b/ChangeLog @@ -7,6 +7,7 @@ - bug fix: grouping faders in the client should be proportional (see discussion in #202, #419) +TODO fix: if group, set one fader to 0, set mute, move fader up, unmute -> no grouping anymore TODO bug fix: incorrect selection of UI language (#408) !!!!!!!!!!!!!!!!!!!!!!!!!!!!! -> note that for the 3.5.8 bug fix release we went back to the original translation code (e.g. no pt_BR!) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 2a151c154a..172b68d250 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -347,24 +347,25 @@ void CChannelFader::SetFaderLevel ( const double dLevel, const bool bIsGroupUpdate ) { // first make a range check - if ( ( dLevel >= 0 ) && ( dLevel <= AUD_MIX_FADER_MAX ) ) + if ( dLevel >= 0 ) { // we set the new fader level in the GUI (slider control) and also tell the // server about the change (block the signal of the fader since we want to // call SendFaderLevelToServer with a special additional parameter) pFader->blockSignals ( true ); - pFader->setValue ( MathUtils::round ( dLevel ) ); + pFader->setValue ( min ( AUD_MIX_FADER_MAX, MathUtils::round ( dLevel ) ) ); pFader->blockSignals ( false ); - SendFaderLevelToServer ( dLevel, bIsGroupUpdate ); - } - else if ( dLevel >= 0 ) - { - // If the level is above the maximum, we have to store it for the purpose - // of group fader movement. If you move a fader which has lower volume than - // this one and this clips at max, we want to retain the ratio between this - // fader and the others in the group. - dPreviousFaderLevel = dLevel; + SendFaderLevelToServer ( min ( static_cast ( AUD_MIX_FADER_MAX ), dLevel ), bIsGroupUpdate ); + + if ( dLevel > AUD_MIX_FADER_MAX ) + { + // If the level is above the maximum, we have to store it for the purpose + // of group fader movement. If you move a fader which has lower volume than + // this one and this clips at max, we want to retain the ratio between this + // fader and the others in the group. + dPreviousFaderLevel = dLevel; + } } } From 3c8137cdf8201016bade8ac2fa46fe91513c0227 Mon Sep 17 00:00:00 2001 From: geheimerEichkater <67019343+geheimerEichkater@users.noreply.github.com> Date: Thu, 2 Jul 2020 17:58:35 +0200 Subject: [PATCH 306/936] Updated graphics overlooked icon, aswell as bannersmall for homepage with full logo --- src/res/homepage/jamulusbannersmall.png | Bin 259954 -> 51016 bytes src/res/homepage/mediawikisidebarlogo.png | Bin 10254 -> 5540 bytes src/res/jamulus-icon-2020.ai | 1377 +++++++++++++++++++++ src/res/jamulus-icon-2020.svg | 27 + 4 files changed, 1404 insertions(+) create mode 100644 src/res/jamulus-icon-2020.ai create mode 100644 src/res/jamulus-icon-2020.svg diff --git a/src/res/homepage/jamulusbannersmall.png b/src/res/homepage/jamulusbannersmall.png index b6f4d6ca61a484bef840f9ea2ed5e479ed7498fb..49c981183edf440bf86db0809d38d1c1f7a63c2a 100644 GIT binary patch literal 51016 zcmaHSRajijmT2S9Kp<$);BJk3aCdiaplKR+mq2iL*Wm6h!QI_M&>#r`0tC4E&zUoK z9_E|2(71ak( z3Slq7zXV`lH**Rvn7xCmpqB{Mzvv47&Hq!)PDSxA5I3j@)xU+(Q&yvpbaVkz@Un5R zT5@o3Qt%0|fq1#Oc{x}pI5{{u*g1IEL7c20UO^6SK@cCse?3%xxw%+b3u;Ko{1>mk zB@rrHH#a9ic6LusPc~03Hb)m5c94L806PaKJ0~aWUkFxLZwEJXFIERv>i`YY+bn*eiCR{n3o4zB;DsJ|*>_cC{42eEOm!(jik>tE2W zZW`eKFUJ20?W*PN1ZLL&yE?kNSpKz#HT8dx|LX4lX7mr>UugtYT_AsrVs0Spd>3H}dn$UnUQjm!Ce z;tEQ-fX&?;U9=n>?f>HiYPODUj;^+jP86IVHV_4avbiP1;h!4Df2{QHMoWQRARb^V z85c(w#lO@n2>D+`-~^fTgLy2hSi#oToUGiOU|v>!Zjco#uN5DdLx6*qmqUP`>c8-< z{)hVh?WTWg{x-wuKhg+-`FOZEEiJ*UVDMjRykKrlR&#S+URDlEYd#(h3r-FJ9v&+8 zzap~#<2nDslm1in*FFEq{&!sbE&O+6fgS#algr<@kAmkEUt+E33X_7`P2XS;_fx{zQ^LQqM~lIfPKt^RyL3 z?PvFwPoKEHH{G}O-qtvtF21$}($d}Ny?VaBSKoeJU)epse4R?`%VeuNzhb(HPQSPH zy?P;=3_O#)Z+NMF@p+nFn=?CA3+`HA)`=?hup%aLx z&N)h;#o|xL)|Y^n%$3m0I$4qDyQ>SM>gOG@vWvbda#R0{Kl&H`N3#RhjaeVgpND^} zlKlnR^}+hF_6&VO(Q9{DsZHoJczR{plIu2odcB*i3as0WUxhb~cZCHSdybke8TY*i z3O~Q-OFw^@xyrAD3vlRawRXZPoeqBV=)RnMCUhOG;3OAzRD5~~fSq|SLD>k7I|dNI z98j2nsqWH;PbhDISH*!9tsP@GVaL~gM$dWQn~(0_r#8OM zK+bld=R7L`)7QioR~?9>9>e+>TE-|vFA zL!K?~UvGP|>=!!O01C&8X$7~l($8m58$A>j{Vz=)Z1n6twrG8=?QdrctQlpFK+#GL zB`5vxeRu-J=9-KgC5n_JXrtHmX}mEc3~8T%dv`Z@A*Z4Cgc z*SDv4@e+}kV&UM*=;u=Hd3nC>#XBc*g{~{REEZdtdx`+l=P6*L*3aQ7)bmJ0N16P0 zGXx3rP5B)8Ctc$X#~*t|2pMxo49$P#s#p1>?h+`Dt?Z0wz`s9`>N(Skr zlB$b*X^9bA!?kwKb=9j!CZ2q_mEOEy{j`Qhl8>IFy0)O(2^Nult+jly@S6teDP#YR z*NI)^97GJAp-;F=zqxD!} zq+R7h$SUVhp3I!zok_~ZrK>BDB8A|@gD^*ydvc1wXSjaj*+R~wF(bR^84)2mKQgnt z6}0AVtkA>Z^7dO-dgS_m9Uw8j*v(Us%g72~ z#0yknWA!rHD0&rJ;fVelj}Py5QV)~Oc+WbQmD3;?G)YMZ*{i$62yQsy2@o9-DBv`E z3#Oy`XwYU&-fbpj!&n(bThI`GE11&d)jY>WskVEMP8r{tGK-laZ&(h-MKk7O!yh@ za<@3v!ZXfC(x>RukKQ9=M-B|l`!L$U)NrIsFHqj+c zDU;4>;+sm3(i42m=3-Mum&s0_Rk~1uUNXjYGgyp?>_9wm@{Z0p0&3>1vr8%VIve(w zd!CSP5+xvbrLt^8-SE?&FbZKqnk{_Q**>c6Hx|br{57(nfiKFS z4kzxK5u?ne2A8>MOO}VkvIDp05?CWsMDU(hxDBYI)T1JM3ba)vV~)m1-cxta@i@Wi z>2MVpG9m)-DSfK~LeiQ9bZ*swfMVniV-%KR)+S7IwTa%>_A-0rW&PVd@-wolHw{vT zTKd*2by4+O$W}ySy@DeHiaLV6(dde+?+9x)c=_v*GK zE`4o;x78WDXI}4}IK&vqP^PE4=p%SO%YgUN>i%3_HLY4}@(`PxNwI%x zK9=`QTM~Y!b<@;aT$SkaJ8Y5L9A5%`gk-Xy_x>y8EOyPh*|7-sGJaLB+*WCumOpj6NO>{b6;%?{+#tr5MXm@kS1K{>h+-qnqPygA241>fk5eA}Pe zl=|b)%0}^{QW%UR)pjy9&tq!D?9!vg_)*ofWE}$De!2XWh?wz1=MgZ>&Y3ePCPNUK zC3tTbocP3o#z>$1xY*D%S z$bP=TS7Ww11hq}St@>VytaEO^qUtcqt$+hVJKJ9@wig2^rE{?zS1KJ^yn z$Dcj1qBjh@dWRovu+l%nMBob7&fxzQO5|H@e^^D0?=_(?5JsVIhqt}Sn7$AOq;;LNl6I~tWU=PabQIA8$~AEm<3-bZR!x=7^) z9fQ151Zc&i1)VnqQ$=^Z@7}AFv4M{(%=L-L1&HaH0>mnAk(O}gwR?_%Y~+I*P8Sf7 z?%n70MXj6K^X_~KLC>H0JbR0`-kC;hlSTmU7W)WQe}U~Dsk!rHVE+tu=vlrpuw8Ow zoWeEadt3YQcD0G(?XT`)9I>z6r0)@1dD_z%E6j^iE1VYt{Qw$U9;O`CZB0v z`E*~IFJeHLV$y8i^V{9yt3DGeH|vVF#ZP;H=pw0Cg8GQ7HD9pgDP?7ivc72;*3Hjw z1=V97q=V~>T4IwO+b{-WOq4PlLXS{j>;qRk(n3%!HvBnt|K|3fc+a&&{RzT5Qmz9| zG%eJ}%r#BIj9$Rb>$rd*THk5K^qeT_#x1 z63nFJdC(mfJi&rn~*~1j{O@SI$`wwW89pJ zQ-%7zg^|kQDgbAM;8=BY2b6|=z=p5q)0qWLX{rDs(@|X^;Aa1ZN&@htlsO@MOqXFj z9&PX~s1}1uUcm*maPOVI`TKYx&>@Jm9c~l$cS0q`HjbmX+-f-WllAGix;U51qjW{3 zoccs!#Kv8&T)o@VJmb}5aAI%rbLUZdBq?I|^f3L0>0dXL4s_v$!VmjK=0TwFD^Hyq z{8_7(4`}}OkuHg|(#ftG<;DWijY!L8od&@dd`YQR8C#J;6cHHGg%hOdmxkUnGLBorsk2O)t#=o@XsRH^ExBD8U3k+ zAk>Da;GVZ?3FVqA)?g`da@f{3RJYqYETC-A=d!)23#g&Gi%c=j0%j!k@GD!+EjGMC z3Y5lnV?GV8Vb!V3^hfpiS%H|$gkm;@F#7GKZWbOrq`e@KJ=sTxKU%owM%E=Zww87C zAkqf&JR|GJbP6;j$v4?s=>`~i-%03}_{uhe&`H@zU>t-~h!5O*jtbKg0SpNo#pz=q z%&Jw(_HXE|es;?t<_kZ%nC{%G^(s21*51DBFN=sKwV!T$XOIfBB-w2DvS$tu8KDBr zM`WHYxHs}|q~Lc47YF;sxAjQK2B*D+-tygtQ+Fk#` zvwk&l7rDr5gZIR{(p#cWr#nE(v6=ei?g8TS_oxddDX3+VHQJ9AujHe6 z54Rd|W|$3A+qf9o$TtpIvTz1&DI22e$8n!7h#}h4kl-gG?nNJdlGF7fRc*%``(r#q z*r#1ZI4TAnSuU49tkiRrp}-hhvl1j=8POJ(mhaooRR4hD4%iB5U}=~VnLC42zV!3G zhqwV%27Ii3t#D^0s~n1x+Tdu-4ccSagQDZYvU4l6J&kjeBALwMm#kc(E5q<9EN#dT z@;3y2u`_8r4x-2WmYTFSHRKt`|K+FU_Ei7F8DntZ%$`%QtjHJ2?`W{7nMcz2cj-~P zC3c0Vyw;z`x-8-fh1X}k&?sI|ceo$qJC4v=ovPix4eL51HgE@g&Ek98N7&jZ74S9! zr!in?76)A%BQ^qX#ymd=AkFFq@&K%np5Ew?7i)j+BG=5 z@?56=wMVD^WWjHyJ%4pV-1qkD95$DHx3v+{(}*b&jU+5Tm5uy1P^u|@=T~PltQFG2 z#vnsD9rC7>s~dQFj%((gS;&Pd9HaIzQsx1kl>QMahz+hzZQb(aM^gmCyDk@yfgKH! z8=PA-+JthbG!;Q;525a%cyDyxmGh`+qHido*=4Jt`|e*hUQ5-0H_m(Vkrw z{Tj0~J5{Hc8!4DMnu3UVc~&I=^GE%~EpxQychuBkyxYeOtE zuN|2JG;is8i2RV%{&4HN`NpTQMh_;-9L>@3GxeVD_|eo#`cbpiln%R_F%fXph8%hy zdR~2w)!#tvi>uRUv6AMartd|u9vH9bWf@mNOAV`HhlQTr3&_fnA`%|WqG6CEp0178 zM}CC9tbOJFAXx*s*JvNvVj%wwCQi!2EkR!uVO==_rFOHq+TiS+G^U*53PDOsaMmS7 z&(HUKG=a{IgPGPmR>TXGRK*IiNgP_SmW;Jv_SPR{D%gc-eK^DW;j6+W<F%6;ew?%dm3nZFy579~yGm6f^@A_Q47B{4wE0L_v`^>9$ zH{@(6(d^*(v8lkuLmhx8iqO+Tn>40xF(k~`ytW0z_ePQ!1+{NfA=}d{7KJkS#j8{v zlX5B}UcoC0qBmYIF#VoYI*_MW%a33&&kC^QFgsh8Uws=pPU#y`>{Pw3{X|TiTA|`W zu2Fl9bgTxYsuk$UysHB6P5V0Z@P%%3^DHyzAiKQf+&<`gq`Rp@ zt0f$-)H8^>ZB->E#Qd>vobgPAH{YZGCVT3HShL}M#$9n=d0qAD8}j*YMKi1mbr$XxT!pkmyH2$*A0htVKi?wwu8NBAY^Pb(;`S>Goyaw^oB%X9?D3 zO-HWQdvE-FceVGVzvg6(KKHj5=g6?a(3zsKj=Q=du=g}41bq>xRmez%3C42tE1 z7A3$Hc6`x^tSMHzjZepY`2?bUF^Jed-DQvwg}_XqiGwu)HD_-sL5M-!+f)H!cVArVe7RxGm(Zz zKcB^pqn>xs*;soFv(S&Yh0DAi4TN4YJ!wF-9JunrVU*v**FU}p?#dO-E(dfUF+6rZ zM6efJ!-Y6sImCM7wu#HJPz(nIYPxDIsd?&e@az&E&CG6&<3US~cMFY*3v{`yc&CsP z@BZnpnh*?QTc{sgwTGgAHd`XwJ}wH+DGNi-g`IU9ohqeow*}qocodp( zOYm06A$Gz%CWk8JlC{Z-^euX6(mWGl=45rhDs7v*;y1#B^=qYH4)zmRkVlVaBPgTL zyD2jp=o_lL3VMv6*m#Dh_c4D^9s)RRVK*tPL&&?Kc_TB-da7uzV626xM+Xy?2}^ib zR);@Yea`@Uc5S&%bSIm5gZu~^9@Wgu3?WSv^Tv6=um>Yr7=3 z?TdK#ye41Q&$v^2tk*|}ZusziZ?q>@oU7?je;S`c55Ye}UtTd()!%t4@3GtpR7jN8w50=e~ zfBCY3I2YWG2KZ_M zBHGrwqkqBCQJqK1UoQ}9b!s?o*n1MN09XQg&uOm6($MwS{;=PlgpGL?F&@V z2!$$QnXlZ)DtOb>s@7%GZA!p61fHICKr$0xJ%B71?ZyDi4kc`&I;;9di3#0{>chh0 z`Mqs%{$ZKTfj^Vxcb3J5u$~y2Zedm5`-6BiIGvkRq=a)3dCK9sl{L2Ghq3~HlYBR7 z1hZ8fZ67`s+Pm$|^V>6iT)18J3!JEs*^QHd<~3TGVOEX2AH1)bXIyH(AEuZLnkwGv zVsIQVo(;0rkKJ2Hz=CF`Ob2#6I`Z4n$fewc+ICQ_lPb4=4!iTfGn{+!9_dqOjP{T5 z05eUw_PZBKoD@5)NyO*~m%Wkc^d+<@7Za^~tA!MKX%pgn+p~8gd9Au)Q9iV@4qc9? zG8aizA2b%n1w~2eZ65;<$Qs2k=(O#&dyvS0NzZ+)UHJvk=|x8Bc3;pG34yCyWiQk2 zDm<&mq#vxQ)H7%Y{5}yiRJ(T|LkV@eTl(PQjYz`mjp5Z!Z z!42c1;qr*%Jlc_15@H-8dAqsGh;N^{$ZJ_d*z?iOP&dq@MB!~ZT#_S3!y;wzt>iCy zwuubkra+01WR{&J+^YSIdcp0^rVy(5FqOCGHp;&rfv%aLbA6^bgSHw6*-!8 zP!>|f8PA&;u@_P%mZf%$Gndv50imoZ8Q()GZjpSTkJTT=(!qSdPM_AdnigbL-O?2d z)PfuZd?glX1X~zSH$_~7bOMhWfp!Wqj0!L^=frq@k}E98nqheD zl}7MpUi&zRzNg@AG5Mz21ur=;hE?Bg`5USKJ^S$uKD7esMn@IowXW_0qEz!cMlqdU zPXcOwfy{b57uhKK)U#$FDf67_Tqg^^_39Ds}+eF=Z97BkE)H$VHU*?(L@@8#u z*HHhWVXT zv=vm{a}&bKvEXXS%Q;j_2>@^K^YNmOjfTp6I9TprpJ`*m89#@@3l`g0&%JJzW3r~T z02{K;5D=U%(X;H~pNa9{ziw&zJId_j!lmT-u7-CZTX5%#pf{TKTc55cHf=4gaZ8CP zM)!O7d0c2_C;w<&WPRjFjmV5$L6Vi29dshKSG8fLkA0?vR@OTa&;03WEZhkE+h1YB z8(v6HvdA+`XTK~EZA~B&y4Y0C3M=5hJ8?;$P9%iM9NvCEebh?U)9$gLdNyD7;7$Us znRuO0@-`Xmlu(2@+n`F^R8vc!nY&>98@2oy{y#Lg(b<5~QSS zH20Q_9N!Il0Dku6RC>8IcjBxl_`-?E>V4(h?agYsy_pUJb1TnvmGtf>Y_p2K4>G~2 zi_VUgBv>vZtp*}R0jVU1N@ak|#doRgeYFK1!<@cCU#bBlaP5xc*O5tGPRpoeVQQR3=uzacoQrXMDmx3UT z-R?>GgTW=^yD~gZM=aLlO;xuN;q&^}^Z6J3p zh_=qy7u6jBl zRL05*pT_7~+^{(MudfN-v(Of7m!m2gZ>$1t-<9dx(G&jgu*#d?k@YL}qDRLqMV-$f zTUct&hR4q)AZ4bRLO`IEUFM{oL?3qBe@5;=(ceb?dG1(6WYI9!3hRoIfoPW8RWzM`V^stQbCS183H^ zRL?(FCw^pVMsB-e2j61on(RadaVm5{$LxR&g&2S8N5D}^3bRp3&=ek`N`5xIaay2| zy&$B#Xl=!(%F7y}-StPzD>p1AO&uXhoE@HY6dY->60J7{s_dEjD9j@rn(5b9e@0j3 z*tX$0)R=dz&XD)^hiHSb*$L<1z#l)kjCP$a6$BP7KpKesasgoce9rmdWiX!%L=sWyIMomW!?N~?tWg)%0*PXbw8yUawNzZ>iYO;c zJ`#U27((7VHAae>xb^|B_?Cz9oQ`ch=W)LvyK>8UBvDj4CCWba_w47&drT<|D69%( zIs=uvi8^VC-j1#e`iHrC)OoI&2VykoKSk~zo%0crxq*g`2fnk&xBuN+6(8K-b<&sc z*?k%|r2fbRv2dAl6J0MRQSJ8IRagH6?zB$;PN>bO_1I<(K{coyI@Ln;rrxCnmBuLq zpNrL4u^wF;i96NsQMp;tsFy>3E$CTnuR#;_g^u=0Rh|m#5V5+=R`i=MqtSy1FI3c# zbLK%tisCQAebP9$aD?T9CiRm6 zy5h4W$3S9GR8IVJdD}1*CWZIstT2KCd)s(b87#M$>S4r?B(`}5t$nQ%32jJ7)`M*v z@LiLPN~$+=p?O4yMA29i$-1b%*`N9#PA(ZSG8hw_(@T|{Gci7QIW#{SDS$`~iY{k{ z^;4$S4y4w?sB_m^`TDI-b_w7) zla46{LA2@eSl#BD5a)Rq!p%<7&$2(3Q)ni56pzHYh?*(; zdy<`NNLC!LxT+{E*unl>A6+*`IgArQ&~|ZOtTPNKzM40C;y15?%2u7I(^`#5y>@Y+ z=4gWkK^s-2OU&U%`xu(6z;dEv`2KTP^o+{2mEW2W(~+P+1$}El zSRV_fl*=V#rlpK!RaWN;rYV-XB`vbb22H+EC_yMeJWqqE{_oy;=wynLb&5XD+0SpGI%HQ)plKGvi~6 z=BF7+`Y^o| zS+!hRS(=C7UFFDxTi6LMV&hlQo&H-rx|_TZ;P%fPY?|MP zcb^(P@<6|*)7Q*u?rc_${3iA)u`>K7?d8{JD$XPa0!H}(`0s6%E&}f2s{rqA z9}MDrhA>yaBCeK&h2vIkm{5u}x0N%&3r0d;^G>dstiuED;7c=TQ=F1rw?hEEHuF~k zYtzE&xlAw7OX~F2^}WB7-jHh8d@uW8@6Jjn!c+H8gS67~!K@DCnNq@}!pVuZ3KMuq zLm`3pL=`JyjP0+#{gGkAQm0;(R*?FcUp(~$-=R>YP|d@2BQS!n$7hG zv8tnG!k+yXShI&}4Mcn48~)u-I!xU95NZl#5R!heet)`qprA=ABf15T4LI1Ov4LRD zwAnU4Ecf%&pU~9gv0a_TQC1X)sF(vdQ_a7tXYQ?CV0d2`Iz{5BSbo)%iaqC4;AJP zU4cVk9`QE>8FkQac+|&9d*oI%&panFP|Ai~EAl6|sgEtJQUZlB1q5|iwbb>Jb1hRi zuK}(fWe2zksUA9~RP+!p?`tP|JMHOkWa$cZLLU!@GDb6mZ!p}9J>&fYJxr%Re-Smy z>vRm)BhYle-JOr{cR`VYIiffK+;OBKVj6L!Lx)!1nYR5FB_R=0Tq#A!y+}M8!6+j+ z`_(0$>si4c+76cXD9=ECtHUv!y?Y?!f`Y`JNuNMZ6u3ZpN(DSbL(!gsrMNn{OyuzH zLO1{Ih;`Td$b~0X*o-evoD9`#n(u`YF&3*WESidPMN8Zbsr3$UFOuawF> z%D?Wcarln)qr15_rJ!8Gk+(eDVhl95hFn(D6C5y3F>@ukC+t|`SmUr*(La*@`g~s7 z5aL~i$Rcx2VrFA%Y=9^@A6YomKdE96z6Zd~ZY2J@(JuLBn+}>F4c|I}xAZgKw#rk! z)wKTY;v8H0A>=H&Wc`5Cswy@gLd~u(l0xdb+OLm1NG>2=BSydB^x<;FB3Yj;wyI8< zm=J7i)S&&_N?vwt&c2Xvhk)NPJ1M60*BJ)pop^@l?RMi_C@JWpBScBg!|S4jAO$Xn z0-Y9(ydg0Y1{X}+;L#iA7@dVt9G$BEC9RqmHtdIh_WGdbp3zeH&FYE)-6D7=?T99r z+_e`>I_%tjs<8VD>a%`4f$ON{G@GjJ%FxR@wGKkk^r_^WiYl(GC#f0F>PaqzYT&hz zbn^Xnu+PH(P>~>=A$X-j>m6Qni`dN`j{ib|E)`#R6SJ_T#qnG93z41|rSTz4jsc#4 zdoG{R7=~FT!|%o{tRWgS>lJppFvQwxoP25+QdHPBX?uiH1t9KHcUeZ74xVTJNW-eOOlEy8Z z>_%kKkiAJ7yh5Zvn zBO*;l9-IgyEgszIN9s;HYK>pBh71h)GW|&i9&cSat$tPzMSQ&(U{oGBtJ0-)9hG#< zwJ9XgQ%bi$qSYlQS-(*_x^QjP>G&G~jAmb2G*`tCAF}ZE_JKu1Yh+5s&(id~r1fF& zAp0o_6;64R#Y#v=JF}AX=;thX-a~5thL*`W+Kch=@yV;Y1rhi2A4<4Y&;BFI2yVi{)g~v?hm#ZfxJ65{ieiVGkZrm0b zJuKqLb<-^DGMn7$G^ZZqba;?=(pi*`qD71S8=YDXMK)R}R;(Tz$!p^b9<&o{;?>v5 z`|jf`#ZEFpj;aB2dt|VXP6eXkw9g$pIJ~R2E=Zj-f3BJ8y%V3od-QSg(pTMgM5vtA zO>yPlh|ZI{xr+=GA8hTG3g!)XM10?IM$2Lj9c-z_G!l`1O3&sO;x2sSF?D!n^6drr zKtSudB8UE*hTe_hhA6z2F|}XG42yT#F4t~=f**^2lG}pLXV%?JR4GJL_Cs8NpQe|I zMF_&Is`D}*(*hoewKO`|#>fZ9K+EOH(v{e6nzjG$Sp}@*x7cPD(OdbG8MH9{u*wPa zhuW1Rc5R0sW#Vg1W8Iy*6xT@{)Vy$9wR@3@CE8IlnM>of1Am^S$%wvmNT9E~yTYm3dSA7E8DfRr_l@=f z=XL8#NyzK@w`!)km}qc`GNxw?+)+1zV!T$7syTnD=dUhPO6AC;xO-Jj$)+D}1l_CS zYjX)SP3Fc6`x28;*XNp6f3#Rv6a|_n>HebQ>WovRAkb5l<3p_Q{ z6*%g{W*m9>zuCrY3oJ#tCgp#d@n9;w3+tyPhPZC-j?^->d^SFYviJUi`E7b@WKD2u z(M35f+pFnW^op^Sl=;{m4`ReZSjsou?^)3QxDy-V{&P_ys6>sS^D>Lq(v$Xr>;u<< zf*Ix@d=1bcovQJGr*>?^1=L2@h%oz6<#2?vp8V@d$ApyR)!%JJA#v!#l*wF;1Vent zy(N*tYTKCs`T(*4!7Il3d%i_GoCP~`M$yIZfYbxg5-43=U3zc7fQ8}|#SPEgN3Z^8 zxn-`E+xt;SA@KOBT-u>ie`4)IjHVNpo0;B?G2ycK)Si2Viy_GuxmxAsoqmHR|eBaGhJ&%02Z0S?q`wEFy>k~v|c6R1>jB1F1(%Uz{BW^l`_LqKCBP2+`4?68)sk?k!&(p>yz z{wQ4Z2fsx!^%%BH9Q2}BAH9>tDU%@LJz4>FSJcm|c{_FCKzT1QQWKCa$`TCChc&cw zrU^Tont^`Nrt5FcKlB<#M1V9+B*aK@Mkk_%4HiCmEzSSR^hT!u1%{h0h(!f zi6lc09IWj1lvk*TxW63Tb?@}>OyK5-_c&q&Pr^xUg4o`zlkoUkA2Aeuz5gzr=IFc? zn@g)V=Prx-#SmkL^a)iXxntCTzO)3T!$rXIJ2rNrQBb}&4^oAgTczgYGs=$+`{*R+ z@PW1t>o#QN!?*DFKe)X{M3$zL0&xqOEG#l0xO+RN`s&%#h}?Dq4?@@86GFMrq;ut@EljcFn2MDEBUfQPfIy z%nzM2#ARk~UHIkl8nVwcb32OTR0_hb>l?orPo-&F*QCr&gYvzYjNN|$hB6PE!j)b^#b3Eqn>>*h8cDJN7+}Z-OT@x>#5j83}r^g)en14yI|t1?3H*_ zL$GSJm77&D`O?u)Yv-~m?7V!5tNQA!AS`yI2Z}YFQp0vaO!%t?o!C&dMmC$T=*M09 zv=t1qGj~f{h=SjUuk}8Yt&~K-u}pmg7`fgs3$`i3Rm%&awIhLPep^}e$vLIoJY-oiwJ4i2=~i3AZsd6Ino_C8o1cRH3wZ4a%~ zPrybHe&bH^4h19n0#|D~DB9(Sw>pzqUWXyJTjv!;Vz@g8j!UXr$Lq$; z4q#r}8aCaml&Pk-TDR;`!!z=B1r?ph1*vLFrrjG|2g?cCL{cqlhp6NF1^b%dGFKS$ z4#j%7tP_ipt;m`5fqu`3$3e@%Rp;dRvYPG=MZ3IxN^S>xjrCNttNLD(r$za1IoD(*H){^`Z6_57zlBlM#=x#^YdtxY0{YAv5i+g7yQ`BriEPGQA9 zJih}hQtt{#YaTNK>I5a~6H!TOPpwi2-WZhme`IyoW(e@eiWffrVj|~zXz(k%d^5U- zyJxo>`&O&vIDX(W28kDHr>~W>|A9Rv3;wCuJP+5%Qk?vC2~3PcgO`bzKtEJ$QA@&C zKWDOrr>XfR_HyHZD(%T*hz&ZxJxbN};d}!zBOoAF-f?R{gRZt+6y!Q>yp;ljHSm0k z!X%NCbJOd;w6);;1xOz-+RWm&|4J#pQ#1`xpgw!Fm$-p{eycndIU302bx z-&p&E(5KofN1n4P4#U5uY9Nx?5R9)y%r{Il8e^yWLT($y z^0Y_Hx5;mIR{RHPx^Yi@;Ei>EJ;5@z;2v3pm?~>u?-Pm#@Kr}&awUoBQwD;n*|!!Q z{|WT?rXWda;a*19`U{q3yR2Fbr{nVHVPheM#x6PkYx9vM=;w<8<}W$73lzRj)n>-a zO)H44k{6NEQv^*9I15fH2wQ*p5*nsgzB(Wo!fbe;>Q}*H>~DFC4ai5gk}4%|1JxJ$ zt#LiD2x#PhEb{7Jvi#H0Yqq>y6Qb6M)g;>_cIuU=g3FFh^LS)+>({4BnaAG|6B4<` z`J_u_-h}4P$uQza2FV@*(p2c8HQLg2%ITJJA#>l&(5RvuG0U~y1(CNf=wAc!#C?vr%B$YQJH8rdH z-VT$uC6A;fi5>tqAZDNF6X5ncdt?8(0~{`qQkOuj0a-DLtI(!WW{9?;u6sV&m!7Rt zw-e!<>Ly@gE>|y&GPr)dTGvCEvxX^qu2F%qT<{rO4b5qE=WvutFWx3ocvI9q#O^-L zU(j1F2O}=hFpSInPW{O!Ly$#W;6|TYa@FK;um8i1@^D%3^sL^G2#j{rJErenp}TW1 ziZ9mEqNx8}P{)G ze^f7IyK>xLNeiG>^ye6C$+#&z`%wwbwT~J#_PaVR>TRzmSHq1t5m^J^cs=OMMX$Dc z^fM1eW1pEldl$^OhcGlYmPB)f3xM01H(aL7=2w2Ph}vY>tec)Qnh$#C{^F$*scerki*goU*Gu34UHcmfJ?c+>)>2 z*5Y$T!tPmIgZ1iV|CG<35BtW(PBOQ9QREC z=OI7lXDtoivY4_gSXNZyYB`Tk>G-YNtQVWRhvvITvsr}dN~>hcI$bzp(#C|?eQK7P z$kJvo1VAFCY3B8v*9sbx`bDueW%d_R17>AVXjllY)bfmnGOO<`lMR7dQIYZS_aJ@6 zo(x~Lsm5CU=O6rMa)LZFY@v9a{gQQW0FQWbMHr41xjS+}NDoN{ZC>dSdb;u^Zxeg! zT;RqH1Q!l?3Ru0=v6FP&3Iwim<61C8QQHR22dTIl;c%~J%W-~fit;Bdha zr1sE!ttTK23qrh%kMwdhE|=3mT@n_%hbU6#Z+e(m%@=gyNBkX3(_RKX3et)^ z*qSQeOw*#3fwhHo#xteP2otOKL=|&>tp*=S&(%{lEjr(RCHQkf5>)cMWMt??UB7;+ zgHRSy-BqSPLuNtA_UfBj4N-3-{d%NYUkTNsxlh^al+YBq9Woug;F?*V97+rt{b6+i zUm9dusLWELJW$+3kWB^$zbXy^-J9fry{FAd}vPROqY~s>Li; zf>>Lvq-S}eA@D54&1S+^b-7@D93@vhC3+jacGU~HUESO`S0ilrYOUZgMl+>n3nIfL zRl8P-)PCKv(wR!#zbBG`h-vQ8TR9C4vYtlRWkR(a^&e(?EK_SboM5n$Sbpd8n1aUK zEX-$BNxM;210Y;Vhj*yB1yML!F0a;2bV+n$YBG6RW8HH?wd||)5&(Wt_g#6WVY$$x zSp^BOEr*u@TW;O)M2|l56D_oPZvTstWfL~4bxs;__xl#FBqQUjg(9KQk?Q!&*vN!` zyqu5+57@C>^HsE8_R=;WPIa=t>VT$?EyL1Ua&@YiN?q+R0>x%I5EwXiApVFR!cxCUalqYQtpAvLd~1DkHD_q5Kaf zlLI3Ba6y~f4g@r|D`lusJBtw8%|>2af!cA$dTi)d%XwSr#f2t$XBiBoz1>%I(BK+I zt1WpU(r$%PkiwbM)=DdeCFp}&PM|lln6Ii$0_@0a8b*&vGK{?d%`YG3mMVg$=I`;^ zc7qzXQ9E8ySCC=u$TKaxa&7|4@AgG}X5cBP{n#|-gn}!G4V+2VD7{KLMh**ECmZ}; z*YS-D@U5^T#A_ss?9_l7gJ6v; zcx-(@VBR|;1@C!Lk}gOP0h=q_lL1TENg94#wTYaM^SCoW(CRkS(8s7m0;8fRSM<|} zig&a~ni4SR7hhB*^%F4aIV|3lV77nIqy2__GEEI|9UqmZ0iA(Rt%RRnGXq!zzOc0~ z|5j5Evqo~6L>2Is&f>T#O1E)RBqTzhAhNNRROh#p0!)TIt4R+SGEBtaw$A}@suF$s z@B`6TRfr`s>gZBGM@I~GG-iR+HBTJh=UcNL*RBe+7sZ+KywvEg8sm!)J%<7X@$9ZU zEA>q>QeR{Go`;=3mX|&LQS$6ZKSG{<^NsSPn{Jd_AAX%Y;+k`E{qEnYE!*esy-z-S z&jtDTop;N7ZvUM8;ivADw|)E$`OOc0Qa*Rjy&eRr(PGRDqb1C9=7Pb6Rpz_*rA-wq zsT5AuCBaCd>blQX80iD=EdS$MBKu(70<+ASAgmv#0dccan}aGn5T|Zq8{4=E zF3G6v?I*YfOT9^JPNk0c@b;$YJ-^yms)Zu`;!U&Sb%D|J(GEX~voxjtV`KueM{e!1dT}CAMzK#j&ah#(^GdK_S>HG1o=;%{1|!Btv4?K_RyFY zj~jPjcm8?Y!>^YYKlbMKZ}T(p){osG|MqM&*&nj#JD_=U_tJcG7S2K(N;cZSp3P-;Ow#l3jx9{?s81Qv=59@04dZT?)ohZ@>y{T=yjO z6qfE$I)V0>Q#Tt?3pSZ#{WW)P$^dQH7jtwo{l(;?T zGC+1`lB$6v@nN%pvc`8@tAD=s_(;Cv`A?ER^ZeTuKzo0Uw|@K%`4?|_zx>lTzi(lC z(>ZOC9q{u)Q}AmR?|-PtP>IES3~b?qprgrRo=*-qk~<{4yvY|fM1#94O+KG+V!XQe%CWQ8eg+b9XJ9bhSs<9vt5#?&L| zRtbg!c80kUB#@N^oImf6|HOYV{$N)HsHde9G_lMw0=-lOlh`)6N<#YGEDflvC)41v zGPX*>WZt~pMLlp*qjP4Oel%f4qO7<+0MiQ8@0)*4P6CsgFwV} zWCLbU4*I6Xg>(M@>(3v_fANy1$)EpD}^=-}o;1>^=9T zO9iK!0-%?OTsf`h`m$42hyM-#%oVSf!tUTReY~4zqqkI)W-)qGG|4uTfSBG)~;l2<4- z>zUZ%03YrX!zMzoZ*jJl_g~DyPG;`!b#z&y_u%y;0wB@ck!#at5~=8Uh?zyfxwQ znMvb|;{?jdgv;L30S&OUJozbV};Ey;kM0^G+@gl~~*r-EZ-PG?Yi?|nOPy92nB zMf;)rkI{Z<%2-?cJ48(yJ(1T!?cpYi(?2DCo!lZ1?*y5U zhZuW1&*PUp;mhQukAIXr?=d&Yv%c&R^4MK4aZ&Sm_w&Ked|rNkcg^4OvD@W$cGvy& z@BhRu=(w<1$Z(5S7r4u5 zYd?XvFo3MoReZ}}# zw;H*A0_vwQfULj9sHig0_btV2Q)6_kHKIsjE^5KTjI2v5n2@l3&)Ckgh>0|`O08X) z6&^`$8N_Px=kfg>v7BKPusM7k2mVj@@f#7INmk9(m32?zQL6^c`>6 zfr%gZr8mj%fBX*dEv_Z7v-Qjxz)Pet9H1W3^k&hGlRy|XZZIr-+<*5BqF(ik$I2_8 z_E>q@<8N62?)@=7umfJd`mPVlFTUeL@>?JLRNKTbn4Bg{H>C&Tc;T%#%eOrH3G&CE zdaFGD%Wt}0zGKchy=fO%{MvgyB0vAOKazKS^0OPd+s3dnSx9LUD`p2n@~O-IU7k8Q3jYEBjCP_ zyuwWZiGj4K1`(>Fk~noSc$J|wXWH_34{m*xT4zoB0cGGY13eXFO~&0pat(^7oh2}i zmRvYI4(wcF;M%~|ikiGP1GvFjNF~eA4j4%tBV4#a1_49`xAX62sltWbk3a9gYXV^P zse9C?B1oP8aAIpgn`J5;zgX}+XySg17PWRhQRtbm_6CO^_J_-UG^sM z=@}UBKI`UFKI`5cIR2l0?alIIZ+Z{O1){OH4lE_cuj|*OrSrJWauVeBYZ!yw>&_j^ zpM2Ki4vNR{eQ3v!2bDL-X}lvdw;mxgKa!?+1t=Cs&sJ6g-lB18)hEaBNmxMWLuj% zl6jLaSKrbZKo3jccraa$n8f)txViu$z-&a)_0D1GdF!a|L<1AbBn|JYk<+lidNbj} zp5`{dc#?Pk3$wz+-}atcnljvypi_P2Prc4E28N4l0@B89iS)Y2;Oc2%g?PrsBy%Om zIrWU{cLMZOsGL|@q^(#-F^~o;%uEWAMo(PKMIe4!wYc}4?1AV++SyE+V8m<+1s3?( zm3bN&4Ywf2>4K&v3vpH*0!ozN!X*ALuX?e3+q0i=Dogu_YmV=?4Pn;T-f;dXw5G)IEARTSeE%>0mV99; zIK$>1vS?Oca_h}Y%K2%x+$c9)dtM%X?YZT7`rN%2Cc7dAoVAdaWNS`evf|GHS)bLeZ~%4JxLz1`~EM5@w)eaT>i;#ziYX6Ro-*C;P$$6 zNAij%K3bmtn41>1e+HE|Tysv&l_GcFci(cYKX&I`iyOx8f9&=}HgV5=C->Vqe#PS+ zC4c!9&ysK21r$eL0-Y)5VC?69|9$eKZ+ORY4K9}Td-^R8m*?Ml)8bBY+aqs~M?LIX zx%v8Q+PTfw^6uTwtik@kZchKv9iQJ_=R4#rAN}<5-P`yQ0JyYxBV*fYI@~@J?Lh-z zN$ytbjiZZxK^#H3?7n^&Xzx$ zi(yiO{Caj}|EH6+@W!*0*8GE0wsxS6@yx9pEF{B}5bJ9*5S#08y;g^3Vpcp?kEbq{ zO6LCD4Qno7`q4l2@f0W@0NJySFI>1!e*F(Wx}@%Z;q4#Ttq)g57V#C2yG4HBKYpHk-BWJ8 zWDr`9rC#^Bz_0$UUZeSU=P&WP|KdA7C_nV;ZUsn;9&xLIs>6*`VN5Exj|agClH#FE&Ej&!4hHtiH!DP(L} zyMuZ^EHJy61&j;oE(P35%5<;J5H>Yeg}qL8TAN7#lw(~jX>Vl!Zucy%XKzQ^R9!m7 zL2+3k4Z-vTGPXS$mVu!EaN5E%&oSUaHw^~g`1_o_jYl$3P&Z;f@z*zBca8kycl@!X zs43kjclYkxC2r_fiv1b^ikYdJi>dz8XFl$VFm-SE;3wsO{daF${yWTEBx}L!YVdt8 zdxrd_mp^lHH#ifJojPE;5@QB5$92Oz!lxzdfr*oxTk(R@Yv}5-_XT68> z_5J6&AZotupWFpy^O)!Mw>;|!@;xtks(jTGAAP?x)|j0&e)4zTBme9z?_HXxY~zbN zf?E>clc<2p2??}>RP}{mO7*=6{W@pQa0zaF8R5jFYTzNCGN#Z>ANxx zh$NoF4|cX@I(X#huEo-U9P>y7x2geR+Mx52K`o4A&4lLvd(}_B-uy{L9uzx*7=6GY zD~K_yb$nY0wag>g10WavH`R1#i+z^rzxH+ zw2u{N#~kOQ?-)0;EwAg$(BhiTnL7klxL0*Y z1SFI!1!rk(PqIe_xfU^%T)^ICmE!hL&r+)++I)8}OBwGe$u!Dh!_&MTi*H8|-fLlI5Lu8CmQ9UWg=+bS}d=_N2SXopw+7Q`~jUh5t z^%+G31#H87q?1P=X>}#GdS$V@>SY0lz}|v{U}kRTBC~Ei)NQ?ZA{^2QIS`mwgtY7D zdd{j3Ky=_Lr@bv=Z9!NYX((Mc_9*3hJ7W5T0DZG(G7Aq(NF|vMoG`x- z&^^!svWpor+x!!6dXN0j4q(q#d)v6WBiMvdC4E+DkBlfYhQX3b4*OXnX31(x^gxl3 z5;n;S-RhoNuz3SX5Q@Vmnl|Jy*snXdg`@7KF~H~! zIg-`|#p1YlZTYoFPkYT@_*)L)qdBgU?Sy!XCmnnR|C z+M!Fjy;khc8ZMp%aHZjjg_Otu-0B$?=+j#8p^uwFXBMFcjBjxGjhR0t_1#a}LkcaH zvCc|~y;S$Zon&zC_=l^v`(*|-`L5*0zZTh7&-!TZ^amBJ2aV`Cop|*UO6^d&^Zh&KazJ<1-$&=tSqhB71he>xEC2AODW8 zIg>Z-7kdutm++jJ!N!YrLG5?F@F|Nt;%y(lBfZ|+&;9dL=SOi?SxMS{U68Z29f5Af z^zOmo)VtItB%HUq^sFj$lXbX3q_(LS=hd&8?5XOr&Y>HdWL;N%!ItvB6A2~mwdhe_ zzoP}XX5#~dM-=frzRoW?(hfUw`G2O<4^yFSxUPTZ46cPnFcb( zCb^%g1H5S`tenLQY$F#LfiBbur6=>1hREnrD?dvs{P0)b zKH@SwXa2s-%axxlwEOzOuY3Ljif#I09_PRQgAdAI|D`uBbL&q(=Lzz6U-_c@&8PN@ zJ$~zhpOk;_8*i7t|III5^w?K>%uOg>{Zqdt@4fxb_Pbg0{ll;N3i)$8aJ!8wKYrou zAC&**m)|IN+_kZ|S2MuKNG6vJOzo^>AREw@RXoVpN&*OB|M!Jy5$|Zi>}Hl{=x>Y1 zr|S1qcB`rw03{Zge{5EO?z@vx3vx&GSiXlQO`p;xN)ij5Sn}FiCi~C#f%jnTrxoCK8=}*+GfrP?y}^Mc4Boz)d?K5ztXwh{h&ic2Qn^`Nt7MH$u#@>U zY5>xGRHH4JQfpxDZ9Pg7nPtJ1r4P^3Z@E!^{=2{SlB>QSs^jP0`bUcf_bXi+{hcxZAi2%)Y8~LdrTt;?`=X zg!L>_v&0<%-_34K6fgNEs<9Aa7qpCT{PnTk;h3 zpRWFi9ky6rm=|>CMdqV!XcZ4kE8q=vUW2-+<+USlo4hP&@nI?%CUE)ube?iy0gylbFw~ zz8)>VCb0HN{p9p)kv0EWMhgZPnAxGm4u^b@C5gB#edw}oW6ltQ+(PCw$IpD{fAoOT z*>2;ZIo|Qf&&c=w-0S2Yy?X5Av5hM`W~;Wp@~?hVe&t;s+AhY`1h*NvL~crlz0Z;4 zAb(tVp#}yv?uD5JqKNl^&%mp*!KCdr5O5lgBg#Ir6hGUrqOUFDEL&Y5)PYu?t&bgL zGa@OgjSBv}CZQ81cmBlhLl5Ct@J&*PS(cDRJke_66mWLR$%W!AJ^f;Yqp}0EICWKv z{-vyw?a|P_^N9*unWcWM0|`Rb;DRyI>DMpuyRsmQ2Mq?!Up=zzpm#xnXB)myN8g)9)(D6R8Us zrsg&2wl(TD<`Vu1z*R0RBd3M}wwqb=AuP7bq!w*|MX%W{eual_|^0RaZEYn^%Dn3QQMc-3o%cKdefp# z)R_Y4{`LE}dwogTh+w|a7ooAe7+@O~%bBs=f!cfTyDvnPh7t<^v~?2W18>rSXPvy> zOWE8+^LBarYncWL39xk!fOPS{C>Srxh?doyu?-i}TYYgF!$s>L)<;Q(IWWHdd6@?& zvDp84HiZ9yuX)b4t8C)|Gd5uR#Q|ME@+~i0{=5O)`;WDiK?A0F?amv=L>C@C0Av)4 zsX22S?8d-mD^O^OeV6NqhFL-+&?GRUtw0{YcK!Rb%)KtdtnG(H50jG0o4xhDUXc_+ zsH=?K*7vK#*1HFFnVqrqjU7g0md681_nWc8d>qG_xSBtIoKzl64zTDr93_n=@ZjH# zrwxFc#spVjyZ%?Q%01Lnf;XHh{hLF82Oo2f=zXjx6on< zgSrl5(GCkYQO?a8HPvcP5h@<%0N$({oyp9>tw#`<>zP?x3)isfU}yIB_^2!uk_h-zz4m2!EnO7^#VXOG&mhcM zvFu)Jv;KN&%R&zvAeN+fScC0}wRczx)wR=g47EWBp>CfZW2jZ<+V1|?>=ecpqe;2s_PhCmJx|!9 zQsmt6v0QuZoLqPQyj*|HdAaudIk{%{yZQIWM@P$R<{x%+s35pBL3(01jo-8TtobwN z{~jH!pIJ2Y-$uV$4M5Z!^bNhbtB74}*tQf&^X^yNZ_?y!M--ot@FAK;q8<$^{2%wE zdG&K2zp=L4*v2+4YTR(mIr-5)^$K~|`Qzw&U-VeR#=zr-5Dddzb_E>KZyQ)K_IIG0nS!stmpOy;Yds*_%Y-0GSzi zZvgUit-8k7);b>v&9|Hx0B!8}cZ)F5<34fBtq$2ukuzvj21NJx9fv<@Xghil_%X^6 zd>69ZQbI#BYCCuq17VA5(21t!*aWox-{%Q>{@fnCF5tBI!mEXqUDNfmgTex0cdwZy z7PV_*b_FcNFp4eI(|M6NEKIOxzV|7c&cfCy$EgAT`Niiylw8`9}Glzv0F5{r}G!w~KMH;8uhr z23Y5zhnXQFI}`=DEGy8w3uX0|^`ue%+UVB`dHFSQ9PGL>y{^LECcb+a7hSm~O61WW zWE+-w>ZV&?_s7Lfv>{mDWSHkU{DF=k=5EUrhQ$- z(Pa%g1*Yoh?>vK(!bKOq5u3+eYIRnIhJ3Z~41TX?{XQE*bvXsA`Fydh-qPyvICp+iAA3jcr`gc+GQflV5oIhnDVf+qk&B zIxFOI^*E|tc4i4)urU%j=z4^JmTi_aHhJhIR|mOKAL_kr`|t8fYu6bRWqqe0FKzp) z21lSVcG2J&>*Nrjl=##5PL|D?);Vd{SZOXC!{n$r3MAMs`p-3oF zVaU*R{p{(W`Jk8XMS$0+-?Sl%Tft2Pv)QDPKyY6?lb!sF=E$qc2E<0+XuUmNSwW~t zOeNSJvYK;MApPn3$&+-g?$KJP=Il|VD^xA@$|$H+{c< zCGI<{*Boxaot5;Ar-%s4_tdwQPw+!yYegJ;o4!^u7bZOwOJE^dmKo)2Z0IeZ10vBC z(ntIzqIt&C741hd(4a8i42#}YO)?OT2;wa(77s)jT}L7=>$#RO{+Ej&aBUb7DfKi~ z{GFctE6#%8Rk(jN^*MH@WdIPv9rsXD<2m579?Cjyw6Ciqr3QE-JlvTHL zyy|F=wEwO+ue|+auYeZKqy0V9!^i8cF|_|}KOmIJd_KCPcHU#0CwdoDh3_BrCRgeG zs`DR}uYTgz*=ZZw*v93J$36Ud`M#GuH_=g(fV2AeW>rzN;zXAO={iu>SsG=E2wD^vJK6? z8@Qs?>1f>LEX!7>`|02{_4*e(f}t{MNzQP5eC_nBX#OS-@=YnjwE60MPL@61vsuem_7HmqPb zitdgu%N8am{PH@P?$y_Q_YTRchrY?m)+4Ax@D+Z(=>ph<>452nA~BOeL8M|d+>N_2 zx_$WhV|m_V9`Y_=%%b+a$F%Pe zt`lkjtIKwb9bwqP{d@hcLd<8%j%Hi(C~ZmdIns$9LQnH)6eZUM^*-#}HelYzj~L-- z!mOe!!tH_U5yWP(PVO8%Z)@h&2o`{Q)gjrdvW1uq94_=ALtWo>Y;xFY<6;P0I|#|f zwqlO;20e$fpcq{fV_f5D?(lLGuN6rn6g>^mpK6Yr_cYd3yK?pgAyy3P@S7B@JaR7G zT3W|k%faqyU=vqbnOki5x>Sikt%Ovk&lM{E^6YQNwybSZ(DM4#OGy=PYh-At4Vf48 zV|!(F!ITD;{w0sS#kEYF$A#UsIafAw{B3Mw8y7cjIDbyQ_bZx!6DA@3ZicB;MYuyj zX3feTxHL11*kO>W7YkyY@jqBgfE0oGXtcdh1f{{e7b3JIfO0go`roT$esk^!{p7?O zW|oJ1dUh_GuhYdTJ_x~E{CyCuhlkBO3AhDgWoyN9FS$c$qySi5ib#hk1wX$GRU+VD zYkodhp0YqmLVF)vrz%0HbEAZNZoQA&`ub-+>c(wH-o`ezamB`;eZi9!-|PpxGy&ye zs+a$HO$Jc0fVb&VTAwS>beT)@+1Qq7abn}YsGQeqZMw<3yl?^n=>V4sx=cak7K*t7Ag5mdabCSQh zCl?47nha9Bd?b?<1Y0)gk`YyuJ7_99IaWO!nOOizV*q@x<(hZOh?#81+F`mn5ZpdW zz+SW|TdPb9Q=uE_%;9q|&400c-LN?BB12t1*35w+bC^ixYY#Fi%i6@=+8aL16UNp~ zX4boV#s1JOBx~#{My%!*8WM#kwrj>Hoh#TBnQL?DCZjpvZo9_9vMy6H(w}Gx8lQC2 z4dGsFtnD_ov5iX|H(hsLzU5hum!EwwwC25%?VX)Rd@nfaayv-~o2XMXU|t$<1 zYxl}jvt*d#OEEV}&~yFuXAC?~Y1SZ0HcX#zL)Ha^2V-ENV}cuKPtfOxtO{x4})VG61lA zN|OhQHWrq&+sHAZ4y6MZC#c|CIOawrGWjIE*`y;+4zo_Q)H)pd%y`kpz6L`JBFIY!fOPUnJfY6Sj(Eank2iah-*2f zU5h)q4)`+v_dQl9nS`>*5MvW21ubxpGLo%Yz;_9Wbv%S-s+TZXxo;H1DU*@bASX1H zESo%##))FXR$u&at1i_!Y$1TkHJf7ydx;S&n-oKH1v}G~7SGfsY_26{e@fSs&%!n9 zT^Zc2QSP8tserA(`5Z5u&C06p-D`R0asK#7&K>Qi++4V}?_4&?eJAtJiJwKV@;Iw8 zQOCOWmWOcd)cie6+2Nq|cUS3A54&dDiMO$hZCugu(#PK-x9rxIPkrH@2lRQ=iWu(9 zX?AIjLdMLDNbEvJl0svUN?OIfALuGm>l=v;5a_a(B!xXz>*Z7aei6n(sUP zkbK<{m?F6DpMmg!EU7EDx4nIunw|lZ_@)cQ**2D#oNl`&S!JMoR+lYRhj}}rYvA#Q zI_S`+Kx5c|d;Iai*`{(T*X2{<2Z98GPO2j|7K8w5(7mf)!2QHdE?j8mYcL5DfD0$o zI)o^8AUVCT?21OigER30jRU$50={moAnOVQc1IP2u3Ya#2^nhu5*CNuALq7&we>GP zT#cOtHhBN~eLLTIlu2b;Bn@+XchWkmnGqvyBg?oRIH_~rZ8I#1Z8SUz#;z0VUmt$W zxos!j#x}NbMaLZQf7c71ys)<)z4PugYxTflaG5kbeWR>0xcoDC#rB;x9dl=qwd=&! zy8o+!>khJno^DiPV+CXeo>);JP&9bfs%j*Plt?4mlE;>)+VBd4*zP@VDZYxbK5_f1 zQx&8zf?3hdEvp0aSZvmd%TspP;Es~?p<*>t-*o^xxjBraZWj-oPKQ=t*wQp@W{?2e z!#u9PNTZ(6*kqs)j4+!mu&jeta_$re;M#}<_F#&m7)>My+}I(dR(bXe#mc8#Ou01I zm9+DqC2HoH3PFMW3R0KOX4B+!OtW3exuYXFe|+4Gwv9Bl*=bj0MOmNdSqroW$aCx9 zy^Tq4D6-yby7rExwlr=F_d>%Iu&`Jf6f0bR?kIfB7cQKnzu(3-wy}+~j{o|rpSAql zdosyeKYoY&)(1Z&zxIb8lQ(_%(+^0ndojEZ?hRa7lYZ`6_YwSAsdxu*MYXaFZJV?+ zkJ&anDvo223!R2s!Luu@4urEthl5kDVb;CN;|6mQL6%;1DC=Asb1{=U1GY9`=Pvh& zbKn%^0QEcd(8+i4vZ@BI_^|d?2mfAYq-G&N{-CSxBG-b2CbM82ET<~CRc${kOeNIH zRb*smU|VGf^`noE_rUh3rlsukNfbK9X}2CbIx72aC(~TeHZ4FGC@$7cit^O{pR<|KYjE2 z<J7Su0oT6cGbl{VlOKJaXbKSE1o;fOB&Zxdv zcQm$1C8!W=;gP>xi+{jn9)&g0w;yw>)+3(z|P70~)R2LLrb)UKkE&&8nU z^c-cCqeZ4LALlfw+$VcYZf9LJQnB=0#e3BiL0GrR+8p1qajZf4qtD#6f!l3tV;lF& zc+3sg%J+Zuv*r6<`V9FeZ+egXU%&Nk`NDkKjhQ+8Xx?+#3&1MHr)4Oz>YNj8g2@F`coIWt&}2$Z2n^|iI6UDb$)vj}l? z&~jKae)mB8V{ z)JlQ{!K0WlfGE0<8t#}KvTJ~wZKpDvddj^>uah&DFz@?-E(aJTLF%B0PY2XUw1U?K zz?Nu->{1HDNPWFKHt1rf+9VAX@RmiMumjj9_sIo2foRu%Mro$j`}Z!g32x*t2sF9# zT97>K{(k4Z_sI?C{p0cO+rJ=Rd)qDBF1(FxY~y|#*PT0(zw+{D$g7|81o>}&^>^g; zANb^h0N6@mPJc?*P95M4jew_rNB6VeXMl;Dp`kkQRHYA#@N|3xrn zfqc<`&T_{i=T4+d=n|2a_Q}osg}g18YV!T8p4J@TTEY-v3kFkL$tS2{QUTD;KvfAc zM}jeHh>`hSoyiI;V;Z^Y&d%@|4Or=z`L#2$m?KE2mCEDqJpf{jyI~}N4Ub#1h(`~_ zs}>?7cN~X$9h;;DW^p3gK$I^@*DybMF&)#4w3S-iN#12w&v18IKLrB06*$-DVli{p z9c(??gKL!wasgZv>baa-To?AtGU}|R)w_3TB@C=Ej@jILc4wHcMP;e$du?e!ya&lM zW5VF}{hzsO+j+OKjcr_&aqErO$&bC}tL6WA!@J~1UjL2O4?Mllj=j1biit{^?mjoRIHkFk^FnoNe6V@(83+wt3=WPyx z&>Xa+mc3pN176p#U~o(-BSt!Baa)_&Gq)Pk9PEzJp`L>HPm2l$??;D#wDm9m+tVhu zo;9e+dQV$kXehOV$>PFrya(DB?p;{fqI)KJj=;|!9WMYEQ$mZ&gLR7(*KeGxYG!ad zTaeXrtpx}(ke;)E^S^!Mb9c+5A9k%f%yT=?{mxH+UY>FD=7GD7ZEWM}jPHBd)8(nR z+$ewjmwtPLHOamp3UcK-=PdchbmKcw* zf0lQIK-y9@BcZxWk%1$GCE0%@h`K#zo?+Hxv-e+bRG>wqnJvdu1N zfqSK@fr@1Jgofd$NynL)+l!3RQtq`ux^}bdB0tvxm2a2wei_PE0 zz26czpLOCQAuT%3}0RS63w8uwBa*dsnlidrBR~xbU z|Ei@}DDbP*qYAPNA>-`Dl5Fp zyz;4EF8}*CeWm=>UwohfTpjEaIv}i);xU4O2(mQww9>}fdd(}dq!~+fimp>5cWUTh z>NnN^6ip5_74jWA)sPwOFkR4Hz~t2S6Bg_;`CMa{wIQs_=t!vJF=)Sw)}!VaY&sSv z56K&ZAO`eu)cD$RWiuTn=zKPGR51FXgC9s*&IF}3^cd+Pb5(Uy+4V?P>=Uh^Kb1uO ze9`Fo;xD5lf_tOB)QM$=^9B?N6`<{X%IB@_@69qL(=T&_=>zVD?b^GA!V>1c8}n94 z!F(TPM~3Upos;wDj+X`ywa~4owqDf=DXYCsxa)uuCj0M8)@&6?J*WnS%@sR&M^Cl1JPrpuh9hCO%BH-At z*3cB%%d_*9q(d4= zFcd5|l)@PkOH|30Rx`%1z+y zYN;!alTBLq(%^PznAV9G-`#Lf>;$u$mG45 zYf?~+s&o1(S7xG)xz8gvJR2%ciAqX?F2b~O(a0cx_a$uXqKo`Tv>KQoc z!&f>ym?DxvQwb9kfuWv(gO?@{H?c(Aej1OSu-t(S_BXM9$F%;Kux!D??*dEA)vw|D zX^8y#V!8jH8Qk($JnH)M@}x&xCqMtrkIC(KU)XlqZERy3SAG1ouX>g|_tB4h0P?rQ zO=KwMpnkh_-!HXU-yNzvZ9zgMGt zfX-hU(~9Sh#n=1)7S+MEH20n$Q9QVJ4%~81YxID%d8971l0!-Yg>|PgstD6l8ck3=xGWjwlZvcWN1B4-Xc=iVT1Fb}`)1j)yc^@) z#()h50-uBg@(D2z5<&v``3}Z$Fowhs^9erz0wFl?Lx>4mLd<527rd{sY%SKV(P$)% zMw&&Vkw)v(@7pu)y;{4g`*purbdPyxrl((bRdsdMsayA++ZFoXG8ha-wXtGaeW-(5 zO-n0Q>mC9u*4%-=qvm~E+*#BQO@Qh-rai5!r>|Ro?JUJ6J!;g=u;j{Z zS}+WfAh(lrjp)9qq9SrzA~u%&YGDZ)a^)mJOK_e-bP??VR9fSKVa%3Eu4UWWVbL`W zt)_>Gk!MWUEs2=MitBK*Fz71!Jtfy~W$UdY^_)#bqO?^Zg*jS_n&)!W^x(B?~H)tda%Ea_5LzE6)QZPAtqhwfHHZV!4&;Te5Tx zSQd#>mx8!7<61$sL@LM75KJgvKgv)CR)1oJ!xYO?=(pq-e=h}J6=Vyr6mW)mfW6(& z)&H+B1J4sZOEfIl%5yB}7FYFWv|7*|ea2!Xuh{3-rd{UsEzd95Jyv8N6HrXzDkGGb zzeVUO&MU^Gw-IJ~2h*%XPyziKzuXKW>ia_9-B7#Wy0D@sy`>$qnTeH5 z#7dx_oG4N47s6)eRqib;BsZ$P)P-2Nn!-wWn-2BDW{YdWJI|UK{!77SfBob(_P=E? z7*)sYiM8;?CA0Fkr$)H(`6xFOqu2``=YwO8E`7J83Sg=+DD&QcI)m;x8F&AJyyY*c z50pMK+0tS+3i2_%oM$vYBd$ zEHr~9YJ|Tam9Zd`ZcXK(0J_Tt+7&7^z9v8GiXjr8i_VC=ID@8PWfU=t&2myIpWG8wgvg#s;8iR#+iS)+cZGfJ!V&A45-gcAKK!}0=Q!N?*cLc^ z;uO!e3-dub~h3MIo;d0s&!0J<1V<}{C? z%cNCMvyWMJcMDJ`Cl!+F55_ioq3q`hh0^b``+~aN4yvYs<=%26eaY=%;A736s=E|A zOnc}NSceH+RS;xXg8`QkxvwZc7Zi62*?l7_C{IXR+^WSm!spgaFws-p!1g+zA`mQG zc3REVz|IGKXr`-R7A;(dHQ07h>FjQ;Ki}kx3Dz;BfA>L3LQB9vux#q zOmH=|1FNIFjf(5zo7Kv!mO~WX75e%@l3PltJMdqhW?3$ibJ<8OG{12H4>ujOT4vvW z-n`P!WZ}L2(aq4_dxB?M27^>sF4>rqqtfKd{T;u7DDEEpLsRTBb!yA^5sN6zqXR z1@Cf80b@l9WVk1S(>0(V2aoB;3sB0ISuorkr82{S>qDXV9d&!ZAWL5N&E&uaE-1jV*fstJId<-sQHlsZq(-MWx(k`wIZ$S)(eGCb>)$BprOk!fjjY*n$cj z0dIw*hQ*==g7A`(5)ON}<4zWWj)v?7fEvam((znWS7yo7y)YRY^)tXGzKn=)j}XFc zMHUe6M50(o!Qrr9I#+d3&@HN^7tUgV)fX3Xmr$+~(OSiGia}<5x)oO^yTxF%Vwr?W zXZ4_P|eaY>E}S$0d42UD%lMGK<(9Q2?vC6Eg(js`ZpRjUcqbWf1$CS*3P2Z14)$I*2~ zt&V6nqNbDr6M$*0rk>VegGb5))N)@Rk6&w7LC^D2)HPA|mPD;DF+}~SEV7Jc%2@o! zF73+R|yrtN*s*2J*mFqjk2B*`w@!V{IWaWGJ39yzU{8`e>wGrv!OZJnk z`>j^l4_z=HCXX9k`khkte*BS5@PNgYfx%!f^1#J&rsNk)<{3DqTO}dJ>Kk=GGjL4} zFe(Qnq194r4S*_?gPBSeS1C|UmXIoy1;8$4rCB{u3y3O21&Zlb?NV8VAu@!ju*1Mj zB{LN|g7aO$Sm0mj_ViyZj)R^uxCs|Guf$Zxz+86Dn&qb2i?}rX#9~={Po9E%*ESpNP(QW?{`BI7O8HKl z?t`zqxC`!jd}~N{84Ly^D|B0Y`x&y2?RuwmI5ZSjgAHa?oG7 z4hSw=to2&9O=_XJr)u*#ScqytDpTqC%2rym1gN3C@0E?Lw&4G=MZ92=v}Cl>&t@9^ zJ&{DcW0WLa6RtgN+qT_3t!dkwwr$(CZQHhO+qN-nef7NOeCzxwt=cPVS7t`m1pR$BT{$^Ep4{Dl5u>^UX>>+NpUe*5a62z@L z_TE%Bu8>R@t(RW<&r|c1Wf=FgWe3>rZ^EQSb?}3Wmjbf1ZKp#41XUZ{0SYjVF@LLc zra^u4F*PDRP386g&ZIz=il=8bw6Uf2I&jJo#!|f0ln2`BN_Ug8jSUk_Bzviiwac-w ztb};*WU8vs_)oTq#NZ%H+uQGkLMSOFoeV+3PNc3HXW6B>8 z^f?95I1FHu6oz9y1^6MB6IDwW)#@rT41~xQ`VJF|M!Ib0xuQYnm?KR#v5^eo{3dlF z6l|Sl5}RzbrhE8x#>fYKq_1s%M=N7hEwmt1f?`d4lCWwkFWQnaXN~B;O;{e;mt)to zbLLpd4O8&kR@c;O0{h+=Z~y?6<1)x%OJfOoMjKp-=EjhCb&*!{-Msv&;B$yz%l=o2 zT=p+pO(v;sE4ztN-A+=%-p;-JlE4+sT=*I>D(`b4g&7*0i@i^*r+k~61)yz!XX&ro zH{IOKds#XU0x=4%Q;$HLrUHdH!JL<~7~=m7p!}gS;Z6bMqef2r(~z9xgd>#ajNd_> zQ*lZ8nBvC&_J*gMRM5ViPhLy%4gvo* zRc_j-H7ZoM8m&)KaKZY`GE2UGr~+~(GA^d>C^hzo7v2a~QSl|{z#xCH-;9b{ANHn5p@YaCKSq7-N3fg*eu}j#O$PKi&Ux9Pzwd?Cl5JkW<@rr}A!yVlB>wv{0x%Ew9fQhZN-MD$han}3ahR%S)|I++e%W+f^(3sWO&(L`&nOyTRe*n!#%%5YiWFAY3p*mtP)vS z8TPkNr$Xd(nrW5(-T@(LJ17G-1Qw^~pWxrKoh1&RsQcENLyE@*ph$T9#DJuwUsVCl zQ!310N#8nQ@NNsh8T{~B)Mf&@`ivQ<{K||h0ch#P84^{vZ6RRSUYu!@$ZJ+ow7)uL z={IN>W8T#-G*g$NHh)eshNqVNCDFq()5jX0W_Zk?c zoI3s;PH;Mu)ag@+VC#8Kl%l`e?1c1nl)Xj~nMZiPKO4dw+>{X$yr)qgfxGus z{`IlzUE}a}T3gI9@z>&Uhmo)Puq5^Q5W4(F=P@?ecm=j`{#EM{{HxPMii#3l-M_~& z|BvW}qMjqm3Lv$-w@u0KMzebOLQdO)kr=CwXtU2=AH3~pq2|wx6IM-4s_UR*Hij8p zk2?4Md~P)311EJGZGWGVVD)CjKprBi2j0r*)8Y5>jJ&;sc$K!9L}sOP=CTg_N@O*LzOyo$6iW#=%Or_EnnUvHP9M2$5^*BIL>@X&JY_XD zhN?42_bXSz>U37>3*6{hEBJKMmeq~l88t-yv{bFUO+;yK9aS$Rlh@U$bRoU%CSbIg ze~22alGd%HMv-#Hv0z1^__mgyf9maZ&tDvIC^SZ5a;9!n$#uy`tH=Fk-wD1_q3 zN|aVAq%1Q=em7NMByB?!<&pA0futd8(lf`POI0F)hU%@Cr9xIt{?e&}n+U;obXb1U zafZ)J70YFqcg)0HX0$bweKdeftKw6~LiMPN1^vz$P~6B^xK#vIY=0MYFc+oiXF&lf zdf8|OZ<7KNDvQU8f2JRRB^MHAnUM11+RUoH5~L(Uo6mQt&lWfXRfW9%C{rJwccUH# z8Zt>vV%1j2I}8`J(u@=jplg+T!!HlKqm>#rSf77^Yy2~4NToNYf zPqDd?RR8ZFJu%7=(A5o#%UL2!EGdR7?@wiFqq6xp{6EgWs4srY+6p`;7-(NB2OLq7 z-jYDNYq>ruuxUh*up*E!!}A4eNdRNeOE~VGu3m2?pz!Tf;~Rq}8Wo0Eh9y%(Azwi8 z)o*yS$LS=SAVNfjs6RHS#BeB3aqrdZ#DD}KshME49+QK8sh7?)qLUFTS%v0QV zbeXiXXuA|NYMLM0D5CEW56be-QR`N zO5U~>)*csjY9fGxo;ZiGtP4Sz^9|ISbd(^C{os{RgUk&Vp-S^z@^ny*EX(6yB?QwF z{)Pw$5;t|=k{L9G(`(~oN{XDN)kc6*BnhKMu}03B8hkw07F-0GAhtyMov#=-SDj@Y z&5sb^UWkGFiu|~s!{h6bbh4tapjwklO$c(+dEHp%mE`H8wLGY;<~8Pny{`(HAxs_T zW*&(k_MB48j}I`9qa|pCOb1YBfyKBDi!?o?+&|`7qDLIPgm2^JBis<^c0tl-^Q^n)rlX7u*w$pB`M~4z0L_9YF7kCR z;p)6uT4wA&uGWH9^;kg#_G1b+fko;p4EmIn^E7Q;xP_AQiM#pOQaGW5OekU|$s1zc znCD$d`h`8;uj|h&!XZZF3qYwUR{KzDI_6v9&L0L51>EEhBUh_gv)1?{Efj|!rnZt( zrWnmn93wAem1;vSb8Zl37FWVw>BFqDpzL+0#@x8q{p1jTPp0500x>!0!}~(4zRU?$ zXiL|PjMpvPd>Fp}6`m5vJ;;a9udl&JhJ_FuiXy|eLPPmodiUDt$P|*owxkkc<{kfq zPb}&MrCmg@eONl%*g*B7AD|+<8W{yYK+_%wc}ZNp1qlJ%@LoR3HmLlFv*%rTI#AVN zA5TUiHI#l4x48=o7gsy7O$f-bMUY&VKquC0 z0`~@8r$Z4K=GJNog2vC)1S2{A>F7C}91qI9m;8~G;qH{K$Bi=7=50msX_XM{U_$eb z(#&3~CDlSeV6xw*VLeda#*uFp?)Z}$#)+=l#+}fvKVCYi-f4wlyg-S6{7HZNi+g7a zUar-tFIozFKihOVUhL2LH!#$t$(W@?qY5@8r%g;K=m>dPzft@u$U$Bin}6E$Z}XOgZzN!(kvAuu z1TZS`Ws?SZEa8B#DYW6c!(=$LWeEcivCqLXCD8~dFj`~(I_melF=|Co@SHi{!Uk!9 zEc^Ed%YdE1n7!2RnZ5KNj?wbI4PE%;^FQ7q!3a#U@}@(uI$>>S>cW{8ylor%QlxAnEB9A0Oqmy*3G zSl^#dru|9wg`t4?i`Ywt&tmL@{W~c8N8jg_si9cgn9Kb!HHCM5F(7vkr?Uu+drS`y z>e}W^sTjO&-(7lFjIIth?hY)UXUjZTm@rnG*Jeh9i*%VCw`J0OMj*mWmPy#3#ng;t zq#DYUzoOF33TT-oFss4GHnmY6SeUUM3xDU13D^@`2u8!$Nc;}%pnbl%)Wqc@MlG7^ zB>ZD)5LnsX&<{NuLeG)whlrNGt%Yrl7Ec^xbb}0UV7Vx^JQ*$f)m+xKIWsTR%~mv@ z7Hzw`hQ?XIbBXaslc*oU;L^;3J@x5x>37u4=ZXC+EK|>Pk_sZ!hUR3$$)=}VB(Ix; zE7#WZUFF>lK`*GTuX*Zyw7Rq5VD%{R*w0PPXzRdyVrl3!Y44>x!{;zbrl5gTUW4yL zJsqvR3fbKAv$ep-kJkrK+husQ-IWpnyW~usU(E;G)%5i{J8gyuS@+i7x; zbj0~WABjp8oX}vI7p1YAoCxsp9EmAvnv=C57ZYfq<}9*s26;Y__FCY!n@g@iWt*)= z2NI{VsRENad#H!NbDPr~A-u=(I?J<+YPot+O(|B@uu77JZy@L2RSR^9#RN>n1Z>XaKo+FbCM2p459(CIqqb#5hED^3>7b8 zl%6CdTl5a)dK79#>nd+Ge%$)!r^27#mX0)4wwG)(zCw)g=PGSnKHXp)u?SyFUBY^| zuTLk8GG$T3{o1a3j4b)M_mkNW`-^f`G)NoGADx4zOt|keb|bR^!NQTDmIByXt$9G- zM+Lzug5I-#Gd}`nn5VV~xiLXCMtqI&e~Z`}qi^$lqRV%T^vwnXO|J_wX{NEQOc<$+ zrxc&xZXjo2b#x^>+hlQNI4HzA9?V2G$m3ZG(CC-D&};a#s_c&4 zsrV<;QxQNXs&OnhdP#vZ)+C4`p5bIw4pjSD`y#t-_k7;77R`s~7lGvVQn<3tW^^!@-NLv%imfon8g ztnC*c_1D`#-i2c<`Am1U`G~m&AS}z(?il-H>}@E6QiXudkap}#yt4tZ;YNL1mrPrP zDD+p>g{_9aV4qvIs$oatN`vCeUl}sVvuxK^$1F!J_nY6n4=t_WVoM_OA3jxYD!ZDU`0 zB?~|TYhaGAVE|jHirZqqJhy)xqI$igXa(~w+;*3BwVN^Q4%uKLsev1_@Gz~j zBUXh~L`mZ)DWQHLWByW&wf2wMNle#CH3H`Q-XOaR8D6aR^=&%;<#nH4oept@a??0cwxhvPBe0kt#C}gfAkt9fb_&RZ)9vjh3pj(`VR2%2?i@$?}Q#gLjPyIg`Vgc-plTVxvm4>pDy=1P19Kw z2|a$~pEHchL1Baz)rnDqCaOXI0x?ES1VmE5Icjl5_%W&%GG7S&(oyp-qHD$ce%Dl-EsM>tlc%qVV@mE zQxKm+h>Qda1_Wup)d&SBpS7zKZWXDmCg+dov11_<>p9SlMqNV~WK7CW3FukAd(4OX zXtTfgy3KsT+c#HX%=uqS40dHikRvuCs4#8gs9z439zw`mY#cIi1qZ3c$PSjBA&ARl zZS}^B9yQ{B+oP2G32*EROw$8$OIKn-Y0R^t7Irfu~9&HwYs8mWJdngT5aoDlQA>g*}#kO{6jlZj1FdodD) z-D1t}v#slHubTEL3_&Hl)!?C1CY=EB3=t{o!A|9-I6~Ji_{0wEASvvry{YeJ{zIhZ zn+K5*_$bRYqD@FzljD%D-+Af@lJL%TI>i)|sQlZaGo7)v2i@o6O5JXFi)w#GCx^q~ z!O4v3V|Kb)c6WnVeCT_oGG#DT#|+vyK?@Tt>Ft`v1k^e0x=962`8Qb6asA$#7Fyh} zi1OS6nbaEsd-K3x%$2ePe^JEmFkLRwi8_)Nr5{h-9lQ=B;r#~A#Qj)cm>&u~I-LVp< zd__0d_NRbT-DIaZ$R)&$tNgY~Hh~fAVTDLN2=5W3AKLkUU`>iEOUYa9-@SyUBrB>2 zMFKQ7w&a5ruYUo$RSz)ncWh3clF2q;MqGXXf3l32yMP|f2xeg3cE52OB9k+}nIhOU zbx@q;(VE(7{l=?NXJq}iKG~o<$97o@g8VX886YVKf@HZ<{d^9xxhyei|OFe;#Sd`(43$zy!9c?Lu_shlk zP}ptrA>D3vaZ_sZi9Rm&;$t?GfHq+S?#+b)!_OAH$VF(5z+1pOuH~I-b2n)IoNn2O zsAM~$8Xg0;0onKN^DTX~z3>He>v0L)jo2hUGh?a1P-WHIk__3v1ga5alEad*-c9;~U)Rj#|S~!`Sq*b2071A6y zi7`?{R@Q|tF@@vr(E3u~@l5)PD@BTPctw|E+EF(ueFfI?06m|jzAI`hWE=7dFEKTq zC33Za$dn}KW&J}$``>+rS}l`i_?`E;%6d|fkpYS3ee~0c^Cvr%LC{K8s+g|sjUA9n z1YCHECsH65qv(#)_hd$ME6%deDy^g?f1~LGetKx5;clnrBO}qWI~#^-buK>txCRan{iVw;7n`gX@YG_mm27jZA% zJdoDa_i?FZ4mtzeXgQn9Uh52mtJuYfV}5l7b+75{CHESRe7450RBt!lFn?<;KdGb4 z>1$TIbs)ne&5M-pd#ptM&vRDivJH)Y(7@ZB%je^0@i%h%l$11%IZ-Wx+O%=L5uUafo||6FQ&gp9qfx2Wz` zjH4x)*I{GAzePAm%uB zrCR#mJ?=+;$W~-a3d;>#j0b~n(bX+ja!y!oS2xFRnhE-ab820{6ECbXD?qCtkXy1= zYqlKrJLh~0SE6>It;QEborZ6t5U<3Z8GfVl-azf;qohow;%p-<4YIS#8VC#j3w>C= z43Kyx*r}Va;Q4Uouj+Z-n$hyQY4~M5{B!MWDx&dCiFk?3iJN zQ6Zxwe3!enjnrWP8+v77MD<-sld6FMZ2k@}F{6;Fi`T?M7gGV&kdlzgne5JC_P8K; zU&&s>ykWMQU$_rHw!TO%XgxFo#e<^3-QCuTlC!x8HG6w0-5thyYP1BPUr699BuheA z*+(X*xhKmst&p@;8#)E@AR?>#aDLBwDUK_V7Wg=fRIdN%RWKB#W6WQq#El62Rj?Cp zKI5O9qK)c>lKR+}$>D9C!7<3uCJ&aN?{DaPt1IvkiRxvCl|epeT?i6Sxadr1c}B1O zoE)zjS?_Goi?GyN(%5*PS=*u;EBNPH%Qq^iI40uvu$s%k)1+9j;BsYJqjS?-EVClv zpumwfKrK=Oe^g`l9p%B{3P@gM<=fIAMO{12K>o}&ja__>1ANN$Lb?}lbHr-OU)q? zoyRHh>H>vn;~L~SU-_XmIhx@6qh`LPWMZu9HVUgYZjX@wt4wPbk-8aaX;Y9 z8hNU#ecNaQf44*JjRmUM~BC9-m1&FP~6dqPT(a)c&OqX;kmbCxA^INsYOu9*z1 z3hUP{_1UZQ00!<(lK7t%_y;QTN_w!lcwg3bjk$u5jci~N?Q2;Zs()MK84@)ZGTPnx zC*9rs2Biripxd{D7<7I(=+C9q-{&oCukTXR%IT_OzAr12=s2Ufo10Lrylpn(v!+O1 zj(Tl^e1J=gp!iM4EoqUSE9Ct0hEw)Kha?A4MQ^#;i_dx&O<@&f{P;IX^B2=SGU->N zQybTNQ=_mAQ^pL%8OgkW#tm_Jl1t-+4zRS@akH1$k%GZgGg{EkrsDi#AE>p}4yCpQ z6rUx1iB-N)hu6LF?^_|k4}xx|`b5e&w3}i~umElW($L>LKd0@Eg1RzzsKU?9tetxx zfK&yY3R{BvOX4Q7NDl>&I!3vc5fDSd3Q1sG4l9Fvrq5M^i2j})a@@o4ww$%pwd(aC z-UvdR7PJu;dehf=kJkue!`80P8}cAuTG7CFe?kO@RGjZ)X^n<3`3+>l6B}2rbWoNuGRbR7n9*Nz^T4}*&WP{p#1YFP z)nHD!mqT)dE$}_#e-0|>bzPSlTz&Tb-mA*6tr+>+Q7(Qk7;^9!&+x8^yod{Y@ zx0F-Y%h>hEL7^aR!B*fTBQs}a8WEx2fP*ywMqCC-naVNM@X-?@93iYT`bdkbR9M>= z=`lRqcKPi8u56)?ALGK`2A#dV4seEmA6$OK(Q7&}5$K6fg80LZkgGzh(zGqLxkCZr zgAbLr(!*vpyIHG--2t;!*WL}`(__t-#Xd;dW28?Oc{q}{>x9ddE`?QIJ^n}f=VX{c z6#(nxwwt(@Jyr!4ot+8wJC!<8{%RlD@_AD%ltbz1DS^s~m~*bt;Jc5*;J@sOs>hiL zb7`l{-V#-Sa-U%&?L(}h(odXDy+AvfKI9&;bj3D^_0meS%6MUW$&3*p8_=0q>T=`9%+LYZYiikZKNv4aN$oDd&g!JSvvV{m?SrlPvSswc9 zpBe3DoPYf!!8NY*g&5gF*T+nW&^g9a+frBA&ZY}dlsf`4irr|i*=9=14MV1(+#LT= z2yK@zv5TmYzy!2#)K061O&c8dG!d`d=1eQZkc+1&pT0E$BVKIW>8EFF*pT9Qg=z9%J_W2cMFWDiRXZI+X(x^_L zKc%UT*jHC~F5ny@Q)6E&QH*h!On-J0%a4djwqGCH%FE5{o~JsZfnr`hFJ zTKi?i0XI>7%gGp2i6dke_d3ZBTkwmGn#W2KJ842eer@Y3$TC7S*3={?6wP&|3fpV1 z;U35s^U@MYeb|b2Y6XM7A~B5PAzNTjm2ySiU5-C4fiAM@T{xIRbS%G^Ufv<}RT>+l zk_BlUqLx|Q;&N7}kz-{vp{mtVqf@Bg6Z!sDTEgjcbv2{{l=P<8Nz%(geSxI-Nw){PrC2DHd#bE`B8nn)-cm&}c;+!s!Dxay-8=mwOazBr_C*qTX8j4axMeX zJQ|RHVV|G_QP`xL==Zd)mkB_9^62+;i!qY{>#F08F6{*Rg>+tcgvwVH_v-}A;u1jH za4qdR7pIl5g-NOi@{aJWxA2)2y4V)OE9SNViotE}=7z8IZFOXXEv-CF`3EA#I))L} zr?k`@(nPYrNnci}sA)tPCoFjRq9u$TF(afXjPUicRWkGDLYKi0X2K2+L`|kv)|DJ^ zM`cr)Y4)Y8zR@y0Nl{yZReuBl-BP=xt$E@0sZB#eUiJgTd8!Ja(tG?7Xd=U}zi#EH5Tk`aN6SpgnW<#!!Okdw6R$J?odp3e6UvGf@ z1qom!K`O5Xe+G|C@%7TD;NCtU=n@WkLtxN=1mHO|58TAlXwu|BKiT4Cpdw_ zvzaNfv82sG1lAicy1I=tN>qeF^xUe|kQf&32r@6#w*Iy?*7)ciV;yYPO~)$2H&2B~ z(m1v5wmQ)LvN#F4G@6GfdWnCbK?g39q@9--p}Ev<-T zaZVZ<=^eO?FPzX(z$|voq~n#8(J7e^ORMN^?2xes{obr|s3q6`h}CJJgq?~2IsZ^> zsiOd9Ud>L7Li68dU)8CyW1{_i9$hnmSe+LH-(W@1*y!by zOyN2v`?#IDwSncQ0-wI6GGJ&xP9=?~pG#gvUQKDbm3k+$>)moy!B_`9j7mJ`m)220 zB2-q2YyeZ@?i)u3EOe9pD(p_Sj$hxNr`BSKoXkM1AO6H?I=3Q>Otp3yBC?nbq^T}_ z)}$@tlg(zCBYuyMI{LTaV8>yHyEe*j$*Q*HC8($U65eUBC8iLqQaFy`?qbA4jmMi< z3mK7bHwYC#NCyEB(a>=c8yz-~nlvuf#Vc)*I0BY&jW24m57TFtfV0co8DV)_;#Fdi zuW__v*V$}{TMkQ?BQ_tTBiVZceo|eFYk1=!YUNPE1et;qHv&jgAQEK5{9V#yv9B>`3~NvO+f2DL4C~ zK1`u3g`K5iUBw|uo&lvTIw#2^xY$$oX$w{i0KnlNeBw7nJQ%V0QLj2wKJo4lhGyqp zdP>cl?NTdz57MH8_xQ$hCXH$EcXH2n2`Dkg^mcb$W94pX^YvKxT!A!@@F?j63w;~8 zM0`Ahy%4{Nxd8vQP)4@`H7Z-&0AP&P4xR<|8*+D%i3YB=R15$ci}LT!S?L7xya%1NP(oWiBP zjKWA?GG!YPxePwWoLqm|LHv|_FLRU<7sov`&V4-1!&pcjb%<|%Zt(tYIMO^Gz9-sF zsZ_`~n7-xV#aXTza{bvcU#Pdf1XbrY@fxQT7i@3A&n)iMdltIGsqqqBlZUWqBGwz>khyI#lsxw><6Vaq}RN=k3$OFW-c z;bOt>Qtl&C9E_r$5WbjS32_dBVr~h=+X+0-_A#e$=E!@>oQ?)^)S}ocM}69{ zlE9Tz#iUd_nz6aRt78teQS8uriPi6zcZ4onL**Cy=~tIf z_M{?!ILNVEaPx#cNI)bypYTV|KWrLM8W-X-B>tRNLEHDrogYV;tF%@sjF!Jyr-82qFCB`(cytAMPS8h0n*3I6@t67bWw_l ze~4R3^+O-np;FGOz^Q`Lm)Rn4K3MQf$9{XjJU>#(8m;QADUkmHA(q{>59Z@fvJq+& z>`5V|BGuP4wZbu{Nt?KG@ev!;KDN1NWDy`=?;>%)a7|^Lm9=KFe4D6dlfCT#N#zd* zem<#+#SS%%(Z1@u275AC9)mWPQ`{l9AU$TDwSRDvTOgR^khX+2W1WS0(Ql%!T~uxR zKtSdS^5968yHO}XTF33;jD*rsd89{?_2^IeMGLNlCJc`PhP3TyDjfu4A`89Ijh`Y{ z{Rk}>DP%i0a@6{H(LbmkVPf&a+aKg&H&*=}DL(Ow&?oIK^-WUPHx&9@JdG&Y z8*IxL(GSGFG7`h+RVVBoNPtXffbh-h=R!RF&gqs&|^KMfQPOW4Uo;w1D!DT$&T zuj!W<5qR~qeVB&WSgPCn(FUWLnaLdsSfmU#*B>X#vSelzq^}?JnEAHQCG9?^a4|>$6OqupU8#Sn&KK;@&U}=!svF!3{P0YT#gRq|nI1 ztPpotd>vM9gh(V!ZlzTo>P!|jMQZfgCD}qLa9R!))u|J=bF^|Kt|oL{avuN)qiJD<*3&mI8<=(kf0!vetl8GKXcdw z4Dq|51bXkXz*KN3kF)Tla=)v1;`a%5*Rp@d*Hy`sbaD2wkNMYB7)wxr)6M`j#xsdo3OsY zGQgL`&QF#-Z5logvM(v{%}q(vL}uVwBTkVh~nU8`3yS-La6maA_qJ zeg&tmyIi(Cy9SHL#DEgxml}z2s@2PV!?R|AXm5%k2&@(Uk^ z1#{L(cl(0na_nQ(t~L0mry_9f{5YJta$MbLhaNbA^KBn8J)m)o|CDS*JS}f1j#{SO z_KAyv5mTBD>sg)aO({4~vn(xG1Mb0-g*F5QqkcGRB0g(10(G(TkZaHe$GJ}<mgw&I2t;b<@)&L-BaKenWddG>Rr_>eTG&NgURM>PK@mKpdLql} zQwa5W^LW$S*cnr~@zHM|`&omiq+r~@{KR#R{W7cZYe*OkL}d^0!H%0{a#KO2+T3EY z(i$*K6!nq3dPLf{QhNp?Bc>n5dSh5LpM!*?sh}-`WJobqk;K`fRQ8%11IF--uoRek zs?5)?gSQq#1=5t67v~OBM(__j{Q6E&*qlR5Q>EN{Iw2Xdl)4I4B^sK}1UQvj>@Ag8 zrKmf~%Si$ri*rl`!?o(@sg)5Wo7~oG$VSQl!2qz;DwTh z6eyY_i~`ek7Zslx_l|muZMzf{be}WKZdayC-b}y4DDMsp0AM+IAd-{~M~GklQ3^oj zg$X+%4%DCt%wQD)W$_x%1b7{0NVEkG3w{`d_cv_|AR`_T&kSvY0z6`Im(*zj2mbF{ z;D$qf;{a*xe=C3o{=aAc|Ed6igPz0W|M|3EPdIQH88eCnGI3<3Z!JS%f0lG=W&sU!*qt`HjYg!Pu&1zGl)Y*jOhqXgVS>}B<1t$cCL`xDg_d?fDn!`V=@zirQ( z$Grmq9?ZKXHjxr=me^oL^$&ruTr^4tyGz`L2qVPxS0Cz>7x)!PjYfd7|SP~$e{j#~JK_JYd`ZW-v}Wu(ew zb>zB|Ff;eLK!aC`YHt9t`A`^zWq@g%}>RrfmT2CUoN6>GW)rhV>5*Yxepw zU?t~pXEjZo9i2X#Rh@Ii<~jw$1OImrL5C)$cQ?4-KFn)3F?Ve ztHhCO!~MHwLNA}s9q4X$r~MU2vJ?g%{*R|rqc^)9d`RthC~^2-*hay#kz0zImqA{p z{7oUq?ZrNi8SB(c)?6OkNbTAjkDns}$ID}xxizAoZ3&T+=iADJ56VZ&ndI*@->Ed<@^B;`UTvgez`)T)?CW z_{f)E!sEV&jivUQ9RcGZzf@m>eL8sCxCzI6kr20lOKXgkppNAJM=}1C2oON7tvW{G zB=pan3fcgJ8y@X-pUwm~mM&wBns<83ToSF>?J)u}>9DQM|M4f0rm_LXe_TbMib2H>B4g9np(N)ay* zk>WV@#V`K=FuY)DU`}G`fMeP0!pukl)uGg>_xT&SoBl45jrjkrZYE{{(3|Q>?C8TI zsgGb&S2gd)o6S0Q!pOh-Bp7s%+gL_%xBHJD9eYZ;J~?Hp3}$r+mJjxy6Oo-&Dyx8k z8Ol3yui>!tF$dV>mk$3;c@4AAveR4}xVlp~Eh5oM_=9aO4-USC#Y@X8Gp0HJ4WsIG zt_AMTZS}`KfY(R+vDHYszU2IcaK-%#KobRNs>}x30y?^ex;8rsF=Mg~La_q{GBNY_ zxW1?SDF@#AK06u9Ls67`&7^3>>Q_1<*LyUcMz+<}e}}2zvIAICi_S!?1lDKG+NM50 z9**VPWx0!LN3#nx%4M{+6;l$*Xt~G!-swg@N=pF9qXPu?`j6M+F}kT9NqG8JZ!;Y4 zb7l11A>Bti5*93ZE9}TvNOagvt9@*P%q=j|gczMl9?gmDbafZ1aEVkg()azawvI=R zk@HI7Q~1^;(xU>QdOd*+n>Hf-Z2A%l=6ej#{_-;b?z>ZczY2U2&mR^38TT0`F5d_~meo~B>m<}A97?Kee$~Ul>%5l@QG#>k`;4SjSE3ai@BR(ONhuHt> zfOGSf9sIv#F$eJ?<8k2C8;+`Tc$v250fziPQ_F&nLT3RY0a75Iy*CDx2pda~9SgQ7 zn!$xk4pz5Z&jyBdTc=fO^IOvf>rFqCtP{UD{dc!B`E74jd-s?3dfj51{2~Rp!@hF^Qh@+Nunpy`B44@{WJ1zgYt9$pi7c z{_{5dn4t3STMS(`#m=rq=Slbbp~w|+8{>u3*ZB?M)7b#^a+%)b|M5+Mzo2uvKFY1@ zd+uql$@@a-(-3w$-njphqE+)g|3A+a7^AuYKRAlN1vz_j9l?|8<)GVYhwb$iUAYIy zDz)8X!a}Uk{U?jYj1n07CK(+RrgkKcff=&|0Z^v>6@i+dV20o4!!Y_z{4TydU%%K1 z1OM}cVPb_MvK4e`ej!|AtqhV|K;z!K7ww`2DH*^6o2pYm483zh(Ia}| z|C!f8ltN@lp=c8p%E4A!w1lVR3_<6Q6uL|mYeBrd`;;hKb%}P)-TokEm%@;|&&~6^ zX#DkMcmi)blB;Vbx~9`ca{B-M%sYP>61MW4qU+BblrAvOlEISlO%7gl71qqnD49YI znty5uo}}IcCC8t1NYOOciC zmO_fGTwbEr{nMywAc6VT!^_c?zGKG{H}Bk*8Ea;F9E5*Iue`WyG2JH5MuQMb!2phD z|5McQ!)wrga6P$xyXr@zk=$L=cD%uBeoDdw3ju$onNJ$`?_oCFEIO>mzaw*>a!gn_ zT=@|_wL4)ciY|BaLWirWkUwqa5+t8io|;Fl=990ks?$s{d_A2Y;F(Ky$?`ij@3eq_r1&2>Oyq-7JX3FWN8w%fgJNTopWK{FA44w3-H{1dR-Y~MsEKU zm&e#n1>jtyRkQZ<{D#B2y4|=dEzX0gx?5oOgM-bFI8laN2u}}E!+K}8zX8TpKa&z6 zl#0PwJ|*u3bV#{%0^R<;O2Tf|*_4XZj~|GWZ>J#_Ck5#MQ2B~BEV7jJHcd9R%#zn+ zp-%Ggh&A5-Hw0%8X(Bquc=J!kAiaPHPM*bc3x&~n=@$s(!a}k*qBbkpq2lA?m){|&U6XBf!+w; zm;_4z^*o(OAGtSuae9CO9C)M!z!ML~_QfD2H;9?_e7Va~P z^bQco-&33Wx$$;)Rfc?Hg((@h>aZUPxVdD{hOvBc6>@a7#q<-IfP@Kj-R~L+U!i+3 z_-X`4y1T?+!%Vq;#J=3OWUq#%o9l#s3ekKkdgJz0v_7NPe{?N*Ja92zFaYEd?M{;? z1znSf#h>;7q)q_FGhV=H;A{_&F{p)Y!^5T$k~qn0DrXbP|1L+&{IwN#&>nO|tqqT5 zCaSa~fP#I`IU556*=skXdn*qX?5C>*3mx<*B4FHUj%m{#&q(QWppk2U?z>Ci2Gy0X z9q$GT-RqDwL1yz!*x?){^jS~9ZI*@0p*}1j_{~wyI&@asHAN5?>ZpK!MLjcEMa-2S z`_{)olX5T_V$6AfRf znB}Z}+jYE5`%P2a>=OmSF7l=BHE=Y=f4Hr3E>9p+R$q!HI0-lcD_#&C9?#wPEW_NJ5nZ@>O_09Z}jY2Z;m@v1D`q3GU*3adT8=iI#airN4D%a;1eolCXEqGhdj z_Z^!5uZVe%y2g9p9-qW5?Jbg#weRoWVgv53Tp#Lel`YV@%;?{_o0|_G2$RODYU7lr@)bt^5~hoSl43-*0atIu!t z>^%5^C09A#G(Ss1!FYRJjK*VUh0}T2=M8Vj_}GZt`TS^~^R+d8m5m-3yVy#lXDjWU z{3+?dIr+S>3-{CAYL2lK)Uf-gE zEw-_y-p&p}`m>E$^=6uCmUu2;SdsL_?q}G$ckg&#f4%XpFUB-?a>JeC7qtsq?=L#J z)nIFxkH&QO*!h1hmb182_`Y6Pzg!SD-X@jX7YZvtBzkT0! ze3rG-&V2_N1aE_uO`YCRa;n8(Ll1}L)Q!)dXl8Jp__gfYybZG3OXZ$6&OquBS_B`k z+YYMAK|MrZ3ku3&n+!aQ249~N+GhnRLi8>{Js@zqAi)6KVTBk0Y_C9#MX(53MW`c- z)heu(Vz-Kr|FHWC;lDPMovwLo&@ej2!LaEmq!Z89Y?u_FvOQ-nEF^f+7a+Xdli1&M z4s^N+IBa_o*|toKR@(vRdgtUmnZ^mM%E8_BQT2+-j)n)@QlPQG;~F%(<&M!wxQ@)A=p+Bd6Bs6c<#3QWalfAd O2s~Z=T-G@yGywq81-GaG literal 259954 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

wC>_y9VOkeb~N-q@I6 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؃ZNKL_t(KIq+rF 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

Peter L. Jones (pljones)

" "

Jonathan Baker-Bates (gilgongo)

" "

Daniele Masato (doloopuntil)

" + "

Martin Schilde (geheimerEichkater)

" "

Simon Tomlinson (sthenos)

" "

Marc jr. Landolt (braindef)

" "

Olivier Humbert (trebmuh)

" From 1a30d3369057f780709ade1a03eadcaadbe83a38 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 2 Jul 2020 18:25:58 +0200 Subject: [PATCH 308/936] update --- ChangeLog | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ChangeLog b/ChangeLog index 7a38c5ea48..ef2deccbed 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,8 +5,11 @@ 3.5.9git +- new app icon for Jamulus, created by geheimerEichkater (#410) + - bug fix: grouping faders in the client should be proportional (see discussion in #202, #419) + TODO fix: if group, set one fader to 0, set mute, move fader up, unmute -> no grouping anymore TODO bug fix: incorrect selection of UI language (#408) !!!!!!!!!!!!!!!!!!!!!!!!!!!!! From c2d98c865e6e9621640ccc4efa4a0907bad8b25c Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 2 Jul 2020 18:38:26 +0200 Subject: [PATCH 309/936] fix: if group, set one fader to 0, set mute, move fader up, unmute -> no grouping anymore --- ChangeLog | 1 - src/audiomixerboard.cpp | 6 ------ 2 files changed, 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index ef2deccbed..1dc7efff39 100644 --- a/ChangeLog +++ b/ChangeLog @@ -10,7 +10,6 @@ - bug fix: grouping faders in the client should be proportional (see discussion in #202, #419) -TODO fix: if group, set one fader to 0, set mute, move fader up, unmute -> no grouping anymore TODO bug fix: incorrect selection of UI language (#408) !!!!!!!!!!!!!!!!!!!!!!!!!!!!! -> note that for the 3.5.8 bug fix release we went back to the original translation code (e.g. no pt_BR!) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 172b68d250..1ec1bd147e 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -455,12 +455,6 @@ void CChannelFader::SetMute ( const bool bState ) { // mute was unchecked, get current fader value and apply emit gainValueChanged ( CalcFaderGain ( GetFaderLevel() ), bIsMyOwnFader, false, false, -1 ); // set level ratio to in invalid value - -// TODO When mute or solo is activated, the group synchronization does not work anymore. -// To get a smoother experience, we adjust the previous level as soon as the mute is -// again set to off (if we would not do that, on the next move of the fader the other -// faders in the group would jump which is very bad). - dPreviousFaderLevel = GetFaderLevel(); } } } From eef2973ae02cc3e1581f57832e917b777dca59f6 Mon Sep 17 00:00:00 2001 From: Peter L Jones Date: Sat, 20 Jun 2020 17:21:53 +0100 Subject: [PATCH 310/936] Save the source --- src/recorder/jamcontroller.cpp | 10 +++ src/serverdlg.cpp | 150 +++++++++++++++++++++++---------- src/serverdlg.h | 3 + src/serverdlgbase.ui | 43 +++++----- 4 files changed, 144 insertions(+), 62 deletions(-) diff --git a/src/recorder/jamcontroller.cpp b/src/recorder/jamcontroller.cpp index e6a4f33568..e0b439f86c 100755 --- a/src/recorder/jamcontroller.cpp +++ b/src/recorder/jamcontroller.cpp @@ -90,6 +90,11 @@ void CJamController::SetRecordingDir ( QString newRecordingDir, strRecorderErrMsg = pJamRecorder->Init(); bRecorderInitialised = ( strRecorderErrMsg == QString::null ); bEnableRecording = bRecorderInitialised; + +#if QT_VERSION >= QT_VERSION_CHECK(5, 5, 0) +// TODO we should use the ConsoleWriterFactory() instead of qInfo() + qInfo() << "Recording state" << ( bEnableRecording ? "enabled" : "disabled" ); +#endif } else { @@ -97,6 +102,11 @@ void CJamController::SetRecordingDir ( QString newRecordingDir, strRecorderErrMsg = QString::null; bRecorderInitialised = false; bEnableRecording = false; + +#if QT_VERSION >= QT_VERSION_CHECK(5, 5, 0) +// TODO we should use the ConsoleWriterFactory() instead of qInfo() + qInfo() << "Recording state not initialised"; +#endif } if ( bRecorderInitialised ) diff --git a/src/serverdlg.cpp b/src/serverdlg.cpp index 8aac767e3e..76a4b8a627 100755 --- a/src/serverdlg.cpp +++ b/src/serverdlg.cpp @@ -123,29 +123,64 @@ CServerDlg::CServerDlg ( CServer* pNServP, cbxLocationCountry->setAccessibleName ( tr ( "Country where the server is located combo box" ) ); + // recording directory + pbtRecordingDir->setAccessibleName ( tr ( "Display dialog to select recording directory button" ) ); + pbtRecordingDir->setWhatsThis ( "" + tr ( "Main Recording Directory" ) + ": " + + tr ( "Click the button to open the dialog that allows the main recording directory to be selected." + "The chosen value must exist and be writeable (allow creation of sub-directories " + "by the user Jamulus is running as). " ) ); + + edtRecordingDir->setAccessibleName ( tr ( "Main recording directory text box (read-only)" ) ); + edtRecordingDir->setWhatsThis ( "" + tr ( "Main Recording Directory" ) + ": " + + tr ( "The current value of the main recording directory. " + "The chosen value must exist and be writeable (allow creation of sub-directories " + "by the user Jamulus is running as). " + "Click the button to open the dialog that allows the main recording directory to be selected." ) ); + + tbtClearRecordingDir->setAccessibleName ( tr ( "Clear the recording directory button" ) ); + tbtClearRecordingDir->setWhatsThis ( "" + tr ( "Clear Recording Directory" ) + ": " + + tr ( "Click the button to clear the currently selected recording directory. " + "This will prevent recording until a new value is selected.") ); + // enable recorder chbEnableRecorder->setAccessibleName( tr ( "Checkbox to turn on or off server recording" ) ); - chbEnableRecorder->setWhatsThis( "" + tr ( "Enable Recorder" ) + ":" + chbEnableRecorder->setWhatsThis( "" + tr ( "Enable Recorder" ) + ": " + tr ( "Checked when the recorder is enabled, otherwise unchecked. " "The recorder will run when a session is in progress, if (set up correctly and) enabled." ) ); // current session directory edtCurrentSessionDir->setAccessibleName( tr ( "Current session directory text box (read-only)" ) ); - edtCurrentSessionDir->setWhatsThis( "" + tr ( "Current Session Directory" ) + ":" - + tr ( "Enabled during recording and holds the current recording session directory. " - "Disabled after recording or when the recorder is not enabled." ) ); + edtCurrentSessionDir->setWhatsThis( "" + tr ( "Current Session Directory" ) + ": " + + tr ( "Enabled during recording and holds the current recording session directory. " + "Disabled after recording or when the recorder is not enabled." ) ); // recorder status lblRecorderStatus->setAccessibleName ( tr ( "Recorder status label" ) ); - lblRecorderStatus->setWhatsThis ( "" + tr ( "Recorder Status" ) + ":" - + tr ( "Displays the current status of the recorder." ) ); + lblRecorderStatus->setWhatsThis ( "" + tr ( "Recorder Status" ) + ": " + + tr ( "Displays the current status of the recorder. The following values are possible:" + "
" + "
Not initialised
" + "
No recording directory has been set or the value is not useable
" + "
Not enabled
" + "
Recording has been switched off" ) +#ifdef _WIN32 + + tr ( " by the UI checkbox
" ) +#else + + tr ( ", either by the UI checkbox or SIGUSR2 being received" ) +#endif + + tr ( "
Not recording
" + "
There is no one connected to the server to record
" + "
Recording
" + "
The performers are being recorded to the specified session directory
" + "
" ) + + tr ( "
NOTE: If the recording directory is not useable, " + "the problem will be displayed in place of the directory.") ); // new recording pbtNewRecording->setAccessibleName ( tr ( "Request new recording button" ) ); - pbtNewRecording->setWhatsThis ( "" + tr ( "New Recording" ) + ":" + pbtNewRecording->setWhatsThis ( "" + tr ( "New Recording" ) + ": " + tr ( "During a recording session, the button can be used to start a new recording." ) ); - // init system tray icon if ( bSystemTrayIconAvaialbe ) { @@ -289,22 +324,12 @@ lvwClients->setMinimumHeight ( 140 ); #endif // Recorder controls - if ( !pServer->GetRecorderInitialised() ) - { - // The recorder was not initialised successfully from the command line - // TODO: Once initialising from the GUI is implemented, remove - chbEnableRecorder->setVisible ( false ); - edtCurrentSessionDir->setVisible ( false ); - lblRecorderStatus->setVisible ( false ); - pbtNewRecording->setVisible ( false ); - } - + chbEnableRecorder->setCheckState ( Qt::CheckState::Checked ); // move to settings edtCurrentSessionDir->setText ( "" ); pbtNewRecording->setAutoDefault ( false ); - - // TODO: Not yet implemented, so hide them! - pbtRecordingDir->setVisible ( false ); - edtRecordingsDir->setVisible ( false ); + pbtRecordingDir->setAutoDefault ( false ); + edtRecordingDir->setText( pServer->GetRecordingDir() ); + tbtClearRecordingDir->setText ( "(X)" ); // someone make me a nice icon? UpdateRecorderStatus ( QString::null ); @@ -372,9 +397,16 @@ lvwClients->setMinimumHeight ( 140 ); this, &CServerDlg::OnCentServAddrTypeActivated ); // push buttons + QObject::connect ( pbtRecordingDir, &QPushButton::released, + this, &CServerDlg::OnRecordingDirClicked ); + QObject::connect ( pbtNewRecording, &QPushButton::released, this, &CServerDlg::OnNewRecordingClicked ); + // tool buttons + QObject::connect ( tbtClearRecordingDir, &QToolButton::released, + this, &CServerDlg::OnClearRecordingDirClicked ); + // timers QObject::connect ( &Timer, &QTimer::timeout, this, &CServerDlg::OnTimer ); @@ -539,6 +571,30 @@ void CServerDlg::OnStopRecorder() UpdateRecorderStatus ( QString::null ); } +void CServerDlg::OnRecordingDirClicked() +{ + // get the current value from pServer + QString currentValue = pServer->GetRecordingDir(); + QString newRecordingDir = QFileDialog::getExistingDirectory ( this, + tr ( "Select Main Recording Directory" ), + currentValue, + QFileDialog::ShowDirsOnly | QFileDialog::DontUseNativeDialog ); + if ( newRecordingDir != currentValue ) + { + pServer->SetRecordingDir ( newRecordingDir ); + UpdateRecorderStatus ( QString::null ); + } +} + +void CServerDlg::OnClearRecordingDirClicked() +{ + if ( pServer->GetRecorderErrMsg() != QString::null || pServer->GetRecordingDir() != "" ) + { + pServer->SetRecordingDir ( "" ); + UpdateRecorderStatus ( QString::null ); + } +} + void CServerDlg::OnSysTrayActivated ( QSystemTrayIcon::ActivationReason ActReason ) { // on double click on the icon, show window in fore ground @@ -710,44 +766,52 @@ void CServerDlg::ModifyAutoStartEntry ( const bool bDoAutoStart ) void CServerDlg::UpdateRecorderStatus ( QString sessionDir ) { - if ( !pServer->GetRecorderInitialised() ) - { - // everything should be hidden. - return; - } - - Qt::CheckState csIsEnabled; QString currentSessionDir = edtCurrentSessionDir->text(); + QString errMsg = pServer->GetRecorderErrMsg(); bool bIsRecording = false; QString strRecorderStatus; + QString strRecordingDir; - if ( pServer->GetRecordingEnabled() ) + if ( pServer->GetRecorderInitialised() ) { - csIsEnabled = Qt::CheckState::Checked; - if ( pServer->IsRunning() ) + strRecordingDir = pServer->GetRecordingDir(); + chbEnableRecorder->setEnabled ( true ); + if ( pServer->GetRecordingEnabled() ) { - currentSessionDir = sessionDir != QString::null ? sessionDir : ""; - strRecorderStatus = tr ( "Recording" ); - bIsRecording = true; + if ( pServer->IsRunning() ) + { + edtCurrentSessionDir->setText ( sessionDir != QString::null ? sessionDir : "" ); + strRecorderStatus = tr ( "Recording" ); + bIsRecording = true; + } + else + { + strRecorderStatus = tr ( "Not recording" ); + } } else { - strRecorderStatus = tr ( "Not recording" ); + strRecorderStatus = tr ( "Not enabled" ); } } else { - csIsEnabled = Qt::CheckState::Unchecked; - strRecorderStatus = tr ( "Not enabled" ); + strRecordingDir = pServer->GetRecorderErrMsg(); + if ( strRecordingDir == QString::null ) + { + strRecordingDir = pServer->GetRecordingDir(); + } + else + { + strRecordingDir = tr ( "ERROR" ) + ": " + strRecordingDir; + } + chbEnableRecorder->setEnabled ( false ); + strRecorderStatus = tr ( "Not initialised" ); } - chbEnableRecorder->setCheckState ( csIsEnabled ); - + edtRecordingDir->setText( strRecordingDir ); edtCurrentSessionDir->setEnabled ( bIsRecording ); - edtCurrentSessionDir->setText ( currentSessionDir ); - lblRecorderStatus->setText ( strRecorderStatus ); - pbtNewRecording->setEnabled ( bIsRecording ); } diff --git a/src/serverdlg.h b/src/serverdlg.h index 47c56b0967..e4f7e603e3 100755 --- a/src/serverdlg.h +++ b/src/serverdlg.h @@ -35,6 +35,7 @@ #include #include #include +#include #include "global.h" #include "server.h" #include "settings.h" @@ -111,6 +112,8 @@ public slots: { if ( e->key() != Qt::Key_Escape ) QDialog::keyPressEvent ( e ); } void OnNewRecordingClicked() { pServer->RequestNewRecording(); } + void OnRecordingDirClicked(); + void OnClearRecordingDirClicked(); void OnRecordingSessionStarted ( QString sessionDir ) { UpdateRecorderStatus ( sessionDir ); } }; diff --git a/src/serverdlgbase.ui b/src/serverdlgbase.ui index 418a07c3b5..9a57988a74 100755 --- a/src/serverdlgbase.ui +++ b/src/serverdlgbase.ui @@ -172,31 +172,21 @@ - + - Enable jam recorder + Recording Directory - + true - - - STATUS - - - - - - - New recording - + @@ -204,19 +194,33 @@ - + - Recordings folder + Enable Jam Recorder - + true + + + + STATUS + + + + + + + New Recording + + + @@ -276,11 +280,12 @@ edtServerName edtLocationCity cbxLocationCountry + pbtRecordingDir + edtRecordingDir + tbtClearRecordingDir chbEnableRecorder edtCurrentSessionDir pbtNewRecording - pbtRecordingDir - edtRecordingsDir From 3b93e67f931275aa5f7271653bbadbfeda89d65a Mon Sep 17 00:00:00 2001 From: Peter L Jones Date: Wed, 1 Jul 2020 16:13:42 +0100 Subject: [PATCH 311/936] Changes for recorder status and whatsthis --- ChangeLog | 2 ++ src/serverdlg.cpp | 39 ++++++++++++++++++++------------------- src/serverdlg.h | 6 ++++++ 3 files changed, 28 insertions(+), 19 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1dc7efff39..da33eba317 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,8 @@ 3.5.9git +- update server UI to allow setting the jam recorder directory (like -R) (#228, #405) + - new app icon for Jamulus, created by geheimerEichkater (#410) - bug fix: grouping faders in the client should be proportional (see discussion in #202, #419) diff --git a/src/serverdlg.cpp b/src/serverdlg.cpp index 76a4b8a627..e80000d4e3 100755 --- a/src/serverdlg.cpp +++ b/src/serverdlg.cpp @@ -157,24 +157,25 @@ CServerDlg::CServerDlg ( CServer* pNServP, // recorder status lblRecorderStatus->setAccessibleName ( tr ( "Recorder status label" ) ); lblRecorderStatus->setWhatsThis ( "" + tr ( "Recorder Status" ) + ": " - + tr ( "Displays the current status of the recorder. The following values are possible:" - "
" - "
Not initialised
" - "
No recording directory has been set or the value is not useable
" - "
Not enabled
" - "
Recording has been switched off" ) + + tr ( "Displays the current status of the recorder. The following values are possible:" ) + + "
" + + "
" + tr ( SREC_NOT_INITIALISED ) + "
" + + "
" + tr ( "No recording directory has been set or the value is not useable" ) + "
" + + "
" + tr ( SREC_NOT_ENABLED ) + "
" + + "
" + tr ( "Recording has been switched off" ) #ifdef _WIN32 - + tr ( " by the UI checkbox
" ) + + tr ( " by the UI checkbox" ) #else - + tr ( ", either by the UI checkbox or SIGUSR2 being received
" ) + + tr ( ", either by the UI checkbox or SIGUSR2 being received" ) #endif - + tr ( "
Not recording
" - "
There is no one connected to the server to record
" - "
Recording
" - "
The performers are being recorded to the specified session directory
" - "
" ) - + tr ( "
NOTE: If the recording directory is not useable, " - "the problem will be displayed in place of the directory.") ); + + "" + + "
" + tr ( SREC_NOT_RECORDING ) + "
" + + "
" + tr ( "There is no one connected to the server to record" ) + "
" + + "
" + tr ( SREC_RECORDING ) + "
" + + "
" + tr ( "The performers are being recorded to the specified session directory" ) + "
" + + "

mEflVEbl#!PhA+W(QTW0(Hk{)4&$LPEs3Xvi& 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 diff --git a/src/res/homepage/mediawikisidebarlogo.png b/src/res/homepage/mediawikisidebarlogo.png index 6d34be850d6220dfe363965791c6f0b545d0a079..3b232523aa2178fb433ee29d4cf3c95a393957d7 100644 GIT binary patch literal 5540 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 literal 10254 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 UkCFl;F8}}l07*qoM6N<$f+}0_q5uE@ diff --git a/src/res/jamulus-icon-2020.ai b/src/res/jamulus-icon-2020.ai new file mode 100644 index 0000000000..0dde0fe54d --- /dev/null +++ b/src/res/jamulus-icon-2020.ai @@ -0,0 +1,1377 @@ +%PDF-1.6 %âãÏÓ +1 0 obj <>/OCGs[5 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + application/pdf + + + icon + + + Adobe Illustrator 24.2 (Macintosh) + 2020-06-30T20:13:54+02:00 + 2020-06-30T20:13:54+02:00 + 2020-06-30T20:13:54+02:00 + + + + 256 + 256 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FXYq7FXYq7FXYqsnuILeJpp5FiiTdpHIVR8ycIBOwRKQAs7Bierfmf5esyyWvO/lH++xxjr /rt/AHMqGimeezrsvamOPL1MS1D81PMM5ItEhs0/ZKr6j/SXqv8AwuZcNFAc93XZO1cp5VFIbrzT 5juj++1K4IPVVkZF/wCBXiMvjggOQDiS1WWXORS6WeaU1lkaQ+LEn9eWgANJkTzU8WKtDd3UJBhm eIjpwYr+o4DEHmyEyORTO084+aLUj0tSnIHQSN6o+6TllUtPA9HIhrMseUj97INO/NjWYaLfW0V0 g6stYn+8cl/4XKJ6GJ5GnMx9rTH1AH7GX6R+YvlrUCEeY2Ux/YuKKv0OCV+8jMPJpJx83Y4e0cU+ vCfNkysrKGUhlO4I3BGYzn23irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiriQoLM aAbknoBirB/Mn5nWFkWttJVby5GxnP8Acqfam7/Rt75m4dGZby2DqtT2pGO0PUfseb6rrmratN6t /cvMa1VCaIv+qg+EZsoYow5B0mXPPIbkbQGTaXYqmFnoGuXgBtbCeVT0dY24/wDBUpkJZYjmQ3Q0 +SXKJKaw/l15vkFfqIQHpzliH4cq5UdXj73IHZ2Y9PtCIP5Yeaqf3cJ/56jI/ncbP+S83l80NP8A l55uiFfqPMeKSRt+HKuSGrxnqwl2dmH8P3JRe6Lq9jX65ZTQAftPGwX6GpTLY5Iy5Fxp4Zw+oEIL JtTsVTjQ/Net6K4+p3BMFatbSfFEf9j2+YplWTBGfMOTg1eTF9J27uj03y1+YWk6uUt7illfGgEb n4HP+Q/8D+OazNpJQ3G4d7pu0IZNj6ZMqzFdg7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY qhtR1Ky060ku72UQwRj4mPc9gB3J8MlCBkaDDJkjCPFI0HkXmzz3qGts1vBW202u0IPxSe8hH/Ee nzzb4NMIbncvOavXyy7DaP45sWzJdeitO0zUNSuBb2MD3Ex/ZQdB4seij3ORnMRFktmPFKZqIss9 0X8piQsusXNO5trfr8mkI/UPpzAya7+aHb4Oyesz8AzTTfLGgaaB9TsYkcf7tYc5P+DarZhzzTlz Ls8Wlxw+kBNMqch2KuxV2KuIBFD0xVJdU8m+W9SqbiyRZT/u6L929fElaV+muXQ1E48i4uXRYp8w wfXPypvoA0ukzfWoxv6EtFl+htlb8MzseuB+rZ1WfsqQ3gb+9g9za3NrO0FzE0MyGjxuCrD6DmaJ Aiw6qUTE0RRUsLFnPlD8xrmxKWWrs09l9lLg1aSMe/dl/EfhmFqNIJbx5u20faRh6Z7x7+56nBPD PCk0DrJFIOSSKQVIPcEZqyCNi7+MgRY5L8CXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqhdT1Oz0y xlvbx/TgiFSe5PZVHcnJQgZGg15csYRMpcnivmnzTe6/e+rLWO1jJFtbA7KPE+LHuc3WDAMY83l9 VqpZpWeXQJJlzisx8pfl7easEvL/AJWunmjIOkko/wAmvRfc/RmJn1YhsNy7PSdnSyeqW0fveqab pWn6ZbC2sYFghHZRuT4sTux9zmrnMyNl3+LFGAqIoIrINjsVdirsVdirsVdirsVdiqWa55c0nWrf 0b6EMwH7uddpE/1W/gdstx5pQOzRn00MoqQeS+afJepaDIZD/pFgxpHdKOlegcfsnNrg1EZ+953V aKWI3zj3sdzIcJlXkrzrPoc4trkmTS5D8adTET+2n8RmLqNOJix9TsNFrTiNH6PuexQTwzwpPC4k ikUNG67gqRUEZqCKNF6WMgRY5L8CXYq7FXYq7FXYq7FXYq7FXYq7FXYq07pGjSOwVEBZmJoABuST iAgmni3nfzZJruoFISV063JFunTkehkYeJ7eAzdabBwDfm8xrtWcstvpHL9bGsyHBei+Q/IIkEeq 6xFWM0a1tHHXweQeHgM1+q1VemLutB2ffrmPcHpWa13jsVdirsVdirsVdirsVdirsVdirsVWTQQz xPDMiyRSAq8bCqkHsQcINbhEogii8j88+R30ZzfWIL6Y5oyndoWPY+KnsfoPvttNqePY/U85rtD4 Xqj9P3MPzLdazn8ufN5sbldIvX/0KdqW7t0jkY9P9Vj9x+nMLV6fiHEObtuzdZwHgl9J5eT1bNU9 A7FXYq7FXYq7FXYq7FXYq7FXYq7FWAfmh5mMEC6JavSWcB7xh1Ef7Kf7Lqfb55n6LDZ4i6ftTU0P DHXm8vzZuhZt+XflAalcfpS+SthbtSKNhtLIP+NV7+PTxzC1eo4Rwjm7Ts7R8Z45fSPtes5qnonY q7FXYq8+81/mXcWOoyWGlRRubdik1xKCwLj7SqoK9DtU5sMGjEhcnTavtMxlwwHJFeTPzCk1e9Gn ajEkV1ICYJYqhWKipUqSaGgr1yGo0nALHJs0XaJyS4ZDdm+YTtXYq7FXYq7FXYq7FXYqsnhinheG ZBJFIpWRGFQVOxBwg1uESiCKLxXzp5Wk0HUqRgtYXFWtZDvTxQnxXNzp8/HHzeX1ulOKW30nkx3M hwnsv5e+ZTq+k/V7h631kAkhJ3dP2H/gf7c0+rw8ErHIvTdn6nxIUfqiyrMV2DsVdirsVdirsVdi rsVWySRxIZJGCIu7OxAAHuThAtBIG5Y/qP5geVrElTdi5kH7FuPU/wCGHwf8Nl8NLkl0pw8naGGP W/cx67/N62BIs9Odx2aaQJ/wqh/15kR0B6lw59sD+GLzzUr+41C/nvbg1muHLt4CvQD2A2GbCERE UHTZMhnIyPMq+haPPq+q29hDsZW+N/5UG7N9AwZcghEkssGE5JiIe8WNlb2NnDaWy8IIFCRr7Dx9 z3zRSkZGy9bCAhERHIK+RZuxV2Kpb5k1ddJ0S6vj9uNKQg95G+FPxOWYcfHIBo1Obw8Zk8Ed2di7 kszElmO5JPU5vnkSbZJ+XenS3nmm2dNo7XlPK3gFFAPpYjMbVzqB83N7OxmWUeW72nNM9Q7FXYq7 FXYq7FXYq7FXYqlnmPQ4Na0maxloGYcoJD+xIPst/A+2W4chhK2jU4BlgYl4Rc201rcS206lJoWK SIeoZTQ5vIkEWHkpRMSQeYTPyprjaLrdveVPoE+ncqO8Tfa+77X0ZXnx8cSG/SZ/CyCXTq92VlZQ ymqsKgjoQc0T1obxV2KuxV2KuxVQvb6zsbdrm7mSCBPtSOaD5e59slGJkaDCc4xFyNBgOvfmuilo dFh59vrcwIH+xj6/8F92Z+LQ9ZOo1Ha3TGPiWB6nrerapJzv7qSc9QrH4B/qoKKPoGZ0McY8g6nL nnkPqNoHJtLsVdir1X8rNA+radJq0y0mvPggr1EKnr/smH4DNXrctnhHR6DsrT8MeM8z9zOswXbO xV2KuxV5n+bOs857bSIz8MQ9e4/1mqEH0LU/Tmy0OPYydF2tmsiA97zzNg6Z65+V+jfU9Ea+kWk1 +3JSeoiTZfvNT92anW5LlXc9H2Xh4cfEecvuZnmG7N2KuxV2KuxV2KuxV2KuxV2KvLfzW0MQX0Or RLSO6/dz06eqg+E/7JR+GbTQ5LHD3Og7VwVITHX72BZnOoe0fl1q51Dy1Cjms1kfq7/6qgFD/wAC QPozTavHwz970/Z2bjxDvjsyfMZz3Yq7FXYqxrzX5407QlMCUudRI+G3U7LXoZD2+XXMnBpjPfkH B1euji25y7nkus69qmsXJuL+YyEfYjGyIPBV7ZtceKMBQedzZ55Dcil+WNKO0vRNW1WX07C2ecg0 ZlFEX/Wc0UfSchPJGPMt2LBPIaiLZppf5SXTgPqd4sPcwwDm30u1AD9BzDnrx/CHZ4uyCfrNe5k9 l+XHlS2A5WzXLD9uZ2P4LxX8MxZavIetOdDs3DHpfvTi30HQ7f8AuNPtoz/MsSA/fSuVHLI8yXJj p8ceUR8kcAFAAFAOgGVtzsVdirsVU7i4it7eW4mbjFCjSSN4KoqThAs0xlIRBJ5B4Bq+pS6lqdzf y/buJC9PAfsr/sVoM3+OHDEB5DNkM5mR6u0fTZdT1S2sIvt3EgSvgvVm/wBitTgyT4YkrhxmcxEd Xv8AbwRW9vHbwrwihVUjUdlUUAzQk2bL2EYiIocgqYEuxV2KuxV2KuxV2KuxV2KuxVJfOWljUvLd 7ABWVE9aHx5x/EKfMCn05dp58MwXF1uLjxEPCs3jybOfyn1H0dZubFjRLqLko/y4jUf8KzZha6Fx B7nbdk5KmY94+56tmqegdirsVYR558+rpvPTdMYPfkETTDcQ17Dxf9WZum0vF6pcnVa7X8Hph9X3 fteUySSSyNJIxeRyWd2NSSdySTm1Ap58kk2VS1tbm7uEt7aNpp5DRI0FSTglIAWUwgZGhuXpHlv8 rYIglzrjerJ1Fmh+Af67D7XyG3zzXZtaTtF3em7LA3yfJntvbW9tCsNvEsMKCiRoAqgewGYBJJsu 3jERFDYKmBk7FXYq7FXYq7FXYqwz80dZ+p6IthG1Jr9qNQ7iJKFvvNB9+Zmix3K+51nambhx8I5y +55Hm2eceh/lNo3Oe51eRfhjH1e3J/mahc/QKD6c1+uybCLuuycO5mfcHpma13jsVULy/srKEzXk 8dvEP25GCj6K5KMTLYMJ5IxFyNMQ1f8ANTRrbkmnxPeyDo5/dxfeRyP/AAOZePQyPPZ1ubtWEfpH EwnV/P3mXUuSG5+qwH/dVv8AAKe7bufvzNx6WEelurzdoZZ9aHkh9C826zpN9HOtzJLByHr27sWV 177E7GnQ5LLgjMVTDBq545Xe3c9zRg6hl+ywBHyOaN6wFvFXYq7FXYq4gEUPTFXz7rNl9R1e9swK LBNJGv8AqqxC/hm/xy4ogvHZocMzHuKM8nXZtfNGmy1oDOsZPtL+7P8AxLIaiNwLbo58OWJ8/ve7 Zo3rHYqxHz95xGjW31Kzb/cncLUMKH0kO3M/5R/Z+/MvS6fjNn6XXa/WeEOGP1H7Hj7MzMWYlmY1 ZjuSTm3ebR2i6Lf6xfpZ2acpG3dz9lF7sx7AZDJkEBZbcGCWSXDF7N5Z8qaboNtwgX1LpxSe6YfE 3sP5V9s02bPLId+T02l0kcI2596dZS5TsVdirsVdirsVdirsVdirxHz1rP6V8x3Do3K3t/8AR4PD ihNT9LVObvTY+GAeW1+bxMp7hskCIzuqICzMQFUdSTsBl7hgW968vaVHo+h21kSAYY+U7125n4nN fCp+7NFlnxyJeu0+IY8Yj3Jdq/5g+WtO5ILj63OP91W/x7+77J+OWY9LOXSmjN2hih1s+TCdX/NP W7rklhGljEdg395LT/WYcR9C/Tmbj0URz3dXm7VyS+n0sRu728vJjNdzPPKeryMWP45lxiBsHXTn KRsm1DCwdiqceVNCfWtags6H0QfUuXH7Ma9fv6D55Vny8EbcnSYPFyCPTq93AAAAFANgBmietdir sVdirsVdirxP8w4BF5uvwOj+m4/2Uak/jXN1pDeMPLdoxrNL8dEitJjDdQzA0MTq9f8AVIOXyFin EgaIL6JznntEu8wa3b6LpU1/PvwHGKPu8h+yv+fbLMWMzlQaNRnGKBkXhN/fXN/eS3l0/OeZizt8 +w9h2zeRiIig8nkyGcjI8yu03TrvUr6KytE5zzGijsO5JPYAbnGcxEWU4sZnIRjzL2/y15cstC09 baABpWobi4pRpH8fYDsM0mbMZmy9VptNHFGhz6ptlTkOxV2KuxV2KuxV2KuxV2KpL5x1n9EeX7m5 VuM7j0bfx9STYEf6oq30Zdp8fHMBxdZm8PGT16PCs3jyaJ069exvYbyNEkkgbnGsgJXkPskgEdDv kZx4hTPHPgkJDoitV8ya5qpP167eVDv6QPGMf7BaLkYYYx5Bsy6nJk+opZljQ7FU10nyxrurEGys 3eM/7uYcI/8Ag2oD9GVZM0Icy5GLS5Mn0hB6jZGxvZrRpEleBuEjx1Kch9oAkCtDtk4S4hbXkhwy Me5DZJrex/lx5e/Rmii6mWl5f0kavVY/91r+PI/P2zUavLxSocg9L2bp+CFnnJlmYjsXYq7FXYq7 FXYq8d/M8Aea5Kd4Yq/dm40X92812p/ffAMSzKdc+j8517Z5B+ZXmA6jrJsYWraWBKbdGl/bP0fZ +/Nvo8XDG+peb7T1HHPhHKP3sPzLda9g/Lvyuul6aL+5T/T7xQ2/WOI7qvzPU/2ZqNXm4pUOQek7 O0vhx4j9UvuZfmI7J2KuxV2KuxV2KuxV2KuxV2KvLPzY1SSXU7fTRtFbR+q3u8n9FH45tNDComXe 6DtbLcxHuYHmc6h2KoizsL69l9GzgkuJf5I1LH6aYJSEdyWcMcpGoi2YaR+VWsXNH1GVLKM9UH72 T7geI/4LMPJrojlu7LD2VOX1HhZtpHkLy1pnFltvrM4/3dcUkNfZacB92YWTVTl1p2mHQYodLPmu 866+uiaFJJEQt1N+5tFHUMRuw/1Bv86Y6fFxy8k63UeFjsczsHiBJJqdyepzdPLMg8j+XzrOuRpI tbO2pNcmmxAPwp/sjt8q5j6nLwR8y5mh0/i5N/pHN7cAAKDpmlepdirsVdirsVdirsVeLfmNMJPN 96B0jESD6I1J/E5udIP3YeX7SN5j8PuY7BEZZ44h1kYKKe5pmSTQcOIs09380auNI0K7vgR6qJxg B7yP8KfcTXNFhx8cgHrNVm8PGZPBWZmYsxJYmpJ3JJzevJMj8h6ANX16MSrytLX99cA9DQ/Ch/1m /CuY+qy8EPMuboNP4mTfkNy9rzSvUOxV2KuxV2KuxV2KuxV2KuxV2KsF/MHyTfarcJqWmgSXCoI5 rckKWCn4WUmgrvvU5naXUiI4ZOp7Q0Msh4o82Jad+XHmi7kpJAtpGOskzAfcq8mP3Zlz1cB1t12P s3LI7ivezPSPys0S14vfyPfSjqp/dxf8Cp5H6WzDya2R5bOzw9lY4/V6mXWtnaWkQhtYUgiHRI1C r9wzDlIncuyhARFAUrYGTsVeKefPMP6Z1x/SblZWtYrbwND8b/7Ij7qZutLi4I+ZeX1+o8TJt9I5 MczIcF7b5G8vfobQ41lWl5c0lufEEj4U/wBiPxrml1OXjl5B6nQ6fwse/wBR5shzHc12KuxV2Kux V2KuxV4D5ivBea9qFyDVZJ5Ch/yQxC/gM32KNQA8nkNTPiySPmqeVrU3XmPTYeoNxGzD/JRuTfgu DPKoE+SdLHiyxHmzP83NTP8AoOmK229zKv3on/G2Yeghzk7PtfL9MPi83zYukexflnpIsvLq3LLS a/Yyse/AfCg+74vpzUazJxTruel7Mw8OK+smW5iOxdirsVdirsVdirsVdirsVdirsVdirsVdirsV dirFvzD8w/orRGghal5fViiod1Snxv8AdsPc5laTFxSvoHX9o6jw8dD6pPGc3DzLK/y68vfpTWhc TLWzsaSSA9Gf/da/eKn5Zi6vLwxocy7Ds7T+Jks/TF7JmnemdirsVdirsVdirsVSzzNqY0zQb29r R44yIv8AjI/wp/wxGW4YcUwGjVZeDGZPA83ryDNPyr08z+YXuyPgs4WIP+XJ8A/4XlmHrZ1Cu92n ZWO8nF/NCXfmBem6813pr8MJWFB4cFAP/DVyzSxrGGjtCfFmPlskNtA9xcxW8f8AeTOsafNjQfry 8mhbiRjZAHV9DWtvHbW0VvGKRwosaD/JUUH6s5+Rs29lGIiAB0VMDJ2KuxV2KuxV2KuxV2KuxV2K uxV2KuxV2KsAsPzOW31Cew1mKiwyvGt3CCdlYj40/iv3Zny0dgGLp8fadSMZjkeYZva6jY3dr9bt p0ltqVMqsCoAFTXwp3rmFKBBojd2sMkZCwdniXm7Xm1vW5roE/Vk/dWq9KRqdjT/ACvtZusGLgjX V5bWajxchPTok6I8jqiKWdyFVRuSTsAMuJcYC3uvlPQk0TRILSn79v3ly3jKwFf+B+yPlmjz5eOV vWaTB4WMR69U4ylyXYq7FXYq7FXYq7FXm/5s62D9W0eJun+kXIH0iNT+J+7NjocfOTpO1s/KA95e cZsXSPYPyw0k2fl76060lv3Mnv6a/Cg/WfpzUa3Jc67npOy8XDjvrJ5Vq05uNVvJzuZp5ZP+CcnN rjFRA8nn80rmT3kpl5Ithcea9NjIrxl9T/kUpk/41yvUmsZb9DHizRHn9z3LNG9W7FXYq7FXYq7F XYq7FXYq7FXYq7FXYq7FXYq+f9fUpruooeq3UwPzEjZv8X0D3PH6gfvJe8/eh7a+vLZZUt53iSdT HMqMQHUihDAdckYg82Ecko3R5qGFgzb8sPL313U21Sda21iR6VejTHcf8AN/nTMLW5eGPCOZdr2X p+KfGeUfves5qnoXYq7FXYq7FXYq7FUJqup22mafPfXJpFAvIjuT0Cj3Y7ZOEDI0GvLlGOJkejwX U9RuNS1Ce+uDWa4cu3gPBR7KNhm9hARAAeRy5DORkeZVtC0mbV9WtrCKo9ZvjcfsoN3b6FwZcghE llgwnJMRHV75BBFBBHBEoSKJQkaDoFUUA+7NCTZt6+MQBQfOhJJqeudC8Um3lK8Fn5l06cmiidUY +CyfAT9zZVnjcCHJ0k+HLE+b3jNE9a7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq8E8zqV8yaqD 1+tzn6DISM32H6B7g8jqh+9l/WP3pXljjuxVNNE8yaxosvOwnKIxq8LfFG3zU/rG+V5MMZ8w5GDU zxH0l6V5e/MvSNQ4w6gBYXR25MawsfZ/2f8AZffmty6OUdxuHd6ftOE9pek/YzEEEVHTMN2bsVdi rsVdirsVeQfmF5tGr3v1G0eunWrH4gdpZBsW/wBUdF+/NvpMHALPMvN9oavxJcMfpH2sPzLda9Y/ LLy2bGwbVblKXN4oEIPVYeoP+zO/ypmq1mbiPCOQeh7M03DHjPOX3M3zCdq+cWUqxUihBoR7jOie KcCQQQaEbgjFXv3l7U11TRbO+Bq00YMlO0g+Fx/wQOaHLDhkQ9fp8viYxLvTDK252KuxV2KuxV2K uxV2KuxV2KuxV2KuxV2KvCPN6svmjUwdj9Yc/QTUZvcH0D3PJawfvZe9J8tcZ2Kpjo2garrFx6Fh AZCPtyHZEHizdBleTLGAst2HTzyGoh6j5Z/LvStK4XF5S9vhvyYfukP+Qp7+5/DNZm1cpbDYO/03 Z0Me8vVJluYjsXYq7FXYq7FWC/mZ5omsbcaRa8kmuk5TzUIpESRxU+LU39sztHhEjxHo6ntPVGI4 BzP3PKs2jz6deT7DTL7zBbW+oyiO3JqFbpI4+zHXty/synUSlGBIcrR44zyASO33+T3UAAAAUA2A GaN6x2Kvn3W7c22s31uRT0riVB8g5Azf4zcQfJ47PHhnIeZQWTanof5U6+I5ptFmb4ZazWtf5gPj X6QK/Qc1+uxfxB3PZWoonGfeHpma13rsVdirsVdirsVdirsVdirsVdirsVdirsVeGedlK+a9SBFD 6tfoKgjN5pv7sPKa7++l70mjiklkWOJDJI5oiKCWJPYAZcTTigEmgz7y1+V083C51tjDFsVs0P7w /wCu37PyG/yzAza0DaLt9N2WTvk28npFlY2llbrbWkKwQJ9mNBQfP5++a6UjI2XdwhGIqIoK2RZu xV2KuxV2KuxVLfMHl+w1ywa0u1oRvDMPtxt4r/Ed8txZTA2GjUaeOWNF4r5g8v3+h37Wl2tQd4Zh 9mRfEfxHbNziyiYsPL6jTyxSopaCQajYjocsaXrf5e+cDqtt+jr166hbrVJGO8sY2r/rL3+/xzU6 vT8J4hyei7O1niDhl9Q+1meYbs3i/wCY9ibXzXctSiXKpOn+yXi3/DKc3OkleMeTzHaUOHMfPdjG ZLgKtrcz2tzFcwOUmhYPG47MpqMEogiiyjIxII5h7p5Y8w22u6VHdx0WYfBcw90kHX6D1GaPNiMJ U9ZpdQMsOIc+qbZU5DsVdirsVdirsVdirsVdirsVdirsVdiry/WvJWs635w1B40+r2XqJyu5B8P9 2v2B1c/Lb3zZ49TGGMd7oc2inlzyraPf8GbeXvKOj6HGPq0fqXJFHupKGQ+NP5R7DMLLnlPnydpp 9JDENufenWUuU7FXYq7FXYq7FXYq7FXYql2vaFY61p72d2vXeKUD4o3psy/575ZiymBsNGowRyx4 S8N1bS7vS9QmsbpaTQtQkdGHUMvsRvm8xzEhYeVzYjjkYnmFmnX9zp99De2zcZ4GDoe23UH2I2OM 4iQosceQwkJDmHvWj6pb6pplvfwf3c68uPdW6Mp91O2aLJAxkQXrsOUZICQ6sK/NvSy9rZ6mi/3L GCYj+V/iSvsCD9+ZugnuYur7XxWBPu2eY5snROxVN/LXmO80HUVuoPjib4biAmgdP4EdjlWbCJii 5Om1MsUrHxe26Vq1jqtkl5ZSCSJ+virU3Vh2IzSzxmJovU4ssckeKPJF5BsdirsVdirsVdirsVdi rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirCPzQ8vrd6Wuqwr/AKTZbSkdWhY7/wDAk1+/ M3RZalw9C6rtTT8UOMc4/c8nzavPPSPyl1g/6XpEjbD/AEi3B+hZB/xE/fmu12PlJ3fZGbnA+9nO u6XHqukXVg9P36EIx7ON0b6GAzCxT4ZAu1z4hkgY97wGaGSGZ4ZVKSxsUdT1DKaEZvgb3eQkCDRW YodiqbeXfMuo6FeevaNyjanr27fYkA8fAjscqy4RMUXI0+plilY+T2Hy75q0rXYOdq/C4UVltXI9 Rf6j3GajLglA7vS6bVQyjbn3JxlLkuxV2KuxV2KuxV2KuxV2KuxV2KqF7fWdjbtcXkyQQr1dyAPk PE+2SjEyNBhPJGAuRoNafqFnqFnHeWcglt5RVHAI6Gh2NCN8ZwMTRXHkjOPFHkiMizdirsVdirsV dirsVdirsVdiqnc28Vzby28o5RTI0ci+KsKHCDRtjKIkCD1fPd7bNa3k9qxDNBI8TEdCUYr/AAzo ImwC8dOPDIjuTXyVfGy80afLWivKIX8KS/Bv/wAFXKtTG4FyNFk4csT5183ueaN6t5V+aPl02uoL q8C/6PdnjPToswHX/ZgffXNpostjhPR5/tTT8MuMcj97BcznUuxV2Kqtvc3FtMk9vI0U0ZqkiEqw PsRgIBFFlGRibHNn3l/81ZowkGtReqo2+txAB/8AZpsD9FPlmBl0I5xdvp+1SNsgvzZ/pmtaVqkX q2FylwvVgp+Jf9ZTRl+kZgTxyjzDuMWaGQXE2jcg2uxV2KuxV2KuxV2KqF7qFjYwme8nS3iH7cjB R8hXqclGJkaAYTyRgLkaYNr/AOattFyh0aH136fWpQVQf6qbMfppmdi0JO8nVajtUDaAvzeeanq+ panOZ7+4eeTtyOy17Ko2UfLNhDHGIoB02XNKZuRtl35YeZfql8dIuHpb3bVtyeizdKf7MbfOmYet w2OIcw7HsvU8MuA8jy971XNW9A7FXYq7FXYq7FXYq7FXYq7FUt8x6zHo+jXN89Oca0hU/tSNsg+/ r7Zbhx8cgGjU5hjgZPBHdnYuxqzEliepJzevIk2ut5jDcRTL9qJ1cfNTXARYpMTRBfRec89ohNV0 y11PT57G5FYZ14k9weoYe4O4ycJmJsNeXEMkTE8i8J1rSLvSNSmsLofvIj8Ljo6H7Lr7EZvMeQTj YeTz4TjkYlA5NpdirsVdiq+GaaGRZYXaORd1dCVYH2IxIvmkSINhkmnfmN5psgFa4W7jHRbheR/4 McX+85jT0mM9Kc7H2llj1v3sis/zeSgF5pxB7vDJX/hWA/4lmPLQdxc2HbH86Kaw/mr5ZcDmlzEe /KNT/wARZsqOhn5N47VxHvVx+ZnlIrU3EgP8piev4CmR/J5O5n/KeHv+xRl/NPyugqouJPZYwP8A iTLkhop+TE9q4h3pbd/m9aAEWmnSOezSuE/BQ/68sjoD1LRPtgfwxY/qP5neZrqqwvHZof8AfKVa n+s/L8KZkQ0cBz3cPJ2nlly9LGLq8u7uUzXUzzynq8jFz95zJjEDYODOcpGybUcLB2KrlZkYMpKs pqrDYgjuMUgvafJPmuLXdPCSsBqVuALmPpyHQSL7Hv4H6M02pwcB8np9Dqxljv8AUOf62SZjOc7F XYq7FXYq7FXYq7FXMyqpZiAoFSTsABirxvz95sGtX4t7Vq6dakiI/wC/H6GT5dl/tzcaXBwCzzLz PaGr8WVD6QxTMp17sVfR+c69s7FWPec/KcOv2H7uiahACbaU7A+KN7H8MyNPnOM+Tha3SDNH+kOT xa5tp7aeS3uEMc0TFJI26hh1GbkEEWHmJRMTR5qWFi7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY qidO1G8068jvLOUxTxmqsPxBHcHwyM4CQotmPJKEuKJ3eveVPPmna0iW85W11LoYWNFkPjGT1/1e vzzU59KYbjcPR6TXxy7HaX45MozFc92KuxV2KuxV2KqN5eWtnbvc3UqwwRirSOaAYYxJNBjOYiLJ oPKvOn5gS6qHsNO5Q6d0kkOzzfP+Vfbv38M2un0vDvLm8/re0Dk9Mdo/ewvMx1bsVRmjWxutXsrY f7unjT6GcDIZDUSfJtwx4pgd5D6DzQPYuxV2KsX85eSbbXYjcQUh1ONaJJ0WQDosn8D2zK0+pMNj 9Lga3QjKLG0nj97ZXdjdSWt3E0M8Ro8bChH9QexzbxkJCw83OBiaIoqGFg7FXYq7FXYq7FXYq7FX Yq7FXYq7FXYq7FXYq2CQajrirKtD/MfX9NVYp2F9bLsEmJ5ge0g3++uYuTSQly2LsMHaWSGx9Q82 Z6d+aXly4AF0JbKTvzUyJX2ZKn/hcw56KY5bu0x9q4pc7incPm3yxMvJNUtgP8uRUP3OVyg4JjoX Kjq8R/iHzV38waCgq+pWqg9Kzxj9bYPCn3FkdRjH8UfmEvu/PnlO2B5agkhHRYg0hP0qCPxyyOly Ho0z1+GP8TGdW/NuIBk0qzLN2muDQf8AAKTX/gsyYaD+cXBy9rj+AfNgur67qurzerqFw0xH2E6I tf5VGwzOx4owGwdTmzzyG5G0vybS7FXYqy38s9NN35mjnK1iskaVj25EcFH3tX6MxdZOoV3ux7Mx cWW/5r2LNO9K7FXYq7FUo8xeV9L1239O6TjOgpDcpTmn9R7HLsWaUDs42p0sMoo8+95J5j8naxoc hM6etaVol3GCUPhy/lPsc2uHURny5vO6nRzxHfcd6RZe4jsVdirsVdirsVdirsVdirsVdirdDQNT Y7A9qj/bxS1ih2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV7F+WuhnTtBFzKvG4vyJWr1EY2jH3Et9Oa jWZOKddA9L2bg4MdnnL8BluYjsXYq7FXYq7FWnRHQo6hkYUZSKgg9iDigi2G69+WOj33KbTm+oXB 34KOUJP+r+z/ALHb2zMxa2Uee7rdR2XCe8fSfsYDq/kjzHpZZprUzQr/ALvg/eJTxNPiH0jM/HqY S5F0+bQ5cfMWPJIsvcRrFXYq7FXYq7FXYqm+k+VNf1Ug2lm5iP8Au9xwjp/rNQH6MqnnhHmXJxaT Jk+kM70L8qrKArNq831qQb/V4qrF9LbM34Zg5dcT9OztsHZURvM35J15r8pWup6D9Ts4khntQXsl QBVBpum1Nn/XvlGDOYzs9eblavSDJj4YiiOTxWSN45GjkUpIhKujChBGxBBzdAvLkVsVuKHYq7FX Yq7FXYq7FXYq7FXYq7FWR+SPLD65qq+qp+oWxD3Tdj/LH/sv1Zj6nNwR8y5uh0viz3+kc3tgAAAA oBsAM0r1LsVdirsVdirsVdirsVdiqX6j5d0PUSTe2UUznrIVAf8A4NaN+OWQyyjyLTk0+Of1AFj1 3+VnlqYkwtPbHsqOGX/hwx/HMiOtmOdFw59lYjysJZL+T8JP7rVGUeDwhv1OuWDXnucc9jjpL7P2 of8A5VBc/wDVzT/kUf8AmvJfnx3Mf5HP877FaL8n12Muqk+KpBT8S5/VgOv8mQ7H75fZ+1MrX8qP L0RBnmuLg9wWVFP0KtfxyuWumeVN0OycY5klPtP8p+XNPobWwiV16SOPUcf7J+RzHnnnLmXMx6TF DlEJtlTkOxV2KsC/MLyQ14H1fTY63Sit1AvWQAfbUfzDuO/z65+k1NemXJ1HaGh4vXDn1eXZs3QN Yq7FXYq7FXYq7FXYq7FXYqmWg6Df61fpaWiVrQyykfDGvdmP+dcry5RAWW/Bglllwxe3aJotlo2n R2NotETd3P2nc9Wb3OaXJkMzZepwYY448IR+VtzsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV dirsVdirsVYZ5w/Ly31VnvtN42+oGrSIdo5T4n+Vvfv38czNPqzHaXJ1ms7OGT1R2l97yu/0+9sL lra9haCdOqOKfSOxHuM2kZiQsPP5McoGpCih8kwdirsVdirsVdirsVZH5Y8karrjrLxNtYV+K6cd R/xWv7X6sx82pjDzLm6XQzy78o9713RdE07RrJbSxj4IN3c7u7fzMe5zU5MhmbL0eHBHHGoo/K25 2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KoPVNH0zVIPQv7dJ4/wBnkPiU nurD4l+jJwySibBasuGGQVIWwTWPylNWk0i727QXH8JFH61+nM7Hrv5wdTm7I6wPzYnfeSvNFkT6 unyuo/bhHqinj8HL8cy46mB6uvyaLLHnE/DdJ5re4hPGaJ4m8HUqfxy0EHk4xiRzCnhYoy20bV7o 0trKeb/Ujdh+AyByRHMhtjhnLkCfgyHTfyz8zXZUzxpZRHq0rAtT2VOR++mUT1kBy3czF2Zllz9L NdD/AC10HTistyDf3C78pRSMH2jFR/wROYWTWTly2DtMHZuOG59R/HRloAAAAoBsAMxHYuxV2Kux V//Z + + + + proof:pdf + uuid:65E6390686CF11DBA6E2D887CEACB407 + xmp.did:0fd80808-9f7c-4f9d-a485-1f8bf7c87813 + uuid:6bbc8c84-715f-d94e-a3ae-24a7383faa54 + + xmp.iid:4dd58ca3-0986-47ff-8023-cd572bb485c8 + xmp.did:4dd58ca3-0986-47ff-8023-cd572bb485c8 + uuid:65E6390686CF11DBA6E2D887CEACB407 + default + + + + + saved + xmp.iid:4dd58ca3-0986-47ff-8023-cd572bb485c8 + 2020-06-30T20:11:53+02:00 + Adobe Illustrator 24.2 (Macintosh) + / + + + saved + xmp.iid:0fd80808-9f7c-4f9d-a485-1f8bf7c87813 + 2020-06-30T20:13:54+02:00 + Adobe Illustrator 24.2 (Macintosh) + / + + + + Web + Document + Adobe Illustrator + 1 + False + False + + 1024.000000 + 1024.000000 + Pixels + + + + Cyan + Magenta + Yellow + Black + + + + + + Standard-Farbfeldgruppe + 0 + + + + Weiß + RGB + PROCESS + 255 + 255 + 255 + + + Schwarz + RGB + PROCESS + 0 + 0 + 0 + + + RGB Rot + RGB + PROCESS + 255 + 0 + 0 + + + RGB Gelb + RGB + PROCESS + 255 + 255 + 0 + + + RGB Grün + RGB + PROCESS + 0 + 255 + 0 + + + RGB Cyan + RGB + PROCESS + 0 + 255 + 255 + + + RGB Blau + RGB + PROCESS + 0 + 0 + 255 + + + RGB Magenta + RGB + PROCESS + 255 + 0 + 255 + + + R=193 G=39 B=45 + RGB + PROCESS + 193 + 39 + 45 + + + R=237 G=28 B=36 + RGB + PROCESS + 237 + 28 + 36 + + + R=241 G=90 B=36 + RGB + PROCESS + 241 + 90 + 36 + + + R=247 G=147 B=30 + RGB + PROCESS + 247 + 147 + 30 + + + R=251 G=176 B=59 + RGB + PROCESS + 251 + 176 + 59 + + + R=252 G=238 B=33 + RGB + PROCESS + 252 + 238 + 33 + + + R=217 G=224 B=33 + RGB + PROCESS + 217 + 224 + 33 + + + R=140 G=198 B=63 + RGB + PROCESS + 140 + 198 + 63 + + + R=57 G=181 B=74 + RGB + PROCESS + 57 + 181 + 74 + + + R=0 G=146 B=69 + RGB + PROCESS + 0 + 146 + 69 + + + R=0 G=104 B=55 + RGB + PROCESS + 0 + 104 + 55 + + + R=34 G=181 B=115 + RGB + PROCESS + 34 + 181 + 115 + + + R=0 G=169 B=157 + RGB + PROCESS + 0 + 169 + 157 + + + R=41 G=171 B=226 + RGB + PROCESS + 41 + 171 + 226 + + + R=0 G=113 B=188 + RGB + PROCESS + 0 + 113 + 188 + + + R=46 G=49 B=146 + RGB + PROCESS + 46 + 49 + 146 + + + R=27 G=20 B=100 + RGB + PROCESS + 27 + 20 + 100 + + + R=102 G=45 B=145 + RGB + PROCESS + 102 + 45 + 145 + + + R=147 G=39 B=143 + RGB + PROCESS + 147 + 39 + 143 + + + R=158 G=0 B=93 + RGB + PROCESS + 158 + 0 + 93 + + + R=212 G=20 B=90 + RGB + PROCESS + 212 + 20 + 90 + + + R=237 G=30 B=121 + RGB + PROCESS + 237 + 30 + 121 + + + R=199 G=178 B=153 + RGB + PROCESS + 199 + 178 + 153 + + + R=153 G=134 B=117 + RGB + PROCESS + 153 + 134 + 117 + + + R=115 G=99 B=87 + RGB + PROCESS + 115 + 99 + 87 + + + R=83 G=71 B=65 + RGB + PROCESS + 83 + 71 + 65 + + + R=198 G=156 B=109 + RGB + PROCESS + 198 + 156 + 109 + + + R=166 G=124 B=82 + RGB + PROCESS + 166 + 124 + 82 + + + R=140 G=98 B=57 + RGB + PROCESS + 140 + 98 + 57 + + + R=117 G=76 B=36 + RGB + PROCESS + 117 + 76 + 36 + + + R=96 G=56 B=19 + RGB + PROCESS + 96 + 56 + 19 + + + R=66 G=33 B=11 + RGB + PROCESS + 66 + 33 + 11 + + + TEST + PROCESS + 100.000000 + RGB + 77 + 170 + 203 + + + + + + Graustufen + 1 + + + + R=0 G=0 B=0 + RGB + PROCESS + 0 + 0 + 0 + + + R=26 G=26 B=26 + RGB + PROCESS + 26 + 26 + 26 + + + R=51 G=51 B=51 + RGB + PROCESS + 51 + 51 + 51 + + + R=77 G=77 B=77 + RGB + PROCESS + 77 + 77 + 77 + + + R=102 G=102 B=102 + RGB + PROCESS + 102 + 102 + 102 + + + R=128 G=128 B=128 + RGB + PROCESS + 128 + 128 + 128 + + + R=153 G=153 B=153 + RGB + PROCESS + 153 + 153 + 153 + + + R=179 G=179 B=179 + RGB + PROCESS + 179 + 179 + 179 + + + R=204 G=204 B=204 + RGB + PROCESS + 204 + 204 + 204 + + + R=230 G=230 B=230 + RGB + PROCESS + 230 + 230 + 230 + + + R=242 G=242 B=242 + RGB + PROCESS + 242 + 242 + 242 + + + + + + Webfarben + 1 + + + + R=63 G=169 B=245 + RGB + PROCESS + 63 + 169 + 245 + + + R=122 G=201 B=67 + RGB + PROCESS + 122 + 201 + 67 + + + R=255 G=147 B=30 + RGB + PROCESS + 255 + 147 + 30 + + + R=255 G=29 B=37 + RGB + PROCESS + 255 + 29 + 37 + + + R=255 G=123 B=172 + RGB + PROCESS + 255 + 123 + 172 + + + R=189 G=204 B=212 + RGB + PROCESS + 189 + 204 + 212 + + + + + + + Adobe PDF library 15.00 + 21.0.0 + + + + + + + + + + + + + + + + + + + + + + + + + endstream endobj 3 0 obj <> endobj 7 0 obj <>/Resources<>/Properties<>>>/Thumb 11 0 R/TrimBox[0.0 0.0 1024.0 1024.0]/Type/Page>> endobj 8 0 obj <>stream +H‰l–Án¥' …÷ÿSð—`0¶M«®FÕ¨‹>@ÔÎf¦ÒLß_êwàÞÜTª"%?Œ}||œ—ß^Ó˧ג~úù5]߯’¬T?¿nû÷?¯?ÒßWÉ­x*yŒÅïX‘~|¹^~ý½¤/ÿ\ß“¥Â¥å#WŸÉëÈáaéíÛ¥o—ÏÜG59SDŽ^“¹ekïËÊ¥>"½]wƒ7Ëu®t›3×2S_‘koéVWÍ«½¯ß®›·™£ÆóHž}qÇjž}µçÒjj«dªK³ Òê© ¢n#ÝáW³Ü⣡eÇ w–›M;/Å,D‰¥9o›ÞŽN"ãiá^ç­éO¹WB®XêÌxãcFîÊkßkÞóZò-©:Z^UÈ„2VnÊñaÑ=ÒVPÓÒ[³‘­<×+:ž Sv Œžˆ3ÀéFe´]à·ë¯ëóeI?ÔÿY÷Ñ[n6=-…²Ê‡Âß ìZç›Èóp½°«~k+‡±†ðSDªª ªAZP¦T¥´{…ÊÐ62Ö-»a©ø›¿MµÇál¹‡h‡$)ôÔ¥ºF.®Ã¥f*¾ +*‡"C6j ÖØ< +0é´ c³Sï5CÄ=T»u|MÑÓ'‰õí¿CSR`šÛ®ø ¢*ÝI(¿»AQ‰ùâÛãŒ9 ‘«Vü‘¾ñÑDã¥zª^>L:Ld +{HÂðã.“øßèæàT¡»„#í ùEÒdP»{_¿]3O²yXèÀÓ…ÑQ$¡••žx˜w,­Ð |݆—¥’\ +25©½g—ÓÎFƒ]zg,w +­nûzU‡]`óD~Lƒv)œžp +QaØì&ÔK^’€'¦ƒV´R«.î.’6Âé48ÕUEâAR¼ïò@¨9÷¥‰8Ù1Á;­×Øë†âõ „Íq HîˆN¢ŽWuKÔ5 +Òëû~[pl³|›à˜<Ιù8w¶aÝOé9ÆQ£æ*ÁP§ÄéüÆs…´0Øá”,µî#è5Ú-ƒoÀe{Ý×}]ÖM\qy¶ëРBH˜:ˆì;¾›†€…k_q˜›¶LÑVZκ•®mÇpzZjw…†˜rÒ<—¢WÆf&Ø!ûðîbÕÚ¾ôÑ$dرé¡ÿ¯!ÆãÒ1uXyŽø}=ÜaG‡Áëü†“Ó¦þ®üßiøTþÅôL²x0YžjˆÂ3„†’V:`ãÖŽ.6´þr¤UDUZ‚¼DßÍÌm’YÞ®k[:›M#›BH1\‡»ä.Ý1„Y‹ÄÔ¾G˜-Qƒ+̦*² ¸8ÒéCŸ=3q!ÊøC"öÜÿ Òc+ £“A¤(òîÀÆfÔ.µB:º§­·&‚PF"?yÍGúšÿºb麷[Mr^ʦ‰¬¶åŽî¡¡kµ;&¶IJ·-¶7¶ew‘ltËl‡éQ¶æƒÚ’ÐTF5в½‘uiRìjؘ\ëÔEþzÍ,Ø¥*¹ÆòIåI_>ñÔçë_l>ÊÀ endstream endobj 11 0 obj <>stream +8;Xu\=`WUX#Wu19(k:Ym^45j@8 +/Y3$3=iZ(;Z!duM0pNWl;NI_HAl`7WN5`@Hl(5:3(<0h>T;\Bgs6reKH@ViiA3FWH +bXlq?<'QXXn=:7$ak;W$X2MA)'5LR-'m)pV'D/lQC@(QXm<*agiY2a@mS]?Y[K4Y^s;que:8&W!qBC*!8Q=sk`d?X1m8%u@ZRCLl_ +KrLD8%BlsJYh)SA:*TQ:.2cG6W\^-m?GVmp7IM4B#r0+kl@EieB@`o.iZfXcFZf8% +\cP+)g-3[-\9GdMH-CGXEdn*;63 +q1b+O/!#R6V5$C\V@9oo*nuH5>[T_c*nj++>rBI[VRG/NN(X@ZJ%m +4dN[h\,P'daV*_d_5M;9F,b(N@Tal`5t=Zn_EtML`"Mf:%ge@):WX\%qN[BbRcH-k +%)tO@r>P_pmSmW~> endstream endobj 12 0 obj [/Indexed/DeviceRGB 255 13 0 R] endobj 13 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> endstream endobj 5 0 obj <> endobj 14 0 obj [/View/Design] endobj 15 0 obj <>>> endobj 10 0 obj <> endobj 9 0 obj <> endobj 16 0 obj <> endobj 17 0 obj <>stream +%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 24.0 %%AI8_CreatorVersion: 24.2.1 %%For: (Martin Schilde) () %%Title: (icon.ai) %%CreationDate: 30.06.20 20:13 %%Canvassize: 16383 %%BoundingBox: 0 -1024 1024 0 %%HiResBoundingBox: 0 -1023.99999999999 1024 0 %%DocumentProcessColors: Cyan Magenta Yellow Black %AI5_FileFormat 14.0 %AI12_BuildNumber: 496 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%RGBProcessColor: 0.303952783346176 0.669295310974121 0.797335088253021 (TEST) %%+ 0 0 0 ([Passermarken]) %AI3_Cropmarks: 0 -1024 1024 0 %AI3_TemplateBox: 206.5 -273.5 206.5 -273.5 %AI3_TileBox: 232.5 -892 791.5 -109 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 6 %AI24_LargeCanvasScale: 1 %AI9_ColorModel: 1 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 1 %AI9_OpenToView: -382.195936561518 341.839054681202 0.525464021782669 1268 658 18 1 0 96 133 0 0 0 1 1 0 1 1 0 0 %AI5_OpenViewLayers: 7 %%PageOrigin:-194 -573 %AI7_GridSettings: 72 8 72 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 %AI9_Flatten: 1 %AI12_CMSettings: 00.MS %%EndComments endstream endobj 18 0 obj <>stream +%AI24_ZStandard_Data(µ/ýXÜÞƳ 5qB€Âzí·H«—ß^óP‹VÕ¢¶èïÉAMxJ)¥Ä™ŽÂV^†Úè€%l › o¶ò«¡“ÓQTöÒ)ägÓÑÁËÒ§åçãU’óQHRX ú ¬ö¾åM&}äm’F¬xŸ_‘Ûg¡:lWD‰*—>.åu ÍTúx.¡ôñ±Ûáj¾}$–†ðÀp$½bvÐe}l’dú¨ÞíÀ;é}|~r;\w*Ÿ-qHÒ7eÇÌÌxƒ–“ˆTwcÿö,zku½»Ð2ÇoîVë”Í‘ˆvz£f‘H:£L6*Îh¸Ã"ɘ#Ðâj,ªpHôÐàÈàaƒ*T ÌËI+j&ÙØÎ˜9µtƒ15¨ì0 ŢơQf¢f4 OÐaÂÀKŒá@b¡0¨ ;4rqc1µQv˜†¡hp°a‰KÜ‹—"c±X|ê­á`,Œ≆)qðŒB‘8õ5r‘ \ ÊhëŒHÈÖh ×h:4 ây#±ÌhÃA±H ~xV Ca {ZbYˆ,´²‘@P¦ƒŒ„V 944ܰàÂÃXÀÀˆä긣Ócì8ŽŸŒQ¬’1jŒqôK¢2›Œa—x·²s<º:»;¼¼â§¸Å5œÃ „…†‡ˆ‰G&P l@œl:)+-/1Ì'"©ÈE6¤CÎ{Ÿ^·ßñùñÄ_¼áDF¢†8"q‘@( DÂaL¢ '(Q K\™x‘H$‰E¢!áEV¢–Š+ EƒÂA1´¨…-n #_ ‰…b±X4,ÓÐ7PC5XÃ5`C6¼±‡:ØÎ …áaSSÙ)Pa óˆ„a*;Ì# c|Ær¨K$ cj*k0ì0HЇ†© ;˜ÊÓáÆ Å¢ÁáÌ(2¬hH4  ÏlÀ†k¸k¨j 7´a ‹†Åb¡X(FbX _ä·°E-háY8( …BP\‘ +T â¦(E)HA ++ª…C¢!±H$ˆÄ™00q KX¢• D“p@, +D@‘DÂ… 1‡7|qÅGüÏßíõºßs‡lÈE*2‘ˆ|fb^ZVR:›“Ø€ T ‰ˆ‡…„ÅA‡s¸†S\⇸¼»;£ŽÎ×›s°…-,a»¥™•‘ÙjÕP‹RT¢^/,«**Wkʤ ’ŽŒ""ÓƒÖEYÓ†YLçê`‡†…Š:íÈáaQD™Í,žaµ^¯VÔÖÁXÌbF±XLB1‰Äç“99‡sc ŽÙPÉ0ˆ#FÏ':g´Ù°"×;Ô¡ m¨C†"ñ¾ˆ"Z5ªäÖ¡A‘˜Ä ŒÏ1ˆyÚÜ\QÇ8€q!áÁQcF‰†T˜p! +PÁqA† +2ˆp!ǕȠB{ÁhP¡H˜ð@Aƒ + Tx 8@€ÁaÁ,8NáÃ6Ø †4ðaB2¨0á ÈAÈðP! TpXPáB„ ŽLÈ ‚2TXÀq!B…$Pá$s@\°ð‡Å&dðÀ† ¨à°ÃC†‡ + 0áá€@BTpXAÂC<#ƒ‡L¸`!ƒ„ Pat`áB*LР +€04¨0!C… $PÁ pÐA† 4°@Á T˜ ÁCâÁC† +l`A‘A…†  3P@p+%ÀaÒãᧉ +˜š‡É2D ÀÁ€@ @`Á…p`á‚¨ð ‚ 6¸ð€C l ‚9ðàa0h @G=dÎ#£ÌQ·ðS²ûw2Ça¯ˆm§!™ã‚D&p *LÈრ"l°¸Äã¸àAƒ*€x`Üë¸àƒ6èP˜ÐA‚»D 6¸`Áá¶ÄC"PH$°@ÂCŽ*3²ªÉÖŸÅ#²%’ÖðLi.ɼVµ½ëá/oi·+2ºÂŽM¡åeþNweGÄ1—]5Ÿ}›eÕ/üe¡ääôÅKtÎâsz”ndõ¬»ªÌ£xùòˆåÅfúg$Σu{Rk>dhÄéQw=Ó•3S­Œ4wOHBKlF仫˩ǡæÜt7g‡Ÿû–”á¹>ÕËÙ‡áí$)Ë©g±s·2‰ÍtYi¯I]í蘷ôHv4vG¯ʘ×Ï>–µkNÒ‹¦bî Ú`?,œüúŠêçI¼Ò­×£Ž«nêI¶’Ö=5g5“Åb½j˺×]ï²~¶…¦rî×ÿæ{þ*èö^…iækúp|¿le¬lû•FžßtŸ+ëõ³;ÝQŒz eÒ!ÕXÝý1™ªÊ’tíNUs¶¬O}Yij»]kÍ©»#»K³TmFxŸ²åõªg}»šlöj4M£šè¿¡:¡‘˜í¿»ã›mÚí´Ò}•­·còáCš²Þõ¼˜Ë,ikêúø*·ÿÉþ.C˜r ‡Uw«O¦jõ¸îfƒÒÊ«KºWkÈ­&žNx‰w¼Wð÷™ÌÒf²’€9ù÷ƈŒïün—2³ò–6yÏ·®7…RDfÖ©d›'6-+¿8)!ÿúPpz=Y^¹O:Â{>+wï<ݽîQ³|¶CêÐË*WEºª×žªºI¸““Hlߨ­úœ-µó'ª»6Rv¡'g +ÉN‘žd¼ÛY™=éBÂò­¦ÈðT›êæI6ùk¯'•ãÿÊÊj3ß©.É:j5û^ÊÄ;Ú)è^ ¥¤ZÅ;Ž õ^ØS)©|½"½w²W„vwÌ’˜ +á±8®NŒÈh°7yFv;“V{N]^9=ëq»o>»—Í$Q!¹|tºÎÙoš÷ʲœ{P+Ï2ÉåÁæÕ}åµXyßÓ6¹²1N{T™åÝÍc)õ°•<Øö9¯õȳÁ»RËMù¸:y&#¡h¡º2KW®íêÕ2i]{ÍŒøEOí$¡î§Ï¸ýåëé*ÉfÕÜû$º±—µÄÞ:¤¾NãD¼šºjìßu×ó–b6žLõ±<)ÛèiTdßNˆu3¦Ü¸bãš&­ŒVŸ4%býþ“Î`Öo„ÆHm}Œìd5RY— ùrXœbÏn÷ÂÒVí0Ñn7ÎÈ\w7gV"ßÑ­¼zšÓ½—)®"M-H­^]]]NÕ²gÎ YY9sÎnW +ai®ì7ƒrl&¦É~ŸKe©%ûtN,KI·½è–ËΩBYÙ›Ôß`k~J{Oê:HM;UQìZûø)w5û!¶e¯òI³9¿²=Ç*™í\aí¥Žô½Ñ´öž™Ð{õ#“Ük†÷×K6’/Kc§ßɽ±üÌI¬­Á›>‚îâsÖT‰>t'u¦[¾éçÝð'Þåê–:±^«¬+ Ú“YôýLIL²²<ãå ïîáœçÑ ›ò»‘qÍ)æáO ¯)éut¡¢¼££[ŸRóäc%Ϫ?ɤ~’}H©™¿o­ +¢Ù2ÝôqãJ«'ù¬áÝJ©¹JË܇W˜gƒõñ®¤8Iuö<•k'!ìåÌœkßoÓ’kñv?y–lǵ×=ïcK±k¶WÞ©%«š}ÐLûÖ‘Ý9&”M¬“9KHæ²ÓåH³Çþ² ¯ˆõÎóLÐúNU1ý¹{kKQÿ–s¤î•UñV³ä=yÒcÓ¯#(ÅÞ,’û¥Ü«ÆÄ' Ýé ½p¦¶¤”OÉÎ'Š]œ¦ÅnaÓ¿OÞ¤î;DƒG¬lïj-ùðw´Ÿ¼½±:“‹5×¥ÜÛbî¯ÐÄ\+üà åËf÷¾F'$ªº•Dw¤ºTïÜqÕ6%å´—†Ä®½ÙÁ_ÑØœˆv¼t&G6,”j í”i’×ùQ{V^({`™¤?ÞDªÝ§NŠX?˜(ùöB©è +NZá/{2Óã¨ê«wzq‹När’åÕ3‘dê‘h¬p$LJ3qèÈòüºÇ)3¾ñ[¿`{ä6öLŸØ{ù­ÎåÕvO‘<{˜¬Ìø/¯Ù²[‘¤Yã³x«²´=ð6fvº+‡=úÞïšIµÇk$ùõÀôdÞ,ïÕ[ælˆìŽI&"K³SJak“gÇËË Çt¡ë‘wN:ª–¿ÍÝv?D£ÝëîÄÉ.”ÛD„Dhc½“õ°²3á-{àx.íE˜BW¿Ô;¥Ž)u…G.Ñîzœï$ïlDÇÇTg½©üZÕ«”Éÿœ´ÞÒña3&fÇß«Ïýâ^~G;–Y·Ã2V{±cŸ* ¾GeŽZ6#‘&•uç½ü8>%t®Å›¯R&±ÖØà}†Í¬d{ iÄìè^ùûŒ‘¼ Ž^õ’x áÈH Ö¤l5«¢²Z냦eo]L9&Íɯª Ê{ô•rvw<»£…e®£¹]4dS®;ó‚öQ3ÙõI4Iûhå͸uDC1ùÌã–D­çÔbòAF'þQøšh2¹9xt½JÎFûaÍ_Õǽd}XŽ¥~ü5¾º±.®»£íëU7‚ãw¤yPÕLÖ[N±ñQxËï°ªUÖ¯l¤Æ‡éì«mf¤Ì¨>õ²Ë)óþnlЮr.o ++ýùǬÙ2iæ ,J%Pšñè>·ºWQIZ­Ý©{¡•¸zÐt¤’.Åy!"Ý‹IBÕç‰å3’Ï9<ã­WÉéQ¬¼1»¹Ö—׳d»Ó}‚ÔÃwo®=ðNt%é$ã-Mòé *þE;Ò~RwTv†èÙ:-Ks ‰$ïøý0éy$qù8”º#뮩Û'ÅÈÇK–³£ìSJ)QžX-#œ*òÑ3I:Štv%G>¨¨btÜåô$Iè1Ä’)V'õÑy{úà/SØ]{êHtrdc(ÓÃ|4Sï ’:Ù¤Ž[/O7´‘$—µJ PÕq¥ÑïBæ«Ò¤GÖ©ˆ^Çzö•9êåîÊb=è÷3=³%w>M£–›cãº,C2reÝ”Ïu,UÐr6¢zÙ7:“Þûo–±K¬ƒY3×Ï’ì¬õ¹IJiþ•Œœ¦NùÇÉãÐõ5 KÕó³3c'iêÔÛ/Ý©—§eÄ“ôÔ“\(隩㠒kxé~ʆ +óÈ=î²ÁSÒ§ïdV}jï&Ïðê&V5û}¯Ÿ“6I“ô´ûè²°h&K¬°%ÉC&F/¼£áIRéT»ÒIÚGÃ9,ÔC'I}Bç¤mH'+UâMVŽó—«ÌQ•ŠDôÁB¡s½ÇSÐbnOð0‘Üf¹óÕ¤rÓzöq…3gò¥4ÖHJUMçº']I {ÔÖ2•±-£ºV Õ™`Ç'—)h»lý*•;¿nÒô•ÑÙ}ç)”úp)eèîe§ú ú%DlÕ½l)SæÓõìæÊ-ÌRÝ}Øfw-G=dEht%¦”Žú´¥¾¢2Ö©œUÆÝú6EŸû³×2žæ°'ãÇȈEdüÔ|¥=2t¤á˜ÒT:L—”w7‰wYlï»J÷GW’4’ä ³$§ììVY¬£j2çÕWÅ™t/®#³‹·<¬ã÷ñà±|Á2iÙtÞ½H®|TýeFWßÑÌÙ±ËK¡ÚqUË“rÑŸ¼sÚ’J’Nšq‹¦ö1+IcKÒ‰y†—¾žçlkÖa²ÿw"DÉ,*|Ñœ\eRw éæg—ŒFK*JÕXXÿQyªã%kî4‡ÿu¨gŒ’-IÕqh4ƒVG±ú:ŠŠ°äÓ9–1CëMIN3ç>(å4³ËI)ÞÎyK!ú©jÊõª¢»ƒzj]먰oÑty9F–“­]’=?voZ%ÍæXäGŠÔºŽÑ˜Äî8:Ë—Gï„s2æ’Ö“Uóôà ˜4Ù{ÿJ[Ÿ¤‰Wõ½†HÊSþFæ§é&¾içyâcæ%¦øòJ¢´‹iÆ<;]åíc¿dG®ŽÛÑoǹä¼¥Ù”¤èÀM±V§¹NÇ—vì¤õÊê&/Mˆ0Í›U&i&®ƒÒ²Ü”4ŽÕ„èhÙæ%u¾5MÞUÊ|ë{Mßn”½ Ÿ#:ÑmêJùð{I½”óQšñœç 4âa/¯{?ª ˜{ªz¶âÝNŸJI^iÇ’"’ì4nÚ=‰bG½»sµ%ž^6ÙK™niºJ{Ú%uXRHI•VG–÷Ónð0í>‰#v'…Ç9+í^ÏŠQV—tR,Ý•Qï0Q™%eÖ’Ð>4 %ù²Juä{M^’Z¡£GèŽë ù>F$O²9ûn=Éëîd½•ÅR<æ>fˆ%Æãe¹397£”;‡^f¿ÉÊ¡åñšA²j]jþ‡Çßö|ïŸæh—×':/ååêh!%ÒM¢ÈWxÁB4A<1;ò*i¼#oŠÎŒ7b<ÈN®råܦv2aKy"˜.3©’lu±q«pzíÑsº#­™HG ÝÑ4VN ݈—H8¶»Žz»,ˆÚ¼ïñÀ›ã f}èõ¦]ë*‡GÙøg•3ª±>f—Ä›1ÖÓfè~Åú\–+ŸòÃzñH>#ƒÇõ9Xò)Uj?Xò9I<°Ìæêòn:cGgÖk$‡$ñ(B«÷œRÏ«|æÕíeõ$C±,–Õí•b=*ß´ìj'Y}h,wê:éòh}éÌ”7n¥%3ñV»ý&Å2ÕàØï¨boë.‹fîzm(÷£k²LŸf–ÉËý@›:â§Æõ:f-3® +þ ÊTÊÏÓž«²½.KVÞÜ$Ù)-ÅVøÎ Ì\¢a;˜'³²}l,™ÆI3~N&9“NÁ¬Í†Ìl§l +ÚpÍ6cΜ 'kF¼‘Qr®òÌ?áÙŽ'LªžUV5IȦeG“æ]xœwvÛÇZ›2;MÛ)™Â;{zLŠU¥C£[>:µíOŠŸ©«ì™ôŠwÍÍ>Ù1žQ¦X5Æi}«á ™%ÞMŽñ–5™ö×C¬qjK»ñ­´}ò¤ÒžJ(7s´'>ÍPhoe2Si?פîLþ#_h½O1Å–o ï«O¯Ìă×+âRšô(§ð8„w5Su&žÃžÔš½ºj‘x°w³3Ií4Fs²ËY¾Ä?:VÛy™CsoY(j–/É>ÖHÖ<^QêŽL$”Gefí1Û᧬Ö$¡ðà 8° €°Á„E  T˜ €¡Âƒ„ €°Á„Ř A‚Êg†¤\Dbt9‚ðÀpWɺÔY+F”ÂKå_‚7{ý—¶,‰u·'Qš$ŠÓ\#óº3¾n,9%<úÝ~š}ÎôH„'ÇS––äÕô‘[IÖ\ªQ¬Ç« û;r’ Zeð(„is9”¦Pfqä2¥™wãLó‘e,«/ô‰¬KX²#‰Õ±vy3x×džèrYóLž&F˲3K°«»ÏÕðèT¾A»ó^cý¹?{ÍL†J˜èòÌïFc‰v¬S®iO¬“€–7¿g 1ïg=!ã­&MÎ2Ó÷ZÚï¯Ô º“ˆHÆ"»K¨©jJmitTv’¼!ªç[~Ñþ£Ë›ÓÙ¿OXi{J¸• ™®²ZGÓu&§äq‘ᔹ²îÃJ™ï¬æ¯ +eU‰% My¿ÕXYùÖAC“þ Ä›#–ܳ|I6™sh‚XvÌÌú¤éšx>?Ë“Ç;׳œD†è©ŸZÄCûÈò‡×ÊJ²ãU]/åZ•õÄ2Ó³lIU6‚™u55óêÔÍ«c:›W§˜fóêøŽæ8èI¹÷esWO“?Eû‹¯<±yíekö«Éúñ–é»_D¡ãkjt¡ÓVŽK5fÍc†Î£ÈidŸºçÙ/©G–ty#£œ<#£4Ìÿ¨ +óÒùÈv=%“Ñ—-«ÊÞ&âåÙ¯fÞÛß=6÷ú±>'iVô2Õ^›þ_x›ûkvHEwàP팮îJŸ"K;ßjW>Ùýè÷{­;¬†è6gÓ¹Ýq2ÒçjHyÜÕœœÕ{•5gÌiÎoÌ‘—s>tT¤6{Üg›‹óD)YÒ껬i<¼ÔOÛˆi³/ ?füÔŸJ#›¦ƒ·¦+Ï(¦#¥ô«Oeƒg…6òœÄÒÜ\én,¦ë3˰…4YcÕ¼~ä|9:~ô!GK*’Õ5ͦ&Þ¥ƒî\|Û¤Ãj4¿×E:£ ÝÙÜúñÜ=mLŠúß®ìN-Užíª®†|Jªº)D¢{ÕÉúîj +Úqyi­ÒxˆÎŽ¢Ñ}WvÔ¦ftø^™w{XYäÖ%ÙHz49¾å ½Ù[?<<iÅÞ®2³·¤ãÖk¡IÙùõ½‡G{"¢æÓt!æÏ4h:²ä’tÞräˆi¯»/…Eû(L—ɤ‰Óe“3T“$¦²Ice²Ê&¥ŠÎŒ#v¢ÏëMóNhÙÃŽóNœ„–×M’æÄ +íx=òèÄ8sv¤%âœYÉX•!Àñ'U²Êü–ën´I]—/Br]UŽëlrÎ/çh¤|!™ØGs¾—èGáä½äæ¾+©*žê¦:T»ÌÞH(Ĩ>J;£ž¥¹2kFè@ºÞ®¨B‡èv™G§ïJ&D +UVå=,sH|tôÐ&«Fð7ïXw9·Ìì°2w$Z'厶)vk”½¥â¨ò°ƒE©Ä"¦UZñSƒ6x¾ü½ýÔõŒÐc´þ +ódW۫ʾ+ºãtïhšþZO|ª&i¤tS¬úZ­öZ/¬Jéª×*U‹u:‰RhŠ4eTB®ÖµŠIIeS|R Yïô¹DÉ©ŸcLënW&&Úýœòæ2ÑöºJVò¹+zVLj¦®SÓæIlì¤O’I• -ñ­+*UÈʦFôæí²4ž]|®'¥ø\wÏiôšÆn%u*ü kŠ^ö”¹Þ76YeÒ{'tç"É<2é-šó¼ÐèyDRõcër¨·B±W(ý:ŽÅ7h„•>eœããIØK–ÅÒÉ3™úȹý#×A5ä¬)†‚c;æÐËêu¡ý>Ju—ð5®ÑIGË}Ô‹­¯•d–ÓaHE9¶:è¯"bqêiû…•…SUœ:‘IN•‘­NŠÆ5$“"Ûn0ïZ[Þ´V¨êD’#²9;ŒScAš¹dŽù\Ý·H­¶Dad+CGýTõ«ÓÌMaùY7UR%sLR»­¥FÄjÕqŽBת[v¤¶ØYјfS)—ykoBi­¤*Áž žE«R5&šT}ú¨q‘MfÐ%tV+"Õäëý‹$ÕÓáË´¬³;zI¾F§»5òQDB?<‡­Ý„:ìx%D¡ã.³sO8ö92“ëaEy2±ã‡He29sTó¬L:gŸiY×â Ýˆ.?ÃAìÔ/582Ø;Ð.u/ñ\<¨Ó2;æ˜Öf¦”³’GtTë&GÎç¶æê‘TZ]e?{ ºeÖVç?cçŽzaÑYVC[òŽ£”6Ökè réõº:™ù• +ÇdvÕJ8¼ûÍÅ«Úü®è¨nw”>´´o4¹;®Z8•sV·É:¨¶YÆè©liCD—Ut]|ÓPhšDÕ)+º-¢ÏÑ„Ž¬xêOÜ2ʼÖÝŠN{ÐF¡öR\j³8XGWšO8té+#¼ÝT*}#Ωœ(-<ó|ŒChŒÓáXZY§£6‹gf<挌D¯»ÚH¦³|‹.Z•Ë—ôKÿfNF˜7»Â«ôаÊè½Ýó «’ŒŠiFO1ûzq.f>ŒRÌLF¥£Úø­"½eÄS+W.œK+Ù-e®YšÉ®ÈGfÂ3lÒ´z2j¶wE7ª“´I¡EÿŠÒL?Ž^—Gv`åx`Oó¦õ§£+Éy“T†GzæÝݤGò0Ų^»5¡·_=)9ß‚&S½ì4}JÿËPSÍ]竘OyuU™/«›Mx”Ù Õ힘í:ªn¦’ñ¼¦‹ýH¬êi¬ý¬J´ªŽñ¦U²ÊC£<šøbsê0ñÎÚÿðP¦æœÂ›$œ±zaž`{…wfÝ!ÕmæÄ6ÍÞt¨Ž¾½¶µ¤¼©¹â¡›{Jþ(¼¹ä«Âç;þó}Õ`á՜ЎšÆ²’«µÐsh.÷Ö1ü]]rîò¶Î¯ö–ñƒWûsìJÒº:ɧ®†TØûhê¬l;éÿL¹ÞKþ»K†XS¬ÎU©ø¼[è3.RÍ­‡ƒ¯ ÅŒÌ7~~)Ö,¡™ÁÁ“ówùbñ‡–dY4<õU9øNËøœ,Õ1æQg0ÝÎíΔCxw‡-»WæI‰§&¨ä®ëDºLPc +!¥ˆHã€0@4 …ÂQñ˜Z~€µ”B^4G‚L1ˆ!d°"’ä‚%¿âÞÀJÃVaªžLÙEXñÖ¢çªD–¹o9Õl´Ñµ)Ïhpù°[jEŠÁ|äÞ/Ô‚ÚmtÖ‘¬ÌÎB#’ðTîEËŽcy®½-DÙÈ5\!Tz¦„Hé§•ÒHy< aJR2¨‰Õb(œ–( ˜Cpú(±>_ÀeÞ:™D•ÓC‰ö8IÞôµUv·w§,0Æ ?o™–Œ$×woîÛI"͆6  Ä•iCø ‘ØIʸ Ív D]Š¡ö7áaº.øMùñ™e¿ƒ9,ûÕ°ÊhâB}ÕX†„^…/Çà/ûøÿb7 éÁ,¶7'šùÛ`“¡pv!VF×<2ÕNHv&vBÊñÎ0Õ*S³ˆ›º)Ú¦ƒè2()·š—Åk”¨q5ùæ2ŽuKIkÜ9u:¶ð•Õ”élMÎâ+ £,.—.ª¿‘:¿ êÒD"Ô¢Û(ëÌ*ñl?6§$‡ùŠm'd¾µP¶kÕ EHÀVFqPDÞÁÏ/%ÜŠ“[]Ö@¬jN¦–­ *©fºœTÛ@] ÓºŸ7Ÿò¨2˜½bÊ`?NÚ‚q$ûŲõåMM1L.|8EXÖ¿G Í®D l506~çY(»SÚ +ð¾B…˜>â½ç…ýGðDÐ6Wdó;Áé,Ñ!¨± ú”“dYš6ò}ä1'­WKBÖ€ý Ûó?#¾[W ^**.É(P¯Ï ¡N^êÀAb¹ÓE©Ùm +)Óeþ²5µÖR[¾Ç|t4xX½6•Píî-]¦e!êçaŸ£Š%ZøT_õúö—`·æï¼±À4Tƒt%hÓœÙÓGøM >Ca9ùÐ %†å©ÞGÑ÷»ÂœObÇè‚P€Óú®Ízú5Vœ·¹vo]‹©Ó1µ;˜^ûõ6xç +‚?H&˜›¿?н$QgÔð‚ê$£D%^ÌØOÔÌ#¬G!Bì¸û7ŸŸ˜¤ÏñT Êòå T—ÁÂÈpC24ÈºŠ Ö ²wâVY19™V7P¥±O¡B!¸Cß9Wccç¥(¤ñbo5¶g¼¢I|GÆ69ªýÈÜܲ ?·”ËØL.”P‹AV[ù] +3 HɱöÚüà&ÁNt¯K~KRŽ…ÙT¡ÏwïQùG®å±›¿k¢Î¿rI +u 3Κ)™b¾Þ¯À±ºÅøÐfÑbÒõobˆC½ºôdc–´ ´ bÃ&ÚÒTÖ‹?¤/NñŒJJú=ò x£s¬Ù]úåµ0†ÇC…ÈGÅ Hýo³”ÅzZ“I”®ø)£fIÂCú3AIÈAÔb 2z×±å4 BÕÿëüÿÓ’õmt™NªH',ÍIʉzB!òøD?fJÀH‰Ô *až¦ø-‰&|žVw/ƒîàYå àîq?ù—¿‚€vâ V „ý¡SzL±óg£§æš¯#y["Âp¹óp²ÎëS¾8>}Άï’þ–˜ÉO. @’GkB£þ?æÿ8’Õp +n,{> jG€F˜~Z¶(µœqD'Æ—Hô$-³ïŸ·T2^¯';þ¡øúƒ¹ ~6#1Ljð³ˆPŠ{ü¹ÖGeš+M`,¹ŒÛÀ? ´†1ωMÉhàí¹¯²~’ãçS~¯Gë +âT!:Æ®3‡%%õLö˜ˆ÷Bi:ç|ÃÛ.γEüp‹'3 •L~/á \n/$< +2²–É{ò©½1ÿ4³éQL¢{úÈ^͉1ªG‚6QØB0sžmÈ£et¤B)*‡S¯ Ò&±‰—qŠ…"‚èÜp÷nà•,ï²Qû¢$± +<?pÐü´6-è%ä W¢'nûÑ"ªª}­†InKˆÁ‹6E¹0ÙuÃð·k–ññ˜ &¦]÷ˆ]îÜR¡Aaì!íWõ‡Ó¬ð!“Xµì{RÇï+Ø*~B¨8õ­#¶ò¬Dõ4ØkÒ›ha"²ò{QÚÁ0 ÎØG¤_5íŒ4+2ÞH*ШåÐyç}c};q†¾È¤h›\ç€Ñc’˜»cñ‚Çæ%†ÍBBBÉ+$¶åÒÙwѯÄ/ßJ Óxoñ¬–¯Oj×€ÿ¼¡Wç%R€f¨iÏFMÓ¸h! šªªãXøîjJÉC¬¥:oïÑ|©å¡ÎCÅ"­äŒœäÙ¯a`èú,¤õcàw€S‘ Kƒ$ * ú–2)Eeñ0(LºÀ6hûžù)ekD’¸d—€Âû6¡|ž›K¤8áü¹=ù°ª'ßܲ@Îiè· 487[tuùÅJ!Ã~ýO^¡&™z?¼' £KÚRJѼ–†9~oƒÓ­ðìÌ~Œ¾o²m¦Â†ã`¥ŽƒŸ`H¶«þM«Z*p&äB:f'Ç[2.êX+c°f4/abèz©B¡*žÀ‰dâSÅmRþ@èŽcÅ5¿+DóŠ9­Þ µÏñÞiAJA»}t<>´ëidi;È9«/Ψ-µ«º´Î7Û÷t¢ÚT}–Jˆ>[ 6–‰Tr­`ùÅÚö¢1oAÙØÝ\K­/šhøÓ9@'&d„ê|2ÒõŠ̑G‘èOåXŠCsÜnUÚÀ1ìõ2ر,(ÄAÍ@Ô=jðŠ ùÖæ[3¿€‡”$]O¬#õò…ËÍ…ÊЈfZ5WÊ}‚W˜½®Nz…>ÖøäMábñWu„Wuåg´6~àÓl^qÅÙ™¾kTê(8ÀeÕË8E£\ÀÊD’L-ìjƒ[Q߇hG“¬¼š¶áIÙïBÑY>•ˆÒšüœ»%kxTóÈAÞÐÐDAÒÊõ ·rK{]0%܆ËϨXkrù®3ÿãŸÔYgm΢lÿ¼€ðøBõ9P¨Ÿ÷ÕE3䕇ÆDü"1‚¼bgÐOˆ]Lè/œ3Ò¤ãµM¢3Oò@sÒƒ)ó"J²îæœI]ŒÌžÆ>_›ØVzèDbãlÝ0â\zrqGƒY¢IUl"`)))0 It0ÕÎs¾ZŒ| àÈ­_.¶ZÄ x½ÆÙá*^šyx;bÂ2a¢ñ=â£×W¹Ã‘Ó†d™X$9ˆ¡º•›yšÏõ.O.„ìOð‘õœ¿œU„šp|£¿$©Ë. +ÎÂ?(˜ìñÊÖ&bóÛQR‚{¬+øC åM¤°„¾¶IJas!¢áãnÅqÇ]Kr*Pò +Ž/lAÉ}ô,šÐ[6µ :’dïFzžüÒS*\r ¦ tøYÔ¨+W¡À Ïá ÅE[DÜa$ÌÃñ-™`›â$UÙÌÏHj×á·­( +dRæÀÂ-3KÜ7m9\iÍÐ7ÿM6†8«›NÇ}–-µy6 +ôÚÓ²dd¡£„#˜GRËXC k8=<°9¦ +ç…}!pQß4ÉéÙÉØa¼^öp&­`ƒvâLíÚ‹t/­"ªD­¼bfÈ´šçv޼ E² ÚvÎ*@ÿ¼Ü`Äè¦ñUaÍx!r>\€5ÓxÆïp×Ìäˆõ„•z/ÒN™e²±¡Œ À`gd‚äA¾~‰=ÛPEK]qZÌÚ^&/˜Ò,eÖ‚2L²ÖC2? cg‡ðC+y‰Kî*1 Â~òƒG—|ú0úƒ"$â‹çÿŽ•±tÚnv„Ûà„þwÜ{Ã$”WŒã€„´Ác´–÷ÜíÊޯݢ,VUrA‘¯“ˆ³ê¹Áˆæ4$RZ@ÚU!å…üU¸¼}Ú½5VIH˜ÊdÈÿ%¾Ì÷xÿT×…|ÆÄŽ©íŒ¡yòø³ãàÃ’x±Âüð‚w\6Ú¾ž„kzã@`þ¾»{Ô H+×Ge‡Q>PO@xº_v JñhÃTcÏ•qjÝ +†õ¨êhÈH‡DÅŽö3--CË\Ò4Õòhp(Ì@¦a#î ÃîR}—ÅÃeô#!&Z©XŒoòNVM¨w||ü3Ÿ‚j¬ø o‡P6økb†Nz="€Ùþ{Ìs?´°½~eæÚ˜Ý˜(à–ëÀÁ#üÒåwãH“6¼YQçÛÂC)7¸ú7>ɹ‰Ç·¾Èi„È· šsLT‡R‰é¶.^ ûƒi¾sClŸiKîß°‚.aà¡—\à e¬åUUpàl6&>˜v £æ;~ ®Áƒ‚Êqœ‰[ÓÊs`ê ŽøE™á%d^öÄîMÎBZ>›y.àÁ §Ú òl“  +;MÕ8±®ðæðsÓSÙJ[²¶2aSš²<œ…„ÓE+žÇºIM'>s0oŒBÄ=-ž9+óNÀ£b—VgÒD˜æ! + ›iq˜»—jb-ﮦ2€N½YA,@§º ú ÑA†2†)îCØ sáGZû¥#Pp;|ºuox2éžSbü:”öûDZ6ËUмßgÁÞÀû´º±´UklT-ÆÞ½k ’$Ú£–§wùî&ò!P¶NŽªpÕÉÀk¼‡ªT·/59´<±yØ Ò™–ZÇ©jF'äÓðLp’˜M]›ghÑ cÙ5¦xùÒãÉI­‹ÛàúØÌPÜw8°à+ð’QW%dL¯‹̱u­ÿÔ¦öø½Âû3Ô²AÙú¢É6L…Àµ L‡§-u¤ú!µ•–Ÿï a>f£éP|œ­‚MW”f:ŸÀz÷dŽvDø!êFÖ1Șñx€2`wŸÍ3î™Òh\QËèÊê:0Ö=¡ÜŠù‚»2ÚZÂx=;@Ц׻úͪ^[øbÓ‘¢} µ…+ƒD¸y(áúÊø¤˜¿Bïô|©«¸]Q„žz Š ¢ç×MîÛ¿,Ù©èWj^Qt«Õ¶NðˆxäíÊîM'GPÝ;œ®Jƒ '1WòªŠÑœ½Ö +á‡hŒ—`(úC³½fÕo;À‰Àª§5ñt—–ÍW‘:)7ÔmŠîýÍ­î%á³ÿ¸¸«¯$ +,ý{w/A*ëq {ßEmAª´5‰ºB»³dN2Ùi1[©}ŠÎ€Ñd§c© ïæv'ÑC}ãh°† ‘æ’•|Ì7.ÚB—U—ö8o댛àØúWQ–SïÓPJ@ZiöGÏÏu–òžêópkr®u7WÂMlv0äïvDP\A—*¹èœ_øá0‘@y¦V.>£Ç®HIá5‹ÿ7ˆ)'kÑ)nð=¥Ú>{}9@ë¨>#J]¯‘îÑ@îõ§ýF‹û»Ž=„%c›®B6ÆøÙA±Ax*˜’ùswjæ«øxÛy>ƒ†Þ8^Y_0@o“ÖÈÖ ¨„Ùb´ŽJ Ÿé?i÷}`®êZpß ¡ÝŽ1Pš‚©0Ó˜-¤@•KØOUãž)_FÈ5É ¹ÑV%­GôvM6ûËæ’¨m'Aý?¦m ɱc}Þ&¦}€b«ß*›Ý¦e•jFøæ÷l¾lôܺ2Ãë°âl|äÔ²fóY{õ>T'ÄäÌü™4àãrN©Î%up¹d@­dñ~«:v¥ä‚Êû†äé;*, ©¨§Ýð=S¹êÓ£ïÊvºäSèªJ>ˆÔ²³@­­°he ógrLîi¹ËÅð¼â­ŸHÆeÇÆVAS¸­ûêc»#hMh‘Gà!ô!ÙoQvÅÛ±‚z,‹{&ÑT4p#Xš2sÞÙxlöæ"dGÂè@aל¨ +Ó^\rö=¾ß>[÷`Œæº[9ø<ÔZ“EÅ7üKYQJ ‹P5ôzWYfÊÆÕlau1xMŠ/XKYUÞ”“:€"ïƒ5`œGš0iôè|QÈ“]a™ï1å‰Z¼$·ŽvM0”ˆ¤’ី·˜Oâ îQƒ‘³%f¤ A­^ÁôÒLo6æ¬Ðç´mï!$‰ºFòH-¨[Qž#m jC7.Π<€ 3ÚˆÞ™¿P áB¢×ùC7¹d…e\ÿÉ’ÇݼC€V”f9¤&‡‘8¬7f¼ÐƒtÆ{hðÚé²èSªiÄ,I±ši©ä˵zfS:`ì'ù²ô±˜É¤ÓãÙ'%LbÉûÄž¬€-Ã?¶"(:óÜa‰ÐjWq°˜Æâ‘ù¸÷W#ž{™(âÊ|®îK«ò¾t_9æ³âIUµhð´©$Cgg¹$OY}z:iáßs@¼",R¬{‘Ù° +pjó*šXØO1Ì#g…UY¾.Ä{J(å@•W\[Ê!}?òvYÙÓŸˆD"W£2ÔrhÀAv€”åо‹´D‚ÖSöMnº‡Õ·œ¢ºOÐØ6‰´\%‹ULU±S¬úºVËu¡™‡¸oÑú ·4±"L戈î +õ ƒô,ZF1m òjT|Î#Î’î¨V¢Õì/Öîs£j@ËÐt#(•鼅 È=áÂzÏd¡d­±×5†>Ù(Á¿î-Íåò”=™l•®·‘œÁþybH„Ðb­cæú–¾Nìð$E ne£ŽÒΛ>­8ⶇŽX7鈑éW óéÜŽAã€!„"Ù}ЬÿìÚ`­‰V€ŸßÀ2ú¢y;“ä'§×²ñB׋òUúŒéµXq[¤ÅRןwÖ~>™O|3st  €5h³Oºä+"›ÖƒWògØÂKŠÉäT×Ïh‚ØàM‘R¦Ý‚Ç )gùïþLª™oïk AMuZ+6ßEŒ­ÊÔY°ã쬃¸q|Ë×»lp§,‹…oLzx0~'N+&åË [úÉÜŒÞÆÜž –Ç€ó +&ìøÑ–8”, +‚M0ÉŠô‹:£~ä莅^%Š, cpÁå¸Êu$^ËÂLŽ&“¯¦:˜º@é©K÷×˸—¶1nê9óG”¹²ÇÔ{å–© Clh$fÅPÕÍNBU<Œ(WS𧌩OhR8‘üM$)ˆ`‘¨`wïÇí}3+Ýäê‡ïî¼ Ås“¾Xæ®\pl¾=˜îkO·OæÌ‹œ¹Ù¼þ5›çPÃxŒlåiù?ÙëôêÔ*-µ;D¥Ÿe¼HªË˜@¶Êö Äæø»ˆÈÔ5LsõcfQæÉÙŽmK¶j”6"qÑ®jš†h‚7t΄Dpt‚!Æ}HÀ¾ìˆ#r«õc‘³3 ¦$Ǹ²Ö–bˆ(Áà± +1Êýß›ú•”]7žŸó_k˜ Àå¨}1ôGQ©U‰B"?Hûg"CŽŒšë|§Ä&IUüa¶Gp¤Ã bõÃsÂHU­NJ¤„ z$rž´˜°ó´2?ÙeùaNòªÇ7“ÂóÖ°4UžÜ zuüHäx1ã'ÂP[“áÀ­ÁQ "s€cÊù’éä}c¨C¶>ð¥âµ—<9áL¥49!WÜHÿ´ÁÎÈcʾÞSiŠâ %Õ*¯ÊG%ofy¤ 6ç*¢Húæ³.g>W'¤m¥Rã5£–r–̆rî Ç•4íì[ï†ìtŒgUìG³_yøÙ`‰Zñ—ov9E°ÃRÈÔ•ô»alÚb¾ÂÇzóá{”EŠrxÌ⬳´f¿˜Þ-…ó°¤8ZZ¬[TKË] ÛùÒl¹ Ý’F”Èõ[šþÒƒ;Â`ûBoKå8ÒEš‹®à°K_,ø GÇEyÿ$ÝUÌôO5C €XHz\“õÿ ÔV¸ê1Ì¢Œ1ÌZV0û¥¹x"–Æ•cqØ:ÏdîÈK ù=ŠC0Šr±„0«œ¹ÅöÛbÄá#R£†š+ƒsØï•©Ô~»èKPÑW®2޾,+“·â0Š$½µÌìòez9f`Ò'|f E‹±™Ùºº:Ã)gpžIjÎ ð3Eá‚Æ1‡fhj"wÑ( + «”Æ-ÙXœLó‘ .®N3Ôì #þ×ÔÌLT°jrýjè´b@fÝòú[3i‚ ?PrÃCVÐfœVÈ2ô¸Ã«ÄäfÀ‹z|µ¤’ƒZê‡Ô}~¿8=YN@.x5ÞGÙLÏ-áI‹¯å¾Å*á” eòëÁuýíS¦ØpšÄ[z ’wßò»+ð —€g¸MjØŠT1Qš÷[•G‹Ü®š.‰ƒj*X +3¨z7"¼ž…GÇS†HKíçD“3É )œÏ,PÂß6„Å㵓i ƘΠ+Òdö?Ñítˆç¥Åìé][¦’´ÈáD‚ÝÙGò`÷\ÚÒz‚E‹‹ 1ØÊZaÖñ¦ëÁê¿ú¨kãððè‘^Т”ÚÉnE^Øà#“µÒ‘¢4ó¡;zÇ]Á^Xð=£M¥Æ¨hÑYöQDLÅ‚w¢²Wk?gO1ëx#{FFýbú9ê<ë0àÎßÎéÈ-ÖtQþY–—8›'ÄuKh›Ü5ep<"yb:—©›¥Ý@QÆBg:—m è¶MjnÞ +¯D¿¢Øæã ÐfiW:ò\Êê p¨ñ3¿q;dÁ¬o ¥cA­Ø%C-#˜dâäÏ#?ó<âüšI÷fâTºzö#‰ŸEHö?,w²/%å±ÓÑþ?†ÂÂU¸ Ÿ€Z~ p`” Ÿ”àl€Ý¯ÑöƒMTÁvŠ2XàèqÈ;@åˌON„|¬,~Ûª*¤…ô}¾È¼Kf9/"­ŒåtC¥Õ ©ùê:  +IÕˆÔ´r24øå~œ™ÒƪU¦Ë‘Yc¢&LHÞ‡j¤•k9K¨H…uò{¢ ¡ +];w­ê7‚Ï$õ>a.%˜è¯f ‡†_¡îãV´:D±ªC K1A£óñwtD¿ú‡ +yE'¸ŠÊ@ÉAGö±Ðj¬NºÆ¨Ê¥²…0Ÿ’ á+J¥°pm£Æù‘A‘i}Ĩ`›1úÎ5€T]—ÚYÎÔ°Z¶ÙÐQøŒ-Ð`+J×^ kÀ> “Õæ8G+viÿ‚Q§Gõ’Íø`¨ÏfY‡Ÿ“™¼à›ƒã¶’Ï“‚x?QÐ"ºc@Èëm Õ÷)ŸFá{¥õ€Á.Blðs2û,‰e/Öv“èH@É1#}!ØzEBä8 Û#}Œ Ì@]É`Žpž Š ÁÐÃ;L$”—–,–uÀÑÑšXÃÑ ItÙfè ‰S|èäC¯`ê-u@K¹Ð à³ §TˆŸxódÈ®†P YÚTn¡yçþw…¶?—B_:'4q“UЉrÇ ³  õ¼ƒø7N¼AStMf¶‰pÚ)¾;TÐûp„y *6HÀ‚ ³J‚B’pþ•j%Ì–p“Lؘ€.nv¨¬@¥>PG‚ª€H'üßÎx\x?âLKÁfÚ„y¢PÁÏg;y|ÌŸ ¿ýe?}í|:(ð(ó‰‚cÁGpýòž6€‚ +¸‡ÜôÙóYæ>Og~UÏ~¦§û=nî„ +Çœ› y£háüE+!㣔Û7Õ=ˆTe>ž%74¸ +TÆáA\šPvSŠ¿Ž€az˜÷0Q€Ô7Ï”02ÇP¢sÎߤ‘ Y³ƒaÊв£Ã/ ;Œ [Ëfü. Ý`kÃÞuJç ÑôŒ9´1C×ùBhj±·à@W×a¦ô8% žüN*z̧ӑjýâ ]ž÷EãOüHõµhjæÉÔ„]ç|„6ıwílƒ·°A£Ñ' +v²\ˆsÎ ëœPrŸz¶¤ßÀ’†ËNK$¢†žxaš§Ì ƒ/–÷¥?®ƒ´Žô¢Ø|uÀªm4§¦Î•Û`€Îw:7LñöÒ*l‘¦N¸x$廢œŽ8µóNÇw4âà%©Nç5%@æN§våßKv:$u‰®QìtÀŨËÓ6V`5iù7Ü­Zî³M +“nPôô:— äòÇÌ*`e?.³™"1¾U|QZ˜dÐô´Ê¤PæHÑ(4ñKcDJŜшš$ßwÄ*rĬõõšŠà 1‡¼I¥lxŸøÝ¸Õ¦«Ì1ãÁ\ÆüH壊ÃÊA¯“VÓ}&§ùâÉ8µÅ] là°–}äõèøý]|‰÷Zè«ß>j»ZuæiW{2‹œÉÎ@xº[W?MCó,J¯•ƒ7Âï:¥ Ì]Ó–6‡(–R ‚qÏ? ò\ºÜÙG|MÉöúY®¸õR·ìð`3¸^ó½i¢úÛO\[uÖ°¶JµQ¬âЂ°R&Èv4ÿ þ±­cOFOµ2ÄÚ9ÙC`M¥e€ÎsÔ”ýæP£g `™ÉÍçÙ*s•Ñï)çûŠ1Ô[HÖ-0Bº`å@÷ÃÙ' ³ÛæŽ^ áb¦¢îœ‘TÈúâ€ã-Yk"ÿsÆM˜È²Ú&ÈéÄËv}X¡ñ.§*éÀW­@ù—k ¬nœþLÀg¨˜`k5KlÿÒmü +‰ú™†793ÝÌâ‡ÏɧPD ½§ÔæRªËg?HHúMñ«Èv>Ž Ñ‹YvÁúdJ§Ã,ÁÉ›ÌWÜПÛeqê¯"&^• ­ ¼{BÝÿRÆÀŠÍ; wšÁ«õ«×Ô—Ïu¾­!³{a·4š.VãÕ¦U\Ю£‚µÖ=ä8 +Ä8|)ƒí=~BÇaž«ê‘Ã`.¹àõÉdSrò—ârX™=¡÷QGÏ:2 êÓ¡­”úކ˜À.¦¸&2ÁèFÕjt¶J†‘Jò:±ÒþQMiºSÂ`Ê~­ñÏàVp;H]B= &êk‹ö2Ýì +˜²þd+çÕ`"3;¼–Ê“tøª›Ðj‹ + ¨×²³+ާí9œ ;Znzcóâ²AŽê®‡¸¨¬Åê6PÜʽìi·#®#Éjl‰¨þŒ ¿ê'™ÁÒûÅÜŸáf[fí(ª)X&4‰pœzcY‰ýoUÓ‹Kfº+¦ïj?L»²4xzÞ¡oPÍ1§ ¶úlzi¡kmð‹ë©÷¨ò€1(1½œ{ñÃ4ÔbÏÐf…ñóòKLE *q‹?:@w'¨?k@pì5]6"ƒ­èKCùV<Át&‹†¿"ÂP‹ÿQ„>Ï:—P΃{©rŽ‘@kl¢:ÙŒ$î<ØÛÜQŽómÊ W0¾(@ä|e#pN¥¬ïŠÿÍ©øä䜫USÀÆã·õ0lxÿíi.AQö’ŒuÝ»(‹zBã;uÞ‹ŸOyÓíÙ`%Z6¥x p3 +ci{?½;³*އ:—gV&òµq¼·õ™ã•Èú8çi™²Z²!Â#¼& ï3h^zonF?7~¾3óiÕÒ•8á]\¿Äjk¸çî!§Cæáí¦WxCâø,Ì5“,Ë>x®“Ò<[ +õUdÿVp©¤„§˜‰‘stáÎ4O¤„.æòG£_E!$bq‚úÝ*¨Äîšz÷÷‘‰Oi>HìBWIšÏM³=©¡grËY `¾ÃËóSßdúõÌ ¡ +­œ8ÂY×­s¨ìÊ‹ɴy1]|*ˆäþýºj«±&vßÕ–ªOûÝò¼öaÚ…eio„Å!«yà2Ü÷.Ù7» +UØ)Û\»Ï_ƒ¦œ…µKUŬú’ ±QÞx>…îi†wÀû$façã©BÖâ¬U·k^Ð…’ +#OÞå;Èl'¨T4J»K ¾¢–93œ‰ñunö-$ð±f\±Q(¦¨XÔqæSÖÒôR»¤ÃŠô®ð.Ñ”ÇêŽÐU1JÄ2HTÓÓ'/"i=moÖ¢¦”¤âI +ýg^ÙÉrèäÀØ&ËzœVÓÎ ¯Þ49äãÑ&˜qè°š7“1𦵠íc¢8„³·ûþÕ «TàSBŠ Yé2¹r +²KXøã/*¿È)FXx¨ÂõŸ@Õ¸è­ë[†ßßò¯ø­Ñc¯šHñõ9žé­vÄ'MBo&@Êîà¤: ÚAÐŒé• †h)¿EKÇ€ÁRn^ÙžÄ^¦ï¯'’ÃØ)­©É ^6tÆaî1›…ii'ýè˜we¹DJ¤8•áô´jI]þX–][Û•Ü­:YŠDG>é +¹µØ~H`鶤ã>ÙkŸ,€å":Û× 3Ì •Eº¸j&´øplZH_Õ85 vkùˈvÖuÇÿh ¦Zñ±zÅ@f`*z£®*pøÊ\‹yG§-p?íúµñ(ùgóFípAkÃÜåźZ )läB +ªÖòRN„tZ‹‡/¯¨FZ‹^Æöض>[u‹ãüö“Ö·Äpå†Èx~Ü•17š¿Œ­Ð•SÝÜ,Kÿ‡.n×å¢B‘Ù¿C· ´tŸ¡ë×ò¢lÐõȺ¼˜ŒUÜÓG‹®A©®T +€³\´‹ëT„švSÚ¤ØoÑ®Nönº÷ñ`z×'ðÎîÚlu‚.c™vßMh›Çž®.ü"W—Žé90×þ×¾iua¨þ_Ñ5œ²ºÛ t7Wà Ôa,oF!‹´]:ÁI͵ã…zc-±‹^‚ϤÒ›³W$u—›æ¡<ϽW®Ù,džžÝgÑl3×7#FºÚ}Cü94¼£Øù¬Ì•£vl‰w]/Q‡ygNÎ"VØÑH5Ä3nâÓ2‡ÎÜ@Æî'H÷[3â8½çÛ,\¤JPÙHI'R&+NlDöÆÛ(fAÌ^«žni#j‘Í‘ièu!XP²±†|ï ø[ò15eG’÷ .‘jÕ¯7ˆqð‹3]9ÿ‘iqÔô’{áÏûþ=µù³q#Wj_jé­†o÷Í*0?ƒÃjÊOYý ü/_ØRÿ± ^F'…(‘Sy7Ä×–üâ=ŠñÒM_4Ý1-¹ åS`@8²YJ [ÌQ©ß>øÄÓK)æÓKJ†¾Å-qÀlü$xÀ°^ +ғñCPÿ#G?öOˆm> °P·n¹´˜Ö›ÀÝÊu2ƒ‹ü¹úâGÒ'€6,•Á˜Ð#…FöW·¤}YÉ –·Ô%ÊNQ@3aŒ[陃ÆòÖ×0ÂNÀÒ«LÁ…øÏ paYEúã/>ñÈ—ÈÝ,upþtÍZö%ÇL ·É­7Í£ñâ¤ýñfÓŽ"­?ËŽªv£\Ùu¢bý¦|C{Bû†ž¦dÒj[ +yøë5϶þï1dbt#iÎSÓІòë#|£Ÿ'‘ÇÊÝ— ÐLð\ŠÖ[Õº”ìkqí]+@ùÌ+:p!xt ›cM/â…‘6®Uü?}0hs¡êÎ5œEU}£ûÕ_ƒQ`U^„%ì™8Õ{|}¢+ûJÅR‡Rf²”½¦ÉÖ³nµn1PX‡]úZ©eÉ,SG´ŽpYµûsýöÅGѸ^Ù +vI•WÕó«‚`“|Þ$¡Øî¼ KДåIî ¦":é‹n&æ ÇôT„¦NVUCT˜7¡˜Á%3cÅ;)h‡/ö6ý ŽªðŸ&¤4lPtrð±P×9¥u)|äп¶2† •(Ü•*€Þ*4ªl¤^‘÷˜ìL‘®ÕÏ ÄC„´ù•.lúÕ• xP³5$ o–¾ÀøÅ1Œ4‘6Ï¥ÊKÑm¢œ»±;‡3Ï× ¡f/DQa¹[(–Ãê^„gŸ0É:‹Ô»Î<Ó«üeô–Z2Ÿ·fc9ô-“›`¤ÿ.í€}Џ½Tùò•d%Åצy¿ +gxkq›4Cù_Á¹ÆÑ‘pF@eEU”,Ò¯ ¿ëÏCº¿ŠÄ~|ÃØÂ RþHˆ÷$L µ$¿SlDpÃ!¸gµ<áa-¶;Á•Z¢Ù’1›½ÔbEòì_Oîn2XÓžÂäûσFåL$²b%É΢ÉÂp 6¿ðÉD+)0fZèÀ)8Ú²ˆ›·ÃŽ]½¶F®,)àOéÐJ…³¿h¨•l=èsrI´ÿÀAÔ^c<¦1lmüâ~4ýu_±À.Oþ.PÉÿq¼â¿´mÿÛ½/=ðtØ‹sæ{Í_ï³p» +ÈA}¹W‚Ù8 åü·…54¶Hã²”¼ÆD#íÂ}¬ » +GØcüGƒ«’pÀTùI9¢e#xÛ7*é'¸S•,•ÓU~Z™6ú:¦» Cac0j€CMH~¨üÚÝÁD]f¦‚Š +÷_aßçZ ÅcÏEs­]A¿ÄÚjd­°Û¾n[Ûð1(í®yÖ¥H­l±Ø®ÜIÄáK®]ÆñHi§] ’|‘mdý(T ^·$ìLµ{_À JXp­éžܛԞÞ$H§9ÒâÚÒ\«P…´ÆŸI’ïý@GWÝ¢zÄg0áÜ®ô×Ù:ÍÙâU?Öê³QÝrá'P£XN&ZÕmŸ婞 }ße³ioËÌj$¸ß\ˆK(3·"‚ßJŒ 4`²¬WnÈu 6!yÕUÏš?^) +Ÿ•cY>GM¶_)ºh?ãáHƒúy¿›…Jêa§åý¹¡QBevA.m.+£O_€‡õÕöª­I  ŽÿßÖÔŒreFWe"ðVa°" +°Tƒî+¢ÆD¡Óã‡Zéå|á Øu`ÂD&‡ÏS:>ý4ÎäÖ‚½¨§7ëû×>›1ó<¶Ò8D§ÁˆZ ¸Á¤îÔ*†C­õI´ÐhÕ1ÀægÉ +‰øÎÂ%QÜÆƒU²ñûYåb$="Y»¢.¾y—ïþÜšW‰mæUPŸÅðòölyœ˜<µ~‰—4nšv ý›d`t³…lž’;ï,y¾¨~ž'æ¼6zm„® ÉÅc«C¥»Ú°Û¸„Á„D‚VÖ®¹…HGë¸$Ìq \Zh oÂ{fò§6Ý«íʯ"‹ä´·!ËÔò(­È=´?ՋꕵÚЪóx +RfúT”ãT^NpØŽOᎧtǶVtÊÎ\¬%/ïÄ9‡1@kï|«k¼tÌ|ÍUÈ@±ùS?<ˆœ¤vdEÓøÓér;™~™¤ $…Â`¾’¦Ô&–ÀË(–£,MÕÆÐýª[7<ïªÀ}càTÄ+|(M¤+àx7­¬ž­ˆj)&Šøê±pvŽöou%Ê(¢æ €Àмƒ?¢öÞxp–‚¥òåR>Eî’ªr”PXûÉø(íç'•‡ø£P ­ãÐш °e¨B8±±:1É’©¼|µ¡7ëROµÿ·¼Ó k¢*á7RÛù¾=F œ|ýýFXÕ8Áçjr.«*þH[ýÈŽåDTnå]¡A}LÏ«ï8•~£ïÿ±·m|P ‚îü÷P|HqŸ]‹âHªßH+pÆüP =KÄ£”‡|Xû>NhJá(´ ^5çî µ” ˆ ¢uÊËÜp&ÓÍ´Á×ÈÒ¦ÇQ%²Óâ¶6Ë\Ö0 ½PÜÒ %i.ï»^å$={eí]êK°Æ µ¡7©ºtÊé1ÑOš6Ly;*âãaÅäP,Ÿãz|üù `ðÅ>ª9º¢õ1Ûɧ‡Èª-ÙV20æ” ŸÇß͉»•x™ä^@x¥c¨Ô…^)´W +ȾâoU ´ªW€¢C”Ó¿e,9xÏ4rXç¼Û3ÐzæK){žh@w‹*® ÒáüÍLç? D`ðóå›(\å2Œ¨: ‹\‘N(mY3 "¯ƒ‚¿Ì 3fà¢q?bh"N¨ƒx‹µ~1‡çf• ê™±:VÒôc±‰¾ºÞÓü»9~F? ТÐO­ V' +DËè?†Ö§ã DË»ÛgǤ‘—쟪„ÌÍ=ÚJD£&DÚÛÉ, ¡úû‡9—òô4³û@a·¡£ógþë´QÐÁHx6T9ºsÿÑЊrg à”Ø‹ƒL)Úõƒykå‡ÒðYV2@ÂÛÓ^°Éy2+e²”üX•7 M“5’@ê)MÝK-/úXýAnPŒÈ9ƒÓõQD¢uŒ*vá¨ÙØ–ÖgÇ£ºô_¿« ªâQ¹å/ks7a#À(ò9¸bÄÏj•#ïWγAÛHDl½c²”/Þ…ãÓ+¶ÄB@,ß)Ðéál^h‘ÄÍnsÙ[h\‰qÙ]'w#æ;.7ÐW=‚ ÎZËá>qPÚ }`¡!©ë­5ÊÑ|È'i軾‹Õ”4ÿ•äk‚Z*—ÒØ{ëPLO3ŠþcÆón÷W.­ÄŽ=RvI´:¢yÇX3˜G—®®YìmÖÂ6MºE²€qåX¼AE;rG*«ž&3z©I¼/È2¡o¹8‡“¬ìvOŽÖeÂêG>>œ`Ög­ìp mÕ=ÙUŽAͺ›Æä‚“ñM.ö÷¯Š]ºía¢SŠÐÒ–KøÙµÝõ©Eþ ¤Ø«ÎÍ –>òƒTWH‹K¿ˆ.Ó*÷'zˆ@3¼pŠEV +4îq3ðºªõ–‚©¾zlÅmG1¢÷ZóBP¨)dD»BÜŽ•yÉÿ.¸t9…kÔYWSPÖZLÞ¨¢l!îtèZô³îЂp³Îí\]tD—lïËçü@;CE[¡•”ýmöGeBˆkvÔœŽjX²ó­QÛÌÁ³' cÚ¥“Ì=¦t*Vo"tq3AÓêò„–¥0Q‹ä–t¨H‹qf+y.G6V©¯r}Ž-ìN‚©:¹X®Èú·n¿§9ô½eË3`pn¦ýîE#dÂãI€Á7x^=¦í­.$–ÆÄ'²ÌÁ0,1gÖIéî—LÒFYâ²nx UÓäøóÃpwx/-6L¥0Å6®Á±ØüiijÒíu‰ÍNÍÐk~A>/.‘r÷Ô_È \Âаu)aTÆÑ?S,{”¹WàŒÉÔËî-Jjdõï5bá{`¶2Î1É€çùM¹,ü‡ +óÌŽÄVQQ4ø¨lë%ˆµJ žp,ã%R¬nnßÀG<øãˆPëMЈªK ? ÌY#¬8:ÿ¯¥cŸïφî,¡÷ÄG*3q•®äQVÎ0YHÇaÍUkö¾±04ë0U4yã.òÉ¿i)yÊzºÞuv1c÷eb6ºìÀ檠ßòåG½,"'_×å=çò"bUmˆ9h1B”1P…AÐYâ^Ç0­`»U»ÀÝ\pÕœ_¿ÉUÆ–u"zCµVÇ¿MzSuJ긿ޱ¢ª0uDS]öVÖUKZ÷Ž×A¯ËüD™,” O ‰Wrå &÷$¿]p@L6ô~£ð¥äØ—FC#?<ÿxh5N ñø6¸~œ#@ºðHÞâ1 yÆ‹ø¥H÷¶EÄx´~¹0Ãp&L>Bã1ŠÂqÒgÖ%”NÔrP)Õˆ## Þ`ƒÞÂÚ¢ï‰à‘ÓÄuK7BØÈ*ÀVüY7‡…/"çH¤è jG"Fu½â# lo•n·÷-8<»ª¥/¨2 +È@%4šáMWâ\–à + /!& ~Â/¼®`}ú«!Q¹$1 CßÙL®ZKmU 7¢´~#ŠMãÖŶ“Ð/Ãþå +ÝQ¶7›ßî½8…GǶtˆ<¦`”7|!S^¬îC¹µê ”ƒxq«R ªòíFž¸°Èª Þbuw¦åOUN=úòÕš uR,-zè 6Hà)`ú-©*— +jª›YŒ«j\—(frb9³Ø™ß!‹ª¢@­<7@ÁJs@RY(yâò¬þqBæÈ ½—¹ðUº†7Ûx« +Þ4ÏrÏS\èù Šh’B]'z$½þ ÛÓ0,½àØjàžÝVhzXQ^JA5M‹&ƒZ(GŸýRù4ýö˜:qw!A!ò>&X¢ š ;¬>Bã†$öÎŽÓŒ’we»*]}â(H´ªzvNË@›€ÄJñƒóüLš—aâ^í¸áSj)rY9±¸ èö”òéÎåig¢G¢$è}ðJÕ!‡”NZÿÃïœE?3èÉìNzÏÉ& ³3艔ßEUeo‚µÍÁ´NíǧŸ9{ÄùMdoI(4… ò<¢\¾5©ŒØ.SW+˜c)‘L$\J’;v׉Í)…ŸHJp@åðØÒRRòªXŸÐa ‹>Æ“6¯¸Hヂõe¥êÛõbúú"}<Ñ‘Á_@LD‘ó!k>@ÌGoùÊ×/ùhÈÂ…g´ ¹ÂêðmÆ2Þ, Yñ¾Ø³äqÓ½ÜÛ)~Ô°ÏÞÞJÙ‘êžLc˜E¼Â-K¸Žã ®>Zv#àßëϼNù9òÐúÔ|qÅ= ±• O-ÂMKá(x²ážA¤¥‰â ãÅë•s“ão(¸aDJÀWÓ©æsD™ƒ3Dqp£gÔáF_›GÃ-æ£r‹ÛÝPÍGUZ ã´éÑã]Iaßã=x8Öº-ÿ”nƒTMFÊ¢Mg¤µ>nÛu” ú”˜\³=-‘#J†ØX,è‰ ‚úLZ3›ÁŸªEž²L´>ç`혆ØÄ~³ÇË»N8P›3¡—Z@‡¥RIC_ü qPLÐÆ3G£%[üJ•9øÀóÞLkew\B±î8„Ë6ûܨ‰ÊæZv‚5J[²O²0ýXqÛ|øÅú‘Tø0~½bÛBJt±%½Ý؇Eí¸ÁÂV6-Z°,ºK°kXÇý˜¯â¾¾ß«Z^çDq Ô5Ú\œ(\\¬/pÀmí [OÎ깬òGÛ6Lÿ%bõMª"Ü÷M1ë«@z…ŒI¼˜?9ƒ€O(j[µ `žÂ'y¬ì±1!çàG‰b¢ÎouÉǵ‘R Ù~™§ ±g»ãat317ûƒ„'òܼڈ¬Î_-ç7¢ä/&Ñ_VMrH^Í®Ad¯ÚºšgS~󬆛°¸:N$ÒŒGM«¤´’M¶ÍŒe!Éì8#Чž5GH6­hóàæJœ³ð1a­¥7fŒÃLíË ]ß2œ,3èÊô*ƒMH¢ Ñ,± Ž’R°Ò9« œ¥zÁrÚBüqms†"5Vûào/¹Âˤz\á låƒËýQÒÚí<ƒÔmÖ…NzmàÒ{]ý»Lh *‹!iïZÄ׺šä=ÄÿBÈÞ‡D‡:©Ã5AœµçÑè³d7£¡m‡añ=p!ƒªSFÒ/8ÃiF"øNæ¹€Ò÷”éK½õ9^Sˆ£É™E„ª3Ïò›^àþQ„™+0º ¯ +pÝ_y@{%3"ÖN(’Š¿Uût'š=f5uŽaÐówÇÁmO{]W7Ä-† +æX(¬~pÆ2ö‘’!Ž_CO‡~mA%‹ÌŒhU’ +Ód/3Š4xaeåkq}gHõ e™õ LÈç!:&ìŒbÒ…)5*¦At‚*4F6j™™Lªò յƛΖºØè•ÝBT+æ‡l9¾AÐUÐ8AdØæ2gL =ÄJ‘ýG™Ðõ‡‰?òdo'ùáä>”í#¹>¦éñóQO>ñœòKÚ£ {à¡  qu89 È!â.ñ°.ðí;&¼Ãans®v®£ÍŽñØQDXƯ¿ïwºO‚/2ü–-¬Å.=»IÀA¹W;ZïAr-Ñ:«aÒ{?ø÷ZD¬œ%’CW¸ÎVÄË1:V!jÃynÎë u¤!ÁÁ±@ÿ-²6•ddÀä磢lg`KqøžÒ“¬KÇ6iz=Ý¢o;a |ÌFPþLÿ|Z,3èQuk;}ñƒ_ÇDûË›YÑÅŒ:U¤röÀ^Ù€&dj¡õñóC}¹¦*0”çþÝùæ_F°žêUÏPÌsŠZÉRù¤c Á?”£©'Ððß®’FmY‰UËÙõG(Z4§YmË@ò›ù •£õÊß4jëŽ)Í^Z hå÷ÂòyáíédM댈¬¬¢–{ôÛÕÄz]º«L’Œô¡èõÐÝãôƒÑ1•Jš`_~==3Ÿ û‰~úz4ö¡÷^:»¼±¬D¯A ©/(5õži¦Íèýዲ¨¤;O jÉ(v*Tk0ë@°26¾ÏHÒ„>ȃ[çs¹®tÿIWÕ¸Á…Ÿß#®ÚeîJÇaÔƒù㪗0çè¹¼ðC­ŒèìE×M;’¤ÂHyîËõåäŠ!î†IX½­è•×i]ÛZü¾c„Ø·¶@µ&j5˜¶!-Œhw mèYÈÝo¶!³wÙA)© JV²ýêX¸b'¶ÂM°{íÊö4ñ7~•¯ýz´ëº2¥kÁˆ0#…äÖlõG­ +ºÙŽ/83Ðg&ååKMoÆí]±wIxfé–>ØPæ»Ð8éÖ¥ì˜æp;+€ÆÌCÔC’ò6õÑN–´©FüCFzª`X·Nµ`'$½vq¹ éÑϼLuq2žN‡—.Vn£ôIÇÊU+î#ØÙ¹ã 4 +[áJ–ig®«—·ñ Ò×Ò㤅mVºëQbÌã™èrjàk= 22K—¹Èz¼ ä.ç˸40%m5š5h&Lž^‚ÞFÀ4yÓWu°´oì¾õð·Ø}Ýo5àæ¥Ø#Þ2†h8>À³25åH¤ù.àfwD ËPüvr·šŠƒZòHIþ+^(±TÛsœQ'~> ^÷`›Ê¡ÌëTuäÔA‡ »š9HmÁ舫í™fÀ—†À©›“}ñ¿ß­Ñû —æ-gOEí3çÜó岯j|Ôm›;€•fEØáˆÝy”S>rS6†èßV²Ö­ƒ˜*A9 +ä V¤À'SÚÓh=´(ª‘à™4|ô +Ä‚Ÿõð‹Œ¶Šn Š»ÍŒYd{îÞïú `9L–Â*äR¢…’t…ÛRF Q¿KBíSå$åDžkû0J’Pªz'%Lše%’’ià¨(vl8d¿Ñ'ðʱDJ¿`U—áÈÒV…¾› ÞẈ*/™ôl¤Å‹™)£ »»À`‘•Š™@Hc +áhƉ'Þ ãÒ qB¶—\§ð;ÄÕȱÉAËŸZ™òäÏV¼²µªh‡e`ju®ž»¾ûw£’^CÅÁxd=FCö®V¤Ú÷;›"H°Éå„;OH3#ÇÆ’²žÜâCts¶ @uNª¤â@æ]M)óÐ°Ê´š«¤¥Øï4†¡ÉÈ-˜}‡IU±ÄîXÛ;ö¯¯(áÎç¥#qZ®ü×ÑÂËššÃB :º‡[g$ÅK@ع†YÝ»Ù0r^ áùâ¥óú'x(2¨~ØKç;~inÏ-Ÿ!ûÉ¢*ÙheÜÌ@p»ºœCIý&${A@/ϪYiZùÁ ^üN Ϲâ½F&å׸uöøg+Qu,ïÌJùùXxû;ŸÛžeÇ?ãáû|ÔS÷dç£Ü8AM¦{RÿàD D´òû¥(8¹¨þCêb–·¦ÂÌiÜÎüÏûÍø½OopuÛ>ËN¾ v&»ƒ²úr]8ÐþìA©Ûë\ —â˜Ùý²AðîÕÝò¹ˆüíO_-Çašâ>¦¿»µ)‚hwÆA¼Ä¹bIÒØ6°æŒa™ Ä`D·k)¤=“Fî©þÐ'%ñ=ÇX"'c‡8}pu‹st½í¾(=ê)wwcPì9¢Vl}Ь*êyb…š¨|ž +ƒEµ¿ZÐ×d7]qjESÍ·bP$ì;! +6 Úå wXKcOÀ#‹‚FžçRJ™RJRKâ^b. ªª»Ø ±É?w¿êHo"®’ro¬Š©˜¹clæcÖ‡f³eç1ª’ Cc A¼Éf˜šú§JJªjå‘CPLLèa.4ïç?¥D,C2a>RÁ¿ï‘àÏÿà|ßþ^Bˆ…¤NE² ò5žòæR•ðaÙÀ™pjB%*®L¨È‚*‚$|$Âèó©2Ž™Z‘)ÆÈl& ©6Õ0äÀZÑØñÕûÌ»é⩚ª UEÆè0÷ìâ—MÉÖeS®}õ~bn&´èH)N$3ÁúÄF"ÜçÆd~¢a_Æg‘O¤ {$nš‘ÓÝ>oÊÅÜóLRö}ã‘õUzq‚‹>­Ð˜)õSH12/1úZÖ³XÓPrg_œN{U0‘„‚©ÆDŠ.RÑ0’3p‚ &]%LNïˆÐ´~΄É$L($³@¡0PÄ´@iI„š â +cbb6Ra6žcD:ÓG"RÐØÔ  ³ñ„·†ÂPE8Él¨6ŸhÁb±4Á2%.U:4dÌç2ÑÀjøduÊ3»¦² + +ÏX·ÐƘcªZ±[DúŠ$æÅÉ1''Æ +~bsÅ'5)WâsÅÞË3¦E„ÝŒF$ɹºÄ\T¡_ÄæcÃ1)ù¢ þê´‡{EŽjœµ½Äñ¥é9KV:Œ·!™-HÒáz"Ij×áƒßŒÑ bl-G”O6 º%¢û£¦QB1q¤ˆ[ŠÞa(.&Bd +C¹‘²_ód›ƉØÙ:ü6šn”ôNç³ +ÇI2n–‰¡ëSû+:%1bÉFþ=¬K£ +އ!SN6*ÙhSä3FNpR¡E­„Ö-¡%¡UµPh…EXŒÿ=Åi""F(Q(5”V¡ÊbÌS‹@õº,¼Â+¼^/—Ïî§Í¶ ߺr±Šš¨ ΢d´ÕóíS¨­õšP::¦HJŠÆj{ä\E‚*ûPU?1¨ÜHé¢vˆ}Ðé:£‡‚é¦ëÖËTJÅË>eéd,Õ¹u1ñ„üóC½«MèMÆ t˜kÔˆ´,Ë5„ÝUØó¤'û…󭊃ˉ +mXWR©¡bŒ AÐ!Mr…X”"”B‘Äü4(H„!¦C¢.’cÕ‹Afœ +EÙB0èÁPâ:D ‹<%ÄL%Dì!æÔ !¡!bÆ Â‡—­©´EâBñE¡H7B4J!a ·6Ð;av¹ªp—ËgðÃð9“àû!ÁÇùÿ;¤á—’áïÂÏ'É<]*ð¼)ðçO>ðå±gáüÇ¿ÿ~¹älÅ);µEö0óó–‡pË8³kJ˜O6­à™ÐƒO±býÿäNçC½B–´5%!ï„©©¢²0Õy +R5u¡ÖXajhÀH’Uâž3Âb%S=ÂÒVpUýPĘPUQoä1‡ KŒµñ;-,=å2‚jB)‘Œ„Uµ&¬¤Eaµ:µÂjeÏ„UU*œBÇ+P¨)r¨‡q„š5އ™Ð©<ü£ƒ2ô%=Ñ4Ÿä;‹Üj×p¡^„š„èÚ%‡¿4ÈC³®MÍ4¿Ý ÅP4‹³©0¥>d2…ªé +Â’f„•’ €g$d÷‚{ÎV“x…x ‡bh%1ÇŒ¶ob3Ù|RrÇÈ)<÷èœ:ŸÌë!ÜIb2_lJ…ÜŒ ê¡ÅìMÉ$ÌÏ¡0D^e\H_º)­ÉטÑ̤Œ×j„Ü`¹Æ-FjâTjœM{™|Ñ/WmÖé‡,"i¾ ÑM$Ar=¸’yôÊG²Ãzü¼ÆÄÊÉK=á›b);"c 4Ê6v Ic]QÃ[F¹#u™ZuÉ&*A 'רIÖ¸4cÕÓPYD9EnTg=ªE“¢:3ÂL“|Õ0…\••y#¬¹ÈÚpkGjøe©Zc²VS$=ªVÜ|p¤E×%+5ÖdÐEòD#ÑøÓ@%•áxøe©&-ä”&rh²ìÔ$]Ñ&19Ó˜™O©àºW:3U5µ“5R2rh†BÎ4Ž!¡ÉÌæ##Rëõõ)Ò•"ˆ(âÉcA’q÷hÝXªc ‰R¾Æ› Õ ¶TC"oˆ§âGPâÝCj­CŸz ½AùÛ…£î‡£ôa¥ê/ÏFŠ©ˆcl•x}52áG“—²½Bü×gûA³ýÚõ»ÕWô­§)MöÙÄùÂ-Ù¬ûIh>*!rQùŠYT¸‘[\i=‘R¨×˜J½J½*Å»Cì)š`7àÎò‰´£‰´« ÞD!u2¦J…r4BQ"‘š˜HQÌÂDH¤&[X7ãËB“) +z›Í_T+ÇÊ#D'Ÿ—Z§ã“Ô#VÔ‚|Ѹ½µÚ;D3>¡H©ãpДtê°Â­¢‡ U*—óÙeòöì/Þk¼è/~šÍl5ŽÐXVfɲ¢5– ¼bDS¡¢ °Ãj…̸‚h‚ibbSÁ©UH(„|OþŠ&D+%Ó8s{,£SêÅäl™KH;ÈGåô‰n2ÈÑ´vc»Æ’h”±B\ž0Å'ì:-æX”rÍÈéÔ5$f1Çc"‘ËcÕÊÉUcË4;kd÷jìQ¾h©•y¢µ#¡¢POhú¦iV6žÉdF(—ý1pD$&ÄÑCLçS"ä‘Ò0P@¥ºZ­GQã5¦¾é´8áÐj…–˜ˆj3EdzœN¥šOÿ!?ŸOQI)Œ¢fHbjˆ¨ÊµÕjVŒ‡Sdúÿû|}ÛãùsÈ},D0D'hN„Gˆ:”DŸmƒ4„FZ%‡ˆ"P:6¢ÂxÕðy8 Ãy›A(DaEÖÁ­*”(ªUU*µª¶Ã%>Üuèû½Q©N_ñ\×f¼Âä4™øñ EÁ/áp8$øäuÎp,òù^!v áê†rÑ*ˆíj8´lÛ¶­Úx¥uI¨†W©¬æa(”N¡pB¡P8 åÉò DCD"™jèÃRTãáÔTm²‘#%F6iU„Ú$&¢¨.Ÿ"$/ŠŠZ…Ù‚D±‘Šn&fäÅÄHt]Q™JBªòÇD+uø·r¯ â‚t‹ÿ¿¢¹‘Z7Ä1TÇñˆ™KÍÌÞdÞycÇÐØòµÍ\#ª…ȉU+÷Nµö]ñ%)åí™:Úlÿ.«±TgZ: EQbiF+=ᬉ6I™#I W±õ\pž/l*7en%£Þ+9åblÇÕ–MUö«ÈöZ³8žZT¨ÖÁÆÄp$fˆ jœâ‰X Ípœ“b/QF&&aºKå‰LŒi&:ï®UUUUõPb’\—¥U¯wBÉ4¡¥ Ï4Ð%Y°® +dI°F(=ºB¶Â’Ü ²lƒË t «ßÊ=±~ˆ+¯BøŒhÔª¦(Ó^Vò£¯I'Ôa‡XÀ!œØ+.2Uap‘‹ Xb~„#"DP(Z!0Ũő›åBä„(@#0"¸Ãƒ0]‚0*‚A `" L` 0yÞJ"ÌЄ±Ø"$3|‘IUB%\214E^Ù—³#BU,z"¦ÑgU5©¢0häEÇ”Œ#Ѩb|FŒ¾&£ç¶Ô·nYoo'%d{ 3øO]ȸk.£-ªÖÉsÊ ²e°U¬†)²9-,%ƒá +žÃ`XÊ +)ßÅ#¢‹M˜$ wQa/ÆÅàŒ£ªG +7%iœ‘*ØQŒ¯Q¬üõó^;kíK/æÒrÇš +yeêÆì5Ï>#2ZÔJŸ6Bf~¢é5ô¡¿¦£ k3ö§™¦œ…Ä›†äö…œS”"’"!aÈT™ŠaJçUg/š9‡tÍ2áÏ—Ž¢s&Ê=Cc$Üiª˜ÙȌȼ.##² ÊxÿÊu™ŒŒ“¹LȼÜUÉ8adQñG¥ÑË0×°ClÊ*t«\ýgªRâI„eÞ°[ Ëv™ÔcÒÍ%D6™`HG$dj„–!ŽBgÍœ$$³’¤†–’TtFrV¬HŘm'šRÄ.äØ2ÎC›[X(¶U%œ{¼¡ù3û1*Eij¤&ÞŒ±ÔÊ›Ääã$1ItêÔ- ¯®h9“RŠÂ~Ò¶57I[“$».éUB\C,‰™:ãömî.j´kÕݱÆKUm~0ê í‘÷ýqbjr°ŠÊD#›Q‹B:ïÔÍ¥jêbªˆÇÖP¸*¬ø+®‰+ªÖÆ9ñ¢zƒ›Cv +OQ#.æškÕE”ÖéÄÞš8üÑØË¬ì×h_)Ø­¬aœq©‘»xèÉWÂfóoJf¯ÑEp*¤\üÌdh"ª=jTšíµ§CšÌè¼åœ°ÜžÈiT³K— ¡é¬rÊXXåØL k'˦B¬»=“Š{Æm7ç +õ 2’×aâOñå“9-b›5Ž5Ÿ ®vç$+mó’¹D¡QþKUiZu³‹‰uQ*…kqâŒâ®×¢§M3I\‰TÙS¥¹4‹é¥ÄMX&ò!‘ +ÇÌA¯LJ™èŽÊÛÓ÷ÞýX¤¶® Õõî¹{틦'Ý£oKÑ+ï‹ya¥û‰|kuw ѹHLp&rGWRù„ÉBõµÈ×l)™ŠÙ< ôbè¡"—ƒXf”…†,Õ‘nÖ;í©tEŒ›/¶Ïx"¤èE*GQâÿL…j<‘Ý“[J½íÔÐŨy ¯kxº† n9¡m-;Íð^êŽsxÐ Ri®½ªéù\¨ÁÕêîjxPΪ"ãp„ÛnXsðþj‡ÎÌD¡á +¥»’t'ÐBq¡Í톺•‡¶BɈAP°ßð`n)á.ùƒ ò ¹ƒ\&AÜx¦âqThÜž˜qI‚Æãh-É&™q({ÊáÁ{ÊœÂ.wèçáÁë7Ø~°Ðÿ±‡?Æò‚ðhUDL˜W„Â<q6R|!;ÂiT„!š††¤¨ˆ8X^*DÍŠB,¶ª‰ [HXµR;†Lîšà +‘Wì¨á¥"*H…© ¢ˆ¨¯á£PUE몟@å*j#PÅpĶÜPµð —‡ ‰°„(ò,ÈñlÙ¸ÙQµÿ"ybp8¸×ó‡ó`,8ý2ÿóqÁà‰£¾èmih'¿Ì‰QœX31ü Ž †‡Lj €0€‘àO>fÍ"ÈÃe’E8•B§3œ„"ÜÿÃ91EÞKJ¢à%ص±•Da+È”yÉIÞ—ÜWÉœðÁ?¿vÿSÑO(Œã7…ñçŒxxÀs‡‡[%³~Ä}(©jY|öPB2œ %äPà b „ÔéY‰¢AÜJAðú¡Ä6Š›„‘~ᦨ‚g\n|e +\'°S2oh5”,E,qžÙ…öîˆbDÑÛ>$H Q“Ç7¢"{ŠPò˜BÎÁáÁJ‡( ©³]¨„TØ +ݺ£`@ …C‚Á¬vûžx8žDŠCBA(Ô*Â2@/ÎsÚ²ûƘ5×NS8æèM€BÙ„‹³Ðßïçg:æEV̰,OÔˆk˜í¤Ù[d‹ŠýGÄÊÌI¿¡ÒWRÛ:'DßGZŒd²ÕÜöJk 3—'liT­A.õk§t÷WøÊ¤¿sˆL%¯Âì‘\Ã3S;–{ +†ÀÌNÇÈ‘ô Ž×“ÕœMÜE=ôƒÇœe]RB'ÜUxØ€v§íƒ8¢ Ì=Ð#@Nò #øódϲ[$_lu13’`ØP1Ù +FkZ'&£%âe 7˜Ñ^›bË@N§$Æ|Q´m!1ëj®-Þ4•efª”#â,=hâ&ñÅeÓÞËËk¯I0¨Žù£ƒÆ^´¯á#Ÿ°_»ý^^ª Pèñ].ßÕó4A¤gì1ò +<¾ +ÔŽ»É»nf` +a +¦à i·G¿¯Ék_ᔜý;f"7àÏ +䯮¤k.\¡¿¼BÖ…X9'³`´Mæ¿YßÒ:;·ÖÍ6”[Fˆ3×gÖá·WÌ×}1ˆè yO"Y?D\噂+ò÷¨ïêBŽÈ‚ÈøÒ…KÎ<\¢¬Ç§F§g²&†ïžpßJɰ™*X!êEá´ªÍMºù½|œšSÛö­Ð°S{ø!¾µF;VýFUßÍÌq`즽À •öS½”T·ž}jˆ&~1¢?øUP‡ŽÀWàküÓ&kæâ°VàÖP­»t~±iˆ]˜™Eê7ÑúfŒg‘(0ctèE¹ôžÂ*ÀLÛz†Gß(DDcÝ/ƒ¸9â”8Ø:faJú±yÅEoZÌ…‘Æâ-t W¼>ÃCéŽädK@J¥D?!¨n´Ó,×}ºÒÿáírá{pešš2ëè‘9ýjPEø oj0aµÝ‰ÃÊ ›¨?ãþ×ú|aMî8YH£¨ä3ãÓhÔc\Ûx“Q0££i¼îd9¼8<…LEÌ¢è ..ï¾ür}<Þo¤f/ڛ͠~°/"Y¸þyŶêw.xRp~ $Šä/e/Gøíh!¸‰Ù¶í«  Iãí£»öXƒŽ]ÊúÇwôž4Þ‡¡•€â/œçt ïYRM$™ÀYÿƒ>!­º?$ÇTË×Ü¿C#—ðÁî>^ Œ˜œNâ\û/m9„¹‚Hs&=.“ÈÝ»ÿ#C})¥öÀ³ÂüeŠІ¾ìyP¾v™“ òSW¢ÁrJ…×¶Û·ËõÅÀê$a‰œ§º1€ˆwÃG+Ìûƒd¿ù¶¿:nƒWO/¸¯M¸¾`Ö;Ee C #ÂÀl‰‰Ùx< ËNùŠ]¶ËNdÃñºßìfÃe¼L$ìJnB…,$‡ÉKzFîG¯Û‡ÄÂ>²[-¬Io†òSµ!ܬQaÐþ@HRXz4¢Ú—º¸OÒòŠfû“¡eú»+âÆ8ÿÜkÀÕC Š·×àÇYÈWO‡Ÿav3˜Ú¥c(®`ž”..x²º²ܧ¥ÓØ ÌºŽíV<Þh2^›,Ð_‰Œ`äy‹C "hHrÎÁ)¿Š›K­g*cQþÁ§0y±Šž¬ÃlowÑ Ty‘ó½Z_wÚiÙž¾nùÜ­á}ö'œ‘ð2ΕæF„³~å³Ù²nÇJªÔ•ùþïž©vìî9Î'bŠ— ŸÑNÇ`Ó²S2ƒsvÍ´dQ›m¶¹5Ʀ[Ö‰‚b®sTƒH™»áª3ˆÞ ‡X˜ðI¸åy¤·~YÄ@â>|˜?ƒL~jŽ™ À¥ø‹¶„˨0Ô¿aã¬dkþÐ`híÞU…Û‚'XQ +æR¦ø8˱hÓ ?‰~©¸¶W‘GÞ£Mg»òºˆ0»y.ðî“Ëmd ¼8£°%7JÐA§H¡ #mIÇ€’®YŸ¸Ö&æð9ð nÔï`6Oì:UhÆ£‡ïSÁ§ŒBjÃC©œxÃU:ݤ=ý1zøœ‹±„«¡¿Ö¥ž'ÏE©‘¾Ë"±®T6QÓÓmø#ï3à.d^+Ò"¤GXµÅÄryuUÂsúí)XRôÀ  \|&¯Î—ËJÝQØ 0'FayÀZ#9DáÐÎ`‚Þ¹Ê R×!¹x´À=Ç@™!S“ Ü‚‹Ýq³óuàöõÅŽJ:…Ÿz¤ü˜†È¨Žª/l‹ƒŒ\ ¦ +]ë- I‚¸Ñ1ŽÛkZêÇÒFr·†ë§7¡ÍØ­#ìk¯v1ës‰…¤’1Æ€•Ý‚«ô]XõûÆBRÒ€+¶¥K—_æ#ãçÒþm&>ä[…/fØÈI]²ªK¶ 3ýo0dLRÂu‡‚ÞTØ"*# ´ÇÌfò'0ª&¬£§V(ÖŒ;à2S¯öKµ-Ñ›³¾?§ïªRkvŽÏÛ8Ì^ÊFSƒºLq¦()‡l*™s§¡í.©~±jk÷£ðà/ó3¤â>ÝÖïÆèLË[tâìÞ“u{`ÍèBP£™@· Uj|Qó %²²2*uOÃAéåXŒú¡ñ¯xŒ æá(AÈú BL>•¨—/›$³au¿$¥¯Âp4?¸œ}ç¬ÆWÉåJŒÛoKѵÕÝL¬·p¶ñuAì‚î‚è²)º>#‹PzÂ>޽WPü&ÓÉiT›Aè/ÞͱËDAé˜VBã÷Éeè©¢FOØFetŠ;G©´¬ŸXÍÈ‘•5¸rMk¯pH¥Ñî7DSñ ´%bÎ%ñRÝeâzÈäÍ—×DÅx`HSÅ%bs‚øx„»í‚x_[€]Jz£u·X¢ ·Ç:%w—)ªšÍ^ñ¶0Ëñ/X7¥¯Ñ󘔴®€=í…#ÐÁó­G\rŠßÛd{@1¸Ã¥ªèI„BX«&¦°~7b¸¾Ã9"x.‘ƒ^åE‚)ªw~¯ìœ~­f£#UàZkº +(èTÒ¯…*€ +á0Ã-{È¢ÄDe^£d³=¶Èà +×Lþîx.`ð|÷àæá.(ƒ'ðÀšMú`ËÜMÏ{„1sË—Uº™š_wË +Ÿ"Ä4.îú…m`¶·æ[þÄnœÞ«@æÇÃßÚåôü9lPôÖ•&’ºäÙ†ö‡ã¸|Ú!ª–©c!¿†9Éeàô* ƒZaâïïn‡°\GºiWÐ& TY>t‡Æ‘Ië=LƒRö>Ítú©n¿¨×epiPøã!ã»Økø)85ö³:?ÇÑö sÈ£¯‚Aßñ?v˜bw,Ó%î@ +ÿªôñá×rÉ«ú§Ãû©ð±eŽr…°²¤JãCû/1‰ ¡«ÿÅ–-÷„_Ìðõ„íSŸBãÅ ã8°Œ0+A¼´;x»ŒH~n•ŒÚðߨCÚzÏÝWòø;¥ÂYÇ=¿j!³ÀÐ7’2Iƒ7£Öx ²x¦÷gKd<Ê” ¾`;?¾ñÄ%‘\g'oºô~·p7ж«r'ÃDø¿jl¦_o‹-ÕÚÖÙ·’éƒ7d í Ö·i› ×ÙÎ9ѱý¦ed„­ ¿£<\E*]€ö`'âS²1ƒJË»–tÙ´Gf,'ò#ÇÓŸëÏ¢¿`A`KsOµ Ê£VõžOöxˆe¨@X‘mˆÐ‡=–Í6,ávÈÆ)f-€¬Vø1+¸ð¿ˆRÍ1?:¹¢Æ„&pÅq—öÕÛ%*HyÃij{"º¬ö¿¯[¾†Q}Æ~ñX9él¸¥~ª©Q%Öj$ÜWìä¼à€q÷)ëì½^V—òojѥȿ$]nmÚÖ7ôP©An;̆&Îö’ކÔ5»QáVÿ_¹¼¦‹™Ñ(pºV„V\¼i>Æ·¿DÇ ˜ÒxþZ!ð0ëDE9$¤A,Øòië—þfý·.œìe|¨]cT¾aÅv8¾C4©4àåõ¯<ø1¦Ù_`ÐÀ5V6ˆ2·á*† £ÚÑàÆQY½Ä°˜)ƒ ï)ö™%žN BžÚã¬ážµn§ÕÔÒÊTy ·’=Íw5ÿ˜5à±,Õ¨$qÂÅØ±avbðþ‡(‘„iú!¥²ÎJÃ8/«![pE¢ÚeÒ·RH’ ÷ÛÒøHôºRôaUú]8þ­¶²ªÄǠϓӧHB§ÀϼûùçÈ µoX+â ÆQÜNÖlczÓºU‘ʉÆâ÷fÜ”e‡Ñˆ1@w×@‘­Peõó (Úb’Ú¸Š7éíAzp ÉàËF4s–õ…X4¼„Dnv@³Î¼Õæ¡/œÖ4ý]Í¿ŠêŒjç]”S5­¤…|âðmÕñ ”½Æ€næ¸Ã³IL9nF|424ÚeÏ1)¬¬fÇÛg×ÀŠórv…=Zì9ªê•¢½QpûI9ýý~‡;¨à›5¼K[kË«zKîòþIšK^3€]Û´ +^1õ}\ð„RÝ«êeÍùòÿ¡'±¼ñ±Ú`ÊÖùS°0ïî+.õBìÆÕËÖi@ña”}Y&&¥YLz#ãz&‘YLZz58Õt´)ãâžKŽßëßì¤mÙ’¤àF¥ 1™@J‚Éý4ÃA0¸ãÝ£›ˆ9ÃÂz© IÒ‰ »h¸ß¦YxA3¨Kkïiâ…°Bă)o% ï9‘$(<Ö¥ÖíI"ïßhKäµVSŠe\GKͬË3|„.¥ø]®çB@cÄß/qÔ»P…‰žnw®•ä¸s±» +”É8H›^0!áxo¯€ˆ-Lðû„d÷D0_ œ›¥¸ ‡¢‹ª-*'~Ø!¢™žK}'Ò½§0Ïbµ©9JÝѵñ p‹VCãÃØg’·T‚?¤ˆèÁÿ(°é$€’œ¡£íuó@ºuÒ,8 Õò¶e{Ü{añ‹»d—-Úb 6´ç½Œw2¨ç¤fUTeEkO$`´àÔm2º†óöfÓég´oÍùí#Ìn ãzâW÷úÑ8€R.b€=ûwš„ØŒõ¾!%µÜC'gaó–8ªŒæ¸aêXüYÇÚ®%®"<p¸ç$øU#@ð2¥ ¾VôÁ`xÀòK¢/¾ä:”íçâÌD‡S rt§ðbHôÇŠŸ×+F>öRó ™((ÑÙN¶<Ò$m²Î©3.5Å„gª/:î´d´Û_Û'I/¢[ ÁN—4»p`C*b1^öÖÝ|ôÖ¾[,‰…Xk OM•>Ød•ù."ù›Xœ'çî”rùÍôuÛ}[“ò’båå7} PìUʦLÂä.OÊž-ÒDùPêöFÞ3š•+Á€Š ³tÙä~¡V½^P`Ëkÿ‹ÎÚ¼hŒŽºCÛ¶ö醞R wQc“ÇèûšÅIc€rfp¯Ì ÷((QáDb Vˆ@<ÐÞ +û}ÇWÈÁAu!ÀRݱ%qÒ(äà­ó¯© 7è¤d°@€†|¯áÝ bëé’Xû—6ùaݰÅi޳v|ÊLÃsT“e’õ‡.©;â®cc÷‚Z#±b¬+Œt¡ÕWÅ®_M«üÉP΄Yã!ïðNmv5wUµu¹˜„É4FrµH½Ú e+ÎvŽ* ?ƒäÉxÚd,˜6Zº}µ aŠÑÂÎ&ƒ¨×±júoÃRP°jVAñCç&%àa™‚g©9«æm‡rÁUúî `ya +ç1ô座) Ÿ‡rnŽ×æÉYrÿÖÓS-…˜¢£Aº×è<9B)ŒØè£Ú~-gØØIñ_‘ÝÀ†ÂÄ'XUÉŠ‰Äu}™×¨ë7f^t„jð¼ïâ??^ÂkE7¦ð2O ºô,H¸—º +j&\g, ……¡<©^Ãâ×oN¡­›×ÃDã2¨}M•=WWTh!áí ²æ@Û9‰NDÞÄaÔ{ÄÌE•æZ‹)¤z•;x–ÍE YŠ®!Ì‹¹¾;Æì8 UùjR²xL„˜Ð1´Í]\Ô0€eS‹„ Ù-9†–²ƒ„)µ´õE2§U”ÿOçKH• ü¨ŒÈð·¡ÑÔ¿÷‹–D–(,íKwšâîZß·%c4Šlè¤dz„éÇÚñ!¶å(_ÙË ’²d‚ÜÌ4k“pû±2¾ò˜îÖó·ö<דþ¨çF[ßÐ〬÷~£7ahk!k|iì­§â[ ²hÂ6Dx¯fËcä¨ÁoÌn›K?ùÒßü¬Ðú>lŒÅæ›gHoŠH'`˃,o Érµ§VÌbj†–9Ùu ®®¢{»^ÔÝ„àÑ~|ÿ§ïP+&õ¼ƒj¶I)„jã´]Oßx¡0Y'„H0£¾X|²@ç dý8Søw`YÎ/z²ÃξÊ+¸›Àk/ïÏ’Žð`“MSp·®…è膌®âÕ s @M7Æ#¹d†¯ìÁ*ícEk>B6 /*Ø´°Ádÿè‹!±í¨~æss‹Áó'ú} +€yÄ)— +{η‚W(œ‹-D]~³?Žè¶Ø^ÂxÞœw®_í~ÓIÀ VÔ^‹¬x Ú`sÁ?ºŠ{o@d1b“Õ6V^øW8x¶›nûÊkLº= üÝŽa×Ô¾µ"BõôØýGª|ë~@ +Ž},Páa›–i¯bNÏÕ¡-@3Wɘ\›ÔèªpÃÈÕ›Zí,P÷¸Nv¼)f»$,\ó|èÊßÜPßÒP[o阧veþ,« !>UqÀŠ’ÂžóŽf‡Zf€”û;0¦:)ãКՇIè0R,÷⤗e«»s%æv®ûM5:Co™aX…˜4!dB*2ŠŠÕ­6qîDwÿª^ÀÓ.¥³ž`!8úÇH~QMTP{°•ÄPºÖ÷ ¤Ó¤ùÓª‚é%á!QÓ˜nØÅEw0þæ×ú5m—ýOÅ+ÙâëD¨‰c%äó¤“×*äXË[o®§c„-P&^Ð!©ûHÓ|LÄÔbdý—…\ÜGF­2φ&JC28?ÁUqÆö±®RÅK;„ñ£›/^ÉÑ ~5FPjV)´I—D6¾x¼›ÆX³KÝ(Ïc@2‡¢>D§yÚxSìT„m€‰-ƒ‚#ºâX cûêNû Ï“H$-Üæm '4%m›š‰Ð6q÷Ê1ùÍXH­…@ÓëÝæMÙÈö%X„T“ÇŠCEF^²Üi3mºŠô­ƒ²[˜3aò¥’U1zQ6¥Ž,ÂÖ6Ÿ 1Ù¤ÓEþbp Ò»ÇÅ+ÖuÀÚž +÷<ÍGt?kÒ¬¸¤ÆÊk€Nö´Â˜{sn:«dc깤ø¤fˆ.:ȉüe’nBCyœ“…… Õô ,È¿ÿ +Pl;’æt%ÝÀgoà^eM粪ÏK×Ç3Ú]£# +±×§6œÑÉcíw§r=“¾K1àhÔ5Èꊰå_37An!ÚmÚ+B…í¶L'éŠ4:t)D§óŠAb0¨iᘒÌìïVö±/_Û“JÙ$ùη^Ä€™©åMý6ѹP‰ZÍȹrÖk» eÜÀÚ _“W׳b_ô)5sÃB F²É;h$”×– }j¢OIy I„ðï§ìêþ ù<.£UvVPKãÀNý°F ùˆÒh¾ž¯>Lüc“éÞ_ +úŽX™ä†~ s&Q‹ +:Wjy…t6a¨9ìG +úÀvF.Î âøÃôÃmk»=.ô<Å ¡ÓxØSLí§1X91%]êýþ­á˜’¡ö¬®¼+Í„~â©Ì +¸5gßÜhÆcÇ'º*N~É÷ë6 GïeöÞ{嚆 ·Qñö—&ýH%¬6"sÉüS-Ú{“žpÒFø_··8–úVùúsèAõ¶aV…º¦s}ç/A¿Ü ++¨C¾Á–\×±Y: ¼£o+¨Oœvµiåô¶Z}>=~n!öÜÀÒM!ƒ 6u,uÃ}dTŠD“£Q@G1¤© kkoXèrp€. üøó»»c8ƒ˜¬çñ¸\ +àª?üˆ§Ñ®À›—{[÷«-“RFJ•E!âOYìO@?gRõúHo)%óœÏãç«.~¬˜ P%Gsu^Ÿ¬FPÒ«ÜÂìÇV³j4Ø0~š^+°×¬^:ø$XéîvO÷òÆiò†=b@¢ +0˜kº=¸ll!þM5frï­\ÊÍÞp†ó×ÄWËkN[:SpÍÀraâ°9Q†¼“Ùy‡‰é¿¨ÀEVÑLÃMÊ0¬?¯ ))BK„ À»%'k¯ìÁÊ$D‘ ƒ­üC\¢-„&ËA'¿ä“ms kE@µ Њ¯…¸kËÕ6\ª€‰Î1…5÷¨_gE 1‹éwàÌA8—êgŠ›øÙΨ'pA¢dÀïqø˜klùe¸Qƒ¬%|ž‰¥P°R”z´¹¼Þt¨ +ráðû°cpf† (uH#2ÑH+¼ñi¥É0H†Õ’¿'ZÈ—&È¥‘œmA«pÆÕ…fL¨LhÓõeÇktWº•“χÀ|‘"¬Þ€¦ëÌ\Jµ†x÷}¬Kà8ÜÙ•¤DË÷ÞÂÍØ +Ô&-§X2bØtÍT‚ån¹¨2ÑCU¶·Î¤õÍËBg8# +_!%|܇.=)ö UŒÞuöååÉï@2sé¼²^ÂÆq5ÚÀ vs¼7)DÛ­ÈpÀtŸÏU Š—ë ‘›„ÄC£Æà÷K³h퀠)/q3þöaV³ÔÞÇCm«âôqçºB¿6¨9R¨ê¾GAŽÙR½ße»‚˜8âÙ3PºÆÂRyWœu~ù@•ÌÚ?0ÕƒšÐ—ÁHƒ_×ÌP‘ívlŒÉŬ‰!øžÈ6åÐ|™Éªf"«Cã9It¨¥š‡ÈzÐt€«Ã¥$ò:A"·h‡ +Gdw¨_DF½C‡3xÀ¥¿‰H{åÁzhþy"ééÁOˆä`]‚Húàƒ Â¬|¨Þ‡ §ý{`ûÐ;¡"?4Þ!LñCѬÖÕ!¾¢Ûe—9ä¼}è†C$D¡âö€(Ćˆ5D‚h>CdUUËuÑ4†˜xAsEü¨xмg…ø,Ñ…8—µ/Q ñrˆÿ=„×ü" $!10ÿå + Mà€=G‹%¢ZBêHBhŸëFˆ•Y%BŽ‹Eô#çJ]=íWË!!U†Õ©#qšv<3¢J²T#ÊŽ´|Cªºˆ/oô0mhÄDq@¢ÒA ¤H8È ä:í/n’(Ú‚ /‰š 'Q‚Ђ&¬”(D‚O%zDW¢ì®£²ÄÒDcÐÂÝWÒÎgs»DŽd :~‰Ê[ Ç&:‘á&º%°…pC™hvBÉ™¨hÁ•&RABûÆÂwM8 +ËmÂ+8áZ*'šÀt¢Éÿ`m'‚Ë-Ï<ÈÃá?\ÛõçÊ´íýáoŸèŠQ +æïEWÀ¼—ç—„B ïm(B»¾9GÝ$ +üeN‹"œžK6ж[Ç“’¢.üŸRT|4—¢1÷»LÑÙ>ˆ»)ê6ù›bWëÃ!ž¢5êC(PÑ5~([QQIŸT¸?µ~6(N…Ùò!gdN’G«¢¸ñØ*z‰Ì¯¢IøˆEVT>Ò ]â³Z¶j÷ W¸É=tu…£ÜÆp{ Í+O{´~…QÙ#m°°ÁIöàzÔ¹àäz¬BåÕ£œÊ¢eê‘gÅNô΢Rz$%ZÔEtE ŒiQ&‚!"ß<ÚªEÁÌòZ]\Í-•ö¶(”©~俍ψiŽªÙgd•9Šj0G'­¹¥W4–£ìÉSФ!°ÉѦÑ&9ªþEVNÃä° +jx9,Á¿RÃOÇQj8Ù8š­†1ÆQFÖ0Pokàµ8,¼FÅq lT8°ºØ¨õáªÔpŠîÆ~¾áåÌß® «7òÞFæ ßðjÞp pøoX‡¬ÁÝ%?Hx + 4j¦nÂѺñG‡£ñAAñÅıÐq£ùÅQB¬©‹ãˆàÛ°9¬¹h%‡¥¶‘œrØ„m„\¬ˆ2‡S)F×)â +ŠP?¿’ÞùPªìVˆý9ŽÁ7¢CÄJ`56ì o²‚>Þ’¦ÃtÍF¸zÓñ„$vT#kÓa—û./éðƒ² ÙX„‹zêW6¤$yZmm'ö!¨¤£Œ±Hí +žìU:c¯;l\”Ì×iØØE:ª¢º÷5$¢£?¦Ûþqƒ¼>t8G×XDtßÅ%íû<:èó[C.D´µ†ôÏÑÕ¬1Ök<üLWCС£ ðs|«á—%cÿTƒÙÏQäÔXTÍÙ'Ó¤ÆWŸ£\Q#ÎGrPÒ9êÒi ­sô¶¦*56ˆÎQgL¨ÎÑÓÒ@Ô¢4þk*’†”ÎÑÄ/Ç®Æ5G”“õiŽX:šã©Ø¾ä¨¤Î˜(9ª/g iÕÂt%¹kl†´äèuš«dü’#ûi®±l¦Ì¸Ð¿˜A¤Êáç®—­C^ÆŠ +\©÷,cZòÊP$«Ê|9º˜26U„2.ös2DW&#¿Äù$ã)ÁÇ+ÐÁ +uQEƦ͡°>Alrtúû’ñ·˜\Ý[Mm¥Íà p5ÆÕ!3¬rØcx‰ëb€§&c1ÊfT ²ŠOŒQÏCZ܈Qy!†ƇqÉÑ;‡Q1ä©a4t% £Çÿ3Îba$¥~4=a°›4ó3 !ö`0‡#åÃ't  9ä(&‚±@—qXB`ø BÀ¸rñAƵ¿à9LÚ/’•òÐÉ+r|3_xFµ/ +D}FŽþWbaÃ+~±êöH6rø'Ç#ûÂÔÉá59üéHk‡}E‡†9d'så8É`ÐTšÃ +}‘È9,pÏÍó…Øv¾õ˜‡Cù@st@ö^ ´Û«*Ñ €8óÂÝäŽБ:¼h—Ð##×u.(ÛÅ~Ê.è{ ® 3nꂺ¬tÁ¨t1èÆ¹Ðä¬ã×å¨çPJ.¼qŽ‹Hƒ?q¡bt˜ºÍpqë_¾\éðÃ[¨žóÜÂüÔáê¶Ð`µ…j®Ãg¶°ù.P!ì Ã…ËŽ2µãÖµø»ÝX‹ÏÜÑ Z<¾;ŠŸÃðYZdøŽ£ÅLÀ£´@)þªý)ÿ ¼ +dHW¢£U¼E@_B HË¡Ÿ,Lªº@AÅ8C§¢·Š©à‚xP*®” Å2V›ºt• ÅEE“)ˆ‡QQ䂸Õ2ˆÿ ¢Ú âøS4î f=E ±@%Bu +qIH?N±ÖkS¼mBx£)$d +5)„LÀòÝRp·«+ 9°O†J)úæM +Vdˆ‰IŠQ¨Ç)üB‚‚`HÆyeÀð-d…£pA£è€!^<·ï/ +>.¤´¢àƒ!•& +ÊT†ºŒU :]ÝCQà …b¡p_Pp;P0ZK%ÿ„×mHùù‰LW}‚ 7¤ÑÐu7d}wÂé ±œ'@ÀJØw'„IJðª–Ý*t"…Æœð9qîÔp‚ì› õÒM šC|kC-ê½a8kB åÚ +Þ¿GbwˆÃ¬BJ¿³VÚAOU3¡ÞÁ21ß!#’&%µGLxîo„‰šÝ ¨âÏØ! {‰Ä´v r‰÷uHån‰®C$½Z"§e–8ïKX­C˜]‰&=䔕ÀT¦Jxê*qÁ›E%(!ší‡”eJ<ùCºä Ò‹Î(JqÙ> Äë)×$*DŠ˜D'D$fI4ψDÐ]$òs¶­DäˆDM¤è‘(ë‰$4ÕF‘Z‘¨ü‘€÷ñjH˜¸ Xã¨XïÎÛ ‹]8U I‹˜ü#Z +2­`ÂkìëžÑx„Æ1Ò¬#– `j–—Q7¢$h$Žh¤Fb"îe#Îgµ)µL9Ëcš#öû<$B¬#,aïw¤½‹)é"ð‘~-3?R‹`[@ÒØŠà$½TÊ IŸÁqHJ=‰äøD8×"ñ4V‰´aþH ‘Ha%ñ6-‰iaö˜Ä8ˆðü!*6‰¯­Nâ³Cxý$Ö8„  Á6”£!‚ ‘Á”8°B%È/„¨*©ØBܳ’¾2¯¤'…@-–ô&A‚œ%ý$ŠkI¯ÁKª8â=]Bxƒä%ÄŒÞ be_BD!ºZ‚~ +vw˜œä틉«€(œpœ]ˆ«º¤ê€P©Œ€WŸáAf"x?”û‚9úˆ0؉ü¡%š8ÚUošXé‡vrùMŒø}ˆ‚L¼Ú‡:nb\}hô&NèCÉàÄ…ù-N LJ¦@|áY9PËT¾ê5éÍ=ŒÄjGD'ìÁ¾:i^=ŒN·ôE"Ú ÉóЛ|Ì<`•¨ÌPÀŸÅïÏPnP\~†Þ#“ÄBA ¾5”‚~†5ÊÏ­ÒåüeC11 +"F åò¡€ºå=”ç‹Eƒ†EQÀ»¦î¹O&m؇âû¡AÇh³_%ŠQ„·AÃH¹ ¹TØÍÏ@DºG”悆Ñm~¢JÝIeDñ€Ù›ëŸ(^ACE-M”OW­Î³¨Å.~†ÌP ¼U5µ¡¦G .ÿ.ùCäù‹o GëРbÝåkРw¢Xû¤Š(îD=9þoÊŸîDÁQg « Eb+´VÀ)–/‘í§ú½ Ö2-ôŠb[ex¾(U©8­âÑ(cQL†YÄQ($ƒç¥ïáFH©öcÀ›¦Žáª‘BacðZRZÇVþ¤Ôj1…(†7T +¹Á9–2­0˜ºÁ†Á3jaè=Lq0èeŠ¡4 “ê5 ¹)^ƒMNé#0¸í”ÖÁŠ=¥¬_pÿ)Eö ¡RŒ/x=TZÚ :•xJTúUà©Tp*•îßÊ3•Û&;•Úº@h!ªÔr­6U€7$VU¬jTÉ…W…1q¡iYå&¸Àj«œŸ·€yŒàº_ʼn[pVÜÙ‚`ÈŠíµ`›ÌŠ$¯.E+ˆÓBûj%R´P;[©ñ,tëVÚ™…𹕰ÊBp¥·" åk•fèJ©Æ‚»âˆðб€·z¥žÉóð¿…¿âë6-°È2ó,7Y!ïL®°N~Â~EßVÈ‹bÉD]„ ?Á¸Ë¼ +²X5hœ$KèÃ/eA»*üÙ²tJ™ÅÏ©Ð\ŸT@µYLE… x–b g‹ `€–áû‰ùMÁ‡¤E?óš8Úͦ…îR¨¥L¥@K-Ž%…iWKQHa ®¥–£ð'liQÚ²¥íDá/µ¥ë¡°ÛnK§ úËYõ¿ÜúX0?= +s®#@˜§8ýÌ+³`ŽÐ¨̉Ôó>Fˆaü_„ü cµEè ãÓâöo‡Ã0•!¡†ñn"d™ÃXG|˜"B_ˆqþ1F;„àã·!dA1Bì©[‘L6& +!ÌĸG‚%ÆØo3ÆÃA»Æx[´Á1RÕ¥c „˜Ë"dá4„t^Œñÿ@»!ãi ¶ÈxÚìGÆO~à%#úgJ³qLF*}@E“H:ÏïA¢ŒôyÙMPãñëêÔ@üHSyÜ 4 ¥”¥).‡iú@hÝ$â˜æ4ÆÍÀ#ŸF 30jü–­£ÆH˜¹Ô¨IVP2p¦jœ—h5¾»8†V)»èl¬Á–ø”èÚx›ŠÃÀA`‡A¤®5²ð ®¡,Œ +d08i |äô ñük½@®ñz¸ðêî6s‘–Ⴚ¦VwKj¼¦„-¼vZ0èö,ÐÂkj–Ñ„*Âó]CÚ+ˆÄ×|rtÀæŸVÀ*l°ª'67V‡có9à$›#QdËæj³ù; Ÿ'Su´1¥D¨¤ œµq½ŠmŒìÚzÑm,}ÐÚpãB”/æv‡nüìçr…º13(ÈÉn%ÀÉ£'ÁJšS+ –nsjF‚[rN×UH;ç$·çXyõŽG#tŒgåitÀ^ÖH'ôI6KÇRΘü}dlÏÓ3Àøš½xiô‡ˆàáAèêáÅ@¦_DMëþ_ŽÔÅð´|`>Gï |Z)0žÉþšóÓ:ò€ƒM›’ê4:ªd‚©7ðb«ÇˆõÄ8ˊʰÙl…€+{`”k…X|„šVe?Ú‘šbMþì¬-¨'îõvÝ„ P09a—ñ‚`›ò^¹XÉÉBà`XÞ–TZ€Íé…w·½iKƒ€ü°€*©O! Bpª²ÎDáB0PuF” +B`Ì]B× „kÄ×IV=?´ñwùÌ%ùAàÙ-6æ¤ÐAgRÞ÷¸¨FŸ!ÊÐ1Çœ8½ú*¬à¿ÍRµð¹À¼.LFƒ2FPŸÈÖº£è‚[’Uò‰\L6èÂïä­ÁP“ ¾Yùzx7‰€ tU14\T³*³ mšè¨+'œÄ‚@¤6M¹T¦¬“iê^È"Õ@p!é4jk n¨mk ÀŠ (G :™€ •’í0KÍÛ¦fGoå¦`$¿ ÍË¿V 9! JqCÅJZK‚`½x\Çû2?·?ÝÛ¨Ü$”Éa¦- Ô&T£¹V 5).Àj‰Ë .>Nû*hþ®Ìrˆ¡m lûd¸Ø&¢þŽ*Y(C%|U¶( +`ØÛSV8Œ|Ggäz°ß:ÁÁ7fø` ²%(¾l‰‘: kí$ +س| +lJ»4){]»;u&½I¥@]\ç&pÅI O5J&ÀerfXÌ«ùá\µHW‰”€G¤¢^×ÑÀùkž$siˆ§âHøH­dŽÚ`w+Xÿ€6A)lÁ‚`±@•Ý„E `#‰ó€ü.¶øÅ0ÄãA ˜ø|ª6‰šO/N§†€9GãR”L"hËÁV!ÑO•‚@ËÎP½-Åÿጠ×㿳ð‘ncYd+ÖPbܠψG‹d< QfX_€Ï‹Ïù2r®xöÛˆÚ’Rˆ¨îŸÒý‚"s'ΫFr½í帻¯Bñ€(š]›ëîm@᯾o„Ò®¾§F“‹ý—pïuä±®›.Þ¶¿'+ð:híkZõõ¥`ä–ß6´(ü[‚˜ELÿ½q |ó„àãÈáÁy·‘z¦– ¥v¸µÄ9¾Óþ³€¨ˆY€Î„RÕšsêÄ+@ܶgÏ +ÙiM® +Љh²7Ž®T[—ÉGŸ¡3OWV¢€þß]É|:XFÊN@-š©;¶ªv™€qxUc÷“L@Ö38šµÉ•4%@õ ¢ÔP°† Þu 1Œ75',?´lC-vƒ€kš„€”´Pa’@•(Ëï(6€~I8#¬¿ïêçûbô‚7¿#@®Å!Œ6€\«öuYÑ'õ4 ˜•ëo»2@¸ÝzÕ¢ª¨ð @G"Ù¤1Ýoò;TðñÁ³€ÔV+ÀÅ"ÀC,燇žm~E +iUíyx܈I7–0!ÁìÙÙ7&JHRdŸzL àe;/$ûàPGú}bÇSnƒ8ÅÔÈb®Ü¥¹üœiÙ·Â>p˜  MRC + )Ð:¢ñ)€\>µû²PV Û›¥ÓãñpvöÿþýÕ à™1Dfs”6/®ÞLé2`· ñ€ù +>iP¼0Ú;r¥AТßäMXЖŠãî“f`«Ô¡cº–€"ÐO}³ ”Ç?°.ÿï‚_æVÃõ{ÿ·ZtÚS>³<ã–Ú\³bÉ!Ǹ­lÈ”êÿFãoÓ Í­ËÿÖ ‡!òþw‚­P‡ðƒ÷?ûS€'½þ ÇZ1Cgïö_žaú¯©ñ'‹$A²çßR#‚Ã>óTþF¥~ä*öÿïÄZ +×l¯:0Møÿ—ŽÓÍa +Âå{ÿ½~»àýfx$÷‡Wïê•Sh^:7¦ýñ®ð¤ýÏd +Ï“´"ÔÙý|ä0W°l¾þ¯'­Ù·@þµú?bÎdŒ¿{ÚÊÆ4ýA5$re° IXw%ì…h +ðü9©rbEЬÔíÑ4£!‡kK«wC`ò'‘ZxÖ`1þWgA#¦–€zø_ÿÆ·î:’rƒ?ŽxÄÃYϲÓÛï×,H'xi³èÝ]YHWB.9‰^÷“Ò 0Õït÷G-œÏG·Ùqíßã™(O {Ö Ú/¨–€¬=(`xû+šÁ:òüDÍ¿}ýóÖ¼'ÀøX©õg¹ä š‰Ìv¬þk8KlV=)mKÁ¬þSÖväÎq|Óß\fÉ£þ-“Të'ªé_~F²y"ýW_uø dpÀ==ôã&±Ñ:Xz?BoƒíFàÎúPçßò¥É^=“m:í[Üü×QËüªÒoâ= ñ2ÆåìªqJE#ã”ßËTj¥ VòSùð€ …µn ò—XÆôàø»:5×ÄŠ³/~å@*¨éж'~½lµ0”<üýçoŽ +ÿ§7Ù9–à_ +åÛ&-Ñ—¼©øUXÙ£ôtmä&¿uý’u¥›È¾ÏŠCèÃËß§vꦞqF™¤÷—@ÓçŸèâýëÊv#ÛцÖîËù\ÀQ‘åHÝ/Z$zÖe!…Úî"÷©Dã>nȣ߾ÊQTJ‡¤ÖŸÐÖö¹éÂÙ-]žj<¬}¢¢Lø1¾Ñ~‰¢~;M™{šýÒ®DõI U€dßÇmLPìĈ¾Øçë; C/l¿¿`Ë“«¬`yn†0˜;¹U·Š ¸þ©ä1ð-|òÀ3ö„‘çP?³è÷ê_/¦#2Ä9Uõ_4l½>UՇԼĮM}¦÷ëù ƒE©¡þåï(šsÔé ÊxüNëÒóè`“é [KOçËÖÙCˆ)®vÈþm{^ô§˜‡™-¦Cÿús{5 “RÐ'³¶‡Š~g~~oì_º!BjžO-ÕqÌ]Ì‹¶æL/¼ŠáE_ ç]ß½BKK•u°ùY;dpy=óéA¿}…JaÌ  v@@kÎ7…­jý!ÑJ{ùóxÆ£ˆ^¢µŸ/™B>€!¾|KƯ봽q"!}ùÖ)„¥œ|5)ª–E9+ÿË\bé—嗘䩷Í9æà(?Hï×hëÐ_(à“ÝXöÓÓøÛ*„WkÙÁø¶"Q 0>–Xd) +Öò)²ýM%_V`¬ó¾BÞ4jðÓמM|Š›øBG¬Èh½A{Â@ÿ¬MD¦þ×Ì ¼°×`ã ¯‚À¾ð¦‰ûüÞyŠª{N +ÑÈ×ßkÚG·„ד2eöŽŽY›}®ŸÖéôk*¡·^Á/Ã:<}Šyµþ C‡`$ÍÌúÿ4 »³—J8¬'Ê`„DTEh]}r éÈŒnÄ`õµV;±G¯ÔÝ©~.$*ïíexêGœ^¥þöFUÝbUkÑ-FG˸Qâƒz°o7:%C0zz^öó&OÃ8ýžy?˜ÚÓ EÓKÕ5o{©‘¤/½×Ùªš…d+YéC‚Âq—Ž¡—I?备•˜ô¬è¡zŒã˜jŸÒ‹aÌQ7ө˦ŽþàöܱGY¹SFŒÌœÓá&¿JQ–(zG{æ­Á† E¢5&’4 ½bö) Rxé³ zK¢+ñÕ~Áõ(wUÒ~ž\Ö<³!¬ãZæó‰‹è&2Q“¦z>×"öcx~ù‘ ôÞ³¨ÈÍÉ9RÆésÞ–T6Hë*·©I1Î Èáƒö +vâ«{óˆ0rSÛ%mÞË¿o’vÚ¼ºÇWŸês5?4˜Ì°ÀEÀE󑵿„îÀ/^f^©>BÌÌ7öé‘Bê„Ì»Œºg¸Peáýaþ÷o¿üW'5i s»¼Páø•ï˜zÚmùt_gž×ä–Òødy-=ƯàV^W$Ùau+ÿnb—MÊ´¹ü9y_"ô¤FFÊ#&U!‚Êsœ¯yðºÂsôDÆ hËPyI½=™”5ªt¤Ba¡ò³£ü£¼¾c“2ÊèQ~-p¶ªÜå¡acB‚@ß[y”׈ÕÀÎjr5§Ž®+‹„*úäoe˜ƒ}òØÅo+ÙšŸ<ësyMŽ9ï“ÏÉ2³ÉôÉŽ„Ûš€,·]M2>ùàÀÞ•Eÿc[}òWz +FéóФAOþž·E÷äiçeY–ꎩ{=ùœþD‰LtøÌlðZОãMÅ”<›…“kA +ˆäÓÿœ3CùŒü„Å×aópAägZ?ìžøÄv¿Äüš¦Ãà_ûã•Dû¡úcÁño¡8„›c¿Ë捻Çϋ‚ShTFm<ô#GôD˜bMã0ÛÃZ>|K~~¡á/cƒ¹!ÇÌ’`<¼‡/ÓõÖ“Û;R\“2K †Œ7xB$ëûm>'՘ТܛïØvå„qù‰ âû*,‘]²îî}+t&ÈŽ;:eïªçòòpìÐužÌԻݻoëãŸëëÐûýoù\Þ?lL~{'2²i*æxÿ_º\/:Pú$¢ð¾laP«õ®ã +¾»žuˆ@]î/ßÜýã÷ÛÔb|V‚µ{shʽ“ÀÓ&Åîp°Â+ŸóʺCÞ0Ïž +ŒîÊu¯`Á±BOÍ|³Gw-Û +lc‹¨Ÿ;UÞ€µ·é±¹ÃbŒa@Z åˆa€ü=\-É]B"&æFtă{¹qÿªµ±—¸gÍÑ–Ó[¤± w'ÙüNÃéHÓ;¸çuŽw{ÁÝ„}oߟLˆÔêKÝÝ~×\àTa[õs»>퉇Oóç,–·½o©’11W¯Ck{¸FvV•b°ÙŽ+ ¸ˆíß*™ ¤9ì˜uíDc€,]¬¢ÜXûÌÐ¥“ÑÕNq:/íÏNë‡dªó™[¬¿FŒP„_–vÅiê;ÚÉ"9 +ÇyÈX­ÐÞüš‰ÈÚS­=€4ÂöÙî«^0ÊVgˆÝs?܇㗠6{tiá&7#"̘óÞ•+Â-8‘e¿ŸGbAê,û׋u ÊØ(ûy„Úø²…Ö=5H)\³\ »Jo‚ˆu{Ôpcwab­‡ög$.vÆ2‹ +2¥ë¯Ä®üÕžã°4ÙXÐyv/iÌ*kà:1Š ì—Pu-!{ÛØGY…ПPàסÔç«Q|]°S ":‚´§¼±#[%ÈäWïz½Ó »kýXÖu•‰SötŠËÍõOÙÊüÍuл’×Þêsq=¤ø¨ ³Ã•»u%}b’ë’N¸’l½}r¥¢µ¾Zý.Û¼>C‚ò.YÖ¡àÝ!&‘p¬«§j™ÇsWPa]pÝØA±¢ÂW/ƒ<°ò±¸ßåž«ÿŽ®E­ÕlŽIh'EÍ+À°úá êà¹ì«ûÓWº;µ}¢§ó¦tþè1ìÖé€É/8,NÇã”ô– BÞ&›¾¹¨³Û¦¦Ö)`\cûD+Ø­Ó -Šem€f¥íK_âñÙ[ݵtlèEÇûÚ”•N +̉J;J‡µOdçpJ’WÕ¤7úʵðqꈋ¤×C(¢x.›» y òJ0 BjäN¾û!{¨²vôj%%ùÇ-€¿Ÿmô, ¨²@›dôiöM–Èèu§Ö¾'¼÷]áq¼Äâ0··\Õ– ª-ÑeÎß»é +„£lˆÍyæŒêÐîLôê§*j¤Š£¿q/â!Õ. ¼,FÀBƒÍ$¿A.ÝySœú~_ø\Ð *s^jcЙq§ïC•þ‚n¸keýøASj»ÑrFAúº€£zÑùÆ@àøÚ÷fÎ^U¿ã'P¡ºcÞCŽ˜¹CœC8¶^Ç›ïoüÖ¨ZÖó¯uóa—7w ÔÍiÆÈÇ Û<lj`cóÓ•¶Ö)ÓKðQp?¢æÆZcjÓ¬‰æÁj#è¦ n](s÷šÑƒ?æåPj×Û oÝP³˜“«$ëá sE£`0à–,Á<9þªéÈn š+†# Gà/ó¤|¦Ïïa©®¼ü­M°°¢hÆ’Ÿ._Òf±‹ºLtâò+î˜èå—Ô@Á#[NiVÛ=«~Ä)n?o´¼ú#3¿,Y~lyƒ>a,ÿxÂtÔ„bonåÔ!ÚdT-VyV7ÖK^V9f³ƒÚIi,çEåÇ!,ÀË”£‡@8‘…†öcRnŒè+"’É߇ åê"šNL­ðÝ'OÑ,<$ÀÈI'¿ÕÉW¬Dd 6¹LFÙ5»çÆŽÉ/o®]K;ƒiR(ØÖ’?&m4n¢äi–“§j 5Èé¼s`Õ©°.~ä‚<!Uîó4ÊF¿MÌ%µÈïaFÆi‘“;àDUㄆÿ—Dv$X„󙯀òâ®Ë´e ùð½¶/8 P[ +óí#AÚ ªdµÀ‹?þºCèßã®EÀ ÖNÒƒ%`=Ww<žS ¤[xu¤Žc¿9±øÒßi¥£„=F=žá’p¼Œ)š(Ò•~v²9ä¹I´Ëdž⣼€ÐÔ-ùÅÅ °`Ó?åˈ)MM¬Væ»Úbœ€ÌZÑÔ]‚- ‹ˆ‰ Æãt4NpüWTÚ)‹âØ×úÌê‹ag¢âyvX¿j†¤8!­r¼÷˜ÅAZx<›ø‡RÕÿ´pr …¿ûH<ýˆ¤WȈ§ÞŸ£àW’=ÄAóFèØ'bÝŽhç5˜5 †ØÛüðü§§yø|B…zu¸äµÜ¦‚]9§ 4€8uØpG.né‘g¸–ds~)b~1|‰k@é82¼p¿XðL¨tÄcK4 —|8BUˆjQ…›¼ŽÆ¼å ±…Â(ŸWX¸|7&ü’ö;ù%¸G8aˆp5&‚<+'‰¬Qƒ5¢í³Ã\víjÔ7”Ô¼êØÄuÕt*p¨Á¥9%:Tl@˜Ÿ"ÿ1Mƒï~ð¤cûip’QíôîköÉ]…ÁÙ)k|á| +ƒk³ ‡Áó÷ãU¬Ñ Üh£f»¯:Q ^ãªjpzT ˆÕ%Y|o58˜î”ÐèàT¡i@tp-¹,8¼ø o•⫺'„Ò¯Á3Pá@õ>·¾@w•ŦîMZ[ƒ‡ã5¦{íšo NÃÍ”nùöÖÀ\ËÝIᦤ÷5øB´4ª5\‘ÙIƒœCPhb×öXƒÇv·Â58Œ=õXyÙ¬XŒƒKC +›ÆKû5 ?EÂ;¨8³àWÎ{ºÔ«B™\YpêÞý"3è?üã™çÓþôÁTÒú -ìî‹OzØ~ƒ s¼ ЬÀ-Zh€·5í"ðÍ£´Ø©· 8$žª0þÈp¾ß~8åí¦8?‚Ù^?©·Ç–¿ÿ›Hê*žñQÚ<*ª †QŸ¬X(Çþ~g3÷>iåH©Ñ÷…$W6œÚoài„à$‚oô[Ê@_/õë¶í&ò›M5,ôª£°+ß·"Ï‚1-©} ”n¹7¡ÖîEÙ?Gß(à’àèôOv +ô /t +£æû(ò¸,òoAxN +Òö ¾µ±ÔpŠˆz¬Ù‰²L3“30ŽéÞ* WLÁ÷bkosá1}~ÄÞ]Äg”Îéû.ëŒBÓ×ÖÓ€:A½“Á‘pd’¾”Ò»}ÁÔhR-øóþ匚™Ž”ä¥}QÕ¹€Žy¶å-iªô딉ä]5‰ägå¡J^oÍEMÌx®ñÖs=¼6ë’9˜¿;V­øeø·êÝ´à2 ‡]v·PšƒjþŽ»ÈS…‰e¹Úî)«ñr„íö™s¤–UƒìΧ,ˆAÈT$dúu×X"ã;éKC[÷Jn©<ãQa¬’ZÝ¥.P¾8ÐIên~ߨٜÚq»‘ºÏÓV¬üެõ¬ŠâÑëúcõ'»èàìWÀ‚ôXIwEg{!z $ÝcÃi(„S²›º|É NèB,Q¦‰nŒ„Ž&2þ’ÿÜè#›ŽÁ˜ H;•Ð,Úfs &ûÓèTÊ is'á˜öÌÍ>Å“¦õ–Óö1÷ ºË™(cs§çHËymJcTH•sG‘{–“޹yˆáþTuãŘ×ô;óê‰s£A¿mØÕY…ëé17²j£x2憬¤9~¼1÷ÙÍŠŸy6·ÿ‘À׬ÿ(k6w üU endstream endobj 19 0 obj <>stream +Œ9¾´gs“H_?šøD[s#ih¹z˜E+=;B.ʘÍ-—yÁ„py4…sŽá<*‹Í „„pý÷77Vs¿屿­† éŸsnH‚å$ÝÓG­ÕIkî†>£;:wabPýóð^«tnô^f‚ÙuúÖ¥ºCÇ3¨·éÜf‰‘ªMçÆ¿¼‰éÜ$ÛGE:÷¦UÙÏ;ñ‡ö©W s×hѹMÐêhq¾*èÜó$‰³Ï½X²÷¹¯ÞÖ0¥’AësÜÞø- j¸ÏM™«³rWzësk¢§¬…\K¥’ö¹á{6ZÛöÚ¯.gŽÎ]ö8Æ 0o:7ÍüØí9·QXX;äE¡æ6ÿ±¬r£¸šÛÄ7 œ9÷¿¼Š¡Î¹=‹55·ÁHa:l0¤jî“àœû\µ®Ê?ç–ϰ¥4çžé´!µˆ.ž†pÎÝè¨l»ØµwÎý$i¨ö‡97ãOÓ¦æ¾ x²l«¹Ã†\¥°àÔÜm0!+ʼsQsO¢k‚Š»8AeZÍ]<1IþtnM!CúévŒûQ,ìs¯`Ÿ1;.ßçf¨J[è6wi‰Qk|î´¹Mì—ÏÍ l¸òÁFç®Ò·ÛÕPTˆ\Kçf +h ·õš[8=€˜g½Ô²-Íß)e¦ÆSKP Å@–[G£/Șº~0$Ôzy9`´ò΀Ñ_¥÷è 6 VÜF}ý?‘h‚”‹¸E²½šP ²ÆÏG†û\ É"f@ Ü$Y;ËîœøU¦,gbEÔ*.%€ýÛvš"@§¾Ý™ÛBú!ViövFü6QxpÇÛ‹µô@l/ívÌÚ1ŒnS-›$ë1°„ÜU Íe?y¤öÛ–i•­GÚ”.~‘ßà|XkÛ²R%?`ç!Õý¤í½ûŸÁã^ÈY\ÇçyE^Cä$^‘틟SVûúa͆Gl?SLY*Ķv ‚6#pæ¿6ãoð^\²kG•Ê«¹—l°µ)ÃÄǶõ%kÓt ñl¯Õ^ #G°¤GµÅòŸúê½À‡Ô†¼—[Ïè‡Ï§=ÿ$X¸ò>›v0?FÜT+±½¥Ô]PGᇥ$í(“Æ– +^~íTKCd{Y•J´7@ëðøÚÚAw™n ýÅV¡­Áp.L¡Îܳ?Kl=$àÙ̈ÁtÎÞß(JÑGH¿7Û(lI¾Ùà6¥rµ*Ö¥šMŸ™MÖ‡€ùùf·ùœVÝ<àçeÛÙÍql×fÙ= £Ö¯ÊmY€–pEHŒ=¤º0‰ê3¦b²—P¼¢`—Éö’¡‰dã•®í~ËWØDdCQÁÉñë_þØ@6€mí±þ±Ir!®£[f€jÅØbz1ÛØ™"Ks$~JÆ–Pri®Ud’±eÇu!¶&¨ZŠ E>âIìËž©¡( ÙƒO v]@0ç9ÿ7ìé ëØ „:ûÓ·HU°W­"7R²Ö¶]ÂþÆ÷PÝc)8»yçE!âh›`ïî¸ônöre!S`—lam¿Øàü⎿¦ÐtOŸµù¾þÒò½ã*Úf¾Îdtö¼‚‚Ýk¨«ºfàcêZþÔëXJ$|Eu©¨+ÌR÷Y÷œšº_ÛŒÀ×Ô%öáy?@'$Ä(¦Öl@=O^–Z@뢓ê(dÏ Ô£îÐSƒ v¤VJ«÷Q íªÊÝÅ]jÔ¨6ü¶"®Q6¨f5„8­E&6ÑK¢–FÍxj]n¨f +e-J¨}c®hu™Ô ôqãÚ¡œ_X9Â"a³ìÓ´kŽ•Ýÿn„Ôžö:Ÿ/kZåäi§¾íô‡‰`\nh™tº_ƒÝ–ñU;9}Ï…Ï~ÓŸ(E:‰µé¹šý„\„&‡ÕÖtSF-˜… ×IÓhžfêæôÍ4þ…¥œùÄšd2O±BèPbHÄôK’ÙþÒ¿/íÚ¥]G8TcÐÛ–öV~ÉÒÌÙ4µäýÛ´•VêVÄþªŸ]…Rie™mþÀ'Á'¥O$ž‰JGAcpH¢@–~Ê·¤Ï9»Ú=Å=—íë9|ŠJ6„â\ÆÈ S$ÒÃç„ëòF˜ÒG˱I‚Ž^ùGˆ<ä{ûÙ£÷bC¸‚­«}y}ímGcŒùÔð‰c¾tãèji4šÏCÍÊš°Ç˜MäF£‰ã¿öî§·@Ñ?ÉhÑü¢—ŠÈxq +/“Y%´heØ€!oE«Y#6.þõ»:¦hÔBꢩ§€Õ¶u¢±`½qµ Jô2èÐüøÒ»¶VEt½re¢£n ÚGzn_gjÂC‡‘²ñ]8oèôo|‹lÝ*d½<¾)C'Å^ö@ >Ÿ@A +åB³ÄKàÂ<èuìShâ™èÜ»…(¾åæn`I&}äH3¹Âmõ;P„^ß/h9ÒI +A°¢iŽIW“ñ~ž '`jž±lZé|Ç,³îÉN3åPº³r1Ê2éÌ&M3 Iç‚Ïâîb-€Né2X™["ÿ è¤0cÊaËfïçÿ´ÁhéÇ5…HÌÏßÒ¥•ûü¿w’Ižô9‹Gƒ±ÇM%Ÿ™mÄ<>—#ìÙçƒÜž´;0aC{4z×3íÍqT -=s¢$ÒjÙı·;‚ó,¹px'Ï€vÿ*Åó±Ìôâù-fÐnV=tuàß{P™ ÔãtÌ.¬¦¼ó©wV$bÔó˸ywÙLÚ •íÌÃ2Tê–_gŒ3¡OøÌ¶:{@†kSvÖÜb:³“i0ÓŒ4æF¸ .¯©s>‡ 4­§¬YÌY¶ó´^…j—éʧ‡BEóIÇ/öÁ­•q¼Uœ€£*~ gBŽfúÎX< &½à”ï›'¥øÒøbTäÍ—’ˆÒÍï4Ùƒkps9»û° [-®Í@ª¡ÎæÜEÑŠµèús0§‰VI;™MØ6¯Ù6KÆÞ+kf2è3§6Ù½©f`¿ \O‚5ÅD<—f¶^øþ_îí͈£yó®¿C}å±Ð¼Ñ İßÓù™ AS aQîã§ù™= µÖDSîg6* T÷QÄ¥üÌš?E\åû™w¬?K&Nè̶D=q‚š©ÔÑ™¿6š{øñ§3Óža³˜‚tæçj#&¯$”›ÎŒÒP’óKX3sÛ8‘XaÍŒ¯c¨EW‚5svؽÅx6¶fVUšk!ÖÌxú4-ÉN×̾õ«NiÀ—¥ÐYŠ™Yû#áÒ–C̼•H•\¥ô‹™‘mÎ6RÞÄÌ™Ÿ1"¢¸fVñ<¢YYê2§ð:ó'Ï3Q.Æuæ·ç#Ïp(}ùÔCmÙ2c³Îü½7ÓÏ<• jÏH6 cj«#–À˜ô3ƒí¢åÂÏLoðy3Ìn EgÎà•¬Ÿ!žš™!è•2 úf{lT{6 î=Íü#\€N3Û +t“x`1¤™P_('µI3S šæ‘„æh¾0`7¸Œ©M3O~eœáj.‰_Ó‘ÅP*Wæ}Ó:¢3`ƒ¼ŠœÚdÞ@4äºÁNÈÜêÈ{®D䘷v6ù[ c^_2Ÿ—1"{¦s½A•zᲇÁ»M ±ew…yJ˜ /Ò&Ë`^á®Æ0#°ù2º A¿< ÿ.áÔˆÝàÓîÁ1JDñåÆÉPø+³9/à aÓÛŸ`ÞeºÀ¸å/H”¢º\‰±,\Re.«ì%S +Ìe4{®ö"~rYÃeîià‰l+ô£[ž´U|냧„2Ù<æ¡9:rò'•“->v}öSÇw÷òœK¹F°¯¬³è¶6v:µkú4-:8ðñöꜪ|kÁÎxfá-€%IUš§γÏÉ+9qýÞ)MhxäО`1=Q7žUE•\¿ËÓrÝ#èY éQçI=QÕÚÓuz’GÜC6#„=c"Ø.sÏ´Û«Aø¼Þ; øŒ7ŸþÄêwý=ú!þóH–ß³M|Æ‘O€°æ”%úœöéÈwAhü¼k¦VìgSkÝ9 ¦þ”»šñ/ñþÔ1iP£@sèö∠+þI™*wyŒ3ɲ·C¤L  ñ;·Ž´rJxÎmÇ;#´þÔµ-ß1:†me¡ç8y)†Î£õÄ5´Ø÷š7’Cý–s~]Îòî…h”1”#úuZUW퀚ùp*ºdË‚«[€v é.Š=¢qblF7Àæ[Æý¸Üôßèw$,:ÊÓO[ñ¨¶ ‹1F%tÌ\©†êòCŠx“u+Rði,öHÑôoúLR¢Óôp,zÉèÈ\âKÊ‘©b'…SŒ×sbRŠØÈâ–JUÑðP)é‡Y)ñ6G*±Ô…˜µÔJ!]ÊÞKÂ¥¾T¾w†©&¶1S,fN;f +Ä€É04=SõQM³Ü ³éoSxSÄϯ*¥4gJlŠm_§e 6O9?ÒÓâìäÓ×Ðdü +lÀ¹ýTåy³ zŽ¢rÞ›/Ø *µ4"F u}Ï +~¨l¸y­ ŸÂkºcTµ¶õœŽêþ…tTjPÆ Ê  Ý%ÎFR¶GÝ=!´ËEj–\[)PF©@qC³£æŽk%¤Wª¦Ë +’‹jóÁºøØX"ëæÖ–)L0UóˆØ«ÚÉ$¸jE< s°Jaœ*«Û‘¶ÈÓꡜޔ[rÙ´4Ñ•«,¡ X&›Ç´“)‹^e®3R9ÅWNÅ9zBê«—þ60X3ýëö´K²¬kî0&koiÔ–Bnƒ˜qÑ—¬¥Õœ—Õ÷ZJœµ7¿AkÂ÷BÈ’VËâb¤Ö $wòS°µ¦ÁVÊÔ^p[ƒ…gwân½-p5ç‚pÈÄUe"2‡Nr­þ¤ÅÞ\"×2ÒÕRÎ˲\K#òwý”z¯1¶Ð2ÊëÌa8O¯Ôú{ ÷:=g/v¯ +“™u¼àШù{_êycÅ_ãùÈ Øgá&!†6±›Ù“Ë +¢Ø¢·Á~ ‹È}•„eE÷´°îgÃìèÃrðÀ Ÿ“Š}öKˆÅªËJzÄÆÐò×ØÛƒŽméF’];öMš Yw%7|âý+â0ÙÕà»T¤}(kkªFCXWDȲpßqÓ¤rz'Uê²ñ“µÁù¬Þ³ÆÎK.f¶Tó© Ôì!³Ýì§íäÉYh –v–Ïl`¢{"€–k½×”Ðv3â‰l|ˆÖfæð"i “gqZÚ¥ýy³iósé•~Ú+l†¢:`QíDêT.*ŒL«…ñ%•k7¿)líÁzx]]²_{A‡íay²Í¤¶àL2[± ºÈh bäÒ›kÛY"À@mkhÀ'¯8½0n?'là!Lô¹¥‚3×­²¡PL£‰Ôš%Î|‹do±¿-€Ç©÷j°8¸_W Ô.$ö‘iHNttŠ›Æz*ãNµãv¼ŽQÝ¥@[ M.}lR¬ÜJFøËÕ̳Ó\‹Ö!$h›xf–å;=×*}ñà k¡Š–]ãRºýp·*žîðÍjŸºf<>uëÁ +yu»Œ׉?„ë"°2»™[Ãr²[¾´»(1´bÛÊIéÜÜýœù¬.;sò]=NZ­0tGB¤2ЈöÿÛ‚Pý©*¾ÿïo‘5¼'[Ìþ¿;'–•åtæÿõ¢L×,q2Ãêÿ×.ç§ {ÂÿKéð&š¶ý;´ævõ©ñö¯ÕBŸ ˆ™_ÿÒû™¢Üî;—]ÿž-K}oò_¹¶ë_´fYŽfGÁ¹™‘NÁ“±'¾o­£p†)C.4ûY«–‡nÝr&ìïù‹³j¹˜f§qÒúwqTé V/Ø$ûK‡J‰pxÚê®æù†ýå;“_;'¾aÅú g ¸€ÕÉõwW +$Yç©Éc^Ç*ˆøE?p¤ñ—óËÎŒpÆ_FæxX)ñWÒ‘s`/µ<¥ °È~O‹¬sÂÙoÚ(;Š¿“ê+ÜŒT¼¨oa9Ù8µB}=Hú@¹zÃþ +Ô÷ +S?Jì[<9mŒV•€}±/!{9v>•}#ˆÔÖµ»Z$J©´P·G§Ò:oPŠF´á}¦ Ø!—ÉrSɾ.Ðâv3$û*Kò†j#?Ìe_Sã;¥.‡¡CûòLB)u'h_"ûàײ‹Fû^#³ÑÓl U2åU¯¾·’/ÜËôÍÔ4 O Oº×êû<h´o6‡Év€uè¼Ò¾¶öF›³¦}í`§÷uÖ’1Y¶ÈûB¢\³/ŸVÊ…”;”%’Ðð`~»£o3²±Ö^ŽÿÀ +zƒ³ïó5ð¾²aç¼ø…ëá:¿ç]¤`¯ß E¶]ð—ÃD€3ý6Ä›£9äv^(„Ú„ÓQÿkª¥f`kÓü„½%z¤ý- ™Ÿ•pÄ›áükØ%Œéè5ÿ®e¸y·3ÿþµ~ƒª¬¤ožËlûEi;°á³äƶ3cÎdú›¹Pã7Õ§×q™%mǺaIN—ðŒØ‡ÉP"ø-ù®ûºÀßô„7Ì+8<=ªrº˜çü•Þ+¾_iΪ ý¥¬¡('ý@s\ü;×·÷LÝàçP5i¨ÆŒ¹v£Ÿn3|pÚú-š0÷èçx/£\iv†P¸‚L„s`¦vœWY6–àaUíO¾ûø‚ ª Þ™U"`Že`3ÿ!ö78ñ‘Œ Ñž,r¾öÅ~3‰ÜÝó):°Âûø3–„ÑJ¸ Î÷K +ǧ^ö4`ÙÂÿ/üñ®Ù’aæúh+i¸¡·á¦.9¬>;l£wºzx0ª"ý¾ÿb!íÑEL¡è3”Ž8 \Ýú,V§]ï QÉvA¥(.<£?<§63)F +è½T,"/·[1tË'‹,°,ÙÚâÕm?ÍWî‹5þâ’(Íb<ád¬y Jœ±™˜Œfê/]Â'%"Cüã½#knªAõdñƒã‚‘#!UŽK@Ét, ¨©áŽ3k›-ræÃ:Sˆ~¯€^@™—ò1rw©'ÈQÁÙ[$d]A)opÈ휕ÈSù˜M,È7rO±˜°‘ŽGŽ0ü“œxá3éììœQÏr¶E}‰=úZÄ.òPÆé²Ô”Èi9]dɲ]»\db–ë}µ ̯DöÜ‘¹&&`ã“k|Fp~P GÈ&‡dºt[’'6ŸU(ÉÃ_ðÂ!¨$»e8h#›í“i‘2Ow ÿ$¸4ÛzO’¯lt\|’œ$ô„“d^Vr•šî«æ‰Újôfß~™äÍû°$÷n…ÚÏTð}É$ wÆgrèI–ä„S5jW@/És¾­ŠN‚¬uþý ‚.Ƀì18Gt`ÆáAG*™¦!XX¸&.®$ÅÁômÈÁ©dܘ¢ûɘ5¨ä|̪ÂTò(2=1&š’}="x|å”<ä³`JæUÅ€ +SÕþM.H_=„KæÃÚ^Ä%'J6@"9]N%KIJ×ÿ)ýCö€Z.9K¨Âż .JòÙ9‹ß_û"©¨ßf +ùTv¹dÿó˰¸%‹e«Ö3ýÿ–,ÁGÙC{ .¥=°£à*åY²…4FÀ™•²d{[E;~÷‘%«ÙÀBb!Kæ1錓Gðrè%HÖˆ˜²Ï’‘¾ t“±BŒÝ®ŒaPškòuLœ˜µ¼&+ïÎØ»²ñšlp'´À GÂY=Ú#ôÌNQKTÔÉÌf+ií;³É˜m¼9l*ÌT"òct¦¦_àjË&Ûý7@ElÆOnÙ2G8”÷´òS×L! ßÔ’(î«rxQ•ÒÊI ôº2G¯¼Ör!¿DHöƲúx­<˧$EȵLèÇðó‚.ÃÄ›eA¯œû¸ç¿¼ +æËÊy_Šßã0çgÿ‹Ù@È<½­QkÊœî•Ì\¡y +©½Íä†×5Í&sôd5º+Ä'OÊh)hêÏf­ã[p³ýîT.€V ‡bgEqö«¶ô%ç]Hàæ8$ä¤s”¨ÁƵs{¦f9~çg<+(z6å tA­Ý°#wj1(!Ÿ0F½Ýûlùq0oOüäÑϻဵV†8×A:ç ÞúTƒîŒ…ÐiI®©BO4Ûù˜¡Û•葇^®7’Ü"úèD«/¯¿¢±VT¾¢]êÁh\Ð(–F»Îv­‰ͦ+ûÌÑk²|4Â1Ñ +éÒ[¶~jp"¿\ñj´ÕšݳݔhLùùˆ7‚ÒÁ¤Òªrü²&m96pŸ,&ÙìÒ²4&$¦Ão¡S3ísL-6PCi•oÚt›@C§=_Å]÷xZïói7ë±PgØÄEË$%ä +ý@Ô“S%õ°`q!êF3j%EÚˆ"õw0¡ Šâç$`#+Rgü[ 5…Ôï[8ž‡R7Ôwb¾J¤Þ‰*Öû µóþ›©…ü®‹ +©ì&(¢OiBêÓ|ÚNqØ%W‡ÔäT#}ƒB«ÝNx¯!õ Vk¥¸Zé·CûßÉ€HH}B#™H®H!õºnŸ‚òAQÁR+ãZÙÅŸA7!5¨0Ä:yÐIVl¸í[*¤nøôÙ“ŠHHíeî64üûv{ia¼ÛÒjCêgË»¨RjƒÊôRj2w3¾0ÜoJ”Ú×ILaâ¿3(5F òÓ_ZœÔç4L£Ð/°nRpAiúõR«wâ‹ÂNûK=^´Uy©ªþà,¢¼ÔÆÄ ¡,Nr©´ZÍßO*ÔK-‚Mí†òAâj*©³ý¤‡Æ&u[BãißVR›@'5 Aû𠯤F)ž„%u©(ªÏ¾3—Ô…Ÿ ¥þi}YAî%zªË¢ÿºõï– +aƒISRÁ£o½”’zz)Zj&H6íè…MjªÃ'¹ÎŸ&d2©0œÓ ÀùlR«·XH &“ÚÉàrÀ|™Ô„7 hEaÁÆA~R×ëªÁIÈlãQ'6“Ú±áQ÷È|lšÔv&[ó¨ù~ n{Ø#¹>zÁƶFíQ×Ãe¾¯¨còÔÛuÓsü•æ\Q·O¾¹ߣîR>;Åò†+o<¹UýSuÿ7”ÌS8[Ôwi¡—̲fõS„zô2Šºç®ï£‡¢¶‰7Ã-Ô%DØ^¨÷æèZqæåfZ¨!±0C_¨-J‘UjY€=üs =˜´][¨­…ØbKôÓ'ÿëB-¤Ò•½&Pÿräú]üˆŠµV˜¯O—7Žd€ïpœ]ɉ¨Ù +Ë!vâ5ÏÚãöuÍ@mS‹_|#w¨m´!t¨Ú.W gRiÿãy“~Ü 5îDÔ»t@M»­F+§iBn<}I@äÝÙNÖ8¨IÕÐs ¾*¹a=Ðt/;‰ë|š€@ØÍâÓ©ÃjãL³Í(Ô‚h‰ÚâRÄìܨ’*h\’d©«O¸mÐýbZ––Úóõg'Fs$5Ä· ܱ\OI}MØqIIjƒ,\´¥Žn1åÖu›º§6êS¯:o$Õñé^#’ª+l/ ¿åN”¸êãIJzwÒ‹[=žvõ”<¤»:8ÎÍy{W{% Ç:ãIJÕ*1m”RW§Ñ±€u½øëzbý—ÝOSdm?…׬s‘‹ŽÑº]ÑX‹ËÖzWs–öËsI²¶Ö´mÏð[ž«Ú’Ö¡Aþ]X_fÖš—[at´ªÚf¬õA³Y"¼†yµfÔ—/nTøj-¤Ù«Î¥ý$k½d¯ ä^ÞXk!“F™Ìœ¹ÙÇZ›9Ÿ0ª6ÖšÊÐ5wU>ºÉZWëÃYK€ÔGô•µžK=„J(;‘µžÙ‚ö_*°ÖÔ“9˜­xi°Öc(^µun´ykë¥ùI’ÜdÜÇ„gý_Q[›Ë4Ms¾Ú:ÈrSµ_É¿3è¯ÖÖª\Î]©»8èœðXhëõâÙGkÁhë-íîk€È=mÞ'?ŠˆÛnhkùÖ>èÞ:÷y¹™tî­…~í©à wæí­Ñ€‚¥2Øwk£K Ð ù »[KÏ¢\ãížo­³¶ vH à­wÏ&ª «ìYÍ) +o]YHÎuPðÖj‹õÈÊ·ò~+®Iœ´IL%é‹kþ]7¼â§ lÕ2“â¼ZgYÀÞ¦mŠš¿îT\KvN-ˆ*-®ÝW‘v©ú ‹ë/K]‡|¸P\K)Öúsà­ãiƒB¿™­hŒ)6D;Ü¿­ÂµJÍ[Ï„ìwÞÓÒŒEÅuí$•6·oàØ”ØZ¢­kµ^b©äM›kTE뺈QïwÛõ²ßõÌ6o©\¢fDº|AÒcØ#Ûì×Ãí=E`sã‹DµÝ Z—F”FŸËÂæy›ØÞwC{UV±ÆØ?ÜšeŽÍû„H=fT + ΂§ïéÁåšåD3hË®û$>Éì­6[jx!vµ³#»}¶¦ mL–دûÁácÚ¡öà0÷#©v™+‹MÖV+‘Ú];‹C9*òõ°lÏR§_"¨YNÛÏÿ¶“S9±FaHvÒ¡ï|½]øÛ]û™7@¥þÁm€¸‡mSÆ}‚ ˆ‘FÈM8ïåf_óÉ-“”q¹¿;"ØÜ–>œÇ>wë£ÕèžÇçl<Ý4“Ϩ¤†»áyæÔnDά¹»Ø¬øî¿iPôe eï¤È¡uì¶SÜÏÛò=uz ›-Ìë}t{î¾kÉ3˜YO›Iß%¢ª{½`ûFóÛôÞÂÞæ~ƒŒ‡˜ëýÝ5¾Àú4?¨35n!˜'pdKÄ–wú›à1 Þr. ±¯B8NÍ@…ùù^ê—áv?ÃxÉÞp.  îpè~éZ¨Åy€f¨û§ÝLbèz-…¤ø<ôÝš¢öÃ,üß;ð1ý‚Eøýú”ÈÉ +ÿÓð·y°~á3”aöâáÿÑrYÄÛº¿àÄ÷o¹Ô§«»ƒ»ËÐÜzOÕ%¸Ô?\Ä«Nj2,âëú<›!A L̤o'^ÊåjÅâf½ +À$`ÅËáLX -&Þ[ÌêRú¶¹‡\¥ÿ^ü„îZ¼ø –ü^ãÆ¦áS‘Í/4c-°»ø&Ë#í.Ff£S-¥ç.÷ÂvŠõ/ßx×…«ÇãÕC\ ŸÞŠüì%ù76ù¶ùê°Iy‰•w%†jy1æË×ǼÔÑ-šrä²ùâÅy%A²Àë¼ÿô|Š dÄ6 ɯGé4èÁ&J¾ÔµOùÐê‚dCtHÒ¢W˜†µ3(/¢ö˜Òk¡BFq¦g‹[VOŸãBtLVFýômw=õ çyV_Ö×÷WØBçÑYXŽF¹dlµ>¸}_÷\/t·wy†¯Ïä·¿a/K#@öèÒÍ¡ÈìÕ:¶>D{…÷W{5Žªï´½ê<^•ßÓÛëe6’¹\z{ͤàӤ¶‹{ªª(îýbS:uîo ¯jîO% °8È~='Ö=zß=¹S$zŸÛ ª‡ï˜}'‰ßÿâ­ŸSðÑî„Ï@8lqïòšÁ?³7W°nKq½ñEÅSÜüÊ·I’üÊPˆOHùü~˄̷»oKÚüÑyëîv~Pÿç[BôYŒš17ÒÇwkúæu7Ž”¾Å‡üX€ q'xè–úïœ>»ð_(Àìžïóm [ᇢâ’ïöã ©°¬‹¡&¥â¸cû +f]¦³*ÇaK…Zå$Ášû¢ÅÀÚÏݲÖµE ôM‘s‡¼&´;îŒO¦ºrÙ[ŒXäªñØŒ%¶Ýcº×BsÊ…dtöÑIœÜ*Ïúkw.¦1.kà4ÎÐÉ-\.þ 2{G—¸$4Y}»;:Ù]ŒÖ8`sŠþ…M_Ëî'ߺƒ ˆìÕc†K°{ ó—¨g·»,Dœ’§ö' ”ƒáˆ¾JOÔ_J +¼“íËd–Öož:w²|;´yÊiª¥ð#¯8:Uƒ9d0 è´Ê.‰ ">€qàðÿëÿÿû§Ï;<_¯ïûÞªªªª:lB) @(yß{÷Þû4 <îy‘èÏ(Á…!V#3#¿†/®–±c“¡K£aàÎæ>µºÆÏÍ߯ýŸE>{¨Ò[3èÖù æÓ_jÙ|TˆÄ¿ú½cèÒfÞiíKYM¿”Õ4ë Æ1Hà3gÏX70ëZHl1‘å×g3›cðÌêœÂ:{'lwEš9}‚Í*½vãßÍóÝ».o!HÁÏ“x£Çݾ¨mðsö§ ÝáˆéÇ`„´6¢$´sñ>až¶ë3|juŒšüóèGh{¬šô–Î9 +âÿqÜë9^;'S±EC³^"²6º,ÜA¬»oç|Ž·îÿ0úù&P±­àDc ŸœÐ¤ŸýTŠxG¡&Þs>ÒÏfúÛXï­ß@ªØIþùœ¯]×éê}ºoøöiøÜj±$Ÿ½Îó|lâûª€É¿$Ú½kÙüÌß4™ÇMêôÚO£‡\#JB{§«÷müäþŒÞ[m#8Wãtã>Ná·ÇÆøMæaÔÏÃÖZéÑÿ úÉйõœ¯·Gñή |ë2xj3Nw®ÁŒÈn³Vú4€ŠØ•<¿ß(³Û{ó¸]ºŸÆ¾(ÿ‚>é³{H÷sºu>Œ÷{Ä}R©³û›DÅ +T8ö'ˆ=©Ó×q¼t½'q¯AòEÚ:`:Û†0®¾”ë7‚tý¦0îsÃȰn]›#žëA™zþSPi,éÇ•Ñè°xüKžáß$ªØ·vŒn58)í RHöļÿó¸W£² EþA¹ŸÓ½ó?|öÏ"Ÿ ©gÿ0îU¹€¢ô4k¦Ž;ËžÉ8`¹ºfŽžñs“ÿº“©Øn2Û8a:û&k±n,ç°nnbýö©u”ˆÅŽ ÄbG0‚Ñ#ÁxeC“öz-ídKVí IF½iøn=üS,"û—} ŒÔÙý|xÖ†ˆÖZ<4k+&?%àmó÷wÂvwS¨!7J„˜Gœgg éÜz!к͠eU–`$Tޱøƒ(ý¼ +Hˆç|Ái=‰èÌE¤g ÿǽ?ÓÇVÏø¥Ñ8†rõS*âÇð*ê»|~&Òî-ÇVÇè™ÍB–~ÉÔë¨~%ÏïÇ ´û:]½O4)xû,î}D¹˜»3šËbbX8™l)ÕÛ1ЪÕâñ)'q~‘åà¯ñƒëØ5®Œã•³‘< mœÂ¹?Ó·6Uúõ)’t'£³×ki‡0$t&áX'y‚ý¥àGâìþÉ?%Юý¤ªè©`LÒW54é-(k¨†9`»™¾¶G?;ªUÑGþ$M°@DãŸréLÅ9^»ôØ÷"ý|xîï$ÖýžE=¿#¶û:à:»‡ï=úýF=»1϶!„ó0xö c÷e™=6YÆOm‹#~ëQ#i.¡ÛUTkùµ„KÂú½ˆz(VEÿÃØw 5ÑKµ6úB=»æïíiñ?¡ÚA~vÍß›‡q;«wÄvvÒ¦×6pú-CÚ¼{ñ|Ä{7N7î×üÙ Êu£OAï”*öJ¡`¿…ã§J1ÙëþöålKÆ#Y×±|Pv +JBiª"ûRê·Iöy¢ËÁ¾€dmuÃ’fð²~Pã’>°¾¤ë>‹zIìœ"~¦Q°Ý$þZPú+}PdŸ}8÷mþâ¾M`œ×ñÒqó¸A‘}7Ï!ž)¨Ù ¤n+H1•±thÎV;Qg > Gfuƒ“~0ò^ú߀áÚôú§TÄ߄굛@x½°×Óý<´íŒàš¼iG#@ÁXs¹~ÊY;6g¢†e4|m]¯mv2ÛP©‹ŸЭ–ÁC›{Âz6i¸/pñX7°1Ykõ蜷|tÎ VŠ|èÑïU + +UþáÎ}˜¸2&®l¶ Œ›D«côÊh™:4ú¦0î×¾õ¯¤Û« š[ª‘Jd’ç·Möý¥R°_pÒS± ¬©LPú¢Éî×9´ë8`º~”IhkéÀìˆÎ€Ò]D¨Ò¯/¡Ö[E2k SFé,ûä^¹C“m¼oôi oZ5¬©ZHv©‹L¤ážEc_ýþœ.^ï9쫃ÿnŸÅ>ôø×ƒ&k©Ž]‚Ñ™JŤ7PŠø¥F,~*“ý@jøæë}œnÿaÔ³™HÁ¶)âG@BÑG­*9~°ÝßA¼óEšA”{7Qä ­Îó4yo?Œ{ßæoÎÏè½Õ7t¿'¬weÚP í!ï!龜I˜ß»¨RÐæ9Äû>yZÅž*Fd²ì4‚l3ÎÖbãì1˜:3­å mA‹ê6¬K‰ù˲VOy)TìsílC½äYø•6ÁvO˜ÏßÎy¡H@[jÄâWP‚Ñ.ªä9¼³.ïü;ÏlŽ™+›cê¸sM¡ÚïYÄó6…o›Vkaænmä¿1„«cîÊä˜=´mxîÛÊÑ:ỺçÑÎ[îõ¡Ì?_”)èyóúL`s‡&Ïø¥Ñ6€sLGã€áüŽ¢]Ç×Õ5qµåŸÎ×îßÂùœ.Ý¿!”ó5}p]æN­Ž‘3›göÔêÀ·ÆÎÞr®‡| öFîË2wj5߆}eõȬ©bDö+ƒ”M§aäÙMp¢Ñ?ˆY'(¡h'y~»öËÞ5Ôc@"ê-(í\®šµ‚‹¡„5’ha_2û/(k +MHg® œtSªá¯|£eòÖæ"ÎÁ~•ƒ²kùؤ¤pìDš€ŸfðM¦ |›q¾r=1ÎH{«“}ËGçÜU%u{a +êŒÊéŒÅ“F Êø:ï!É@»æ®öiìë[?<ç CD禊F”„6%à]T xEÚE”…)Ók3ÚJŸÝ¯ôùýR!Œ Ôkÿ öÝ8…sŸ¦¯­æA¼ ‚ô³wÂx?çKÇ#Îû:ß;›&ÍÏܹuœ.ÝZü³™>½Ü¤Í»iÔÐŽbE¼›H¿7f×G‘ÏËä©Í0ufZžD½š IšÂR9éóÛ±m?˹Z1;î6'\WYö+!–³‡µ[LÔ „ ÌФu¼xÿ‡±ï?¡*~,—«Æe_5\úÛK¡ß»çÍÛÂùG=[GSÇiÙj¾·Z¦O-&ÏlsW&ϲÍ2xj3ŒÜ—að¾Œu»³Ø·N&£w&Ï®É6]·:G\W׺Õ1x·ü’æÉx™vŒÛ[2;[®!t£i×hš?8zHóÏ3™z$Ï®çQÌúý-ŒWžé[ë;ŒvýÆ×±l}‹E«µØ¹[+Ç­ó[¼[+óg¶Åºu-ÓÐAhòoiôk'}v…(ÿüÏ#Ÿ¿ùÒÑ<‡zµQaïYÔó<‹wM¡ˆÞÀ©ØnBõÚJ¡„6P¤ŸïqÄë?•{Ýç1&ÐmÞQ¼«6½5‚r4̜ٶ&0n&Ê ôL¢†_ȲïÛ Êõ™¾·ŸÈ¾ZÇ0®|«kÛ:¢Ý?â,ô L0z ORg2( :‡*¨õUÊœB»Ï#ÖóT}“ýiu±Eúù±ó¥ ‚䳉*…,ý~#à÷I䳃"ûì¡É?;èЊì»sºu^ÆŽžÑsë5pl×oºs5O˜Ïûú} Å@ûG±ï¾ñ«³sín!É>®R&˜›´Ù½‘0»¶Qeá®û9…w¾çpïãÖy¼¶YOMþÜëV8&ûÕ Lš§¯~±;Y ÞÚVèðh³ð;­Ö\RBµ^±ýÒ²ZK02*IÚ9^; LBå I@i(ˆN¤á;Ióûyó~ÍŸ›§ùcó5ƒoÇ gë Òy?·cW¶Ñ;“϶dX5Z †î“aåþXÌžÙŒ¦£k¼mtÌÞ-ÃÜ}-Vîg±sö˜ŒÞÚvæïMæaÌ«mºpuÌÚ6ÆŽMމ;£cîÌd›.\­ƒHçyñzP¥_?ú$ô XDv(¿M¡\-£—Fû,ê}#NÁ´éÕ ßÕX7[ÆÂÙÛ—¶žÅÊÝÚ˜¼2Zf/M–ñ3›_Îd±³™ì¥m;öÓ¸÷yó:Î׎îyÌëB”>'\WÓðÅÍ3k² aóµë6„oÝF0®ëˆñêÅ¿/Dè ýzηÎß•É9â¹Úȳ掞ùs›má꙾·F®L“§¶Õ9Ä£‹0 }Òg÷ï$Öy™=5:Fïlg±®vJû J?Ÿãµû6‚pž¦¯­žÙc«s¾w5‚s„$¢[®$Ÿ²TÄÀ9ß4þN¤‡þ(“К ô:_;ÇK×ù|&¡ªü>‹|~'Œ÷{ `\m#çoã¾ÍŸœ¿œó5~p?z¾ÈrЪ$¬8½¤_ΗΦÑsó6qƒŸÈ2ÐNê,¼ýþÍ ]·”ë<Šy=‰{ÇKçyóz‘æ`_"õÚB”L×gúÖfŸÇ<ßD*öZ{Òg÷+‰~?“s' 2„# 2Ôê¢ à[—ÑÂP9(2Ðãté~Ïá^ãŸíÓ˜÷sÀvç+ç&õþdž#®«iÙjìW‹u›á|[ÇÍÎü¹É:‰w5e_¿ÃÍX¹®}q«ÇdúÔ¶:Œu³‘(á|Ú­@»uå_-TXeÖEœ„µk¸/pYC‰Hô@’?}=¨²Ïó,îÑ<Šy]ê„¢‡ä“ÆêaY+`¡¸“X÷eðÐjº²- ½…¡»³Ø¹N†…«³X8;ûÂf‹aáêì [MvàÑþaÜû<‰wÞsð Qþy™>¶-L™ÖÆûFã|åºØÎç€éúÏã^'² üIŸ^¾ó4~pôL_½Ãh×°Šm©Œ^¨R°ÞY¬ë;‰xý†PÎÛ ºùšÂ¶¾£ˆW'~,";“¨á·Œë2wlòŒŸ›lC(GUöù«‰Ý@«˜ñÎë€ïüޝû@òÕI¢àª„bÀDc7ÊìöG¿.Øûcß/Âü“v&¡o5¼¡V;’t–ô‚5Óè÷þaôó9ß:C(çeòÖè™<¶ég#±øŸRÿd  Ôøç•6Á¶”ˆF?Õâ1èÑÏÎñÚùuœ¯œßI¬ó>Œ{Gl÷uÂu¿‡ï IúÙE˜ƒÿg±ïë|íl/Ç1œë;ˆw>h²ïóâ}°œ×ßy¡É@?D)è‹2Òg÷3…~o'ÓðWp¢Ñ?¥"~ E?ÛÆOÎîA̳ŸNÿ˜5‰¶ãÞ§ácó0nfõŽØÎ^ +õÚO©†Ü£MAÛgQï9îÝ?‰{7ŽwîÛ ºù<³™¦¯­.êüN¨bÏT*öT+"ƒ”~êDäªü0q~˹Y±ȹ~僲OPâY+p±Ø‹<ûŽbÝ’üû +X<ÖX;4é2&k. œ4Õ GOD xë|ñ:Ï!ÞÏñÚuœÂ¹OT9øŸV}ƒþ‰5Ñóâ}¿88÷oºq_ÇKÇõiÄ» ùlžC¼Ïsˆ÷iòâh¸³&®ŒÖ ×ý!É@û‡qï]þ¤N°ïiÔ«eòÖæ¿4º†NÖ1Ô«}ùücßÿyäó;‡x݇±¯öQäó:`;¯#Æ«{õ‹zÞfP®¾ ¬«méhÃ;O„ù·s˜×yó:P¤ŸŠôë;‡v~¦¯®Œ«‰,¿S)˜«$:xC±"Þ \Hö'TÅoÀñ?­&z£ËîÏñÚõœï]­ +öS,"k¨VįÚµ›Jéó{Uþ¦Òðwðâ’~Pò+0ñè püNÅvæàŠü?|~ÈÐHSÐÞA´ë$Ÿ­cxçs¾t_Ç‹÷}õl G¾[HÒÏö9ôû>ˆ{¿¨rð#yÚP í m¨ÕC»èðö ÷Ý8…s^æN­®Œ«{÷ºŽá¿!”ó9ß:¿ƒxçy óìð=“ÇægîÚê¯Ý/¢¼£P龜v‚‹·U É[*â½ÄiheÚB‘€Èñï 9þÝKœ†w H»Á H_„9ø‡.ÿl¡K¾OÃGÓè½Õ?Œzv£ßÍsˆ÷{ó>Ž`}S8ç“6 ¹Q©‹ÁF?$9Øoåú  Ú<Ó—Ö‡ ¹B~·Í_œ38gÿ8âÝB“~6îÇÔ•ÑØ6[ cgoqÄp¿æ/®†©³·/h[±4íLÝ-ÛÂÕ7ݸ_CÈæq¾qFƾu2,œÏÂàÝZp[²äë6„pëÖµ/kžì¥&{Q“Çbô¸Ûqƒ8GËü¥É4…ju Úûvk±l?˹òØKÚ¬é[›mçj:îöålKÆk°0îÃ>`á|6F+Çèq·Ø8¿…±óÙ¾[‹e£³\C üË‚ìšÃ1œëH£ƒ]FŽíÇÈ™Ñ9ݹ¨ñï9öýš>¸Þ“¸×™B¿÷ðÛüÍÕ7ƒt½GÌç•8½·Óÿ4úý>‹z¾†Ð­Æºu-öíÖæÞÑ?{¿³°#áXKpíô[92ûÕÃÏDêµ}÷~NXÎ÷ æý¡Ë?;ŠцBUüK¡^{ l÷(æùº§pÎeöÝT( ÿ‚Œ7%àíƒÈgûúýqÝ-s·VÇеÍ=‹z¾GQÏ×Âõ™<7ú†PÎAúÙK¢Ý)Ókï Ú}B¶¿c¨ç,ï$MB.Ѥ SˆWßtã¾ àœ—¡K£aÞÊf7®,c§&ËäÑ1uiò8Ï1þÝCŽ‚wP£ßã‡wë Þq*Ëš<Á\&O0× TÌ=@zx;…ryïì>¹nãG×gîÚºMŸ\7‚,¼¯`P~®˜vÒfám÷‘0»ö‘g =Ó÷6ÛôÉuC¼;ˆñïF⼇ï Ç¾I³Ðn"ýÞH „vФßÇÂq·Ø¶{›¦ëC”‚ŸÉÌ=¢,,ëAÜû9ݹÇ gÏø±Ñ1v7ÃW¦Å¾yfîkgÙæ3yŒ‹aèÀý‡0z\2¬Ü'ÃÖÕÛñ\í#©×y éüÌßYý‚–ýÀÅ6\àþÃÌ]™Od^…³µ\ö…ãfaà¸[~&&ö¶ÃÊù¬ŒÚö&ñM¾9|£k¼oò švŒ{ÈàÅû˜¬[×ΦÍ2{i[˜¹¯Åºõ1¾åÆí¯ü{øð’&aåº “wkcòì™Ûc`/gÙ±621n“…½¬Õbض{ Ëöǰf}†‰+›s¾tvŽ×îóÞÙ3{juO£^}´éõE”…>‡}¨ñÏavm£MB?„Øsºv¦î, Cw“ÕxÛè Ê¿D¹÷}"õêÄ=úȳ°;©~¥ÐÂÛ‡qïû,âÝ9_ºŸ–³mÝ|Ñeà ¥š˜žû2{iôË›MVóW3•zï m¢ÈAû°ÎÓðÅÕ3|jõ š×¾˜mµX¶²íŽØÎ¶Œë2yk³Œ-ƒ×6Ïì½Í=ŠyÞG¯ÃÈɼËY¬WžÁ[ë4{o~æ®­–¹S£iöÖ~LZMûò wÞ¾¨ÍÚÀ5zñÎãÚÑ=‹zþ§qÏæ1Ä»wÄtÜ™<6_ãçf IúÙF“Ý_d9h3~o¢ÊÁSh÷máþ ᜷ ”ë7„s~|g7‰~o("m£É®]óçæoå¾§ ç1Ìû1whsXÎ.ª´™:Ãw“'˜{”Ih/u~o¥M°íã˜gçtélÃ<ç+çiøÞjš¾·Ú(³Û—<½\"È@®Ð#àó¥³gþØæ—·NfæÁLÞ½¥l£±mŒg5pà*xq­ü&û*#‹ñ3ËÒ„×¶1ziZ,ÜãhbxYLpMìæn{ž“aìÎÈdòÖ²X·{Œw±|LNÖ•×_°qÛ0ì7ì%nã]CÎAB.Öå…½³ÇdøÔ²3ƒlÛB¶-M!Û<Ó]Ó¾¸m³üƒ}ñl ܃qxaûð’För&‹aÑül=†m£Ç^Ô´8ý¡ÿ€Á‹Ó8Üt¨u´²²ª®š œéehºªjºjÚrÐäÀ­nrÐd•Õ´•UÕtk9˜jrÐä éë„ÕM`ý†µ´7¾µ t6ÔMUM ¤tðÖôòβ쪨¬xhҪʺ¢z°Å¥UÅ¥Õd…Å¥¥w6Ö¤Fç¥#ë°éxÐz•…Eõ ëÕƒ,UUTYXYX®¬\Í9¸ªÚ¢Úzp•õ Kë—–•ÕÖÖ•«,*­XY¬é™q ž‘ +úçc‘EËAW™Þ*0¿?L`~wœ¸ÛxqùÍÁó›cF¦!™â©™‡:N5utf&úØÌḏ‰É˜3Ó±€NÌG˜áZü‚±‰ XÇ9ÿVx%žÃsx —á0<†Ïp~Ãqx·á1\†ÇðŽå/†Ãp.Ãcx á2œ†×ðÞÛ˜ `ß¼‚TÃ_C­‡°wg^\jŠoŠBÀ1@¨z´'ÝcÀïÈ7@˜%)¹Ç<-Œ’¥•1$Ÿ'žˆD25 …”ZÑaéÕqÓ»£Ì?R- ÜÀìþx¡y¨C5SÜã3¼#¦8‡i&"OOH#‰œ$¦¼=J¹b#^yýá.M¼£•,rÆ–2Àq²tãÆ6Œ_5(uùìÊ)ÀÏL¥N¦Õ€7=q!˜&ĉ¸çá6ü†ÛðŽÃu¸PLj⊠ðMOü-k!J ç„q‹/,¬èà _M> Á†Pt?ô ~ýˆ(ä@ÄÆL¾ µ@þ 7¡”ì{²dÒï ge“Ap-´_¨È˜1² m*±äLôá‰iØc&˜G ND¢ “E C‹(v"ºnn½,ô£RÐ5‡eá–…æ Äë0ÕdÄѩ٨Ã2S|c„¦bÓËJ×®WJ³†± °êåcÐë¥P®ÀŲp YS|•Þ•eÅ/peq +®ø×…-nk'`õÌ2Àعmà‘$ ³0.ŒO[´˜;ºœmÒÈ¢öXd)d?Šø*™)Èd¦ ”~¯=8»LR5ITiÛ/@–?éà5€[NG%bÊ¿$="û^ ˆì{í2 X$H&Ø•µ’ðGÌ®ŽD1[`I³ì¡¥,E•µM±SL/˜à#0ÁOÖ(sœ,®°YéR†ØäŠ/¤B…N´2€šs5Š\¨%’oi£ÇRQ'|œ+¬°m긒f9d ·³+l¡žKþ.½<\h†uŒí,ziÄ+ŠÊO’I–\DÉ”¢¤›,ñE®Ü¥M; …¨†*É$ÍÔã-_~¬ìo³ÇX<”«|Ð € “„6MÃ#žá&”­Uâ +«d™?†U½Ž†‰Šýˆ†1Áp ÃR`5 llC,‡’²ÖË%àÎTÚL¡Ûº8!‹K!Ãt¡%M³•¶H# +|Ã+Yj@`‘¥à7e`QËœ‘óÄ”6PV'u¥«¯x™®¯ik(Àƒ!`Ĭ¾Š“²É”{² –SÆ•4ÉX¸˜¬Nà6I—àeŽ.¹ÛÌ,2˜)òɹXä±óÒH¡$Œ-fÞûÆ dç …ìmŒe |%3ç‰+m›…LJ+ÿ˜ô¸D‚âò;äô²ðȈKÁ"5(ÿ˜è üc¢C•2IXOÈ8„Iß\Q… •;‘G A@™,5ÑdÒ• +÷n'ÛãbÆ<>x»p™?OP]$B)*úºš©„PSÜãt±Gç'£HNQÜàÆM²Úñ ²/–*t¨ãGNñÑNJ#ßNÊ!áÍÆ!šŽ@5`BºRábÿ1òÿ’±ç¢äð‰FŽp_¥øÇ'üLRà2Å®˜Ý '4»?dtzÐÀRã²ÐõÅ%a‘–„FFXùMâÙé¸D +ùþÜ$a¥Íó„7ή¬1öÈrkPE-uÕ‰^éâ’ÇQI$†˜<¶˜MÙr+yåÊ!Éñå)2dí +ÐVyRcÉbVd ·Q +Þ šrÈ6e’-·xJ•Žø¤Š|ÍróQqõ´)jºJ«íÒzÌ€VFÅÅÿYZÔZLÔÚ¨˜³cÚ;(‘1aXIsDÂåOÚØRÆiÊÄ®“Ñ52ìªzYèÊÂr0HJÀ"C*¸Nþ)2ù‡$H¥ •FzHö5q¥üK‚ã’0‰ ÌïÕKÄ"‘—’K3 vb6<5}Ý U.†5OQÞo01ÃâÃs‘¨ø¦€¨Ç^Qí7'2ì;)Ajº*?êA,OjMWÔ4`AãƒâãC0 u ËŠ©˜†1ccbp("¿Éö>@l?èÆ#TîQNæD[ئ:ÁûádN± +:ซ¶±‰ŸÌ‰ˆN;AÑߘȰûŽì¸í˜Ô¸å˜È¸Ï¸P×m B‹±`é—-° mr.ñÓ\$ò˜ÙäQ³qˆbf˜èe—ÈËB$¬˜^#ª›†L,7—(’R2cúØr¦E ­øãÉ] +™±ld42‰X2Éahh¾K×.eˆH¦|HW*ÜϬ´Ê˜âvMrË]bÈ €`f§vHÊ ~\n/`u{††ïq½ ]‰”ÍA©ao0 uÎò±9S Ú¿¢ŒÞ[%ªeò“_†"ÂßOR|´*,>ØÖZË•S~Ðc²/hÁè7p9­Í ¬°ÅQc €‰1·ÑZ¾Ðr¦  +Ü'i“¼ÌWÔ¡(ð£à#¡ `WIàæTa…-”Ô‰^¨$’0è"’GÏ0PNÃ!¥ªOæàðšã«P€a\\VÇAÛ €dƒ®G¾&Œ*j›4²¨}•X©Ý@²ÝƒB¤–ƒâ£ž¯ÈØŽà…¶ìÛ9*?êG#UîLWЗT± ™<ñ–F²”}ÂâæY¶F#P¸µl©Œ\f©€HÊ  *¿Qqë!‰aÆ!T: +†¸Ž`%t»aÖÙØE “Z³FµG'[lÉ"[nNQÞ2WXY“tåro’:±Ó 9ÍôA‘ù ÂÊ™(ÄÒSÉ f ,i“;¸+st)ËDqeMÓÔIݦcFÍC  œC9Y£È6‘Òç˜Ð¸ÿ“÷ØkˆžGÄ·‡3> 7¸eLV|²&­vR¢·)‰ñ,) mñäíô´Éžh‰(sš6¨¤¥)Ya;è~,Mó²¯3‚jYj»Æ*ÂÎè±|5â7mPQÛ”AeÍQG’3LQÒ&yH1s뢣Î2€tŒ©€ïÖÀ©øgýÀ¤¿¶¤ö/.­t…)¤3“ª÷QæÙT2 ëh‘• ’­K—z—2MV(q£Mð4=“ðy†.Ùó4ubJ"JÜ&,j—<®˜}8éwP€t3-6è?$®‘È›ñ—ÏYCËš§Š*n¡! Ì…ž˜wÙÃÊÙb‘Wî÷H’?H„ˆÍ¥FïUXÔY.-ä œÓ¤¼øoP`ØtJhØuLr|¶'5z·"CæNÑí(.ê3#'ÊÒŒ¨à–19q¯YÁµBƒË7¤F“¾X5˜!æ¬$™s“´•²X5÷J o +:òõ›³…6J#ÜŒLºøA¦Ðo Ù² ˆlf€ Ú³Ñ +NB?6¹b/:Ñâ›Xù“F´p'…Xá".‰òÛ´ô˜ÉÆ1²^ 0‘µBÒ™…Rᨅ`•¬ì‰‹~WD‡}$Ç=G„Æ ·„†VåÍF¥FÇk‚öKÂãÛ%©qï9òs1+4ä,Òã΃òãÏ9¹á¸Ú‘?ž˜ý5bÛVbÔstîÉ nWˆ3»&4n \Lå ¬n׺Ôèl]nÔvV€Ô}T’ÐŽ¯RnÈ'XlL WÌ:ULi“|ÕbÀeÖ$AÅ3Qˆ¥'äDMS'u˜¬Pà$]¹Øb-\jE-èLðŒVЧà!ƒt±!`{ÈB§)ðC ‹­Ï­Rê 5“î°å´{i1¥3\97dI¥Ãž¨z2)¬ÿ¿–¸å̰ƒà0 ï‚îáZØcΊ3ùÉ*·C—ÑAPmVÎm—Xµ4r@-˜%ä Ð2p!YkHòy÷ÑxÁÖ7dÇ}SYá1 DvêHeV(Ð~JEüW:2g-ó‚‘´P& ]´)èȨ¤;b^Ër£¤²¤æC€ÉÌ6F’µ;ÙF2éb[ÙR†øZÅï=YR«½æ ½“~«Å…¼’bþYfÌ6um…Ems™1ãQ)RëM!R×YRçQÒí®øèkÀAsµÐ˜g+.d­”³…Dÿ`À ù #æ³(2üY6Å„ÿ@%Mf¥]?1áã„Äàæý aÖFÄW ʪÇ@EUƒÂZw&)úÙ+ Û–Ò¢ÓTRÔ=ÊŠžáTyB”Q¹CVz‹å}6¥€zPH‘ÏDʽèå¶³"¤>;@Ç쨱-SàÆ¼Fó6Ì‹¸Ú{P\½À Ù ;¶màè40ä0¬Ø~€ +m-$¶Ù*(hûI‹Žæ¤…Í]ÂÂÏQNtÿ¤ÄG«Ââ»a±ÑofÌý + -‹ŒÎÝò¢3ÀÄüÁ³.&äVFд´Òº€Ð^À¢*W˜b*s ù”+¼ŠÎ®˜vWTi ¯¥³$¨µ'2‚;#iå†1QõbRX}‡*ªõT¯¡J*mAJéœD“vpc²ž°dT¶`åTî²r*KHBºÕ å´6+Òâçý a¦†„Åm;Iñÿ]kMK9Ñɸœ˜É Q‡à„,Æ…\WQQ×QPô¬ÝBÔm„%¡³.«ó,%Äg‹B÷)‰ñѤÈèþÉŠÞ£¬èd[FÔbRDÔž Ò€xΈÎ[;8i,™uÖ K¥.ûAÌ33’$¼ €š8ªŽ_CÑ?+I5#s’j[€"Z3ˆ197ˆQIG âYgx%­9(½½Œ|ÞY$¨Ü´#(Êæ’ÄàÊ-™aÛ[dП š-Ë _ˆ„ˆmè:„›7¥Ç—Ó¢£ßa!Bð¤VœrÅ&…NѢȖMôÙvÈ·5æmdl½Æ)ƪ”xŽ`q(3µÒJ«_ºHô¯ŽJ‘Xc¹¤;\1ýcJL¹\A8é)Œ+ˆæÔ +ÇŸÕ£²+þÀ5oÍàÅb% u…&£4U_jÅáw°c’ÖTzíȉ2µ")Ê*8¥(÷hÅ»ÙÌí…'£uÔj¢MD xC(ÒYo¯˜èŠ +Ÿ¨ÍÕC³f"ÛH …?Ê„bÝeuÛ‹*-#qÏMJø´#,î8$2î^…]ÖìNÙʹ*å\WQÑÍš¬ø2µ5ñ·¯&z’·g¢Â×PHøŠŠºÍ‰ {ŽÊŽž7¥Ç/»"£Ö°« Êç–BS­<E홨ðY'$ê/,­ô…)¨³)¥³–Îy ' ¡¨,áHè á¨,áˆè¨6Âuœp\Òg‚VFÛ*bOòüþ J¿JB(ÖDŸ „¢]thÿ8ê}¤ÐÁ/eBÑ»y˜:îü–6û@êy.$¡ÛWXé+™´’è÷ïìŸÆ¾ŽäIhGPô ZêDb¯ðj*Ma­/ 1™<§T@ú*•ÿ +¥’fØ>P*¾—@ÁVm-&½‚?Ž~>‰~‰³ðP=ü +N4òˆõ¼¤ŸÕ0$ŸäI˜žóB–‚5Ä@õÐG‰8´§V8þ*‘¶‚v‘åàÿYä{Z]ìQ­Š)ìPÅ~Á +H$÷>’'!OØG‘Ï =Ú8‚t0r·Ža]’)¡GP¢±¾ú!é›V¿ŸNƶ•e±oŸ †Î,«“x§#Ö›eîÞ´4nsÒhaŸó•ómµLžÚ¼Ãhב@»~ŠÇ5*‰6k¢MÁz3(ÒïAK+Çe×ÒyEã²7‘þ*•5«¢N¸îë„ë>‡þƒUŸáÊé UB±ªüûJœßI³PÆ;BŽÏš +G$ÉçmåèźþÄšXECSƪÁ9'8ÑèŒ`ôR!N m"JB¿ô ¶¯h\ö­œ4ÔˆÄtÙ×uëf¡L@jÄ"­äS¦`ÄT¦BQY;‚K ÿ‹ÉšŠe½à¤Gbñ'qzí"ÌA( ½Q"m"m(ÕD¥ÑîoBû)‘‘O°œ¿ùÂùœ0])¨Û¹I ÿeäô;`ay%#³Þʑلh´•0Á·¤ß=Téw#yi +V¹ ô +N4ú$ÏŸãµë4zs4P¤Ÿ—Áè`4Òl ÛNí&ÑÃßDú½…,û>M [-Ó‡6ã|弿`‚}jÅãR ß>ˆ|ö àÜ×1¼¢ôE–…ŠÄ¡ÇòÁ9ÕB²] +î}Ä<½¸N³×ÖeìÒ躳9fî¬ÇÔÑ5ƒn=',ç±m^~9Û’@Eô`MN?…&¤²¦Ÿ‡™3ÛÊì­i…2i«—ô” H/dI8eþÍJ§àÚ€qÚõB8ö NPë- œôcßÏùÒ}¤QBO%’s°Iòù$ÐÂ@ÄaW€²®ŠQÙ¡Vm$PBÁFŸ ¤g Ò[Òù´ |Yódu“¿KÉhí´zXaòÕM­`¯J*Mö +Â[B*[å°¤ŸV’S:Cѯ¡H¨]h¥Ê¸ +öP¬‡·”ˆF5c“ž*1鬆«^H~*“~iSl+†» +Heâ°NBõÖ8‰ròMxnnj{­ žÛ-žsƒ‘ž)T|eCs®Ðd”ÖÚÑ9K‰pÔ×ÕB•žÈ2ðAúõ#Ìî?°zøœXüY9.{&£´×‘ÓÚ+Š)ý †&­ d}UlmzkÛ:ß~}ÁS“·OPÔ€;r˜­iÁÍðº*?¡*z©‹ß Ë¥ºø‡mžïѤ_™S)˜kd9x÷(ÞÙH …¾«ÈhÍa (7ë'ÝØ}ù|’ç÷/Xñh”Ih÷îý"KB;ªUñ?€1ùŸBÚA—{ߦÐÍÛÂyžð=éÇ=`Šø€h´¡T¿æ ÏažçAÜëC˜]è°;¡~ï,ÿˆÅœ/]äŸO² ÿG¼ÛîÓìÅÕ3zo5OØŽ‹CHgÇÔÑ/h?Ëï­÷á‹‹}}9~ OJé- ²R¨·2A‰Åžä ö:ἚHô¯¦¢!I3Iwa‘U3â⮳ãlFBâgH2ê£B$]ÖüÁñ$æu&T°¯ÒAIohRú- éüT+" œŠ?SèÌžZÍélvío½ª˜ÖW=6e%ToDZØÀ`¬¹xÎ XXÎQ&kPÖ’€Ò]¯¤^HJ{W‘Ѿ•C³®rAéŸPm¦Ñðo"Û?‹{·P$ ý„ªè·rhÖY.4¿TÆ(VFÏô¶£Vm)ÕG HÀ®àE¢WPc„éG÷HæÍJ§L¦âZJ„$ !é¶+Jª<3akpRÚ±|pÊ \XÒC”>l×wïüMw®ÆñÒu#ÌÁ¢MAÏ„ +öY=0é ¯ªµ&¥óQùëHªC‚zgRÚ¨~ngǸ‡ ` T0ö8W\5#3ü$!ê "»"`z¼ûpï¼dêñV`BÑ6 ¼yÄz~p~/#žwÏU£Òÿ(þñê}Æ=&P°}¤Iè£Èçƒ(÷”F¥D(Ú V<ÞP¦‰·§˜»Äih/yz¹›€¶ E»êÅe•ƒS¶šqYK‘pìHŸ^o#çuÀwpLz BB¿" 4gá÷ĩJ=äR©`¼‘>í›nÜ1«Éøü%†…óYžÄ¼%‚ÑcÝÀ¬ „0ü@”}µÌ›Œ}³É^Ìj²»4­Î!½ãˆ'ÿPîÑD €ô‚´w2â>;‚â‹ÂZs@2ú·fhú HÀ G@ É>OóçFËø©m‡4i«–´…" ]‚+gR ß@Ž}:_;"JÀ;*Dc]5ƒ²N‘ŒH:jEbí@Gåa ¨Eâð'‰~'Öp·ÊaIK02*W82J[BJcp%툄z =@i(ÕD;Ç[÷gôØhÀ·S8· D£}%£Ò31é›> “( o*‘6Téâ݃˜g'yÚš|Ò”ŒÊQ+i›0œ<óç¶¥)t›uÀwþi5±[h’*oØÂ:‹AYý_VP=…$¢³ÕŒËú‰Dbݤ*®°x¬°pìj\Ò @4ÚA¶Žá×1Ì£ˆpì_JXk GLç,š=‘QŸÂzWpõŒ™;«ƒ&û>Økªs"¢vƒs;•B²E´“:Áþ³ûkã꙽¶º‰ôËÕÂaé¹hlþ¨VÅWç€íúªø– +±øLöÐdŸ#‡Vó[θqe¿¶ôè÷™<Á7'á½#¶û1ue3öík±l}루g[½¨ôT$&m¥O»Fk³oþæl;5Eó2NáÜg°b²ÞPe•î å´O02*7™v¤M¯/ ‚TúüÚX9,ë ®¤v×NÚç1¯Ïì¹Ñ@Ž}J5Ѷji;‘†ï™»¶šÛ³ëö·B˜~]‚й‘QÚ)Uìáº'ÛÐoÀÐÅż6`ßì,X®î™Ô›*ûhÄ99)µ°c¹¤ ¤zœ®]¿ù«ó<Šuw›]#ØÖ“6½¶•})TìqÀu5ͦ£…*ÿÐåŸÝ#ƻᾠ\Ï¡ž&¥³*«4(¡?ÂðC8*wq)¿®¤ö RHk%m¢Ì@©‹_JDブ«ÇfàÚI?¥"þ É>,ÜŸaÞÌè™=6?³×Vó„íÊ–:¿·$!·'¬g=ÞKš`îS)âm€ôÐvú<¼¥Zï&}ƒ&k%To­ûa¼, ,†ïÖyv;…$Ÿ5WNújFf…ÃSŽÁ؃$ÿ<Ój˜Þ*ò)k ‚J‹IIµµLToDLÿ©¢=ùǽéÆýžÄ½N¡ ©üµDµW±°ìP©‹ÿéÑnú IZ½Ð¤´ ôL£ßô(Ø£B$ÚY54k«–½¨rçO‚ÎõÂ’¯mƬó9ÝºÛæO.^Üoøª ·Éz`΢˜n­rtj&e˜9´,ÖÍÖÂÌÙ³Nø®Ž2¡Xsù”5l±à¤t‹Åã ¤ù·âì“J e«™Û?h1!?ØÁ¹M2ýÒMªâz Iºk‹ª¶?qAßP^ÔÛ''êPVû*­2çœÀ£·ºaIcˆrJ_¹¤›V 먊}‚Ò­—UùÂUyÃZ €ÐNÉ œ‘D»ÇN†Áãfy™6ìEM&Ë ÛÍT2},WÃØq·3‚nÚ$ÒÂn`D¸ÿHúÑ4‚l3Í`›ì3É'å¢'\7ÛÖÍB—€FœÝš)5LÿHúÑB•FœÞhÒ¯&Ò¬ƒ*ç"ÍÁþTâ°QÒHß^¡ŠªÖË€Öí•Ì™ +ÆdÝ Æå¬Ä)ö8‚v½GÜç'¸šÊ¤¬ÒS',ëŸÅ>§6ÓôÉѪ‡ßG‘Ïc׸ڗ³žå¶VûrFg¹MÆ=LÐÀ¯¨´xXW§ßÖ€ŠD­Qhw†BѸ½ò‘9WÐrº¥°¥Tþ¹ì“},û´VH6³ pbk_yÑ¡ ‰­”rÑ¥·>°ªX[`ª³"¢v{ñéšèø´–óFd»²°j³¯&h-¿«‰éìFe-â±gx‚J=a­- !¥)01• °2ÎDœ…³ªØ7paIGpõ¬ ˜‚¹6m7V­À¶²š¿6{Ȳ‹`c_°âÑ3€á؃.ÿf™>5l7ƒ×–½´›sÀv]om‹M³µ|Ö†ñ¬‡œC„ œ‹&áBÌŸÙ‘iwÖJBš}àÚ‰U³Åø– L¯mûD"±¾«ö—ÕmÕÌí…-­Z +¬j“N ·=–zZ"ÑBm@dӤܠϢÈð^´n¸Ü"}~ë@8·dXNÌnJnø:"4¸7“^­‹»ÌH ®˜VÏdt;å‚’‹ èö q­sˆ7× ÊÉ7Þ¹y‡ñnæyÄ£—NÁu)¦rW•ÔmV’MYjc4ZX×€Ýæ—µZŒ×ÀdÍ´Cœ€'l'cå|;g“á0ÆÉ1€fY¬-ƒÇÍê0ÖÍP(Ê@•Ç®œ Ã°œ)PIÕ>•`œ@ ÒT1,g32å+«v\Ê +VDÒG…?}uN¸®&ò ¤‰<ë)”³@È`]FÌ^E·J¡aš³^" ÷¨ÕD; +µÑG©.~©ÝÈÒËi12ÎÝfeîÔj¤L¯]Ò¦ „ókð!zK…P´õl¬WæZ°ÜC… üVµÔ€kUqÍ Âew&íä?´±µíöÎɪ1‰@ÔBÐRJ¦•¥tŒ+äVªdvÃHhÕ¢ÄðdYJÐW>@µRg#J°‡2Á8sñœ½X•7$À*{°*‹a!AÛOVø[ ‹¿M"ÂO02*uzûUÆzŒI«ÿDHÜa¯!ê'VGçk'7†}—Ó9ÃkiϺ±‰]“峬ŒM›k™º´nã'÷wÂx\Wó4âÕ?–[˜º´1>öÅ‹iàÀé°/Þɾø‡¯ü‡ <ÌCž!Cnå oð¤Å Mqð³° ?}Ú + ˆƒpÅ4ëÀæ*£eâQÎÒ¹½Ð%UîⲺE€Â‘¶!¬ÛòþÍœj#À4;Åã2;¡ ª–»¥úNJZÎI>[q![Ø";5ãr+á•t+–ED­½’‚³RbºõºÂ:‹MQƒQA_pBJG"*/X‰ HiÊP&g¤Ò/#Æ“mºr2‚Œ5—VÚK‹)M•#’^Z ÓK«_ÚÇ2oÆÒÕd/o´M—mî™Ô›N çžI¼¹æû&cݺ³ Ó6`ãf1›°œV‰5,CpBª¥­¼˜× ä¨Ï¨Ø µ[XÈ[()h2($j,×MÙ U‘–2IwUYÝrÈ‚ZGP"*GP*SŨœ‰2 kžF<úF 7Ox’ª±˜è8¡½*â©M2ýÒS2"éDH·xÒZdv$KÃßs¨‡Óû1qÜšûm6¦ÎÌ'X6¡HgŸj±x3‘‚í(&¿Óè· {ÆÝr-¬ <©‡ÒyâA7øTÔ• ¢\v¨~QË~à tq Yx„«-¾õÂàÓ©§=@ãqìHœýÉ$kðC3k!Öl‘r‘´ƒ•sSib@$­…“6P°3µÒ¶¤Òz®3Ì,SyÇè‘ÆæÆAÉ)M4Iè}ýè, ë VRiJNµ?s’'¢LVåm31a1iõU1*»Mßœ©Kë6€oG°ÎþIä³oúêüLŸÚŒe;ËâxíèG=™o9€qYx. +Üë‚…˜=®vÆoM޹K#› „ÓξeyíAO"bÀ™tð'"¼M»á‰¤XØØ…VCVŒÝYhÐ…®@¸`CÊà”ĸ; À:+­~i˜;³±—³þçpN¾ Ù¿%Ƭ¡%²Ú-,ä6)8ºY–óm¥škņ<¶EÅÖ–d[GDµ¸°j«tdnƒ0gŸH¿hÒ¯NýÒP!g¬œ3'«rW“T9‘OB‘ÎZÃÛùõDÏ …´>òìö#ÎBoÁÉg a‰çœdú¥aúþ–ßb_Ü, 6è¦%Ú¬ ˜@”‰@çÇ=9Šã<8Ëì­iùãönÃA¬Û +}j•Fˆ³J8j)$‚,Ã(ȼp‚Ì+,Äȶ´1Ъ}¡XMÎJ¦†t–rW•խשóýä„…ůú)cåì1¬Ü'3Pâp¶°e5[ÅSÜRݨ”¹OLØiDXÜެö¥O°CxçwÀx7ïÞA¤ãÖì½ù—²>ËÈ­ýÅ;\WÃÄÝò‹ÙV Ûö³\ ì—Ï_úiÀ{¸¢1ÀÃ*tíPæe4ù¶/jc°|³Œ  öB'kÀúq;©þ‰!ðQ)Æd‚qLH”0[Ô镃( g' çWNȱ•¥T멼 »¸¤Ê f,Ò +x¬Ã´¨~C?ÐDU›Ü}¶2¡#œ±#ík‰j?€ºØ™Hà GšéT\mvé&ÖÄÃÚÛH îÌD„Íá jMÁˆéÖ‚ké̈© #ÒzäãÆØ¡ÕX´ZûbV“½”õ0#Í/ÝUeuÛÓÈ7s.x\¼ Bn‹ñ3Ûʦe±wvXT Hí†ñ +²Q¿0ìýÅßÂ.±è~` E3Ìk,#LlLc ¬¤JmQå-ш“›‹e­µ$4›„ú•w÷èF½í…Bhå àðwPztK úB­Ú +¬j1("›E …\‡dÇ7£’Cư%DöG™éTQ6ú,¤‹>i$ÒÂ.d Ø‘>¿ôT K¹ƒVZÛ„„§œè>‰ +ÿ‘¤ø¬€˜̰”¥J0z ƾ{Glg]öšîÛÌo­žå`—‚Òâ\Y^Öü˜eßV4p Ä98öJ'Ù¼…ÅÌ¥ê¦WÌ(õP,Tx¨Ѓì>2±q0 ãa\h Ëâ‚*æÀÕ“¬Ba(À‰±+%¤cN0n“HÁó¨¡l@Ä¢¬t +®‰@é,'j='8n HÝæ<Öi6û䪘[ œn—RÅóÐfá­Z{ +ŠïVäÄ™‡(­]I3l'UÞP¢‰e ZÅgO¥†f;‚xg0iÜÏg1-óêÀ/Hèâa4`ë<Ï0a¿b`w°°ßÀ8­ üƒyõdòeaüî0~màb*ȦyxZ"ùáÁ¸D‡ã%_gc*ahc)aò¸ÈÙ:È<(°B»À…åVŒIBÓ¬†”Èê%ññ'yH1óêbZK"ºå“þÚ¢ÚÑ”¬¸ï&,~›·XÑ9ŒIé}a +ª¬`E$ý# (ï,êÍP!å« Ú +¯¨[+&ë¦Òð§Ð„T¶Œ(ë $µ¦Zùuë¸ÜÏYNgÃ8W;vã½ÛZx=ǘ€ðaQBÔ6‚v[ë¯À…{i]à,xñ20C«ß°´q‘ì#¾ßØ€,ÖXE‡V= <+ú6ܰÚyùÀ Ô a£Ã ¸l è"gÇ:Ƥ +xÜþXîÑD Ò\NHµÚ-&hA>¸Ž:’œ)r«=a?©8œ&µL$ní*3fÄAÐä†Ð¸±‚tn4¿´‘§—nJE¤'<•#$!Ý +mþÕ9†u5‘cáeÊh#±øPg$RC©”°æqÔ›côв0uö6¦®Œ¦ |›s¼xõLŸÚÌÃľ¸–ÖΤ€‹oèðS‡Fc—6ã­ûÐCÒؘ†Xÿ ×ûðàa¼äëøË{€¯°ñ– Æ94\CxÈB€\–aŒbLØÅXÖS±7*³XDD³¸€=pAG`Rªº¤méd"ÑÀ¹ŠÈfÖDÌZxnDáÌjP@Ä–Žb‹Q!Aá(+™&n)XaÍn@„œ•ÂB6[ò›½®°#ì‹"¹=Þ;4 ®ÛO—O &Í6ã]Âøø¨-~k¿¤`8ÊR2ùYvŒw¨ÁgSoÛ€A÷Qâ¯4©0ùüðâfoàhbz@øuØ¯è ©t /0Æ7@p\m#“:&.fŒ?^Ëê.1䮟Z$RÃmF9 +yå>ÁbÓR@Ü PÝRÅ œ% ù¤/P1x¤…*ÿ¼ä`‡àºÙo#«i_NN?Š5‚´‹H˵SNú Ó|KFƵ°8p­˜/²ü3;ÀjW{îU!Œkaià^>ÀÌÝÚœC::¯L«D*žĨÜêòmeøÜÈ‚<»c]cdõøFÖ+€-³¡ ÌõËW†ñ«Wos Åp†øR oÒâr0ˆiŒh,jZ á(ò‰]ÊP#i¯.!´{GpÜÞAÊo Iq-ƒ;ãÞÀ¥uV×NŸ‹^Js¢¢ÆEUƺº}à‚s¾ÊªµÊÑ©­ÒÁ©Eò4¤±gÜ-öì¶ùX¶æ¾²œ‚/ÞG::I„ ­¢.ì@œ|sQ© œ€F¤–V±«$¦bO%.Ç”JÉœZ'ɆRÁa7™z€H„5Da)õz0V±ÂÇ +ã¦Æ'4!‘ìz©D»âg]x…G|¾Šâ\ °^û‹ï—-¡aY]LÅ ^J$T* d»¹£Cã8l9’?jjÀ-HàãÙGF¡­d^cb[ œŽ9°Â9Va¬âà ²È •G¼¡’H†\ºÐS`åìÅÓÂO ˆ¸.V7 1¬n[0§m\?A+t‰hPWã˲„^ë¢cþ +í”J9ÃTe¼×ÏŠ‘º¿Ž°1X)¥­hTÖ¬z/*£^ê„¢ŸùK£m +ãiÒ›Xñ_ã°Ðô°sè›ÙË‹q«#Êlë Ì¢enÂ¥–ÌÑ…û)bJœà×ZÃØ†"_7¥sˆfr˜0®ÁAl¬ä+¸†%3DQ+†„œüЀƒ)pâXCGÜiç‡+Õôð$þÃoæUõØU RÈ•û±ÆëYýÊ¢n°²Ö"bYgè"ÚϪÀð9–œ örÛ>X|2$(è,¡2ƒ”rUNmïâ‚æ€@댕4Û´‚q,Ë <Ä£dÿÆh¿X´Ðk ¢½ºR*¦tB<6sŒÃxFX “W!sÙ¦—Œ}ñ …„Éã$¶c&`kãÂìÆ›/0††@©±Œ +@Q"%`EË®¸ÇzâRx¯x= é‚0~½`øZÀƒÚXæ1¶ÆE.I!ìHiÜ’±1§Å³ ¸v*Šk-ñ¾#Ãix„O8¡{°0³³Ä¨ç% 쪕µLœZÍ?Œ……š7jÚD¯Ó•6OQâ¾[¨ÐdãÚ¢Þ±-€S Ñ~ux˜‰dÛ`s9–”’ƒÙØÊ±•jµ1<ÜãÀ²c6ˆÐ7&@Øß«²€G°Í@ȉ@þÆ8àçueÇР`¼£‚K®˜P¹œpæâbY‹Ïm°âd xÂâN5AüˆˆûpŽÍj2àÔEÃf$ñd +‘ÐI#a1”*®E¶÷HöKúQŠ_³†•´MYÔÀG¦tÂ$Mz&Û³1‘,="66výp5ÆÀÊè¬rèã'`‚@`û§€ÚDüÊRغ $ Ÿ³| +ùÂ06¢ÁL/Üôä¢y¡·õò(gqŸÅ€k’â^ ðùj›@Å÷80à‡Ù)¨!ŠËiàf œx¶i‰[ý q§šŸ~óh[ ÷+<àI÷$‡ývä÷βŸ!£Ÿ-Ðâ“%Dï:Àé6Ì%f7 +øzW‚ø1 ˜¥zLŽI½fzP +òÈÁ¯€…{$Ðùº k6‡ñ/«ñ‹ IàìzÂHaÇõ;A&Ä×K&÷Š;þ0«oY>J#— À5.rk\¤KjL£‚Ò¸UÂ’H-˜q8åoÀeQ¦âwð1)"îÅ4Ä-ñ-"!Þ‡Ëe& 8ðÒç+•‹mX1ûWwÑe·ó :ð1ZŒ³²ˆ73̃ÓËã…&"ÏKÎ#}~ã.Z?~õðÇQ` o|Y×8I†c]>C'Ô¼ðãÊòåò±2¹”‚ÑF% ¿¨Ð`œ£Kj,£Ó8Ä!-”bfÜ=à}p0'#>µÄ›d~8‘Ì'ŠâI1B\I&è‡ïààñ™;UóX ‡LñOJ@"Z&…)½LòÍüå ´õ•®sñ†h§¢ÒNÖ&s—*ª¨m®*™«$á¤íP –7Î"Æ6îva<C…ñ–®£±‹­*”V02Ü®x'MÅ!è8^Wÿœ8ÍÀ‰‹!pâ[GIü§úAâS?HœêG‰O`2À³  xšÿÓ €³UAñ IHœÏ_‚ñáG8330\Æ€PE ÆA4Ì©B‘ÒÑÐ1s« û †¶€«VÓðŒM¯Ž§‡8†`FÒ´´¼qˆØ"J™ ¶bc+¬Æ:.ÀTÂÒø„'”U5B ­°,ÜpÒ-{Iñ7+œF ÄÅ $q DJœÂ—`”ijŒŒxV×*2â\EC¼SÇÀdÄ-<ñMN¼k©‰'ÈAâ?X ¾Ãy8ÍVÓ±ñ“˜a#@ ‰P!õ¹":¨QB%YD ‘T-4âdÓÛÈ&8‡ ίŽš‰9>-{0.¶6a“3Æ´ÆDº¬ÆD*[!è0™Ä‚9gÅ!Éð9LÜÌ×àDÄ»Žˆø×S€ÄkKü¶ZâaOGìɈcP"jÀCÄ—`‚Œ°@<ˆÿp¾Ãm8Ž öïOñ])Ùe8ˆh(á!£‚N¶| +&9€ÐÈ”K 1,½8‚h~q,ÑÛ ‚)žQ"Ò¥¤é‘ºÃRî¹±–1 c& ŒKPÀI‚¨…-Á6Å¿œøeØ÷NxârUNœª‰ŸM5ñ¯GüAÐWÐÄr‚¸?€SÄlˆø6ˆq !îÙh‚¸"~ †ˆ7áñ¢ ®ÃAMXH¬aÀÇüQ½²ÄrÐUGçg“½NF!’˜ß34¿8pœÞP2zX€‘ÐÅ2*/q„!GäuwXñnã-b Æ0,ð@a䢖9à—Y).èµÄ½”8`&þÅÅÁžø…(÷à— 0q +CHü +Ȉ7À!â +r†¸” OÂqž®ÃoxßáGX î4Cĉ`‚f^8öˆÇ(˜‡×åç½Mï„D¢t±ÂYèE³ð‡«¦—Ç Í.™ÞF2½=€\Bîh´´Ü!žÕÑç÷# ]5v­ $€I ØiU\tNÀ?{îÅ /8q»,%nfuÄÞŒxW’Ï2âVBDœAŽ?@Ä‹°<¼»Ã™°?œ &ˆ+Áq$,?‚ùáFØŸl‡PÆI0T2Qììºò\…´k$Šia)¤]$Y>»®Q2 ]dzw,áç8Ò)¦Q@¦cŒ­JÚÚÆ„e\¯°àcE’ …ÚgüJÀçàö$n&•D(ˆK"â~Œ8—Ÿòâ t„8ÕWcÄ¡p¸ÑÌ÷á?\‡ó`9 Ÿáá=ü‡ó¼p,Ö{\€¯LqSÐn$¡„I¸t +"ÙÂIH„ g7ÈÌÂ7: mØ5Ìñ4|c‰§¸€ ™Ž2@!K‡Ø%¢h’¶6Ö¶a<ÅK'IWßÌ6àptĽˆ„¸S—£Šøl‰H<îÊg»2Àé¶ð{ +ŠS(Bâ |Œ¸Ô/ +qž›˜ŽÅöÔq`%ã¸ÐÆ +xÀìú¨‘Ùí±#Ó»#If! ˜Þ32 s˜À4üaº‰ÈCSüƒS‘Ç'æWÇ‹ÌÅ›™Œ963#gXvgL±ŒyXÐyRS‚MñAïà$ĽˆøØ“×0âc”¸§dᆒø§Â9âdˆ¸ﱩá747œ†×t5PÐ5Ž‚óˆfg7ÈÍ®›^92¿>Pt~wìèôêðÑÙ 2¼cHçW‡N0ž‰2Rd6ÖèìÞ¸âÓÆ |ð¹ò[ê±^F»÷jXÀ¿”ÏTÄ­r‚ø” g@Ä¥b„8“ŒGÂöð¾Ã{8çá:œ(Ƈ7Éép.Ãm`x²ÆC.tzÐíºº‚qBÚE’åô[d *X–T±,¥`RPs89 ©¨4óp +MF”©Fæ K4a{S“ƒÈÃZ¦ÅÕ¬žx×Ð3Ä«n‚¸N…óÃÐq:Aëgˆk ñ- #!èˆ?Ø)âP5D>\G†Ópþ‚Ý)â÷W„¨)¦ÖÆ |мtòwI˜dĥ߫LÂ:2ÃÃgl8 —Òâw…ª{ÜL±¨&X M/›_66 … õy5Üñ +úí±ÄÓÛCÉæWPCH2K™Ô-òÀÜ<-‚G™âÉÚßøÊvj €Ï\—yø£ÓëãÄew‡ L0ž’B)a`9ëŒ$"®,ìAÃ’HLC¬™aª–Þ:2Å8X;C<‰{t¢Å^'ÉvÇ]ä¾1—ìÄ \ ‹Š3ð)âB\‡ï`gø§á>/4\‡ÓðÃg°œsÎ9–ÃpÎ9çœsÎ_x Ÿá6‡Ûð.Ãi86ZMd:t:´Ž›Õ•–\––ƒTVZ¸¶´¨°®¸´¦°\Y9àÚzð`KMk +k‹k*íÌÁÕTšWÚÛƒ*­466µ¬45-®­4-5´ªª©³¬ª­)µ¬­«)­µ4®©lkjhYUY´´< ÂrÀÕteEu‡µ•E¥¥µåa+k®i«ŠK« k «© J'ÂÚÖ–ÛÕƒ­©4¶5®)´­ª«©5kkSiX\k[WUiRò™ÞY†¾³ì™›\×ZÛÙ\‡¦+«]kjuiotrƒ¦U¸Ö¶ÔÒd©aMe9x°5uUõàj ++m k +­ÊÁÚƒ¬,-©5¹³4m“ÜY“^WÓ••ƒ d=¼®2Uº¤š"4%(Ë*sP†·öwæAª BS†²‡uƒ0¼5½¼³,‡ZçLï,ƒÔ¸ $Ù—`„ãÇ¢‘YCHœéS›gúÚh#"g°'«ýÔÖ6%Å–‚”ÖlУ`—±k+ÂÄPÄ”Nòü]úÕ Z<Î `HÎT Œ.ö¢Ê 5ÑOx\ +õÞC’6’gwÉÓðIþýźž¦«}&ùæ' THÒH›Þ‹S$ í FÁï㸗D£bñ?­"~H?:BÒí%¨ÿÁ MZIÔë“è·ÄihAþý É¿#"=‘>«OzëFgíàÅ%]UÀ%ý`Æ%­â±_`Ù#îû9…v>Œ{bdÖU.([Lv¨VÅ_TYø‘6½U.€}bžÎ×ɳ0ªUñeú¡KÀÞ4þ V4z¨ÔÅ$égv÷~ Ÿ\ÏùÖù¦ÒðЦß‚üš$ôHžÝ~àôІ:e,º´ŒˆôX/.ÿ‚öÍ ×9´ëK¢†ÿi5qfO­¶¤ë:༠G¿/5‚Ñ7‰ŠmpÝyC£¹¬%ãY01;6É“Ð^@âшsðã€å|R¨×3™z Ç¾¿“˜WãÚý%ÑïoýÞ=â½;Ç;÷ûþ? +õ±3†“@ ?‘柞ó7…pÞ+øŠÆe‡BUü6s6ƒrõÒèa¿Â±)géè”!ø•¥FLÎM§‡ióû‘B½½H“ÐÁ‹KZ‹‡§Ü„*ö3~nò \›!L£yóº– ÌNá‡h]Å lC±2ö&ÒC_DYè‰0½Ð¤`ítjh3нÏcžŸùc“aòî­Ì_šü´šè¼¸¤·x„ÊV\ÖKža£ÌÁ®’'¡ÄâWúüMúYÕÀœ·€„n')-ÂôN¦á¦QD&RÃF>.u˜’Õ¯5Âjw5)§NH~'Óð‚Ž_‚Ð9‚Й«茅ò/0!Ù—< ÿÏã¾+ ) áGh‘åàw*=ü32먇vP¤ßRhá=e‚Ò3P‰ÄYøÉ׋6½æ Ñå`ŸRé± +°ôOªá‡°ÎóˆóŽ> }¢žäß¿)œ«iÙj!Ë¿žE¢À£‡jEüR#֌ˠ1§Ðîï Þíâ}¾·šñÎ#þ"?• I?iÓëuÀyžÿ9Ë;|}ˆc£¯h\öª’_KÇe/Ò,ËjeòÌêp]­#¶ë@”|µLÝ=D)èû¾L^Z‡Y;ƒ CÓwõý L0zœ¯Ü$¡ÿY䳑2½6T«âƒ˜õäàÕÊš^2ÂÞ&á/0­œ6Ö¥`ÿÀf-a(ý Ææ¼…TæàDµÞ e•NPâ±Ó ¶Ñ/j3v­gyÄz~|ÖR# k¦‡Oª‰+"?޽)QJDã àûÚ™¿5Z)ì ì ^dÊX5:ç¨VŦÐð}”Iè#þûF•„ö”‰H¯`„#ŽXNS°ÆâÑ)cxMÄȬ œŠm¤Íï¢ ôR#{‚PÅöd VE›Ï>Hhí`Î.‘ÎZlIêÿKJÜaQDUö}<´ÚFðÍë|ñ:• +Hÿ…ÄÔW2J/y~#MÁ»¨R‚Íz*…ãµZ³#‘h7~o¥Ïï‡ +!¶´HüGœ…¾G1ïh³ð_Ñ ô\;;ƒþhÓë™>Å6’P­ŠA Ä_Ô øeþÎ蘻[¶)|«‹2ý‘¦×/HY7pù¤†eäÚj=6Ú&p®Î1¬«uÂyuÓê÷cÑœ©`<P=üNí¦Š¿ É—[ÖÒè½ÕL¤†kÇ&Eã²7•†? ͹Y-×~…ñ²íûVoq¾r¾§Q¯þqìûM§`û‡qïÇÈ™ÑX8®vÈðC¨Ñé°xüQ$M·­WÁ€´¡Lí,$?U +É®Zh+yv朗¿kÉh}aÈ)MFD•ËÆ£Dš lp=Zœið<Þ?ªŽöÖÏ9ëÆ& ÁUT›BbžøŒ”ÎPªuæàçAÌK`¢Ñ?&ÚQ¬ˆöª¢Ÿ*1Ù´>& ÁÈ•tÖªÑYO¡ ìX…$ýl#NÁ¿Tz 5lÏଧJLv§S°í$*îLœ†w’ç7ñ3¡‚ý§_=¨¶dÛ.¥~;—‘Э!¡sU JŸÔ ~@ã²Î ÏqYziöØ<÷Ùm ]Y¿P¤´æ9qÛKNØ ˜Ö PHv¥Ñï/º¼”PáX7‘þ"LÂ#̮݀ÅãDzQéµjlv§ÒC!Ç¿›'ñ.JÄ¡¥£ÒKPôP í¤MC¡È@Ÿ#³WŨ¬ŸN=’&Ø0=üS)$;›5‚ˆhrï× ®ù?µZLgÀñ/(ñø£VuÀw>Ç{ço +ëêžF½­†öÊÚŠFem@õÐuv%Q¯‡RM´£B$þ¤ÎÂûfP®ãxéŠ.»B˜~fÎlËošŒ×[2ÞÇȰkŽÁ»å!ÊÀ±!¥e‚Œö Æ¾ûæ/ÎîI̳wÀw6Ѥ =ãwÖcø¸3?ËŠu íthz +><=8_¹¬Ÿ²…×Sù’Ô/ÖDŸˆ°É†¨Þ FDz™96Úˆð¦jÑh;•‚¹N©b@„c_°"’ÞÊ:Op%½Šú.WÑ.ÕʸäÙåú êqûl¨ÔÅ¿ec³cÁ¸´¡Vm&RïDšè¬ ôW16i®ôVÍ: F¥Îî½ch‡ÄâߺÑYc¹ÈôR!£XýÒgø?™&ÚP¤ŽŽ~ fÐ;vrRi·`=ìM¦‡=ÁÉBÒ­(¨[š ˆ[ƒ“Òžõƒs®*À’&ªü7„u´`\–«yó<Ó¨ËVÓ\ìƒØÍßœ}Á•´û"«g`HLíLN;+¦=ÐÙ‚O5ø—F¿ ZTÖS%&}Qeáï óy£J¯Ÿ2é¹tdz+0ëžÃ½?s×VÏè±Ñ9ß:?Dùw7†ÿ“ª¢ZM´œ€ôR"ýd hø¶zQé¯`Tât —H»6AˆÄß@Å£í‰X¶Äix+yvo Ǿ_” xK‘P´¼¸¤·z|ÊZ<6iª“ôÕÄtÙ×} ùh¢MÁÚ@«¸7‰îˆí–B ï°]¯|«cöÊd¬[{AÓŽÁÔݲŽáßIÄë4€i¾†Ð­.ÒüÄÔ^`B²YÞQ­Š¾hRð–¹S«wçî™À´ú-KÆk `A€4ŒU+Ûb×j­`\ÝTŠXS8B*ËKJø PLé*•ý@)£o +sÁrA”zv&àmDùõQ¬Œ[:8i IDk­=i³ðžÑc£cÞÐèš½·ŸSX§ÀÄâí`¤ Uºø•4½Ü"ÊÂßô‰xU€U‹ÌºIô{ÛÂõº4ºfïÍçÚý"ÊÂÏàã}U€å_ b²7y‚¹E”„6Ò$Øž"iC‘*zÚ˜|Î5†o²Œ_[–¦mÎùÚõ'ÖDoIª¼KëLæ¤õƒQAõÐX=,û'¥´„œ=i³{#Ç‘K«ûʰd`ú0$©ö— +F›BR9ÐÙJ†ejüóM£áª•ŽÊY6:g +>Bi/"£^‚ÏújåþB“¾è2PI3l;™Š1»zxe +ê•=‘ŠË„ˆ¤á{«cæÊæ—¶9ûr¶Õö$êÙW1(?ծ͞ŸÖæO®+@éÁIªïzE•˜p¤ üù¢Í@/UBñ3Hñè—<ÃF•…¶k£mTIhÓô½Õ/g3ßvã[ `0r_Nò,ü +R@v£MBƒ§&cálíÌ›lÄ9ø{÷h<µYGŒWAz,WËå±09®LC¸F¿´ÍYþ;x€I;›köæjÝ<Œw†‘ãÊ0mf2ÏâÐdt fDý GælÄ9økþàjš½7ïÜ“j¢åà‚~ÁŠG>´ëö·/j³ gFÓðµù™=¶$N¯téåþ$öÝE’„öT±-%¢Ñ'0Ñè•@½3~kfΖ±nµ óVFÓðÕÝDƒ÷’¦!÷©ñ>@zx;}ÞR¬‹ + ¬•R½[g‡qnLg!„ uO9*Ój˜Ö*â¹õ¢‚:=QýIîvÈê-µÚh#U–]þ™áxãî$ÌBîWÒÚkˆiR]ü?~= ôÛ£F$ú$?– Mº‹)m tQ+‡fC³orÚÇŒ¬Ú^BH}Õ ÉßTêå]úý¦QÃ{ÂÏNÈgGb‘Ç0ÏŠüO§Œ^ +„£Oòô~œBº/S§VÏØ©y›¿¸¯~3Ãù“+ë1ä³÷nš?6Ïé8ÝâWâôÞ1ti4ïôö¥¬¦±e½æ¾Â8 °n¶ü †eï€E„Üõz*WŨì T3›eö¸†_BnУ šÜû1{eò§àÌሩ¿`dT|çgöÔ꘺4™gqV2í> Y;™ŠwÄv6NWξñ¾})ÿ’U»ËHh÷AÜû6€uôO$_:‘Ø-D9•Åš€èŒ¤ÒLž‡ +H8þ©’_ ¦­¤}D鵕4½ÜŸÆ=¤‡¶VÍnçk×mëêľ®Äùµ.»4~n]&/­×²yš½µoó÷vÛ¶Ý5€k·M`œÇ²y™g½Â87L,I´Ð;ÑÛ»k9xyà[01ŸE>/AHèÂìÚV1,»R)á—§ÑîG0äfÑ ´™H»7Nøíë Òõ$ÏÁ{ Ôk+a~ïŸF>Ô(xä)h×¾õ0\O£Â{5ƒò/rk׊nüæìAºÞ¥û4}m5·ÅÆ8·¯sÀÂJƒ)a­•,qël™9·žããÚÎÕF˜ƒªÅcçÚÑIO™ˆôFœ‚C˜ˆx¾y1]´9HOx’ªõLTx±#ª¶ ÌAkcßÂqé¥Zí#ÊÁ2ñÞÝ“XW4ÙgMöÙB’~X44‘6½Þ&P®ÇÀ½É<ˆzG—ƒ?x7ÎÎŽ™ãÖ1sgµÌ\Z‡A+£aÜî«Ög¾Íðám›Å9”«=Ò§àý„ªè“6Á¶Î×îE:.}ö­£ÛNTÿ–Ï9(Òïç|çþŒžš¿œÓ×Ù3wnj¶ËfÓ0qet à›Y–ìiu±‹)1½-4¥ƒ,ù<¶­,³·–%ò ¬±lhÒ V@þTòÍLªâú‰Dbµ˜UÛ[CGZš“·†*§H•òd]¡I(}ÁI)½ŠiïÐÕ{ýW1.û9]¼ÅÊè§Z<¾¨ÕZ¬\¥l›¡Tm PH}$ž·ÔïM3¸Ömºmý¨sð3‘~¦ÑðŠ ôG˜]û€êáÏ1¬óØ7¿ÅÎÕYA¶9ƒ“QŸaɧ-³wF Yöý¥SïÒ'ؾù«ó:]½?$hʰpóØRê·c0ÄÖV»·Gƒ_¦O dí5¥´k—¤–5á78Aí ”" ÑX@ÛI^»ˆ“eø‚©3ÛÒPTôB?ÌÚ|¼àn€Ò*G©2þ'ÓÅÄøwïtéÌ„ùÊžTÃwQ%#¤õ‡$£\ BDç¥P¯ÝƒØ×{õ~‘%¡Z]ÌùÒÙ1sg}¦ÍgïÆù¾Ý;âºWoaäúVFomצ½ »Ep%Ý~MY­ç&%|Iëß`¤ôCµ>©&z' =ÏWÏ–ÉKë6ƒoH–†¿ Tlû<ÞÕ±Ñ;†vfŸŒ÷lïàµyuøaôó ˜Ö[=>e$Ц£yñh%Qp-U‚Ñ'y~{h`Ý@‡$M5ƒrÆÐEDÖÍ5ÆÍ7cF›+ŒÛ“T9ŠÆZêDcÍ F$¥‘®âQ9O€:C‘8ôH¢„W?2g MNå FHk¯#§õ—‘ÓF„´¬Ñ+†&OXÏ–¹;«±o^æ3Ù,Z­Õßy*Œ6XÐ2 HBí¦TÃ?#È6Çì•É?’z~E%=•B²UÊìÑ/g3ÙËZßêÞy,íMB¹^G@í%S°ÙCÛbéºöÆ®.ºìv($ŸR?Ò¦÷#‘èâû@~ñ܇©3ÛÊô¥isçæ(‹t#¡ó–ÏùÉT|ÏìµÕ2vj³“ixÆo†C“w¾yöR(ØOÍ€¬­z`Î^IåUV#ô(•? IýdCTo ®¦³‡0þÕÕ¡î î, ‰ž u²þ»ûlüæ|¤^Y+¢Mµ¢ñ>Êäî Þù¤Î®mÁµóù,Ó€ÔÖâaé}qºv=§[çø÷‡*ýn¥ÍB.’fáMTéw/‰ÞE›žÈóÏëˆí:Ìw“gÏ4‚l³Ò(XMI {,J úAM¹çtñú8/&hRоâQYs0BjW@ZuþžF»ïã¸×£R¹V<ÞHœƒwM \×rð€m«³;Šwu”ˆÅ"Äs¯Ïì±É/n]ŒÛ[1˜942œpÝœ£h'÷PâÑEŸƒ4ŽÉ¹¬I +{mÈ +®”Rú@kb}äÙíP&;…(¥²×¨ôØ”VVåô'H‘ø‹6ýâNÕB²O¡¨ìX=,k. ž³WÑOY-3²jw)¥«VLÚ6~rÆ+Ëä¥u"È@." ƒ“Ò:ÔRºÃ’Ñ›‚“Pú@ˆÄºçqoH3°žb1YOHrº­ d”NâüþB·ºfÐÍ]Þ†|Öœ”Ö¢”Ò’„Þ\C¿ÃH—`c픊H7&v)Ž] 'Á5Ô_øAZ[­¨üG”Þ{ÉÓðSür|Ö`FP¶È©™ØÓû+Š©Ï0EÔgýȬ°hìJ§_Ú‰5Ü·€pÒ˜ÎW4.;Si¸Aþý¦Ñð§0d”ö „ôöðJzoˆBê-<íTD"‘vë£PÂ:iÔ[cíФ7LQ­/<­Ÿ@(Ö3l2vîÖ]öu-×J/Éç<² aúu™>µìŒ`›|Ó«oß꧈kˆçÜõz +–¥•þʲZGH"º]Ð*ù €"Þ@?Fm»“˜Go¨²:g°Ú\:p-ÖîÖî8ÚÑE™…B”Oùð‚>Ë2£öLTxBD·9„xXTv FH{$¥]J„c/ºìö&ÑCµºƒg6ó&&c§&û@êù"JBû‡±ïc×þ–ÛÙ1ìWëÉG?X¤*ûf¹³±´­÷Ðåų¦¸8V”Ç€w±2}j[D9yæMÆÒ}2›/œŒsGóz,ŒkÈÐ!©3Ü‘>»Þ©Uqær"ªíÐ…•Ö€«ÌÅ$t« …c²ÜûGž„½BS9 Êê›2¢î +2Zoáà¤#¸†ÎU3*ë©’~*…d·ŠYk82úǨÚˆ˜ú,.ë¦Ò°‰D[Iôûƒ(ý<¥ͳ˜G÷8âõ™?7íOd_mÀñuz;"^‘eaOê ÷¥Ñï?Ðjh/‘vm ʾžI<:ÑŽ¾1„«aì̲;ˆyt©xæN~Aëc1thÚÅ»Úh“ÐYòu>µYfOm‹ƒ8GYÒ:‡x4Ì\™ CÇ•ué<“)Øoùðœk%%>œÜÏÄÄŸ”FÚô~À9Ïs¨÷¸°¤11­!üJÿÐ#àÝ£ˆgçt0»ÁHÏÅ£³f ÿ™º·º&0nºü³§J@Ú VDú¯]—±C«õþSÄ?uBò;XqYSÁ˜¤‘<»G¯îóùœ.ž‰C£¹×Šaáʶ@~8^º#·6Óì±ù›nÝ,D9X#u~»Ž¯Æ²ý1ží°aF°-Á ¨œáÊéÌèWóì˜=7¹¨S°6ò„R¡8k› ëˆ1—AyáÁ¨„˜™>ÅvÏáÞgÒÓNBÜ>ɈëGæœôéõR$;ŽtP䟗ÉC›±m³VF/mzô³›> ¹@Œ}6 w~9ÛŽ½}2Î%ûâc0ð[¬ŒÝ­•ñSËò¼ø.îA‚…—´­‡šï›<Ä)8ï,êÍ{ôŒ ÚöEÍÃÆù1šÀ·ÙfpnƲý,6Ž›ÅùÚÑF•^?4Ièwïj™;´™û±0^£d›•J ±pfd/nõØœšv®lŒ‡‘o6ê,¬‹4; [ý²Fg±n5vî‹möÕ[D@·N¨bo8çåÌd˜7³mo~‚¢‹a!A?¨qIëÚuÃ;¿¥Ã“¦°Ät+B’‚äóI䳋, m©]HHé®"£5Œ¾P®æQÌë@~ˆ1Ðóöu¢JÁŸäù• +ñع|€Ê²¨Ê\I>å(‹3~k4ï[1¾ýðA¦¯m[Ô ø“D ýOc_Ç1œ«q ëf›.¶'rOÂô£uóä<´m šÖ‡²o+µ‚±>0±¶éÊÉ/k6%_í@†%-eâ‘^Jýö'i ¤Ži@Ag¹œ Øè”yÂ|žf/®vð¢²ÇQÆ’âV + Ó4|pså_Íd +öDš€H’Ïã„ã2àð,ûºÑ©Ö$zøgþÒjžFÆÓÄÀbôÐÆ°u·Ø ÛÖCŽøª„bÍͲøÖ |¬ CÍ!\AÛ XLµZ@@·U<0·T20·Y=<·º€ÐÖGJØ\F>e;&5nJQ΃D¹í–è°éWËõSnðB²w`rÚ×€ 8ӛтí-GŠ49‰{Ô*™2 Loð2j-Ô‚`Ä|?9ñ=dA_áÜiÒVëÏ„Eÿ£ãLž‚¢óHÂuüñ„+xĈ/“£‡U)1sÀÂJ{A¥79íÚ$­÷×TÁ5tÞÊÑYW½Ð¤!ÝJhbª} ÃS»`EdÄÏdú­ lûD$ÚV2(»‚ÖÇ?µâñC*C ò9 U +Ö0tiÙ˜½2m ¡œ6ˆ2ºôëCš‚5Ói¸'yz¿SÅÞӨ׹óÀ5X…\¨#UqP +±¡ À `H:©-S€@0 ÃâñXÔ­<€ÁafÉc B@ áÒÓ¢CÍûÎö²s†UÑg'„Þwê8øÝÛÁ÷ rÇTgGGUŽ¥tîßég=êÉ!£æ=Ì÷ —ýD3 ¾'»còÇõ^óÁ0£æa÷?ë÷Ÿ HY·Tv+TŒá}ÞÐîïzW£ø y`ãÇ7òççg]í§>M¡Üúg­~îO> +ÃýŸƒXV+îÁfÿMWv.ììv¯Ûïõñpãƒð†ÌLtaø[‡‡ŸµûwàþÈÆ—ø³æòdÅÿ-t«ŸoÛ½QOÕy1#GuŒ˜x·òÏúe³í>· ĵXÖ ƒÏû]nkÏ;õNa"mP<ŠQ]ü,û, é[$ÀlëÂ?ëã|œú æ¬k¥5 ¢Ú ˆçãv±¯å¿ˆG^ùø¸ Ø?kȬ™>7®½‡³¸IßiÚ-Úá…_n™_{^ÏB4f†KŒ qÖ“¹:ëŒ õ’§’Û|F¾ð³~<±Âjª6·pý'ü¼Ê®^Yóü±ˆ?káÍ­ëÄ;ë¬uI^ž·q«Ÿ…úFX'ö)0÷ª˜%Dι,ü_lH$zÍÅãöà ûéá‚»ñýÏšÿU£òVx^KÁ‡ Úyì3[’Ð=ƒyn~ü_åbë°0gº=ùö Mép²mûg™©§quLÓìš-ï÷\oÙYN¡|û'®ÏÑ6tSŠœ×õ2>?°ŸP!¾q¸=Ìʯ¸=cŠÁ½è½w´­ 9Zˆø‘.xDêáE`·H7ŠÞ;Yæ}Üb®%v£³–å?M–uç‰+2ë¥`=×ñc÷U¼¢›}óVê}i“qîgGbÚV˜¸úX[ž1ÏxORº:4çA°µT¥ðøåÒ=/.ïjAçqÈ«· 7þò&M'æ÷ïÛvÚ“xqÏÃ8z|—Ýúôê =;ôÇYMóBÍ-·Òºù¾,¼hÁÀš?Àî¦4ÄáÓ 2+Éÿ1O×~×ôÍ g[œ90"àñAÈ:VAk6ƒzÝw‘Ú*^À£ÆÏÜ[©Ö'ü¸+×üÄÝ!1?ã­ÏÔ°-»Ÿ|Ÿ[žþ@t~I›¨tù{²mÛÐõКýî%Å{¸ÈÀ,¯â2Ã/a·EÔ¥DCü é¤û²5×NŒ°Kã'z'Ø­’>ȧ¥vãbZåÕH*öÿŸ×þ=ÃÄèzæø‡Ö1ý’y•/‰c‡ÁDÊ/t°û;ï°û¾@·¯½D3ó¸;ÓâÌ&~>4h©… +T 3Rôkh«Íshœïp úæú©«õv÷ßÌDT>—g ™Ï•ÞµÈiv_Iœ½SÇï×q¼ÈÜ`MìMÖÂuÄ«=g/£ ÕÞ?’Öõú +kuò]Êž£[¤‹\ÏŸ¿Ÿþ{þÐŃ +ñ§Š«w˜Ì½è-<ÓØc$»°ïÐ—Ž†$lNó"âyš•k f”»{ª˜^çî (ÍÙÜ[=ÜÁá_²*ys”ðç<¥Æìƒñ?›×r×ó®¥]e6ä=Î^ÐÃ¥ÃÃÄvª… ýUp+˜˜€ŒýS4lšÑsšC²ÞòÌšVª¶½zƒÑ‚cüOýÿÕY»)$ #¦~I—ä„­ ~Ù´e‡ßM‘Á³‘œºŸ7·z)úç?Û»ëWæ‡yÂ¥„™ã0Oµ²Ìár&˜,&9ù9öš¹úÿßÊœý½+Óõ›º2!>Ò;,Àmfæ×gê;qÜû¶¯(œh?Ú7¾GŽ·ß ª™ñ®»…è¶Ü(7«¾ +ñÁ!†WS´O^ªf MxV©a5®­`Ž¥]‘؆ÚßÃ.L­UlÝ‘¶J%õÁÚÿ£—ê+óس/8ÅÓ„<¾^¨ê ^íÖÕ%Ô+´T£ß(Zz&±¶±{:ÜóÔ:†øgòw‡Ì5Äû! òÞ9 Ì×iìl$áü^ÎýrŠ……Ý\Œ(¿U’…iò5ÀÂÄߟ¹]¾ÎT”ß{ì³¾ŒÕ¼Ž•·ßžô;¥¿úB´¾2ƒA °xØ”ù¢"´H±=n܃8Ë'žùÐ8L@cŒ£|¼ ”éÿgx¸IܵQÊéýÐ0!‰NÁþg(<\¨+ 9ÕÝZ: æ×5ñöv°ã)Û³rö¼ë%sG7¤SÄ«*p°c‘ÑoùQ÷9}æ +5þ׌8jâ]%1ãCâ!˜+¨êkAu1E@Ä7ßìÏ)qµ&…æƒ[¡£Ílöú~6ôùi4Ž ½«íî7†â L—μ³pöà%/¡Ýlsöæ¿ß¶róã¸îÐPMqÇíGHó?‡\×~[ÿÂyª8¼Ž4ûàåóS#ÓÜ”ºÕ–¶NpègvÍQ(IÛ®pî•ì?ŠZ?ܹÏÔ@ö¡©`PzV@¹ÄþŸFjãýö÷Iœ|à2¾é¬gªÜHÕõ0V W3@ŸªhxFñ½Àÿ£²þºå͇ãš^²Y_Ý;$Ƶ)6 (ºxÙÁkú™JühÙA…ök6ŽŽ_-ENzɪ°S Ϧ} |ÏnXÄíˆÝzÇââú¸8aðz¨:ê½]¬-¢¿…ÿJ÷ûnjA©k  {LP3å&(üôi6 +vi7Ú2¢ eÈöwù£Itvyjˆ`Riq䀛6ññsÔã_ ÏŽ™¢Æÿ ¤¦ò?’ ð<©¿]è¾]%€^Mˆì¯þQfT¢L#Ñ2­ùœîAQkàÒO}f#´ñ:¼‘ÈÂO”ḬZ晣!çË lö!ðÅZÀ X{kÓ{œ‚„ܸ`†‹,gØ$Zj¡†‡†NÎhøûû/½cFU‘gÔ‚R†ŠAɹ¢÷òãvƒòA…©Ê¹=æáÏ¡Ú-§ŸmØ||éÚT¸!rÚ„ƒT,¯¾Pã„,^]Àgt ¶˯%Py2;çÅÙžG‹"¹¯kú‰ ôî#QÁ}÷"V}öÕƒ;1‘¨J|Œ—‚ØÖ{ÊX¡Ò»qF€ß,µ¶ÒÓaÚ1cU߆åEãêM´%ãK½‘1ªV.Šà@ Q)¼,.¤õÆÀm 'q—4b“Óí»æžº *(äc'_ÑèŸÌ÷ ÒW]Õñ[Fû8ˆ.Ê¡B+PÒƒã&¼JåygÖÉZi†ðÑX5ÔÉRÓ@9Yâ:®* @e…̵n›¼ý.Ådi.3’é< +ª-•ê襶_&Rä”EîÆ ™¿;È5¶ o…Cq.åI‚jü«™ÞàlÖ×@:#1ü'Æ¥¹Bi1¥5@Wíu‡Î +åCS +šU·@ºE5Ø_Ér£¦¤²tã›ïíqÌa^gh"ékþ°–IùyUqÙj-DÏÍŠS@# ‚¯2­:!õë²Æ¾Wøæ,â°H\â©Ù´ÄÎÄëÀMT]6#ïbíÖK¤ ¸5DØÛo+±‡œ¬>ÓØÀ +oT_ãAT‰‹“ý ›ÚåÀ{â\Ãä)M;¶ï#ä1ßò:ñ 5=[MŸse%÷Vš+ @q¹@ª +…Pâ©;C¶Rè̹Aà©JR3EÍõ¾V²,šñVð€ ÀhL~ÊÖ Ì­ô ¤Ô=H¾w¢É(Y½ÁØ}H>¹ˆÍwïW{¤\ÿ ·œŒqA?%ωÑ/”:¥”JJïuJ¥KõÎUüçhò–'5}¾L +;!XI¥_LaŠª4?CP;éü[­„s¤>ɽÞlÑ*‚º/=¶2Õ·0 obÿÞIa¸4œ“ÜË$—˽s.Zãþ²ã-¥‚…ÐÚF4Ý™P÷¯;Ü¡Y;Í¢1 ·:àÞJ&ÕmÑ>×ù#‰ÆäÊ:*fˆ€Ö‚˜.3;Xj¦¦ÄZswî½Öœ1ØP~âíÇJªÓ/ü©Š¢ +1P`hR¦{1¶VàBU:+¸è´caès«—K•šR…Å" h±ør‘ü—BëWPh}ù)tš`¡š1æÏ_!œ Äèl1¥’1Ä´ª*4ó¢Eî_Ê7DSÅ +ì¤èÌÑ¢½ç­½o+I®(z¿’ðùÀOS ë‡q €q8š1ÑÃÔÑòy“$ÚiÓÏyœÕÞÚjé«5Œ™8š=«™3ó`h¹Z.¹úÁÕrÉ%×êØ±e?ï92oœ–ŒÔ±¥d"†y0 ûé‡yôóè§#ÃÐOÇÕO?ýÀalœÅ<úY©ŸÕÏcŒ5‘™4s&¢ó*ÿDÄS( 6¢ì¤PȺ?ÁÂWK¡d?º_¡w,‹%ÒåùCt xb“[Ù—äJ‘ÿ7¬µ†µ©R“‚DRÆw¹4çË›ÅâÍÝBÿ,ýÎŒÐgõ× žTèVÆWV¸ÿy€ R`kÿÂ`4æNïõæÞÎhc­k èÍÃÛ'°ôÙ«­L ÔüÊç[£‡n]4ûµ2Ù·Ô‘‡Fc›AwɽRJL%€ùF3!|´ƒŒäÌÝ™³Ö˜»;kùsèoµ³Öé¹÷ž{ι»Çž?öœswÒYýœswщ:¡{ÎWc­_븜;Ü1÷ö8íÈøž[í«ßb¤öæçà{Ð9 ›·úIè«}5„Ì£áê¸VC¢_ŒÌ£ÕÎrVtœè´#›ãÜ=ù<éñq¬Io¬1ÇÅÝ#Ÿ³öÜ£tþüyŽtgLž¤Šš ª•Ã[ɼŒÊ¸b1Õì0¹µZÈÀÀæ9oؼ€™šêä8h8xGèšöäã t¶óx4dÌ£™ÇjÛkM“McHL‰Ö°†Q¶'èOcO2”Nƒ>°a‹Ñ9ǾÇ#dmulÌã!¥‹D†Å¨£*K…ш‚#@@L –ÈEs=[%>@A£ 0@ a0€HA¡@Ç “R$ (Ó5v!Å&1 ¼zÙŒi“4¹Ðë¦RAL bj³Ú´d52 ˆQhqÉ#È%ƒM„b¬‹«4päÑxøN] ±|±J <`ñÐ8x+¨>EA+27zúd(|u(è/»º\K‘ãb%]2Y‚àGŒkJ@úR¬Ífa€&¯°Vƒd­¥Õ^Ê–¶M_%²§R@£Þ)ÅFçS{/ˆ=AA™§”6ž‡˜ŸœÕTÑ–—·áÀ‚açS²ƒ Åp0DÝ*³îíJ{Eä^mnT¸C[„ZlµV¯ ì¼_;!$ @*`xŒ„MôQ"D½Y:£¼Œ^ô‹éçôªüõÂ}TL‰ð±C4É õ2³´É?ývÿÇÚêêE+Ód–þvXÛœöQX5ÒÏ5À¯)ÚÂR‰Õ[°£xâŠ,´švCŽ™<}°I—‘ÏÐBë0¥÷Y[ 8‚ñlC1…`c¼èÛÁÜDcÔ‚kÒ„tH?øN(7LüÑ]¶˜ »GM:n)Þž"‰ù:uªƒ‰ o@Gþ; +#K&äæxI襁Oë'¾Â¯m9TkÜpQÔ“ÙÞ­¢ŠšŒÝÄD0Y¢OkÃ'÷¸œ`úÔ?ªFž~7CVüÓ™1óc_X!‹†eÒÇ +›âgr@·ÝŒ% º^‰\¿ÂáÅp7…f–°}ñKÌCßò„•_ûüÞr[ÄG–W`ïúRH°Oü§!Vèbsš†Jk]Db¹o?"‚[áV—íÝ""×AgÞF&ÉýsUËôÆgU=Z&¯ N¯÷@º_õ-ïá¿Á“:ªyû¼{æ2”žŽòfÈc”Œ`Yƒx: jÉNRçF^UÛVئ—\uŽu!½fæ«rÁ"üs2àzÿ+î¡&+èø—Ì)ÍîˆN€O¢{I&æÜdmG›M½\³Œ‹aʰب¿™EkýQÆ+u¿èG†Ð`¹!èþÅrîÑƺè0ƪíÿ‰cÊ·=Ò‡N¯Ô@ò.-?þ+#À D(Ç+f'…®„n=Py–nƒiaìo·ê‹#y³P´bl·œi'ŽžÁ•w´_ËÚâê¬0ÆÂàÉ%ëyÕ¡éÝÑÔ'¹ŽÈ=8à¼;wQOÒ# Ö,£áI0>@0 °&ÊŠ[ÒÔz´e®%Jƒ„Îú—LM|ðCr±6·åh½2µ¯3=áÂN£i?%Í›dûe›å¨ÑÖãÍ‹Åy¬xw `#k§ ~§Ö&t“²°IZŒà©–‚顉9Â1ãµí,ux…Q“n°3•â^[ìÂÕ(?›ù ùª€NXëè¬ÛÊäjÐ +³_©ª¶)n“œýÌQt–v'ÃûÑÂjWÎDȾž@ ,ºåÒ\'be—®C2ÃsxI£ÖQê[ìÉ×mìà£SŒ)ó ^"í3´2õ¨4Yƒ&úªØ–{o6ê9x½Ð—¶™Æ«¤Z¹§D‡b¡ì¾—Ê%Þ°øuøˆ^ò‡Æ&Ö<€ÇJ•\0á†ÈM8D QÕüc|_š kd±œ&h,v°yêp|–LÓÎ}·“±Î»3ÌÃrƒ³ª°©ñÅßÅ}·E‘PÆ”] 9it¹¤zÌj +¦ ¤ði)be¬¯ƒ™þ";Ÿ•Ò…ÒC€–5 ªÏy´•{Ú DHËȉv@½&ÉÒiC#c2EzïfôxK{ÙÁ({kÅäèŠ Î…>Ísîƒè”õ~¿f'í¤_¹Ä»+‰PËcoæÂ¥¶AÇèבÇî°À7öÀ¢Ð‘¼K޲øºu©‡Äó©¦Tp;slÅ£I½4„ ™ÁtiXP¤tòª»°O±—õh§ szÄI,míI¥XWk‰5_[¥KÔ]zù¦Ïˆz…ºŸÅ6Q±Ü9¯¨'yܴΠ2Ý¢Ž8º—u?µ÷¼úLœÐë?5¬ÜÓ£2€0rÙ‘…€ÁUšÐ©§|w´v– ò¸=ÚÔkâüþC~"°.ït +Ü_Ó„&OK·N…fšFªlÙõä›Q" +àb¿b(Ì"Gí…t1p‡¤-\õAþñ>.FÈH›²IbŸ9pM¬m*t *”¡'}#A/ÿuVÐòÔѦÙ!'>sUŠäGÈùD]× 2-c&ßrËHÅòä¨âo-»å1ë%-c,g‡¥žÊà.Y5^æ›PY@'‚”ƒôo_ð<¢½ò¶Q³Ùë‰evq[ªÀ®.ØãY5£zkaªvCC\HPwU»Ë½Öy<™,¸ûdAö«ù,üˆ¥gç 6ygZbêQöÓdSI©Am2#müzç Û4ÞH†m ° »»~»E¶Ô’Ž1Røî%  ‡ñ.{(8±<ÈõEò*nUñ7w­Á㡉;sO$-tñã¥<;2CRbÏsòEÈ)>d¢Í2«2FÅ.–pâQ¼-­ÚµN¸±òvÉ£b-NžÑœ¥mâØ!Z5/»ÔÑ•áñáÐ5e¡õ¯ãò’ oF8Û:ãJQ˜WôŒ˜C$4¡1­I­€Ýõ—>ó•bF^hU™Ü>õ¬ªÏÜô„X0#þ¸ún›Î)p5Ée'¦¨î)û"YÍkËNѱö(’û^ØgÄ¿š’J­ÐÉ`§ND0‰æ@;ŠFÊ›ªpsïD„Ô.y%\Ÿ6ÈG`GUiSŒ)ã >¡—åê™¶“GÊÜ+ |\Þæ‘ Zhæ}hüFjn{w*^6›åÉBϘFŒnsÓ#UgÉPëð +òM¦éDXlß— kÂÒ…g/Aeúã[*ƒ4'Òr$¼[÷+:4äüÔ´*œÄ\þ€ÃŒÜÆsëøéíx@¶(ø§¿e*m‡†·ì¬³ÑÈXMß0g‰  µ0éÃ:³(;¶°;[8šØôxÈî#¦D¥ ä*ÔÚ>Æ@dy^)šhOhªá$ Ã$Ð57DB\¥„ +§IÿLj@ªH4(L£¯„w+T~ŒâÓÛ6f-Þ—KZ$ŽÄ£¥=N¦ŒÝ/Ç*)4¸ lê™qMtê¶O=ÆüSn:YÆØ(÷‡¥lþ¢sÕuÙr.]S³±¯»%*à”Fe’¯M“ÆÊxÇ(YeMú3wÔ‰®:ánÛ¥BÈÆ!¡r—’8ªNK™Éñe»À®ÿ;?2¢'†,É# n®4-8aaæå”›œšÑ¡±Â[0âz&9ÁüàŽ‡È˜îª›Ê…zn:°kƒ4—„w6=‰¾•5Èæùñ݃¹dèþ³[;ød£)Æ>wüÚê›Ðt`ZmºƒD-–…X«ëàL/ +϶“šèQ ÀËe–3› ’…¼%ÓD cGSïÖ?QP(Kd[7w]Mª$ýS®. hò±y¹JÚ\»¬RÃJ§÷¿K£ 3ÕNn£Á±¨È’F‹' ï•–…Ï%g Cúï ÿü!B£ü!(êkNØØoÊ9’²B‰ÇHƒØoö EÒ¶9-LÞÜ·(âûÍ-·¾  Äßuߨ¼@*æÖ‰G0CœGéUz•êásÚEÑâD~‘øñq‹,“·)†˜š-ÓÌlŒic Q@¨F:¥”RJ½;E”C”!úüx5x?™¡ÞùË:n¦§^wï²®x-EÎZ£wY—E• ÖNH^*ãØ–úOë–^êU¾•ßxÎo›âðN$Nã²ÜåÏG@v+­W{ïmúV©¯”öÊî+¥½S²ŸÚî¶Tb§oÕŸÔ^kÖŸ)­QÒ§ÿ±¶°+^–¯ÖÑO,£ð/¶‘NünE( ¬2Ê¿/…q—×ã}—ô:…ùjI º¤0nI‡Nã{GLaä{œ2zœ¿­ÙGŸ•Zk­3J RÜØã[N•¤†Â`¯ôm¼–O8©µÓÿ?Z½F;ã׊ñH!¶°bÛkœðg};ZÜ-eÄ'¥?) ıºÄÑ~S+U²î‘Zêaˆ®éNúñ¡[ÙÒÒø~=•æ©<•§º'í£õYk´ØÛFûQºßÖã»%+Ø£´ -íÏh¡KŠk|‹Òp¬°¾åÖ}ÒXq¬œRÚNkáì9=^÷Ý­ûlX%ÅñJlùŒÒ¡uëŽ@'—ð:ì +§l§ò-è ªa.kºÓ[-øã.§­¾]º¤2°1n}ÄRè-¯ûV;|i½|‹ºîßï¾[}B‰q”ÆmÄS :u݈%•ÓJ RÛV½±?Vê’±Þˆ)uan±…?ÿâZmGiYbkƆUÊëQ^úøÆíÏ«ÊëWƶ5b8©ßŽ2k .Q 8¡¬sÚH)¶ªOOÇþJ*í´³Æ{%öhᬕÒ8­N‡Ã¯Ã¯r¾O >U‚oAïKÇÔ»ÎZݺ¬R½}ù*¯œß²¬ëv·[ "lãÿŸ”¾ÇŸôb‰ô«´d…í…íð!m ì·ÔíÓ–bAw ^L]ºCJ]°/ +Ý¡;¼øöGLcÛ=-·ñJËzùÔU‚î¤Ý§S©vÒ*£½°»õmÙ‹*Õï§DÔÕS—ÏÿŽnýi[üþSJ‹kßè¯)=þS%©¥Wtt,–w68îPÊ‹ÂÀjY×~Ë¢.è?ÄÿoQ¬øÿð%|‰¥”ñr·0°¾ÄoY%øýùë0Ò—…r—q¯ ƒ)]˜ ÓæòT—§º.O婨ëòTž +ã©<…¹·/OUòTžŠ:EXIÝí}ê'd9þ`–ë´B²(út‡@ŸJi×î·°,±õ áiQI¥Õ³Ïì í•Ý⇠l +sQ +sa. +ƒ¹®÷÷ëZk#ŽØ^ê±ý¢0R~l§®vwwwê¢0tVzc•ö;Zê²æã½—º(LS˜)©«ã¤0”V,#½òçŒÝÔåÿ¥¿(Lµ¨ß¿2¾EaæÅ2º_¿¨uÑH- +Sã”tbgœÖu=bkÞz¯Eal¶T'…y‡ÓZY«Ç¿¦l ¶n_ìÿíµ¬ÄrR¯ÿ]/µNûNû¶¿6~ 7n³D {*ä O(Oè²÷ÙÈ ÷,ðÂñT—‹ÆSy*Oå©<ÕœžŠú\<•§òT!ž ôÛá{°É”iÒ–]®}0/Ë„ò×å ÛEK><•¼ÖÒK§K‘5íÄ–çдf¶Óòk/†QLû1ìbØg+4ûZùí´.ý\«?M­U’‡iÀ +pÒ@ì©,><•§2€ÀøvÏmؾ„àì¾OUë6žÊSQžŠ:Q><5I¦1ÑP  ¬ãŠi?îxñKûÔi­qVl/pNkÿ§c âÿéög|;­íkéß–Ncµ Ózß+Å{µÑR¥ ¬mkÛîwé_'Å7^‹-µ?#µ`í:cµŽñ;®TÂKíœîÿ}ÝÎÇ´¾´ÕeuÜÔ¶lÙëÄöV¯w¶Ä.í¥´ÞèöÖJ¿ç¥}ÚúÔeWkÿ«ìym¼?§üz£ûÄ8^+±•QºuEéU’. +]Ò2Í7µQB:¿F+¢@VÞÖû©óAßµÖèÖ¢@Ð/šuV‹g¤n½[TÉúµ®‡ÞøÚK£—dÏØn]p¾u*É(­ú´¯x¹S¥Xÿz¬UºÎ[it +$©ãèл¥½ø§G÷k>ĵv¬Tbï„u›t +Ä1A û©ÑÅ[vì¶þwÞ–·¥u‰«Ä•ÞIq¥ôgÖö•îÓ]N;)Xq_—ýO¥¬Ø¾¤¸RK{Êkqý~—Ýýc»S‰çW:oWbKï´]å}Çvv­ýõï?þé¸Ú®¶}VZeµŽ©ô–ÖΗkÕVyÝö{ßÙòñ¬mýë¼M§ÄöqWz-õYýZ;oÇÆî—RÛßVÎ[mí³¿R.Ð-eåõ—M©|¿˜þÏ;k…î÷}ºßÿ–ó½ï¥Ó^I§¤—rS6ºtÇ/ëÄOûÊØS6¾òº}û)”îõÖKçt§\à”NÙ@)¯´î?ßÛ祲6µ/åTÊ‹q ©­ÖÖIm½×½ö¼~û^9¥{}ûUúìùò]Ú;ÝßÚ[¥ÄøýÒºµ’JÜß^åí¶cÛ³/µO-þŸ~é¼ö^ܘrMÙÀK~­ÞWb‰ëÛê±'­òN§U~Äòïô®ôñ|9ÝN[ï­ÿ?'þIíýÙ“F§\ ” üv+g_§-»ëÄôëmåã\»RÛí” ìÇýî´bw+Ójå7¥rz“²uþÓ¦“ÞZgÅ”ÞJí¤øâÙïÒÞë” ”^ÿ)èÖ)Kr¸VkåÄÕº;±ÿ­•Öëœû¿Z{ë¤Õ}JÙ²ßkc|klØÛ*-¥” œÝ÷œ¶¿¥}ëw~•×ý^+¿>®tÎJ§¥W¾´ßm߯Å_\§SŒ)¥ô«¥þöb)«ã‹¿>Ž}gí*)–sÖ¦TÊ;-åý:e-•Þ·µV[¿çõ)­Ûв=}ÚØÖÎko”—Ê:ŸÎ·.i•³öm|'¥O»¥ü(åS6ðéS<6”;–]ŸJ‰ŸÞè³~Së¸1¥\`µNoCY½¥½]­Ïë76¦·¤\ >ql§]gì:ë×ÙÒ›6¦l OÿÇöÞÙ_«uj«¤\à}ÊZùT~c;é]é¿ÓöJ'層l ÄNáˆP÷+±ßÚsÖ¿òV—þw~Ë–•¶•øNi߯;Årzíy´ËýþûÓÆ†Ó›ÚûRb¬¦JêWº û×ÚvR;ëGËêå[9»NŠûã8àeÉP؈CQ||8ùû²†qB[…_X*lÃA¨ÃBöud˜©ÃB4O( ãF Î94q]Æ Á4¯Ë0wœ(_`hÃLTÀꔄa&Ž’ø\NöN¡MûtÈs;¿AÇÄu™ ìòwÚØr +pÂà„mpËòÔ¡ÿ— ô¯÷«Œm1}[„Ïqö©ŒmQ¢”i%ÂDœÑ‡qFÆ×^:1–¸÷Ké?cC—ô+SÒ¿õ'}jÝö»KJ!' (sDøll&”D.aY†RcŸß±9$ „çåmÛðB[6åL‡yd-dëȲÓ2GÖB¶a`—¿(»®tŸÕñÅýõâyqãqOìЧœÑ©”°¡1:lŒ¥N«C èÖúí:»ç|9¼.OèN߯eD( ¨eš „0eXt¸qÛÆeß ” ¨˜PIhËÚÅMÐÁ¬’ZpNL«Î6ÜдL3 mlyBEöhZ¦ù²Shã0_‡q&"?P–™D '&݆ö™Äu_”yØ…¾ŽöɼÌc’€¸eØ¡&`h;Mò„ìåv`!:ÏÜ(p[Æ„òpK(+…#l‹P#”åp2iØpbá~„‚ˆPžÓ4žÚv0ž +öÉ®¬}^Ö]<(!© ¥„¡ ZB)½Ûa÷{cØRè +B¡ "„˜|#lër(_p’C¶S[.àÃ2à†>QöyYqp¢eoËL¹+3a#Љë Ð‚#¦iÚ#”!&ñã@ -ÚNp!ºê6`—C° Ó€#ïÔ] µ±e!'sûçGz+þÿX/¥/eµŽ/ŽÓ*y¬>…}Pl/•ýn1¦îߦvâºy*Oå©<•§òTžÊSy*Oå©<•§òTžÊSy*Oå©ÞSaºßqlÚô!¥ÓqOX¿RÚŸÂøKË’ÓºU­åO*£}‹FÙÑR êV9«S –V´ŽFùò§ã[«Kˆí¥6N+¶¬ãˆß‚ö6ŽóçÄOiœUâI)óåß'¥@í“Êx©«Ê·Ñݺ-uùè-ü×kÄ‘¾õÓé³±ÇêUzêD€ˆNlÙn¦Dn¦ ©/,.$ árë)ÀYU½Hð¸‹ä'˜„2i†Á¢K´"±@ŠŒ… Ûù. FŠL5A-,T³ #¡â£ÑŽ‚ë–Ï£Û8„‡ãˆ8ИH:ŽÆÈ- RÃD6Ñ .¾B‚ó Þ¬(˜ºYK„c *2Ú…LÇ¡q‰×)Œ(2 2Xƒã`¢@ˆ71À‘/ +*(›Ø‚z“HÊЊ„‚Es +˜&4& t*ÖZ,ƒ‰CÄA~”o©¨®B’bãAä?. ¸›>œU½Hw¤EŒÂÑ`AÚ`QæòuPHä‚ó5$“–߈B2ÑLzòñ X´"©( ˜C(g轸Àt,8©€ÜáØ‡e0Ÿ&É@ÙKС`VðÏDÙ·åÐŇlÙ‡}¸dqnã4f¬ÛLØÞûXrVºø¿:ŽÂ×YJ\§©YÆÆe°.û¼œ m&kYG¬Û8}R‡it9öOé4êÈÖå-oB2…œy|²‚ÏÃ4¦¬y9ó^¿mÃHù³H L¡/d;åìÓP€Ð–a—C[þF  ”?–?0³]Àx±˜3 +°Tº®3}'®vÁRÞ²âà–Á.(€Éƒ[¦%*`ör‚9ëÀ-‡¶L¡Ë0~[.H\ÆÒd8ÐÓ0˜åËX°Ë[–áÖå(˦,eù5-Þ–e˜³ m™½œe"9ã¸G“áÌŽìr'u˜F)ë:.“ ë:ü²Qà2¹Äu#·q™ÆqDßváÑd8ï–Ì„aB¶ìËBM†ã~a±¶ 3Q÷\ +É^ÿ……Öe2 +ܨóyÙIÛtÅÏÓH[–5Söi'<ëtÜ´aæ-»B?»:—ÉÞ)~¸§‰ûpFGªP…p M`¥/ûxXþ¶,–@¯}^g2eØåO–»8u§L$šˆêL¦Ø™0Yzû欔ÅÎdºbg2ÅÎdêL[HæåPüp>ßE‘ˆu Qo ÒLZöÅPê"©’·LåÐÇŽmYÁL&Lëò„Q é¸H*…Lˆ1Ô¾ìûp°¼EÏd:yÑD@ôLŸ“¿MÔaŸH*…”¢‰€ì™8S, ÌîŸxËÎú7:‘K ÇfCCùÃ8LdËYÇÅPz»åê@œ¨3i¡øm¢ì=“›2 „e߆‰²æ‘:¬dâ¾(q¡œµO$•Bº.šø0Môeo;‰L™&Сę<; ´q߯¢g*ÅNIkÑ3m½.Ôu9„¼è™B&-‡¸RÈÔeíóBQû¼¬iHË>œÆ„Ë¡ÌcòÉ +,ȉ¶‹‡¿-ë8—½.OÈ]ÁL‘ Ó>¦ŒäiÒ°øá"L&NÅÅcÒáT@çÀxX¦Y`ömxaÕ/,ðýÂâ tÊBÙ}˜É²e8¬e#&lëÀ-ƒÜñà@¹C±µõjZÆT—ºœ—Z°½/{ž%klò²Là²ãð¾Ó|Ùûœ:®a8Áê,—…ä5S‰AS¦²ÎÔå œ)dËF^¶aÐÝZב7Lã|¢|aÛerh»¸Œ@ÙH—;S‰Ãd-q'”?¥ +M†ãuçÂBò>òó–i߉k-OȬðevBC¶ Ï×´Œ‘'£iãŸ(_~ñ¥Ÿ(_þõ;ŽÓ4öÒ)ÊWþ¨ Ø7ç…Žý‚B¶ŒBÎ<®(_„iæÆec«} Ê2Yû`¹„Ð0wy™‹.ÛˆË|˜…–;H€ãå+ÛxBY·q,Ó0˜}&‚Õ;Nã0gêxÞ»¯£i'Í……Ô±ãôä:àמſÓÁd/A6åˇ2ÍtÊP9çßî”iž÷+}—þ?fS…½oË—µLC¶lÖÉ.'úœ:0{ 2²-AhËh@¨@Óáh|ÀíÄu!$vLÄ]&L£G_(SéÐ2¦Âg*U|²›]Ü&‡Nh»ð²Váëoã +È:ÎBÃ@Ù×e¯Ë ÌÔðÒè°0q˜C°SȆ]ó;™¾ÓÄ––päe ˆ/,¿.oùû0MM§/w t¿°8ÙNÞ + ‰N˜»¬}_¦Á ÂaáhtY;qL°"þ—}™Çq8¸-s|[Æq,턉rÆ»Àrg1qF”¯o’qx˜¸ŽPÎÚE;™2‡†}8mÓñ° †‘WVÿ2-û`_ª€¹æŽݳöùÃ4ÎËÞŸO»t1ˆ%¥5ó`—M˜ b†².B|a ߉#¸¡s R3U3SÈz*Îäy™†u÷ù: ä: )Ó0P¦sa 5`ìÃBØ—KD^Y)ûLœ{‡™¼ ë¾’¦!´.[–¿Óà¶Ï\x![ö}¹óåûDó78‘m'îâŸ(_%îû¸O… +–? Lóœ‚ÈûrçËìÃ2Y3•0o¢Ä}Þ ô&>Xæ_îtØٲЖ}$@œñTž§"àuØ·9D¾‰§Â¡­Â3ÿÂR=Dgãù¼ìºpÞñu[ñ¥íÕíã[}N‹§•ïÓßÞzß1í·/)ˆßÛ­ÅöÞžuÊéÖ1…¶¿¡vZL/nûõÚZiË)ñÿ:LôÉ +~>åΧpDžrÝò1¶oï_Ç·©¥íwÊïJÝû)8gÇny»ï¬³ý:¾¸ßÊúµ­[+k¿|l±ukíãI}bi)=¯¬˜º¥s~u[ÝJŒéKZ)ý‹··_ìϧ.çËØ-Ÿþ”Þ/cuùþNáˆü·OZÛ^ùwÞú²JLïsÖ‹%öÖ‹)µ–rÖR6ÐÚz%•.-ŘZkg½×Vz­ßžMŸ6vŒm;•¸RÊ:¥pD(XÿÛ鬗ÖözÿΧWÒZoí:ç½—Vo¿S.°C8Ða–‰ý‘§®¢~B‰8uÖ€×$¨¨hŒ—dA‚M°að@ȘUC˜†ÁÄÔPD Fô)çz Bâçâ!Á‚†4i¼ ³ë*ʇÐP}©û€a€™¨X\Š׫¨‡Ò4øàl$™*ÀQ::ŠL#7d`L.'e:(ʃ®âº|Í‚LEY‘µ ùB `,Hp‰)‚F É,¤$q̧1¡ Ö¡@`ƒ]Ðð<ïS}—Ç0>.‘xŸMÅ{ðqy äãòþQ;ϦÒy<2ÑydE)Hh°ñðððøØàʃHÂCKx™@L˜–Ç$øpèX"üI^&y¹'$óØLX"A-þ0©::>:> "‹–ˆˆ@@°hL‰³©t>2*2Ã4Á(aHÀ' §À(EæÄ)1J‘‰£qÂpŠRQ¯!ù2 +Nã"„CE„â"‚ÄÃÅE„/Äsð]&B1=—¯(χGŽ»¢,B(¾Šâ«¼Eˆ¿Eˆ„|÷ e<,ÊÃWx“)ñ€òðß%ý&´‘àP^ƒ«(æ§ÿH¸0çþSñ Ӡ¥I¤âCCƒ^ñ ¢âI„‹e² ™ÏxÜE"Ác²á8•Mb@;i*õzļL  <ä6Àân¨ø@pàæÐ(_ µ£ƒÓô—€Ì§*¡£D €$:„S©(×ècz’ ¯ÃÖ†Áƒ€idUCEpéÐô$¤að*>¸…UĈjl€p&\ ,®V™:´"‘dL. (^0šþ&bŠ™Í‚ ˆ¥èÐ`¾‰ +N¥CóÀÀ¬©8…2ÌCÛŒ6*]W}:0Qz9Æt‰Z£ãv&Åq050¡á`t„S„nXp!ÈȾ°ÁY›­pèù¸Øˆ]Hï³ñ>ﳉ˜Š:…>.?‰‘1"ÊÃÇÈ„èÊðIçÙD&DgS‘ è<¼Åà"‹ÁEƒ‹$4Pð¡@Á‡ÇÁ€9Æbp‘„ÁEÍaaL &ÇÇ‚Gƒ +ÿ6T8Fƒ¨¥ dcÙT$“Èå+JBò$$OBò8M%A‚,Ž‘<’‘#äŽïj Æ!ÔŠC¨1 ‡P?Teñ0“,ËgSé|t>:‚Ec* +ƒåÆ0xõƒËa’ÈΤU +¹€`"Ãä`"Ãã.’êÁ& ‚ ŠŒ'Už0„ÁEQz x€”' §h ˜ ¥F†S`˜ðyaƒ+rä9øßx*¼¢¾L„BÉË}¡¢.8>ÕP¡ÀTÔÅBE„¢baS‘\xÜ%~<a1¢¶ÙàŠ„z¯òU$eáU(+Ã)$e1@ÂÇ…â[}\ÞÂã.^åë,SçÙlMERâTÛLÚ„860(¾ŠdãqIEq›PÄB~*’ÍÇ€òðÞ%ý&$™$ørð>›ÊæcÀ¼¢lh°Ê!£"B!Ñ0ð.á $¼áôÁ€ù…C0@j°‡Š„M*êÂY´ÅÃÌM IEe>0‹v€€ð!áAԜǦ"©pˆœÜ”$Ãaa$ +YQ *,‰ +‰ŠD¢BV<Øà +ŽLMº‹NÉŠxÁå9‡‘ QWTƒ„‹€&Â%Â9.ËQQ …‡ª¢’q99ø‹¦xx ÊÃ?œ<˜¤àCÉ&UU£8 'EW,š“`ƒ+ ¤"ÉlT™<š\ÞD±Dø…³ˆX  §!QUT*’‰ÄBa°Á•HEu„"¦ŠÄDC61Ðq5&ÂÂHº“¦"APŠ@°4°Dø…CbŽèÆGÅ u+”B 08_ )Óa90°ÐP+ ¼®¢®¸P`d#ù¡¡V”‰Íô4 ž©m|‰c@E5Ô5ý§bV”¶aP ¡bq%G5x ¡ÎåÀõtfäÁp‡Î‘¦=‚†Á«¨ “fJÐÐP„| CgE§®‚ÁáJ6iÐ( ºdt`(Ðu§ʤ¶«1ÁÏ0-®7‰²¡R¹×YÊÃWCçÑ6´2_2*àÈH,`82 RE²#Œ$:"Œ$@0†µ€!U$ ¾÷ñp?Àm¸_XÈŠ¯(„Ï4`y€À1™¸Fn’H}ÝRÉÂÁŒH@2(’ +áÂm´"1€0U48:sÒÓ›J™þïCªh Xè<#qXðp&‡ 6œ“•>'¾xQ¤8fyL¯T,ž„<ø˜‘’ º 3²ˆ4¨8œ0!H° ÿñ èÊâJ(¾6¨ð 8„šC#Û¨*jÒqàJT|Ü„„a©<|W² 5“<6?U”„ ‡Pƒ +\‰ß¸GÓu &@**ò!!Œ"L ’iyð )`x†Å0অt`ñd}Ø*HÑ™“ö¨t˜G ë*êcØÐ¨¦Àn:„Z‚Ñ L±¢ `¼ƒÄ#Pñ±DxHûȇNÅ"4øˆŸ‹Ö†Á«¨ 6 Ábépª†šQСéŠ:ÁaÔ†A#¢5ý25&Å€ˆ-0A$…Á3Qy  à€x4x  +,˜|´‹Šâ,¨Ú!B tF݃­ÃÁÍŠÒðÞ› ›Šät/ D`t£ÊAÙp‡PG" Èjs+6(f¤3'qµ‡G ë¼«¢2 ¡Ö6´"y`Ñ@ñ›a€®d*Ÿyp°àa²gA•a- +J 6&œŽ-œ¨dó'T™¤DBˆhf³0x(ʤ’© VȬfP.zVD.—c±H…RGqÄ@”AÈ(„AŒˆXHñÝŽ¶Ë˜S8"^ Ã?RXÃÑØ{”Ù`¥ÖAV²®É2¢F~ ¿ñ2?eÿM¶ù~c +wño¬¿e{Û¦žü£´à•/½¼.þn=pàªÐëï]hH^×ÇÉpð¼j­4ÃÛò&mÆÀI§Ì\¶ŽØ{w˜ß]úèÏæòƒ¦s”Và1QºwØpZ¹AoZ£¹ÝJüÒÅ )t¼èõ(ô¥ªÇn#q“ÛOé +‹-B9Èž =E¥.o§Âž)03N'4Ÿ«/( ‚ó6¶’08ˆÁê Èkì@É%=¤&è03²Áý!î«Äð×ã69mºó©Ÿé}½‚fЖËeÑ$¬¼C[îI¹¥ùk§0 endstream endobj 20 0 obj <>stream +ZKÜO×nÑéa9RæÇ:U¡c>,í,¡#yècGµv¼T +Ǫ˜#Ù2ÝýyaWÍMÞ¥°¨6+P5óÊmÔ˜xͤ°ÝO÷Æ,8ð²¶!Dt2hV€¬Vòd4Õ&»ozø¬Õ¢öY*þëÙ墻R 8¤ë£V#¡2:$eYt#P]å7GG7Ϙ(#iò£›d«$ +_¹è"™æè÷<«~tÄû *nUëÒµ؈´©‡£ƒ_¦ëŠî ÂFÖÛg€õbN®¶ô©‡X"7À!õHZFa¹Ç¶ãÍ3ÿ†Ê,Y[ nIHbé0) d䯧˜½ôö>™ÖW1Hñ9zsÉê:7¸ÈõåÃŒçZry,^‘Å/£°µ™b³™õÖÄ zZ#IUL¯äaf'&@ˆ=ÂЄŠ¹v ÄsËkA¸°Ä‰ðÃ@U®¡¼Æý¹Y4k¨šV›%a¶Üé3j0ºëÀÌ#Ä0[Û=J–\=“$ì,¥e–ÄÔjw‹Ð°*»)ïI„rf”mæ ý¡Ü^G„Ø ýMð¡·ÀsoßêSw±’Ìï+ú â`ÒþA@ÚalwÍîž4VG\RñO¨eæí&%D™ã9 +š3-¨Öµ +»Xl<`&0SïÀl%ß‘Á6•í&‚*èwee!´Ü;·áxÄéØM„.8 ‘a„"À´ŸIXÍ´8ÿŠBsÕhÕ…!” ÷ XSŠú‘ Á-ó x\iS3ˆÅôã–¨Œíæ#X|jïÊëIÕ6Ïš]Ñ0Ó…žÌ£t¦kÛmÙ%1JW¨Wx.Ãòf䛓yêÈ5H•nVÏ£P¦[ÏÌ5ƒ©H²8¦‹äPÅ£íUÌØ»+Ó­©ìú\DŸé†‰[™ƒOnÌÃt¹lÏ’puË—*Š3]©SÛ¼ š$¶s˜éäÊÇœŽÁ_޲Р»7© Q +n~þØi£2œœðî¢^ ÷ÎÚc6k‰¡B­êÈ’Ænxe8î*¤gì9ïW†+$ +·YË,6ªßÿõ#ÁÛAbì¾§ü8w?€Úæ-–¾öd'š™Ê0ÙgÈq]Æû…R-‹U†)–¶‚a¢Ëx¦¤F.¹¡%.—O·N:ËÐs1s²¾ýPOl`qÉÆòº]1_I ,8‘'[݃›b‹ñ\"à ÖÓT¶9~T`ÍâÁ–ÉÜÌ?TÖTŸ""’‘zºØVLš²kßlÝtJ²GdIÚ·|m’è 0:“õëkP ”þrÈEÿžìçÓa‡Šý6& DætKÁØþfdfå8Y.ÝjÙDï]‰Ç†,BúgŸyE*ÔS§Ÿ-(— Fæ0°|œ™r›‡Ssá•Ú S£e(°uè(ˆ¢¤ø“ ©ÎyM<Ö…öÁM÷O/m/CƒoŠuª\Õeœz v䳌@èL¸ãVvf8¬ÅŠ-ÔjyÒö|HÄíÝþô ~ÚSŒvÄiD­. ï1ÑV?æSÃÿ%L‘+[º÷®Ÿ(PÙ´Öt]½äîÒ-g/ÃGÆŽÿ©9Z¬Ÿœš€ÂÐIÁ?«yÜЬ=¢­ÑV°X„¢óln…Š”ŸK}IÔ¼¤Q †+ZÜPÍ@I^&53ùÖ– ؇I¡ý¦ßðQCà»jPÞþmßƯ ìn’ˆòZ¤jÁiÙݽvŠG õˆ÷ü£åb¡ùpZ.±Ý°(…M>ã,Ò/Ã_<iQ¡FãÃòSkö‹v³ ã– ^” ŠxËÐ6 3Y=¬Q–|ÇñÅÕ"_/Ó|ØéºÅ<Äñ‰ƒÉ‡«Si¨ïeÂGð$ê_mò= 8ÊæÏmudRÅïGÂÿâ#f"䣖 ïg¤zQ QƒPÖ, $‰DWÈ{)³üdG—AèÃ&AH4)¼î¨ù”p£¡Æ©¥m— ´T¡Z“¾ö2ò¬Éò#…ȤȖïÊÅNhWDT nÂDZ=lf"p¹ö„“‘>œT¦Å7m†<æ Óæ{9É—Ñb\5É)û×5»ý¹štTh%E5¥ÿÕèþ šÈl‰SÑëUC Cã&ÃYÍR‡4’mñF’U…s{Ý›gƒ­§&Dˆ{W2Qa«}Ô/8-sbѨºïíМÈÌÒ"€È©Cõð‡¼‹!j;_EÀ=¿Õ}yzÎ)-Ô¸g§q}S[àÍ›ˆ“ýBÔ¾ºˆ”kRPMÒ1”Hpˆ…˜ä±ð.°I¹8"L¾‘ŠøJ7¼”öÏ”Ð`îü8£â[—Õôx޽˜ÔÍÓ™IÄUTçjšÄ+Õ¼ŒåÍ”Qy¼ +y²)$n÷Näå¢xªÜp·Êv˜Ïqþš=‡< v[… Þ¾»Tø‡ºìÊiü‰„Cð ‹ý»í¥®o…×õ$÷-†$A/ë#WkVØumfÞ"ŒÂ}bØÈgF]˜ +NÜËkB‚•šûÅ D%¼†Õ,ƒ0+«Íä,Eù½•T^ÈB:éØº%ÁYø-’ÓÚ´n;a¿YR“?úó »úݳb´òÈpŽ)e¿|ì×û"žr5ˆºmÈûþ\â@6L€æÚòeÎNO“×}Ï!8S9¬ú§’42æ]8ÜbñüýQaš7ü…q%ËÊç'`oœÚ+$¤þ²ã"ÐÕ91ŒÎÊÀgf“g¦dSæÓ”õµ*ó6ùàãf~R¥ EõT.9›è.oÃOâ!™à»V  Äk½ÿKèÇù<ÿ‹ÈŽÐÑ‚žÁË%·fÙCýõeµ–)qYDPâ6¨Ý¤ãBFÓ,W D5Ú¿\7d…²Bœ¼ó‡¡‡ 'ù,IJ‡ëØÀü•X§M8ðÅÀÁweó,¯ç ÓXM+‚CôÛp¬Z¾äʆK 1qv1#+óŽ[ÆXt ªÍ¬>]7æË¯¹m1„‹ž¡NH³ÁB¿f–{ÎîÌñBL.@&[Jú.³…ä…èÔvCÔ„@˜%+åÆôÈàÚ¨[Y'?ðz` oyÕ„ÐQí :²‘· óÎ +ã/0ž´Ølš£rõéB!Ë&BÔ¡‹@i'áé"¶e˜€ò*Np?>ÈHq! 6Èð—wuØùqë€=:ÒÖ¤ý…Vè|@Û*qM|8ƒ.(o¥-‡óxë€öwÚùbÁ5z‘EhcYå8­â‰Œ,@ù¡Ê«q,—¯©މ&&õŽVÙbÓ-îÓêA!>àð†#@A‡MºcÀÖpŒoÚ–÷#‘.Ð×Ñ»j}Gî]Vî)œ£•n¥UìѰ¥òIÈkŽÉCîw‚n±*€éïC,¨ÐcÇ=EIWsÁðb‚ãjøTÒ88‹²ŸQ±1úÈøZ`w{ob >ÖA÷ŒTŸ4³á”ûüø ËêÈü@Æ„)»M +ÛÌÚˆ ð\h²€4ñÞAnݲ7é“È€6Ï.6LÝ!‘¾Ÿ»ˆ¬=9½ž…ìr¯“[¾Wðœ'PüÃÄR³*áa 0A­RÜâò`?~x0Œ³1—ù«¼*TqØ DëT®j(§¼¤@× µÄ³T«Ù%ñz²± biÃ!XÄÉå½#2CH›ÒÔñ\‰3G(6Ÿ »o†YŸæBd“{nâ¢"•8¼&±iO'óXR1È!?äEe°`hŒ§Ã•õt?XñÍZbAeTÇžFk È·£/õ¼TÓ:45š4ºA²ê{É+@2íMÐ;­ã½ µ˜ÌÎDÈMëUÄ3d "£ÅÅÄõó6üŸiwyîºqÒ§E(E +NœÅæýP½°þV…4Y;M“ÀaUEdÆÛFX~#}§ípõŽÌ£:ªáaÒo¾Z;aÐr¡‡al+Q }ºÇ+§ë?í{Ù¨úz +¬qaÁK LÃÛ5Í<(9))»È<¨‰–ý;’ütMÑLq0ÁÇhæPA©=4 Ã\ö˜˜…ÃNÉ$èuœYyì©…É?yLŒu(ŒÂ¥mÓ½hL¤7žŸÆ¦P-uåØqQmâu3£:²­i“ Y'ÎSšQSœ‡.ýÏZ-ƒ¿Wžë€;K~ÛŸý×[O¯×wD įq ÑA”°j:cb6ѵƵȡéèqæã QúhÕŽLF@l ô¢ú@ݶW|@Z"+L’lPØøÀ%KyjÞã†ð¾©p5„wßýš 4³´ß …£Íc +gxj\lQv²HG¾8ز}r¨Zk`Þl®›ëVÈ8$¢Û¿r1¹ä°ëÒÁ‘ Ì#æjKÃ'<%ôÎ.|ÚxªšRj’ >iˆ=kï…P»T³5ó«P‰¿&K‡¼Åuú‡qá+IÚZ{lЙür1¹#øà,h¤ à‚1Ž©æ~A[ÎMi¾î*CkòQ¸z‚ð8Ò-ÂóóºKª/f¯bõ¿ôåagaEßq!ÊÓ¢z-Ñ뀯aϡᒠqjö>°w~±•’¸ìÓ·ø]ï¢úƒ~2öôó›úêw S×ïüûü¸´Y +h_ÁµèIz í +v/‘Sú 'IB +÷éò@$’ D’zøÁ qa­m r!¸ 8ÔZî§¶¡h@Pdm(°no¹œ—~¿Û ©'¸TŒå§éR†M9õ²  Ãhp\/±çj Á¸ÍU†^Á(§ +¶Óì1®o´îTAu3á æ¶KÉ›åª\ð‚D‹‘Yf…N2تSÕšjs·yßeæE"‚º‡Š,3½úxÏ /a8—·“'ÑWÛ:+¸D º¬êä)‘oš…‹NÙiCÌ;¾ƒ’å\Ö…Ï»+ì\2~Z~DÔëH¯ñ®éA*ñ¯îPW™±š¡L¦NÉœUiÐ1éV12ßr â{2ÌI‹¿!iݽsã¦* ¸±ð¾a´.è†ÍÎÛ~›´Íÿ2褪¤dÅ×Ë:BX"HDqAßÎÄ™ p~beK£Ê¥=+wë(ý¬Öz¯ 0*€5œÅhíF[8ä’·X‰»K-ÊžLiW³—YlDñ¹$fj5ä—ϱD°É_s¸#­{Ж¦ 2Ï3`£D„@>{PÈô“|Ò¡ˆñnQ©';[SÚµKŸh=pˆ¾£«R¥µ…·B]í”YáY%Æ/~í4ÏÑxûƒVb¦bhê\# +SN¾¯®×†6ÆJÊPK·y æ~Ý™#F{Âbå:Ö¤@é"¬*“ÿ¸“bnG 9ðbñQ6V·øå ÑwRŽÜ¥¹‡V(œÑ‡!(<êC<9ÎßQìÀ²ôp÷Av2h»ñ¼‘Áª¼ãòH`:ì Ò¦w„OÕÂÌ r²ÍÚªA¡ð©Î-ÌÀ<Ã¥j6e¸z®+áø:ÿ¸ÜÐt0zC‹'NN°ª¨Á.±%ñË‹€ +0q¶úO'8…XTÁfXù`Ó#Tú'ÉQÊ<6EU ƒÓù¿. :qçÄ×ß:»MÆ-`ŽÑ™ˆœmƒ~(câu+2{lÃ*ØJýutü1”C(1æ5‘”*7nƒtbù㶺®÷b9¢½¤ûÚUOÏŠ4‚ Ù<a£n[U‘V‰¤aa²/‹¿]61µ"ß¶–Òðÿêÿ»±ý¿5 +c¸ò趆‹dÀ£ëMÄÁ=o·xª?•›, =±öæ£{”{áç  ¥ *[Žˆ iU“ª üRQmÌ2r«÷.áÇá55GPy®3'Ц P×¥‡ ¡ã¨¹Äø7F9q ‰ÈÈYêãÃXpäû#7…[Yõƒ%;!Òd€¨à5¸UÑ/s’!±óN'/á]ëBPÙâßzñå­®ûèŽßXÓ‡®¿.ÙÀ»Ó$‚éXv²Ö\\b|uvÀøS,À0GÒìõÈW}¤Ižg”ž—ò DÏz´GîÃÒí·lX¸ Ö +±3Ëú©$@¸t6"ЦšýŠóÌÓæÚ¬ô—KÖ9G²¬xn†CEl=iy<×b“)¦˜òøæÄ” „ÀÚå¼}`Ö‚­òØI²ÓlYEH‚ÑXž2{K»wÍ)­ NÒ¦‡–¾–MáFF×Ë# +݆+噯œ}…‘¡Z±hvÖP‰·£ECœÀƸˆ%úbwÌ7²‰ˆº/æ:ì·CþåÖk° 4xŒ„¢Q@‘Ò–æÇåÑZ +¸~>fZ²7§QõœKï‰á>a%z¨+ì !´¬n&d÷`iF,ì+5)á•…àÔXÞ‡Q$éQUÌÉ$ô è$ˆ­8áKH +0xr†¹Úβ pl?;”åûAæ€8÷ÚÛdŽl¬JrS8þqp¹°Ö½]ïÞ‘ WçdPy®îùÁ@ë»}#eŽWUû±1-Èw¦cKÓÕ .È¢­Ã=郞 +Z~¹Ô'”M˜±¦;´½´‘EÀ”9­–oü(—?+ƒáËSÝ_‚ß2Æ.‰%:[¼lYð+¸§©¬cÉKb„o¨Ev3ÑBrtäÖ¢^ªã°™3ºŽ(!üµ\ÔôÐ(Å<¦Güc€¬OÊ$W +8;!ó~Ëa–r¶¡ÝXtkß ‡ŽZzË•9@1«Ž„{ P’iŠØ{–J—7ˆ˜ €ÇéÇC’§¢™øIB6kn~ˆN<[Hw@xyü‰`)/Ï–ÉXÉFëI„¤šªA€!Öê2p9i’Ó­¡™®J ËV¯Ty0ÜUº~eŠ2+F +É,>ÁÊob4`ÀÞ Û‚¬2ªèGÚóCF"&¡m»`;Á¦„ F…’0qAùÆÀJÅ¡ £EŸ®5Ë{Œ‘ gÐyrê +ðrzÉ Àj9;àÎ¥ ®¼k@s˜µ +§(4ôlN^Î'4ƒY¿>)I–-ëz +RAñéeÃd% ÎÍ×1º/ ’`ûõõ5Rs.ç8—g`nâ¼°íèÔÖ<9%ÈÑÏ3Þß\¿&ö ¬ªfëI¤»îAEë|>ž2Ç|læ=Ÿ¦·1NûþªUí‡gŒíôá—^åÖàš°~•³é¸õwE3©K ï¤éëÃUA¢ë’&gvÎ  -ï?ó"~>³à©ÌÅv…š´b²kèVôJ +¤ZÊ„U'&ôSÜ¸ÈØN2G"¸¿Úêâã€[™’i<†çÞï[ +A0÷¬ìQîDê½G¬‹‘·æyýoáÜ>e¥´ÂÙøúë¢%ÊâÄT9²±´¾>Ì'&hGšå¸K`¼8€=LýXDO¯©Fy8E±¨ï§t8üÎ ØmÓ£?±ˆLúä!ŽÑŸ*3Ì¥.OÑ"ë4Žÿï+®ÈE¤9ò@1-Ês xÒ­”¼þtXeý@Mø·Ö}ãv6éY¼Ô6CßË‹Z°ñBÊP+1¿S@.¦¢XÁµ :ÛF@ö±¹™Ã‰mµ®ªþ98u¡ò×s¼à=¿Øb;Ø3ÛŽ¬¹+q 1,qÏ,YÀÿ@Î`†±VjœÒZ s”Ñao¬¼ +—Õgcùc´˜ÅÒ}v(²bØñ©aC.‘>Ó嶈—0ê²÷í@p¢0d—×:IQŽõmU'A,°ÊrvÓÚÊŒŒ‘‰P§tX³Ð}bÀLˆÌ²<-üa)¸±Ú/DOH£füñfOÀ‰¿zjk +X´ }Vº0ˆ 4VWŽ;3ÝÅ"Œí=:øßO*cyw`cÊ„ÖJއ©û„ë¿Æ"L³· ¦´hÓr —‰¨ñJ"Ú0Ð'@AsHtˆÔ18¨ +m·ž°Å((Úþ¥ÔJ¥ssV ÷ªéú•­ç)|O ÁºÐ«¥š¡àz¡ø”ŠuEsB¸ÀÞjLDijQ“HðL\ØRì&ÞALF’A~™rñI.=–ÀÈùÅNËD£åÙØàY÷=ž þk¨îñ@­ •’–"GîDü›àæÆl®¡”` ö¢‘óv¯oÿÓÍcÂv%í¹_+nEL(A)CçÕèÀ5ŒUG$Í„0èýã +<794Zí˜J”­ªðùÇC~[û¢©ùðä͆¦Œ¦\žk=—‹kaNç¼¢c1†‹6ˆ=# ƒÓG’æ,r†(U[P‘ƒ_9kµ2áÑ€}L7ÔK°î§z~ +®Ž? €±4€ƒo D´ÅƒÏ9¾‚'n:.á,ÀäîLoاÓÒe>Êtu$b=2"H?#Ѧʚ߻€’èÂn¾¸UCžO?šÀóq@q†|ÁÁp-oEÃMÖˆK{ rx/BQxˆ` nr“6Á©= 9œ *ºf­q0Ïù+Ŧ|‚ÎáÏàF<žë|ù½¨æð×owÓ鉹壱c·ºZ™B(à„÷ÐȆ¾7WãYðs¢$퇪“>à`ï]~>еïyþ•Äqýk^)ô­ub»™Áã1iKEïuChPâFBm®±¯'êFˆxBð'Q?#Õ9Ž,%í½IWò1x?idòÿ+Éèh½…ha7šyèyæ Šâj æ|=ÓAw 0”3¢âeú¹½×“|Ò¢c©/ÙYJ¸FãÍ#8Þ.ŸCÑM ¼Gº7Õ$ +Q’4ßr3°Ó0)çøåK›À"j¢Ôá™ Ù09ÖO…HúB{Kå˜R\/ók=Y9 ÙNw{Ü‘½²ÛZ.õcD<°Ñ¥!Ìà­!/ÏWŠÒdfÕï{'¾J‚¢$x—ôÝ채ßHPpdxsP©pd“ '|hn#Z­mälxÞ¬m#¡U¤…<¨Á?`ŽÜÄQ´\£"¡ˆ¡˜½ÐJÆ>ÁÐÌGnÀ¦’¶M6D6²¶”³ v"Ðg¡”{«¹¼_¸óœþDmÉq%‹Gü0ˆÐûb˜Ôc—‘‡z;øB^_°- ÛHÝòÈn2 +íTޝJXB¹×ä/Ê×”!&ÉA‹ÈåðàJá‹[‰«ÍO JÑóBšàF;ãCL¤Ä™Êw™õ‚L€ÃW¸–€µ‡mè7Âý«½ïÅ>Ëéç–T¿Îñ7BŒšÑ÷„‹7ê¡->®š3Rƒ20õX®vû9ÈlÉøáà U +«<„Õˆ>Ìmx¦íOö WÉóFÖ•yxL»È.¬\Ý)>-:%n•l»Í6û0Û~á«l%4[Ó +?`¿½šAÐÜrÂÕ‡a1¢ŸêÏSŠkˆ³àë'E›–Y%’À•­*×õútÚeÑTŒ¬ªlí^C?'ÌÏÊÙŠ—ÉÒá§5 è !Èá.¬GqqVYÀª]”ºùr³Æ~œøeÙ¯8}0e+Õ‚ùe–'>z«ÃlI׊|¢3‚Ó¸"evšÐÈ6ò‘ùX_Óó0 á>¥‰FB/ ™K.Û%&¾5À¿Ó¨-Ș]tÛÍJÉ põ+ ­®ÌÏßi=Åz1~€t'BðºÃ¡ +vætªIÍSãòkóª°JœÞa,åÿ÷\Ôë„§mí9.êãÌð…¸yÿè"…m)ý¢ö»Fi5PÇ€œjc›sÕyc̨!šíôµœäïœãr jÉ&y¥eŰœe½¢KáÒœü·bj$@Hû˜|´8/ê>£¬›7/ Íš•ùTOÇ2}3ðhÛb¾˜àó¢”_â“CBvÐí«¡]ýÑ㺰YˆFÌ:Îx§Q±føPÒnfÚjü/)EYò8kc©>²å¬H÷¤ð¢»)`1n_vGa7†1X,nŠQÛrÛJÍ +äãò!DJ†ˆ(]çAÖz„[ë‹­┲¨M·¥3¹»%:9w©CüÛbÀó¯:?§Bç‡è†SSuN‹N–øoSNƒ¥’D\°1&ÅÛ_föKkñZ4Õ ÉØý+RpûÓ,è|£^ýú²[c\$ÕCÚù³(ß "£+Õ¢w˜àjn(©ï\[G9}ƒN=' ^./·„± ûâ¶£u~ª†E­ œýbOÅ*Aåh—štizÁ)ÔÔŸI}sÓæiÉ)^2Á„ždÙž·{ÅE8P‹L…‹/Àh¬?Òs>å{þ2¶-bÑ<ÍJüþsBª õ-e]¨Å ;tU|B¹´Ëá1™§$a¹Ü‘J·ŸúöA&­UÐî´ [€jy—¥|^·—¦,I"°WF¹2!uTO¹cUã ™NHáe ±MáŒúB¿„Feߨr–²#Ætn˜cÈ?NÎ!ܰæ‚>«¤}6«%#¾Y'µ¦‹J‡cW–ÒY=:Vî 5ÜX*o®/´WìàrïØŸÚ†ÇbkˆI Ì”ªwPç ÃþC¿ ÄŠÙ¢ìJ%\òd9ñ¿#ô"È…äCÆÀ˲±ô÷7pF `—‡TXS¾‹ =¹`Ôí©dIôH»o¦ +ð¸4E-)‰ipLú´™®[öè&„pgo8ð¬¦(NuCM n<Ï» .3•p·±\¢–B0,Ù@÷ýtEg5è™Z±'XÒ‘#-±5¯—€ƒQ1WêÆJÑÐóÁßs¸Ÿ¶¢ò¤rо*ºŽÂ~mÀ— pãc8KåßißsˆwSñkxI3ët2d@K,ˆãsÓî>å€0 +%|® Ðý­»ñŃp†³¦ôš¤¯IÔHd˜LÌ®7°êDÉ`ÃÍh¶« ÎäÝâZó!k`mD$íuådrš´iòÒNèoW«þfž0 ÁUç Ff*÷ b_û˜ÂÄ9xÚv°gêIGÂXÅ@‘Ú›()\ûøía“bUjˆ I¹cŠ}Á:X5²¸Ù}îÇ>+Ûå ´Š´víªì]ý±ÖuÛkù wc±íᎤŒÆÿ¨Ö^•B&âHŒ2;yÂç‰lÿr¼¥»†3"Y«C­Ç5ÉxOÈže A,3V7×f/ì¨Þ 4"PQö„§gרå={r–”¸tê#õ5P'U9å¸+Ú&š­~[’ªiM6Æb?ûÀă=ðDy€Òõw$ñåç§–+ ë$2k?–2ŠŠ°:Whn[ȺÖ|jxü+Ø´BáØ…/„#Ü ÔW +ν‡oSæ1‡šþf6î¯J—&+´¡›þmÛ‚ ŸYÊدœô"ù¶ 0¶ òØ ‘§oJ@±t ,ŠšŸ[ ŽO· G»ËDÀß§Ä=wï§C|øÑÚçò³¨IÛÌü‡’7$©¶ó%ÖÙÐ|ܵtHñ „+— ªÕ›‹»KLWEÈV7Ú°½ú;KEô>žw”¦¥=CžÊ*ÙYI|ìh¢û,ýÐPKñþäùŽDÞ³&ØBcÒHc’$ N~ã“(éWÆA¾ð(6FüaHp…$¢üµ>Ñ÷¶•ÁŸ”[CŸÒ2CŽIü`³Ù^ uä‰ö#ЕO=È:² (UøV }9/çRü2˜a.½»Ù„'~dÏBúe•Œ{œD74ƒÎä »ÒÌ?x ôc_Ö lBH„îüÜðp ÆN‹—Œ¸Z]äóC`­ôîK"¼ÒYXº^÷Eàr^«­¾XÀäБ•üÒ\I L% + +ay³‚£HzT¸tÏú ðÝç¤Üé°m”Ũ`¬!Ù'Z%d["þVª˜O«ºw¶âÅâ¸Ë] ÛDZ¿T1žpû85ëšhŒt¥sžµñLËÊ¡jëVȘéžYï{mã5 ³Óõê¦qî'C¤Òÿ•Šò–ÍäseQû†ÝÔ0 Ø]?EÍ©;Ôb­Ì[ÖÈOÒÓËÔ„²M”¾©ýnÚR«”Sõ™ït²Îë’¼÷;„¾Ö+Ûµ­Ö²WåUíVŸ’U,ªaRå-7k +ßYQk¥#C)± +–iX‹Æ~Ô«Â\M+t•€«*”,ê{˜红®³ É äd•Ð#߃.³]ç>¸™w²`±ë¦`执ÂN÷R‚]´ëQhà3²#ä´«ˆZ.îÅËbkrDÃ)è`ôm¸Ý'`%ŸÛC±@€ÏÀEr…TüÿzõÝÌÔ<&®Ö=9.¸1‡£èÒÆé;г…ëÝ™H,²DøªÖåÉ–=YKÿ_ +:~ä͈ŠÌ‚ø^2ÈU 8怌êêq-Ô“K—×G{?Z4&œV`]K…¼ÊêìVTâ?:©?݉öÙ'Ó¤Õv>›RõÇY!­\õ¹~"óÁlX@VÓ—Ÿ:çUèj蟶{Y³˜1ϽÝÑ`A•¸¹ÎC “Ÿ¡f’Å¥&gÌî}žZ0`¶¶h +=÷öåÁÆ=t“›‘›? ä–Ó×ä&„0¦Ý68eª‹~¹}PÔ¹qZRßÄݾNJŒÛêŒÄu¬•3‰ü2á–±$ǯ5&vÐD[ºhƘr’¨±åk´¼y˜…ñ1'Í»nç;É8nX:(šŒH–c}z¤Ëq>çÌ1š åR8o”^[HÁ(_aIÿ ùBC¦¼„¦[žmyhõ°µ“îÀß”ÆË·Ë"Óº6U—˜©_·^8ÍnÝôUûvg·N#íƒ~âŽr%?o'6Ø;O¯€éíŸ|߇lfCZ™ùCø`9yí„á½H@z£Å;=j8™7Ú2û> ñp<’Åd·{VÂBr¢I9¤M•–*øªµ Š ðU+âså ®°]޵)fä,’‚!gñŸUâPæ¨<äSˆža¶cµvݵRÅ,™‹•^SiPžzøa;Š¿BW¬ÇÈó…F +ÅTkàŒ*€uE2QXu’ß dázúÀÓoŽzŪˆºYaE²îz˜W,£'ª8L§F¸Ó§JPËáJF÷®Ê¤L•…pP!“Bšó†®!ûìðØR¬U’rž>ø˜Ü¬Õãì£ï”§S«°ú®J;ÿ—€z¤e´Sh‰ôâ"ƒr4üø³ø½¹ÌñÀÕeôî 5FmxÊ(þÎz ?~â…íýã˜×cäÝâ!Íëô²’G’Xýn„Š:‹ ¥;ÐÔŸ£ù¬6+D?‰”G½ÛþKu!óˆ(þá©¿6åß „*Úyi#…§aÏ®yÊSF_oCQ šmÔ]A‰Ro̵եµ‘æßÒ/Àñð¥”sz–Š5fÿN¸Eý9šú잘m×Tæåúe ñ´. å£dýeÖÁå-`Þ"¸HJ9CÁæ}|ú Æ9\=ÜXäW…µ–hèqh_…Y‚2å’ :Ý-,{~ËfIõ–àAA ePÂÁF©ž Ž2$|p½Ô0%ö:|n‚îµ¢+ó¡,~ÙÒBß8Æñõ.—§NáÖ§«^0AO;Lx¾Qv±$¿V*JÅüQg²Œe~ÿ áÝŒÌbÀ€Ê"˜0œ&«Š*õÜùôl«w”T×MÊÏ5¢ó„©¡Z阯›ò¿-I1Jl)+è­„/­˜ÅF +"¡® ï†k§BÕ³¦ÚoÕ3½à¾ˆÑ”›§ÄR<h\A>ôk%Uí©IsÁû‡M¨èÚ©24ëÞŠØoÚE•B|˜£þý«bw@ãÞuy,À_O†™vëþ7Žä–Ïö¿^¥\.O¦sI~"±‰ø°ä–ц9óÍËÊúEùKtðÓÞ¯òÅý…ë`à‡lÕÑ ³@ u‘zE±–â 3˜äŒ²l_¸Ô<ì +áÂtö/Ç%äeÓÉ5vö©QSä‡mW $¯`V‹°8ÌÃ̆M‚ÊáúT/‰T+“ÿG=øFÕsÄ\^n“ÓRä¸ÕT(‘€¹Äèþ6ýî*“Ùñæ nìÄ[S*F5ºØ äjç|Gï…8&–éh8Œ¸9N—ø¬*šÿ´Å|°ç~—´ûxîÑ %æÃÖõäÀ2/`•"= R.>ÿ£Îm5Ù£1ÖgR-®(5ðÂÊ¿z\OF‚0m-fF¤°5KÛ-Áà\“5ؘÖ8”YÃl{£d‹¼R(¶ }äÃÌ€5.tȳÀ +íÊ'Œ ÍžÚDhú’¯¹ýÔ Ì»w›ÓcØ£Þ­=ç^?qÚ)-kÏ—ÑÛ'œli†dS Åm™°ôÆiÐ롾^™8üÝçGëò3jÅ›•Å£,,¶ÛÀ¡#˜ -þŸ#•}xF,›FJ#ã`•_þíÇ1uøòšùrk•ͧ(ʹ²cû:¥\¦a‹äȦà[)5úu +û¡«nòT[·¢ð™ºÊ‚¿Ô‚ÇÙ×µR^ø +³Šç‘•Ñ- 5hš%ýc‰bw¥ÆU”ñϦÆ›‹îéèq¿fnpó¼ÎëwiSfÊxËÅžU 4Kíš‹ä ]³"ùú>Nh4#(ý?L¼6y¶–‚t›tA`§]2¨ä‡ëé¤-Ž™­VXfNîØ^Wò’Tj3¼,Ñ㇙ÚËêÜYBš d3øAwŽÆ™"…Éõ 0š•YØ|èVWÈÂ3H›-aꜶiÞL»F§Yðçy6Vþn {Șè¿NYþgCA½-GÂŽ‹ó¬ #±%‹4AŸ,.©ñ+öâ¨wÔ®¹žM6Øõ”HôøC#`ØÞ¦o³PŸ0‹&ñÁ‰’¾3‰árMû7£@‹%K©lø+U©ªÏúÂÔ-C‘L‘Š¡­ç( e«“ÜpßԤўE7+]¨—+Œ—Øv‡ÂóÒFs×ÅS_‚ãC|mvoJÇÞãZ–Xd x,ß„†Ç$Þ`–*þÏ—4.N]5PJƒÂ÷¨÷¥¹×UjS“TûÂŽÞåO='†ðº¡ÙÁ¡hAE¯+ŒÉòtRŒŒˆHst 6ÐMN?:¬— ’ÇqlºžM: ZRÒ1Û´ó¬$o¥g0r5¾°“óJ +Ž¥eðöï7>‰‹c‹ÓJG<õÝìÙ²”<†Ò¢HÆ⣬}ëUg°Êq0¡òÑXÉÄI¹Ž[Rµ´€ÈSÚݲÕaÉÂ|€ðy_µ/ÊjÁãö÷C<“ež\î7TãjÞð[5[®©£zÔ•’b9 Ñ:ÕÒ] 8KäÛš'½¾ÝΆÀ–ξ÷|±—OWÔM…‡,Rµ1çy:BÅ×ûFTVø?wͰ:D”ý<| +]“I…Ú{œ®f@¡Ÿ"¬ó4L®“uAŸdñ·¶\-o«s- * b³lçÄ4ày¨§óˆrð•©}‹ÏŸZëK¡ô°³(¨™#åµ{ògp唎èG©Ñ%BÙˆ«ˆMï÷Í0:s‚¬‹&kȧ¢éü³ÂÒlE0¡)ˆ\>¨8…Djt½êT +ºžÊߦÕ_CŒóÏ¿¢“À/â8®ï€x*˜Úàã—T?ÔEôûÓhS[‚B¸èëŸ(§ H%?>®J™ è†»wú6Â*̪ϕêY®Ôuê"`•"b[Ÿv èHÔ7~ÙŸŽá_—æsDÐúm•5y’ CIhÞIBxpîÆÛdÅüÍ’°å£%Xly_#ULÂÝ &¡ùvQP,,@­ +—„JiÆiS&å’¡‚W^ ÿçDòôK"‡6Rþ é%¥$•Åô"¼?§ÂØU(LÜ";›íí=WÜveF¢á•ãáZ‡Ç¥× 梟¬üánÐÚ+•Áj´Ù=>ܤ/ÑJ8M»‘¡dù‡ÛŽ©qü£í7 w„gŒdÓz½-µy7s"¶ñæþl€šz6ƒ÷ ^¿Ó¼ˆsI„¶¡ ¢Ýf ̪ŽBo çÃð¦Sú{âýÀ7ÿ]7ªïöAwbqÄ—~É,};9-p +Q€qmŸ6“€b“gˆz±ì–í0Gêþr©Øï ëÊÕR6P|  ÂúwµvÕr xmJ€§VÓ\60 Èsh2¯ æ•"‰Ò±Ëxl¼]¿h²°öeü”OÙQ|ZÍô™•ÑR +‡ +twÖÕhc-– QRÈ|dáJ÷F¯iÚ¯Œ­¼€õ;ß+uww*Ð:ìÓ:€54ÝkëžUFГG’Þš@¥„Úa  k°cWý°Ø$Uå¦*I*Q?o7°”ª¨Ä€•gÃ"Ìû)N´·cÏ~&Ñ/<\V·R¯ìþF0>@Ùù8T½æë½½£MI‹"€0m}QÇ|´uVIïgÙY[ Áú«ébm&ë:­¶µ#f,g¶‹qã½5G÷U½ëòˆZ‹©“6OO@¿ó R{´Tà¢Ï>ÀG]{®µÐöîmcúMóR@•°¡‰$"Kš³e§½%V¥„g†Š¨$YMÄÐÍËëÏ@½B5œ몢©H©'§ÚéÔÄ`m¤ðÎsð1ZSä矮-¼:T@Yð¸`%h!î6X0\o•¢Ê‹~šqyvÕt_£ȃ›q+_”³ê‰K$fj’Δ¹µ}/ÍÅ´‘Ĩ—ÒÞ¬{r-v¸?ÛŒa=)îoJÉAj¾‡S¢.ºõR¶€ÎOþð_¼JöhÆ© Šéö’þµë­ï¦¢ÐÍ×Ìñ—öô´'Q㯇ï€D:Šã\цÛýëÁPqþQX¦˜<@ü¯þ2ùFKFµ÷÷ÄuI +î¨ÀÛF8öúµÂë¦1V£Ju„*ŸõM*  €Û ÀœÒYº³g­’õß=+o­¶0MIÒ"e÷º¼šx^#/Ç*`P•¨ÏHü3@…‘ŽÈô8Y±P¡ó$ +Ûæ`SMÙT³DaÛN)A¢°/@QØ“¿HüˈòÍÕiÉ$a× ^âç¡?Ê;ÞGÇ¥C•MB/i”„^ü$4Ìèqž™MœE+ÉA•ÇœXDÈ‚â"¡ˆG@Ze2}.SióA>/~5hÀ"³¬úÓaqZ:‰ÙT åæ%<æGù°-,©Gê‡ý R…Ê€V§A›j:41ˆ¤¹Âž8tX”8…i°ME !l]Êjãç›h>H@«ÓÓ(n>f‚(4„µF°‹gÁv.˜&=X6Û¹p>0Û¹h$·ÐR¢aL›:-([©Õ +¥ˆ‹Åµzù¸„ ± õ¸O‰¡p™ÅF–éš +;²Œ " +HkC›uK›¡j­Æ`qÂná‚oC>FQIB8Ej­vKÀ¬‹šÇ}`¨V‹¬ZM»èRWÊhlP„§5£§)`€Mc(_Ea@(Ä„a³±T‘zjYN«à¼b-âxÂ*!Œ€§¥Lí™ç¥8ôsd•)[- °Ùt#{Ü‚¨áõ¶—]Ø LØVƒäV­– `ÇöÀ8ù`8myP‚¯D“M†eõIFIa$Rb)‹Úq10hxð졎G%dbx\ÈVXjí²hJÌâD0A‘ø$,4hjäbr<Ä %Ú‡b &{ àP!I$`Zu=£&?òÄ9À°*ÿ6 $hŸ@C8è à÷,­ Zup¥sA ð¸KHÖi óˆP€ i”U"ÇQ£uÖ –ŽPÃÇð@ØHšÏ[D!H΀MX"ÄEÓ0†BûDØdÒTb“v¢|zª(.‰…èÅÈÁœðZNj㘆ӘŶx\Æö’J5ž$ +Ó €(xÌÌ«àq¢5ÖH*xÌÌÃdrÄ.Ï4ü6ü–Å íñ0¡=è UŠ”2Ô¢$@K¥Qü*bb kH,@¬)D#…ˆB4Š +§[A«ÓÏFiu:S[ΰ\±V8A®Gª0F” +7C©B)cDùŒ(•Ï¢ÒÏì3¢T©Bo"JÅã<´ì ôÂã…‡–Ô)úñ +õP4(ê™7Í4¸i •Çw hÐl*ƒi€uÂLÖ Ó‘±:?‰"B?‰*7ñæq4ñ6Œ–?›QÛTLP$„T=´¦a ñ‰Ÿè"ñÇC$ Ò4Pˆ(<žë¢Æ(@hÄ.BtÒÄ5VGÀ€Ó˜0H6 ÅðÈl5J®W)”ð:*N·ŒÓ°¡Pu&1Y$"M | –V1:˜¢jãøŒq… +°ÃipÅi¤"U"Áñ‚@¼…£C†0$, +Ä+q +Ûãžõ9°& {Y0X†Âª4a˜4†|$ŒQ™ò Zó£E,žO¨51ÖĨ,Y>!Œ„å¦1…¡¤5'(Ö[‡†zÈâÌPVfZf¨Ì<4ÊãN'äÒR¦€WÃ嬆Ë3 hÓ)â¦Ö¤6¡&µÉhRÏ<z†¢3Ô U¢=ZB{<ô 倄“°Y”,J#éäq +" +ÑÇz¤ +ýÌ>©B)¤ +}Œ(•ÏL à#Uè§o ê¡ðTZv\xÜCá|Ü# )ÇÇ+ꡱQü Ä[gzœ£r[˜ˆŸ/tdYG6r¾±ášMPâfµÑ¤6NgÔ¦¢èfµ™ <®b‚-4ši! Ò€DµŒÆiæ¤ +TAØ+ñ9„Vzñ{1lçâq©Sib+@ +j1mD™3à` -‚[hi8dBö”0ª2ÏŠ—¸Yˆ,`EÒ,Ž +ÿ4G¶zè˜ +ô4íZ„ ™œwà¹÷2ñºdÉ Uª“Ñà’WT^1¹\F-Ì+@ib¬p‰µšÇeb¬‘"aÂbz|Ë òéJÂÒˆˆ,3ŠÅAXЍM|\ PJ©¡Kx`SMÛ +áÂH™ª=!T `™hF–¯¡u¡þ9N¥·d0´5=Î`!ÄPÆk™_.Q,c€Ñ-«q,*HܤãÄ,êèkuš4Fa »-< -ŽŽ‡^üd•Bݱ€C´*5Bûóâçq`Fü +DUäŠ$ÈLü„JÊy6úQ&¡ÀíNdæ¡U Ëc>>Úã¡#¿/ Ö4ñÖ¹±^ü$ä6¤Šb]C½ø4×LU‚¦­24DX³”W¬Ÿâ†K'‚?MUjqFµÊ¦«^ü ¦V½ø5BD€JÕ‹ŽRXV‘<Ùx +³±#Ò–áH8$4-ʰš­ÉÐ 0ƒ¥ØTjzñ³0¹éÅ/¢z‰_›BÓ‹_˜i&hºÍô¸º@W(ËêB5[¾ðâ×"†M„ãBá"à ª1æÝSp:‘‰ñ2 ƒô]$29I°T"sáŬ`d:j¬N­Nˆ%`î£?lP¹ÇQˆÄ/½øysÌÁD¤\lôâ'?Ùkâ³—{ÂöE›jFR'Ì”L¤Á¸ÊŒ«‚qåÙ€ƒªÂOì®@Øú>®[žD>*¦L¦ÏÅãB)efÒð‡î¼øI$l1È£´:mK½NX*x¤(®¶Üb- ;“„ё°ÁbÁ= Â6ÃX€Ø'CqPÉ£0S"‘H­Šž8M¼‰™NØyñc«Ñ%-;¨¥óâ×¥Ô¤óâ'pt\~Ø6 iQ#"” ‰°?‰Sh!úÈC¡†MS8Å8 mv@ÊǦªÇ9P2i´Ÿ°|0ô¡,1ŠJËŒ å~Äf§âU- +“ÉfÖŠ +Ó\^„…ŒFñ{Õ‹_@Ÿ>—zªXlÞƒf¢CÁ`%•ݤ'µqy¹H~°£5ç;ñüÜ.½ç{®³_‰ìnõÏxÊoÛåJ3µ3ßûùR™Ûr°K1•÷ÁîzmL;[ÛVR·ÝÅMûÖ{iõk~ßZ'µ]dy,å±<–Çò2ݼý“âžÖÞvǵgËšswéÌw¶´}©Å-Ιƒ9ØÞ{é¤rbÛÕ·NãL˾Ùr™Î³½c93ž´1þïèçüôSZåÏœg~íg[»«Ì´r°<çÛùÞáÏØÚÎnm•µf°ë¨û½Ý[{캛×Zj»Ö{±|LÁ®Ý»/èž©5ËL½âÆ`÷Mëû”Þ5ÓÛ_1•ƒ¥cÚu7ÿfŸ/o?ëî­ôVìTÒ·]w¸qδ%~ÜÍûÓÒrB³N +>ì¯ÔÌp"a‹5„効6¦¿H\C¨8xðY;»…BXÀ׿‘ZH¸ÀŽj!ƒp¡(Q•K#@h%Mªbõ2 SëU8 ´&Ã)ÒJ¸`MÐkJ†?ia`MÓ‹ßËæf²\‘Í\5\hæ$Mh`šiÀ ™¦?YÐÑL“„ÃEd¶P †È„8¨î%TI¢­ >[@è.prb#sáÅJ(„Ç`˜÷ÌX˜9ÀÑ‹è³×7òV¯zñ› Ûñ…^üš2=$Wc¨=‚0p€ýP ›H'¥²G•® ͉õU4Wa û‡}!,XÅ  3"p]Èæ×›øìûd/—x«—ä­v<k3¡â Ûq MsÀŽÅÑ¡ÌF«l”«Ñ?it ¤=,Mü®&a| HEC mY=´¬  3:Ö$ÓqØ™ö‰"p]Ô>/3qÉ-O<¤&ŠÇ3,Á°ŠÔ™GÚf­fÙV‡Çe û©QÈ'""Œ…JdÂèP.>†ç‚ C(Â8™&ŒÍ)Ä„qÁQE¼ßâùHZ³ÑÀÜK-0aé˜T~¹En(DXˆxùMFãq+¹Ç± ï#3v­á„™IÁß÷‡|9™‰«"aãyžÇÅd®Y, l]¬fq³Åj².&sÍb7W€Ë&ãj±‰WmA½3Ͼ8·ÄM1­³¯í*³½ÝÌtæJewwß¿ÞeßœeS +vV¾½óZÛù>ØÙÛïwb[³c<]ÖûàÓúµ¯¥Ó©½xN™­µ÷9ÐlZmO+3®`7æ›­´õ9PgsÆ–^jýA<­ÏНô¶7Ï[§ÏŠkýž–Ëôµ6_Ze¦Ójmã,k®_ÁWškç¹öÛks­à}§÷Vû5ÏûîYNZÁîZ\³¥Ý¶ÒÚómùÓZ¿.ñß\ñw­/©å@¥¸)­g\%í +vµ±×L³Û:º¥ìrýîoÕe½Õ©÷ÄîXÖÿÎÿ«­U^›é}ÖͧÙÚ)éu°«ô½=ÿÍ}eÅßÑÿ{±õy½e®ûuœÒŠov°«î×Þ)ßÿf,qOŸØÒú¨›7Ï®_§SL1µ7;ÆÿõÚ›¥ç v™Þz¥ÓÛùuê´çWŒåÅÖsÎ}ÿvõ©¥Ÿeç™ñ}Š/•õ¯`g±cÛÙº½œéÄòXËcy,å±<–ÇòXËcy,å±<–ÇòXËcy,å±<–ÇQÌz©¥Ž»iïßÚÒfÏoû^Ú“ZŒ­ç‰éO÷Üù/ÅÙæÇÙVÚöâŠóm·3γúôÉÁì¥7ãKßÞúôâKßæ®^‰q¦ÿ8[›9Øt*/öoœßÚŸþÞ¸^ìÛÜÑk'Æ×ûÊkóÄ´Öks¦ÒÛÛ+/¦ô¯Ûî,q×þéÿx¶¼6wxbëõbïÚÓº´6Û®`‡ýzu|mÎó-Îþ²Î +vÙïí{eµãwKÊŸü‹¿âö÷:ow•ÕæîfIi;¯tRŸ¶mîèÄõþ•^¿'þSé6s°®æIñô<ÿóô*3v;¿ÏŸ³+~êµkS‹íµóÝf.ãÕe®õoÏ}°©Ïšs÷—bÜÔöÏ–ýv[êùR{ëÕ±¤öÁÎ:ï³i½-igÔ½Oü8ËÙìrSlïc§ôÊy1—ÁÞ+ÎÒR vßžé¼·í½wîî¥=/—~–ÓZ°Ë¹ç­8;ÍçZÿVùÙ‚¹§­Ÿ¹Lws¾w7µ]ñ”ÔænÚÚìh½o©çzs¥Ó:Íöº¼s°;»{/ÎÖe[ vÓŠºýÛUzâÚ}¯•?q½ôÚLq•]íOÏý^/Øá›о¨Ó¥äÉ(RÊÌÌŒÌc0((IDê¨g|nD.8D>2.‰„Ñ8„a‡QB „SLIV*ÈÝ ÷ÛO×!S9z·j’ÐÚ /ú1Ç}¿±¤¥ìÑèÃq›È­¨_ÂÝÐx×§ÞWÕÊ63PÛãlÎÅw‘úEì‘u„/D8Ž`L¸:™ÉP"Uð•T{=™•/¥_¸„^°fÖd•,ló­üÏd­£¡QbîS@ñ¬¦ñ9 +²è‰˜ºe@oÈúkPp( úuöæ:3ú¢ãÐ +˜\óÉñfTf|®¿5 %k ¹S`ˆ.ÛåæUÊæâ¸Ï½êk*?íQ¿›*©?g$±œ¤:èUF+1¹{«ÌxQ‘H\¦H)B~ªÛ…ÔÉHv¾ñ‘=PA³ù£eˆ’feá (›8Џå +ä  CL“Öh2º–¨K-jØ\ÝÔØµå7ØMœ†8JŠ0gj/©:äCq`ǯF…˜b× Y›¾‰`áð/e©4¦4ÒETK\˜ýD B/æ)EWv âTzƒ4å=F˜Z¯¥Ò³C)ïá‘Ôz@JO‘£¼‡0jÝ HŠJˆ²Ÿ"CIχP¡”õ  T ?åÄ'Ó+z>¦ö@x:ýÙ©  Ó~Šä=#8½›DÏG4È ®Wøþß<¡„¨´'‚6Q7 .I&Ÿý®¨i=fÄ“Á<呯À»ðHf>ÈÿL—‹¥åô+êËz!±¬óÑ®ltýU÷ß¹y‘åRkoÀlXóIej¨0SoÞ9<¨V¹²ñ+êìA‚»%Ùå}58mYçr3²ƒ +Õº8Q¨oT@š’Gi><ôÏ4›+<$mŸ»šÃäSS’ìR7U¯Á C#'Ú›#åD¿£§4ÚÖcÌúXåé3b%‚Óäõ4nnȱ) 51F» ß$6ÄÝM2òÎØ“/X”rGI„S/Ç]˜ 멱|УZЧ0 +ĪP9çœd‰Ê?>ypÄ)˜&žÎ(è¨Ö¾’”΢ìäç’ý!‰rJù/uš‘kOR®Ž+˜0}æTöcº–l<ë GrÖóß.¿†Â”ö}ƒ£sê–•K4®…lè H î±œ‰š.+ºÚÓÆØ‚ß"s{RÊøa¢¶al/EñQ‘^ N6ëŽ –G€Í¸de+d_|Ý„ ”Ž*?¨Lyà†JVÒ̽ɠ¾E!¥AÆÖ÷?%3^Q|‹AÌì¾Ò9J¤¶s‘75ÝH{YdD‹)˜’¯ipEÆ›iþ’ßEykqDI£q æ¬Ý›ƒ4j/ÄM^úQL•ÒûšÑ@BÍù›½_h2ÜŒ‹Ì ‰ÌÆit@Ëd3±QœiR¤÷7cL1¾Œ5!ŸVˆ³ƒ“ÊT=ïxYñÜ&‘‘‹Ñƒ:r*½iBh¾gýÕñE0 ¤œõñó)êVö)x¢Üu`” ÁbÅʉm,qxDTM×øhÂÔáÅ(fiœÄ)ÏTQô´¦ÚÌþÐÚ‘¼8¯[äÔ³ÙÜßaRÄŠ¥Õ4Ÿ»ÌÄáCà´Lè¼è‰ª€¤czcÖ{œç¨#1¿F Œaº®š‚;Ö?Ʃܟ«ù…XÈ7¸]/ÕÑ©,/ôágý +*¤b Þt¤¨Ýuä01N%"®S¢ä` 'Q¥ªœd ;âUÕ,JÊ7 Ù/¹[gà0ìîÝúž5BO¨ŒÈáª(œ§ÜÈQÍŠ/T2´CêðÈM±\¡• €Ñ˜#œJ;F¡ím®Ë¼èÓÎ\ÿ†ZÚ A¿*Gª}£E×µV½ŠdÜgYÝà9HZÛú’¿ðQS,™¢ºœ–Ä9#øt=&åEt@Ð,¢4éð@Õ±“|²8ÊÜ'¼j6·>ªŒ{Ü4swPå!¦`*B +åÓŽ`ÅThüǼÙ'øêqÌ̵SÛ”¦ Äy^ Ž3zt¥BñØk^ ºXä2Ò5ƒëUÌR1˜ Y>eǶ"[’²!´1Ó±×CõæŽM[oSj&.Ï2pFV¡`>a°/5zj5Qåv=²&â$zÂb¯1¨Þû°ÔP—8B1GDæ«{ez‰ïƒàϸ/élÍYÒH&˜’ܧËVož"Ü×B•ÛÌ”Mƒ zÊ›BDo“ˆ¼Ì½–W3éLÊp¬Ñ4[ÿGÀT¨?)6¯5‰rÃi`å<ÛRA037Làü”‰êð_ò&b°ô«Â©ÏZ‰SFùÄÓH9‰ñÒ[Fâ÷I…šNE`A+Ÿí'ªX†AHçN&ôQüŸÍrìµÍ¬…GüÇX‘þ°“÷ð­È\îµ¢¼}û e8?ý«—cJ—NM ÓDd$E3Ñ>mG'Ñ ç2ãËÏO åv7WüžIøK¡ò„»Ñ ¯X"UàOad—ˆ†Ò3 ÆÚwöÏŠÝ€2®wC¹Ÿ|m@ÙŸÛÕ“Ÿô’Xu¡Œ Àí§$IÇ^‚¤QŒeºÆÐ…¹ãDlH pLy$3.jƒQòBR9í;X¬©üØáû¨ŸKöÄ/ÈPûóÊ߆qpUN໦OH*±a¢üVsÁÆpÊ]d+å¥3­"_üN"'–/ñÕ©~°àW$rþ µ)ƒÄžD¾ÕD(¥‘Sb¡ö™w¢ågØÃÆ+È)Kë™õ(Ò£JÇøì‰PX€Î–`£¿³3Ì…¿c»i;@}@û0LAVt(9 ë‰=€Ê@a)¹% Gí»Ñ'bZ#×Ùƒ˜éž›¹ùQëÈlý(黦zfQ¦ •~M8°­øPÅá+µGC`n‹¤´¼€³N®H2ÅðFö"ؼ»’÷l%Ã0Ò×uÿˆ˜£ZÖ¿gºYîШ@q˹j`Ls&¹f#æÝ&¤I!Ñ,Dy8‹/‚RM}-D2\ǹXXÍFÞ‹P„³WñpÞ+ÔÙF0Žý‰íÇ\@‹UþÄþ‚ÛÔ¬D_Η¸`ô®7Ùr;ád<­Íµ5Á©0«²ríë@lÂGGm°Ùukƒ +™DüxKÀ‘ƒ“(›.–¾–EFQW23D…Ù?²:\þÌÈ+LÊT›Á4I…Y†s Æ[fÂtɃq8Ñ „¥”|K Ÿy8sÅ»ŸÔããºC7¤çžƒã¶²(ÙWBÆ÷3F"†8HÃq^ëBÃA †àcdK‘áXƒË£G‹È@1ƒŒñ¦†ÒÄUdDH·4ƒŒéUoIÍX{<¥GÛáÇxcd®á +b KHf_Ãl¥†[|¥¡…\‘¦[õÕ [ö@IÏIÄnEBP\hF•€#¹”ÏKHøàØ+ ¤ïkÀ7¢/O¶Ëºc0…/ÑüQÃc¥õ@/$R—<é”›lൠˆöãDã„$¹x.Il>°Sšö˜Ô=ìp5:fÏCÎÓN“è2®¨´ç!R^“Òvv7¹Uá¶C=5yHs6v—ìªã.^{ŠQVó?©aJÆÁ*²CÀ`u(РٹEDy¶P|^Öà‹Œ†ïq˜ª’tÝÝ’åÂðkã7©¨¢.“Ò#ŽÜ€¶©áÞ'âJºnBA4|IÅ]à¾ë +ŠidŒOãÉ åÒ)Tuˆ,³— ƹ2sO¶ú +Âg +ˆP’°ºê##ZDxb!›¿ÁÔ#¥ÈŸ×DÇHÕô?•d«ÔV¸8:ÂÈ=û‚7‰øœKÝpD]8æí…|±·Ô‡˜‰^ÐáôÜØ9!œkNZć1zLs.ˆ_I5ŠOSί)ÀºŸG!9íŽ_¾DÙŒµÃØÁ,Š´ä[ÝÖ7L^3ê +5ï¶Ìq¹¯â­×³5)¦_hûÝcÖCBÛ ]ˆØ¹å<ž”Qöžkžšºêžÿ >† Õѱú&Åù¥¤êr1qÀÎĵÉÓE*»ÊK=SiR¡C7 žÿíÌ-tÀ rÐ0,3µu|m-k¤òM­æOpà ÖêÀqjWi±ö¡ô¾¨¤ Ž<Ž>Ë"½ºÊtFø±[¦¾¢Œ‹úU¹Æ†„Vü®¡0§1P”.®æn Á"‘¢’vé`²C{ÈLd­¾³`L¯PË‚¾îÔs£@õf²F7„ZqÃQb #ô€2F&——jŸÑüÜBäÖýRŸÃ]÷(+/V³ßOäv=N~\H \fAn~\”¼çTbêA*©ÔŒBh0Rñ¹æ-R¯Ì5™xà­ñt«} #6 V¹Z\Ïl°„IŒ`ǯzXálƒ¼ëHÖ2V°›&Ò$|¼B`T·RÂêG`LAk/‘ùŠ auyuí¯Ôƒ‘¸›_‚ðð­ŸÌå·¼AŽÑ(røÙµAÖÓ]óȱ0„ÏU•A-„éý(°ñëôjX¢žFõ‘aÑ( Ì“‘ªÍ£C˜‹Á>G‚bÕ—|äÆ*±I~2 GA|?û2‰j.³Ž11D½aÔÃc[Ù‚UOŒ®WÙ>-‡Ð÷DÌHÅ£ŠFuQº¯ÙW/“s¦Ú×t5Ú^‡@#[›†Fïñ4c9•¥ìÀÑ!Ôâ;nÒ)ú%=’ºY³"¶GO¿pš˜%«·à„îe9èÄO%²g¬À"­ƒ…hwÀrÒF¤ƒþ½Ò&˜ç¼ìN:™ýRÏÞº¢º2Ó‰ +Ù€q¦’F‹MMB¨[+Æ +*E'eŸ.ØÉë€aíJeñßyÔ7à +•ÔÃ&K4_Ñ%É%%ø–ìúßΣ34Y°e†Ñi«èÏãg²Ô¿‰»qlçgÏmwùîîÀߢ˜¥­ "x* -xDó‰¿x›¸y.` '¿Iš§ÂXæý633-F#óanjØ…+:Ÿ I­Ø4û§˜é›&-¹âŸD¸älÙßû±Í9… ˜ˆ*=þÄ3žK^ï~o ƒŽÆ5P%½ÏÑ—æ\›+Ë WMQ~&ö£@¶üÐЭí'Q[Â䘣^süœ3¯°‹….O£XüZEIF2Éo߯~<ªì ,æ¸ðƒv¶U¤(!PVu½•„àZkrÎôºÌñk­ Ghƒ±³Ü׳ț]bŸ»—Õà\rQ°è°#Ö竆½„ŸAˆq#0> †¥z×›!\Ë3mÒÉ–¦,oèI)Q”(ƒç›Jö_³ÏHÍÿŽ$%ûc†Gžò ùéQfo˜ëfÇÓÎ{mÀÄ!|¯Pò>n*wMâÑ»&ªGò…‚góBh÷qè âõ\^ñôŠHâZ{µFñDþ¤•ßgI#ž¢5ǰâuž¯ä¬¥ÆRˆ'q²ÖC)ž?®ñwF¼A TÏN)ž¢ŸÝÔ©ˆ§§«¹³Øìñ´m2:kÊ’âÉ}¾ß;ÚekÙ8ô dx²ÕhðªXÍ5Þ­•C1ý’ÈF…ÖX˜ÚºFaJ›`¹±7šÓ‚ëþ-Nü¾_æ`ì|'Ȉ·K3²Ì$ã}îOHÖŒ%3­VMts]Ý«> +ð€ƒ 6õ’"Z®UŒPãO Û6Q|‡¨Žt;&}ÇÔìöt/d–š«c¢^ÄgDG$gלŸÏ®:‰ZX&ŸÑz­óñ ý!Ò‡Z²/ñM'0Ñ¢Òyj‰®‰3P­giûû>ɼB'Câ"9{Œ¨&ùSÇè~°ÒÇ+ 'ÔR‘)„ý¯˜ŒÏ2ÒUl +{¶:b×F™8QJÄ=Zà )ÆÝ÷ŠÝÖà—ÃjïÙB*4šMK@P, l€Q¼ŒŠŒ øôØHOáƒC)—I´¯Wµ–@õzæs-"ç¡>6¡ØÍlÆ·o`íÖÌ)GGB„'b_Â1C©ó¥W×Å׈xGd³â­Q¶à"é.„¹¬m%Kjý§û+^ ¶†aÎQÍ©Áêvþ‹u>ÅÑB&‡ââøxúÄ©k<=ÎwV…4ŽgqV%1ÿ7©\Î  +Y)xv.>gO‚ïS¬ësx +Ÿþa¨å5vSöŒêýx’¹ khi<­ÄD,hÔó Ão<ÍË~XÙÓÏþÌ´‡NÓQl3½1™ä× ÈróæSáüu—Ðh Ⱦ†íŸ]ŽY¹ßZÀ[±úñ†tŽ×Á{¡Y7)2혔Ï|’žÃ¨Ë#5ÄX0ñ&?IŒóÂùqSioÍ£xcᆔšÆAÖaîr¬²ì3_J~(ëGcÌGÔ!RˆÝòY´è^Þ1k¼fñ“ºãe×cƒf»™›œö}„%ßùÛu©ÆÐ"µQ£‰º …Ýïcø}¯è說]pJ\‰ìQž2ÂsŒR ÿÐ8Bݽ¶Ÿå²z A2e¢Gsé ÷È3nÀ•ŒÒÒ•T®¢U^þõk“7èHÌaƒ°€?êrƒPº™• ÇÜê܉ (ù/9ça-Q«/Þ>¼öK¾Á!3Wª¼Pôˆ0u‡1*A“NRˆÇp ÀL4ýõLµðÊ<…›óÂDÕžÕ¹T ž†ÙŠhî{ÚY~q×}r{aÈ4Ûž×òÇ(—t’¼+ëD™*Qžx +Ù[õ´&evÙO¦uûXhÚmkÉIƦ÷g2MI6É!,ôãÙ& +òRÏ78w12Sˆ¼j˲L^hØz&Sƒ¶qr!"³L Ú"ÑJ)ÄÓÖIî8 'Žøo:Ý£íž)Ò7…ú;wö'7Êg aÐìÀ+ôXËœ¸ÝÈì¦Ï%ÁNÕuµw E3€’ö¶MáÉ'4è5¦ +k«ÒL Rê#…ýý…Pɇ³*ÖCšKø­*=,7K wÚ>U•uNžä$¹XoJ1¶°Sáø5/ƃ$ŸÅ¬ùrà~ˆ°ohò/áôczw+s/¸ÌÖµ»Tƒn¥s¨2î-€?)§Ù= !Dx« šÇåSF¨M¿®`˜€‘ë˜c)CÄrX~iÿ£ õ¿¥üOÿzÑ5’1™8s=ˆ¡<ÄÆrɦqO¥D§‚-ª„ñY„€@aíbsgˆÿ U\Slý[ÿ“÷p-inŠìS$Ì÷…ôù˜i™÷—¶æÿ{›ÐЈ5gà>À`ý{:«úg ÏÔ£™›Ð „Yð(ü W¶©S|“8Jã{=£{¼•ôïÞÉxãDý›1ø÷ v.Áå]Vü[¹%™ºËp³ÂðîÑÌôïÛèÇJö_ • #ĹYFØï³•Û›Ãzå ”‘Œ­•­¬¡þ¥³4ìÓïç^=[šy÷YK¬Å¿ëE(ϯLY_¿õd‚‹‘¨^SFð¯ƒîÜL¡UÏh­{CåÜ!Œ"óõoÁú-#y¯lèðïËåe£ÿn±ÓwÅ-݃©22(Ðæ$bz€O¶²Õ…ÕÄj~_n‹Í1k4•ºy°3$×e,*u™äv”¶¢úh™\„U:%?î`äjÇñF+·e׆çG¬ð!@täÐ¥v;îÚºŸ_övZ„Ö$=5ãÐâ6Ç@#P‰Â 0;½±ÃT{çëÏ•‹ùäLôeM`³ì⣼’R1ÖF_•ÿÏ< JÓÓ4™¾u…€Ug¯šnH•ý±Sq’½ü½™S«È8ý €àÑIÊþóí‘2 + u(³¼€cç1†µËÙuúÖŽø”êf(ÕÃܪÉ7s[ ©M¹V6büêi,$ÿÚ„ìNn¨ÊÂÆv,2@XA]š²ò›ãí—UhÓp“›ÔY¨W!û£TR Mk¹a~š>úˆ˜óUšõ&n‘ï+Œ“4øv‘®Õ”T ’§ê²â%ÊÆÐˆÒçŽvß*Ê5Ù8ÿ¸ ˆW[xˆÀ¦¢HefZ£z¾¨½"[Bd ¾ž9`Ý[‚0v +‡õ@T"õÆ>ÿc|>)$õ +ô +[-M¨7}‰GœzM³eÒ'Í—ý‡D|ÆÉóÐRxŒz5Ü 飅ÿ@õö½a7Hé›5€zõÒ©~rLÕz5ɆO5„h[Ï +PÑDàÃÍRoäðæIÕ‘±£Í›(Ð]ȾÁñzŠ’Ð¢|ÒhT_k0‘ò%³ åNòË¡>c€Ý¹˜æ®Ü¹–içA¼ëe8Åzx4¯t]/ú‰ªÍ‘m}ìòOàbU²¡¢Ñ2—ý—È>lÛUR‘©þ40JO6.I½Œ¤êcÏíÉ~”ß?Oñû/†%ÄKŽÜP¼·â÷$v̬P*žaRŒ’¡,ü÷œc)i‘‘û5pwõf<ªÿ¬æ1ŸAü¯]ŠwPQ +>Ù×UqßÅý ØÇß>ÄùqàÛYˆ›"L»þ3Ë.r-Їà«µ½W§Ù’ZÜÚ 0’»ú» Ž.À°T!“|¯‘e9A}‰oZµ¤7s¸É¾PsÔúA@ ûl÷¿ýä;i¸âb ëÿõ-avô(§=}¬z躯0Õw÷’™¥É¬9U/B/ÝiÑodH¿z£Û‘½z|!’nW¯‡–¡êµßˆ?)®z‘¸‰o Š©’UoR¡}9Z–& ·eÎÁU8¿üýrB#©½£,`è@I(©z%×[ý‰Ú¯^Éwë:3þª7ÒìÚ¨W¯Œ"âéAJ’ ™ôèHvª^´“Óö>Wï¼YQ”¼ã‘›O¬ù[YËÄY µº +ïý½ó [̘ ÌŠ¿ û*€£ÚB¯¨4¸e¹³äš°ã¨ÝÝv©2ùè”C“z}Iøì(éaçtf¢BÃÛb“v A“ß'Þ΢ÃÍM%h¬UÌz5†@jª¥ˆÕ¬\¹¢ß*7# Z†èê¹'–œ²”¶ISêÄeHþךQë¢'zk…KgÁв™Ñ2‚ûÄmìê=|ùÖ7ðäç½GwæI)oˆ%A?b`H´2é dÌ ®ÐÒ¯þ7&QE˜I,‰è$rù&‡EJ › +h¤»¸KÊî>Ä·POš +écY¥2(ƒã)¿Â~±ÑLófPPyòþÒ~Ò÷´5S Ù§sÖðll/|AKgçr„¹Ã½þ¿»HÇŠZmsˆ)2 ”½Æ!Båb×üE£Çñ[Ð xÿ’ˆÞج‰š„¨ŠUÊ]£#‡ï¤~,¬ß]$6jEZ~ͼìÝ}>¼3 òñ®gÀý¤}wáó7’ñž$eü8×ÞÝ/9‚_mqøauÿš(á«“Œ-{þt #¹¹÷îâžlsÌųƻ«þwû Ж!W9>Ú\ýݵ*  L&3¹x÷ø²ÓMÒÊÈe5ÞÓU·Ï\µ½»jÒf¢±>ãv^ |áLÞT}ÓPçgì,•ål«gJ÷˜~ÎÐ8ÂÂÂèÛÁ¢[ü=pkSÊ“'Pi¦â}Àüm•ëø.¢­xïÒ+É7€kÚÞZt´ejnyïùµ,Õ¢µ–E9Õ“â< +ª%D grš$ÆeMfb¼Z,‚>€p<£Õ·ÿ'ô§gý͘úå–¹„´ÃuèFh±"‘,¦"É }:j¸™5Èb(ûYŠ/âºÐ·’ëݸý;½±ÊÈÃCOs>o4ú‡¡Ããÿ™´Ë[h ÓJkñG™·N©áÑëj¼Éè>»m\èÖcÅ„nÔð<ÐîAÖ¸`Àœ[ €õ2 endstream endobj 6 0 obj [5 0 R] endobj 21 0 obj <> endobj xref +0 22 +0000000000 65535 f +0000000016 00000 n +0000000144 00000 n +0000050674 00000 n +0000000000 00000 f +0000054021 00000 n +0000216933 00000 n +0000050725 00000 n +0000051086 00000 n +0000054320 00000 n +0000054207 00000 n +0000052310 00000 n +0000053460 00000 n +0000053508 00000 n +0000054091 00000 n +0000054122 00000 n +0000054393 00000 n +0000054589 00000 n +0000055803 00000 n +0000121391 00000 n +0000186979 00000 n +0000216956 00000 n +trailer <<90A246E9F2D74D3C99497A7810200A9C>]>> startxref 217163 %%EOF \ No newline at end of file diff --git a/src/res/jamulus-icon-2020.svg b/src/res/jamulus-icon-2020.svg new file mode 100644 index 0000000000..5e08a45cc2 --- /dev/null +++ b/src/res/jamulus-icon-2020.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + From 4afe5ffc1c81dd8843e41c56c6ff0beac4e9fe69 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 2 Jul 2020 18:24:15 +0200 Subject: [PATCH 307/936] merge fix --- src/util.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/util.cpp b/src/util.cpp index b11551c6aa..f194f53f2c 100755 --- a/src/util.cpp +++ b/src/util.cpp @@ -442,6 +442,7 @@ CAboutDlg::CAboutDlg ( QWidget* parent ) : QDialog ( parent ) "

" + + "
" + tr ( "NOTE" ) + ": " + + tr ( "If the recording directory is not useable, the problem will be displayed in place of the directory." ) ); // new recording pbtNewRecording->setAccessibleName ( tr ( "Request new recording button" ) ); @@ -781,17 +782,17 @@ void CServerDlg::UpdateRecorderStatus ( QString sessionDir ) if ( pServer->IsRunning() ) { edtCurrentSessionDir->setText ( sessionDir != QString::null ? sessionDir : "" ); - strRecorderStatus = tr ( "Recording" ); + strRecorderStatus = tr ( SREC_RECORDING ); bIsRecording = true; } else { - strRecorderStatus = tr ( "Not recording" ); + strRecorderStatus = tr ( SREC_NOT_RECORDING ); } } else { - strRecorderStatus = tr ( "Not enabled" ); + strRecorderStatus = tr ( SREC_NOT_ENABLED ); } } else @@ -806,7 +807,7 @@ void CServerDlg::UpdateRecorderStatus ( QString sessionDir ) strRecordingDir = tr ( "ERROR" ) + ": " + strRecordingDir; } chbEnableRecorder->setEnabled ( false ); - strRecorderStatus = tr ( "Not initialised" ); + strRecorderStatus = tr ( SREC_NOT_INITIALISED ); } edtRecordingDir->setText( strRecordingDir ); diff --git a/src/serverdlg.h b/src/serverdlg.h index e4f7e603e3..3313a011b5 100755 --- a/src/serverdlg.h +++ b/src/serverdlg.h @@ -46,6 +46,12 @@ // update time for GUI controls #define GUI_CONTRL_UPDATE_TIME 1000 // ms +// Strings used in multiple places +#define SREC_NOT_INITIALISED "Not initialised" +#define SREC_NOT_ENABLED "Not enabled" +#define SREC_NOT_RECORDING "Not recording" +#define SREC_RECORDING "Recording" + /* Classes ********************************************************************/ class CServerDlg : public QDialog, private Ui_CServerDlgBase From 9af0ae13e91186b219e6132540ba1f9e0697d899 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 4 Jul 2020 08:24:35 +0200 Subject: [PATCH 312/936] add special server list filter for filtering occupied servers by using "#" (#397) --- ChangeLog | 2 ++ src/connectdlg.cpp | 14 +++++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index da33eba317..fb5b5f2ea1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -9,6 +9,8 @@ - new app icon for Jamulus, created by geheimerEichkater (#410) +- add special server list filter for filtering occupied servers by using "#" (#397) + - bug fix: grouping faders in the client should be proportional (see discussion in #202, #419) diff --git a/src/connectdlg.cpp b/src/connectdlg.cpp index 332b45aa92..494a0573ed 100755 --- a/src/connectdlg.cpp +++ b/src/connectdlg.cpp @@ -227,9 +227,6 @@ void CConnectDlg::RequestServerList() // clear server list view lvwServers->clear(); - // clear filter edit box - edtFilter->setText ( "" ); - // update list combo box (disable events to avoid a signal) cbxCentServAddrType->blockSignals ( true ); cbxCentServAddrType->setCurrentIndex ( static_cast ( pClient->GetCentralServerAddressType() ) ); @@ -481,6 +478,9 @@ void CConnectDlg::SetConnClientsList ( const CHostAddress& InetAddr, // to show the children lvwServers->setRootIsDecorated ( true ); } + + // the clients list may have changed, update the filter selection + UpdateListFilter(); } } @@ -569,6 +569,14 @@ void CConnectDlg::UpdateListFilter() bFilterFound = true; } + // special case: filter for occupied servers + // DEFINITION: if "#" is set at the beginning of the filter text, we show + // occupied servers (#397) + if ( ( sFilterText.indexOf ( "#" ) == 0 ) && ( pCurListViewItem->childCount() > 0 ) ) + { + bFilterFound = true; + } + // search children for ( int iCCnt = 0; iCCnt < pCurListViewItem->childCount(); iCCnt++ ) { From dab63cda23b50ac702cc1123225beb804478e230 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 4 Jul 2020 09:45:46 +0200 Subject: [PATCH 313/936] initial multi-group support, still some work to do (e.g. the skin change does not work) --- src/audiomixerboard.cpp | 61 ++++++++++++++++++++++++++++++++++++++++- src/audiomixerboard.h | 15 ++++++++-- src/global.h | 4 +-- 3 files changed, 75 insertions(+), 5 deletions(-) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 1ec1bd147e..a92c108b53 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -60,6 +60,17 @@ CChannelFader::CChannelFader ( QWidget* pNW ) QVBoxLayout* pPanGrid = new QVBoxLayout ( ); QHBoxLayout* pPanInfoGrid = new QHBoxLayout ( ); + // define the popup menu for the group checkbox + pGroupPopupMenu = new QMenu ( "", pcbGroup ); + pGroupPopupMenu->addAction ( tr ( "No grouping" ), this, SLOT ( OnGroupMenuGrpNone() ) ); + pGroupPopupMenu->addAction ( tr ( "Assign to group" ) + " 1", this, SLOT ( OnGroupMenuGrp1() ) ); + pGroupPopupMenu->addAction ( tr ( "Assign to group" ) + " 2", this, SLOT ( OnGroupMenuGrp2() ) ); + pGroupPopupMenu->addAction ( tr ( "Assign to group" ) + " 3", this, SLOT ( OnGroupMenuGrp3() ) ); + pGroupPopupMenu->addAction ( tr ( "Assign to group" ) + " 4", this, SLOT ( OnGroupMenuGrp4() ) ); +#if ( MAX_NUM_FADER_GROUPS != 4 ) +# error "MAX_NUM_FADER_GROUPS must be set to 4, see implementation in CChannelFader()" +#endif + // setup channel level plbrChannelLevel->setContentsMargins ( 0, 3, 2, 3 ); @@ -183,6 +194,9 @@ CChannelFader::CChannelFader ( QWidget* pNW ) QObject::connect ( pcbSolo, &QCheckBox::stateChanged, this, &CChannelFader::soloStateChanged ); + + QObject::connect ( pcbGroup, &QCheckBox::stateChanged, + this, &CChannelFader::OnGroupStateChanged ); } void CChannelFader::SetGUIDesign ( const EGUIDesign eNewDesign ) @@ -319,7 +333,6 @@ void CChannelFader::Reset() // reset mute/solo/group check boxes and level meter pcbMute->setChecked ( false ); pcbSolo->setChecked ( false ); - pcbGroup->setChecked ( false ); plbrChannelLevel->SetValue ( 0 ); plbrChannelLevel->ClipReset(); @@ -341,6 +354,9 @@ void CChannelFader::Reset() bOtherChannelIsSolo = false; bIsMyOwnFader = false; + + iGroupID = INVALID_INDEX; + UpdateGroupCheckState(); } void CChannelFader::SetFaderLevel ( const double dLevel, @@ -441,6 +457,49 @@ void CChannelFader::OnMuteStateChanged ( int value ) SetMute ( static_cast ( value ) == Qt::Checked ); } +void CChannelFader::SetGroupID ( const int iNGroupID ) +{ + iGroupID = iNGroupID; + +// TODO different skins, different text; also prolem with skin update + if ( iNGroupID != INVALID_INDEX ) + { + pcbGroup->setText ( tr ( "Grp" ) + QString::number ( iNGroupID + 1 ) ); + } + else + { + pcbGroup->setText ( tr ( "Grp" ) ); + } + + UpdateGroupCheckState(); +} + +void CChannelFader::UpdateGroupCheckState() +{ + // update the group checkbox according the current group ID setting + pcbGroup->blockSignals ( true ); // make sure no signals as fired + if ( iGroupID == INVALID_INDEX ) + { + pcbGroup->setCheckState ( Qt::Unchecked ); + } + else + { + pcbGroup->setCheckState ( Qt::Checked ); + } + pcbGroup->blockSignals ( false ); +} + +void CChannelFader::OnGroupStateChanged ( int ) +{ + // we want a popup menu shown if the user presses the group checkbox but + // we want to make sure that the checkbox state represents the current group + // setting and not the current click state since the user might not click + // on the menu but at one other place and then the popup menu disappears but + // the checkobx state would be on an invalid state + UpdateGroupCheckState(); + pGroupPopupMenu->popup ( QCursor::pos() ); +} + void CChannelFader::SetMute ( const bool bState ) { if ( bState ) diff --git a/src/audiomixerboard.h b/src/audiomixerboard.h index bbde40e673..83d9311304 100755 --- a/src/audiomixerboard.h +++ b/src/audiomixerboard.h @@ -36,6 +36,7 @@ #include #include #include +#include #include "global.h" #include "util.h" #include "levelmeter.h" @@ -57,7 +58,7 @@ class CChannelFader : public QObject bool IsVisible() { return !pFrame->isHidden(); } bool IsSolo() { return pcbSolo->isChecked(); } bool IsMute() { return pcbMute->isChecked(); } - int GetGroupID() { return pcbGroup->isChecked() ? 0 : INVALID_INDEX; } + int GetGroupID() { return iGroupID; } void SetGUIDesign ( const EGUIDesign eNewDesign ); void SetDisplayChannelLevel ( const bool eNDCL ); bool GetDisplayChannelLevel(); @@ -67,7 +68,7 @@ class CChannelFader : public QObject void SetPanValue ( const int iPan ); void SetFaderIsSolo ( const bool bIsSolo ); void SetFaderIsMute ( const bool bIsMute ); - void SetGroupID ( const int iGroupID ) { pcbGroup->setChecked ( iGroupID != INVALID_INDEX ); } + void SetGroupID ( const int iNGroupID ); void SetRemoteFaderIsMute ( const bool bIsMute ); void SetFaderLevel ( const double dLevel, const bool bIsGroupUpdate = false ); @@ -81,6 +82,7 @@ class CChannelFader : public QObject void UpdateSoloState ( const bool bNewOtherSoloState ); protected: + void UpdateGroupCheckState(); double CalcFaderGain ( const double dValue ); void SetMute ( const bool bState ); void SetupFaderTag ( const ESkillLevel eSkillLevel ); @@ -103,6 +105,7 @@ class CChannelFader : public QObject QCheckBox* pcbMute; QCheckBox* pcbSolo; QCheckBox* pcbGroup; + QMenu* pGroupPopupMenu; QGroupBox* pLabelInstBox; QLabel* plblLabel; @@ -114,11 +117,19 @@ class CChannelFader : public QObject bool bOtherChannelIsSolo; bool bIsMyOwnFader; double dPreviousFaderLevel; + int iGroupID; public slots: void OnLevelValueChanged ( int value ) { SendFaderLevelToServer ( value, false ); } void OnPanValueChanged ( int value ) { SendPanValueToServer ( value ); } void OnMuteStateChanged ( int value ); + void OnGroupStateChanged ( int ); + + void OnGroupMenuGrpNone() { SetGroupID ( INVALID_INDEX ); } + void OnGroupMenuGrp1() { SetGroupID ( 0 ); } + void OnGroupMenuGrp2() { SetGroupID ( 1 ); } + void OnGroupMenuGrp3() { SetGroupID ( 2 ); } + void OnGroupMenuGrp4() { SetGroupID ( 3 ); } signals: void gainValueChanged ( double value, diff --git a/src/global.h b/src/global.h index dc4fea5a2f..99c27370ff 100755 --- a/src/global.h +++ b/src/global.h @@ -152,8 +152,8 @@ LED bar: lbr #define AUD_MIX_FADER_MAX 100 #define AUD_MIX_PAN_MAX 100 -// maximum number of fader groups -#define MAX_NUM_FADER_GROUPS 10 +// maximum number of fader groups (must be consistent to audiomixerboard implementation) +#define MAX_NUM_FADER_GROUPS 4 // maximum number of recognized sound cards installed in the system #define MAX_NUMBER_SOUND_CARDS 129 // e.g. 16 inputs, 8 outputs + default entry (MacOS) From dc577891b47749846cc9056a9a88960f1aa7cba8 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 4 Jul 2020 10:46:31 +0200 Subject: [PATCH 314/936] fixed issue with group checkbox and different skins --- ChangeLog | 2 ++ src/audiomixerboard.cpp | 41 ++++++++++++++++++++++------------------- src/audiomixerboard.h | 3 ++- 3 files changed, 26 insertions(+), 20 deletions(-) diff --git a/ChangeLog b/ChangeLog index fb5b5f2ea1..7f13b5c72a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -22,6 +22,8 @@ TODO improve settings management -> move settings class in client/server classes TODO add new register message which contains version and, e.g., max number of clients +TODO Inconsistency between Input meter and Audio mixer meter #423 + TODO https://github.com/corrados/jamulus/issues/341#issuecomment-647172946 - generate .qm on compile time with lrelease diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index a92c108b53..adf7031e04 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -45,7 +45,7 @@ CChannelFader::CChannelFader ( QWidget* pNW ) pMuteSoloBox = new QWidget ( pFrame ); pcbMute = new QCheckBox ( tr ( "Mute" ), pMuteSoloBox ); pcbSolo = new QCheckBox ( tr ( "Solo" ), pMuteSoloBox ); - pcbGroup = new QCheckBox ( tr ( "Grp" ), pMuteSoloBox ); + pcbGroup = new QCheckBox ( "", pMuteSoloBox ); pLabelInstBox = new QGroupBox ( pFrame ); plblLabel = new QLabel ( "", pFrame ); @@ -128,6 +128,7 @@ CChannelFader::CChannelFader ( QWidget* pNW ) pMainGrid->addWidget ( pLabelInstBox ); // reset current fader + strGroupBaseText = "Grp"; // this will most probably overwritten by SetGUIDesign() Reset(); // add help text to controls @@ -224,7 +225,7 @@ void CChannelFader::SetGUIDesign ( const EGUIDesign eNewDesign ) pPanLabel->setText ( tr ( "PAN" ) ); pcbMute->setText ( tr ( "MUTE" ) ); pcbSolo->setText ( tr ( "SOLO" ) ); - pcbGroup->setText ( tr ( "GRP" ) ); + strGroupBaseText = tr ( "GRP" ); plbrChannelLevel->SetLevelMeterType ( CLevelMeter::MT_LED ); break; @@ -238,7 +239,7 @@ void CChannelFader::SetGUIDesign ( const EGUIDesign eNewDesign ) pPanLabel->setText ( tr ( "Pan" ) ); pcbMute->setText ( tr ( "M" ) ); pcbSolo->setText ( tr ( "S" ) ); - pcbGroup->setText ( tr ( "G" ) ); + strGroupBaseText = tr ( "G" ); plbrChannelLevel->SetLevelMeterType ( CLevelMeter::MT_SLIM_BAR ); break; @@ -253,10 +254,13 @@ void CChannelFader::SetGUIDesign ( const EGUIDesign eNewDesign ) pPanLabel->setText ( tr ( "Pan" ) ); pcbMute->setText ( tr ( "Mute" ) ); pcbSolo->setText ( tr ( "Solo" ) ); - pcbGroup->setText ( tr ( "Grp" ) ); + strGroupBaseText = tr ( "Grp" ); plbrChannelLevel->SetLevelMeterType ( CLevelMeter::MT_BAR ); break; } + + // we need to update since we changed the checkbox text + UpdateGroupIDDependencies(); } void CChannelFader::SetDisplayChannelLevel ( const bool eNDCL ) @@ -356,7 +360,7 @@ void CChannelFader::Reset() bIsMyOwnFader = false; iGroupID = INVALID_INDEX; - UpdateGroupCheckState(); + UpdateGroupIDDependencies(); } void CChannelFader::SetFaderLevel ( const double dLevel, @@ -460,21 +464,10 @@ void CChannelFader::OnMuteStateChanged ( int value ) void CChannelFader::SetGroupID ( const int iNGroupID ) { iGroupID = iNGroupID; - -// TODO different skins, different text; also prolem with skin update - if ( iNGroupID != INVALID_INDEX ) - { - pcbGroup->setText ( tr ( "Grp" ) + QString::number ( iNGroupID + 1 ) ); - } - else - { - pcbGroup->setText ( tr ( "Grp" ) ); - } - - UpdateGroupCheckState(); + UpdateGroupIDDependencies(); } -void CChannelFader::UpdateGroupCheckState() +void CChannelFader::UpdateGroupIDDependencies() { // update the group checkbox according the current group ID setting pcbGroup->blockSignals ( true ); // make sure no signals as fired @@ -487,6 +480,16 @@ void CChannelFader::UpdateGroupCheckState() pcbGroup->setCheckState ( Qt::Checked ); } pcbGroup->blockSignals ( false ); + + // update group checkbox text + if ( iGroupID != INVALID_INDEX ) + { + pcbGroup->setText ( strGroupBaseText + QString::number ( iGroupID + 1 ) ); + } + else + { + pcbGroup->setText ( strGroupBaseText ); + } } void CChannelFader::OnGroupStateChanged ( int ) @@ -496,7 +499,7 @@ void CChannelFader::OnGroupStateChanged ( int ) // setting and not the current click state since the user might not click // on the menu but at one other place and then the popup menu disappears but // the checkobx state would be on an invalid state - UpdateGroupCheckState(); + UpdateGroupIDDependencies(); pGroupPopupMenu->popup ( QCursor::pos() ); } diff --git a/src/audiomixerboard.h b/src/audiomixerboard.h index 83d9311304..1ec51e7c1e 100755 --- a/src/audiomixerboard.h +++ b/src/audiomixerboard.h @@ -82,7 +82,7 @@ class CChannelFader : public QObject void UpdateSoloState ( const bool bNewOtherSoloState ); protected: - void UpdateGroupCheckState(); + void UpdateGroupIDDependencies(); double CalcFaderGain ( const double dValue ); void SetMute ( const bool bState ); void SetupFaderTag ( const ESkillLevel eSkillLevel ); @@ -118,6 +118,7 @@ class CChannelFader : public QObject bool bIsMyOwnFader; double dPreviousFaderLevel; int iGroupID; + QString strGroupBaseText; public slots: void OnLevelValueChanged ( int value ) { SendFaderLevelToServer ( value, false ); } From 68389457bfdfe19431e102c8f710d29c25ec0ce5 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 4 Jul 2020 11:52:09 +0200 Subject: [PATCH 315/936] support sorting by group ID --- src/audiomixerboard.cpp | 14 +++++++++++++- src/clientdlg.cpp | 3 +++ src/clientdlg.h | 1 + src/settings.cpp | 3 ++- src/util.h | 3 ++- 5 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index adf7031e04..39d8691f72 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -916,10 +916,22 @@ void CAudioMixerBoard::ChangeFaderOrder ( const bool bDoSort, { PairList << QPair ( vecpChanFader[i]->GetReceivedName().toLower(), i ); } - else // ST_BY_INSTRUMENT + else if ( eChSortType == ST_BY_INSTRUMENT ) { PairList << QPair ( CInstPictures::GetName ( vecpChanFader[i]->GetReceivedInstrument() ), i ); } + else // ST_BY_GROUPID + { + if ( vecpChanFader[i]->GetGroupID() == INVALID_INDEX ) + { + // put channels without a group at the end + PairList << QPair ( "z", i ); // group IDs are numbers, use letter to put it at the end + } + else + { + PairList << QPair ( QString::number ( vecpChanFader[i]->GetGroupID() ), i ); + } + } } // if requested, sort the channels diff --git a/src/clientdlg.cpp b/src/clientdlg.cpp index 3d76b99d8e..df1d08c65e 100755 --- a/src/clientdlg.cpp +++ b/src/clientdlg.cpp @@ -289,6 +289,9 @@ CClientDlg::CClientDlg ( CClient* pNCliP, pEditMenu->addAction ( tr ( "Sort Channel Users by &Instrument" ), this, SLOT ( OnSortChannelsByInstrument() ), QKeySequence ( Qt::CTRL + Qt::Key_I ) ); + pEditMenu->addAction ( tr ( "Sort Channel Users by &Group" ), this, + SLOT ( OnSortChannelsByGroupID() ), QKeySequence ( Qt::CTRL + Qt::Key_G ) ); + // Main menu bar ----------------------------------------------------------- pMenu = new QMenuBar ( this ); diff --git a/src/clientdlg.h b/src/clientdlg.h index 8c49016612..79f16f77cd 100755 --- a/src/clientdlg.h +++ b/src/clientdlg.h @@ -157,6 +157,7 @@ public slots: void OnOpenAnalyzerConsole() { ShowAnalyzerConsole(); } void OnSortChannelsByName() { MainMixerBoard->ChangeFaderOrder ( true, ST_BY_NAME ); } void OnSortChannelsByInstrument() { MainMixerBoard->ChangeFaderOrder ( true, ST_BY_INSTRUMENT ); } + void OnSortChannelsByGroupID() { MainMixerBoard->ChangeFaderOrder ( true, ST_BY_GROUPID ); } void OnSettingsStateChanged ( int value ); void OnChatStateChanged ( int value ); diff --git a/src/settings.cpp b/src/settings.cpp index b11f5d89a6..21c8b05766 100755 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -281,9 +281,10 @@ void CClientSettings::ReadFromXML ( const QDomDocument& IniXMLDocument ) // stored fader group ID for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) { + // note that we only apply valid group numbers here if ( GetNumericIniSet ( IniXMLDocument, "client", QString ( "storedgroupid%1" ).arg ( iIdx ), - 0, MAX_NUM_FADER_GROUPS, iValue ) ) + 0, MAX_NUM_FADER_GROUPS - 1, iValue ) ) { pClient->vecStoredFaderGroupID[iIdx] = iValue; } diff --git a/src/util.h b/src/util.h index 4f89dfe06a..7fe414109c 100755 --- a/src/util.h +++ b/src/util.h @@ -581,7 +581,8 @@ enum ERecorderState enum EChSortType { ST_BY_NAME, - ST_BY_INSTRUMENT + ST_BY_INSTRUMENT, + ST_BY_GROUPID }; From a73518c9c9ea96e9df236b2601220ace89f12efa Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 4 Jul 2020 12:07:51 +0200 Subject: [PATCH 316/936] assign colors to the groups --- src/audiomixerboard.cpp | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 39d8691f72..0b2dc8ac85 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -282,10 +282,36 @@ void CChannelFader::SetDisplayPans ( const bool eNDP ) void CChannelFader::SetupFaderTag ( const ESkillLevel eSkillLevel ) { + // the group ID defines the border color + QString strBorderColor; + + switch ( iGroupID ) + { + case 0: + strBorderColor = "red"; + break; + + case 1: + strBorderColor = "blue"; + break; + + case 2: + strBorderColor = "green"; + break; + + case 3: + strBorderColor = "yellow"; + break; + + default: + strBorderColor = "black"; + break; + } + // setup group box for label/instrument picture: set a thick black border // with nice round edges QString strStile = - "QGroupBox { border: 2px solid black;" + "QGroupBox { border: 2px solid " + strBorderColor + ";" " border-radius: 4px;" " padding: 3px;"; @@ -490,6 +516,9 @@ void CChannelFader::UpdateGroupIDDependencies() { pcbGroup->setText ( strGroupBaseText ); } + + // the fader tag border color is set according to the selected group + SetupFaderTag ( cReceivedChanInfo.eSkillLevel ); } void CChannelFader::OnGroupStateChanged ( int ) From 78be9af3270b7475b727dcaf23045deed06c4d5c Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 4 Jul 2020 12:12:17 +0200 Subject: [PATCH 317/936] update --- ChangeLog | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ChangeLog b/ChangeLog index 7f13b5c72a..46a7915731 100644 --- a/ChangeLog +++ b/ChangeLog @@ -9,6 +9,10 @@ - new app icon for Jamulus, created by geheimerEichkater (#410) +- support up to four different groups for the channels (#202) + +- support sorting faders by channel group + - add special server list filter for filtering occupied servers by using "#" (#397) - bug fix: grouping faders in the client should be proportional (see discussion in #202, #419) From 89f5125b636ee5a6e676574e37860965fe9a0af4 Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Sat, 4 Jul 2020 17:20:11 +0100 Subject: [PATCH 318/936] Add "clear" icon See https://github.com/corrados/jamulus/issues/228#issuecomment-653781054 --- src/serverdlg.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/serverdlg.cpp b/src/serverdlg.cpp index e80000d4e3..1dd7cf11d5 100755 --- a/src/serverdlg.cpp +++ b/src/serverdlg.cpp @@ -330,7 +330,7 @@ lvwClients->setMinimumHeight ( 140 ); pbtNewRecording->setAutoDefault ( false ); pbtRecordingDir->setAutoDefault ( false ); edtRecordingDir->setText( pServer->GetRecordingDir() ); - tbtClearRecordingDir->setText ( "(X)" ); // someone make me a nice icon? + tbtClearRecordingDir->setText ( """" ); UpdateRecorderStatus ( QString::null ); From aafb2a3439ec425271f30527cc959664ede11d1a Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Sat, 4 Jul 2020 17:56:35 +0100 Subject: [PATCH 319/936] Update serverdlg.cpp --- src/serverdlg.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/serverdlg.cpp b/src/serverdlg.cpp index 1dd7cf11d5..1ff9cd5bae 100755 --- a/src/serverdlg.cpp +++ b/src/serverdlg.cpp @@ -330,7 +330,7 @@ lvwClients->setMinimumHeight ( 140 ); pbtNewRecording->setAutoDefault ( false ); pbtRecordingDir->setAutoDefault ( false ); edtRecordingDir->setText( pServer->GetRecordingDir() ); - tbtClearRecordingDir->setText ( """" ); + tbtClearRecordingDir->setText(QString::fromUtf8("\u232B")); UpdateRecorderStatus ( QString::null ); From ca5b1469cc7c9248c208735d40aa1f8957a8e50f Mon Sep 17 00:00:00 2001 From: geheimerEichkater <67019343+geheimerEichkater@users.noreply.github.com> Date: Sat, 4 Jul 2020 18:59:16 +0200 Subject: [PATCH 320/936] Update fronticon.png Upscaled to 45x45 (about 1.5 times bigger) --- src/res/fronticon.png | Bin 2276 -> 2960 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/res/fronticon.png b/src/res/fronticon.png index 619d522457fe1eb28661f75028ec1e1c55524990..a90d7ae535feb68b6f2b1d61f391f86b00e7bb51 100644 GIT binary patch delta 2274 zcma)8do&Xa9~OnoHn%7tcY15uY;88zF*3KjxxK>5W!i|jzqxJ_BIGiqF!xKhg-}A2 znu=Ifk?SbT{Z4q7*LTkM?|07k$MgKodCqg5^ZfpMeoAJ_sifH3odb%=iwOt_0P&W% z3;P%HABYO?Ge&;meys}sz-2fJia_h>5g|w)1R8=s!C(+iZx|G!3xyJ)zCi+3WRnoWzm?@PO+-IONyuQ?vek~|o1>;BBaESl=j-ib zEw8p-)(>qi1orEF__;f}(#mg*gty(JIEV9h!o}`TACJ1+Nf{@Q4j|;@h0-O?=of!w z>+){1)sh#xmRwfdzlJ3U+aF14V7r*tSXBUa(CdaY%I{tip&+9q54Kx*Xo=sE$@?30 z&lKf+qZ{HX7v<%ZDs{F5JZ2*}CqP;rtYNdAVv5%!c-uz8x_w%#e-G^@TJ zq__)InZ&s-Im`gkQd!YMH(pI^p|HiuKjI!DTnP36u>FMBwUlXDftZLu-I4o#8o9T7 z$-$c(IpRjxo6l;6593D2S0tEp*8%;$J#efqxr|IqCb34?#(Fkx z87`l9r{~wBW1D-8YjpJ)VgXW5IBrl!1AG>fU8gCo!6w>QHlkzV79NwV8hNcuG}UR$ zqUUuM`06dujbjLrRq1W`%vPV3?~&H`{NoK`?UkO_6nB&n-D~%i6k0I)o^NOvces@P zF-cFltn_&QbXtmdg%e&D!yaHIpBL;sK8SCxBacdr*;OXkEK_uhT)z;SI=#~cKu)5=5}zlaPmAdr2Ro<1Or#5U`M_PZom4GQVbu^ag!~-KnS7t(vnv` zfcqP==_-nbI)i_|O3Cn;DaD@ITBGFp^yaNLv7p=5Lk1AOrWTT6P?W=yyL{*4RA61R z#lyx_9XY3eBFw%kw@}}oE@OZO6WdGAo^(!y+bL>cHmYxt%}-Tb9_U`1_)8k{DQ!c) zukC3QX0ZS`$qQkBQxuv2WUOxyOw*5=w56td08YW@jQ?0B*X2I0 zRujwuCXyXFgJ!6A`K(~QJT=U(%Ph45jnR3-Na`2+Z4WgdUgRZMxcZzT!NKF-J zr}pJKkegZ)sKaGW6Dm*Yi}ESy;vX|&*3LLN9#zDjWCcB(Yt}4?mXWFAXj{*VZOpGY>r-Qo6J+iw8ax)f-X~>yCsyNbaDcawSH`Mmj=4FOAw=AdO z3;M$CXO|3t{YUR)1EeqWn(X8nHVA;c)yiyzUz?oBlZYO%W$!NI809y%ve%STgvd-%QTA!fL`h}N=X+0vVztDQK4dVug{ zDf;tqO!}oc_>VM4Fq0B;ILx(X>*>__fxct|3TAAfw6M*2w`H=(a>6$L&y)F!CBy1y zW(l}jGRr-raJ^;aO3)uJUWR*B!gV){W#ZO77yIial+ z)h}>MO0Aahaj1^!=t+FV40co_*t>I$^++53oWZQvmg^vgvn)j%AGP}cFtd!kmUv|jWrrND4|fR_`gs5HzDntE$ZHfUO{aUp?9)`}s`kG~nJZLx zA+s+jCgl0qGPt(&qo`p5XS;{^-Do;KzGSX`fp-YQnOPk@duX{679)9j%tnX{0ZeC_ zs{{$R%=rNMK^1dJpMJk!o}^KZr()Jz=T`x~7s++D*KGaI#9kyUxt{)zAN%wP zL10YV+3{g9OmKE<0tX<{I?L8EOzPw6PD2ym@|g5p3>OqD4H?0BQsvvxjPni=JyUN(PprS1@vG8^LnK8tB!~%bys{R1j^`EdGR%~ zE(qoN*7|dI$K-e+L@jV!D*OEpVXgcV&TsCasVWqZL7^W@$@=Qq+gSO{j9UXjkgY8uM=v|7i4{Fz8 ket7ZN?p}%do)}c1TkBcMw;AT<{%jGzo7>@-rkAh(3ok!1v;Y7A delta 1585 zcma)-Yd8}M0ERJy6q}PtQWjGf+t@`qWj8ZxJ1s>{VKx&oxy6pO<(4_7Y$LI#HkVRj zT|{zH+o8yPMYq$TqC(51Ls5<&=kIx*eth5eJm2&F`2Kwb;5R_K++B3?DidoH9UYxj z6kp=*<+NLtt&!of%O9kGm3H5BnPDsz5)t8nfq7yP9GFL#CmY7XV%V@SY#0h1fk0w0 z2o7W;j~hp$Z6zLNAK`LhlPJWWAwsFD&N9`hcsx%lbTNqT-Tyb_lCMO+EdN@4}Ee zK=WiJw_D|1mTXbtYD$}aI}=jOFsXcTA$#|^nfODUSO0Q6us4LO4*YHt+LZ++A=JfBMHf&_Aow#Wmk(OCFEwUvpVMHQ_XBb_2khpgkKv>(sU z_`glq#$*IWp`*0oN)YwY!3XQ~lF zAp1|kdVVa2hg2Q!Sp11nl+cfYr;m3tCb~Slt3!IT*cw<=q^gu?PrCeVw8Ak`Tp7`Lp3RJ&$7;s&VQ&ccUWcMnx-1ladaxm?mXREbFRUoT zda4$)0t;r*FrKF#{`+E&9oOX43h=Y_n<*k6gGts9D%(Flg;6Fb&WOyvqwH?0qU-=^ z@V2spS#L*6SOg>-xCwc~sjzxnx#hW$MQ-zN4sL_!)(VCk(sSd@i}I4VSTjvly++t^ zr?5crMAhVD{0EEs5od;)YCBhrm@+hx#m$Py^Jx?lfd+bmm;P)lcvz~8ol1!hxNTxp&UzAQK z4FnIJIN%JOvH>qKWd=bf{!VuIaOzl)q%XkTC1$n#lwy9Z0!?3hVmc<;kmFKW^3@?9 zv8&vPUJSB*yK7_ab%<7&V+lPsSWBC~{Bmu-d|<@-@N)vxRUR2D3U_~-*Wpz&wg&BZ z%yC<*Ky=HwU7zZ=ZRF-kV92BTf!+^6Ui??lIc1?K-uo|0rY$YHCEfFJ#dcU t%z%{HzECL9(6JjB`Y1TPZqcn(2fpfQi;bV@U&}9`Lm| Date: Sat, 4 Jul 2020 19:11:59 +0200 Subject: [PATCH 321/936] merge fixes --- src/serverdlg.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/serverdlg.cpp b/src/serverdlg.cpp index 1ff9cd5bae..6ce0193de5 100755 --- a/src/serverdlg.cpp +++ b/src/serverdlg.cpp @@ -329,8 +329,8 @@ lvwClients->setMinimumHeight ( 140 ); edtCurrentSessionDir->setText ( "" ); pbtNewRecording->setAutoDefault ( false ); pbtRecordingDir->setAutoDefault ( false ); - edtRecordingDir->setText( pServer->GetRecordingDir() ); - tbtClearRecordingDir->setText(QString::fromUtf8("\u232B")); + edtRecordingDir->setText ( pServer->GetRecordingDir() ); + tbtClearRecordingDir->setText ( u8"\u232B" ); UpdateRecorderStatus ( QString::null ); From 9fe9c4c261c38dfcad439f022dff2cfbc387ab86 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 4 Jul 2020 19:55:04 +0200 Subject: [PATCH 322/936] moved some settings from client class in the settings class --- src/client.cpp | 17 --------- src/client.h | 19 ---------- src/clientdlg.cpp | 80 +++++++++++++++++++-------------------- src/clientdlg.h | 2 +- src/clientsettingsdlg.cpp | 14 ++++--- src/clientsettingsdlg.h | 17 +++++---- src/settings.cpp | 68 ++++++++++++++++----------------- src/settings.h | 40 +++++++++++++++++++- 8 files changed, 133 insertions(+), 124 deletions(-) diff --git a/src/client.cpp b/src/client.cpp index fa3e3e5071..7330603e38 100755 --- a/src/client.cpp +++ b/src/client.cpp @@ -33,24 +33,7 @@ CClient::CClient ( const quint16 iPortNumber, const QString& strNClientName ) : vstrIPAddress ( MAX_NUM_SERVER_ADDR_ITEMS, "" ), ChannelInfo (), - vecStoredFaderTags ( MAX_NUM_STORED_FADER_SETTINGS, "" ), - vecStoredFaderLevels ( MAX_NUM_STORED_FADER_SETTINGS, AUD_MIX_FADER_MAX ), - vecStoredPanValues ( MAX_NUM_STORED_FADER_SETTINGS, AUD_MIX_PAN_MAX / 2 ), - vecStoredFaderIsSolo ( MAX_NUM_STORED_FADER_SETTINGS, false ), - vecStoredFaderIsMute ( MAX_NUM_STORED_FADER_SETTINGS, false ), - vecStoredFaderGroupID ( MAX_NUM_STORED_FADER_SETTINGS, INVALID_INDEX ), - iNewClientFaderLevel ( 100 ), - bConnectDlgShowAllMusicians ( true ), strClientName ( strNClientName ), - vecWindowPosMain (), // empty array - vecWindowPosSettings (), // empty array - vecWindowPosChat (), // empty array - vecWindowPosProfile (), // empty array - vecWindowPosConnect (), // empty array - bWindowWasShownSettings ( false ), - bWindowWasShownChat ( false ), - bWindowWasShownProfile ( false ), - bWindowWasShownConnect ( false ), Channel ( false ), /* we need a client channel -> "false" */ CurOpusEncoder ( nullptr ), CurOpusDecoder ( nullptr ), diff --git a/src/client.h b/src/client.h index 675fe41c5f..52a73b723f 100755 --- a/src/client.h +++ b/src/client.h @@ -280,27 +280,8 @@ class CClient : public QObject // settings CVector vstrIPAddress; CChannelCoreInfo ChannelInfo; - CVector vecStoredFaderTags; - CVector vecStoredFaderLevels; - CVector vecStoredPanValues; - CVector vecStoredFaderIsSolo; - CVector vecStoredFaderIsMute; - CVector vecStoredFaderGroupID; - int iNewClientFaderLevel; - bool bConnectDlgShowAllMusicians; QString strClientName; - // window position/state settings - QByteArray vecWindowPosMain; - QByteArray vecWindowPosSettings; - QByteArray vecWindowPosChat; - QByteArray vecWindowPosProfile; - QByteArray vecWindowPosConnect; - bool bWindowWasShownSettings; - bool bWindowWasShownChat; - bool bWindowWasShownProfile; - bool bWindowWasShownConnect; - #ifdef LLCON_VST_PLUGIN // VST version must have direct access to sound object CSound* GetSound() { return &Sound; } diff --git a/src/clientdlg.cpp b/src/clientdlg.cpp index df1d08c65e..820bb1fb9d 100755 --- a/src/clientdlg.cpp +++ b/src/clientdlg.cpp @@ -39,7 +39,7 @@ CClientDlg::CClientDlg ( CClient* pNCliP, pSettings ( pNSetP ), bConnectDlgWasShown ( false ), bMIDICtrlUsed ( iCtrlMIDIChannel != INVALID_MIDI_CH ), - ClientSettingsDlg ( pNCliP, parent, Qt::Window ), + ClientSettingsDlg ( pNCliP, pNSetP, parent, Qt::Window ), ChatDlg ( parent, Qt::Window ), ConnectDlg ( pNCliP, bNewShowComplRegConnList, parent, Qt::Dialog ), AnalyzerConsole ( pNCliP, parent, Qt::Window ), @@ -189,13 +189,13 @@ CClientDlg::CClientDlg ( CClient* pNCliP, MainMixerBoard->SetDisplayChannelLevels ( pClient->GetDisplayChannelLevels() ); // restore fader settings - MainMixerBoard->vecStoredFaderTags = pClient->vecStoredFaderTags; - MainMixerBoard->vecStoredFaderLevels = pClient->vecStoredFaderLevels; - MainMixerBoard->vecStoredPanValues = pClient->vecStoredPanValues; - MainMixerBoard->vecStoredFaderIsSolo = pClient->vecStoredFaderIsSolo; - MainMixerBoard->vecStoredFaderIsMute = pClient->vecStoredFaderIsMute; - MainMixerBoard->vecStoredFaderGroupID = pClient->vecStoredFaderGroupID; - MainMixerBoard->iNewClientFaderLevel = pClient->iNewClientFaderLevel; + MainMixerBoard->vecStoredFaderTags = pSettings->vecStoredFaderTags; + MainMixerBoard->vecStoredFaderLevels = pSettings->vecStoredFaderLevels; + MainMixerBoard->vecStoredPanValues = pSettings->vecStoredPanValues; + MainMixerBoard->vecStoredFaderIsSolo = pSettings->vecStoredFaderIsSolo; + MainMixerBoard->vecStoredFaderIsMute = pSettings->vecStoredFaderIsMute; + MainMixerBoard->vecStoredFaderGroupID = pSettings->vecStoredFaderGroupID; + MainMixerBoard->iNewClientFaderLevel = pSettings->iNewClientFaderLevel; // init status label OnTimerStatus(); @@ -226,7 +226,7 @@ CClientDlg::CClientDlg ( CClient* pNCliP, UpdateRevSelection(); // init connect dialog - ConnectDlg.SetShowAllMusicians ( pClient->bConnectDlgShowAllMusicians ); + ConnectDlg.SetShowAllMusicians ( pSettings->bConnectDlgShowAllMusicians ); // set window title (with no clients connected -> "0") SetMyWindowTitle ( 0 ); @@ -370,48 +370,48 @@ CClientDlg::CClientDlg ( CClient* pNCliP, // Window positions -------------------------------------------------------- // main window - if ( !pClient->vecWindowPosMain.isEmpty() && !pClient->vecWindowPosMain.isNull() ) + if ( !pSettings->vecWindowPosMain.isEmpty() && !pSettings->vecWindowPosMain.isNull() ) { - restoreGeometry ( pClient->vecWindowPosMain ); + restoreGeometry ( pSettings->vecWindowPosMain ); } // settings window - if ( !pClient->vecWindowPosSettings.isEmpty() && !pClient->vecWindowPosSettings.isNull() ) + if ( !pSettings->vecWindowPosSettings.isEmpty() && !pSettings->vecWindowPosSettings.isNull() ) { - ClientSettingsDlg.restoreGeometry ( pClient->vecWindowPosSettings ); + ClientSettingsDlg.restoreGeometry ( pSettings->vecWindowPosSettings ); } - if ( pClient->bWindowWasShownSettings ) + if ( pSettings->bWindowWasShownSettings ) { ShowGeneralSettings(); } // chat window - if ( !pClient->vecWindowPosChat.isEmpty() && !pClient->vecWindowPosChat.isNull() ) + if ( !pSettings->vecWindowPosChat.isEmpty() && !pSettings->vecWindowPosChat.isNull() ) { - ChatDlg.restoreGeometry ( pClient->vecWindowPosChat ); + ChatDlg.restoreGeometry ( pSettings->vecWindowPosChat ); } - if ( pClient->bWindowWasShownChat ) + if ( pSettings->bWindowWasShownChat ) { ShowChatWindow(); } // musician profile window - if ( !pClient->vecWindowPosProfile.isEmpty() && !pClient->vecWindowPosProfile.isNull() ) + if ( !pSettings->vecWindowPosProfile.isEmpty() && !pSettings->vecWindowPosProfile.isNull() ) { - MusicianProfileDlg.restoreGeometry ( pClient->vecWindowPosProfile ); + MusicianProfileDlg.restoreGeometry ( pSettings->vecWindowPosProfile ); } - if ( pClient->bWindowWasShownProfile ) + if ( pSettings->bWindowWasShownProfile ) { ShowMusicianProfileDialog(); } // connection setup window - if ( !pClient->vecWindowPosConnect.isEmpty() && !pClient->vecWindowPosConnect.isNull() ) + if ( !pSettings->vecWindowPosConnect.isEmpty() && !pSettings->vecWindowPosConnect.isNull() ) { - ConnectDlg.restoreGeometry ( pClient->vecWindowPosConnect ); + ConnectDlg.restoreGeometry ( pSettings->vecWindowPosConnect ); } @@ -564,7 +564,7 @@ CClientDlg::CClientDlg ( CClient* pNCliP, TimerStatus.start ( LED_BAR_UPDATE_TIME_MS ); // restore connect dialog - if ( pClient->bWindowWasShownConnect ) + if ( pSettings->bWindowWasShownConnect ) { ShowConnectionSetupDialog(); } @@ -573,16 +573,16 @@ CClientDlg::CClientDlg ( CClient* pNCliP, void CClientDlg::closeEvent ( QCloseEvent* Event ) { // store window positions - pClient->vecWindowPosMain = saveGeometry(); - pClient->vecWindowPosSettings = ClientSettingsDlg.saveGeometry(); - pClient->vecWindowPosChat = ChatDlg.saveGeometry(); - pClient->vecWindowPosProfile = MusicianProfileDlg.saveGeometry(); - pClient->vecWindowPosConnect = ConnectDlg.saveGeometry(); + pSettings->vecWindowPosMain = saveGeometry(); + pSettings->vecWindowPosSettings = ClientSettingsDlg.saveGeometry(); + pSettings->vecWindowPosChat = ChatDlg.saveGeometry(); + pSettings->vecWindowPosProfile = MusicianProfileDlg.saveGeometry(); + pSettings->vecWindowPosConnect = ConnectDlg.saveGeometry(); - pClient->bWindowWasShownSettings = ClientSettingsDlg.isVisible(); - pClient->bWindowWasShownChat = ChatDlg.isVisible(); - pClient->bWindowWasShownProfile = MusicianProfileDlg.isVisible(); - pClient->bWindowWasShownConnect = ConnectDlg.isVisible(); + pSettings->bWindowWasShownSettings = ClientSettingsDlg.isVisible(); + pSettings->bWindowWasShownChat = ChatDlg.isVisible(); + pSettings->bWindowWasShownProfile = MusicianProfileDlg.isVisible(); + pSettings->bWindowWasShownConnect = ConnectDlg.isVisible(); // if settings/connect dialog or chat dialog is open, close it ClientSettingsDlg.close(); @@ -601,14 +601,14 @@ void CClientDlg::closeEvent ( QCloseEvent* Event ) // initiate a storage of the current mixer fader levels in case we are // just in a connected state) and other settings MainMixerBoard->HideAll(); - pClient->vecStoredFaderTags = MainMixerBoard->vecStoredFaderTags; - pClient->vecStoredFaderLevels = MainMixerBoard->vecStoredFaderLevels; - pClient->vecStoredPanValues = MainMixerBoard->vecStoredPanValues; - pClient->vecStoredFaderIsSolo = MainMixerBoard->vecStoredFaderIsSolo; - pClient->vecStoredFaderIsMute = MainMixerBoard->vecStoredFaderIsMute; - pClient->vecStoredFaderGroupID = MainMixerBoard->vecStoredFaderGroupID; - pClient->iNewClientFaderLevel = MainMixerBoard->iNewClientFaderLevel; - pClient->bConnectDlgShowAllMusicians = ConnectDlg.GetShowAllMusicians(); + pSettings->vecStoredFaderTags = MainMixerBoard->vecStoredFaderTags; + pSettings->vecStoredFaderLevels = MainMixerBoard->vecStoredFaderLevels; + pSettings->vecStoredPanValues = MainMixerBoard->vecStoredPanValues; + pSettings->vecStoredFaderIsSolo = MainMixerBoard->vecStoredFaderIsSolo; + pSettings->vecStoredFaderIsMute = MainMixerBoard->vecStoredFaderIsMute; + pSettings->vecStoredFaderGroupID = MainMixerBoard->vecStoredFaderGroupID; + pSettings->iNewClientFaderLevel = MainMixerBoard->iNewClientFaderLevel; + pSettings->bConnectDlgShowAllMusicians = ConnectDlg.GetShowAllMusicians(); // default implementation of this event handler routine Event->accept(); diff --git a/src/clientdlg.h b/src/clientdlg.h index 79f16f77cd..ff58cbbfb6 100755 --- a/src/clientdlg.h +++ b/src/clientdlg.h @@ -230,7 +230,7 @@ public slots: void OnAudioChannelsChanged() { UpdateRevSelection(); } void OnNumClientsChanged ( int iNewNumClients ); - void OnNewClientLevelChanged() { MainMixerBoard->iNewClientFaderLevel = pClient->iNewClientFaderLevel; } + void OnNewClientLevelChanged() { MainMixerBoard->iNewClientFaderLevel = pSettings->iNewClientFaderLevel; } void accept() { close(); } // introduced by pljones diff --git a/src/clientsettingsdlg.cpp b/src/clientsettingsdlg.cpp index 26315b8e97..11b841cbcc 100755 --- a/src/clientsettingsdlg.cpp +++ b/src/clientsettingsdlg.cpp @@ -26,8 +26,13 @@ /* Implementation *************************************************************/ -CClientSettingsDlg::CClientSettingsDlg ( CClient* pNCliP, QWidget* parent, - Qt::WindowFlags f ) : QDialog ( parent, f ), pClient ( pNCliP ) +CClientSettingsDlg::CClientSettingsDlg ( CClient* pNCliP, + CClientSettings* pNSetP, + QWidget* parent, + Qt::WindowFlags f ) : + QDialog ( parent, f ), + pClient ( pNCliP ), + pSettings ( pNSetP ) { setupUi ( this ); @@ -340,7 +345,7 @@ CClientSettingsDlg::CClientSettingsDlg ( CClient* pNCliP, QWidget* parent, edtCentralServerAddress->setText ( pClient->GetServerListCentralServerAddress() ); // update new client fader level edit box - edtNewClientLevel->setText ( QString::number ( pClient->iNewClientFaderLevel ) ); + edtNewClientLevel->setText ( QString::number ( pSettings->iNewClientFaderLevel ) ); // update enable small network buffers check box chbEnableOPUS64->setCheckState ( pClient->GetEnableOPUS64() ? Qt::Checked : Qt::Unchecked ); @@ -671,8 +676,7 @@ void CClientSettingsDlg::OnCentralServerAddressEditingFinished() void CClientSettingsDlg::OnNewClientLevelEditingFinished() { // store new setting in the client - pClient->iNewClientFaderLevel = - edtNewClientLevel->text().toInt(); + pSettings->iNewClientFaderLevel = edtNewClientLevel->text().toInt(); // inform that the level has changed and the mixer board settings must // be updated diff --git a/src/clientsettingsdlg.h b/src/clientsettingsdlg.h index 3d699e5734..6a589e8e73 100755 --- a/src/clientsettingsdlg.h +++ b/src/clientsettingsdlg.h @@ -39,6 +39,7 @@ #include #include "global.h" #include "client.h" +#include "settings.h" #include "multicolorled.h" #include "ui_clientsettingsdlgbase.h" @@ -54,9 +55,10 @@ class CClientSettingsDlg : public QDialog, private Ui_CClientSettingsDlgBase Q_OBJECT public: - CClientSettingsDlg ( CClient* pNCliP, - QWidget* parent = nullptr, - Qt::WindowFlags f = nullptr ); + CClientSettingsDlg ( CClient* pNCliP, + CClientSettings* pNSetP, + QWidget* parent = nullptr, + Qt::WindowFlags f = nullptr ); void SetStatus ( const CMultiColorLED::ELightColor eStatus ) { ledNetw->SetLight ( eStatus ); } @@ -76,14 +78,15 @@ class CClientSettingsDlg : public QDialog, private Ui_CClientSettingsDlgBase void UpdateJitterBufferFrame(); void UpdateSoundCardFrame(); void UpdateSoundChannelSelectionFrame(); - QString GenSndCrdBufferDelayString ( const int iFrameSize, + QString GenSndCrdBufferDelayString ( const int iFrameSize, const QString strAddText = "" ); virtual void showEvent ( QShowEvent* ) { UpdateDisplay(); } - CClient* pClient; - QTimer TimerStatus; - QButtonGroup SndCrdBufferDelayButtonGroup; + CClient* pClient; + CClientSettings* pSettings; + QTimer TimerStatus; + QButtonGroup SndCrdBufferDelayButtonGroup; public slots: void OnTimerStatus() { UpdateDisplay(); } diff --git a/src/settings.cpp b/src/settings.cpp index 21c8b05766..915f4395ba 100755 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -229,7 +229,7 @@ void CClientSettings::ReadFromXML ( const QDomDocument& IniXMLDocument ) // stored fader tags for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) { - pClient->vecStoredFaderTags[iIdx] = FromBase64ToString ( + vecStoredFaderTags[iIdx] = FromBase64ToString ( GetIniSetting ( IniXMLDocument, "client", QString ( "storedfadertag%1_base64" ).arg ( iIdx ), "" ) ); } @@ -241,7 +241,7 @@ void CClientSettings::ReadFromXML ( const QDomDocument& IniXMLDocument ) QString ( "storedfaderlevel%1" ).arg ( iIdx ), 0, AUD_MIX_FADER_MAX, iValue ) ) { - pClient->vecStoredFaderLevels[iIdx] = iValue; + vecStoredFaderLevels[iIdx] = iValue; } } @@ -252,7 +252,7 @@ void CClientSettings::ReadFromXML ( const QDomDocument& IniXMLDocument ) QString ( "storedpanvalue%1" ).arg ( iIdx ), 0, AUD_MIX_PAN_MAX, iValue ) ) { - pClient->vecStoredPanValues[iIdx] = iValue; + vecStoredPanValues[iIdx] = iValue; } } @@ -263,7 +263,7 @@ void CClientSettings::ReadFromXML ( const QDomDocument& IniXMLDocument ) QString ( "storedfaderissolo%1" ).arg ( iIdx ), bValue ) ) { - pClient->vecStoredFaderIsSolo[iIdx] = bValue; + vecStoredFaderIsSolo[iIdx] = bValue; } } @@ -274,7 +274,7 @@ void CClientSettings::ReadFromXML ( const QDomDocument& IniXMLDocument ) QString ( "storedfaderismute%1" ).arg ( iIdx ), bValue ) ) { - pClient->vecStoredFaderIsMute[iIdx] = bValue; + vecStoredFaderIsMute[iIdx] = bValue; } } @@ -286,7 +286,7 @@ void CClientSettings::ReadFromXML ( const QDomDocument& IniXMLDocument ) QString ( "storedgroupid%1" ).arg ( iIdx ), 0, MAX_NUM_FADER_GROUPS - 1, iValue ) ) { - pClient->vecStoredFaderGroupID[iIdx] = iValue; + vecStoredFaderGroupID[iIdx] = iValue; } } @@ -294,13 +294,13 @@ void CClientSettings::ReadFromXML ( const QDomDocument& IniXMLDocument ) if ( GetNumericIniSet ( IniXMLDocument, "client", "newclientlevel", 0, 100, iValue ) ) { - pClient->iNewClientFaderLevel = iValue; + iNewClientFaderLevel = iValue; } // connect dialog show all musicians if ( GetFlagIniSet ( IniXMLDocument, "client", "connectdlgshowallmusicians", bValue ) ) { - pClient->bConnectDlgShowAllMusicians = bValue; + bConnectDlgShowAllMusicians = bValue; } // name @@ -501,47 +501,47 @@ if ( GetFlagIniSet ( IniXMLDocument, "client", "defcentservaddr", bValue ) ) } // window position of the main window - pClient->vecWindowPosMain = FromBase64ToByteArray ( + vecWindowPosMain = FromBase64ToByteArray ( GetIniSetting ( IniXMLDocument, "client", "winposmain_base64" ) ); // window position of the settings window - pClient->vecWindowPosSettings = FromBase64ToByteArray ( + vecWindowPosSettings = FromBase64ToByteArray ( GetIniSetting ( IniXMLDocument, "client", "winposset_base64" ) ); // window position of the chat window - pClient->vecWindowPosChat = FromBase64ToByteArray ( + vecWindowPosChat = FromBase64ToByteArray ( GetIniSetting ( IniXMLDocument, "client", "winposchat_base64" ) ); // window position of the musician profile window - pClient->vecWindowPosProfile = FromBase64ToByteArray ( + vecWindowPosProfile = FromBase64ToByteArray ( GetIniSetting ( IniXMLDocument, "client", "winposprofile_base64" ) ); // window position of the connect window - pClient->vecWindowPosConnect = FromBase64ToByteArray ( + vecWindowPosConnect = FromBase64ToByteArray ( GetIniSetting ( IniXMLDocument, "client", "winposcon_base64" ) ); // visibility state of the settings window if ( GetFlagIniSet ( IniXMLDocument, "client", "winvisset", bValue ) ) { - pClient->bWindowWasShownSettings = bValue; + bWindowWasShownSettings = bValue; } // visibility state of the chat window if ( GetFlagIniSet ( IniXMLDocument, "client", "winvischat", bValue ) ) { - pClient->bWindowWasShownChat = bValue; + bWindowWasShownChat = bValue; } // visibility state of the musician profile window if ( GetFlagIniSet ( IniXMLDocument, "client", "winvisprofile", bValue ) ) { - pClient->bWindowWasShownProfile = bValue; + bWindowWasShownProfile = bValue; } // visibility state of the connect window if ( GetFlagIniSet ( IniXMLDocument, "client", "winviscon", bValue ) ) { - pClient->bWindowWasShownConnect = bValue; + bWindowWasShownConnect = bValue; } } @@ -562,7 +562,7 @@ void CClientSettings::WriteToXML ( QDomDocument& IniXMLDocument ) { PutIniSetting ( IniXMLDocument, "client", QString ( "storedfadertag%1_base64" ).arg ( iIdx ), - ToBase64 ( pClient->vecStoredFaderTags[iIdx] ) ); + ToBase64 ( vecStoredFaderTags[iIdx] ) ); } // stored fader levels @@ -570,7 +570,7 @@ void CClientSettings::WriteToXML ( QDomDocument& IniXMLDocument ) { SetNumericIniSet ( IniXMLDocument, "client", QString ( "storedfaderlevel%1" ).arg ( iIdx ), - pClient->vecStoredFaderLevels[iIdx] ); + vecStoredFaderLevels[iIdx] ); } // stored pan values @@ -578,7 +578,7 @@ void CClientSettings::WriteToXML ( QDomDocument& IniXMLDocument ) { SetNumericIniSet ( IniXMLDocument, "client", QString ( "storedpanvalue%1" ).arg ( iIdx ), - pClient->vecStoredPanValues[iIdx] ); + vecStoredPanValues[iIdx] ); } // stored fader solo states @@ -586,7 +586,7 @@ void CClientSettings::WriteToXML ( QDomDocument& IniXMLDocument ) { SetFlagIniSet ( IniXMLDocument, "client", QString ( "storedfaderissolo%1" ).arg ( iIdx ), - pClient->vecStoredFaderIsSolo[iIdx] != 0 ); + vecStoredFaderIsSolo[iIdx] != 0 ); } // stored fader muted states @@ -594,7 +594,7 @@ void CClientSettings::WriteToXML ( QDomDocument& IniXMLDocument ) { SetFlagIniSet ( IniXMLDocument, "client", QString ( "storedfaderismute%1" ).arg ( iIdx ), - pClient->vecStoredFaderIsMute[iIdx] != 0 ); + vecStoredFaderIsMute[iIdx] != 0 ); } // stored fader group ID @@ -602,16 +602,16 @@ void CClientSettings::WriteToXML ( QDomDocument& IniXMLDocument ) { SetNumericIniSet ( IniXMLDocument, "client", QString ( "storedgroupid%1" ).arg ( iIdx ), - pClient->vecStoredFaderGroupID[iIdx] ); + vecStoredFaderGroupID[iIdx] ); } // new client level SetNumericIniSet ( IniXMLDocument, "client", "newclientlevel", - pClient->iNewClientFaderLevel ); + iNewClientFaderLevel ); // connect dialog show all musicians SetFlagIniSet ( IniXMLDocument, "client", "connectdlgshowallmusicians", - pClient->bConnectDlgShowAllMusicians ); + bConnectDlgShowAllMusicians ); // name PutIniSetting ( IniXMLDocument, "client", "name_base64", @@ -711,39 +711,39 @@ void CClientSettings::WriteToXML ( QDomDocument& IniXMLDocument ) // window position of the main window PutIniSetting ( IniXMLDocument, "client", "winposmain_base64", - ToBase64 ( pClient->vecWindowPosMain ) ); + ToBase64 ( vecWindowPosMain ) ); // window position of the settings window PutIniSetting ( IniXMLDocument, "client", "winposset_base64", - ToBase64 ( pClient->vecWindowPosSettings ) ); + ToBase64 ( vecWindowPosSettings ) ); // window position of the chat window PutIniSetting ( IniXMLDocument, "client", "winposchat_base64", - ToBase64 ( pClient->vecWindowPosChat ) ); + ToBase64 ( vecWindowPosChat ) ); // window position of the musician profile window PutIniSetting ( IniXMLDocument, "client", "winposprofile_base64", - ToBase64 ( pClient->vecWindowPosProfile ) ); + ToBase64 ( vecWindowPosProfile ) ); // window position of the connect window PutIniSetting ( IniXMLDocument, "client", "winposcon_base64", - ToBase64 ( pClient->vecWindowPosConnect ) ); + ToBase64 ( vecWindowPosConnect ) ); // visibility state of the settings window SetFlagIniSet ( IniXMLDocument, "client", "winvisset", - pClient->bWindowWasShownSettings ); + bWindowWasShownSettings ); // visibility state of the chat window SetFlagIniSet ( IniXMLDocument, "client", "winvischat", - pClient->bWindowWasShownChat ); + bWindowWasShownChat ); // visibility state of the musician profile window SetFlagIniSet ( IniXMLDocument, "client", "winvisprofile", - pClient->bWindowWasShownProfile ); + bWindowWasShownProfile ); // visibility state of the connect window SetFlagIniSet ( IniXMLDocument, "client", "winviscon", - pClient->bWindowWasShownConnect ); + bWindowWasShownConnect ); } diff --git a/src/settings.h b/src/settings.h index dce526704a..00db6d0611 100755 --- a/src/settings.h +++ b/src/settings.h @@ -110,9 +110,47 @@ class CSettings class CClientSettings : public CSettings { public: - CClientSettings ( CClient* pNCliP, const QString& sNFiName ) : pClient ( pNCliP ) + CClientSettings ( CClient* pNCliP, const QString& sNFiName ) : + vecStoredFaderTags ( MAX_NUM_STORED_FADER_SETTINGS, "" ), + vecStoredFaderLevels ( MAX_NUM_STORED_FADER_SETTINGS, AUD_MIX_FADER_MAX ), + vecStoredPanValues ( MAX_NUM_STORED_FADER_SETTINGS, AUD_MIX_PAN_MAX / 2 ), + vecStoredFaderIsSolo ( MAX_NUM_STORED_FADER_SETTINGS, false ), + vecStoredFaderIsMute ( MAX_NUM_STORED_FADER_SETTINGS, false ), + vecStoredFaderGroupID ( MAX_NUM_STORED_FADER_SETTINGS, INVALID_INDEX ), + iNewClientFaderLevel ( 100 ), + bConnectDlgShowAllMusicians ( true ), + vecWindowPosMain ( ), // empty array + vecWindowPosSettings ( ), // empty array + vecWindowPosChat ( ), // empty array + vecWindowPosProfile ( ), // empty array + vecWindowPosConnect ( ), // empty array + bWindowWasShownSettings ( false ), + bWindowWasShownChat ( false ), + bWindowWasShownProfile ( false ), + bWindowWasShownConnect ( false ), + pClient ( pNCliP ) { SetFileName ( sNFiName, DEFAULT_INI_FILE_NAME ); } + CVector vecStoredFaderTags; + CVector vecStoredFaderLevels; + CVector vecStoredPanValues; + CVector vecStoredFaderIsSolo; + CVector vecStoredFaderIsMute; + CVector vecStoredFaderGroupID; + int iNewClientFaderLevel; + bool bConnectDlgShowAllMusicians; + + // window position/state settings + QByteArray vecWindowPosMain; + QByteArray vecWindowPosSettings; + QByteArray vecWindowPosChat; + QByteArray vecWindowPosProfile; + QByteArray vecWindowPosConnect; + bool bWindowWasShownSettings; + bool bWindowWasShownChat; + bool bWindowWasShownProfile; + bool bWindowWasShownConnect; + protected: virtual void ReadFromXML ( const QDomDocument& IniXMLDocument ) override; virtual void WriteToXML ( QDomDocument& IniXMLDocument ) override; From d479c0930705ae25206e24e80b72f91af9d9e769 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 4 Jul 2020 20:23:00 +0200 Subject: [PATCH 323/936] moved one more settings in the settings class --- src/client.cpp | 3 +-- src/client.h | 1 - src/clientdlg.cpp | 4 ++-- src/settings.cpp | 4 ++-- src/settings.h | 2 ++ 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/client.cpp b/src/client.cpp index 7330603e38..f6e3580e07 100755 --- a/src/client.cpp +++ b/src/client.cpp @@ -31,8 +31,7 @@ CClient::CClient ( const quint16 iPortNumber, const int iCtrlMIDIChannel, const bool bNoAutoJackConnect, const QString& strNClientName ) : - vstrIPAddress ( MAX_NUM_SERVER_ADDR_ITEMS, "" ), - ChannelInfo (), + ChannelInfo ( ), strClientName ( strNClientName ), Channel ( false ), /* we need a client channel -> "false" */ CurOpusEncoder ( nullptr ), diff --git a/src/client.h b/src/client.h index 52a73b723f..4ab5970d0e 100755 --- a/src/client.h +++ b/src/client.h @@ -278,7 +278,6 @@ class CClient : public QObject { Channel.GetBufErrorRates ( vecErrRates, dLimit, dMaxUpLimit ); } // settings - CVector vstrIPAddress; CChannelCoreInfo ChannelInfo; QString strClientName; diff --git a/src/clientdlg.cpp b/src/clientdlg.cpp index 820bb1fb9d..1895a7515b 100755 --- a/src/clientdlg.cpp +++ b/src/clientdlg.cpp @@ -697,7 +697,7 @@ void CClientDlg::OnConnectDlgAccepted() { // store new address at the top of the list, if the list was already // full, the last element is thrown out - pClient->vstrIPAddress.StringFiFoWithCompare ( strSelectedAddress ); + pSettings->vstrIPAddress.StringFiFoWithCompare ( strSelectedAddress ); } // get name to be set in audio mixer group box title @@ -881,7 +881,7 @@ void CClientDlg::SetMyWindowTitle ( const int iNumClients ) void CClientDlg::ShowConnectionSetupDialog() { // init the connect dialog - ConnectDlg.Init ( pClient->vstrIPAddress ); + ConnectDlg.Init ( pSettings->vstrIPAddress ); ConnectDlg.SetCentralServerAddress ( NetworkUtil::GetCentralServerAddress ( pClient->GetCentralServerAddressType(), pClient->GetServerListCentralServerAddress() ) ); diff --git a/src/settings.cpp b/src/settings.cpp index 915f4395ba..dece629b0f 100755 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -221,7 +221,7 @@ void CClientSettings::ReadFromXML ( const QDomDocument& IniXMLDocument ) // IP addresses for ( iIdx = 0; iIdx < MAX_NUM_SERVER_ADDR_ITEMS; iIdx++ ) { - pClient->vstrIPAddress[iIdx] = + vstrIPAddress[iIdx] = GetIniSetting ( IniXMLDocument, "client", QString ( "ipaddress%1" ).arg ( iIdx ), "" ); } @@ -554,7 +554,7 @@ void CClientSettings::WriteToXML ( QDomDocument& IniXMLDocument ) { PutIniSetting ( IniXMLDocument, "client", QString ( "ipaddress%1" ).arg ( iIdx ), - pClient->vstrIPAddress[iIdx] ); + vstrIPAddress[iIdx] ); } // stored fader tags diff --git a/src/settings.h b/src/settings.h index 00db6d0611..cfada8a8b1 100755 --- a/src/settings.h +++ b/src/settings.h @@ -117,6 +117,7 @@ class CClientSettings : public CSettings vecStoredFaderIsSolo ( MAX_NUM_STORED_FADER_SETTINGS, false ), vecStoredFaderIsMute ( MAX_NUM_STORED_FADER_SETTINGS, false ), vecStoredFaderGroupID ( MAX_NUM_STORED_FADER_SETTINGS, INVALID_INDEX ), + vstrIPAddress ( MAX_NUM_SERVER_ADDR_ITEMS, "" ), iNewClientFaderLevel ( 100 ), bConnectDlgShowAllMusicians ( true ), vecWindowPosMain ( ), // empty array @@ -137,6 +138,7 @@ class CClientSettings : public CSettings CVector vecStoredFaderIsSolo; CVector vecStoredFaderIsMute; CVector vecStoredFaderGroupID; + CVector vstrIPAddress; int iNewClientFaderLevel; bool bConnectDlgShowAllMusicians; From dc6cfe0b5af8e87cbd0c4356ae57c3eb435b3f31 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 4 Jul 2020 22:20:50 +0200 Subject: [PATCH 324/936] moved a server setting in the settings class --- src/server.cpp | 1 - src/server.h | 3 --- src/serverdlg.cpp | 29 +++++++++++++++++------------ src/settings.cpp | 4 ++-- src/settings.h | 7 ++++++- 5 files changed, 25 insertions(+), 19 deletions(-) diff --git a/src/server.cpp b/src/server.cpp index ed0a8a2ed2..56739a83fb 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -234,7 +234,6 @@ CServer::CServer ( const int iNewMaxNumChan, const bool bNDisconnectAllClientsOnQuit, const bool bNUseDoubleSystemFrameSize, const ELicenceType eNLicenceType ) : - vecWindowPosMain (), // empty array bUseDoubleSystemFrameSize ( bNUseDoubleSystemFrameSize ), iMaxNumChannels ( iNewMaxNumChan ), Socket ( this, iPortNumber ), diff --git a/src/server.h b/src/server.h index 1c1577cdfe..8def4f9fb7 100755 --- a/src/server.h +++ b/src/server.h @@ -264,9 +264,6 @@ class CServer : void SetLicenceType ( const ELicenceType NLiType ) { eLicenceType = NLiType; } ELicenceType GetLicenceType() { return eLicenceType; } - // window position/state settings - QByteArray vecWindowPosMain; - protected: // access functions for actual channels bool IsConnected ( const int iChanNum ) diff --git a/src/serverdlg.cpp b/src/serverdlg.cpp index 6ce0193de5..b9c241f34f 100755 --- a/src/serverdlg.cpp +++ b/src/serverdlg.cpp @@ -360,9 +360,9 @@ lvwClients->setMinimumHeight ( 140 ); // Window positions -------------------------------------------------------- // main window - if ( !pServer->vecWindowPosMain.isEmpty() && !pServer->vecWindowPosMain.isNull() ) + if ( !pSettings->vecWindowPosMain.isEmpty() && !pSettings->vecWindowPosMain.isNull() ) { - restoreGeometry ( pServer->vecWindowPosMain ); + restoreGeometry ( pSettings->vecWindowPosMain ); } @@ -443,7 +443,7 @@ lvwClients->setMinimumHeight ( 140 ); void CServerDlg::closeEvent ( QCloseEvent* Event ) { // store window positions - pServer->vecWindowPosMain = saveGeometry(); + pSettings->vecWindowPosMain = saveGeometry(); // default implementation of this event handler routine Event->accept(); @@ -557,8 +557,8 @@ void CServerDlg::OnCentServAddrTypeActivated ( int iTypeIdx ) void CServerDlg::OnServerStarted() { - UpdateSystemTrayIcon ( true ); - UpdateRecorderStatus ( QString::null ); + UpdateSystemTrayIcon ( true ); + UpdateRecorderStatus ( QString::null ); } void CServerDlg::OnServerStopped() @@ -575,11 +575,12 @@ void CServerDlg::OnStopRecorder() void CServerDlg::OnRecordingDirClicked() { // get the current value from pServer - QString currentValue = pServer->GetRecordingDir(); + QString currentValue = pServer->GetRecordingDir(); QString newRecordingDir = QFileDialog::getExistingDirectory ( this, tr ( "Select Main Recording Directory" ), currentValue, QFileDialog::ShowDirsOnly | QFileDialog::DontUseNativeDialog ); + if ( newRecordingDir != currentValue ) { pServer->SetRecordingDir ( newRecordingDir ); @@ -767,21 +768,23 @@ void CServerDlg::ModifyAutoStartEntry ( const bool bDoAutoStart ) void CServerDlg::UpdateRecorderStatus ( QString sessionDir ) { - QString currentSessionDir = edtCurrentSessionDir->text(); - QString errMsg = pServer->GetRecorderErrMsg(); - bool bIsRecording = false; - QString strRecorderStatus; - QString strRecordingDir; + QString currentSessionDir = edtCurrentSessionDir->text(); + QString errMsg = pServer->GetRecorderErrMsg(); + bool bIsRecording = false; + QString strRecorderStatus; + QString strRecordingDir; if ( pServer->GetRecorderInitialised() ) { strRecordingDir = pServer->GetRecordingDir(); chbEnableRecorder->setEnabled ( true ); + if ( pServer->GetRecordingEnabled() ) { if ( pServer->IsRunning() ) { edtCurrentSessionDir->setText ( sessionDir != QString::null ? sessionDir : "" ); + strRecorderStatus = tr ( SREC_RECORDING ); bIsRecording = true; } @@ -798,6 +801,7 @@ void CServerDlg::UpdateRecorderStatus ( QString sessionDir ) else { strRecordingDir = pServer->GetRecorderErrMsg(); + if ( strRecordingDir == QString::null ) { strRecordingDir = pServer->GetRecordingDir(); @@ -806,11 +810,12 @@ void CServerDlg::UpdateRecorderStatus ( QString sessionDir ) { strRecordingDir = tr ( "ERROR" ) + ": " + strRecordingDir; } + chbEnableRecorder->setEnabled ( false ); strRecorderStatus = tr ( SREC_NOT_INITIALISED ); } - edtRecordingDir->setText( strRecordingDir ); + edtRecordingDir->setText ( strRecordingDir ); edtCurrentSessionDir->setEnabled ( bIsRecording ); lblRecorderStatus->setText ( strRecorderStatus ); pbtNewRecording->setEnabled ( bIsRecording ); diff --git a/src/settings.cpp b/src/settings.cpp index dece629b0f..12082c54e9 100755 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -814,7 +814,7 @@ if ( GetFlagIniSet ( IniXMLDocument, "server", "defcentservaddr", bValue ) ) } // window position of the main window - pServer->vecWindowPosMain = FromBase64ToByteArray ( + vecWindowPosMain = FromBase64ToByteArray ( GetIniSetting ( IniXMLDocument, "server", "winposmain_base64" ) ); } @@ -854,5 +854,5 @@ void CServerSettings::WriteToXML ( QDomDocument& IniXMLDocument ) // window position of the main window PutIniSetting ( IniXMLDocument, "server", "winposmain_base64", - ToBase64 ( pServer->vecWindowPosMain ) ); + ToBase64 ( vecWindowPosMain ) ); } diff --git a/src/settings.h b/src/settings.h index cfada8a8b1..2fbcf53103 100755 --- a/src/settings.h +++ b/src/settings.h @@ -164,9 +164,14 @@ class CClientSettings : public CSettings class CServerSettings : public CSettings { public: - CServerSettings ( CServer* pNSerP, const QString& sNFiName ) : pServer ( pNSerP ) + CServerSettings ( CServer* pNSerP, const QString& sNFiName ) : + vecWindowPosMain ( ), // empty array + pServer ( pNSerP ) { SetFileName ( sNFiName, DEFAULT_INI_FILE_NAME_SERVER); } + // window position/state settings + QByteArray vecWindowPosMain; + protected: virtual void ReadFromXML ( const QDomDocument& IniXMLDocument ) override; virtual void WriteToXML ( QDomDocument& IniXMLDocument ) override; From 174740fa477bb79f145f6d8bc8355592d48b3366 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 4 Jul 2020 22:25:08 +0200 Subject: [PATCH 325/936] code style changes --- src/main.cpp | 6 +++--- src/settings.h | 5 ----- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index d739eff8b1..7490878418 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -725,9 +725,9 @@ int main ( int argc, char** argv ) } } - #if defined ( __APPLE__ ) || defined ( __MACOSX ) - activity.EndActivity(); - #endif +#if defined ( __APPLE__ ) || defined ( __MACOSX ) + activity.EndActivity(); +#endif return 0; } diff --git a/src/settings.h b/src/settings.h index 2fbcf53103..751a49226b 100755 --- a/src/settings.h +++ b/src/settings.h @@ -178,8 +178,3 @@ class CServerSettings : public CSettings CServer* pServer; }; - - - - - From 0466ff62100078ec832bc0c0e7b3bd7d4ac27d3a Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 5 Jul 2020 09:01:32 +0200 Subject: [PATCH 326/936] scale instrument picture to a small size if Compact skin is chosen --- src/audiomixerboard.cpp | 21 ++++++++++++++++++--- src/audiomixerboard.h | 1 + 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 0b2dc8ac85..529757a1b3 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -128,7 +128,8 @@ CChannelFader::CChannelFader ( QWidget* pNW ) pMainGrid->addWidget ( pLabelInstBox ); // reset current fader - strGroupBaseText = "Grp"; // this will most probably overwritten by SetGUIDesign() + strGroupBaseText = "Grp"; // this will most probably overwritten by SetGUIDesign() + iInstrPicFixedWidth = INVALID_INDEX; // this will most probably overwritten by SetGUIDesign() Reset(); // add help text to controls @@ -227,11 +228,12 @@ void CChannelFader::SetGUIDesign ( const EGUIDesign eNewDesign ) pcbSolo->setText ( tr ( "SOLO" ) ); strGroupBaseText = tr ( "GRP" ); plbrChannelLevel->SetLevelMeterType ( CLevelMeter::MT_LED ); + iInstrPicFixedWidth = INVALID_INDEX; // no instrument picture scaling break; case GD_SLIMFADER: pLabelPictGrid->addWidget ( plblLabel, 0, Qt::AlignHCenter ); // label below icons - pLabelInstBox->setMinimumHeight ( 84 ); // maximum height of the instrument+flag+label + pLabelInstBox->setMinimumHeight ( 94 ); // maximum height of the instrument+flag+label pFader->setMinimumHeight ( 85 ); pPan->setFixedSize ( 28, 28 ); pFader->setTickPosition ( QSlider::NoTicks ); @@ -241,6 +243,7 @@ void CChannelFader::SetGUIDesign ( const EGUIDesign eNewDesign ) pcbSolo->setText ( tr ( "S" ) ); strGroupBaseText = tr ( "G" ); plbrChannelLevel->SetLevelMeterType ( CLevelMeter::MT_SLIM_BAR ); + iInstrPicFixedWidth = 18; // scale instrument picture to avoid enlarging the width by the picture break; default: @@ -256,11 +259,15 @@ void CChannelFader::SetGUIDesign ( const EGUIDesign eNewDesign ) pcbSolo->setText ( tr ( "Solo" ) ); strGroupBaseText = tr ( "Grp" ); plbrChannelLevel->SetLevelMeterType ( CLevelMeter::MT_BAR ); + iInstrPicFixedWidth = INVALID_INDEX; // no instrument picture scaling break; } // we need to update since we changed the checkbox text UpdateGroupIDDependencies(); + + // the instrument picture might need scaling after a style change + SetChannelInfos ( cReceivedChanInfo ); } void CChannelFader::SetDisplayChannelLevel ( const bool eNDCL ) @@ -607,7 +614,15 @@ void CChannelFader::SetChannelInfos ( const CChannelInfo& cChanInfo ) else { // set correct picture - plblInstrument->setPixmap ( QPixmap ( strCurResourceRef ) ); + if ( iInstrPicFixedWidth != INVALID_INDEX ) + { + // scale instrument picture on request (scale to the width with correct aspect ratio) + plblInstrument->setPixmap ( QPixmap ( strCurResourceRef ).scaledToWidth ( iInstrPicFixedWidth, Qt::SmoothTransformation ) ); + } + else + { + plblInstrument->setPixmap ( QPixmap ( strCurResourceRef ) ); + } iTTInstrument = cChanInfo.iInstrument; // enable instrument picture diff --git a/src/audiomixerboard.h b/src/audiomixerboard.h index 1ec51e7c1e..95fd4d615b 100755 --- a/src/audiomixerboard.h +++ b/src/audiomixerboard.h @@ -119,6 +119,7 @@ class CChannelFader : public QObject double dPreviousFaderLevel; int iGroupID; QString strGroupBaseText; + int iInstrPicFixedWidth; public slots: void OnLevelValueChanged ( int value ) { SendFaderLevelToServer ( value, false ); } From 2289a1c9d5fc1cfafcfd0abb1fd03a58ad216781 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 5 Jul 2020 09:03:28 +0200 Subject: [PATCH 327/936] update --- ChangeLog | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ChangeLog b/ChangeLog index 46a7915731..2a016e09ce 100644 --- a/ChangeLog +++ b/ChangeLog @@ -15,6 +15,8 @@ - add special server list filter for filtering occupied servers by using "#" (#397) +- scale channel instrument picture in Compact skin mode + - bug fix: grouping faders in the client should be proportional (see discussion in #202, #419) From b8ba6ce8db49ccf9f864617482a278603edd703a Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 5 Jul 2020 11:19:45 +0200 Subject: [PATCH 328/936] update translation files --- src/res/translation/translation_de_DE.ts | 810 +++++++++------- src/res/translation/translation_es_ES.ts | 810 +++++++++------- src/res/translation/translation_fr_FR.ts | 810 +++++++++------- src/res/translation/translation_it_IT.ts | 810 +++++++++------- src/res/translation/translation_nl_NL.ts | 810 +++++++++------- src/res/translation/translation_pl_PL.ts | 1096 +++++++++++++--------- src/res/translation/translation_pt_BR.ts | 810 +++++++++------- src/res/translation/translation_pt_PT.ts | 810 +++++++++------- src/res/translation/translation_sv_SE.ts | 794 +++++++++------- 9 files changed, 4381 insertions(+), 3179 deletions(-) diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index 9ae5c53893..68d509f1de 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -67,47 +67,52 @@ 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 Holländisch - + Italian Italienisch - + German Deutsch - + + Polish + + + + About Über @@ -179,32 +184,32 @@ CAudioMixerBoard - + Personal Mix at the Server Eigener Mix am Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Wenn man mit einem Server verbunden ist, dann kann man hier den eigenen Mix verstellen ohne dass man etwas daran verändert, was die anderen von mir hören. Der Titel zeigt den Servernamen an und falls bekannt den Aufnahmestatus des Servers. - + Server - + T R Y I N G T O C O N N E C T V E R B I N D U N G S A U F B A U - + RECORDING ACTIVE AUFNAHME AKTIV - + Personal Mix at: Eigener Mix am Server: @@ -212,7 +217,7 @@ CChannelFader - + Channel Level Kanalpegel @@ -221,12 +226,12 @@ Zeigt den Audiopegel vor dem Lautstärkeregler des Kanals. Allen verbundenen Musikern am Server wird ein Audiopegel zugewiesen. - + Input level of the current audio channel at the server Eingangspegel des aktuellen Musikers am Server - + Mixer Fader Kanalregler @@ -235,17 +240,17 @@ Regelt die Lautstärke des Kanals. Für alle Musiker, die gerade am Server verbunden sind, wird ein Lautstärkeregler angezeigt. Damit kann man seinen eigenen lokalen Mix erstellen. - + Local mix level setting of the current audio channel at the server Lokale Mixerpegeleinstellung des aktuellen Kanals am Server - + Status Indicator Statusanzeige - + Shows a status indication about the client which is assigned to this channel. Supported indicators are: Zeigt den Status über den Musiker, der dem Kanal zugewiesen ist. Unterstützte Indikatoren sind: @@ -254,12 +259,12 @@ Durchgestrichener Lautsprecher: Zeigt an, dass der andere Musiker dich stummgeschaltet hat. - + Status indicator label Statusanzeige - + Panning Pan @@ -268,17 +273,17 @@ Legt die Pan-Position von Links nach Rechts fest. Der Pan funktioniert nur im Stereo oder Mono-In/Stereo-Out Modus. - + Local panning position of the current audio channel at the server Lokale Pan-Position von dem aktuellen Audiokanal am Server - + With the Mute checkbox, the audio channel can be muted. Mit dem Mute-Schalter kann man den Kanal stumm schalten. - + Mute button Mute Schalter @@ -287,12 +292,12 @@ Bei aktiviertem Solo Status hört man nur diesen Kanal. Alle anderen Kanäle sind stumm geschaltet. Es ist möglich mehrere Kanäle auf Solo zu stellen. Dann hört man nur die Kanäle, die auf Solo gestellt wurden. - + Solo button Solo Schalter - + Fader Tag Kanalbeschriftung @@ -301,166 +306,178 @@ Mit der Kanalbeschriftung wird der verbundene Teilnehmen identifiziert. Der Name, ein Bild des Instruments und eine Flagge des eigenen Landes kann im eigenen Profil ausgewählt werden. - - + Grp Grp - + Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. Zeigt den Audiopegel vor dem Lautstärkeregler des Kanals. Allen verbundenen Musikern am Server wird ein Audiopegel zugewiesen. - + + No grouping + + + + + + + + Assign to group + + + + Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. Regelt die Lautstärke des Kanals. Für alle Musiker, die gerade am Server verbunden sind, wird ein Lautstärkeregler angezeigt. Damit kann man seinen eigenen lokalen Mix erstellen. - + Speaker with cancellation stroke: Indicates that another client has muted you. Durchgestrichener Lautsprecher: Zeigt an, dass der andere Musiker dich stummgeschaltet hat. - + Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. Legt die Pan-Position von Links nach Rechts fest. Der Pan funktioniert nur im Stereo oder Mono-In/Stereo-Out Modus. - + With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. Bei aktiviertem Solo Status hört man nur diesen Kanal. Alle anderen Kanäle sind stumm geschaltet. Es ist möglich mehrere Kanäle auf Solo zu stellen. Dann hört man nur die Kanäle, die auf Solo gestellt wurden. - + Group Gruppe - + With the Grp checkbox, a group of audio channels can be defined. All channel faders in a group are moved in proportional synchronization if any one of the group faders are moved. Mit dem Grp-Knopf kann eine Gruppe von Kanälen definiert werden. Wenn man einen Lautstärkeregler einer Kanalgruppe verändert, dann werden alle anderen Regler der Gruppe gleichermaßen verändert. - + Group button Gruppenknopf - + The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. Mit der Kanalbeschriftung wird der verbundene Teilnehmen identifiziert. Der Name, ein Bild des Instruments und eine Flagge des eigenen Landes kann im eigenen Profil ausgewählt werden. - + Mixer channel instrument picture Mixerkanal Instrumentenbild - + Mixer channel label (fader tag) Mixerkanalbeschriftung - + Mixer channel country flag Mixerkanal Landesflagge - + PAN - + MUTE - + SOLO - + GRP GRP - + M - + S - + G G - + Alias/Name - + Instrument - + Location Standort - - - + + + Skill Level Spielstärke - + Beginner Anfänger - + Intermediate Mittlere Spielstärke - + Expert Experte - + Musician Profile Profil des Musikers - - + + Mute - - + + Pan - - + + Solo @@ -767,48 +784,48 @@ LED Statuslampe für den Netzwerkpuffer - - + + C&onnect &Verbinden - + &View &Ansicht - + &Connection Setup... &Verbinden... - + My &Profile... Mein &Profil... - + C&hat... C&hat... - + &Settings... &Einstellungen... - + &Analyzer Console... - + E&xit &Beenden - + &Edit B&earbeiten @@ -817,23 +834,23 @@ &Sortiere Kanäle nach Namen - + None Keine - + Center Mitte - + R - + L @@ -908,32 +925,37 @@ Die CPU des Computers ist voll ausgelastet. - + Sort Channel Users by &Name Sortiere Kanäle nach &Namen - + Sort Channel Users by &Instrument Sortiere Kanäle nach &Instrument - + + Sort Channel Users by &Group + + + + Central Server Zentralserver - + user Musiker - + users Musiker - + D&isconnect &Trennen @@ -941,72 +963,72 @@ CClientDlgBase - + Delay Verzögerung - + Buffers Puffer - + Input Eingang - + L - + R - + Settings Einstellungen - + Chat Chat - + Mute Myself Stummschalten - + C&onnect &Verbinden - + Pan - + Center Mitte - + Reverb Halleffekt - + Left Links - + Right Rechts @@ -1014,7 +1036,7 @@ CClientSettingsDlg - + Jitter Buffer Size Netzwerkpuffergröße @@ -1027,7 +1049,7 @@ Die Netzwerkpuffergröße kann manuell verstellt werden, jeweils getrennt für die Applikation und den Server. Für den lokalen Netzwerkpuffer werden die Aussetzer durch die LED-Anzeige unter den Reglern angezeigt. Wenn die Lampe rot anzeigt, dann hat ein Pufferüberlauf oder ein Leerlauf des Puffers stattgefunden und der Audiodatenstrom wurde kurz unterbrochen. - + The jitter buffer setting is therefore a trade-off between audio quality and overall delay. Die Netzwerkpuffergröße ist deshalb ein Kompromiss zwischen Audioqualität und Gesamtverzögerung. @@ -1040,132 +1062,132 @@ Wenn die Automatik zum Einstellen der Netzwerkpuffer aktiviert ist, dann werden die Netzwerkpuffer der Applikation und des entfernten Servers auf einen konservativen Wert eingestellt, um eine möglichst gute Audioqualität zu garantieren. Um die Gesamtverzögerung zu optimieren, bietet es sich an, die Automatik zu deaktivieren und die Netzwerkpuffer etwas kleiner einzustellen. Die Werte sollte man so weit reduzieren, bis die Audioqualität gerade noch der persönlichen Akzeptanz entspricht. Die LED-Anzeige hilft dabei die Audioaussetzer verursacht durch den lokalen Netzwerkpuffer zu visualisieren (wenn die LED rot leuchtet). - + Local jitter buffer slider control Lokale Netzwerkpuffergröße Schieberegler - + Server jitter buffer slider control Server Netzwerkpuffergröße Schieberegler - + Auto jitter buffer switch Automatik für die Netzwerkpuffergröße aktivieren - + Jitter buffer status LED indicator Netzwerkpuffer Status LED - + Sound Card Device Soundkartengerät - + The ASIO driver (sound card) can be selected using Der ASIO-Treiber (Soundkarte) kann ausgewählt werden mit der - + 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. Software unter Windows. Unter MacOS und Linux kann man die Soundkarte nicht auswählen. Wenn der selektierte ASIO-Treiber nicht gültig ist, dann wird eine Fehlermeldung angezeigt und der vorherige gültige Treiber wird wieder ausgewählt. - + If the driver is selected during an active connection, the connection is stopped, the driver is changed and the connection is started again automatically. Wenn der Treiber während eine aktiven Verbindung ausgewählt wird, dann wird die Verbindung gestoppt, der neue Treiber ausgewählt und anschließend wird die Verbindung automatisch wiederhergestellt. - + Sound card device selector combo box Soundkarten Auswahlbox - + If the ASIO4ALL driver is used, please note that this driver usually introduces approx. 10-30 ms of additional audio delay. Using a sound card with a native ASIO driver is therefore recommended. Falls der ASIO4All-Treiber verwendet wird, kann es sein, dass dieser Treiber zusätzliche 10-30 ms Verzögerung hinzufügt. Aus diesem Grund sollte man bevorzugt einen nativen ASIO-Treiber der Soundkarte verwenden, der mit dem Produkt mitgeliefert wurde. - + If you are using the kX ASIO driver, make sure to connect the ASIO inputs in the kX DSP settings panel. Falls der kx ASIO-Treiber verwendet wird, dann muss man darauf achten, dass die ASIO-Eingänge im kx DSP-Einstellungsfenster verbunden sind. - + Sound Card Channel Mapping Soundkarten Kanalzuweisung - + If the selected sound card device offers more than one input or output channel, the Input Channel Mapping and Output Channel Mapping settings are visible. Falls die ausgewählte Soundkarte mehr als zwei Eingangs- oder Ausgangskanäle unterstützt, dann werden die Steuerelemente für die Kanalzuweisung angezeigt. - + For each Für jeden - + input/output channel (Left and Right channel) a different actual sound card channel can be selected. Eingangs-/Ausgangskanal (linker und rechter Kanal) kann ein beliebiger Soundkartenkanal zugewiesen werden. - + Left input channel selection combo box Linker Eingang Kanalauswahlbox - + Right input channel selection combo box Rechter Eingang Kanalauswahlbox - + Left output channel selection combo box Linker Ausgang Kanalauswahlbox - + Right output channel selection combo box Rechter Ausgang Kanalauswahlbox - + Enable Small Network Buffers Aktiviere kleine Netzwerkpuffer - + If enabled, the support for very small network audio packets is activated. Very small network packets are only actually used if the sound card buffer delay is smaller than Falls aktiviert wird die Unterstützung für sehr kleine Netzwerk-Audiopakete aktiviert. Sehr kleine Netzwerkpakete werden nur dann verwendet, wenn der Soundkartenpuffer kleiner als - + samples. The smaller the network buffers, the lower the audio latency. But at the same time the network load increases and the probability of audio dropouts also increases. Samples ist. Je kleiner die Netzwerkpakete sind, desto kleiner ist auch die Audioverzögerung. Aber gleichzeitig wird dadurch die Netzwerklast erhöht und die Wahrscheinlichkeit für Audioaussetzer erhöht sich dadurch auch. - + Enable small network buffers check box Aktiviere kleine Netzwerkpuffer Schalter - + Sound Card Buffer Delay Soundkarten Puffergröße - + Fancy Schick - + Compact Kompakt @@ -1178,7 +1200,7 @@ Software. Diese Einstellung hat Einfluss auf viele andere Verbindungseigenschaften. - + Three buffer sizes are supported Drei Puffergrößen werden unterstützt @@ -1211,12 +1233,12 @@ Software funktioniert trotzdem aber es könnte eine größere Verzögerung resultieren. - + The actual buffer delay has influence on the connection status, the current upload rate and the overall delay. The lower the buffer size, the higher the probability of a red light in the status indicator (drop outs) and the higher the upload rate and the lower the overall delay. Die Puffergröße hat einen Einfluss auf den Verbindungsstatus, die aktuelle Upload-Rate und die Gesamtverzögerung. Je kleiner der Puffer, desto größer ist die Wahrscheinlichkeit für das Auftreten einer rot leuchtenden LED (was Audioaussetzer anzeigt), eine höheren Upload-Rate und eine niedrigere Gesamtverzögerung. - + The buffer setting is therefore a trade-off between audio quality and overall delay. Die Puffergröße ist somit ein Kompromiss zwischen Audioqualität und Gesamtverzögerung. @@ -1229,22 +1251,22 @@ Software verändern. Unter Windows kann man den ASIO-Einstellungen Knopf drücken, um die Treibereinstellungen zu öffnen. Unter Linux kann man ein Jack-Konfigurationswerkzeug verwenden, um die Puffergröße zu verändern. - + 64 samples setting radio button 64 Samples Einstellknopf - + 128 samples setting radio button 128 Samples Einstellknopf - + 256 samples setting radio button 256 Samples Einstellknopf - + ASIO setup push button ASIO-Einstellungen Knopf @@ -1261,22 +1283,22 @@ Schicke Oberfläche Schalter - + Display Channel Levels Zeige Kanalsignalpegel - + If enabled, each client channel will display a pre-fader level bar. Falls aktiviert wird eine Signalpegelanzeige neben jedem Kanalfader angezeigt, welcher den Pegel vor dem Fader anzeigt. - + Display channel levels check box Zeige Kanalpegel Schalter - + Audio Channels Audiokanäle @@ -1293,12 +1315,12 @@ Wenn der Stereo-Modus ausgewählt wurde, dann verschwindet die Kanalselektion für den Halleffekt im Hauptfenster, da der Effekt auf beide Stereokanäle angewendet wird. - + Audio channels combo box Audiokanal Auswahlbox - + Audio Quality Audioqualität @@ -1307,12 +1329,12 @@ Wählt die gewünschte Audioqualität aus. Es wird eine niedrige, mittlere und hohe Audioqualität angeboten. Je höher die Audioqualität, desto höher ist die Netzwerkübertragungsrate. Man muss sicherstellen, dass die Internetverbindung die höhere Rate übertragen kann. - + Audio quality combo box Audioqualität Auswahlbox - + New Client Level Pegel für neuen Teilnehmer @@ -1321,12 +1343,12 @@ Der Pegel für neue Teilnehmer definiert die Fadereinstellung, wenn sich ein Teilnehmer neu mit dem Server verbindet. D.h. wenn ein neuer Fader erscheint, dann wird er auf den voreingestellten Pegel gesetzt. Eine Ausnahme bildet der Fall, dass der Teilnehmer vorher schon mal mit dem Server verbunden war und der Pegel gespeichert war. - + New client level edit box Neuer Teilnehmer Pegel Einstellbox - + Custom Central Server Address Benutzerdefinierte Zentralserveradresse @@ -1347,12 +1369,12 @@ Voreingestellter Zentralservertyp Auswahlbox - + Central server address line edit Zentralserveradresse Eingabefeld - + Current Connection Status Parameter Verbindungsstatus Parameter @@ -1369,140 +1391,140 @@ Die Upload-Rate hängt von der Soundkartenpuffergröße und die Audiokomprimierung ab. Man muss sicher stellen, dass die Upload-Rate immer kleiner ist als die Rate, die die Internetverbindung zur Verfügung stellt (man kann die Upload-Rate des Internetproviders z.B. mit speedtest.net überprüfen). - + If this LED indicator turns red, you will not have much fun using the Wenn diese LED rot leuchtet, dann wirst du keinen Spaß haben mit der - + software. Software. - + ASIO Setup ASIO-Einstellung - - + + Mono - + mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. Modus ist die Übertragungsrate etwas höher. Man muss sicher stellen, dass die Internetverbindung die höhere Rate übertragen kann. - + Mono-in/Stereo-out Mono-In/Stereo-Out - - - + + + Stereo - + The jitter buffer compensates for network and sound card timing jitters. The size of the buffer therefore influences the quality of the audio stream (how many dropouts occur) and the overall delay (the longer the buffer, the higher the delay). Der Netzwerkpuffer kompensiert die Netzwerk- und Soundkarten-Timing-Schwankungen. Die Größe des Netzwerkpuffers hat Auswirkungen auf die Qualität des Audiosignals (wie viele Aussetzer auftreten) und die Gesamtverzögerung (je länger der Puffer, desto größer ist die Verzögerung). - + You can set the jitter buffer size manually for the local client and the remote server. For the local jitter buffer, dropouts in the audio stream are indicated by the light below the jitter buffer size faders. If the light turns to red, a buffer overrun/underrun has taken place and the audio stream is interrupted. Die Netzwerkpuffergröße kann manuell verstellt werden, jeweils getrennt für die Applikation und den Server. Für den lokalen Netzwerkpuffer werden die Aussetzer durch die LED-Anzeige unter den Reglern angezeigt. Wenn die Lampe rot anzeigt, dann hat ein Pufferüberlauf oder ein Leerlauf des Puffers stattgefunden und der Audiodatenstrom wurde kurz unterbrochen. - + If the Auto setting is enabled, the jitter buffers of the local client and the remote server are set automatically based on measurements of the network and sound card timing jitter. If Auto is enabled, the jitter buffer size faders are disabled (they cannot be moved with the mouse). Die Netzwerkpuffergröße kann automatisch eingestellt werden. Wenn die Automatik aktiviert ist, dann werden die Netzwerkpuffer der Applikation und des Servers getrennt basierend auf Messungen der Netzwerkschwankungen eingestellt. Wenn die Automatik aktiviert ist, dann sind die beiden Regler gesperrt für die manuelle Verstellung (sie können nicht mit der Maus verändert werden). - + If the Auto setting 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 and to lower the jitter buffer size manually by using the sliders until your personal acceptable amount of dropouts is reached. The LED indicator will display the audio dropouts of the local jitter buffer with a red light. Wenn die Automatik zum Einstellen der Netzwerkpuffer aktiviert ist, dann werden die Netzwerkpuffer der Applikation und des entfernten Servers auf einen konservativen Wert eingestellt, um eine möglichst gute Audioqualität zu garantieren. Um die Gesamtverzögerung zu optimieren, bietet es sich an, die Automatik zu deaktivieren und die Netzwerkpuffer etwas kleiner einzustellen. Die Werte sollte man so weit reduzieren, bis die Audioqualität gerade noch der persönlichen Akzeptanz entspricht. Die LED-Anzeige hilft dabei die Audioaussetzer verursacht durch den lokalen Netzwerkpuffer zu visualisieren (wenn die LED rot leuchtet). - + The buffer delay setting is a fundamental setting of this software. This setting has an influence on many connection properties. Die Soundkartenpuffergröße ist eine fundamentale Einstellung der Software. Diese Einstellung hat Einfluss auf viele andere Verbindungseigenschaften. - + 64 samples: The preferred setting. Provides the lowest latency but does not work with all sound cards. 64 Samples: Dies ist die bevorzugte Einstellung weil es die geringste Verzögerung hat. Diese Puffergröße funktioniert allerdings nicht mit allen Soundkarten. - + 128 samples: Should work for most available sound cards. 128 Samples: Diese Puffergröße sollte mit den meisten Soundkarten funktionieren. - + 256 samples: Should only be used on very slow computers or with a slow internet connection. 256 Samples: Diese Einstellung sollte nur dann verwendet werden, wenn man einen langsamen Computer oder eine langsame Internetverbindung hat. - + Some sound card drivers do not allow the buffer delay to be changed from within the application. In this case the buffer delay setting is disabled and has to be changed using the sound card driver. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. Manche Soundkartentreiber unterstützen nicht das Verändern der Puffergröße innerhalb der Software. In diesem Fall ist die Einstellungsmöglichkeit für die Puffergröße deaktiviert. Die Puffergröße muss man stattdessen direkt im Soundkartentreiber durchführen. Unter Windows kann man den ASIO-Einstellungen Knopf drücken um die Treibereinstellungen zu öffnen. Unter Linux benutzt man das Jack-Konfigurationsprogramm um die Puffergröße einzustellen. - + If no buffer size is selected and all settings are disabled, an unsupported buffer size is used by the driver. The application will still work with this setting but with restricted performance. Falls keiner der vorgegebenen Puffergrößen ausgeählt ist und alle Einstellungen deaktiviert sind, dann wird eine nicht unterstützte Puffergröße im Soundkartentreiber verwendet. Die Software funktioniert trotzdem aber es könnte eine größere Verzögerung resultieren. - + If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. Falls keiner der vorgegebenen Puffergrößen ausgeählt ist und alle Einstellungen deaktiviert sind, dann wird eine nicht unterstützte Puffergröße im Soundkartentreiber verwendet. Unter Windows kann man den ASIO-Einstellungen Knopf drücken, um die Treibereinstellungen zu öffnen. Unter Linux kann man ein Jack-Konfigurationswerkzeug verwenden, um die Puffergröße zu verändern. - + Skin Oberfläche - + Select the skin to be used for the main window. Wählt die Oberfläche aus, die für das Hauptfenster verwendet werden soll. - + Skin combo box Oberfläche Combo-Box - + Selects the number of audio channels to be used for communication between client and server. There are three modes available: Hiermit kann man die Anzahl an Audiokanälen auswählen. Es gibt drei Modi: - + and und - + These modes use one and two audio channels respectively. Diese Modi verwenden jeweils einen oder zwei Audiokanäle. - + Mono in/Stereo-out - + The audio signal sent to the server is mono but the return signal is stereo. This is useful if the sound card has the instrument on one input channel and the microphone on the other. In that case the two input signals can be mixed to one mono channel but the server mix is heard in stereo. Ein Monosignal wird zum Server geschickt aber es kommt ein Stereo-Signal zurück vom Server. Dies ist nützlich für den Fall, dass man an die Soundkarte ein Instrument an den einen Eingangskanal und ein Mikrofon an den anderen Eingangskanal angeschlossen hat. In diesem Fall können die beiden Signale zusammen gemischt werden und an den Server geschickt werden aber man kann das Stereo-Signal von den anderen Musikern hören. - + Enabling Im @@ -1511,53 +1533,53 @@ Modus ist die Übertragungsrate etwas höher. Man muss sicher stellen, dass die Internetverbindung die höhere Rate übertragen kann. - + In stereo streaming mode, no audio channel selection for the reverb effect will be available on the main window since the effect is applied to both channels in this case. Wenn der Stereo-Modus ausgewählt wurde, dann verschwindet die Kanalselektion für den Halleffekt im Hauptfenster, da der Effekt auf beide Stereokanäle angewendet wird. - + The higher the audio quality, the higher your audio stream's data rate. Make sure your upload rate does not exceed the available bandwidth of your internet connection. Je höher die Audioqualität, desto höher ist die Netzwerkübertragungsrate. Man muss sicherstellen, dass die Internetverbindung die höhere Rate übertragen kann. - + This setting defines the fader level of a newly connected client in percent. If a new client connects to the current server, they will get the specified initial fader level if no other fader level from a previous connection of that client was already stored. Der Pegel für neue Teilnehmer definiert die Fadereinstellung, wenn sich ein Teilnehmer neu mit dem Server verbindet. D.h. wenn ein neuer Fader erscheint, dann wird er auf den voreingestellten Pegel gesetzt. Eine Ausnahme bildet der Fall, dass der Teilnehmer vorher schon mal mit dem Server verbunden war und der Pegel gespeichert war. - + Leave this blank unless you need to enter the address of a central server other than the default. Die Zentralserveradresse ist die IP-Adresse oder URL des Zentralservers, der die Serverliste organisiert und bereitstellt. Diese Adresse wird nur benutzt, wenn die benutzerdefinierte Serverliste im Verbindungsdialog ausgewählt wird. - + The Ping Time is the time required for the audio stream to travel from the client to the server and back again. This delay is introduced by the network and should be about 20-30 ms. If this delay is higher than about 50 ms, your distance to the server is too large or your internet connection is not sufficient. Die Ping-Zeit ist die Zeit, die der Audiodatenstrom benötigt, um von der Applikation zum Server und zurück zu kommen. Diese Verzögerung wird vom Netzwerk hervorgerufen. Diese Verzögerung sollte so um die 20-30 ms sein. Falls die Verzögerung größer ist (z.B. 50-60 ms), der Abstand zum Server ist zu groß oder die Internetverbindung ist nicht ausreichend. - + Overall Delay is calculated from the current Ping Time and the delay introduced by the current buffer settings. Die Gesamtverzögerung setzt sich zusammen aus der Ping-Zeit und die Verzögerung, die durch die Puffergrößen verursacht wird. - + Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net). Die Upload-Rate hängt von der Soundkartenpuffergröße und die Audiokomprimierung ab. Man muss sicher stellen, dass die Upload-Rate immer kleiner ist als die Rate, die die Internetverbindung zur Verfügung stellt (man kann die Upload-Rate des Internetproviders z.B. mit speedtest.net überprüfen). - + Low Niedrig - - + + Normal Normal - + High Hoch @@ -1566,22 +1588,22 @@ Manuell - + Custom Benutzerdefiniert - + All Genres Alle Genres - + Genre Rock Genre Rock - + Genre Jazz Genre Jazz @@ -1590,12 +1612,12 @@ Genre Rock/Jazz - + Genre Classical/Folk/Choir Genre Klassik/Volksmusik/Chor - + Default Standard @@ -1604,23 +1626,23 @@ Standard (Nordamerika) - + preferred bevorzugt - - + + Size: Größe: - + Buffer Delay Puffergröße - + Buffer Delay: Puffergröße: @@ -1629,17 +1651,17 @@ Vordefinierte Adresse - + The selected audio device could not be used because of the following error: Das ausgewählte Audiogerät kann aus folgendem Grund nicht verwendet werden: - + The previous driver will be selected. Der vorherige Treiber wird wieder ausgewählt. - + Ok @@ -1979,28 +2001,28 @@ CHelpMenu - + &Help &Hilfe - - + + Getting &Started... &Erste Schritte... - + Software &Manual... Software&handbuch... - + What's &This Konte&xthilfe - + &About... Ü&ber... @@ -2008,102 +2030,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 Sie stimmen zu, dass alle Daten, Klänge oder andere Arbeiten, die zum Server gesendet werden, Ihnen gehören oder von Ihnen selbst oder einem Lizenzgeber erstellt wurden und dass Sie diese Daten, Klänge oder andere Arbeiten unter die folgende Creative Commons Lizenz stellen (Für weitere Informationen über die Lizenz, siehe - + You are free to: Sie dürfen: - + Share Teilen - + copy and redistribute the material in any medium or format das Material in jedwedem Format oder Medium vervielfältigen und weiterverbreiten - + Adapt Bearbeiten - + remix, transform, and build upon the material das Material remixen, verändern und darauf aufbauen - + The licensor cannot revoke these freedoms as long as you follow the license terms. Der Lizenzgeber kann diese Freiheiten nicht widerrufen solange Sie sich an die Lizenzbedingungen halten. - + Under the following terms: Unter folgenden Bedingungen: - + Attribution Namensnennung - + 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. Sie müssen angemessene Urheber- und Rechteangaben machen, einen Link zur Lizenz beifügen und angeben, ob Änderungen vorgenommen wurden. Diese Angaben dürfen in jeder angemessenen Art und Weise gemacht werden, allerdings nicht so, dass der Eindruck entsteht, der Lizenzgeber unterstütze gerade Sie oder Ihre Nutzung besonders. - + NonCommercial Nicht kommerziell - + You may not use the material for commercial purposes. Sie dürfen das Material nicht für kommerzielle Zwecke nutzen. - + ShareAlike Weitergabe unter gleichen Bedingungen - + If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. Wenn Sie das Material remixen, verändern oder anderweitig direkt darauf aufbauen, dürfen Sie Ihre Beiträge nur unter derselben Lizenz wie das Original verbreiten. - + No additional restrictions Keine weiteren Einschränkungen - + You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. Sie dürfen keine zusätzlichen Klauseln oder technische Verfahren einsetzen, die anderen rechtlich irgendetwas untersagen, was die Lizenz erlaubt. @@ -2115,85 +2137,85 @@ 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 @@ -2206,7 +2228,7 @@ Was man hier sieht wird auch am Fader im Mixer angezeigt, wenn du mit einem - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level 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. @@ -2215,222 +2237,222 @@ Was man hier sieht wird auch am Fader im Mixer angezeigt, wenn du mit einem Server verbunden bist. Dieses Schild wird auch bei allen anderen Musikern, die mit dem gleichen Server verbunden sind, angezeigt. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Was man hier sieht wird auch am Fader im Mixer angezeigt, wenn du mit einem Server verbunden bist. Dieses Schild wird auch bei allen anderen Musikern, die mit dem gleichen Server verbunden sind, angezeigt. - + 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 - + Vocal Bass Gesang Bass - + Vocal Tenor Gesang Tenor - + Vocal Alto Gesang Alt - + Vocal Soprano Gesang Sopran - + Banjo Banjo - + Mandolin Mandoline - + Ukulele - + Bass Ukulele - + No Name Kein Name @@ -2609,111 +2631,203 @@ + Display dialog to select recording directory button + + + + + + Main Recording Directory + + + + + Click the button to open the dialog that allows the main recording directory to be selected.The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). + + + + + Main recording directory text box (read-only) + + + + + The current value of the main recording directory. The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). Click the button to open the dialog that allows the main recording directory to be selected. + + + + + Clear the recording directory button + + + + + Clear Recording Directory + + + + + Click the button to clear the currently selected recording directory. This will prevent recording until a new value is selected. + + + + Checkbox to turn on or off server recording Schalter zum aktivieren oder deaktivieren der Aufnahmefunktion - + Enable Recorder Aktiviere die Aufnahmefunktion - + Checked when the recorder is enabled, otherwise unchecked. The recorder will run when a session is in progress, if (set up correctly and) enabled. Angehakt, wenn die Aufnahmefunktion aktiviert ist. Die Aufnahme wird automatisch gestartet, wenn eine Jam-Session läuft. - + Current session directory text box (read-only) Aktuelle Session Checkbox - + Current Session Directory Verzeichnisname für das Speichern der Aufnahmen - + Enabled during recording and holds the current recording session directory. Disabled after recording or when the recorder is not enabled. Wenn die Aufnahmefunktion aktiviert ist, dann kann das Verzeichnis ausgewählt werden, in dem die Aufnahmen gespeichert werden. - + Recorder status label Recorder Statusanzeige - + Recorder Status Aufnahmestatus - + + Displays the current status of the recorder. The following values are possible: + + + + + No recording directory has been set or the value is not useable + + + + + Recording has been switched off + + + + + by the UI checkbox + + + + + , either by the UI checkbox or SIGUSR2 being received + + + + + There is no one connected to the server to record + + + + + The performers are being recorded to the specified session directory + + + + + NOTE + + + + + If the recording directory is not useable, the problem will be displayed in place of the directory. + + + + + ERROR + + + Displays the current status of the recorder. - Zeigt den Aufnahmestatus an. + Zeigt den Aufnahmestatus an. - + Request new recording button Anfordern einer neuen Aufnahme - + New Recording Neue Aufnahme - + During a recording session, the button can be used to start a new recording. Mit diesem Knopf kann man die Aufnahme neu starten (d.h. es wird eine neue Aufnahmedatei angelegt). - - + + E&xit &Beenden - + &Hide &Ausblenden vom - - - + + + server Server - + &Open Ö&ffne den - + server Server - + + Select Main Recording Directory + + + + Predefined Address Vordefinierte Adresse - Recording - Aufnahme + Aufnahme - Not recording - Keine Aufnahme + Keine Aufnahme - Not enabled - Nicht aktiviert + Nicht aktiviert Manual @@ -2728,62 +2842,62 @@ Standard (Nordamerika) - + Server - + &Window &Fenster - + Unregistered Nicht registriert - + Bad address Ungültige Adresse - + Registration requested Registrierung angefordert - + Registration failed Registrierung fehlgeschlagen - + Check server version Überprüfe Version des Servers - + Registered Registriert - + Central Server full Zentralserver voll - + Your server version is too old Deine Serverversion ist zu alt - + Requirements not fulfilled Anfoderungen nicht erfüllt - + Unknown value Unbekannter Wert @@ -2828,7 +2942,7 @@ - + STATUS @@ -2837,6 +2951,21 @@ Custom Central Server Address: Benutzerdefinierte Zentralserveradresse: + + + Recording Directory + + + + + Enable Jam Recorder + + + + + New Recording + Neue Aufnahme + Central Server Address: Zentralserveradresse @@ -2857,22 +2986,19 @@ Standort: Land - Enable jam recorder - Aktivere die Aufnahme + Aktivere die Aufnahme - New recording - Neue Aufnahme + Neue Aufnahme - Recordings folder - Verzeichnis für die Aufnahmen + Verzeichnis für die Aufnahmen - + TextLabelNameVersion @@ -3063,17 +3189,17 @@ QCoreApplication - + , Version , Version - + Internet Jam Session Software Internet Jam Session Software - + Released under the GNU General Public License (GPL) Unter der GNU General Public License (GPL) @@ -3081,7 +3207,7 @@ 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.ts b/src/res/translation/translation_es_ES.ts index 5c7d0f2d44..a009695a52 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -71,47 +71,52 @@ 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 - + Italian Italiano - + German Alemán - + + Polish + + + + About Acerca de @@ -191,32 +196,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mezcla personal en el Servidor - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Estando conectado a un servidor, estos controles te permiten hacer tu mezcla personal sin afectar lo que otros escuchan de tí. El título muestra el nombre del servidor y, cuando se conoce, si está activamente grabando. - + Server Servidor - + T R Y I N G T O C O N N E C T I N T E N T A N D O C O N E C T A R - + RECORDING ACTIVE GRABACIÓN ACTIVA - + Personal Mix at: Mezcla Personal en el Servidor: @@ -224,7 +229,7 @@ CChannelFader - + Channel Level Nivel Canal @@ -233,12 +238,12 @@ Muestra el nivel de audio pre-fader de este canal. Todos los clientes conectados al servidor tienen un nivel de audio asignado, el mismo para cada cliente. - + Input level of the current audio channel at the server Nivel de entrada del canal de audio actual en el servidor - + Mixer Fader Fader Mezclador @@ -247,17 +252,17 @@ Ajusta el nivel de audio de este canal. Todos los clientes conectados al servidor tienen asignado un fader en el cliente, ajustando la mezcla local. - + Local mix level setting of the current audio channel at the server Ajuste local de la mezcla del canal de audio actual en el servidor - + Status Indicator Indicador de Estado - + Shows a status indication about the client which is assigned to this channel. Supported indicators are: Muestra una indicación del estado del cliente asignado a este canal. Los indicadores soportados son: @@ -266,12 +271,12 @@ Altavoz tachado: Indica que el otro cliente te ha muteado. - + Status indicator label Etiqueta indicador estado - + Panning Paneo @@ -280,17 +285,17 @@ Fija el paneo de Izquierda a Derecha del canal. Solo funciona en estéreo o preferiblemente en modo Entrada mono/Salida estéreo. - + Local panning position of the current audio channel at the server Posición local del paneo del canal de audio actual en el servidor - + With the Mute checkbox, the audio channel can be muted. Activando Mute, se puede mutear el canal de audio. - + Mute button Botón Mute @@ -299,12 +304,12 @@ Activando Solo, todos los demás canales de audio excepto este se mutean. Es posible activar esta función para más de un canal. - + Solo button Botón Solo - + Fader Tag Etiqueta Fader @@ -313,166 +318,178 @@ La etiqueta del fader identifica al cliente conectado. El nombre de la etiqueta, la imagen de tu instrumento y la bandera de tu país se pueden establecer en la ventana principal. - - + Grp Grp - + Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. Muestra el nivel de audio pre-fader de este canal. Todos los clientes conectados al servidor tienen un nivel de audio asignado, el mismo valor para cada cliente. - + + No grouping + + + + + + + + Assign to group + + + + Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. Ajusta el nivel de audio de este canal. Todos los clientes conectados al servidor tendrán asignado un fader, mostrado en cada cliente, para ajustar la mezcla local. - + Speaker with cancellation stroke: Indicates that another client has muted you. Altavoz tachado: Indica que otro cliente te ha muteado. - + Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. Fija el paneo de Izquierda a Derecha del canal. Solo funciona en modo estéreo o preferiblemente en modo Entrada mono/Salida estéreo. - + With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. Activando Solo, todos los demás canales de audio excepto este se mutean. Es posible activar esta función para más de un canal. - + Group Grupo - + With the Grp checkbox, a group of audio channels can be defined. All channel faders in a group are moved in proportional synchronization if any one of the group faders are moved. Activando Grp se puede definir un grupo de canales. Todos los faders de un grupo se mueven en sincronización proporcional si se mueve cualquier fader del grupo. - + Group button Botón grupo - + The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. La etiqueta del fader identifica al cliente conectado. El nombre de la etiqueta, la imagen de tu instrumento y la bandera de tu país se pueden establecer en la ventana principal. - + Mixer channel instrument picture Imagen mezclador canal instrumento - + Mixer channel label (fader tag) Etiqueta mezclador canal (etiqueta fader) - + Mixer channel country flag Bandera país mezclador canal - + PAN PAN - + MUTE MUTE - + SOLO SOLO - + GRP GRP - + M M - + S S - + G G - + Alias/Name Alias/Nombre - + Instrument Instrumento - + Location Ubicación - - - + + + Skill Level Nivel Habilidad - + Beginner Principiante - + Intermediate Intermedio - + Expert Experto - + Musician Profile Perfil Músico - - + + Mute Mute - - + + Pan Paneo - - + + Solo Solo @@ -787,69 +804,74 @@ Indicador LED estado buffers - - + + C&onnect C&onectar - + &View &Ver - + &Connection Setup... &Configuración de Conexión... - + My &Profile... Mi &Perfil... - + C&hat... C&hat... - + &Settings... &Configuración... - + &Analyzer Console... &Analyzer Console... - + E&xit S&alir - + &Edit &Editar - + + Sort Channel Users by &Group + + + + None Ninguno - + Center Centro - + R R - + L L @@ -924,32 +946,32 @@ El procesador del cliente o del servidor está al 100%. - + Sort Channel Users by &Name Ordenar Canales por &Nombre - + Sort Channel Users by &Instrument Ordenar Canales por &Instrumento - + Central Server Servidor Central - + user usuario - + users usuarios - + D&isconnect D&esconectar @@ -957,72 +979,72 @@ CClientDlgBase - + Delay Retardo - + Buffers Buffers - + Input Entrada - + L L - + R R - + Settings Configuración - + Chat Chat - + Mute Myself Mutearme Yo - + C&onnect C&onectar - + Pan Paneo - + Center Centro - + Reverb Reverb - + Left Izq - + Right Dcho @@ -1030,7 +1052,7 @@ CClientSettingsDlg - + Jitter Buffer Size Tamaño Jitter Buffer @@ -1043,7 +1065,7 @@ El tamaño del jitter buffer se puede establecer para el cliente local y para el servidor remoto. Para el jitter buffer local, las caídas del flujo de audio se indican mediante la luz debajo de los faders del jitter buffer. Si la luz se vuelve roja, significa que ha habido una interrupción del flujo de audio. - + The jitter buffer setting is therefore a trade-off between audio quality and overall delay. Por tanto la configuración del jitter buffer es un compromiso entre calidad y retardo total. @@ -1056,132 +1078,132 @@ En caso de activar la configuración automática del jitter buffer, los buffers de red del cliente local y del servidor remoto se asignan a un valor conservador para minimizar la probabilidad de fallos de audio. Para ajustar el retardo de audio/latencia se recomienda desactivar la función automática y bajar los valores de jitter buffer manualmente utilizando los controles deslizantes hasta alcanzar un límite aceptable de caídas de audio. El indicador LED ofrece una visualización de las caídas de audio mediante una luz roja. - + Local jitter buffer slider control Control deslizante jitter buffer local - + Server jitter buffer slider control Control deslizante jitter buffer servidor - + Auto jitter buffer switch Interruptor auto jitter buffer - + Jitter buffer status LED indicator Indicador LED estado jitter buffer - + Sound Card Device Dispositivo de Audio - + The ASIO driver (sound card) can be selected using El driver ASIO (tarjeta de audio) se puede seleccionar utilizando - + 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. en el sistema operativo Windows. En MacOs/Linux no es posible seleccionar la tarjeta de audio. Si el driver ASIO no es válido se muestra un mensaje de error y se selecciona el driver válido anterior. - + 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 el driver se selecciona durante una conexión activa, la conexión se detiene, se cambia el driver y la conexión se reanuda automáticamente. - + Sound card device selector combo box Selector de dispositivo de audio - + If the ASIO4ALL driver is used, please note that this driver usually introduces approx. 10-30 ms of additional audio delay. Using a sound card with a native ASIO driver is therefore recommended. En caso de utilizar el driver ASIO4ALL, por favor ten en cuenta que este driver normalmente introduce una latencia adicional de 10-30 ms. Por tanto se recomienda utilizar la tarjeta de audio con un driver nativo. - + If you are using the kX ASIO driver, make sure to connect the ASIO inputs in the kX DSP settings panel. Si utilizas el driver kX ASIO, asegúrate de conectar las entradas ASIO en el panel de configuración de kX DSP. - + Sound Card Channel Mapping Mapeo Canales Tarjeta Audio - + If the selected sound card device offers more than one input or output channel, the Input Channel Mapping and Output Channel Mapping settings are visible. Si el dispositivo de audio ofrece más de un canal de entrada o salida, son visibles las configuraciones para el Mapeo de Canales de Entrada y de Salida. - + For each Para cada - + input/output channel (Left and Right channel) a different actual sound card channel can be selected. canal de entrada/salida (canal Izquierdo y Derecho) se puede seleccionar un canal diferente de la tarjeta de audio. - + Left input channel selection combo box Selección canal entrada izquierdo - + Right input channel selection combo box Selección canal entrada derecho - + Left output channel selection combo box Selección canal salida izquierdo - + Right output channel selection combo box Selección canal salida derecho - + Enable Small Network Buffers Activar Buffers Red Pequeños - + If enabled, the support for very small network audio packets is activated. Very small network packets are only actually used if the sound card buffer delay is smaller than Si se activa, se habilita el soporte para paquetes de red de audio muy pequeños. Solo se utilizan estos paquetes pequeños si el retardo de buffer de la tarjeta de audio es menor de - + samples. The smaller the network buffers, the lower the audio latency. But at the same time the network load increases and the probability of audio dropouts also increases. muestras. Cuanto menores los buffers de red, menor la latencia de audio. Pero al mismo tiempo, aumenta la carga de red y la probabilidad de caídas de audio también aumenta. - + Enable small network buffers check box Activar buffers de red pequeños - + Sound Card Buffer Delay Retardo Buffer Tarjeta Audio - + Fancy Oscuro - + Compact Compacto @@ -1194,7 +1216,7 @@ . Este parámetro tiene un impacto sobre muchas propiedades de la conexión. - + Three buffer sizes are supported Hay soporte para tres tamaños de buffer @@ -1227,12 +1249,12 @@ seguirá funcionando con esta configuración pero con un rendimiento limitado. - + The actual buffer delay has influence on the connection status, the current upload rate and the overall delay. The lower the buffer size, the higher the probability of a red light in the status indicator (drop outs) and the higher the upload rate and the lower the overall delay. El retardo del buffer tiene un impacto en el estado de la conexión, la tasa de subida y el retardo total. Cuanto menor sea el retardo del buffer, mayor la probabilidad de que el indicador de estado esté en rojo (caídas de audio), mayor la tasa de subida y menor el retardo total. - + The buffer setting is therefore a trade-off between audio quality and overall delay. Por tanto la configuración del buffer es un compromiso entre calidad de audio y retardo total. @@ -1245,22 +1267,22 @@ . En Windows, pulsa el botón de Configuración ASIO para abrir el panel de configuración del driver. En Linux, utiliza la herramienta de configuración de Jack para cambiar el tamaño del buffer. - + 64 samples setting radio button Configuración 64 muestras - + 128 samples setting radio button Configuración 128 muestras - + 256 samples setting radio button Configuración 256 muestras - + ASIO setup push button Botón configuración ASIO @@ -1277,22 +1299,22 @@ Activar interfaz oscura - + Display Channel Levels Mostrar Niveles Canales - + If enabled, each client channel will display a pre-fader level bar. Si se activa, cada canal de cliente mostrará una barra de nivel pre-fader. - + Display channel levels check box Mostrar niveles canales - + Audio Channels Canales Audio @@ -1309,12 +1331,12 @@ En el caso del modo estéreo, no estará disponible la selección de canal para el efecto de reverberación en la ventana principal puesto que en este caso el efecto se aplicará a ambos canales. - + Audio channels combo box Selección canales audio - + Audio Quality Calidad Audio @@ -1323,12 +1345,12 @@ Selecciona la calidad de audio deseada. Se puede seleccionar una calidad baja, normal o alta. Cuanto mayor la calidad del audio, mayor la tasa de transferencia de datos de audio. Asegúrate de que la tasa de subida no excede el ancho de banda disponible en tu conexión a internet. - + Audio quality combo box Selección calidad audio - + New Client Level Nivel Cliente Nuevo @@ -1337,12 +1359,12 @@ La configuración del nivel de clientes nuevos define el nivel del fader para una nueva conexión expresado en un porcentaje. Esto es, si un cliente nuevo se conecta al servidor actual, su fader tomará el valor especificado si no se ha guardado ningún valor de una conexión anterior de ese cliente. - + New client level edit box Campo para nivel nuevo cliente - + Custom Central Server Address Dirección Personalizada Servidor Central @@ -1363,12 +1385,12 @@ Selección servidor central - + Central server address line edit Dirección servidor central - + Current Connection Status Parameter Parámetro Estado Conexión Actual @@ -1385,140 +1407,140 @@ La tasa de subida depende del tamaño actual de paquetes de audio y la configuración de compresión de audio. Asegúrate de que la tasa de subida no es mayor que la tasa disponible (comprueba la tasa de subida de tu conexión a internet, por ej. con speedtest.net). - + If this LED indicator turns red, you will not have much fun using the Si este indicador LED se vuelve rojo, no te divertirás demasiado utilizando el software - + software. . - + ASIO Setup Configuración ASIO - - + + Mono Mono - + mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. aumentará la tasa de datos. Asegúrate de que tu tasa de subida no excede el valor de subida disponible con tu ancho de banda de Internet. - + Mono-in/Stereo-out Entrada mono/Salida estéreo - - - + + + Stereo Estéreo - + The jitter buffer compensates for network and sound card timing jitters. The size of the buffer therefore influences the quality of the audio stream (how many dropouts occur) and the overall delay (the longer the buffer, the higher the delay). El jitter buffer compensa el jitter de la red y la tarjeta de audio. El tamaño de este buffer tiene por tanto un impacto sobre la calidad del flujo de audio (el número de caídas de la señal) y el retardo total (a mayor buffer, mayor retardo). - + You can set the jitter buffer size manually for the local client and the remote server. For the local jitter buffer, dropouts in the audio stream are indicated by the light below the jitter buffer size faders. If the light turns to red, a buffer overrun/underrun has taken place and the audio stream is interrupted. El tamaño del jitter buffer se puede establecer manualmente para el cliente local y para el servidor remoto. Para el jitter buffer local, las caídas del flujo de audio se indican mediante la luz debajo de los faders del jitter buffer. Si la luz se vuelve roja, significa que ha habido una interrupción del flujo de audio. - + If the Auto setting is enabled, the jitter buffers of the local client and the remote server are set automatically based on measurements of the network and sound card timing jitter. If Auto is enabled, the jitter buffer size faders are disabled (they cannot be moved with the mouse). En caso de activar Auto, los jitter buffer del cliente local y del servidor remoto se ajustan automáticamente basándose en mediciones del jitter de la red y de la tarjeta de audio. Si se activa Auto, los faders del jitter buffer se deshabilitan (no pueden moverse con el ratón). - + If the Auto setting 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 and to lower the jitter buffer size manually by using the sliders until your personal acceptable amount of dropouts is reached. The LED indicator will display the audio dropouts of the local jitter buffer with a red light. En caso de activar Auto, los buffers de red del cliente local y del servidor remoto se asignan a un valor conservador para minimizar la probabilidad de fallos de audio. Para ajustar el retardo de audio/latencia se recomienda desactivar la función Auto y bajar los valores de jitter buffer manualmente utilizando los controles deslizantes hasta alcanzar un límite aceptable de caídas de audio. El indicador LED ofrece una visualización de las caídas de audio mediante una luz roja. - + The buffer delay setting is a fundamental setting of this software. This setting has an influence on many connection properties. El retardo de buffer es un parámetro fundamental de este software. Este parámetro tiene un impacto sobre muchas propiedades de la conexión. - + 64 samples: The preferred setting. Provides the lowest latency but does not work with all sound cards. 64 muestras: La configuración aconsejada. Ofrece la latencia más baja, aunque no funciona con todas las tarjetas de audio. - + 128 samples: Should work for most available sound cards. 128 muestras: Debería de funcionar con la mayoría de tarjetas de audio. - + 256 samples: Should only be used on very slow computers or with a slow internet connection. 256 muestras: Esta configuración solo debería usarse con un ordenador muy lento o con una conexión a internet muy lenta. - + Some sound card drivers do not allow the buffer delay to be changed from within the application. In this case the buffer delay setting is disabled and has to be changed using the sound card driver. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. Algunos drivers de tarjetas de audio no permiten cambiar el retardo de buffer desde dentro de la aplicación. En este caso la configuración del retardo de buffer se deshabilita y debe modificarse utilizando el driver de la tarjeta de audio. En Windows, pulsa el botón de Configuración ASIO para acceder al panel de configuración. En Linux, utiliza la herramienta de configuración de Jack para cambiar el tamaño del buffer. - + If no buffer size is selected and all settings are disabled, an unsupported buffer size is used by the driver. The application will still work with this setting but with restricted performance. Si no hay ningún tamaño de buffer seleccionado y todas las configuraciones están deshabilitadas, el driver está utilizando un tamaño de buffer no soportado. La aplicación arrancará pero con rendimiento limitado. - + If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. Si la configuración de retardo de buffers se encuentra deshabilitada, es porque el driver de audio prohíbe la modificación de este parámetro desde dentro del software. En Windows, pulsa el botón de Configuración ASIO para abrir el panel de configuración del driver. En Linux, utiliza la herramienta de configuración de Jack para cambiar el tamaño del buffer. - + Skin Skin - + Select the skin to be used for the main window. Elige el skin a utilizar para la ventana principal. - + Skin combo box Campo skin - + Selects the number of audio channels to be used for communication between client and server. There are three modes available: Selecciona el número de canales de audio a utilizar para la comunicación entre cliente y servidor. Hay tres modos disponibles: - + and y - + These modes use one and two audio channels respectively. Estos modos utilizan uno y dos canales de audio respectivamente. - + Mono in/Stereo-out Entrada Mono/Salida Estéreo - + The audio signal sent to the server is mono but the return signal is stereo. This is useful if the sound card has the instrument on one input channel and the microphone on the other. In that case the two input signals can be mixed to one mono channel but the server mix is heard in stereo. La señal de audio enviada al servidor es mono pero la señal de vuelta es estéreo. Esto es útil si la tarjeta de audio tiene el instrumento en una entrada y el micrófono en la otra. En este caso se pueden mezclar las dos señales de entrada a un canal mono pero la mezcla del servidor se escucha en estéreo. - + Enabling Habilitar el modo @@ -1527,53 +1549,53 @@ aumentará la tasa de datos. Asegúrate de que tu tasa de subida no excede el valor de subida disponible con tu ancho de banda de Internet. - + In stereo streaming mode, no audio channel selection for the reverb effect will be available on the main window since the effect is applied to both channels in this case. En modo estéreo, no habrá ninguna selección de canal para el efecto de reverb en la ventana principal porque el efecto se aplica a ambos canales en este caso. - + The higher the audio quality, the higher your audio stream's data rate. Make sure your upload rate does not exceed the available bandwidth of your internet connection. Cuanto mayor la calidad del audio, mayor la tasa de subida del audio. Asegúrate de que tu tasa de subida no excede el ancho de banda de tu conexión a Internet. - + This setting defines the fader level of a newly connected client in percent. If a new client connects to the current server, they will get the specified initial fader level if no other fader level from a previous connection of that client was already stored. Este ajuste define el nivel del fader de una nueva conexión de cliente, en porcentaje. Si se conecta un nuevo cliente al servidor actual, el nivel inicial de su fader tomará este valor si no se ha especificado anteriormente un valor para ese cliente de una conexión anterior. - + Leave this blank unless you need to enter the address of a central server other than the default. Deja esto en blanco a menos que necesites escribir la dirección de un servidor distinto a los que hay por defecto. - + The Ping Time is the time required for the audio stream to travel from the client to the server and back again. This delay is introduced by the network and should be about 20-30 ms. If this delay is higher than about 50 ms, your distance to the server is too large or your internet connection is not sufficient. El Ping es el tiempo que requiere el flujo de audio para viajar desde el cliente al servidor y volver. Este retardo lo determina la red y debería ser de unos 20-30 ms. Si este retardo es de unos 50 ms, la distancia al servidor es demasiado grande o tu conexión a internet no es óptima. - + Overall Delay is calculated from the current Ping Time and the delay introduced by the current buffer settings. El Retardo Total se calcula con el Ping actual y el retardo ocasionado por la configuración de buffers. - + Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net). La Tasa de Subida de Audio depende del tamaño actual de paquetes de audio y la configuración de compresión de audio. Asegúrate de que la tasa de subida no es mayor que la velocidad de subida disponible (comprueba la tasa de subida de tu conexión a internet, por ej. con speedtest.net). - + Low Baja - - + + Normal Normal - + High Alta @@ -1582,12 +1604,12 @@ Manual - + Custom Personalizado - + All Genres Todos los Géneros @@ -1596,22 +1618,22 @@ Género Rock/Jazz - + Genre Classical/Folk/Choir Género Clásica/Folk/Coro - + Genre Rock Género Rock - + Genre Jazz Género Jazz - + Default Por defecto @@ -1620,23 +1642,23 @@ Por defecto (Norteamérica) - + preferred aconsejado - - + + Size: Tamaño: - + Buffer Delay Retardo Buffer - + Buffer Delay: Retardo Buffer: @@ -1645,17 +1667,17 @@ Dirección Preestablecida - + The selected audio device could not be used because of the following error: El dispositivo de audio seleccionado no puede utilizarse a causa del siguiente error: - + The previous driver will be selected. Se utilizará el driver anterior. - + Ok Ok @@ -2003,28 +2025,28 @@ CHelpMenu - + &Help &Ayuda - - + + Getting &Started... Cómo &Empezar... - + Software &Manual... Manual del &Software... - + What's &This Qué es &Esto - + &About... &Acerca de... @@ -2032,102 +2054,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. @@ -2139,85 +2161,85 @@ 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 @@ -2230,7 +2252,7 @@ Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Escribe tu nombre o alias aquí para que otros 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. @@ -2239,222 +2261,222 @@ Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor. Esta etiqueta también se mostrará en cada cliente conectado al mismo servidor que tú. Si se deja el nombre vacío, se muestra la dirección IP en su lugar. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor Jamulus. Esta etiqueta también se mostrará en cada cliente conectado al mismo servidor que tú. - + 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 - + Vocal Bass Voz Bajo - + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Mandolina - + Ukulele Ukulele - + Bass Ukulele Ukulele Barítono - + No Name Sin Nombre @@ -2629,111 +2651,203 @@ + Display dialog to select recording directory button + + + + + + Main Recording Directory + + + + + Click the button to open the dialog that allows the main recording directory to be selected.The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). + + + + + Main recording directory text box (read-only) + + + + + The current value of the main recording directory. The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). Click the button to open the dialog that allows the main recording directory to be selected. + + + + + Clear the recording directory button + + + + + Clear Recording Directory + + + + + Click the button to clear the currently selected recording directory. This will prevent recording until a new value is selected. + + + + Checkbox to turn on or off server recording Campo para activar/desactivar la grabación desde el servidor - + Enable Recorder Habilitar Grabación - + Checked when the recorder is enabled, otherwise unchecked. The recorder will run when a session is in progress, if (set up correctly and) enabled. Activado cuando la grabación está habilitada. La grabación se ejecutará cuando una sesión esté en marcha, si está habilitada (y correctamente configurada). - + Current session directory text box (read-only) Campo para directorio sesión actual (solo lectura) - + Current Session Directory Directorio Sesión Actual - + Enabled during recording and holds the current recording session directory. Disabled after recording or when the recorder is not enabled. Habilitado durante la grabación y guarda el directorio actual de grabación, Deshabilitado tras la grabación o cuando la grabación no está habilitada. - + Recorder status label Etiqueta estado grabación - + Recorder Status Estado Grabación - + + Displays the current status of the recorder. The following values are possible: + + + + + No recording directory has been set or the value is not useable + + + + + Recording has been switched off + + + + + by the UI checkbox + + + + + , either by the UI checkbox or SIGUSR2 being received + + + + + There is no one connected to the server to record + + + + + The performers are being recorded to the specified session directory + + + + + NOTE + + + + + If the recording directory is not useable, the problem will be displayed in place of the directory. + + + + + ERROR + + + Displays the current status of the recorder. - Muestra el estado actual de la grabación. + Muestra el estado actual de la grabación. - + Request new recording button Botón Solicitar nueva grabación - + New Recording Nueva Grabación - + During a recording session, the button can be used to start a new recording. Durante una sesión de grabación, el botón puede utilizarse para comenzar una nueva grabación. - - + + E&xit S&alir - + &Hide &Ocultar servidor - - - + + + server - + &Open &Abrir servidor - + server - + + Select Main Recording Directory + + + + Predefined Address Dirección Preestablecida - Recording - Grabando + Grabando - Not recording - No grabando + No grabando - Not enabled - No habilitado + No habilitado Manual @@ -2748,62 +2862,62 @@ Por defecto (Norteamérica) - + Server : Servidor - + &Window &Ventana - + Unregistered Sin registrar - + Bad address Dirección no válida - + Registration requested Registro solicitado - + Registration failed Error de registro - + Check server version Comprueba la versión del servidor - + Registered Registrado - + Central Server full Servidor Central lleno - + Your server version is too old La versión de tu servidor es demasiado antigua - + Requirements not fulfilled No se cumplen los requisitos - + Unknown value Valor desconocido @@ -2848,7 +2962,7 @@ - + STATUS ESTADO @@ -2857,6 +2971,21 @@ Custom Central Server Address: Dirección Personalizada Servidor Central: + + + Recording Directory + + + + + Enable Jam Recorder + + + + + New Recording + Nueva Grabación + Central Server Address: Dirección Servidor Central: @@ -2877,22 +3006,19 @@ Ubicación: País - Enable jam recorder - Habilitar grabación Jam + Habilitar grabación Jam - New recording - Nueva grabación + Nueva grabación - Recordings folder - Carpeta grabaciones + Carpeta grabaciones - + TextLabelNameVersion TextLabelNameVersion @@ -3083,17 +3209,17 @@ QCoreApplication - + , Version , Versión - + Internet Jam Session Software Internet Jam Session Software - + Released under the GNU General Public License (GPL) Publicado bajo la GNU General Public License (GPL) @@ -3101,7 +3227,7 @@ global - + For more information use the What's This help (help menu, right mouse button or Shift+F1) Para más información utiliza ¿Qué es Esto? (menú de ayuda, botón derecho del ratón o Shift+F1) diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index 9cf7f3d982..f350b74988 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -71,47 +71,52 @@ 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 - + Italian Italien - + German Allemand - + + Polish + + + + About À propos @@ -199,32 +204,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mixage personnel au serveur - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Lorsque vous êtes connecté à un serveur, les contrôles vous permettent de régler votre mixage local sans affecter ce que les autres entendent de vous. Le titre indique le nom du serveur et, lorsqu'il est connu, s'il est en train d'enregistrer. - + Server Serveur - + T R Y I N G T O C O N N E C T T E N T A T I V E D E C O N N E X I O N - + RECORDING ACTIVE ENREGISTREMENT ACTIF - + Personal Mix at: Mixage personnel à : @@ -232,7 +237,7 @@ CChannelFader - + Channel Level Niveau de canal @@ -241,12 +246,12 @@ Affiche le niveau audio pré-fader de ce canal. Tous les clients connectés au serveur se verront attribuer un niveau audio, la même valeur pour chaque client. - + Input level of the current audio channel at the server Niveau d'entrée du canal audio actuel sur le serveur - + Mixer Fader Charriot du mixeur @@ -255,17 +260,17 @@ Règle le niveau audio de ce canal. Tous les clients connectés au serveur se verront attribuer un chariot audio à chaque client, ce qui permettra d'ajuster le mixage local. - + Local mix level setting of the current audio channel at the server Réglage du niveau de mixage local du canal audio actuel sur le serveur - + Status Indicator Indicateur d'état - + Shows a status indication about the client which is assigned to this channel. Supported indicators are: Affiche une indication sur l'état du client qui est affecté à ce canal. Les indicateurs pris en charge sont : @@ -274,12 +279,12 @@ Haut-parleur avec barre d'annulation : indique que l'autre client vous a mis en sourdine. - + Status indicator label Étiquette d'indicateur d'état - + Panning Panoramique @@ -288,17 +293,17 @@ Règle la position panoramique du canal de gauche à droite. Fonctionne uniquement en mode stéréo ou de préférence en mode entrée mono/sortie stéréo. - + Local panning position of the current audio channel at the server Position panoramique locale du canal audio actuel sur le serveur - + With the Mute checkbox, the audio channel can be muted. En cochant la case Muet, le canal audio peut être mis en sourdine. - + Mute button Bouton de sourdine @@ -307,12 +312,12 @@ En cochant la case Solo, le canal audio peut être réglé sur solo, ce qui signifie que tous les autres canaux, à l'exception du canal actuel, sont mis en sourdine. Il est possible de mettre plus d'un canal en solo. - + Solo button Bouton de solo - + Fader Tag Étiquette de chariot @@ -321,166 +326,178 @@ L'étiquette de chariot identifie le client connecté. Le nom du tag, la photo de votre instrument et un drapeau de votre pays peuvent être définis dans la fenêtre principale. - - + Grp Grp - + Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. Affiche le niveau audio pré-fader de ce canal. Tous les clients connectés au serveur se verront attribuer un niveau audio, la même valeur pour chaque client. - + + No grouping + + + + + + + + Assign to group + + + + Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. Ajuste le niveau audio de ce canal. Tous les clients connectés au serveur se verront attribuer un chariot audio, affiché sur chaque client, pour ajuster le mixage local. - + Speaker with cancellation stroke: Indicates that another client has muted you. Haut-parleur avec barré d'annulation : indique qu'un autre client vous a mis en sourdine. - + Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. Règle le panoramique de gauche à droite du canal. Fonctionne uniquement en mode stéréo ou de préférence en mode entrée mono/sortie stéréo. - + With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. Avec la case-à-cocher Solo, le canal audio peut être réglé sur solo, ce qui signifie que tous les autres canaux, sauf le canal en solo, sont coupés. Il est possible de mettre plus d'un canal en solo. - + Group Groupe - + With the Grp checkbox, a group of audio channels can be defined. All channel faders in a group are moved in proportional synchronization if any one of the group faders are moved. Avec la case à cocher Grp, un groupe de canaux audio peut être défini. Tous les chariots de canaux d'un groupe sont déplacés en synchronisation proportionnelle si l'un des chariots du groupe est déplacé. - + Group button Bouton de groupe - + The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. L'étiquette de chariot identifie le client connecté. Le nom de l'étiquette, une photo de votre instrument et le drapeau de votre pays peuvent être définis dans la fenêtre principale. - + Mixer channel instrument picture Image d'instrument de canal de mixeur - + Mixer channel label (fader tag) Label de canal de mixeur (étiquette de chariot) - + Mixer channel country flag Drapeau de pays de canal de mixeur - + PAN PAN - + MUTE MUET - + SOLO SOLO - + GRP GRP - + M M - + S S - + G G - + Alias/Name Pseudo/nom - + Instrument Instrument - + Location Localisation - - - + + + Skill Level Niveau de compétence - + Beginner Débutant - + Intermediate Intermédiaire - + Expert Expert - + Musician Profile Profil de musicien - - + + Mute Muet - - + + Pan Pan - - + + Solo Solo @@ -783,48 +800,48 @@ Indicateur LED d'état de tampon - - + + C&onnect Se c&onnecter - + &View &Vue - + &Connection Setup... Paramètres de &connexion... - + My &Profile... Mon &profil - + C&hat... Tc&hate... - + &Settings... Paramètre&s... - + &Analyzer Console... Console d'&analyse - + E&xit &Quitter - + &Edit Édit&er @@ -833,23 +850,23 @@ &Trier les utilisateurs du canal par nom - + None Aucun - + Center Centre - + R D - + L G @@ -924,32 +941,37 @@ Le processeur du client ou du serveur est à 100%. - + Sort Channel Users by &Name Trier les utilisateurs du canal par &nom - + Sort Channel Users by &Instrument Trier les utilisateurs du canal par &instrument - + + Sort Channel Users by &Group + + + + Central Server Serveur central - + user utilisateur - + users utilisateurs - + D&isconnect Dé&connecter @@ -957,72 +979,72 @@ CClientDlgBase - + Delay Délai - + Buffers Tampons - + Input Entrée - + L G - + R D - + Settings Paramètres - + Chat Tchate - + Mute Myself Me silencer - + C&onnect Se c&onnecter - + Pan Pan - + Center Centre - + Reverb Réverb - + Left Gauche - + Right Droite @@ -1030,7 +1052,7 @@ CClientSettingsDlg - + Jitter Buffer Size Taille du tampon de gigue @@ -1043,7 +1065,7 @@ La taille du tampon de gigue peut être choisie manuellement pour le client local et le serveur distant. Pour le tampon de gigue local, les désynchronisations dans le flux audio sont indiquées par le voyant situé en bas des chariots de taille du tampon de gigue. Si le voyant devient rouge, un dépassement de la taille de la mémoire tampon a eu lieu et le flux audio est interrompu. - + The jitter buffer setting is therefore a trade-off between audio quality and overall delay. Le réglage du tampon de gigue est donc un compromis entre la qualité audio et le délai global. @@ -1056,72 +1078,72 @@ 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. - + Local jitter buffer slider control Chariot de contrôle de la mémoire tampon de la gigue locale - + Server jitter buffer slider control Chariot de contrôle de la mémoire tampon de la gigue du serveur - + Auto jitter buffer switch Commutateur de tampon de gigue automatique - + Jitter buffer status LED indicator Indicateur LED de l'état du tampon de gigue - + 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. - + Sound card device selector combo box Choix déroulant de sélecteur de périphérique d'interface audio - + If the ASIO4ALL driver is used, please note that this driver usually introduces approx. 10-30 ms of additional audio delay. Using a sound card with a native ASIO driver is therefore recommended. Si le pilote ASIO4ALL est utilisé, veuillez noter que ce pilote introduit généralement environ 10 à 30 ms de latence audio supplémentaire. Il est donc recommandé d'utiliser une carte son avec un pilote ASIO natif. - + If you are using the kX ASIO driver, make sure to connect the ASIO inputs in the kX DSP settings panel. Si vous utilisez le pilote ASIO kX, assurez-vous de connecter les entrées ASIO dans le panneau de configuration DSP kX. - + Sound Card Channel Mapping Cartographie des canaux de la carte son - + If the selected sound card device offers more than one input or output channel, the Input Channel Mapping and Output Channel Mapping settings are visible. Si la carte son sélectionnée offre plus d'un canal d'entrée ou de sortie, les paramètres de mappage des canaux d'entrée et de sortie sont visibles. - + For each Pour chaque canal d'entrée/sortie (canal gauche et droite) de @@ -1130,47 +1152,47 @@ , un canal différent de la carte son réelle peut être sélectionné. - + Left input channel selection combo box Choix déroulant de sélection de canal d'entrée gauche - + Right input channel selection combo box Choix déroulant de sélection de canal d'entrée droite - + Left output channel selection combo box Choix déroulant de sélection de canal de sortie gauche - + Right output channel selection combo box Choix déroulant de sélection de canal de sortie droite - + Enable Small Network Buffers Activer les petits tampons de réseau - + If enabled, the support for very small network audio packets is activated. Very small network packets are only actually used if the sound card buffer delay is smaller than Si activée, la prise en charge des très petits paquets audio de réseau est activée. Les très petits paquets réseau ne sont réellement utilisés que si le délai de la mémoire tampon de la carte son est inférieur à - + samples. The smaller the network buffers, the lower the audio latency. But at the same time the network load increases and the probability of audio dropouts also increases. échantillons. Plus la mémoire tampon du réseau est petite, plus la latence audio est faible. Mais en même temps, la charge du réseau augmente et la probabilité de décrochage audio augmente également. - + Enable small network buffers check box Case-à-cocher pour activer les petits tampons de réseau - + Sound Card Buffer Delay Délai de temporisation de l'interface audio @@ -1183,7 +1205,7 @@ . Ce paramètre influence de nombreuses propriétés de connexion. - + Three buffer sizes are supported Trois tailles de tampon sont prises en charge @@ -1216,12 +1238,12 @@ continuera toujours de fonctionner avec ce réglage, mais avec des performances limitées. - + The actual buffer delay has influence on the connection status, the current upload rate and the overall delay. The lower the buffer size, the higher the probability of a red light in the status indicator (drop outs) and the higher the upload rate and the lower the overall delay. Le délai actuel de la mémoire tampon a une influence sur l'état de la connexion, le taux de téléchargement actuel et le délai global. Plus la taille de la mémoire tampon est faible, plus la probabilité d'un voyant rouge dans l'indicateur d'état (désynchronisations) est élevée, plus le taux de téléchargement est élevé et plus le délai global est faible. - + The buffer setting is therefore a trade-off between audio quality and overall delay. Le réglage de la mémoire tampon est donc un compromis entre la qualité audio et le délai global. @@ -1234,7 +1256,7 @@ . Sous Windows, appuyez sur le bouton ASIO Setup pour ouvrir le panneau des paramètres du pilote. Sous Linux, utilisez l'outil de configuration Jack pour modifier la taille de la mémoire tampon. - + input/output channel (Left and Right channel) a different actual sound card channel can be selected. un canal différent de la carte son réelle peut être sélectionné. @@ -1243,22 +1265,22 @@ . On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. - + 64 samples setting radio button Bouton radio de paramétrage à 64 échantillons - + 128 samples setting radio button Bouton radio de paramétrage à 128 échantillons - + 256 samples setting radio button Bouton radio de paramétrage à 256 échantillons - + ASIO setup push button Bouton-poussoir de paramétrage ASIO @@ -1275,22 +1297,22 @@ Case-à-cocher pour l'habillage fantaisie - + Display Channel Levels Afficher les niveaux des canaux - + If enabled, each client channel will display a pre-fader level bar. Si activée, chaque canal de client affichera une barre de niveau pré-fader. - + Display channel levels check box Case-à-cocher pour l'affichage des niveaux de canaux - + Audio Channels Canaux audio @@ -1307,12 +1329,12 @@ Dans le cas du mode de streaming stéréo, aucune sélection de canal audio pour l'effet de réverbération ne sera disponible dans la fenêtre principale puisque l'effet est appliqué sur les deux canaux dans ce cas. - + Audio channels combo box Choix déroulant de canaux audio - + Audio Quality Qualité audio @@ -1321,12 +1343,12 @@ Sélectionnez la qualité audio souhaitée. Une qualité audio faible, normale ou élevée peut être sélectionnée. Plus la qualité audio est élevée, plus le débit de données du flux audio est élevé. Assurez-vous que le débit montant actuel ne dépasse pas la bande passante disponible de votre connexion internet. - + Audio quality combo box Choix déroulant de qualité audio - + New Client Level Niveau de nouveau client @@ -1335,12 +1357,12 @@ Le paramètre de niveau de nouveau client définit le niveau de chariot d'un client nouvellement connecté en pourcentage. C'est-à-dire que si un nouveau client se connecte au serveur actuel, il aura le niveau de chariot initial spécifié si aucun autre niveau de chariot d'une connexion précédente de ce client n'était déjà stocké. - + New client level edit box Dialogue d'édition de niveau de nouveau client - + Custom Central Server Address Adresse personnalisée du serveur central @@ -1361,12 +1383,12 @@ Choix déroulant de type de serveur central par défaut - + Central server address line edit Ligne d'édition pour l'adresse du serveur central - + Current Connection Status Parameter Paramètre de l'état de la connexion actuelle @@ -1383,201 +1405,201 @@ Le débit montant dépend de la taille actuelle du paquet audio et du réglage de la compression audio. Assurez-vous que le débit montant n'est pas supérieur au débit disponible (vérifiez les capacités montant de votre connexion internet en utilisant, par exemple, speedtest.net). - + If this LED indicator turns red, you will not have much fun using the Si ce voyant devient rouge, vous n'aurez pas beaucoup de plaisir à utiliser le logiciel - + software. . - + ASIO Setup Paramètres ASIO - - + + Mono Mono - + mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. mode augmentera le débit de données de votre flux. Assurez-vous que votre débit montant ne dépasse pas la vitesse de téléchargement disponible de votre connexion internet. - + Mono-in/Stereo-out Mono-entrée/stéréo-sortie - - - + + + Stereo Stéréo - + The jitter buffer compensates for network and sound card timing jitters. The size of the buffer therefore influences the quality of the audio stream (how many dropouts occur) and the overall delay (the longer the buffer, the higher the delay). Le tampon de gigue compense les gigues de synchronisation du réseau et de la carte son. La taille de la mémoire tampon influence donc la qualité du flux audio (le nombre de désynchronisations) et le délai global (plus la mémoire tampon est longue, plus le délai est important). - + You can set the jitter buffer size manually for the local client and the remote server. For the local jitter buffer, dropouts in the audio stream are indicated by the light below the jitter buffer size faders. If the light turns to red, a buffer overrun/underrun has taken place and the audio stream is interrupted. Vous pouvez définir manuellement la taille du tampon de gigue pour le client local et le serveur distant. Pour la mémoire tampon de gigue locale, les désynchronisations dans le flux audio sont indiquées par le voyant situé sous les chariots de taille de la mémoire tampon de gigue. Si le voyant devient rouge, cela signifie qu'il y a eu un dépassement ou une sous-utilisation de la mémoire tampon et que le flux audio est interrompu. - + If the Auto setting is enabled, the jitter buffers of the local client and the remote server are set automatically based on measurements of the network and sound card timing jitter. If Auto is enabled, the jitter buffer size faders are disabled (they cannot be moved with the mouse). Si le paramètre Auto est activé, les tampons de gigue du client local et du serveur distant sont automatiquement réglés en fonction des mesures de la gigue de synchronisation du réseau et de la carte son. Si le paramètre Auto est activé, les chariots de la taille des tampons de gigue sont désactivés (ils ne peuvent pas être déplacés avec la souris). - + If the Auto setting 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 and to lower the jitter buffer size manually by using the sliders until your personal acceptable amount of dropouts is reached. The LED indicator will display the audio dropouts of the local jitter buffer with a red light. Si le paramètre Auto est activé, les tampons réseau du client local et du serveur distant sont réglés sur une valeur prudente pour minimiser la probabilité d'interruption de l'audio. Pour régler le délai/latence audio, il est recommandé de désactiver le paramètre Auto et de réduire manuellement la taille du tampon de gigue en utilisant les chariots jusqu'à ce que le nombre d'interruptions soit acceptable. L'indicateur LED affichera les désynchronisations audio du tampon de gigue local avec un voyant rouge. - + The buffer delay setting is a fundamental setting of this software. This setting has an influence on many connection properties. Le réglage du délai de la mémoire tampon est un paramètre fondamental de ce logiciel. Ce réglage a une influence sur de nombreuses propriétés de la connexion. - + 64 samples: The preferred setting. Provides the lowest latency but does not work with all sound cards. 64 échantillons : le paramétrage préféré. Fournit la latence la plus faible mais ne fonctionne pas avec toutes les cartes son. - + 128 samples: Should work for most available sound cards. 128 échantillons : devrait fonctionner pour la plupart des cartes son disponibles. - + 256 samples: Should only be used on very slow computers or with a slow internet connection. 256 échantillons : ne devrait être utilisé que sur des ordinateurs très lents ou avec une connexion internet lente. - + Some sound card drivers do not allow the buffer delay to be changed from within the application. In this case the buffer delay setting is disabled and has to be changed using the sound card driver. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. Certains pilotes de carte son ne permettent pas de modifier le délai de la mémoire tampon à partir de l'application. Dans ce cas, le réglage du délai de mise en mémoire tampon est désactivé et doit être modifié à l'aide du pilote de la carte son. Sous Windows, appuyez sur le bouton Paramètre ASIO pour ouvrir le panneau des paramètres du pilote. Sous Linux, utilisez l'outil de configuration Jack pour modifier la taille de la mémoire tampon. - + If no buffer size is selected and all settings are disabled, an unsupported buffer size is used by the driver. The application will still work with this setting but with restricted performance. Si aucune taille de tampon n'est sélectionnée et que tous les paramètres sont désactivés, une taille de tampon non prise en charge est utilisée par le pilote. L'application fonctionnera toujours avec ce paramètre, mais avec des performances limitées. - + If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. Si les paramètres de délai de la mémoire tampon sont désactivés, il est interdit par le pilote audio de modifier ce paramètre depuis le logiciel. Sous Windows, appuyez sur le bouton Paramètres ASIO pour ouvrir le panneau des paramètres du pilote. Sous Linux, utilisez l'outil de configuration Jack pour modifier la taille de la mémoire tampon. - + Skin thème graphique - + Select the skin to be used for the main window. Sélectionnez le thème graphique à utiliser pour la fenêtre principale. - + Skin combo box Choix déroulant de thème graphique - + Selects the number of audio channels to be used for communication between client and server. There are three modes available: Sélectionne le nombre de canaux audio à utiliser pour la communication entre le client et le serveur. Trois modes sont disponibles : - + and et - + These modes use one and two audio channels respectively. Ces modes utilisent respectivement un et deux canaux audio. - + Mono in/Stereo-out Entrée mono/sortie stéréo - + The audio signal sent to the server is mono but the return signal is stereo. This is useful if the sound card has the instrument on one input channel and the microphone on the other. In that case the two input signals can be mixed to one mono channel but the server mix is heard in stereo. Le signal audio envoyé au serveur est mono mais le signal de retour est stéréo. Ceci est utile si la carte son a l'instrument sur un canal d'entrée et le microphone sur l'autre. Dans ce cas, les deux signaux d'entrée peuvent être mélangés sur un canal mono mais le mixage du serveur est entendu en stéréo. - + Enabling Activer - + In stereo streaming mode, no audio channel selection for the reverb effect will be available on the main window since the effect is applied to both channels in this case. En mode de flux stéréo, aucune sélection de canal audio pour l'effet de réverbération ne sera disponible dans la fenêtre principale puisque l'effet est appliqué aux deux canaux dans ce cas. - + The higher the audio quality, the higher your audio stream's data rate. Make sure your upload rate does not exceed the available bandwidth of your internet connection. Plus la qualité audio est élevée, plus le débit de données de votre flux audio est élevé. Assurez-vous que votre débit montant ne dépasse pas la bande passante disponible de votre connexion internet. - + This setting defines the fader level of a newly connected client in percent. If a new client connects to the current server, they will get the specified initial fader level if no other fader level from a previous connection of that client was already stored. Ce paramètre définit le niveau du chariot d'un client nouvellement connecté en pourcentage. Si un nouveau client se connecte au serveur actuel, il obtiendra le niveau de chariot initial spécifié si aucun autre niveau de chariot provenant d'une connexion précédente de ce client n'a déjà été enregistré. - + Leave this blank unless you need to enter the address of a central server other than the default. Laissez ce champ vide, sauf si vous devez entrer l'adresse d'un serveur central autre que celui par défaut. - + The Ping Time is the time required for the audio stream to travel from the client to the server and back again. This delay is introduced by the network and should be about 20-30 ms. If this delay is higher than about 50 ms, your distance to the server is too large or your internet connection is not sufficient. Le temps de ping est le temps nécessaire au flux audio pour aller du client au serveur et revenir. Ce délai est introduit par le réseau et doit être d'environ 20 à 30 ms. Si ce délai est supérieur à environ 50 ms, la distance qui vous sépare du serveur est trop importante ou votre connexion internet n'est pas suffisante. - + Overall Delay is calculated from the current Ping Time and the delay introduced by the current buffer settings. Le délai global est calculé à partir du temps de ping actuel et du délai introduit par les paramètres actuels de la mémoire tampon. - + Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net). Le débit montant audio dépend de la taille actuelle des paquets audio et du réglage de la compression. Assurez-vous que le débit montant n'est pas supérieur à votre vitesse de téléchargement Internet disponible (vérifiez cela avec un service tel que speedtest.net). - + Low Basse - - + + Normal Normale - + High Haute - + Fancy Fantaisie - + Compact Compact @@ -1586,12 +1608,12 @@ Manuel - + Custom Personnalisé - + All Genres Tous les genres @@ -1600,22 +1622,22 @@ Genre rock/jazz - + Genre Classical/Folk/Choir Genre classique/folk/choeur - + Genre Rock Genre Rock - + Genre Jazz Genre Jazz - + Default Défaut @@ -1624,23 +1646,23 @@ Défaut (Amérique du Nord) - + preferred préféré - - + + Size: Taille : - + Buffer Delay Délai de temporisation - + Buffer Delay: Délai de temporisation : @@ -1649,17 +1671,17 @@ Adresse prédéfinie - + The selected audio device could not be used because of the following error: Le périphérique audio sélectionné n'a pas pu être utilisé en raison de l'erreur suivante : - + The previous driver will be selected. Le pilote précédent sera sélectionné. - + Ok Ok @@ -1999,28 +2021,28 @@ CHelpMenu - + &Help &Aide - - + + Getting &Started... Premier pa&s... - + Software &Manual... &Manuel du logiciel... - + What's &This Qu'est-ce que c'est ? - + &About... À &propos @@ -2028,102 +2050,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. @@ -2135,85 +2157,85 @@ . 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 Dialogue d'édition de pseudo ou de nom - + Instrument picture button Bouton d'image d'instrument - + Country flag button Bouton de drapeau de pays - + City edit box Dialogue d'édition de ville - + Skill level combo box Choix déroulant de niveau de compétence - - - + + + 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 @@ -2226,227 +2248,227 @@ Ce que vous réglez ici apparaîtra au niveau de votre fader sur la table de mixage lorsque vous serez connecté à un serveur - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Écrivez votre nom ou un pseudonyme ici pour que les autres musiciens avec lesquels vous voulez jouer sachent qui vous êtes. Vous pouvez également ajouter une photo de l'instrument dont vous jouez et un drapeau du pays dans lequel vous vous trouvez. Vous pouvez également ajouter votre ville et votre niveau de compétence pour jouer de votre instrument. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Ce que vous réglez ici apparaîtra au niveau de votre chariot sur la table de mixage lorsque vous serez connecté à un serveur Jamulus. Cette étiquette sera également affichée dans chaque client qui est connecté au même serveur que vous. - + 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 - + Vocal Bass Voix basse - + Vocal Tenor Voix ténor - + Vocal Alto Voix alto - + Vocal Soprano Voix soprano - + Banjo Banjo - + Mandolin Mandoline - + Ukulele Ukulélé - + Bass Ukulele Ukulélé basse - + No Name Sans nom @@ -2621,111 +2643,203 @@ + Display dialog to select recording directory button + + + + + + Main Recording Directory + + + + + Click the button to open the dialog that allows the main recording directory to be selected.The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). + + + + + Main recording directory text box (read-only) + + + + + The current value of the main recording directory. The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). Click the button to open the dialog that allows the main recording directory to be selected. + + + + + Clear the recording directory button + + + + + Clear Recording Directory + + + + + Click the button to clear the currently selected recording directory. This will prevent recording until a new value is selected. + + + + Checkbox to turn on or off server recording Case à cocher pour activer ou désactiver l'enregistrement du serveur - + Enable Recorder Activer l'enregistreur - + Checked when the recorder is enabled, otherwise unchecked. The recorder will run when a session is in progress, if (set up correctly and) enabled. Coché lorsque l'enregistreur est activé, sinon non coché. L'enregistreur fonctionnera lorsqu'une session est en cours, si (configuré correctement et) activé. - + Current session directory text box (read-only) Zone de texte du répertoire de la session en cours (en lecture seule) - + Current Session Directory Répertoire de la session en cours - + Enabled during recording and holds the current recording session directory. Disabled after recording or when the recorder is not enabled. Activé pendant l'enregistrement et contient le répertoire de la session d'enregistrement en cours. Désactivé après l'enregistrement ou lorsque l'enregistreur n'est pas activé. - + Recorder status label Ètiquette de statut d'enregistreur - + Recorder Status Statut de l'enregistreur - + + Displays the current status of the recorder. The following values are possible: + + + + + No recording directory has been set or the value is not useable + + + + + Recording has been switched off + + + + + by the UI checkbox + + + + + , either by the UI checkbox or SIGUSR2 being received + + + + + There is no one connected to the server to record + + + + + The performers are being recorded to the specified session directory + + + + + NOTE + + + + + If the recording directory is not useable, the problem will be displayed in place of the directory. + + + + + ERROR + + + Displays the current status of the recorder. - Affiche l'état actuel de l'enregistreur. + Affiche l'état actuel de l'enregistreur. - + Request new recording button Demander un nouveau bouton d'enregistrement - + New Recording Nouvel enregistrement - + During a recording session, the button can be used to start a new recording. Pendant une session d'enregistrement, le bouton peut être utilisé pour démarrer un nouvel enregistrement. - - + + E&xit &Quitter - + &Hide Cac&hé - - - + + + server serveur - + &Open &Ouvrir - + server serveur - + + Select Main Recording Directory + + + + Predefined Address Adresse prédéfinie - Recording - Enregistrement + Enregistrement - Not recording - Ne pas enregistrer + Ne pas enregistrer - Not enabled - Non activé + Non activé Manual @@ -2740,62 +2854,62 @@ Défaut (Amérique du nord) - + Server serveur - + &Window &Fenêtre - + Unregistered Non inscrit - + Bad address Mauvaise adresse - + Registration requested Inscription demandée - + Registration failed Échec de l'inscription - + Check server version Vérifier la version du serveur - + Registered Inscrit - + Central Server full Serveur central rempli - + Your server version is too old La version de votre serveur est trop vieille - + Requirements not fulfilled Exigences non satisfaites - + Unknown value Valeur inconnue @@ -2840,7 +2954,7 @@ - + STATUS ÉTAT @@ -2849,6 +2963,21 @@ Custom Central Server Address: Adresse personnalisée du serveur central : + + + Recording Directory + + + + + Enable Jam Recorder + + + + + New Recording + Nouvel enregistrement + Central Server Address: Adresse du serveur central : @@ -2869,22 +2998,19 @@ Emplacement : pays - Enable jam recorder - Activer l'enregistreur de bÅ“uf + Activer l'enregistreur de bÅ“uf - New recording - Nouvel enregistrement + Nouvel enregistrement - Recordings folder - Dossier des enregistrements + Dossier des enregistrements - + TextLabelNameVersion @@ -3075,17 +3201,17 @@ QCoreApplication - + , Version , version - + Internet Jam Session Software Logiciel de bÅ“uf sur Internet - + Released under the GNU General Public License (GPL) Publié sous la licence publique générale GNU (GPL) @@ -3093,7 +3219,7 @@ global - + For more information use the What's This help (help menu, right mouse button or Shift+F1) Pour plus d'informations, utilisez l'aide Qu'est-ce que c'est (menu d'aide, bouton droit de la souris ou Maj+F1) diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index f3c48c3375..20a5e0f38f 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -67,47 +67,52 @@ Le icone delle bandiere sono state realizzate da Marl James - + For details on the contributions check out the Per maggiori informazioni su chi ha contribuito, visitare - + Github Contributors list Lista dei collaboratori su Github - + Spanish Spagnolo - + French Francese - + Portuguese Portoghese - + Dutch Olandese - + Italian Italiano - + German Tedesco - + + Polish + + + + About Informazioni su @@ -183,32 +188,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mixer personale sul Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Quando connessi i fader permettono di regolare i volumi in locale senza influenzare l'ascolto degli altri utenti. L'intestazione mostra il nome de server, se valorizzato, e le informazioni sullo stato della sessione di registrazione se attiva. - + Server Server - + T R Y I N G T O C O N N E C T I N A T T E S A D I C O N N E S S I O N E - + RECORDING ACTIVE Sessione con Registrazione Attiva - + Personal Mix at: Mixer personale sul Server: @@ -217,33 +222,45 @@ CChannelFader - - + + Pan Bilanciamento - - + + Mute Mute - - + + Solo Solo - - + + No grouping + + + + + + + + Assign to group + + + + Grp Rag - + Channel Level Volume @@ -252,12 +269,12 @@ Visualizza il livello audio pre-fader di questo canale. A tutti i client connessi al server verrà assegnato un livello audio, lo stesso valore per ciascun client. - + Input level of the current audio channel at the server Livello di input del canale audio corrente sul server - + Mixer Fader Mixer Fader @@ -266,17 +283,17 @@ Regola il livello audio di questo canale. A tutti i client connessi al server verrà assegnato un fader audio su ciascun client, regolando il mix locale. - + Local mix level setting of the current audio channel at the server Impostazione del livello di volume locale del canale audio corrente sul server - + Status Indicator Indicatore di Stato - + Shows a status indication about the client which is assigned to this channel. Supported indicators are: Visualizza lo stato del client assegnato a questo canale. Gli Stati supportati sono: @@ -285,12 +302,12 @@ Altoparlante segnato: Indica che un altro client ha messo in mute il tuo canale. - + Status indicator label Etichetta dell'indicatore di stato - + Panning Bilanciamento @@ -299,17 +316,17 @@ Imposta il Bilanciamento da Sinistra a Destra del canale. Funzione abilitata in modalità stereo oppure in modalità mono in/stereo out. - + Local panning position of the current audio channel at the server Bilancimento locale del canale audio corrente sul server - + With the Mute checkbox, the audio channel can be muted. Quando il Mute è selezionato, il canale audio è mutato. - + Mute button Pulsante Mute @@ -318,12 +335,12 @@ Quando il Solo è attivo, il canale audio sarà in modalità solista escludendo gli altri canali che non saranno più udibili. E' possibile attivare il solo su più canali per sentirli contemporaneamente. - + Solo button Pulsante Solo - + Fader Tag Tag Fader @@ -332,139 +349,139 @@ Il tag fader identifica il client connesso. Il nome del tag, l'immagine del tuo strumento e una bandiera del tuo paese possono essere impostati nella finestra principale del profilo. - + Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. Visualizza il livello "pre-fader" di questo canale. Tutti i client connessi al server avranno assegnato un livello audio, lo stesso valore per ogni client. - + Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. Regola il livello audio di questo canale. A tutti i client connessi sarà assegnatu un fader per regolare il mix audio locale. - + Speaker with cancellation stroke: Indicates that another client has muted you. Altoparlate con il segnale rosso: indica che un altro client ha messo il tuo canale in mute. - + Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. Regola il bilanciamento Sinistro - Destro del canale. Funziona solo se abilitata la funzione stereo oppure "mono-in/stereo-out". - + With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. Se selezionato il pulsate "Solo", il canale audio sarà settato nella modalità di "Solo" ovvero tutti i canali saranno mutati ad eccezione di quelli in modalità "Solo". - + Group Raggruppa - + With the Grp checkbox, a group of audio channels can be defined. All channel faders in a group are moved in proportional synchronization if any one of the group faders are moved. Con il comando Rag, può essere definito un gruppo di canali. Tutti i canali raggruppati possono essere modificati in modo proporzionale muovendo uno dei fader del gruppo. - + Group button Raggruppa - + The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. La targa sotto il Fader identifica il client connesso. Il nome, l'immagine dello strumento, e la bandiera della nazionalità possono essere settati tramite la finestra del profilo. - + Mixer channel instrument picture Immagine dello strumento - + Mixer channel label (fader tag) Etichetta del Canale (fader tag) - + Mixer channel country flag Bandiera del Paese - + PAN Bil. (L / R) - + MUTE MUTE - + SOLO SOLO - + GRP RAG - + M M - + S S - + G G - + Alias/Name Identificativo/Nome - + Instrument Strumento - + Location Località - - - + + + Skill Level Livello di Preparazione - + Beginner Principiante - + Intermediate Livello Intermedio - + Expert Esperto - + Musician Profile Profilo del Musicista @@ -617,7 +634,7 @@ - + L L @@ -839,97 +856,102 @@ Led di stato del Buffer - - + + C&onnect C&onnetti - + &View &Vista - + &Connection Setup... Setup &Connessione... - + My &Profile... &Profilo Personale... - + C&hat... C&hat... - + &Settings... &Settaggi... - + &Analyzer Console... &Analizzatore... - + E&xit &Uscita - + &Edit &Modifica - + Sort Channel Users by &Name Ordina canali per &Nome - + Sort Channel Users by &Instrument Ordina canali per &Strumento + + + Sort Channel Users by &Group + + &Sort Channel Users by Name &Canali in ordine Alfabetico - + None Nullo - + Center Centro - + R R - + Central Server Server Centrale - + user utente - + users utenti - + D&isconnect D&isconnetti @@ -937,72 +959,72 @@ CClientDlgBase - + Delay Delay - + Buffers Buffer - + Input Ingresso - + L L - + R R - + Settings Settaggi - + Chat Chat - + Mute Myself Disattiva Input - + C&onnect C&onnetti - + Pan Bilanciamento - + Center Centro - + Reverb Riverbero - + Left Left (Sinistra) - + Right Right (Destra) @@ -1010,7 +1032,7 @@ CClientSettingsDlg - + Jitter Buffer Size Dimensione Jitter Bufer @@ -1023,7 +1045,7 @@ La dimensione del Jitter Buffer può essere settata manualmente sia per il client che per il server. Le problematiche del buffer locale sono segnalate dal LED posto sotto i Fader del Jitter buffer. Se il LED è rosso il buffer è corrotto e lo streamaudio subisce interruzioni. - + The jitter buffer setting is therefore a trade-off between audio quality and overall delay. I settaggi del jitter buffer regolano il compromesso tra qualità audio e ritardo generale. @@ -1036,122 +1058,122 @@ Nel caso in cui sia abilitata l'impostazione automatica del jitter buffer, i buffer di rete del client locale e del server remoto sono impostati su un valore di tipo conservativo per ridurre al minimo la probabilità di dropout audio. Per modificare il ritardo / latenza audio, si consiglia di disabilitare la funzionalità di impostazione automatica e di ridurre manualmente la dimensione del JitterBuffer utilizzando i fader fino a raggiungere il limite personale per una qualità audio accettabile. L'indicatore LED visualizzerà i dropout audio del Jitter Buffer locale diventando rosso. - + Local jitter buffer slider control Controlli per la gestione del Jitter Buffer - + Server jitter buffer slider control Fader del Jitter Buffer del Server - + Auto jitter buffer switch Switch Jitter Buffer Automatico - + Jitter buffer status LED indicator LED di stato del Jitter Buffer - + Sound Card Device Scheda Audio - + The ASIO driver (sound card) can be selected using I driver ASIO (scheda audio) possono essere selezionati usando - + 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. su sistemi operativi Windows. Su MacOS/Linux, non è possibile cambiare driver audio. Se il driver ASIO selezionato non è valido un errore viene visualizzato ripristinando il driver precedentemente attivo e funzionante. - + If the driver is selected during an active connection, the connection is stopped, the driver is changed and the connection is started again automatically. Se il driver viene cambiato mentre si è connessi ad un server, la connessione verrà fermata, il driver sarà sostituito e successivamente la connessione verrà ripristinata automaticamente. - + Sound card device selector combo box Box per la selezione della scheda audio - + If the ASIO4ALL driver is used, please note that this driver usually introduces approx. 10-30 ms of additional audio delay. Using a sound card with a native ASIO driver is therefore recommended. Nel caso in cui vengano usati i driver ASIO4ALL bisogna sapere che questi di solito introducono 10-30 ms di ritardo aggiuntivo. Si consiglia di usare driver ASIO nativi per la scheda audio in uso. - + If you are using the kX ASIO driver, make sure to connect the ASIO inputs in the kX DSP settings panel. Se si usano i driver kX ASIO, accertarsi di connettere l'input ASIO nel pannello dei settaggi kX DSP. - + Sound Card Channel Mapping Mappa dei Canali della Scheda Audio - + If the selected sound card device offers more than one input or output channel, the Input Channel Mapping and Output Channel Mapping settings are visible. Se la scheda audio dispone di diversi Input o Output, verrà visualizzata la mappa dei canali di input e di output. - + For each Per ciascun - + input/output channel (Left and Right channel) a different actual sound card channel can be selected. input/output (Canale Sinistro e Destro) può essere selezionata una scheda audio diversa. - + Left input channel selection combo box Box per la selezione dell'Ingresso Sinistro (Left) - + Right input channel selection combo box Box per la selezione dell'Ingresso Destro (Right) - + Left output channel selection combo box Box per la selezione dell'uscita Sinistra (Left) - + Right output channel selection combo box Box per la selezione dell'uscita Destra (Right) - + Enable Small Network Buffers Abilita Riduzione Buffer di Rete - + If enabled, the support for very small network audio packets is activated. Very small network packets are only actually used if the sound card buffer delay is smaller than Se abilitato, viene attivata la possibilità di usare piccoli pacchetti di rete. L'uso di pacchetti di rete di dimensione ridotta è attivo se la scheda audio supporta un buffer delay inferiore a - + samples. The smaller the network buffers, the lower the audio latency. But at the same time the network load increases and the probability of audio dropouts also increases. samples. Più piccoli sono i pacchetti di rete minore sarà la latenza, ma allo stesso tempo aumenta il carico di rete umentando la possibilità di dropout audio. - + Enable small network buffers check box Check Box per abilitare la riduzione dei pacchetti di rete - + Sound Card Buffer Delay Buffer Delay della scheda audio @@ -1164,7 +1186,7 @@ Questo settaggio ha influenza su molte proprietà di connessione. - + Three buffer sizes are supported Le dimensioni dei Buffer supportati sono @@ -1197,12 +1219,12 @@ funzionerà ma con performance ridotte. - + The actual buffer delay has influence on the connection status, the current upload rate and the overall delay. The lower the buffer size, the higher the probability of a red light in the status indicator (drop outs) and the higher the upload rate and the lower the overall delay. Il Buffer Delay influenza lo stato della connessione, la velocità di upload e l'Overall Delay. Usare una dimensione troppo bassa del buffer comporta, maggiore probabilità che l'indicatore di stato diventi rosso (drop outs) consumo di banda in upload e una diminuzione dell'Overall Delay. - + The buffer setting is therefore a trade-off between audio quality and overall delay. L'impostazione del buffer è quindi un compromesso tra qualità audio e ritardo generale. @@ -1215,22 +1237,22 @@ Su Windows premere il bottone ASIo setup per aprire il pannello di settaggio del driver. Su Linux usare il tool di configurazione di Jack per modificare la dimensione del buffer. - + 64 samples setting radio button Pulsante per abilitare 64 Campioni - + 128 samples setting radio button Pulsante per abilitare 128 Campioni - + 256 samples setting radio button Pulsante per abilitare 256 Campioni - + ASIO setup push button Pulsante del pannello di setup ASIO @@ -1247,22 +1269,22 @@ Check Box Tema Fantasia - + Display Channel Levels Mostra livelli canali audio - + If enabled, each client channel will display a pre-fader level bar. Se abilitato su ogni client apparirà un metet a LED prima del Fader. - + Display channel levels check box Check Box per abilitare la visualizzazione dei livelli dei canali audio - + Audio Channels Canali Audio @@ -1279,12 +1301,12 @@ Nel caso in cui si una lo streaming stereo, non sarà possibile selezionare su quale canale far intervenire il riverbero inquanto sarà applicato ad entrambi i canali Left e Right. - + Audio channels combo box Combo Box Canali Audio - + Audio Quality Qualità Audio @@ -1293,12 +1315,12 @@ Selezionare la qualità audio desiderata. Si può scegliere tra Low (Bassa), normal (standard), high (Alta). Maggiore è la qualità settata più alto sarà il valore di streaming audio. Accertarsi di avere sufficiente banda in upload. - + Audio quality combo box Combo Box Qualità Audio - + New Client Level Livello Volume Nuovo Client @@ -1307,12 +1329,12 @@ Settare il livello per il nuovo client definisce il livello, in percentuale, di ingresso per un nuovo utente che si connette. Un nuovo client che si connette alla sessione assume un volume uguale a quello settato se non ci sono livelli memorizzati per questo client in precedenti connessioni con lo stesso. - + New client level edit box Box per modificare il livello di ingresso di un nuovo client - + Custom Central Server Address Indirizzo personalizzato del Server Centrale @@ -1333,12 +1355,12 @@ Box per l'indirizzo del Server Centrale - + Central server address line edit Modifica indirizzo Server Centrale - + Current Connection Status Parameter Parametri attuali di connessione @@ -1355,222 +1377,222 @@ La velocità di trasferimento dati in upload dipende dalla dimensione dei pacchetti audio e dai settaggi di compressione dell'audio. Assicurarsi di non usare valori di upstream non adeguati alla propria connessione (è possibile verificare tali valori mediante un test sulla propria connessione, usando per esempio il sito speedtest.net). - + If this LED indicator turns red, you will not have much fun using the Se questo indicatore a LED diventa rosso non si godrà di un esperienza ottimale del programma - + software. . - + ASIO Setup ASIO Setup - - + + Mono Mono - + mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. modalità che aumenterà la velocità dei dati del tuo stream. Assicurati che la tua velocità di upload non superi la velocità di upload disponibile per la tua connessione Internet. - + Mono-in/Stereo-out Mono-in/Stereo-out - - - + + + Stereo Stereo - + The jitter buffer compensates for network and sound card timing jitters. The size of the buffer therefore influences the quality of the audio stream (how many dropouts occur) and the overall delay (the longer the buffer, the higher the delay). Il Jitter Buffer compensa i ritardi della rete e della scheda audio. La dimensione del buffer influenza quindi la qualità del flusso audio (quando si verificano i dropout) e il ritardo complessivo (più è alto il buffer, maggiore è il ritardo). - + You can set the jitter buffer size manually for the local client and the remote server. For the local jitter buffer, dropouts in the audio stream are indicated by the light below the jitter buffer size faders. If the light turns to red, a buffer overrun/underrun has taken place and the audio stream is interrupted. È possibile impostare manualmente la dimensione delJitter Buffer per il client locale e il server remoto. Per il Jitter Buffer locale, i dropout nel flusso audio sono indicati dalla luce sotto i fader del Jitter Buffer. Se la luce diventa rossa, si è verificato un sovraccarico / underrun del buffer e il flusso audio viene interrotto. - + If the Auto setting is enabled, the jitter buffers of the local client and the remote server are set automatically based on measurements of the network and sound card timing jitter. If Auto is enabled, the jitter buffer size faders are disabled (they cannot be moved with the mouse). Se la modalità "Auto" è abilitata il Jitter Buffer si regolerà automaticamente sulla base di misure sulla rete e sulle latenze della scheda audio. Quando la modalità "Auto" è abilitata i fader saranno disabilitati. - + If the Auto setting 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 and to lower the jitter buffer size manually by using the sliders until your personal acceptable amount of dropouts is reached. The LED indicator will display the audio dropouts of the local jitter buffer with a red light. Se l'impostazione Auto è abilitata, i buffer di rete del client locale e del server remoto vengono impostati su un valore conservativo per ridurre al minimo la probabilità di interruzione dell'audio. Per modificare il ritardo / latenza audio, si consiglia di disabilitare l'impostazione Auto e di ridurre manualmente la dimensione del buffer utilizzando i fader fino a raggiungere una qualità audio accettabile. L'indicatore LED mostrerà i dropout audio del Jitter Buffer locale con una luce rossa. - + The buffer delay setting is a fundamental setting of this software. This setting has an influence on many connection properties. Il Buffer Delay è un settaggio fondamentale per questo programma. Questo settaggio influenza molte propriètà di connessione. - + 64 samples: The preferred setting. Provides the lowest latency but does not work with all sound cards. 64 Campiono: Settaggio preferito. Permette di ottenere latenze bassissime ma non tutto le schede audio supportano questo valore. - + 128 samples: Should work for most available sound cards. 128 Campioni: Valore accettato dalla maggior parde delle schede audio. - + 256 samples: Should only be used on very slow computers or with a slow internet connection. 256 Campioni: Usato su computer vecchi o su connessioni lente. - + Some sound card drivers do not allow the buffer delay to be changed from within the application. In this case the buffer delay setting is disabled and has to be changed using the sound card driver. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. Alcune driver non permettono il settaggio del buffer delay quando il programma è avviato. In questo caso la scelta del buffer delay è disabilitata è puo essere modificata avviando il software del driver della scheda audio. Su windows cliccare su "ASIO Setup" per aprire i settings del driver ASIO. Su Linux usare la configurazione di Jack per modificare la dimensione del Buffer. - + If no buffer size is selected and all settings are disabled, an unsupported buffer size is used by the driver. The application will still work with this setting but with restricted performance. Si nessuna delle opzioni di Buffer è selezionata vuol dire che una dimensione non supportata è in uso da parte del driver. Il programma continuerà a funzionare con performance limitate. - + If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. Se le impostazioni di ritardo del buffer sono disabilitate, il driver audio non può modificare questa impostazione dal programma. Su Windows, premi il pulsante ASIO Setup per aprire il pannello delle impostazioni del driver. Su Linux, utilizzare lo strumento di configurazione Jack per modificare la dimensione del buffer. - + Skin Vista - + Select the skin to be used for the main window. Selezione la vista da applicare alla finestra principale. - + Skin combo box Box di selezione Vista - + Selects the number of audio channels to be used for communication between client and server. There are three modes available: Seleziona il numero di canali audio da utilizzare per la comunicazione tra client e server. Sono disponibili tre modalità: - + and e - + These modes use one and two audio channels respectively. Questa modalità usa rispettivamente uno o due canali audio. - + Mono in/Stereo-out Mono in/Stereo-out - + The audio signal sent to the server is mono but the return signal is stereo. This is useful if the sound card has the instrument on one input channel and the microphone on the other. In that case the two input signals can be mixed to one mono channel but the server mix is heard in stereo. Il segnale audio inviato al server è mono ma il segnale di ritorno è stereo. Ciò è utile se la scheda audio ha lo strumento su un canale di ingresso e il microfono sull'altro. In tal caso, i due segnali di ingresso possono essere miscelati su un canale mono ma il mix del server viene ascoltato in stereo. - + Enabling Abilitando - + In stereo streaming mode, no audio channel selection for the reverb effect will be available on the main window since the effect is applied to both channels in this case. Nella modalità stereo, nessuna selezione di canali audio per l'effetto riverbero sarà disponibile nella finestra principale poiché in questo caso l'effetto viene applicato ad entrambi i canali. - + The higher the audio quality, the higher your audio stream's data rate. Make sure your upload rate does not exceed the available bandwidth of your internet connection. Maggiore è la qualità audio, maggiore è la quantità dei dati del flusso audio. Assicurati che la tua velocità di upload non superi la larghezza di banda disponibile della tua connessione Internet. - + This setting defines the fader level of a newly connected client in percent. If a new client connects to the current server, they will get the specified initial fader level if no other fader level from a previous connection of that client was already stored. Questa impostazione definisce il livello di dissolvenza di un client appena connesso in percentuale. Se un nuovo client si connette al server corrente, otterrà il livello di fader iniziale specificato se nessun altro livello di fader da una precedente connessione di quel client era già memorizzato. - + Leave this blank unless you need to enter the address of a central server other than the default. Lasciare vuoto questo campo a meno che non sia necessario immettere l'indirizzo di un server centrale diverso da quello predefinito. - + The Ping Time is the time required for the audio stream to travel from the client to the server and back again. This delay is introduced by the network and should be about 20-30 ms. If this delay is higher than about 50 ms, your distance to the server is too large or your internet connection is not sufficient. Il ping è il tempo necessario affinché il flusso audio passi dal client al server e viceversa. Questo ritardo è introdotto dalla rete e dovrebbe essere di circa 20-30 ms. Se questo ritardo è superiore a circa 50 ms, la distanza dal server è eccessiva o la connessione a Internet non è sufficiente. - + Overall Delay is calculated from the current Ping Time and the delay introduced by the current buffer settings. Il ritardo complessivo viene calcolato dal tempo di ping corrente e dal ritardo introdotto dalle impostazioni del buffer correnti. - + Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net). L'Upstream audio dipende dalle dimensioni del pacchetto audio e dalle impostazioni di compressione correnti. Assicurati che la velocità di upstream non sia superiore alla velocità della tua connessione (controlla questo con un servizio come speedtest.net). - + Low Low - - + + Normal Normal - + High High - + Fancy Fantasia - + Compact Compatto - + preferred consigliato - - + + Size: Livello: - + Buffer Delay Buffer Delay - + Buffer Delay: Buffer Delay: @@ -1579,47 +1601,47 @@ Indirizzo Preferito - + The selected audio device could not be used because of the following error: La scheda audio selezionata non può essere usata per i seguenti motivi: - + The previous driver will be selected. Sarà ripristinato il driver precedentemente usato. - + Ok Ok - + Custom Personalizzato - + All Genres Tutti i Generi - + Genre Rock Genere Rock - + Genre Jazz Genere Jazz - + Genre Classical/Folk/Choir Genere Classica/Folk/Corale - + Default Default @@ -1959,28 +1981,28 @@ CHelpMenu - + &Help &Aiuto - - + + Getting &Started... &Introduzione... - + Software &Manual... &Manuale Software... - + What's &This &Cos'è Questo - + &About... I&nformazioni su... @@ -1988,102 +2010,102 @@ CLicenceDlg - + I &agree to the above licence terms &Accetto i termini di licenza - + Accept Accetto - + Decline Declino - + By connecting to this server and agreeing to this notice, you agree to the following: Collegandosi a questo server e accettando questo avviso, si accetta quanto segue: - + 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 Dichiari che tutti i dati, audio o altre opere trasmessi a questo server sono di tua proprietà e creati da te o dai tuoi licenziatari e che rendi questi dati, audio o altre opere disponibili a terzi mediante la seguente Licenza Creative Commons (per ulteriori informazioni su questa licenza, vedere - + You are free to: Sei libero di: - + Share Condividere - + copy and redistribute the material in any medium or format copiare e ridistribuire il materiale in qualsiasi supporto o formato - + Adapt Adattare - + remix, transform, and build upon the material remixare, trasformare e modificare il materiale - + The licensor cannot revoke these freedoms as long as you follow the license terms. Il licenziante non può revocare queste libertà fintanto che segui i termini della licenza. - + Under the following terms: Sotto i seguenti requisiti: - + Attribution Attribuzione - + 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. È necessario accreditare in modo appropriato, fornire un collegamento alla licenza e indicare se sono state apportate modifiche. Puoi farlo in modo ragionevole, ma non in modo tale da suggerire a te o al tuo utilizzo il supporto del licenziante. - + NonCommercial Non Commerciale - + You may not use the material for commercial purposes. Non è possibile utilizzare il materiale a fini commerciali. - + ShareAlike Condividere allo stesso modo - + If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. Se remixate, trasformate o sviluppate il materiale, dovete distribuire i vostri contributi con la stessa licenza dell'originale. - + No additional restrictions Nessuna restrizione aggiuntiva - + You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. Non è possibile applicare termini legali o misure tecnologiche che impediscono legalmente ad altre persone di fare qualsiasi cosa consentita dalla licenza. @@ -2091,60 +2113,60 @@ CMusProfDlg - - + + Musician Profile Profilo del Musicista - + Alias/Name Nome/Alias - + Instrument Strumento - + Country Paese - + City Città - + Skill Livello - + &Close &Chiudi - - - + + + None None - + Beginner Principiante - + Intermediate Intermedio - + Expert Esperto @@ -2161,252 +2183,252 @@ questo tag verrà mostrato anche a ciascun client connesso allo stesso server. Se viene lasciato vuoto, verrà visualizzato l'indirizzo IP. - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Scrivi qui il tuo nome o un alias in modo che gli altri musicisti con cui vuoi suonare sappiano chi sei. Puoi anche aggiungere una foto dello strumento che suoni e una bandiera del paese in cui ti trovi. Puoi anche aggiungere la tua città e il tuo livello di abilità nel suonare il tuo strumento. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Ciò che hai impostato apparirà sul tuo fader sulla scheda del mixer quando sei collegato a un server Jamulus. Questo tag verrà mostrato anche su ogni client collegato allo stesso server. - + Alias or name edit box Box di modifica Nome o Alias - + Instrument picture button Immagine dello strumento - + Country flag button Pulsante bandiera del paese - + City edit box Box di modifica Città - + Skill level combo box Livello di Abilità - + Drum Set Batteria - + Djembe Djembe - + Electric Guitar Chitarra elettrica - + Acoustic Guitar Chitarra Acustica - + Bass Guitar Basso Elettrico - + Keyboard Tastiera - + Synthesizer Sintetizzatore - + Grand Piano Grand Piano - + Accordion Fisarmonica - + Vocal Voce - + Microphone Microfono - + Harmonica Armonica - + Trumpet Tromba - + Trombone Trombone - + French Horn Corno Francese - + Tuba Tuba - + Saxophone Sassofono - + Clarinet Clarinet - + Flute Flauto - + Violin Violino - + Cello Cello - + Double Bass Contrabbasso - + Recorder Recorder - + Streamer Streamer - + Listener Ascoltatore - + Guitar+Vocal Chitarra+Voce - + Keyboard+Vocal Tastiera+Voce - + Bodhran Bodhran - + Bassoon Fagotto - + Oboe Oboe - + Harp Arpa - + Viola Viola - + Congas Congas - + Bongo Bongo - + Vocal Bass Voce Basso - + Vocal Tenor Voce Tenore - + Vocal Alto Voce Alto - + Vocal Soprano Voce Soprano - + Banjo Banjo - + Mandolin Mandolino - + Ukulele Uculele - + Bass Ukulele Uculele Basso - + No Name Senza Nome @@ -2581,169 +2603,261 @@ + Display dialog to select recording directory button + + + + + + Main Recording Directory + + + + + Click the button to open the dialog that allows the main recording directory to be selected.The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). + + + + + Main recording directory text box (read-only) + + + + + The current value of the main recording directory. The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). Click the button to open the dialog that allows the main recording directory to be selected. + + + + + Clear the recording directory button + + + + + Clear Recording Directory + + + + + Click the button to clear the currently selected recording directory. This will prevent recording until a new value is selected. + + + + Checkbox to turn on or off server recording Spunta per abilitare o disabilitare la registrazione sul server - + Enable Recorder Abilita Registrazione - + Checked when the recorder is enabled, otherwise unchecked. The recorder will run when a session is in progress, if (set up correctly and) enabled. Se selezionato la registrazione è abilitata. La registrazione verrà eseguito quando è in corso una sessione, se (impostato correttamente e abilitato). - + Current session directory text box (read-only) Casella di testo per la Cartella della sessione Corrente (Sola Lettura) - + Current Session Directory Cartella della sessione Corrente - + Enabled during recording and holds the current recording session directory. Disabled after recording or when the recorder is not enabled. Abilitato durante la registrazione e imposta la directory della sessione di registrazione. Disabilitato dopo la registrazione o quando il registratore non è abilitato. - + Recorder status label Etichetta dello stato di Registrazione - + Recorder Status Stato di Registrazione - + + Displays the current status of the recorder. The following values are possible: + + + + + No recording directory has been set or the value is not useable + + + + + Recording has been switched off + + + + + by the UI checkbox + + + + + , either by the UI checkbox or SIGUSR2 being received + + + + + There is no one connected to the server to record + + + + + The performers are being recorded to the specified session directory + + + + + NOTE + + + + + If the recording directory is not useable, the problem will be displayed in place of the directory. + + + + + ERROR + + + Displays the current status of the recorder. - Visualizza lo stato del registratore. + Visualizza lo stato del registratore. - + Request new recording button Pulsante per una nuova registrazione - + New Recording Nuova Registrazione - + During a recording session, the button can be used to start a new recording. Durante una sessione di registrazione questo pulsante può essere usato per iniziare una nuova registrazione. - - + + E&xit &Esci - + &Hide &Nascondi - - - + + + server server - + &Open &Apri - + server server - + Server Server - + &Window &Finestra - + + Select Main Recording Directory + + + + Predefined Address Indirizzo Predefinito - Recording - Registrazione + Registrazione - Not recording - Registrazione Ferma + Registrazione Ferma - Not enabled - Non Abilitata + Non Abilitata - + Unregistered Non registrato - + Bad address Indirizzo Errato - + Registration requested Registrazione richiesta - + Registration failed Registrazione fallita - + Check server version Controlla Versione server - + Registered Registrato - + Central Server full Server Centrale Pieno - + Your server version is too old - + Requirements not fulfilled - + Unknown value Valore sconosciuto @@ -2788,7 +2902,7 @@ - + STATUS STATO @@ -2797,6 +2911,21 @@ Custom Central Server Address: Indirizzo server centrale alternativo: + + + Recording Directory + + + + + Enable Jam Recorder + + + + + New Recording + Nuova Registrazione + Central Server Address: Indirizzo Server Centrale: @@ -2817,22 +2946,19 @@ Ubicazione: Paese - Enable jam recorder - Abilita Registrazione Jam + Abilita Registrazione Jam - New recording - Nuova Registrazione + Nuova Registrazione - Recordings folder - Cartella di Registrazione + Cartella di Registrazione - + TextLabelNameVersion TextLabelNameVersion @@ -3023,17 +3149,17 @@ QCoreApplication - + , Version Versione, Versione - + Internet Jam Session Software Programma per Jam Session su Internet - + Released under the GNU General Public License (GPL) Rilasciato sotto licensa GNU General Public License (GPL) @@ -3041,7 +3167,7 @@ global - + For more information use the What's This help (help menu, right mouse button or Shift+F1) Per maggiori informazioni usare il comando "Cos'è Questo" (Menù Aiuto, Tasto destro del mouse oppure Shift+F1) diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index c157afc8e6..e9c18a204f 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -67,47 +67,52 @@ 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 - + Italian Italiaans - + German Duits - + + Polish + + + + About Over @@ -183,32 +188,32 @@ CAudioMixerBoard - + Personal Mix at the Server Eigen mix op de Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Indien verbonden met de server kan hier de lokale mix ingesteld worden zonder dat hetgeen anderen van je horen wordt beïnvloed. De titel toont de servernaam en indien bekend of er audio wordt opgenomen. - + Server Server - + T R Y I N G T O C O N N E C T A A N H E T V E R B I N D E N - + RECORDING ACTIVE GELUIDSOPNAME ACTIEF - + Personal Mix at: Eigen mix op: @@ -217,33 +222,45 @@ CChannelFader - - + + Pan Pan - - + + Mute Demp - - + + Solo Solo - - + + No grouping + + + + + + + + Assign to group + + + + Grp Grp - + Channel Level Kanaalniveau @@ -252,12 +269,12 @@ Geeft het pre-fader-audioniveau van dit kanaal weer. Alle verbonden clients op de server krijgen een audioniveau toegewezen, dezelfde waarde voor elke client. - + Input level of the current audio channel at the server Invoerniveau van het huidige audiokanaal op de server - + Mixer Fader Mixer Fader @@ -266,42 +283,42 @@ Past het geluidsniveau van dit kanaal aan. Alle verbonden clients op de server krijgen een audiofader toegewezen bij elke client, waarbij de lokale mix wordt aangepast. - + Local mix level setting of the current audio channel at the server Lokale instelling van het mixniveau van het huidige audiokanaal op de server - + Status Indicator Statusindicatie - + Shows a status indication about the client which is assigned to this channel. Supported indicators are: Toont de status van de muzikant die aan dit kanaal is toegewezen. Ondersteunde indicaties: - + Status indicator label Statusindicatielabel - + Panning Panning - + Local panning position of the current audio channel at the server Lokale panning-positie van het huidige audiokanaal op de server - + With the Mute checkbox, the audio channel can be muted. Met het selectievakje Demp kan het audiokanaal worden gedempt. - + Mute button Dempknop @@ -310,12 +327,12 @@ Met het selectievakje Solo kan het audiokanaal worden ingesteld op solo, zodat alle overige kanalen worden gedempt. Het is mogelijk om meer dan één kanaal op solo in te stellen. - + Solo button Soloknop - + Fader Tag Fader tag @@ -324,139 +341,139 @@ De fadertag identificeert de verbonden client. De tagnaam, de afbeelding van uw instrument en een vlag van uw land kunnen in het hoofdvenster worden ingesteld. - + Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. Geeft het pre-fader-audioniveau van dit kanaal weer. Alle clients die verbonden zijn met de server krijgen een audioniveau toegewezen, dezelfde waarde voor elke client. - + Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. - + Speaker with cancellation stroke: Indicates that another client has muted you. Doorgestreepte luidspreker: Geeft aan dat een andere muzikant je gedempt heeft. - + Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. Legt de panning-positie van links naar rechts vast. Werkt alleen in stereo of bij voorkeur mono in/stereo uit mode. - + With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. Met het selectievakje Solo kan het audiokanaal worden ingesteld op solo, zodat alle overige kanalen worden gedempt. Het is mogelijk om meer dan één kanaal op solo in te stellen. - + Group Groep - + With the Grp checkbox, a group of audio channels can be defined. All channel faders in a group are moved in proportional synchronization if any one of the group faders are moved. Met de Grp checkbox kan een groep van audiokanalen worden gedefinieerd. Alle kanaalfaders in een groep bewegen mee indien een van de faders wordt verschoven. - + Group button Groepknop - + The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. De fadertag identificeert de verbonden client. De tagnaam, de afbeelding van uw instrument en een vlag van uw land kunnen in het hoofdvenster worden ingesteld. - + Mixer channel instrument picture Afbeelding van het mengkanaalinstrument - + Mixer channel label (fader tag) Label van het mengkanaal (faderlabel) - + Mixer channel country flag Landvlag van het kanaal - + PAN PAN - + MUTE DEMP - + SOLO SOLO - + GRP GRP - + M M - + S S - + G G - + Alias/Name Alias/Naam - + Instrument Instrument - + Location Locatie - - - + + + Skill Level Vaardigheidssniveau - + Beginner Beginner - + Intermediate Gemiddeld - + Expert Gevorderd - + Musician Profile Muzikantenprofiel @@ -609,7 +626,7 @@ - + L L @@ -831,93 +848,98 @@ Status van de buffers LED-indicator - - + + C&onnect C&onnect - + &View &Bekijken - + &Connection Setup... &Verbindingsinstellingen... - + My &Profile... Mijn &Profiel... - + C&hat... C&hat... - + &Settings... &Settings... - + &Analyzer Console... &Analyzer Console... - + E&xit E&xit - + &Edit &Bewerken - + Sort Channel Users by &Name Sorteer muzikanten op &naam - + Sort Channel Users by &Instrument Sorteer muzikanten op &instrument - + + Sort Channel Users by &Group + + + + None Geen - + Center Centrum - + R R - + Central Server Centrale Server - + user gebruiker - + users gebruikers - + D&isconnect &Afmelden @@ -925,72 +947,72 @@ CClientDlgBase - + Delay Vertraging - + Buffers Buffers - + Input Invoer - + L L - + R R - + Settings Instellingen - + Chat Chat - + Mute Myself Demp Mijzelf - + C&onnect &Verbinden - + Pan Pan - + Center Centrum - + Reverb Galm - + Left Links - + Right Rechts @@ -998,7 +1020,7 @@ CClientSettingsDlg - + Jitter Buffer Size Jitter Buffermaat @@ -1011,7 +1033,7 @@ De jitter-buffergrootte kan handmatig worden gekozen voor de lokale client en de externe server. Voor de lokale jitterbuffer worden drop-outs in de audiostream aangegeven door het lampje op de onderkant van de faders voor de jitterbuffergrootte. Als het lampje op rood springt, heeft er een bufferoverschrijding/onderbenedenrijding plaatsgevonden en wordt de audiostream onderbroken. - + The jitter buffer setting is therefore a trade-off between audio quality and overall delay. De jitterbufferinstelling is dus een afweging tussen geluidskwaliteit en totale vertraging. @@ -1024,122 +1046,122 @@ In het geval dat de automatische instelling van de jitterbuffer is ingeschakeld, worden de netwerkbuffers van de lokale client en de externe server op een conservatieve waarde gezet om de kans op audio-uitval te minimaliseren. Om de audio delay/latentie te tweaken is het aan te raden om de automatische instelling uit te schakelen en de grootte van de jitterbuffer handmatig te verlagen met behulp van de schuifregelaars totdat de persoonlijke aanvaardbare limiet van het aantal drop-outs is bereikt. De LED-indicator zal de audio dropouts van de lokale jitterbuffer visualiseren met een rood lampje. - + Local jitter buffer slider control Lokale jitter-buffer-schuifregelaar - + Server jitter buffer slider control Server jitter-buffer-schuifregelaar - + Auto jitter buffer switch Automatische jitterbufferschakelaar - + Jitter buffer status LED indicator Jitter-buffer status LED-indicator - + Sound Card Device Geluidskaartapparaat - + The ASIO driver (sound card) can be selected using Het ASIO-stuurprogramma (geluidskaart) kan worden geselecteerd met behulp van - + 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. onder het Windows besturingssysteem. Onder MacOS/Linux is geen geluidskaartkeuze mogelijk. Als het geselecteerde ASIO-stuurprogramma niet geldig is, wordt een foutmelding weergegeven en wordt het vorige geldige stuurprogramma geselecteerd. - + If the driver is selected during an active connection, the connection is stopped, the driver is changed and the connection is started again automatically. Als het stuurprogramma tijdens een actieve verbinding wordt geselecteerd, wordt de verbinding gestopt, wordt het stuurprogramma gewijzigd en wordt de verbinding automatisch opnieuw gestart. - + Sound card device selector combo box Geluidskaart apparaat selector combo box - + If the ASIO4ALL driver is used, please note that this driver usually introduces approx. 10-30 ms of additional audio delay. Using a sound card with a native ASIO driver is therefore recommended. In het geval dat de ASIO4ALL driver wordt gebruikt, dient u er rekening mee te houden dat deze driver meestal ongeveer 10-30 ms extra geluidsvertraging introduceert. Het gebruik van een geluidskaart met een native ASIO-driver wordt daarom aanbevolen. - + If you are using the kX ASIO driver, make sure to connect the ASIO inputs in the kX DSP settings panel. Als u het kX ASIO-stuurprogramma gebruikt, zorg er dan voor dat u de ASIO-ingangen in het kX DSP-instellingenpaneel aansluit. - + Sound Card Channel Mapping Geluidskaartkanalen in kaart brengen - + If the selected sound card device offers more than one input or output channel, the Input Channel Mapping and Output Channel Mapping settings are visible. In het geval dat het geselecteerde geluidskaartapparaat meer dan één ingangs- of uitgangskanaal biedt, zijn de instellingen voor het ingangs- en uitgangskanaal in kaart brengen zichtbaar. - + For each Voor elke - + input/output channel (Left and Right channel) a different actual sound card channel can be selected. Invoer-/uitvoerkanaal (linker- en rechterkanaal) kan een ander daadwerkelijk kanaal van de geluidskaart worden geselecteerd. - + Left input channel selection combo box Linker ingangskanaal selectie combo box - + Right input channel selection combo box Juiste ingangskanaal selectie combo box - + Left output channel selection combo box Linkeruitgangskanaal selectie combobox - + Right output channel selection combo box Rechter uitgangskanaal selectie combo box - + Enable Small Network Buffers Kleine netwerkbuffers inschakelen - + If enabled, the support for very small network audio packets is activated. Very small network packets are only actually used if the sound card buffer delay is smaller than Indien ingeschakeld, wordt de ondersteuning voor zeer kleine netwerkaudiopakketten geactiveerd. Zeer kleine netwerkpakketten worden alleen daadwerkelijk gebruikt als de buffervertraging van de geluidskaart kleiner is dan - + samples. The smaller the network buffers, the lower the audio latency. But at the same time the network load increases and the probability of audio dropouts also increases. monsters. Hoe kleiner de netwerkbuffers, hoe kleiner de audiolatentie. Maar tegelijkertijd neemt de netwerkbelasting toe en neemt ook de kans op audio-uitval toe. - + Enable small network buffers check box Schakel het selectievakje kleine netwerkbuffers in - + Sound Card Buffer Delay Geluidskaartbuffervertraging @@ -1152,7 +1174,7 @@ software. Deze instelling heeft invloed op veel verbindingseigenschappen. - + Three buffer sizes are supported Drie buffermaten worden ondersteund @@ -1185,12 +1207,12 @@ software zal nog steeds werken met deze instelling, maar met beperkte prestaties. - + The actual buffer delay has influence on the connection status, the current upload rate and the overall delay. The lower the buffer size, the higher the probability of a red light in the status indicator (drop outs) and the higher the upload rate and the lower the overall delay. De werkelijke buffervertraging heeft invloed op de verbindingsstatus, de huidige uploadsnelheid en de totale vertraging. Hoe lager de buffergrootte, hoe hoger de kans op rood licht in de statusindicator (drop outs) en hoe hoger de uploadsnelheid en hoe lager de totale vertraging. - + The buffer setting is therefore a trade-off between audio quality and overall delay. De bufferinstelling is dus een afweging tussen de geluidskwaliteit en de totale vertraging. @@ -1203,22 +1225,22 @@ software. Druk in Windows op de knop ASIO Setup om het instellingenpaneel van het stuurprogramma te openen. Op Linux gebruikt u de Jack-configuratietool om de grootte van de buffer te wijzigen. - + 64 samples setting radio button 64 monsters instellen radioknop - + 128 samples setting radio button 128 voorbeelden van het instellen van de radioknop - + 256 samples setting radio button 256 voorbeelden van het instellen van het radioknopje - + ASIO setup push button ASIO-instellingsdrukknop @@ -1235,22 +1257,22 @@ Fancy skin check box - + Display Channel Levels Weergave Kanaalniveaus - + If enabled, each client channel will display a pre-fader level bar. Indien ingeschakeld, zal elk clientkanaal een pre-fader niveau balk weergeven. - + Display channel levels check box Vinkje bij de weergave van de kanaalniveaus - + Audio Channels Audiokanalen @@ -1267,12 +1289,12 @@ In het geval van de stereo streaming-mode is er geen audiokanaalselectie voor het galmeffect beschikbaar op het hoofdvenster, aangezien het effect in dit geval op beide kanalen wordt toegepast. - + Audio channels combo box Audiokanalen combo-box - + Audio Quality Audiokwaliteit @@ -1281,12 +1303,12 @@ Selecteer de gewenste audiokwaliteit. Er kan een lage, normale of hoge audiokwaliteit worden geselecteerd. Hoe hoger de audiokwaliteit, hoe meer audiodata moet worden verstuurd. Zorg ervoor dat de vereiste bandbreedte niet hoger is dan de beschikbare bandbreedte van uw internetverbinding. - + Audio quality combo box Audiokwaliteit combo-box - + New Client Level Nieuw clientniveau @@ -1295,12 +1317,12 @@ De nieuwe instelling van het clientniveau definieert het faderniveau van een nieuwe verbonden client in procenten. D.w.z. als een nieuwe client verbinding maakt met de server, krijgt hij het opgegeven initiële faderniveau als er in de vorige verbinding niets is opgeslagen. - + New client level edit box Nieuw bewerkingsvak op clientniveau - + Custom Central Server Address Eigen centrale serveradres @@ -1317,12 +1339,12 @@ Centraal serveradrestype combo box - + Central server address line edit Centraal serveradres bewerking van de lijn - + Current Connection Status Parameter Huidige verbindingsstatus-parameter @@ -1339,201 +1361,201 @@ De upstreamsnelheid is afhankelijk van de huidige grootte van het audiopakket en de instelling van de audiocompressie. Zorg ervoor dat de upstreamsnelheid niet hoger is dan de beschikbare snelheid (controleer de upstreammogelijkheden van uw internetverbinding door bijvoorbeeld speedtest.net te gebruiken). - + If this LED indicator turns red, you will not have much fun using the Als deze LED-indicator rood wordt, zult u niet veel plezier beleven aan het gebruik van de - + software. software. - + ASIO Setup ASIO-instelling - - + + Mono Mono - + mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. modus verhoogt de bandbreedte van de audiostream. Zorg ervoor dat deze niet hoger staat dan de beschikbare bandbreedte van uw internetverbinding. - + Mono-in/Stereo-out Mono-in/Stereo-out - - - + + + Stereo Stereo - + The jitter buffer compensates for network and sound card timing jitters. The size of the buffer therefore influences the quality of the audio stream (how many dropouts occur) and the overall delay (the longer the buffer, the higher the delay). De jitterbuffer compenseert voor jitters als gevolg van netwerk- en geluidskaart timing. De grootte van de jitterbuffer beïnvloed de kwaliteit van de audiostream (aantal dropouts) en de totale vertraging (hoe groter de buffer, des te groter de vertraging). - + You can set the jitter buffer size manually for the local client and the remote server. For the local jitter buffer, dropouts in the audio stream are indicated by the light below the jitter buffer size faders. If the light turns to red, a buffer overrun/underrun has taken place and the audio stream is interrupted. De jitter-buffergrootte kan handmatig worden gekozen voor de client en de server. Voor de lokale jitterbuffer worden drop-outs in de audiostream aangegeven door het lampje op de onderkant van de faders voor de jitterbuffergrootte. Als het lampje op rood springt, heeft er een bufferoverschrijding/onderbenedenrijding plaatsgevonden en wordt de audiostream onderbroken. - + If the Auto setting is enabled, the jitter buffers of the local client and the remote server are set automatically based on measurements of the network and sound card timing jitter. If Auto is enabled, the jitter buffer size faders are disabled (they cannot be moved with the mouse). Als de Auto-instelling aanstaat worden de jitterbuffers lokaal en op de server automatisch aangepast op basis van metingen van het netwerk en de geluidskaart. Indien ingeschakeld kunnen de faders van de jitterbuffer niet handmatig worden bewogen. - + If the Auto setting 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 and to lower the jitter buffer size manually by using the sliders until your personal acceptable amount of dropouts is reached. The LED indicator will display the audio dropouts of the local jitter buffer with a red light. In het geval dat de automatische instelling van de jitterbuffer is ingeschakeld, worden de netwerkbuffers van de lokale client en de externe server op een conservatieve waarde gezet om de kans op audio-uitval te minimaliseren. Om de audio delay/latentie te tweaken is het aan te raden om de automatische instelling uit te schakelen en de grootte van de jitterbuffer handmatig te verlagen met behulp van de schuifregelaars totdat de persoonlijke aanvaardbare limiet van het aantal drop-outs is bereikt. De LED-indicator zal de audio dropouts van de lokale jitterbuffer visualiseren met een rood lampje. - + The buffer delay setting is a fundamental setting of this software. This setting has an influence on many connection properties. De buffervertraging is een fundamentele instelling van dit programma. Deze instelling beïnvloed vele eigenschappen van de verbinding. - + 64 samples: The preferred setting. Provides the lowest latency but does not work with all sound cards. 64 samples: Voorkeursinstelling. Geeft de kleinste vertraging maar werkt niet met alle geluidskaarten. - + 128 samples: Should work for most available sound cards. 128 samples: Werkt voor de meeste geluidskaarten. - + 256 samples: Should only be used on very slow computers or with a slow internet connection. 256 samples: Alleen te gebruiken bij langzame computers of met een langzame internetverbinding. - + Some sound card drivers do not allow the buffer delay to be changed from within the application. In this case the buffer delay setting is disabled and has to be changed using the sound card driver. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. Sommige stuurprogramma's van geluidskaarten laten het niet toe de buffervertraging in het programma aan te passen. In dat geval dient het te worden aangepast bij het stuurprogramma zelf. Bij Windows, selecteer de ASIO Setup knop om dit in te stellen. Op Linux, gebruik de Jack configuration tool om de buffergrootte te veranderen. - + If no buffer size is selected and all settings are disabled, an unsupported buffer size is used by the driver. The application will still work with this setting but with restricted performance. Indien geen buffergrootte is aangegeven en instellingen zijn uitgeschakeld, dan gebruikt het stuurprogramma een niet-ondersteunde buffergrootte. Het programma zal niet optimaal presteren. - + If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. Sommige stuurprogramma's van geluidskaarten laten het niet toe de buffervertraging in het programma aan te passen. In dat geval dient het te worden aangepast bij het stuurprogramma zelf. Bij Windows, selecteer de ASIO Setup knop om dit in te stellen. Op Linux, gebruik de Jack configuration tool om de buffergrootte te veranderen. - + Skin Skin - + Select the skin to be used for the main window. Selecteer de te gebruiken skin voor het hoofdvenster. - + Skin combo box Skin combobox - + Selects the number of audio channels to be used for communication between client and server. There are three modes available: Selecteer het aantal audiokanalen voor communicatie tussen client en server. Er zijn drie modi beschikbaar: - + and en - + These modes use one and two audio channels respectively. Deze modi gebruiken respectievelijk een en twee audiokanalen. - + Mono in/Stereo-out Mono in/Stereo uit - + The audio signal sent to the server is mono but the return signal is stereo. This is useful if the sound card has the instrument on one input channel and the microphone on the other. In that case the two input signals can be mixed to one mono channel but the server mix is heard in stereo. Het audiosignaal naar de server is mono maar wat terugkomt is stereo. Dit is handig als de gelsuidskaart het instrument op een invoerkanaal heeft en de microfoon op een ander. In dat geval kunnen de twee signalen gemixed worden naar een monokanaal terwijl de server mix in stereo blijft. - + Enabling Aanzetten - + In stereo streaming mode, no audio channel selection for the reverb effect will be available on the main window since the effect is applied to both channels in this case. In het geval van de stereo streaming-mode is er geen audiokanaalselectie voor het galmeffect beschikbaar op het hoofdvenster, aangezien het effect in dit geval op beide kanalen wordt toegepast. - + The higher the audio quality, the higher your audio stream's data rate. Make sure your upload rate does not exceed the available bandwidth of your internet connection. Hoe hoger de audiokwaliteit, des te hoger de benodigde bandbreedte. Zorg ervoor dat deze niet hoger staat dan de beschikbare bandbreedte van uw internetverbinding. - + This setting defines the fader level of a newly connected client in percent. If a new client connects to the current server, they will get the specified initial fader level if no other fader level from a previous connection of that client was already stored. Deze instelling stelt het faderniveau in van een nieuwe verbonden client in procenten. Als een nieuwe client verbinding maakt krijgt hij het opgegeven initiële faderniveau als dit in de vorige verbinding niet was opgeslagen. - + Leave this blank unless you need to enter the address of a central server other than the default. Laat dit leeg tenzij u een centrale serveradres wilt invoeren dat anders is dan de standaard. - + The Ping Time is the time required for the audio stream to travel from the client to the server and back again. This delay is introduced by the network and should be about 20-30 ms. If this delay is higher than about 50 ms, your distance to the server is too large or your internet connection is not sufficient. De ping-tijd is de tijd die nodig is voor de audiostream om van de client naar de server en terug te reizen. Deze vertraging wordt veroorzaakt door het netwerk en bedraagt ongeveer 20-30 ms. Als deze vertraging hoger is dan circa 50 ms, dan is uw afstand tot de server te groot of is uw internetverbinding niet toereikend. - + Overall Delay is calculated from the current Ping Time and the delay introduced by the current buffer settings. De totale vertraging wordt berekend op basis van de huidige ping-tijd en de vertraging door de huidige bufferinstellingen. - + Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net). De upstreamsnelheid is afhankelijk van de huidige grootte van het audiopakket en de instelling van de audiocompressie. Zorg ervoor dat de upstreamsnelheid niet hoger is dan de beschikbare snelheid (controleer de upstreammogelijkheden van uw internetverbinding door bijvoorbeeld speedtest.net te gebruiken). - + Low Laag - - + + Normal Normaal - + High Hoog - + Fancy Fancy - + Compact Compact @@ -1542,32 +1564,32 @@ Handmatig - + Custom Aangepast - + All Genres Alle genres - + Genre Rock Genre Rock - + Genre Jazz Genre Jazz - + Genre Classical/Folk/Choir Genre Klassiek/Folk/Zang - + Default Standaard @@ -1576,38 +1598,38 @@ Standaard (Noord-Amerika) - + preferred gewenst - - + + Size: Size: - + Buffer Delay Buffervertraging - + Buffer Delay: Buffervertraging: - + The selected audio device could not be used because of the following error: Het geselecteerde audioapparaat kon niet worden gebruikt vanwege de volgende fout: - + The previous driver will be selected. Het vorige stuurprogramma wordt geselecteerd. - + Ok Ok @@ -1947,28 +1969,28 @@ CHelpMenu - + &Help &Hulp - - + + Getting &Started... &Aan de slag... - + Software &Manual... Software&handleiding... - + What's &This Wat Is &Dit - + &About... &Over... @@ -1976,102 +1998,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. @@ -2079,60 +2101,60 @@ 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 @@ -2149,252 +2171,252 @@ 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. - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level 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 je vaardigheidsniveau kunnen ook worden toegevoegd. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Wat u hier instelt verschijnt bij uw fader op het mengpaneel indien verbonden met een Jamulus-server. Deze tag zal ook worden getoond aan andere muzikanten die met deze server verbonden zijn. - + 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 - + Vocal Bass Bas (stem) - + Vocal Tenor Tenor (stem) - + Vocal Alto Alt (stem) - + Vocal Soprano Sopraan (stem) - + Banjo Banjo - + Mandolin Mandoline - + Ukulele Ukelele - + Bass Ukulele Ukelele-bas - + No Name Geen naam @@ -2569,111 +2591,203 @@ + Display dialog to select recording directory button + + + + + + Main Recording Directory + + + + + Click the button to open the dialog that allows the main recording directory to be selected.The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). + + + + + Main recording directory text box (read-only) + + + + + The current value of the main recording directory. The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). Click the button to open the dialog that allows the main recording directory to be selected. + + + + + Clear the recording directory button + + + + + Clear Recording Directory + + + + + Click the button to clear the currently selected recording directory. This will prevent recording until a new value is selected. + + + + Checkbox to turn on or off server recording Checkbox om geluidsopname op de server in of uit te schakelen - + Enable Recorder Geluidsopname inschakelen - + Checked when the recorder is enabled, otherwise unchecked. The recorder will run when a session is in progress, if (set up correctly and) enabled. Aangevinkt indien de geluidsrecorder aanstaat. De geluidsrecorder zal dan sessie opnemen. - + Current session directory text box (read-only) Huidige sessie directory text box (read-only) - + Current Session Directory Huidige sessie directory - + Enabled during recording and holds the current recording session directory. Disabled after recording or when the recorder is not enabled. Ingeschakeld tijdens geluidsopname en bevat de sessie-directory. Uitgeschakeld na geluidsopname of wanneer geluidsopname uit staat. - + Recorder status label Geluidsopname statuslabel - + Recorder Status Geluidsopname status - + + Displays the current status of the recorder. The following values are possible: + + + + + No recording directory has been set or the value is not useable + + + + + Recording has been switched off + + + + + by the UI checkbox + + + + + , either by the UI checkbox or SIGUSR2 being received + + + + + There is no one connected to the server to record + + + + + The performers are being recorded to the specified session directory + + + + + NOTE + + + + + If the recording directory is not useable, the problem will be displayed in place of the directory. + + + + + ERROR + + + Displays the current status of the recorder. - Toont de huidige status van de geluidsopname. + Toont de huidige status van de geluidsopname. - + Request new recording button Knop om nieuwe geluidsopname aan te vragen - + New Recording Nieuwe geluidsopname - + During a recording session, the button can be used to start a new recording. Tijdens een opnamesessie kan de knio gebruikt worden om een nieuwe opname te starten. - - + + E&xit &Sluiten - + &Hide &Verbergen - - - + + + server server - + &Open &Open - + server server - + + Select Main Recording Directory + + + + Predefined Address Standaardadres - Recording - Neemt op + Neemt op - Not recording - Neemt niet op + Neemt niet op - Not enabled - Niet ingeschakeld + Niet ingeschakeld Manual @@ -2688,62 +2802,62 @@ Standaard (Noord-Amerika) - + Server Server - + &Window &Window - + Unregistered Niet geregistreerd - + Bad address Slecht adres - + Registration requested Aanmelding gevraagd - + Registration failed Registratie is mislukt - + Check server version Controleer de versie van de server - + Registered Geregistreerd - + Central Server full Centrale server vol - + Your server version is too old Je serverversie is te oud - + Requirements not fulfilled Vereisten niet gehaald - + Unknown value Onbekende waarde @@ -2788,7 +2902,7 @@ - + STATUS STATUS @@ -2797,6 +2911,21 @@ Custom Central Server Address: Eigen centrale serveradres: + + + Recording Directory + + + + + Enable Jam Recorder + + + + + New Recording + Nieuwe geluidsopname + Central Server Address: Adres Centrale Server: @@ -2817,22 +2946,19 @@ Locatie: Land - Enable jam recorder - Geluidsopname activeren + Geluidsopname activeren - New recording - Nieuwe geluidsopname + Nieuwe geluidsopname - Recordings folder - Geluidsopname folder + Geluidsopname folder - + TextLabelNameVersion TextLabelNameVersion @@ -3023,17 +3149,17 @@ QCoreApplication - + , Version , Versie - + Internet Jam Session Software Internet Jamsessie Software - + Released under the GNU General Public License (GPL) Gereleased onder de GNU General Public License (GPL) @@ -3041,7 +3167,7 @@ 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_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index 182419d019..097b116c5f 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -4,100 +4,89 @@ CAboutDlg - + Qt cross-platform application framework - + Audio reverberation code by Perry R. Cook and Gary P. Scavone - + Some pixmaps are from the - + This app enables musicians to perform real-time jam sessions over the internet. - + There is a server which collects the audio data from each client, mixes the audio data and sends the mix back to each client. - + This app uses the following libraries, resources or code snippets: - + Country flag icons by Mark James - + For details on the contributions check out the - + Github Contributors list - + Spanish hiszpaÅ„ski - + French francuski - + Portuguese portugalski - + Dutch holenderski - + Italian wÅ‚oski - + German niemiecki - - About - O programie - - - - , Version - , wersja - - - - - Internet Jam Session Software + + Polish - - Released under the GNU General Public License (GPL) - + + About + O programie @@ -160,18 +149,33 @@ CAudioMixerBoard - + + Personal Mix at the Server + + + + + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. + + + + Server Serwer - + T R Y I N G T O C O N N E C T P R Ó B U J Ę S I Ę P O Å Ä„ C Z Y Ć - - Personal Mix at the Server: + + RECORDING ACTIVE + + + + + Personal Mix at: @@ -179,190 +183,244 @@ CChannelFader - + + Pan - + Panorama - - + + Mute - - + + Solo - + Channel Level - + Input level of the current audio channel at the server - + Mixer Fader - + Local mix level setting of the current audio channel at the server - + Status Indicator - + Shows a status indication about the client which is assigned to this channel. Supported indicators are: - + Status indicator label - + Panning - + Local panning position of the current audio channel at the server - + With the Mute checkbox, the audio channel can be muted. - + Mute button - + Solo button - + Fader Tag - + Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. - + + No grouping + + + + + + + + Assign to group + + + + Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. - + Speaker with cancellation stroke: Indicates that another client has muted you. - + Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. - + With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. - + + Group + + + + + With the Grp checkbox, a group of audio channels can be defined. All channel faders in a group are moved in proportional synchronization if any one of the group faders are moved. + + + + + Group button + + + + The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. - + Mixer channel instrument picture - + Mixer channel label (fader tag) - + Mixer channel country flag - + PAN - + MUTE - + SOLO - - Alias/Name + + GRP - - Instrument + + M - - Location + + S + + + + + G - - - + + Grp + + + + + Alias/Name + Nick/ImiÄ™ + + + + Instrument + Instrument + + + + Location + Lokalizacja + + + + + Skill Level - + Beginner - + PoczÄ…tkujÄ…cy - + Intermediate - + Åšredniozaawansowany - + Expert - + Ekspert - + Musician Profile - + Profil muzyka @@ -397,23 +455,41 @@ New chat text edit box Pole edycji nowego tekstu czatu + + + Type a message here + + + + + &Edit + &Edytuj + + + + Cl&ear Chat History + + CChatDlgBase - + Chat Czat - + + &Send + + + Cl&ear - &Wyczyść + &Wyczyść - &Close - &Zamknij + &Zamknij @@ -455,9 +531,9 @@ - + L - + L @@ -625,88 +701,98 @@ - - + + C&onnect &Połącz - + &View &Widok - + &Connection Setup... &Konfiguracja połączenia... - + My &Profile... Mój &profil... - + C&hat... &Czat... - + &Settings... &Ustawienia... - + &Analyzer Console... &Konsola analizatora... - + E&xit &Wyjdź - + &Edit &Edytuj - - &Sort Channel Users by Name + + Sort Channel Users by &Name - - None + + Sort Channel Users by &Instrument - - Center + + Sort Channel Users by &Group - + + None + Å»aden + + + + Center + Åšrodek + + + R - + P - + Central Server - + user - + users - + D&isconnect &Rozłącz @@ -714,74 +800,74 @@ CClientDlgBase - + Delay * nie jestem pewna Opóźnienie - + Buffers Bufory - + Input WejÅ›cie - + L L - + R P - + Settings Ustawienia - + Chat Czat - + Mute Myself Wycisz mnie - + C&onnect &Połącz - + Pan Panorama - + Center Åšrodek - + Reverb PogÅ‚os - + Left Lewy - + Right Prawy @@ -789,481 +875,492 @@ nie jestem pewna CClientSettingsDlg - + Jitter Buffer Size - + The jitter buffer setting is therefore a trade-off between audio quality and overall delay. - + Local jitter buffer slider control - + Server jitter buffer slider control - + Auto jitter buffer switch - + Jitter buffer status LED indicator - + Sound Card Device - + The ASIO driver (sound card) can be selected using - + 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. - + If the driver is selected during an active connection, the connection is stopped, the driver is changed and the connection is started again automatically. - + Sound card device selector combo box - + If you are using the kX ASIO driver, make sure to connect the ASIO inputs in the kX DSP settings panel. - + Sound Card Channel Mapping - + For each - + input/output channel (Left and Right channel) a different actual sound card channel can be selected. - + Left input channel selection combo box - + Right input channel selection combo box - + Left output channel selection combo box - + Right output channel selection combo box - + Enable Small Network Buffers - + If enabled, the support for very small network audio packets is activated. Very small network packets are only actually used if the sound card buffer delay is smaller than - + Enable small network buffers check box - + Sound Card Buffer Delay - + Three buffer sizes are supported - + The buffer setting is therefore a trade-off between audio quality and overall delay. - + 128 samples setting radio button - + 256 samples setting radio button - + ASIO setup push button - - Fancy Skin + + Fancy - - If enabled, a fancy skin will be applied to the main window. + + Compact - - Fancy skin check box - - - - + Display Channel Levels - + WyÅ›wietlaj poziomy kanaÅ‚y - + If enabled, each client channel will display a pre-fader level bar. - + Display channel levels check box - + Audio Channels - + KanaÅ‚y audio - + mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. - + Audio channels combo box - + Audio Quality - + Jakość audio - + Audio quality combo box - + New Client Level - + Poziom dołączajÄ…cego siÄ™ uczestnika - + New client level edit box - + Central server address line edit - + Current Connection Status Parameter - + If the ASIO4ALL driver is used, please note that this driver usually introduces approx. 10-30 ms of additional audio delay. Using a sound card with a native ASIO driver is therefore recommended. - + If the selected sound card device offers more than one input or output channel, the Input Channel Mapping and Output Channel Mapping settings are visible. - + samples. The smaller the network buffers, the lower the audio latency. But at the same time the network load increases and the probability of audio dropouts also increases. - + The actual buffer delay has influence on the connection status, the current upload rate and the overall delay. The lower the buffer size, the higher the probability of a red light in the status indicator (drop outs) and the higher the upload rate and the lower the overall delay. - + 64 samples setting radio button - + Custom Central Server Address - + + Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net). + + + + If this LED indicator turns red, you will not have much fun using the - + software. - + ASIO Setup - - + + Mono - + Mono-in/Stereo-out - - - + + + Stereo - + The jitter buffer compensates for network and sound card timing jitters. The size of the buffer therefore influences the quality of the audio stream (how many dropouts occur) and the overall delay (the longer the buffer, the higher the delay). - + You can set the jitter buffer size manually for the local client and the remote server. For the local jitter buffer, dropouts in the audio stream are indicated by the light below the jitter buffer size faders. If the light turns to red, a buffer overrun/underrun has taken place and the audio stream is interrupted. - + If the Auto setting is enabled, the jitter buffers of the local client and the remote server are set automatically based on measurements of the network and sound card timing jitter. If Auto is enabled, the jitter buffer size faders are disabled (they cannot be moved with the mouse). - + If the Auto setting 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 and to lower the jitter buffer size manually by using the sliders until your personal acceptable amount of dropouts is reached. The LED indicator will display the audio dropouts of the local jitter buffer with a red light. - + The buffer delay setting is a fundamental setting of this software. This setting has an influence on many connection properties. - + 64 samples: The preferred setting. Provides the lowest latency but does not work with all sound cards. - + 128 samples: Should work for most available sound cards. - + 256 samples: Should only be used on very slow computers or with a slow internet connection. - + Some sound card drivers do not allow the buffer delay to be changed from within the application. In this case the buffer delay setting is disabled and has to be changed using the sound card driver. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. - + If no buffer size is selected and all settings are disabled, an unsupported buffer size is used by the driver. The application will still work with this setting but with restricted performance. - + If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. - + + Skin + + + + + Select the skin to be used for the main window. + + + + + Skin combo box + + + + Selects the number of audio channels to be used for communication between client and server. There are three modes available: - + and - + These modes use one and two audio channels respectively. - + Mono in/Stereo-out - + The audio signal sent to the server is mono but the return signal is stereo. This is useful if the sound card has the instrument on one input channel and the microphone on the other. In that case the two input signals can be mixed to one mono channel but the server mix is heard in stereo. - + Enabling - + In stereo streaming mode, no audio channel selection for the reverb effect will be available on the main window since the effect is applied to both channels in this case. - + The higher the audio quality, the higher your audio stream's data rate. Make sure your upload rate does not exceed the available bandwidth of your internet connection. - + This setting defines the fader level of a newly connected client in percent. If a new client connects to the current server, they will get the specified initial fader level if no other fader level from a previous connection of that client was already stored. - + Leave this blank unless you need to enter the address of a central server other than the default. - + The Ping Time is the time required for the audio stream to travel from the client to the server and back again. This delay is introduced by the network and should be about 20-30 ms. If this delay is higher than about 50 ms, your distance to the server is too large or your internet connection is not sufficient. - + Overall Delay is calculated from the current Ping Time and the delay introduced by the current buffer settings. - - Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net. - - - - + Low - + + Normal - + High - + Custom - + All Genres - + Genre Rock - + Genre Jazz - + Genre Classical/Folk/Choir - + Default - + preferred - - + + Size: - + Buffer Delay - + Opóźnienie bufora - + Buffer Delay: - + The selected audio device could not be used because of the following error: - + The previous driver will be selected. - + Ok Ok @@ -1385,44 +1482,48 @@ nie jestem pewna Poziom dołączajÄ…cego siÄ™ uczestnika - + + Skin + + + + % % - Fancy Skin - Wuszukany wygÄ…d + Wuszukany wygÄ…d - + Display Channel Levels WyÅ›wietlaj poziomy kanaÅ‚y - + Custom Central Server Address: WÅ‚asny adres serwera centralnego: - + Audio Stream Rate PrÄ™dkość strumienia audio - - - + + + val wartość - + Ping Time Czas odpowiedzi - + Overall Delay Opóźnienie caÅ‚kowite @@ -1487,7 +1588,7 @@ nie jestem pewna Filter - + Filtr @@ -1502,7 +1603,7 @@ nie jestem pewna Show All Musicians - + Pokazuj wszystkich muzyków @@ -1576,28 +1677,28 @@ nie jestem pewna CHelpMenu - + &Help &Pomoc - - + + Getting &Started... &Zaczynajmy... - + Software &Manual... &Instrukcja programu... - + What's &This &Co to - + &About... &O programie... @@ -1605,102 +1706,102 @@ nie jestem pewna CLicenceDlg - + I &agree to the above licence terms - + Accept - + Decline - + By connecting to this server and agreeing to this notice, you agree to the following: - + 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. @@ -1708,312 +1809,312 @@ nie jestem pewna CMusProfDlg - - + + Musician Profile Profil muzyka - + Alias/Name Nick/ImiÄ™ - + Instrument Instrument - + Country Kraj - + City Miasto - + Skill UmiejÄ™tnoÅ›ci - + &Close &Zamknij - - - + + + None *nie jestem pewna Å»aden - + Beginner PoczÄ…tkujÄ…cy - + Intermediate Åšredniozaawansowany - + Expert Ekspert - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. - + Alias or name edit box - + Instrument picture button - + Country flag button - + City edit box - + Skill level combo box - + Drum Set Zestaw perkusyjny - + Djembe Djembe - + Electric Guitar Gitara elektryczna - + Acoustic Guitar Gitara akustyczna - + Bass Guitar Gitara basowa - + Keyboard Keyboard - + Synthesizer Syntezator - + Grand Piano Fortepian - + Accordion Akordeon - + Vocal Wokal - + Microphone Mikrofon - + Harmonica Harmonijka ustna - + Trumpet TrÄ…bka - + Trombone Puzon - + French Horn Waltornia - + Tuba Tuba - + Saxophone Saksofon - + Clarinet Klarnet - + Flute Flet - + Violin Skrzypce - + Cello Wiolonczela - + Double Bass Kontrabas - + Recorder *nie wiem Flet prosty - + Streamer Streamer - + Listener SÅ‚uchacz - + Guitar+Vocal Gitara+Wokal - + Keyboard+Vocal Keyboard+Wokal - + Bodhran Bodhran - + Bassoon Fagot - + Oboe Obój - + Harp Harfa - + Viola Altówka - + Congas Kongi - + Bongo Bongo - + Vocal Bass Bas - + Vocal Tenor Tenor - + Vocal Alto Alt - + Vocal Soprano Sopran - + Banjo Banjo - + Mandolin Mandolina - + Ukulele Ukulele - + Bass Ukulele Ukulele basowe - + No Name Brak nazwy @@ -2021,290 +2122,376 @@ nie jestem pewna CServerDlg - + Client List - + The client list shows all clients which are currently connected to this server. Some information about the clients like the IP address and name are given for each connected client. - + Connected clients list view - + Start Minimized on Operating System Start - + Show Creative Commons Licence Dialog - + If enabled, a Creative Commons BY-NC-SA 4.0 Licence dialog is shown each time a new user connects the server. - + Make My Server Public - + Register Server Status - + If the Make My Server Public check box is checked, this will show whether registration with the central server is successful. If the registration failed, please choose another server list. - + Custom Central Server Address - + The custom central server address is the IP address or URL of the central server at which the server list of the connection dialog is managed. - + Central server address line edit - + Server List Selection - + Selects the server list (i.e. central server address) in which your server will be added. - + Server list selection combo box - + Server Name - + Nazwa serwera - + Server name line edit - + Location City - + The city in which this server is located can be set here. If a city name is entered, it will be shown in the connect dialog server list at the clients. - + City where the server is located line edit - + Location country - + The country in which this server is located can be set here. If a country is entered, it will be shown in the connect dialog server list at the clients. - + Country where the server is located combo box - + + Display dialog to select recording directory button + + + + + + Main Recording Directory + + + + + Click the button to open the dialog that allows the main recording directory to be selected.The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). + + + + + Main recording directory text box (read-only) + + + + + The current value of the main recording directory. The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). Click the button to open the dialog that allows the main recording directory to be selected. + + + + + Clear the recording directory button + + + + + Clear Recording Directory + + + + + Click the button to clear the currently selected recording directory. This will prevent recording until a new value is selected. + + + + Checkbox to turn on or off server recording - + Enable Recorder - + Checked when the recorder is enabled, otherwise unchecked. The recorder will run when a session is in progress, if (set up correctly and) enabled. - + Current session directory text box (read-only) - + Current Session Directory - + Enabled during recording and holds the current recording session directory. Disabled after recording or when the recorder is not enabled. - + Recorder status label - + Recorder Status - - Displays the current status of the recorder. + + ERROR - + Request new recording button - + New Recording - + During a recording session, the button can be used to start a new recording. - - + + E&xit - + &Wyjdź - + &Hide - - - + + + server - + &Open - + server - + + Select Main Recording Directory + + + + Predefined Address - - Recording + + Server - - Not recording + + If the start minimized on operating system start check box is checked, the server will be started when the operating system starts up and is automatically minimized to a system task bar icon. - - Not enabled + + If the Make My Server Public check box is checked, this server registers itself at the central server so that all users of the application can see the server in the connect dialog server list and connect to it. The registration of the server is renewed periodically to make sure that all servers in the connect dialog server list are actually available. - - Server + + The server name identifies your server in the connect dialog server list at the clients. - - If the start minimized on operating system start check box is checked, the server will be started when the operating system starts up and is automatically minimized to a system task bar icon. + + Displays the current status of the recorder. The following values are possible: - - If the Make My Server Public check box is checked, this server registers itself at the central server so that all users of the application can see the server in the connect dialog server list and connect to it. The registration of the server is renewed periodically to make sure that all servers in the connect dialog server list are actually available. + + No recording directory has been set or the value is not useable - - The server name identifies your server in the connect dialog server list at the clients. + + Recording has been switched off + + + + + by the UI checkbox + + + + + , either by the UI checkbox or SIGUSR2 being received - + + There is no one connected to the server to record + + + + + The performers are being recorded to the specified session directory + + + + + NOTE + + + + + If the recording directory is not useable, the problem will be displayed in place of the directory. + + + + &Window - + Unregistered - + Bad address - + Registration requested - + Registration failed - + Check server version - + Registered - + Central Server full - + + Your server version is too old + + + + + Requirements not fulfilled + + + + Unknown value @@ -2318,7 +2505,7 @@ nie jestem pewna - + Name Nazwa @@ -2344,48 +2531,65 @@ nie jestem pewna Ustaw mój serwer jako publiczny (zarejestruj na liÅ›cie) - - + + Genre + + + + + STATUS STATUS - + Custom Central Server Address: - + WÅ‚asny adres serwera centralnego: - + My Server Info Informacje o serwerze - + Location: City Lokalizacja: Miasto - + Location: Country Lokalizacja: Kraj - + + Recording Directory + + + + + Enable Jam Recorder + + + + + New Recording + + + Enable jam recorder - Włącz nargywanie jam-u + Włącz nargywanie jam-u - New recording - Nowe nagranie + Nowe nagranie - Recordings folder - Katalog nagraÅ„ + Katalog nagraÅ„ - + TextLabelNameVersion @@ -2533,50 +2737,68 @@ nie jestem pewna - + The audio driver properties have changed to a state which is incompatible with this software. The selected audio device could not be used because of the following error: - + Please restart the software. - + Close Zamknij - + No usable - + audio device (driver) found. - + In the following there is a list of all available drivers with the associated error message: - + Do you want to open the ASIO driver setups? - + could not be started because of audio interface issues. + + QCoreApplication + + + , Version + + + + + Internet Jam Session Software + + + + + Released under the GNU General Public License (GPL) + + + global - + For more information use the What's This help (help menu, right mouse button or Shift+F1) Aby uzyskać wiÄ™cej informacji użyj "Co to" (Pomoc, prawy przycisk myszy lub Shift+F1) diff --git a/src/res/translation/translation_pt_BR.ts b/src/res/translation/translation_pt_BR.ts index 8e649434d2..29887f5462 100644 --- a/src/res/translation/translation_pt_BR.ts +++ b/src/res/translation/translation_pt_BR.ts @@ -71,47 +71,52 @@ Ãcones das bandeiras dos países por 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 - + Italian Italiano - + German Alemão - + + Polish + + + + About Sobre o @@ -200,32 +205,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mixagem Pessoal no Servidor - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Quando conectado a um servidor, estes controles permite definir sua mixagem local sem afetar o que os outros ouvem de você. O título exibe o nome do servidor e, quando conhecido, se está ativamente gravando. - + Server Servidor - + T R Y I N G T O C O N N E C T T E N T A N D O C O N E C T A R - + RECORDING ACTIVE GRAVAÇÃO ATIVA - + Personal Mix at: Mixagem Pessoal em: @@ -233,7 +238,7 @@ CChannelFader - + Channel Level Nível do Canal @@ -242,12 +247,12 @@ Mostra o nível de áudio pré-fader deste canal. Todos os clientes ligados ao servidor terão atribuído um nível de áudio, o mesmo valor para cada cliente. - + Input level of the current audio channel at the server Nível de entrada deste canal de áudio no servidor - + Mixer Fader Fader do Mixer @@ -256,17 +261,17 @@ Ajusta o nível de áudio deste canal. Por cada cliente ligado ao servidor será atribuído um fader de áudio em todos os clientes, podendo cada um ajustar a sua mistura local. - + Local mix level setting of the current audio channel at the server Configuração do nível de mixagem local deste canal de áudio no servidor - + Status Indicator Indicador de Estado - + Shows a status indication about the client which is assigned to this channel. Supported indicators are: Mostra uma indicação de estado do cliente que está atribuído a este canal. Os indicadores suportados são: @@ -275,12 +280,12 @@ Alti-falante com sinal de proibição: Indica que o cliente silenciou o teu canal. - + Status indicator label Etiqueta do indicador de estado - + Panning Panorâmica @@ -289,17 +294,17 @@ Define a posição de panorâmica da esquerda para a direita do canal. Funciona apenas no modo estéreo ou, de preferência, no modo Entrada Mono/Saída Estéreo. - + Local panning position of the current audio channel at the server Posição de panorâmica local deste canal de áudio no servidor - + With the Mute checkbox, the audio channel can be muted. Com a caixa de seleção Mute, o canal de áudio pode ser silenciado. - + Mute button Botão Mute @@ -308,12 +313,12 @@ Com a caixa de seleção Solo, o canal de áudio pode ser definido como solo, o que significa que todos os outros canais, exceto o canal atual, serão silenciados. É possível definir mais que um canal no modo solo. - + Solo button Botão Solo - + Fader Tag Identificador do Fader @@ -322,166 +327,178 @@ O Identificador do fader identifica o cliente ligado. O nome no identificador, a imagem do instrumento e a bandeira do país podem ser definidos no Meu Perfil. - - + Grp - + Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. Mostra o nível de áudio pré-fader deste canal. A todos os clientes conectados ao servidor será atribuído um nível de áudio, o mesmo valor para cada cliente. - + + No grouping + + + + + + + + Assign to group + + + + Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. Ajusta o nível de áudio deste canal. A todos os clientes ligados ao servidor será atribuído um fader de áudio,exibido em cada cliente, para ajustar a mixagem local. - + Speaker with cancellation stroke: Indicates that another client has muted you. Alto-falante com sinal de proibido: Indica que outro cliente silenciou o teu canal. - + Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. Define a posição de panorâmica da esquerda para a direita do canal. Funciona apenas no modo estéreo ou, de preferência, no modo Entrada Mono/Saída Estéreo. - + With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. Com a caixa de seleção Solo, o canal de áudio pode ser definido como solo, o que significa que todos os outros canais, exceto o canal atual, serão silenciados. É possível definir mais que um canal no modo solo. - + Group - + With the Grp checkbox, a group of audio channels can be defined. All channel faders in a group are moved in proportional synchronization if any one of the group faders are moved. - + Group button - + The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. O Identificador do fader identifica o cliente conectado. O nome no identificador, a imagem do instrumento e a bandeira do país podem ser definidos em Meu Perfil. - + Mixer channel instrument picture Imagem do instrumento do canal do mixer - + Mixer channel label (fader tag) Identificação do canal d0 mixer (identificador do fader) - + Mixer channel country flag Bandeira do país do canal do mixer - + PAN PAN - + MUTE MUTE - + SOLO SOLO - + GRP - + M M - + S S - + G - + Alias/Name Apelido/Nome - + Instrument Instrumento - + Location Localização - - - + + + Skill Level Nível de Habilidade - + Beginner Principiante - + Intermediate Intermediário - + Expert Avançado - + Musician Profile Perfil do músico - - + + Mute Mute - - + + Pan Pan - - + + Solo Solo @@ -780,48 +797,48 @@ Indicador LED do estado dos buffers - - + + C&onnect C&onectar - + &View &Ver - + &Connection Setup... &Conectar a Servidor... - + My &Profile... Meu &Perfil... - + C&hat... &Mensagens... - + &Settings... &Definições... - + &Analyzer Console... Console de &Análise... - + E&xit &Sair - + &Edit &Editar @@ -830,23 +847,23 @@ Ordenar os Canais por &Nome... - + None Nenhum - + Center Centro - + R R - + L L @@ -921,32 +938,37 @@ O CPU do cliente ou servidor está em 100%. - + Sort Channel Users by &Name Ordenar os Canais por &Nome - + Sort Channel Users by &Instrument Ordenar os Canais por &Instrumento - + + Sort Channel Users by &Group + + + + Central Server Servidor Central - + user usuário - + users usuários - + D&isconnect Opted by Desligar instead of Desconectar to keep same keyboard shortcut Desl&igar @@ -955,72 +977,72 @@ CClientDlgBase - + Delay Latência - + Buffers Buffers - + Input Entrada - + L L - + R R - + Settings Definições - + Chat Mensagens - + Mute Myself Silenciar-me - + C&onnect C&onectar - + Pan Pan - + Center Centro - + Reverb Reverb - + Left Esquerdo - + Right Direito @@ -1028,7 +1050,7 @@ CClientSettingsDlg - + Jitter Buffer Size Tamanho do Jitter Buffer @@ -1041,7 +1063,7 @@ O tamanho do jitter buffer pode ser escolhido manualmente para o cliente local e o servidor remoto. Para o jitter buffer local, as interrupções no fluxo de áudio são indicadas pela luz na parte inferior dos faders do jitter buffer. Se a luz ficar vermelha, ocorreu um excesso/déficit do buffer e o fluxo de áudio é interrompido. - + The jitter buffer setting is therefore a trade-off between audio quality and overall delay. A configuração do jitter buffer é, portanto, uma troca entre a qualidade do áudio e o atraso geral. @@ -1054,122 +1076,122 @@ Caso a configuração automática do jitter buffer estiver ativada, os buffers de rede do cliente local e do servidor remoto são configurados com um valor conservador para minimizar a probabilidade de perda de áudio. Para ajustar o atraso/latência do áudio, é recomendável desativar a funcionalidade de configuração automática e diminuir o tamanho do jitter buffer manualmente usando os controles deslizantes até que a quantidade de perdas de áudio lhe sejam pessoalmente aceitáveis. O indicador LED representará as interrupções de áudio do jitter buffer local através de uma luz vermelha. - + Local jitter buffer slider control Controle deslizante do jitter buffer local - + Server jitter buffer slider control Controle deslizante do jitter buffer do servidor - + Auto jitter buffer switch Interruptor do jitter buffer automático - + Jitter buffer status LED indicator Indicador LED de estado do jitter buffer - + Sound Card Device Dispositivo de Som - + The ASIO driver (sound card) can be selected using O driver ASIO (placa de som) pode ser selecionado usando o - + 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. no Windows. No MacOS/Linux, não é possível seleccionar a placa de som. Se o driver ASIO selecionado não for válido, uma mensagem de erro será exibida e o driver válido anterior será selecionado. - + If the driver is selected during an active connection, the connection is stopped, the driver is changed and the connection is started again automatically. Se o driver for selecionado durante uma sessão ativa, a conexão será interrompida, o driver será alterado e a conexão reiniciada automaticamente. - + Sound card device selector combo box Seletor de dispositivo de som - + If the ASIO4ALL driver is used, please note that this driver usually introduces approx. 10-30 ms of additional audio delay. Using a sound card with a native ASIO driver is therefore recommended. Caso o driver ASIO4ALL seja usado, note que esse driver geralmente introduz aprox. 10-30 ms de atraso de áudio adicional. Dado isto, é recomendável usar uma placa de som com um driver ASIO nativo. - + If you are using the kX ASIO driver, make sure to connect the ASIO inputs in the kX DSP settings panel. Se estiver utilizando o driver kX ASIO, certifique-se de conectar as entradas ASIO no painel de configurações do kX DSP. - + Sound Card Channel Mapping Mapeamento de Canais da Placa de Som - + If the selected sound card device offers more than one input or output channel, the Input Channel Mapping and Output Channel Mapping settings are visible. Caso o dispositivo selecionado da placa de som ofereça mais que um canal de entrada ou saída, as configurações de Mapeamento de canais de entrada e de saída estarão visíveis. - + For each Para cada canal de entrada/saída do - + input/output channel (Left and Right channel) a different actual sound card channel can be selected. (canal esquerdo e direito), um canal real da placa de som pode ser selecionado. - + Left input channel selection combo box Seletor de canal de entrada esquerdo - + Right input channel selection combo box Seletor de canal de entrada direito - + Left output channel selection combo box Seletor de canal de saída esquerdo - + Right output channel selection combo box Seletor de canal de saída direito - + Enable Small Network Buffers Habilitar Buffers de Rede Pequenos - + If enabled, the support for very small network audio packets is activated. Very small network packets are only actually used if the sound card buffer delay is smaller than Se habilitado, o suporte para pacotes de áudio de rede muito pequenos é ativado. Pacotes de rede muito pequenos serão apenas realmente usados se o atraso do buffer da placa de som for menor que - + samples. The smaller the network buffers, the lower the audio latency. But at the same time the network load increases and the probability of audio dropouts also increases. amostras. Quanto menor o buffer da rede, menor a latência do áudio. Mas, ao mesmo tempo, a carga da rede e a probabilidade de interrupção do áudio também aumentam. - + Enable small network buffers check box Caixa de ativação de buffers de rede pequenos - + Sound Card Buffer Delay Atraso do Buffer da Placa de Som @@ -1182,7 +1204,7 @@ . Esta configuração tem influência em muitas propriedades da ligação. - + Three buffer sizes are supported Três tamanhos de buffer são suportados @@ -1215,12 +1237,12 @@ ainda funcionará com essa configuração, mas com desempenho restrito. - + The actual buffer delay has influence on the connection status, the current upload rate and the overall delay. The lower the buffer size, the higher the probability of a red light in the status indicator (drop outs) and the higher the upload rate and the lower the overall delay. O atraso do buffer influencia o estado da conexão, a taxa de upload atual e a latência geral. Quanto menor o tamanho do buffer, maior a probabilidade de a luz vermelha no indicador de estado (interrupções), maior a taxa de upload e menor a latência geral. - + The buffer setting is therefore a trade-off between audio quality and overall delay. A configuração do buffer é, portanto, uma troca entre qualidade de áudio e latência geral. @@ -1233,22 +1255,22 @@ . No Windows, pressione o botão <i>Configuração do Driver</i> para abrir o painel de configurações do driver. No Linux, use a ferramenta de configuração <i>Jack</i> para alterar o atraso do buffer. - + 64 samples setting radio button Botão de configuração de 64 amostras - + 128 samples setting radio button Botão de configuração de 128 amostras - + 256 samples setting radio button Botão de configuração de 256 amostras - + ASIO setup push button Botão de configuração do ASIO @@ -1265,22 +1287,22 @@ Caixa de ativação da skin sofisticada - + Display Channel Levels Mostrar Níveis de Canais - + If enabled, each client channel will display a pre-fader level bar. Se habilitado, cada canal de cliente exibirá uma barra de nível pré-fader. - + Display channel levels check box Caixa de ativação para exibir níveis de canais - + Audio Channels Canais de Ãudio @@ -1297,12 +1319,12 @@ No modo de transmissão estéreo, nenhuma seleção de canal de áudio para o efeito de reverberação estará disponível na janela principal, pois o efeito é aplicado em ambos os canais. - + Audio channels combo box Seletor de canais áudio - + Audio Quality Qualidade de Ãudio @@ -1311,12 +1333,12 @@ Selecione a qualidade de áudio desejada. Pode ser selecionada uma qualidade de áudio baixa, normal ou alta. Quanto maior a qualidade do áudio, maior a taxa de dados do fluxo de áudio. Verifique que a taxa de transmissão não excede a largura de banda disponível da sua ligação à Internet. - + Audio quality combo box Seletor de qualidade áudio - + New Client Level Nível de Novo Cliente @@ -1325,12 +1347,12 @@ A configuração de nível de novo cliente define, em percentagem, o nível do fader de um novo cliente ligado. Por exemplo, se um cliente novo se ligar ao servidor atual, o seu canal terá o nível inicial do fader especificado, excepto quando um diferente nível do fader de uma ligação anterior desse mesmo cliente já tenha sido definido. - + New client level edit box Caixa de edição no nível de novo cliente - + Custom Central Server Address Endereço de Servidor Central Personalizado @@ -1351,12 +1373,12 @@ Seletor de servidor central padrão - + Central server address line edit Caixa de edição do endereço de servidor central - + Current Connection Status Parameter Parâmetros do Estado da Conexão @@ -1373,201 +1395,201 @@ A taxa de transmissão depende do tamanho do pacote de áudio e da configuração de compactação de áudio. Verifique se a taxa de transmissão não é maior que a taxa disponível (verifique a taxa de upload da sua ligação à Internet usando, por exemplo, o speedtest.net). - + If this LED indicator turns red, you will not have much fun using the Se este indicador LED ficar vermelho, você não irá divertir-se muito ao usar o - + software. . - + ASIO Setup Configuração ASIO - - + + Mono Mono - + mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. vai aumentar a quantidade de dados da transmissão. Verifique se a taxa de upload não ultrapassa a velocidade de upload disponível da sua conexão à Internet. - + Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net). A taxa de transmissão do áudio depende do tamanho do pacote de áudio e da configuração de compactação de áudio. Verifique se a taxa de transmissão não é maior que a taxa disponível (verifique a taxa de upload da sua conexão à Internet usando, por exemplo, o speedtest.net). - + Mono-in/Stereo-out Entrada Mono/Saída Estéreo - - - + + + Stereo Estéreo - + The jitter buffer compensates for network and sound card timing jitters. The size of the buffer therefore influences the quality of the audio stream (how many dropouts occur) and the overall delay (the longer the buffer, the higher the delay). O jitter buffer (ou buffer de instabilidade) compensa os desvios de temporização da rede e da placa de som. O tamanho do buffer influencia, portanto, a qualidade do fluxo de áudio (quantas interrupções ocorrem) e a latência geral (quanto maior o buffer, maior a latência). - + You can set the jitter buffer size manually for the local client and the remote server. For the local jitter buffer, dropouts in the audio stream are indicated by the light below the jitter buffer size faders. If the light turns to red, a buffer overrun/underrun has taken place and the audio stream is interrupted. Pode escolher o tamanho do jitter buffer manualmente para o cliente local e o servidor remoto. Para o jitter buffer local, as interrupções no fluxo de áudio são indicadas pela luz na parte inferior dos faders do jitter buffer. Se a luz ficar vermelha, ocorreu um excesso/déficit do buffer e o fluxo de áudio é interrompido. - + If the Auto setting is enabled, the jitter buffers of the local client and the remote server are set automatically based on measurements of the network and sound card timing jitter. If Auto is enabled, the jitter buffer size faders are disabled (they cannot be moved with the mouse). Caso a configuração automática estiver ativada, os buffers de rede do cliente local e do servidor remoto são configurados automaticamente com um valor conservador para minimizar a probabilidade de perda de áudio. Se o modo automático estiver ligado, os controlos estarão desativados (não podem ser alterados pelo usuário). - + If the Auto setting 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 and to lower the jitter buffer size manually by using the sliders until your personal acceptable amount of dropouts is reached. The LED indicator will display the audio dropouts of the local jitter buffer with a red light. Caso a configuração automática do jitter buffer estiver ativada, os buffers de rede do cliente local e do servidor remoto são configurados com um valor conservador para minimizar a probabilidade de perda de áudio. Para ajustar o atraso/latência do áudio, é recomendável desativar a funcionalidade de configuração automática e diminuir o tamanho do jitter buffer manualmente usando os controles deslizantes até que a quantidade de perdas de áudio lhe sejam pessoalmente aceitáveis. O indicador LED representará as interrupções de áudio do jitter buffer local através de uma luz vermelha. - + The buffer delay setting is a fundamental setting of this software. This setting has an influence on many connection properties. A configuração do atraso do buffer (buffer delay) é uma configuração fundamental da aplicação. Esta configuração tem influência em muitas propriedades da conexão. - + 64 samples: The preferred setting. Provides the lowest latency but does not work with all sound cards. 64 amostras: Configuração preferida. Fornece menor latência, mas não funciona com todas as placas de som. - + 128 samples: Should work for most available sound cards. 128 amostras: Deve funcionar na maioria das placas de som disponíveis. - + 256 samples: Should only be used on very slow computers or with a slow internet connection. 256 amostras: Deve apenas ser usada se tiver um computador muito lento ou uma ligação lenta à Internet. - + Some sound card drivers do not allow the buffer delay to be changed from within the application. In this case the buffer delay setting is disabled and has to be changed using the sound card driver. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. Alguns drivers da placa de som não permitem que o atraso do buffer seja alterado pela aplicação. Nesse caso, a configuração de atraso do buffer estará desativada e deve ser alterada no driver da placa de som. No Windows, pressione o botão Configuração do Driver para abrir o painel de configurações do driver. No Linux, use a ferramenta de configuração Jack para alterar o atraso do buffer. - + If no buffer size is selected and all settings are disabled, an unsupported buffer size is used by the driver. The application will still work with this setting but with restricted performance. Se nenhum atraso do buffer estiver selecionado e todas as configurações estiverem desativadas, um atraso do buffer não suportado será usado pelo driver. A aplicação ainda funcionará com essa configuração, mas com desempenho restrito. - + If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. Se as configurações de atraso do buffer estiverem desativadas, é porque o driver de áudio proibe modificar essa configuração a partir da aplicação. No Windows, pressione o botão Configuração do Driver para abrir o painel de configurações do driver. No Linux, use a ferramenta de configuração Jack para alterar o atraso do buffer. - + Skin Aparência - + Select the skin to be used for the main window. Selecione a aparência para utilizada na janela principal. - + Skin combo box Seletor de aparência - + Selects the number of audio channels to be used for communication between client and server. There are three modes available: Seleciona o número de canais de áudio a serem usados para a comunicação entre cliente e servidor. Existem três modos disponíveis: - + and e - + These modes use one and two audio channels respectively. Estes modos usam um e dois canais de áudio, respectivamente. - + Mono in/Stereo-out Entrada Mono/Saída Estéreo - + The audio signal sent to the server is mono but the return signal is stereo. This is useful if the sound card has the instrument on one input channel and the microphone on the other. In that case the two input signals can be mixed to one mono channel but the server mix is heard in stereo. O sinal de áudio enviado ao servidor é mono, mas o sinal de retorno é estéreo. Isso é útil quando a placa de som coloca o instrumento e o microfone em canais diferentes. Nesse caso, os dois sinais de entrada podem ser misturados num canal mono, mas a mistura do servidor pode ser ouvida em estéreo. - + Enabling Habilitando o modo - + In stereo streaming mode, no audio channel selection for the reverb effect will be available on the main window since the effect is applied to both channels in this case. No modo de transmissão estéreo, nenhuma seleção de canal de áudio para o efeito de reverberação estará disponível na janela principal, pois o efeito é aplicado em ambos os canais. - + The higher the audio quality, the higher your audio stream's data rate. Make sure your upload rate does not exceed the available bandwidth of your internet connection. Quanto maior a qualidade de áudio, maior a quantidade de dados da transmissão. Verifique se a taxa de upload não ultrapassa a velocidade de upload disponível da sua conexão à Internet. - + This setting defines the fader level of a newly connected client in percent. If a new client connects to the current server, they will get the specified initial fader level if no other fader level from a previous connection of that client was already stored. Esta opção define o nível do fader de um cliente novo, em percentagem. Se um cliente novo conecta-se ao mesmo servidor, este irá ter o nível do fader específicado, exceto se já definiu o nível do fader desse cliente a partir de uma conexão anterior que tenha sido guardada. - + Leave this blank unless you need to enter the address of a central server other than the default. Deixe este campo em branco exceto se necessitar de introduzir um endereço alternativo de um servidor central. - + The Ping Time is the time required for the audio stream to travel from the client to the server and back again. This delay is introduced by the network and should be about 20-30 ms. If this delay is higher than about 50 ms, your distance to the server is too large or your internet connection is not sufficient. A latência da conexão é o tempo necessário para o fluxo de áudio viajar do cliente para o servidor e vice-versa. Esta latência é introduzida pela rede e deve ser cerca de 20-30 ms. Se esta latência for maior que 50 ms, a distância até ao servidor é muito grande ou sua conexão à Internet não é suficiente. - + Overall Delay is calculated from the current Ping Time and the delay introduced by the current buffer settings. A latência geral é calculada a partir da latência da conexão atual e do atraso introduzido pelas configurações de buffer. - + Low Baixa - - + + Normal Normal - + High Alta - + Fancy Sofisticada - + Compact Compacta @@ -1576,22 +1598,22 @@ Manual - + Custom Personalizado - + All Genres Servidor Geral - + Genre Rock Servidor Rock - + Genre Jazz Servidor Jazz @@ -1600,12 +1622,12 @@ Servidor Rock/Jazz - + Genre Classical/Folk/Choir Serv. Clássica/Folclore/Coro - + Default Servidor Padrão @@ -1614,38 +1636,38 @@ Servidor Padrão (America do Norte) - + preferred preferido - - + + Size: Tamanho: - + Buffer Delay Atraso do buffer - + Buffer Delay: Atraso do buffer: - + The selected audio device could not be used because of the following error: O dispositivo de áudio selecionado não pôde ser usado devido ao seguinte erro: - + The previous driver will be selected. O driver anterior será selecionado. - + Ok Ok @@ -1985,28 +2007,28 @@ CHelpMenu - + &Help &Ajuda - - + + Getting &Started... Como Começa&r... - + Software &Manual... &Manual do Programa... - + What's &This O que é &isto - + &About... &Sobre... @@ -2014,102 +2036,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 conectar-se a este servidor e concordar com este aviso, você concorda 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 remixar, 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ê remixar, transformar, ou criar a partir do material, deve distribuir as suas contribuições sob a mesma licença que do 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. @@ -2121,85 +2143,85 @@ . 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 apelido - + 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 Seletor do nível de habilidade - - - + + + None Nenhum - - + + Musician Profile Perfil do músico - + Alias/Name Apelido/Nome - + Instrument Instrumento - + Country País - + City Cidade - + Skill Habilidade - + &Close &Fechar - + Beginner Principiante - + Intermediate Intermediário - + Expert Avançado @@ -2212,227 +2234,227 @@ O que definir aqui aparecerá por baixo do seu fader na secção de mistura quando estiver ligado a um servidor - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Escreva o seu nome ou um apelido aqui para que os outros músicos com quem quer tocar saibam quem você é. Além disso, pode também definir uma imagem do instrumento que toca e uma bandeira do país onde vive. A cidade onde 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 Jamulus server. This tag will also be shown at each client which is connected to the same server as you. O que definir aqui aparecerá abaixo do seu fader no mixer quando estiver conectado a um servidor Jamulus. Esta etiqueta também será exibida em cada cliente que estiver conectado ao mesmo 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 - + Vocal Bass Voz Baixo - + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Bandolim - + Ukulele Ukulele - + Bass Ukulele Ukulele Baixo - + No Name Sem Nome @@ -2607,111 +2629,203 @@ + Display dialog to select recording directory button + + + + + + Main Recording Directory + + + + + Click the button to open the dialog that allows the main recording directory to be selected.The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). + + + + + Main recording directory text box (read-only) + + + + + The current value of the main recording directory. The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). Click the button to open the dialog that allows the main recording directory to be selected. + + + + + Clear the recording directory button + + + + + Clear Recording Directory + + + + + Click the button to clear the currently selected recording directory. This will prevent recording until a new value is selected. + + + + Checkbox to turn on or off server recording Caixa de seleção para ligar ou desligar a gravação no servidor - + Enable Recorder Habilitar Gravador - + Checked when the recorder is enabled, otherwise unchecked. The recorder will run when a session is in progress, if (set up correctly and) enabled. Ativo quando o gravador estiver ligado, caso contrário inativo. O gravador irá rodar quando uma sessão estiver a decorrer, se (corretamente configurado e ) ativo. - + Current session directory text box (read-only) Caixa de texto com a pasta da gravação (apenas leitura) - + Current Session Directory Pasta da Sessão Atual - + Enabled during recording and holds the current recording session directory. Disabled after recording or when the recorder is not enabled. Ativo durante a gravação e exibe a pasta da gravação atual. Inativo depois de gravação ou quando o gravador não estiver habilitado. - + Recorder status label Etiqueta do estado do Gravador - + Recorder Status Estado do Gravador - + + Displays the current status of the recorder. The following values are possible: + + + + + No recording directory has been set or the value is not useable + + + + + Recording has been switched off + + + + + by the UI checkbox + + + + + , either by the UI checkbox or SIGUSR2 being received + + + + + There is no one connected to the server to record + + + + + The performers are being recorded to the specified session directory + + + + + NOTE + + + + + If the recording directory is not useable, the problem will be displayed in place of the directory. + + + + + ERROR + + + Displays the current status of the recorder. - Mostra o estado atual do gravador. + Mostra o estado atual do gravador. - + Request new recording button Botão para começar nova gravação - + New Recording Nova Gravação - + During a recording session, the button can be used to start a new recording. Durante uma sessão de gravação, este botão pode ser usado para começar uma nova gravação. - - + + E&xit &Sair - + &Hide &Esconder servidor - - - + + + server - + &Open &Abrir servidor - + server - + + Select Main Recording Directory + + + + Predefined Address Endereço Predefinido - Recording - Gravando + Gravando - Not recording - Não gravando + Não gravando - Not enabled - Desativado + Desativado Manual @@ -2726,62 +2840,62 @@ Servidor Padrão (America do Norte) - + Server - Servidor - + &Window &Janela - + Unregistered Não Registrado - + Bad address Endereço incorreto - + Registration requested Registro solicitado - + Registration failed Falha no registro - + Check server version Verifique versão do servidor - + Registered Registrado - + Central Server full Servidor Central Cheio - + Your server version is too old - + Requirements not fulfilled - + Unknown value Valor desconhecido @@ -2826,7 +2940,7 @@ - + STATUS ESTADO @@ -2835,6 +2949,21 @@ Custom Central Server Address: Endereço do Servidor Central Personalizado: + + + Recording Directory + + + + + Enable Jam Recorder + + + + + New Recording + Nova Gravação + Central Server Address: Endereço do Servidor Central: @@ -2855,22 +2984,19 @@ Localização: País - Enable jam recorder - Habilitar gravação + Habilitar gravação - New recording - Nova gravação + Nova gravação - Recordings folder - Pasta de gravações + Pasta de gravações - + TextLabelNameVersion TextLabelNameVersion @@ -3061,17 +3187,17 @@ QCoreApplication - + , Version , Versão - + Internet Jam Session Software Programa de Jam Sessions pela Internet - + Released under the GNU General Public License (GPL) Lançado sob a Licença Pública Geral GNU (GPL) @@ -3079,7 +3205,7 @@ 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 mouse ou Shift + F1) diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index 7b5f8ef11a..bbe49b3155 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -71,47 +71,52 @@ Ãcones das bandeiras dos países por 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 - + Italian Italiano - + German Alemão - + + Polish + + + + About Sobre o @@ -199,32 +204,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mistura Pessoal no Servidor - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Quando ligado a um servidor, estes controles permitem que defina a sua mistura local sem afectar o que os outros ouvem. O título mostra o nome do servidor e, quando conhecido, se está gravando activamente. - + Server Servidor - + T R Y I N G T O C O N N E C T T E N T A N D O L I G A R - + RECORDING ACTIVE GRAVAÇÃO ACTIVA - + Personal Mix at: Mistura Pessoal no Servidor: @@ -232,7 +237,7 @@ CChannelFader - + Channel Level Nível do Canal @@ -241,12 +246,12 @@ Mostra o nível de áudio pré-fader deste canal. Todos os clientes ligados ao servidor terão atribuído um nível de áudio, o mesmo valor para cada cliente. - + Input level of the current audio channel at the server Nível de entrada deste canal de áudio do servidor - + Mixer Fader Fader da Mistura @@ -255,17 +260,17 @@ Ajusta o nível de áudio deste canal. Por cada cliente ligado ao servidor será atribuído um fader de áudio em todos os clientes, podendo cada um ajustar a sua mistura local. - + Local mix level setting of the current audio channel at the server Configuração do nível de mistura local deste canal de áudio do servidor - + Status Indicator Indicador de Estado - + Shows a status indication about the client which is assigned to this channel. Supported indicators are: Mostra uma indicação de estado sobre o cliente que está atribuído a este canal. Os indicadores suportados são: @@ -274,12 +279,12 @@ Alti-falante com sinal de proibição: Indica que o cliente silenciou o teu canal. - + Status indicator label Etiqueta do indicador de estado - + Panning Panorâmica @@ -288,17 +293,17 @@ Define a posição de panorâmica da esquerda para a direita do canal. Funciona apenas no modo estéreo ou, de preferência, no modo Entrada Mono/Saída Estéreo. - + Local panning position of the current audio channel at the server Posição de panorâmica local do canal de áudio actual no servidor - + With the Mute checkbox, the audio channel can be muted. Com a caixa de seleção Mute, o canal de áudio pode ser silenciado. - + Mute button Botão Mute @@ -307,12 +312,12 @@ Com a caixa de seleção Solo, o canal de áudio pode ser definido como solo, o que significa que todos os outros canais, exceto o canal atual, serão silenciados. É possível definir mais que um canal no modo solo. - + Solo button Botão Solo - + Fader Tag Identificador do Fader @@ -321,166 +326,178 @@ O Identificador do fader identifica o cliente ligado. O nome no identificador, a imagem do instrumento e a bandeira do país podem ser definidos no Meu Perfil. - - + Grp Grp - + Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. Mostra o nível de áudio pré-fader deste canal. A todos os clientes ligados ao servidor será atribuído um nível de áudio, o mesmo valor para cada cliente. - + + No grouping + + + + + + + + Assign to group + + + + Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. Ajusta o nível de áudio deste canal. A todos os clientes ligados ao servidor será atribuído um fader de áudio,exibido em cada cliente, para ajustar a mistura local. - + Speaker with cancellation stroke: Indicates that another client has muted you. Alti-falante com sinal de proibição: Indica que o cliente silenciou o teu canal. - + Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. Define a posição de panorâmica da esquerda para a direita do canal. Funciona apenas no modo estéreo ou, de preferência, no modo Entrada Mono/Saída Estéreo. - + With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. Com a caixa de seleção Solo, o canal de áudio pode ser definido como solo, o que significa que todos os outros canais, exceto o canal atual, serão silenciados. É possível definir mais que um canal no modo solo. - + Group Grupo - + With the Grp checkbox, a group of audio channels can be defined. All channel faders in a group are moved in proportional synchronization if any one of the group faders are moved. Com a caixa de seleção Grp, um grupo de canais de áudio pode ser definido. Todos os faders de canal de um grupo são movidos em sincronização se algum dos faders do grupo for movido. - + Group button Botão de Grupo - + The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. O Identificador do fader identifica o cliente ligado. O nome no identificador, a imagem do instrumento e a bandeira do país podem ser definidos no Meu Perfil. - + Mixer channel instrument picture Imagem do instrumento do canal da mistura - + Mixer channel label (fader tag) Identificação do canal da mistura (identificador do fader) - + Mixer channel country flag Bandeira do país do canal da mistura - + PAN PAN - + MUTE MUTE - + SOLO SOLO - + GRP GRP - + M M - + S S - + G G - + Alias/Name Nome/Alcunha - + Instrument Instrumento - + Location Localização - - - + + + Skill Level Nível de Habilidade - + Beginner Principiante - + Intermediate Intermediário - + Expert Avançado - + Musician Profile Perfil do músico - - + + Mute Mute - - + + Pan Pan - - + + Solo Solo @@ -779,48 +796,48 @@ Indicador LED do estado dos buffers - - + + C&onnect &Ligar - + &View &Ver - + &Connection Setup... &Ligar a Servidor... - + My &Profile... Meu &Perfil... - + C&hat... &Mensagens... - + &Settings... &Definições... - + &Analyzer Console... Consola de &Análise... - + E&xit &Sair - + &Edit &Editar @@ -829,23 +846,23 @@ Ordenar os Canais por &Nome... - + None Nenhum - + Center Centro - + R R - + L L @@ -920,32 +937,37 @@ O CPU do cliente ou servidor está a 100%. - + Sort Channel Users by &Name Ordenar Utilizadores por &Nome - + Sort Channel Users by &Instrument Ordenar canais por &Instrumento - + + Sort Channel Users by &Group + + + + Central Server Servidor Central - + user utilizador - + users utilizadores - + D&isconnect Desl&igar @@ -953,72 +975,72 @@ CClientDlgBase - + Delay Latência - + Buffers Buffers - + Input Entrada - + L L - + R R - + Settings Definições - + Chat Mensagens - + Mute Myself Silenciar-me - + C&onnect &Ligar - + Pan Pan - + Center Centro - + Reverb Reverb - + Left Esquerdo - + Right Direito @@ -1026,7 +1048,7 @@ CClientSettingsDlg - + Jitter Buffer Size Tamanho do Jitter Buffer @@ -1039,7 +1061,7 @@ O tamanho do jitter buffer pode ser escolhido manualmente para o cliente local e o servidor remoto. Para o jitter buffer local, as interrupções no fluxo de áudio são indicadas pela luz na parte inferior dos faders do jitter buffer. Se a luz ficar vermelha, ocorreu um excesso/déficit do buffer e o fluxo de áudio é interrompido. - + The jitter buffer setting is therefore a trade-off between audio quality and overall delay. A configuração do jitter buffer é, portanto, uma troca entre a qualidade do áudio e o atraso geral. @@ -1052,122 +1074,122 @@ Caso a configuração automática do jitter buffer estiver ativada, os buffers de rede do cliente local e do servidor remoto são configurados com um valor conservador para minimizar a probabilidade de perda de áudio. Para ajustar o atraso/latência do áudio, é recomendável desativar a funcionalidade de configuração automática e diminuir o tamanho do jitter buffer manualmente usando os controles deslizantes até que a quantidade de perdas de áudio lhe sejam pessoalmente aceitáveis. O indicador LED representará as interrupções de áudio do jitter buffer local através de uma luz vermelha. - + Local jitter buffer slider control Controle deslizante do jitter buffer local - + Server jitter buffer slider control Controle deslizante do jitter buffer do servidor - + Auto jitter buffer switch Interruptor do jitter buffer automático - + Jitter buffer status LED indicator Indicador LED de estado do jitter buffer - + Sound Card Device Dispositivo da Placa de Som - + The ASIO driver (sound card) can be selected using O driver ASIO (placa de som) pode ser selecionado usando o - + 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. no Windows. No MacOS/Linux, não é possível seleccionar a placa de som. Se o driver ASIO selecionado não for válido, uma mensagem de erro será exibida e o driver válido anterior será selecionado. - + If the driver is selected during an active connection, the connection is stopped, the driver is changed and the connection is started again automatically. Se o driver for selecionado durante uma ligação ativa, a ligação será interrompida, o driver será alterado e a ligação reiniciada automaticamente. - + Sound card device selector combo box Seletor de dispositivo da placa de som - + If the ASIO4ALL driver is used, please note that this driver usually introduces approx. 10-30 ms of additional audio delay. Using a sound card with a native ASIO driver is therefore recommended. Caso o driver ASIO4ALL seja usado, note que esse driver geralmente introduz aprox. 10-30 ms de atraso de áudio adicional. Dado isto, é recomendável usar uma placa de som com um driver ASIO nativo. - + If you are using the kX ASIO driver, make sure to connect the ASIO inputs in the kX DSP settings panel. Se estiver a usar o driver kX ASIO, certifique-se de ligar as entradas ASIO no painel de configurações do kX DSP. - + Sound Card Channel Mapping Mapeamento de Canais da Placa de Som - + If the selected sound card device offers more than one input or output channel, the Input Channel Mapping and Output Channel Mapping settings are visible. Caso o dispositivo selecionado da placa de som ofereça mais que um canal de entrada ou saída, as configurações de Mapeamento de canais de entrada e de saída estarão visíveis. - + For each Para cada canal de entrada/saída do - + input/output channel (Left and Right channel) a different actual sound card channel can be selected. (canal esquerdo e direito), um canal real da placa de som pode ser selecionado. - + Left input channel selection combo box Seletor de canal de entrada esquerdo - + Right input channel selection combo box Seletor de canal de entrada direito - + Left output channel selection combo box Seletor de canal de saída esquerdo - + Right output channel selection combo box Seletor de canal de saída direito - + Enable Small Network Buffers Activar Buffers de Rede Pequenos - + If enabled, the support for very small network audio packets is activated. Very small network packets are only actually used if the sound card buffer delay is smaller than Se ativado, o suporte para pacotes de áudio de rede muito pequenos é ativado. Pacotes de rede muito pequenos serão apenas realmente usados se o atraso do buffer da placa de som for menor que - + samples. The smaller the network buffers, the lower the audio latency. But at the same time the network load increases and the probability of audio dropouts also increases. amostras. Quanto menor o buffer da rede, menor a latência do áudio. Mas, ao mesmo tempo, a carga da rede e a probabilidade de interrupção do áudio também aumentam. - + Enable small network buffers check box Caixa de activação de buffers de rede pequenos - + Sound Card Buffer Delay Atraso do Buffer da Placa de Som @@ -1180,7 +1202,7 @@ . Esta configuração tem influência em muitas propriedades da ligação. - + Three buffer sizes are supported Três tamanhos de buffer são suportados @@ -1213,12 +1235,12 @@ ainda funcionará com essa configuração, mas com desempenho restrito. - + The actual buffer delay has influence on the connection status, the current upload rate and the overall delay. The lower the buffer size, the higher the probability of a red light in the status indicator (drop outs) and the higher the upload rate and the lower the overall delay. O atraso do buffer influencia o estado da ligação, a taxa de upload atual e a latência geral. Quanto menor o atraso do buffer, maior a probabilidade de a luz vermelha no indicador de estado (interrupções), maior a taxa de upload e menor a latência geral. - + The buffer setting is therefore a trade-off between audio quality and overall delay. A configuração do buffer é, portanto, uma troca entre qualidade de áudio e latência geral. @@ -1231,22 +1253,22 @@ . No Windows, pressione o botão <i>Configuração do Driver</i> para abrir o painel de configurações do driver. No Linux, use a ferramenta de configuração <i>Jack</i> para alterar o atraso do buffer. - + 64 samples setting radio button Botão de configuração de 64 amostras - + 128 samples setting radio button Botão de configuração de 128 amostras - + 256 samples setting radio button Botão de configuração de 256 amostras - + ASIO setup push button Botão de configuração do ASIO @@ -1263,22 +1285,22 @@ Caixa de ativação da skin sofisticada - + Display Channel Levels Mostrar Níveis de Canais - + If enabled, each client channel will display a pre-fader level bar. Se ativado, cada canal de cliente exibirá uma barra de nível pré-fader. - + Display channel levels check box Caixa de activação para exibir níveis de canais - + Audio Channels Canais de Ãudio @@ -1295,12 +1317,12 @@ No modo de transmissão estéreo, nenhuma seleção de canal de áudio para o efeito de reverberação estará disponível na janela principal, pois o efeito é aplicado em ambos os canais. - + Audio channels combo box Seletor de canais áudio - + Audio Quality Qualidade de Ãudio @@ -1309,12 +1331,12 @@ Selecione a qualidade de áudio desejada. Pode ser selecionada uma qualidade de áudio baixa, normal ou alta. Quanto maior a qualidade do áudio, maior a taxa de dados do fluxo de áudio. Verifique que a taxa de transmissão não excede a largura de banda disponível da sua ligação à Internet. - + Audio quality combo box Seletor de qualidade áudio - + New Client Level Nível de Novo Cliente @@ -1323,12 +1345,12 @@ A configuração de nível de novo cliente define, em percentagem, o nível do fader de um novo cliente ligado. Por exemplo, se um cliente novo se ligar ao servidor atual, o seu canal terá o nível inicial do fader especificado, excepto quando um diferente nível do fader de uma ligação anterior desse mesmo cliente já tenha sido definido. - + New client level edit box Caixa de edição no nível de novo cliente - + Custom Central Server Address Endereço do Servidor Central Personalizado @@ -1349,12 +1371,12 @@ Seletor de servidor central padrão - + Central server address line edit Caixa de edição do endereço do servidor central - + Current Connection Status Parameter Parâmetros do Estado da Ligação @@ -1371,201 +1393,201 @@ A taxa de transmissão depende do tamanho do pacote de áudio e da configuração de compactação de áudio. Verifique se a taxa de transmissão não é maior que a taxa disponível (verifique a taxa de upload da sua ligação à Internet usando, por exemplo, o speedtest.net). - + If this LED indicator turns red, you will not have much fun using the Se este indicador LED ficar vermelho, não se irá divertir muito ao usar o - + software. . - + ASIO Setup Configuração ASIO - - + + Mono Mono - + mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. vai aumentar a quantidade de dados da transmissão. Verifique se a taxa de upload não ultrapassa a velocidade de upload disponível da sua ligação à Internet. - + Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net). A taxa de transmissão do áudio depende do tamanho do pacote de áudio e da configuração da compactação de áudio. Verifique se a taxa de transmissão não é maior que a sua taxa de upload disponível (verifique isto com um serviço como o speedtest.net). - + Mono-in/Stereo-out Entrada Mono/Saída Estéreo - - - + + + Stereo Estéreo - + The jitter buffer compensates for network and sound card timing jitters. The size of the buffer therefore influences the quality of the audio stream (how many dropouts occur) and the overall delay (the longer the buffer, the higher the delay). O jitter buffer (ou buffer de instabilidade) compensa os desvios de temporização da rede e da placa de som. O tamanho do buffer influencia, portanto, a qualidade do fluxo de áudio (quantas interrupções ocorrem) e a latência geral (quanto maior o buffer, maior a latência). - + You can set the jitter buffer size manually for the local client and the remote server. For the local jitter buffer, dropouts in the audio stream are indicated by the light below the jitter buffer size faders. If the light turns to red, a buffer overrun/underrun has taken place and the audio stream is interrupted. Pode escolher o tamanho do jitter buffer manualmente para o cliente local e o servidor remoto. Para o jitter buffer local, as interrupções no fluxo de áudio são indicadas pela luz na parte inferior dos faders do jitter buffer. Se a luz ficar vermelha, ocorreu um excesso/déficit do buffer e o fluxo de áudio é interrompido. - + If the Auto setting is enabled, the jitter buffers of the local client and the remote server are set automatically based on measurements of the network and sound card timing jitter. If Auto is enabled, the jitter buffer size faders are disabled (they cannot be moved with the mouse). Caso a configuração automática estiver activada, os buffers de rede do cliente local e do servidor remoto são configurados automaticamente com um valor conservador para minimizar a probabilidade de perda de áudio. Se o modo automático estiver ligado, os controlos estarão desactivados (não podem ser alterados pelo utilizador). - + If the Auto setting 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 and to lower the jitter buffer size manually by using the sliders until your personal acceptable amount of dropouts is reached. The LED indicator will display the audio dropouts of the local jitter buffer with a red light. Caso a configuração automática do jitter buffer estiver ativada, os buffers de rede do cliente local e do servidor remoto são configurados com um valor conservador para minimizar a probabilidade de perda de áudio. Para ajustar o atraso/latência do áudio, é recomendável desativar a funcionalidade de configuração automática e diminuir o tamanho do jitter buffer manualmente usando os controles deslizantes até que a quantidade de perdas de áudio lhe sejam pessoalmente aceitáveis. O indicador LED representará as interrupções de áudio do jitter buffer local através de uma luz vermelha. - + The buffer delay setting is a fundamental setting of this software. This setting has an influence on many connection properties. A configuração do atraso do buffer (buffer delay) é uma configuração fundamental da aplicação. Esta configuração tem influência em muitas propriedades da ligação. - + 64 samples: The preferred setting. Provides the lowest latency but does not work with all sound cards. 64 amostras: Cnfiguração preferida. Fornece menor latência, mas não funciona com todas as placas de som. - + 128 samples: Should work for most available sound cards. 128 amostras: Deve funcionar na maioria das placas de som disponíveis. - + 256 samples: Should only be used on very slow computers or with a slow internet connection. 256 amostras: Deve apenas ser usada se tiver um computador muito lento ou uma ligação lenta à Internet. - + Some sound card drivers do not allow the buffer delay to be changed from within the application. In this case the buffer delay setting is disabled and has to be changed using the sound card driver. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. Alguns drivers da placa de som não permitem que o atraso do buffer seja alterado pela aplicação. Nesse caso, a configuração de atraso do buffer estará desativada e deve ser alterada no driver da placa de som. No Windows, pressione o botão Configuração do Driver para abrir o painel de configurações do driver. No Linux, use a ferramenta de configuração Jack para alterar o atraso do buffer. - + If no buffer size is selected and all settings are disabled, an unsupported buffer size is used by the driver. The application will still work with this setting but with restricted performance. Se nenhum atraso do buffer estiver selecionado e todas as configurações estiverem desativadas, um atraso do buffer não suportado será usado pelo driver. A aplicação ainda funcionará com essa configuração, mas com desempenho restrito. - + If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. Se as configurações de atraso do buffer estiverem desativadas, é porque o driver de áudio proibe modificar essa configuração a partir da aplicação. No Windows, pressione o botão Configuração do Driver para abrir o painel de configurações do driver. No Linux, use a ferramenta de configuração Jack para alterar o atraso do buffer. - + Skin Tema - + Select the skin to be used for the main window. Selecione o tema a ser usado na janela principal. - + Skin combo box Caixa de selecção do tema - + Selects the number of audio channels to be used for communication between client and server. There are three modes available: Selecione o número de canais de áudio a serem usados para a comunicação entre cliente e servidor. Existem três modos disponíveis: - + and e - + These modes use one and two audio channels respectively. Estes modos usam um e dois canais de áudio, respectivamente. - + Mono in/Stereo-out Entrada Mono/Saída Estéreo - + The audio signal sent to the server is mono but the return signal is stereo. This is useful if the sound card has the instrument on one input channel and the microphone on the other. In that case the two input signals can be mixed to one mono channel but the server mix is heard in stereo. O sinal de áudio enviado ao servidor é mono, mas o sinal de retorno é estéreo. Isso é útil quando a placa de som coloca o instrumento e o microfone em canais diferentes. Nesse caso, os dois sinais de entrada podem ser misturados num canal mono, mas a mistura do servidor pode ser ouvida em estéreo. - + Enabling Activar o modo - + In stereo streaming mode, no audio channel selection for the reverb effect will be available on the main window since the effect is applied to both channels in this case. No modo de transmissão estéreo, nenhuma seleção de canal de áudio para o efeito de reverberação estará disponível na janela principal, pois o efeito é aplicado em ambos os canais. - + The higher the audio quality, the higher your audio stream's data rate. Make sure your upload rate does not exceed the available bandwidth of your internet connection. Quanto maior a qualidade de áudio, maior a quantidade de dados da transmissão. Verifique se a taxa de upload não ultrapassa a velocidade de upload disponível da sua ligação à Internet. - + This setting defines the fader level of a newly connected client in percent. If a new client connects to the current server, they will get the specified initial fader level if no other fader level from a previous connection of that client was already stored. Esta opção define o nível do fader de um cliente novo, em percentagem. Se um cliente novo se liga ao mesmo servidor, este irá ter o nível do fader específicado, excepto se já definiu o nível do fader desse cliente previamente. - + Leave this blank unless you need to enter the address of a central server other than the default. Deixe este campo em branco excepto se necessitar de introduzir um endereço alternativo de um servidor central. - + The Ping Time is the time required for the audio stream to travel from the client to the server and back again. This delay is introduced by the network and should be about 20-30 ms. If this delay is higher than about 50 ms, your distance to the server is too large or your internet connection is not sufficient. A latência da ligação é o tempo necessário para o fluxo de áudio viajar do cliente para o servidor e vice-versa. Esta latência é introduzida pela rede e deve ser cerca de 20-30 ms. Se esta latência for maior que 50 ms, a distância até ao servidor é muito grande ou sua ligação à Internet não é suficiente. - + Overall Delay is calculated from the current Ping Time and the delay introduced by the current buffer settings. A latência geral é calculada a partir da latência da ligação atual e do atraso introduzido pelas configurações do buffer. - + Low Baixa - - + + Normal Normal - + High Alta - + Fancy Sofisticado - + Compact Compacto @@ -1574,22 +1596,22 @@ Manual - + Custom Personalizado - + All Genres Servidor Geral - + Genre Rock Servidor Rock - + Genre Jazz Servidor Jazz @@ -1598,12 +1620,12 @@ Servidor Rock/Jazz - + Genre Classical/Folk/Choir Serv. Clássica/Folclore/Coro - + Default Servidor Padrão @@ -1612,38 +1634,38 @@ Servidor Padrão (America do Norte) - + preferred preferido - - + + Size: Tamanho: - + Buffer Delay Atraso do buffer - + Buffer Delay: Atraso do buffer: - + The selected audio device could not be used because of the following error: O dispositivo de áudio selecionado não pôde ser usado devido ao seguinte erro: - + The previous driver will be selected. O driver anterior será selecionado. - + Ok Ok @@ -1983,28 +2005,28 @@ CHelpMenu - + &Help &Ajuda - - + + Getting &Started... Como Começa&r... - + Software &Manual... &Manual do Programa... - + What's &This O que é &isto - + &About... &Sobre... @@ -2012,102 +2034,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. @@ -2119,85 +2141,85 @@ . 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 @@ -2210,227 +2232,227 @@ O que definir aqui aparecerá por baixo do seu fader na secção de mistura quando estiver ligado a um servidor - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Escreva 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 também definir uma imagem do instrumento que toca e uma bandeira do país onde vive. A cidade onde 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 Jamulus server. This tag will also be shown at each client which is connected to the same server as you. O que definir aqui aparecerá por baixo do seu fader na secção de mistura quando estiver ligado a um servidor Esta etiqueta também será exibida em cada cliente que estiver ligado ao mesmo 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 - + Vocal Bass Voz Baixo - + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Bandolim - + Ukulele Ukulele - + Bass Ukulele Ukulele Baixo - + No Name Sem Nome @@ -2605,111 +2627,203 @@ + Display dialog to select recording directory button + + + + + + Main Recording Directory + + + + + Click the button to open the dialog that allows the main recording directory to be selected.The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). + + + + + Main recording directory text box (read-only) + + + + + The current value of the main recording directory. The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). Click the button to open the dialog that allows the main recording directory to be selected. + + + + + Clear the recording directory button + + + + + Clear Recording Directory + + + + + Click the button to clear the currently selected recording directory. This will prevent recording until a new value is selected. + + + + Checkbox to turn on or off server recording Caixa de selecção para ligar ou desligar a gravação no servidor - + Enable Recorder Activar Gravador - + Checked when the recorder is enabled, otherwise unchecked. The recorder will run when a session is in progress, if (set up correctly and) enabled. Activo quando o gravador estiver ligado, caso contrário inactivo. O gravador irá correr quando uma sessão estiver a decorrer, se (correctamente configurado e ) activo. - + Current session directory text box (read-only) Caixa de texto com a pasta da gravação actual (apenas leitura) - + Current Session Directory Pasta da Sessão Acual - + Enabled during recording and holds the current recording session directory. Disabled after recording or when the recorder is not enabled. Activo durante a gravação e exibe a pasta da gravação actual. Inactivo depois de gravação ou quando o gravador não estiver ligado. - + Recorder status label Etiqueta do estado do Gravador - + Recorder Status Estado do Gravador - + + Displays the current status of the recorder. The following values are possible: + + + + + No recording directory has been set or the value is not useable + + + + + Recording has been switched off + + + + + by the UI checkbox + + + + + , either by the UI checkbox or SIGUSR2 being received + + + + + There is no one connected to the server to record + + + + + The performers are being recorded to the specified session directory + + + + + NOTE + + + + + If the recording directory is not useable, the problem will be displayed in place of the directory. + + + + + ERROR + + + Displays the current status of the recorder. - Mostra o estado actual do gravador. + Mostra o estado actual do gravador. - + Request new recording button Botão para começar nova gravação - + New Recording Nova Gravação - + During a recording session, the button can be used to start a new recording. Durante uma sessão de gravação, este botão pode ser usado para começar uma nova gravação. - - + + E&xit &Sair - + &Hide &Esconder servidor - - - + + + server - + &Open &Abrir servidor - + server - + + Select Main Recording Directory + + + + Predefined Address Endereço Predefinido - Recording - A gravar + A gravar - Not recording - Não está a gravar + Não está a gravar - Not enabled - Desactivado + Desactivado Manual @@ -2724,62 +2838,62 @@ Servidor Padrão (America do Norte) - + Server - Servidor - + &Window &Janela - + Unregistered Não Registado - + Bad address Endereço incorrecto - + Registration requested Registo solicitado - + Registration failed Falha no registo - + Check server version Verifique versão do servidor - + Registered Registado - + Central Server full Servidor Central Cheio - + Your server version is too old A versão do seu servidor é muito antiga - + Requirements not fulfilled Requisitos não cumpridos - + Unknown value Valor desconhecido @@ -2824,7 +2938,7 @@ - + STATUS ESTADO @@ -2833,6 +2947,21 @@ Custom Central Server Address: Endereço do Servidor Central Personalizado: + + + Recording Directory + + + + + Enable Jam Recorder + + + + + New Recording + Nova Gravação + Central Server Address: Endereço do Servidor Central: @@ -2853,22 +2982,19 @@ Localização: País - Enable jam recorder - Activar gravação + Activar gravação - New recording - Nova gravação + Nova gravação - Recordings folder - Pasta de gravações + Pasta de gravações - + TextLabelNameVersion TextLabelNameVersion @@ -3059,17 +3185,17 @@ QCoreApplication - + , Version , Versão - + Internet Jam Session Software Programa de Jam Sessions pela Internet - + Released under the GNU General Public License (GPL) Lançado sob a Licença Pública Geral GNU (GPL) @@ -3077,7 +3203,7 @@ 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/res/translation/translation_sv_SE.ts b/src/res/translation/translation_sv_SE.ts index b2160da2a2..d91bcbe37f 100644 --- a/src/res/translation/translation_sv_SE.ts +++ b/src/res/translation/translation_sv_SE.ts @@ -39,47 +39,52 @@ - + For details on the contributions check out the - + Github Contributors list - + Spanish - + French - + Portuguese - + Dutch - + Italian - + German - + + Polish + + + + About @@ -143,32 +148,32 @@ CAudioMixerBoard - + Personal Mix at the Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. - + Server - + T R Y I N G T O C O N N E C T - + RECORDING ACTIVE - + Personal Mix at: @@ -177,230 +182,242 @@ CChannelFader - - + + Pan - - + + Mute - - + + Solo - - + Grp - + Channel Level - + + No grouping + + + + + + + + Assign to group + + + + Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. - + Input level of the current audio channel at the server - + Mixer Fader - + Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. - + Local mix level setting of the current audio channel at the server - + Status Indicator - + Shows a status indication about the client which is assigned to this channel. Supported indicators are: - + Speaker with cancellation stroke: Indicates that another client has muted you. - + Status indicator label - + Panning - + Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. - + Local panning position of the current audio channel at the server - + With the Mute checkbox, the audio channel can be muted. - + Mute button - + With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. - + Solo button - + Group - + With the Grp checkbox, a group of audio channels can be defined. All channel faders in a group are moved in proportional synchronization if any one of the group faders are moved. - + Group button - + Fader Tag - + The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. - + Mixer channel instrument picture - + Mixer channel label (fader tag) - + Mixer channel country flag - + PAN - + MUTE - + SOLO - + GRP - + M - + S - + G - + Alias/Name - + Instrument - + Location - - - + + + Skill Level - + Beginner - + Intermediate - + Expert - + Musician Profile @@ -535,7 +552,7 @@ - + L @@ -675,93 +692,98 @@ - - + + C&onnect - + &View - + &Connection Setup... - + My &Profile... - + C&hat... - + &Settings... - + &Analyzer Console... - + E&xit - + &Edit - + Sort Channel Users by &Name - + Sort Channel Users by &Instrument - + + Sort Channel Users by &Group + + + + None - + Center - + R - + Central Server - + user - + users - + D&isconnect @@ -769,72 +791,72 @@ CClientDlgBase - + Delay - + Buffers - + Input - + L - + R - + Settings - + Chat - + Mute Myself - + C&onnect - + Pan - + Center - + Reverb - + Left - + Right @@ -842,492 +864,492 @@ CClientSettingsDlg - + Jitter Buffer Size - + The jitter buffer compensates for network and sound card timing jitters. The size of the buffer therefore influences the quality of the audio stream (how many dropouts occur) and the overall delay (the longer the buffer, the higher the delay). - + You can set the jitter buffer size manually for the local client and the remote server. For the local jitter buffer, dropouts in the audio stream are indicated by the light below the jitter buffer size faders. If the light turns to red, a buffer overrun/underrun has taken place and the audio stream is interrupted. - + The jitter buffer setting is therefore a trade-off between audio quality and overall delay. - + If the Auto setting is enabled, the jitter buffers of the local client and the remote server are set automatically based on measurements of the network and sound card timing jitter. If Auto is enabled, the jitter buffer size faders are disabled (they cannot be moved with the mouse). - + If the Auto setting 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 and to lower the jitter buffer size manually by using the sliders until your personal acceptable amount of dropouts is reached. The LED indicator will display the audio dropouts of the local jitter buffer with a red light. - + Local jitter buffer slider control - + Server jitter buffer slider control - + Auto jitter buffer switch - + Jitter buffer status LED indicator - + Sound Card Device - + The ASIO driver (sound card) can be selected using - + 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. - + If the driver is selected during an active connection, the connection is stopped, the driver is changed and the connection is started again automatically. - + Sound card device selector combo box - + If the ASIO4ALL driver is used, please note that this driver usually introduces approx. 10-30 ms of additional audio delay. Using a sound card with a native ASIO driver is therefore recommended. - + If you are using the kX ASIO driver, make sure to connect the ASIO inputs in the kX DSP settings panel. - + Sound Card Channel Mapping - + If the selected sound card device offers more than one input or output channel, the Input Channel Mapping and Output Channel Mapping settings are visible. - + For each - + input/output channel (Left and Right channel) a different actual sound card channel can be selected. - + Left input channel selection combo box - + Right input channel selection combo box - + Left output channel selection combo box - + Right output channel selection combo box - + Enable Small Network Buffers - + If enabled, the support for very small network audio packets is activated. Very small network packets are only actually used if the sound card buffer delay is smaller than - + samples. The smaller the network buffers, the lower the audio latency. But at the same time the network load increases and the probability of audio dropouts also increases. - + Enable small network buffers check box - + Sound Card Buffer Delay - + The buffer delay setting is a fundamental setting of this software. This setting has an influence on many connection properties. - + Three buffer sizes are supported - + 64 samples: The preferred setting. Provides the lowest latency but does not work with all sound cards. - + 128 samples: Should work for most available sound cards. - + 256 samples: Should only be used on very slow computers or with a slow internet connection. - + Some sound card drivers do not allow the buffer delay to be changed from within the application. In this case the buffer delay setting is disabled and has to be changed using the sound card driver. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. - + If no buffer size is selected and all settings are disabled, an unsupported buffer size is used by the driver. The application will still work with this setting but with restricted performance. - + The actual buffer delay has influence on the connection status, the current upload rate and the overall delay. The lower the buffer size, the higher the probability of a red light in the status indicator (drop outs) and the higher the upload rate and the lower the overall delay. - + The buffer setting is therefore a trade-off between audio quality and overall delay. - + If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. - + 64 samples setting radio button - + 128 samples setting radio button - + 256 samples setting radio button - + ASIO setup push button - + Skin - + Select the skin to be used for the main window. - + Skin combo box - + Display Channel Levels - + If enabled, each client channel will display a pre-fader level bar. - + Display channel levels check box - + Audio Channels - + Selects the number of audio channels to be used for communication between client and server. There are three modes available: - - + + Mono - + and - - - + + + Stereo - + These modes use one and two audio channels respectively. - + Mono in/Stereo-out - + The audio signal sent to the server is mono but the return signal is stereo. This is useful if the sound card has the instrument on one input channel and the microphone on the other. In that case the two input signals can be mixed to one mono channel but the server mix is heard in stereo. - + Enabling - + mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. - + In stereo streaming mode, no audio channel selection for the reverb effect will be available on the main window since the effect is applied to both channels in this case. - + Audio channels combo box - + Audio Quality - + The higher the audio quality, the higher your audio stream's data rate. Make sure your upload rate does not exceed the available bandwidth of your internet connection. - + Audio quality combo box - + New Client Level - + This setting defines the fader level of a newly connected client in percent. If a new client connects to the current server, they will get the specified initial fader level if no other fader level from a previous connection of that client was already stored. - + New client level edit box - + Custom Central Server Address - + Leave this blank unless you need to enter the address of a central server other than the default. - + Central server address line edit - + Current Connection Status Parameter - + The Ping Time is the time required for the audio stream to travel from the client to the server and back again. This delay is introduced by the network and should be about 20-30 ms. If this delay is higher than about 50 ms, your distance to the server is too large or your internet connection is not sufficient. - + Overall Delay is calculated from the current Ping Time and the delay introduced by the current buffer settings. - + Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net). - + If this LED indicator turns red, you will not have much fun using the - + software. - + ASIO Setup - + Mono-in/Stereo-out - + Low - - + + Normal - + High - + Fancy - + Compact - + preferred - - + + Size: - + Buffer Delay - + Buffer Delay: - + The selected audio device could not be used because of the following error: - + The previous driver will be selected. - + Ok - + Custom - + All Genres - + Genre Rock - + Genre Jazz - + Genre Classical/Folk/Choir - + Default @@ -1639,28 +1661,28 @@ CHelpMenu - + &Help - - + + Getting &Started... - + Software &Manual... - + What's &This - + &About... @@ -1668,102 +1690,102 @@ CLicenceDlg - + I &agree to the above licence terms - + Accept - + Decline - + By connecting to this server and agreeing to this notice, you agree to the following: - + 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. @@ -1771,310 +1793,310 @@ CMusProfDlg - + No Name - - + + Musician Profile - + Alias/Name - + Instrument - + Country - + City - + Skill - + &Close - - - + + + None - + Beginner - + Intermediate - + Expert - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. - + Alias or name edit box - + Instrument picture button - + Country flag button - + City edit box - + Skill level combo box - + Drum Set - + Djembe - + Electric Guitar - + Acoustic Guitar - + Bass Guitar - + Keyboard - + Synthesizer - + Grand Piano - + Accordion - + Vocal - + Microphone - + Harmonica - + Trumpet - + Trombone - + French Horn - + Tuba - + Saxophone - + Clarinet - + Flute - + Violin - + Cello - + Double Bass - + Recorder - + Streamer - + Listener - + Guitar+Vocal - + Keyboard+Vocal - + Bodhran - + Bassoon - + Oboe - + Harp - + Viola - + Congas - + Bongo - + Vocal Bass - + Vocal Tenor - + Vocal Alto - + Vocal Soprano - + Banjo - + Mandolin - + Ukulele - + Bass Ukulele @@ -2213,169 +2235,245 @@ - Checkbox to turn on or off server recording + Display dialog to select recording directory button - Enable Recorder + + Main Recording Directory - Checked when the recorder is enabled, otherwise unchecked. The recorder will run when a session is in progress, if (set up correctly and) enabled. + Click the button to open the dialog that allows the main recording directory to be selected.The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). + Main recording directory text box (read-only) + + + + + The current value of the main recording directory. The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). Click the button to open the dialog that allows the main recording directory to be selected. + + + + + Clear the recording directory button + + + + + Clear Recording Directory + + + + + Click the button to clear the currently selected recording directory. This will prevent recording until a new value is selected. + + + + + Checkbox to turn on or off server recording + + + + + Enable Recorder + + + + + Checked when the recorder is enabled, otherwise unchecked. The recorder will run when a session is in progress, if (set up correctly and) enabled. + + + + Current session directory text box (read-only) - + Current Session Directory - + Enabled during recording and holds the current recording session directory. Disabled after recording or when the recorder is not enabled. - + Recorder status label - + Recorder Status - - Displays the current status of the recorder. + + Displays the current status of the recorder. The following values are possible: + + + + + No recording directory has been set or the value is not useable + + + + + Recording has been switched off - + + by the UI checkbox + + + + + , either by the UI checkbox or SIGUSR2 being received + + + + + There is no one connected to the server to record + + + + + The performers are being recorded to the specified session directory + + + + + NOTE + + + + + If the recording directory is not useable, the problem will be displayed in place of the directory. + + + + + ERROR + + + + Request new recording button - + New Recording - + During a recording session, the button can be used to start a new recording. - - + + E&xit - + &Hide - - - + + + server - + &Open - + server - + Server - + &Window - - Predefined Address - - - - - Recording - - - - - Not recording + + Select Main Recording Directory - - Not enabled + + Predefined Address - + Unregistered - + Bad address - + Registration requested - + Registration failed - + Check server version - + Registered - + Central Server full - + Your server version is too old - + Requirements not fulfilled - + Unknown value @@ -2420,7 +2518,7 @@ - + STATUS @@ -2446,21 +2544,21 @@ - Enable jam recorder + Recording Directory - - New recording + + Enable Jam Recorder - - Recordings folder + + New Recording - + TextLabelNameVersion @@ -2651,17 +2749,17 @@ QCoreApplication - + , Version - + Internet Jam Session Software - + Released under the GNU General Public License (GPL) @@ -2669,7 +2767,7 @@ global - + For more information use the What's This help (help menu, right mouse button or Shift+F1) From ac06f31e1f50e2ca07645a67877b41be4908b9b8 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 5 Jul 2020 16:18:07 +0200 Subject: [PATCH 329/936] only scale instrument picture if its width is too large for Compact skin --- src/audiomixerboard.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 529757a1b3..379c87eb2a 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -614,14 +614,16 @@ void CChannelFader::SetChannelInfos ( const CChannelInfo& cChanInfo ) else { // set correct picture - if ( iInstrPicFixedWidth != INVALID_INDEX ) + QPixmap pixInstr ( strCurResourceRef ); + + if ( ( iInstrPicFixedWidth != INVALID_INDEX ) && ( pixInstr.width() > iInstrPicFixedWidth ) ) { // scale instrument picture on request (scale to the width with correct aspect ratio) - plblInstrument->setPixmap ( QPixmap ( strCurResourceRef ).scaledToWidth ( iInstrPicFixedWidth, Qt::SmoothTransformation ) ); + plblInstrument->setPixmap ( pixInstr.scaledToWidth ( iInstrPicFixedWidth, Qt::SmoothTransformation ) ); } else { - plblInstrument->setPixmap ( QPixmap ( strCurResourceRef ) ); + plblInstrument->setPixmap ( pixInstr ); } iTTInstrument = cChanInfo.iInstrument; From b8ed6e9435e5546efea4425985eee9a42309eb6a Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 5 Jul 2020 16:33:53 +0200 Subject: [PATCH 330/936] bug fix: clip state not correctly reset when changing servers --- ChangeLog | 7 ++----- src/levelmeter.cpp | 27 ++++++++++++--------------- 2 files changed, 14 insertions(+), 20 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2a016e09ce..91948b6ada 100644 --- a/ChangeLog +++ b/ChangeLog @@ -20,18 +20,15 @@ - bug fix: grouping faders in the client should be proportional (see discussion in #202, #419) - TODO bug fix: incorrect selection of UI language (#408) !!!!!!!!!!!!!!!!!!!!!!!!!!!!! -> note that for the 3.5.8 bug fix release we went back to the original translation code (e.g. no pt_BR!) -TODO improve settings management -> move settings class in client/server classes, move actual settings variables - TODO add new register message which contains version and, e.g., max number of clients TODO Inconsistency between Input meter and Audio mixer meter #423 -TODO https://github.com/corrados/jamulus/issues/341#issuecomment-647172946 - - generate .qm on compile time with lrelease +TODO improve settings management -> move settings class in client/server classes, move actual settings variables + diff --git a/src/levelmeter.cpp b/src/levelmeter.cpp index 3185cb05aa..4ea10eab35 100755 --- a/src/levelmeter.cpp +++ b/src/levelmeter.cpp @@ -246,27 +246,24 @@ void CLevelMeter::SetValue ( const double dValue ) TimerClip.start(); } - else if ( !TimerClip.isActive() ) - { - switch ( eLevelMeterType ) - { - case MT_LED: - vecpLEDs[NUM_STEPS_LED_BAR]->SetColor ( cLED::RL_BLACK ); - break; - - case MT_BAR: - case MT_SLIM_BAR: - SetBarMeterStyleAndClipStatus ( eLevelMeterType, false ); - break; - } - } } void CLevelMeter::ClipReset() { - if ( eLevelMeterType == MT_LED ) + // we manually want to reset the clipping indicator: stop timer and reset + // clipping indicator GUI element + TimerClip.stop(); + + switch ( eLevelMeterType ) { + case MT_LED: vecpLEDs[NUM_STEPS_LED_BAR]->SetColor ( cLED::RL_BLACK ); + break; + + case MT_BAR: + case MT_SLIM_BAR: + SetBarMeterStyleAndClipStatus ( eLevelMeterType, false ); + break; } } From 7dccd4cf7bad399fde5d696075235ce393522919 Mon Sep 17 00:00:00 2001 From: daryl Date: Sun, 5 Jul 2020 19:40:09 +0200 Subject: [PATCH 331/936] Spanish translation update --- src/res/translation/translation_es_ES.ts | 52 ++++++++++++------------ 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index a009695a52..1044d80c81 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -113,7 +113,7 @@ Polish - + Polaco @@ -330,7 +330,7 @@ No grouping - + Sin grupos @@ -338,7 +338,7 @@ Assign to group - + Asignar a grupo @@ -852,7 +852,7 @@ Sort Channel Users by &Group - + Ordenar Usuarios de Canal por &Grupo @@ -2652,43 +2652,43 @@ Display dialog to select recording directory button - + Mostrar diálogo para seleccionar botón de directorio de grabación Main Recording Directory - + Directorio Principal de Grabación Click the button to open the dialog that allows the main recording directory to be selected.The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). - + Pulsa el botón para abrir el diálogo que permite seleccionar el directorio principal de grabación. El valor escogido debe existir y tener permisos de escritura (permitir la creación de sub-directorios por parte del usuario ejecutando Jamulus). Main recording directory text box (read-only) - + Caja de texto del directorio principal de grabación (solo lectura) The current value of the main recording directory. The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). Click the button to open the dialog that allows the main recording directory to be selected. - + El valor actual del directorio principal de grabación. El valor escogido debe existir y tener permisos de escritura (permitir la creación de sub-directorios por parte del usuario ejecutando Jamulus). Pulsa el botón para abrir el diálogo que permite seleccionar el directorio principal de grabación. Clear the recording directory button - + Vaciar botón de directorio de grabación Clear Recording Directory - + Vaciar Directorio de Grabación Click the button to clear the currently selected recording directory. This will prevent recording until a new value is selected. - + Pulsa el botón para vaciar el directorio de grabación actualmente seleccionado. Esto impedirá la grabación hasta que se seleccione un nuevo valor. @@ -2733,52 +2733,52 @@ Displays the current status of the recorder. The following values are possible: - + Muestra el estado actual de la grabadora. Son posibles los siguientes valores: No recording directory has been set or the value is not useable - + No se ha establecido ningún directorio de grabación o el valor no es utilizable Recording has been switched off - + La grabación se ha apagado by the UI checkbox - + mediante la casilla del interfaz , either by the UI checkbox or SIGUSR2 being received - + , bien mediante la casilla del interfaz o la recepción de SIGUSR2 There is no one connected to the server to record - + No hay nadie conectado al servidor para grabar The performers are being recorded to the specified session directory - + Los intérpretes están siendo grabados al directorio de sesión especificado NOTE - + NOTA If the recording directory is not useable, the problem will be displayed in place of the directory. - + Si el directorio de grabación no es utilizable, se mostrará el problema en lugar del directorio. ERROR - + ERROR Displays the current status of the recorder. @@ -2830,7 +2830,7 @@ Select Main Recording Directory - + Seleccionar Directorio Principal de Grabación @@ -2974,17 +2974,17 @@ Recording Directory - + Directorio de Grabación Enable Jam Recorder - + Activar Grabador de Jams New Recording - Nueva Grabación + Nueva Grabación Central Server Address: From 479ec6f1df91c8472b2748430993b0d46e223d37 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 5 Jul 2020 20:49:43 +0200 Subject: [PATCH 332/936] store language selection in settings file; add translation help functions in util.h/.cpp --- ChangeLog | 4 +++ src/main.cpp | 31 +++++++++-------------- src/resources.qrc | 42 +++++++------------------------ src/settings.cpp | 16 ++++++++++++ src/settings.h | 5 ++++ src/util.cpp | 63 +++++++++++++++++++++++++++++++++++++++++++++++ src/util.h | 11 +++++++-- 7 files changed, 118 insertions(+), 54 deletions(-) diff --git a/ChangeLog b/ChangeLog index 91948b6ada..a265811d21 100644 --- a/ChangeLog +++ b/ChangeLog @@ -20,6 +20,9 @@ - bug fix: grouping faders in the client should be proportional (see discussion in #202, #419) +TODO add support to change language (#297) + TODO add language selector also in the server GUI + TODO bug fix: incorrect selection of UI language (#408) !!!!!!!!!!!!!!!!!!!!!!!!!!!!! -> note that for the 3.5.8 bug fix release we went back to the original translation code (e.g. no pt_BR!) @@ -28,6 +31,7 @@ TODO add new register message which contains version and, e.g., max number of cl TODO Inconsistency between Input meter and Audio mixer meter #423 TODO improve settings management -> move settings class in client/server classes, move actual settings variables +TODO store recorder settings (#313) diff --git a/src/main.cpp b/src/main.cpp index 7490878418..274a08d42a 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -25,8 +25,6 @@ #include #include #include -#include -#include #include "global.h" #ifndef HEADLESS # include @@ -582,23 +580,6 @@ int main ( int argc, char** argv ) // init resources Q_INIT_RESOURCE(resources); - // load translations - QTranslator myappTranslator, myqtTranslator; - - if ( bUseGUI && bUseTranslation ) - { - if ( myappTranslator.load ( QLocale(), "translation", "_", ":/translations" ) ) - { - pApp->installTranslator ( &myappTranslator ); - } - - // allows the Qt messages to be translated in the application - if ( myqtTranslator.load ( QLocale(), "qt", "_", QLibraryInfo::location ( QLibraryInfo::TranslationsPath ) ) ) - { - pApp->installTranslator ( &myqtTranslator ); - } - } - // TEST -> activate the following line to activate the test bench, //CTestbench Testbench ( "127.0.0.1", DEFAULT_PORT_NUMBER ); @@ -620,6 +601,12 @@ int main ( int argc, char** argv ) CClientSettings Settings ( &Client, strIniFileName ); Settings.Load(); + // load translation + if ( bUseGUI && bUseTranslation ) + { + CLocale::LoadTranslation ( Settings.strLanguage, pApp ); + } + #ifndef HEADLESS if ( bUseGUI ) { @@ -673,6 +660,12 @@ int main ( int argc, char** argv ) CServerSettings Settings ( &Server, strIniFileName ); Settings.Load(); + // load translation + if ( bUseGUI && bUseTranslation ) + { + CLocale::LoadTranslation ( Settings.strLanguage, pApp ); + } + // update server list AFTER restoring the settings from the // settings file Server.UpdateServerList(); diff --git a/src/resources.qrc b/src/resources.qrc index 881760dde4..c9bba96ec0 100755 --- a/src/resources.qrc +++ b/src/resources.qrc @@ -1,54 +1,30 @@ - res/translation/translation_de_DE.qm + res/translation/translation_de_DE.qm - res/translation/translation_de_DE.qm + res/translation/translation_fr_FR.qm - res/translation/translation_fr_FR.qm + res/translation/translation_pt_PT.qm - res/translation/translation_fr_FR.qm + res/translation/translation_pt_BR.qm - res/translation/translation_pt_PT.qm + res/translation/translation_es_ES.qm - res/translation/translation_pt_BR.qm + res/translation/translation_nl_NL.qm - res/translation/translation_pt_PT.qm + res/translation/translation_it_IT.qm - res/translation/translation_es_ES.qm + res/translation/translation_pl_PL.qm - res/translation/translation_es_ES.qm - - - res/translation/translation_nl_NL.qm - - - res/translation/translation_nl_NL.qm - - - res/translation/translation_it_IT.qm - - - res/translation/translation_it_IT.qm - - - res/translation/translation_pl_PL.qm - - - res/translation/translation_pl_PL.qm - - - res/translation/translation_sv_SE.qm - - - res/translation/translation_sv_SE.qm + res/translation/translation_sv_SE.qm diff --git a/src/settings.cpp b/src/settings.cpp index 12082c54e9..0253688ea0 100755 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -303,6 +303,10 @@ void CClientSettings::ReadFromXML ( const QDomDocument& IniXMLDocument ) bConnectDlgShowAllMusicians = bValue; } + // language + strLanguage = GetIniSetting ( IniXMLDocument, "client", "language", + CLocale::FindSysLangTransFileName ( CLocale::GetAvailableTranslations() ).first ); + // name pClient->ChannelInfo.strName = FromBase64ToString ( GetIniSetting ( IniXMLDocument, "client", "name_base64", @@ -613,6 +617,10 @@ void CClientSettings::WriteToXML ( QDomDocument& IniXMLDocument ) SetFlagIniSet ( IniXMLDocument, "client", "connectdlgshowallmusicians", bConnectDlgShowAllMusicians ); + // language + PutIniSetting ( IniXMLDocument, "client", "language", + strLanguage ); + // name PutIniSetting ( IniXMLDocument, "client", "name_base64", ToBase64 ( pClient->ChannelInfo.strName ) ); @@ -787,6 +795,10 @@ if ( GetFlagIniSet ( IniXMLDocument, "server", "defcentservaddr", bValue ) ) pServer->SetServerListEnabled ( bValue ); } + // language + strLanguage = GetIniSetting ( IniXMLDocument, "server", "language", + CLocale::FindSysLangTransFileName ( CLocale::GetAvailableTranslations() ).first ); + // name pServer->SetServerName ( GetIniSetting ( IniXMLDocument, "server", "name" ) ); @@ -832,6 +844,10 @@ void CServerSettings::WriteToXML ( QDomDocument& IniXMLDocument ) SetFlagIniSet ( IniXMLDocument, "server", "servlistenabled", pServer->GetServerListEnabled() ); + // language + PutIniSetting ( IniXMLDocument, "server", "language", + strLanguage ); + // name PutIniSetting ( IniXMLDocument, "server", "name", pServer->GetServerName() ); diff --git a/src/settings.h b/src/settings.h index 751a49226b..a4d1adac2e 100755 --- a/src/settings.h +++ b/src/settings.h @@ -120,6 +120,7 @@ class CClientSettings : public CSettings vstrIPAddress ( MAX_NUM_SERVER_ADDR_ITEMS, "" ), iNewClientFaderLevel ( 100 ), bConnectDlgShowAllMusicians ( true ), + strLanguage ( "" ), vecWindowPosMain ( ), // empty array vecWindowPosSettings ( ), // empty array vecWindowPosChat ( ), // empty array @@ -141,6 +142,7 @@ class CClientSettings : public CSettings CVector vstrIPAddress; int iNewClientFaderLevel; bool bConnectDlgShowAllMusicians; + QString strLanguage; // window position/state settings QByteArray vecWindowPosMain; @@ -165,10 +167,13 @@ class CServerSettings : public CSettings { public: CServerSettings ( CServer* pNSerP, const QString& sNFiName ) : + strLanguage ( "" ), vecWindowPosMain ( ), // empty array pServer ( pNSerP ) { SetFileName ( sNFiName, DEFAULT_INI_FILE_NAME_SERVER); } + QString strLanguage; + // window position/state settings QByteArray vecWindowPosMain; diff --git a/src/util.cpp b/src/util.cpp index f194f53f2c..4c38900f2a 100755 --- a/src/util.cpp +++ b/src/util.cpp @@ -1375,6 +1375,69 @@ ECSAddType CLocale::GetCentralServerAddressType ( const QLocale::Country eCountr } } +QMap CLocale::GetAvailableTranslations() +{ + QMap TranslMap; + QDirIterator DirIter ( ":/translations" ); + + while ( DirIter.hasNext() ) + { + // get alias of translation file + const QString strCurFileName = DirIter.next(); + + // extract only language code (must be at the end, separated with a "_") + const QString strLoc = strCurFileName.right ( strCurFileName.length() - strCurFileName.indexOf ( "_" ) - 1 ); + + TranslMap[strLoc] = strCurFileName; + } + + return TranslMap; +} + +QPair CLocale::FindSysLangTransFileName ( const QMap& TranslMap ) +{ + QPair PairSysLang ( "", "" ); + QStringList slUiLang = QLocale().uiLanguages(); + + if ( !slUiLang.isEmpty() ) + { + // only extract two first characters to identify language (ignoring + // location for getting a simpler implementation -> if the language + // is not correct, the user can change it in the GUI anyway) + const QString strUiLang = QLocale().uiLanguages().at ( 0 ); + + if ( strUiLang.length() >= 2 ) + { + PairSysLang.first = strUiLang.left ( 2 ); + PairSysLang.second = TranslMap[PairSysLang.first]; + } + } + + return PairSysLang; +} + +void CLocale::LoadTranslation ( const QString strLanguage, + QCoreApplication* pApp ) +{ + // The translator objects must be static! + static QTranslator myappTranslator; + static QTranslator myqtTranslator; + + QMap TranslMap = CLocale::GetAvailableTranslations(); + const QString strTranslationFileName = TranslMap[strLanguage]; + + if ( myappTranslator.load ( strTranslationFileName ) ) + { + pApp->installTranslator ( &myappTranslator ); + } + + // allows the Qt messages to be translated in the application + if ( myqtTranslator.load ( QLocale ( strLanguage ), "qt", "_", QLibraryInfo::location ( QLibraryInfo::TranslationsPath ) ) ) + { + pApp->installTranslator ( &myqtTranslator ); + } +} + // Console writer factory ------------------------------------------------------ QTextStream* ConsoleWriterFactory::get() diff --git a/src/util.h b/src/util.h index 7fe414109c..177202f8d3 100755 --- a/src/util.h +++ b/src/util.h @@ -41,6 +41,9 @@ # include "ui_aboutdlgbase.h" #endif #include +#include +#include +#include #include #include #include @@ -870,8 +873,12 @@ class CInstPictures class CLocale { public: - static QString GetCountryFlagIconsResourceReference ( const QLocale::Country eCountry ); - static ECSAddType GetCentralServerAddressType ( const QLocale::Country eCountry ); + static QString GetCountryFlagIconsResourceReference ( const QLocale::Country eCountry ); + static ECSAddType GetCentralServerAddressType ( const QLocale::Country eCountry ); + static QMap GetAvailableTranslations(); + static QPair FindSysLangTransFileName ( const QMap& TranslMap ); + static void LoadTranslation ( const QString strLanguage, + QCoreApplication* pApp ); }; From f3fe7934a03b0f45f03ca470e1f691de0a818223 Mon Sep 17 00:00:00 2001 From: ignotus Date: Mon, 6 Jul 2020 09:19:52 +0200 Subject: [PATCH 333/936] Update serverdlg.h --- src/serverdlg.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/serverdlg.h b/src/serverdlg.h index 3313a011b5..c42d1206f9 100755 --- a/src/serverdlg.h +++ b/src/serverdlg.h @@ -47,10 +47,10 @@ #define GUI_CONTRL_UPDATE_TIME 1000 // ms // Strings used in multiple places -#define SREC_NOT_INITIALISED "Not initialised" -#define SREC_NOT_ENABLED "Not enabled" -#define SREC_NOT_RECORDING "Not recording" -#define SREC_RECORDING "Recording" +#define SREC_NOT_INITIALISED tr ( "Not initialised" ) +#define SREC_NOT_ENABLED tr ( "Not enabled" ) +#define SREC_NOT_RECORDING tr ( "Not recording" ) +#define SREC_RECORDING tr ( "Recording" ) /* Classes ********************************************************************/ From 963415c10d6f9734ee7e10926646a0faf98f4b87 Mon Sep 17 00:00:00 2001 From: ignotus Date: Mon, 6 Jul 2020 09:23:06 +0200 Subject: [PATCH 334/936] Update serverdlg.cpp --- src/serverdlg.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/serverdlg.cpp b/src/serverdlg.cpp index b9c241f34f..1be9cafc34 100755 --- a/src/serverdlg.cpp +++ b/src/serverdlg.cpp @@ -159,9 +159,9 @@ CServerDlg::CServerDlg ( CServer* pNServP, lblRecorderStatus->setWhatsThis ( "" + tr ( "Recorder Status" ) + ": " + tr ( "Displays the current status of the recorder. The following values are possible:" ) + "
" - + "
" + tr ( SREC_NOT_INITIALISED ) + "
" + + "
" + SREC_NOT_INITIALISED + "
" + "
" + tr ( "No recording directory has been set or the value is not useable" ) + "
" - + "
" + tr ( SREC_NOT_ENABLED ) + "
" + + "
" + SREC_NOT_ENABLED + "
" + "
" + tr ( "Recording has been switched off" ) #ifdef _WIN32 + tr ( " by the UI checkbox" ) @@ -169,9 +169,9 @@ CServerDlg::CServerDlg ( CServer* pNServP, + tr ( ", either by the UI checkbox or SIGUSR2 being received" ) #endif + "
" - + "
" + tr ( SREC_NOT_RECORDING ) + "
" + + "
" + SREC_NOT_RECORDING + "
" + "
" + tr ( "There is no one connected to the server to record" ) + "
" - + "
" + tr ( SREC_RECORDING ) + "
" + + "
" + SREC_RECORDING + "
" + "
" + tr ( "The performers are being recorded to the specified session directory" ) + "
" + "
" + "
" + tr ( "NOTE" ) + ": " @@ -785,17 +785,17 @@ void CServerDlg::UpdateRecorderStatus ( QString sessionDir ) { edtCurrentSessionDir->setText ( sessionDir != QString::null ? sessionDir : "" ); - strRecorderStatus = tr ( SREC_RECORDING ); + strRecorderStatus = SREC_RECORDING; bIsRecording = true; } else { - strRecorderStatus = tr ( SREC_NOT_RECORDING ); + strRecorderStatus = SREC_NOT_RECORDING; } } else { - strRecorderStatus = tr ( SREC_NOT_ENABLED ); + strRecorderStatus = SREC_NOT_ENABLED; } } else @@ -812,7 +812,7 @@ void CServerDlg::UpdateRecorderStatus ( QString sessionDir ) } chbEnableRecorder->setEnabled ( false ); - strRecorderStatus = tr ( SREC_NOT_INITIALISED ); + strRecorderStatus = SREC_NOT_INITIALISED; } edtRecordingDir->setText ( strRecordingDir ); From 8841ce9bbf16e4e260f7165ef57dacdd374733f0 Mon Sep 17 00:00:00 2001 From: ignotus Date: Mon, 6 Jul 2020 09:28:12 +0200 Subject: [PATCH 335/936] Update serverdlg.h --- src/serverdlg.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/serverdlg.h b/src/serverdlg.h index c42d1206f9..35d849bcee 100755 --- a/src/serverdlg.h +++ b/src/serverdlg.h @@ -47,10 +47,10 @@ #define GUI_CONTRL_UPDATE_TIME 1000 // ms // Strings used in multiple places -#define SREC_NOT_INITIALISED tr ( "Not initialised" ) -#define SREC_NOT_ENABLED tr ( "Not enabled" ) -#define SREC_NOT_RECORDING tr ( "Not recording" ) -#define SREC_RECORDING tr ( "Recording" ) +#define SREC_NOT_INITIALISED CServerDlg::tr ( "Not initialised" ) +#define SREC_NOT_ENABLED CServerDlg::tr ( "Not enabled" ) +#define SREC_NOT_RECORDING CServerDlg::tr ( "Not recording" ) +#define SREC_RECORDING CServerDlg::tr ( "Recording" ) /* Classes ********************************************************************/ From 0e91a428897c320df8553ba467e34085eba975d9 Mon Sep 17 00:00:00 2001 From: daryl Date: Mon, 6 Jul 2020 09:34:15 +0200 Subject: [PATCH 336/936] update translation --- src/res/translation/translation_de_DE.ts | 86 ++++++++++++---------- src/res/translation/translation_es_ES.ts | 90 ++++++++++++----------- src/res/translation/translation_fr_FR.ts | 86 ++++++++++++---------- src/res/translation/translation_it_IT.ts | 86 ++++++++++++---------- src/res/translation/translation_nl_NL.ts | 86 ++++++++++++---------- src/res/translation/translation_pl_PL.ts | 92 ++++++++++++++---------- src/res/translation/translation_pt_BR.ts | 86 ++++++++++++---------- src/res/translation/translation_pt_PT.ts | 86 ++++++++++++---------- src/res/translation/translation_sv_SE.ts | 92 ++++++++++++++---------- 9 files changed, 443 insertions(+), 347 deletions(-) diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index 68d509f1de..0853e28d02 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -184,32 +184,32 @@ CAudioMixerBoard - + Personal Mix at the Server Eigener Mix am Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Wenn man mit einem Server verbunden ist, dann kann man hier den eigenen Mix verstellen ohne dass man etwas daran verändert, was die anderen von mir hören. Der Titel zeigt den Servernamen an und falls bekannt den Aufnahmestatus des Servers. - + Server - + T R Y I N G T O C O N N E C T V E R B I N D U N G S A U F B A U - + RECORDING ACTIVE AUFNAHME AKTIV - + Personal Mix at: Eigener Mix am Server: @@ -419,44 +419,44 @@ G
- + Alias/Name - + Instrument - + Location Standort - - - + + + Skill Level Spielstärke - + Beginner Anfänger - + Intermediate Mittlere Spielstärke - + Expert Experte - + Musician Profile Profil des Musikers @@ -1588,22 +1588,22 @@ Manuell
- + Custom Benutzerdefiniert - + All Genres Alle Genres - + Genre Rock Genre Rock - + Genre Jazz Genre Jazz @@ -1612,12 +1612,12 @@ Genre Rock/Jazz
- + Genre Classical/Folk/Choir Genre Klassik/Volksmusik/Chor - + Default Standard @@ -2452,7 +2452,7 @@
- + No Name Kein Name @@ -2818,16 +2818,24 @@ Vordefinierte Adresse
+ Recording - Aufnahme + Aufnahme + Not recording - Keine Aufnahme + Keine Aufnahme + + + + Not initialised + + Not enabled - Nicht aktiviert + Nicht aktiviert Manual @@ -2852,52 +2860,52 @@ &Fenster - + Unregistered Nicht registriert - + Bad address Ungültige Adresse - + Registration requested Registrierung angefordert - + Registration failed Registrierung fehlgeschlagen - + Check server version Überprüfe Version des Servers - + Registered Registriert - + Central Server full Zentralserver voll - + Your server version is too old Deine Serverversion ist zu alt - + Requirements not fulfilled Anfoderungen nicht erfüllt - + Unknown value Unbekannter Wert @@ -3189,17 +3197,17 @@ QCoreApplication - + , Version , Version - + Internet Jam Session Software Internet Jam Session Software - + Released under the GNU General Public License (GPL) Unter der GNU General Public License (GPL) diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index 1044d80c81..c3b0f4cf8d 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -196,32 +196,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mezcla personal en el Servidor - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Estando conectado a un servidor, estos controles te permiten hacer tu mezcla personal sin afectar lo que otros escuchan de tí. El título muestra el nombre del servidor y, cuando se conoce, si está activamente grabando. - + Server Servidor - + T R Y I N G T O C O N N E C T I N T E N T A N D O C O N E C T A R - + RECORDING ACTIVE GRABACIÓN ACTIVA - + Personal Mix at: Mezcla Personal en el Servidor: @@ -431,44 +431,44 @@ G
- + Alias/Name Alias/Nombre - + Instrument Instrumento - + Location Ubicación - - - + + + Skill Level Nivel Habilidad - + Beginner Principiante - + Intermediate Intermedio - + Expert Experto - + Musician Profile Perfil Músico @@ -1604,12 +1604,12 @@ Manual
- + Custom Personalizado - + All Genres Todos los Géneros @@ -1618,22 +1618,22 @@ Género Rock/Jazz - + Genre Classical/Folk/Choir Género Clásica/Folk/Coro - + Genre Rock Género Rock - + Genre Jazz Género Jazz - + Default Por defecto @@ -2476,7 +2476,7 @@ Ukulele Barítono - + No Name Sin Nombre @@ -2733,7 +2733,7 @@ Displays the current status of the recorder. The following values are possible: - Muestra el estado actual de la grabadora. Son posibles los siguientes valores: + Muestra el estado actual de la grabación. Son posibles los siguientes valores: @@ -2838,16 +2838,24 @@ Dirección Preestablecida + Recording - Grabando + Grabando + Not recording - No grabando + No grabando + + + + Not initialised + No inicializado + Not enabled - No habilitado + No habilitado Manual @@ -2872,52 +2880,52 @@ &Ventana - + Unregistered Sin registrar - + Bad address Dirección no válida - + Registration requested Registro solicitado - + Registration failed Error de registro - + Check server version Comprueba la versión del servidor - + Registered Registrado - + Central Server full Servidor Central lleno - + Your server version is too old La versión de tu servidor es demasiado antigua - + Requirements not fulfilled No se cumplen los requisitos - + Unknown value Valor desconocido @@ -2979,7 +2987,7 @@ Enable Jam Recorder - Activar Grabador de Jams + Activar Grabación de Jams @@ -3209,17 +3217,17 @@ QCoreApplication - + , Version , Versión - + Internet Jam Session Software Internet Jam Session Software - + Released under the GNU General Public License (GPL) Publicado bajo la GNU General Public License (GPL) diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index f350b74988..13ee5f6048 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -204,32 +204,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mixage personnel au serveur - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Lorsque vous êtes connecté à un serveur, les contrôles vous permettent de régler votre mixage local sans affecter ce que les autres entendent de vous. Le titre indique le nom du serveur et, lorsqu'il est connu, s'il est en train d'enregistrer. - + Server Serveur - + T R Y I N G T O C O N N E C T T E N T A T I V E D E C O N N E X I O N - + RECORDING ACTIVE ENREGISTREMENT ACTIF - + Personal Mix at: Mixage personnel à : @@ -439,44 +439,44 @@ G - + Alias/Name Pseudo/nom - + Instrument Instrument - + Location Localisation - - - + + + Skill Level Niveau de compétence - + Beginner Débutant - + Intermediate Intermédiaire - + Expert Expert - + Musician Profile Profil de musicien @@ -1608,12 +1608,12 @@ Manuel - + Custom Personnalisé - + All Genres Tous les genres @@ -1622,22 +1622,22 @@ Genre rock/jazz - + Genre Classical/Folk/Choir Genre classique/folk/choeur - + Genre Rock Genre Rock - + Genre Jazz Genre Jazz - + Default Défaut @@ -2468,7 +2468,7 @@ Ukulélé basse - + No Name Sans nom @@ -2830,16 +2830,24 @@ Adresse prédéfinie + Recording - Enregistrement + Enregistrement + Not recording - Ne pas enregistrer + Ne pas enregistrer + + + + Not initialised + + Not enabled - Non activé + Non activé Manual @@ -2864,52 +2872,52 @@ &Fenêtre - + Unregistered Non inscrit - + Bad address Mauvaise adresse - + Registration requested Inscription demandée - + Registration failed Échec de l'inscription - + Check server version Vérifier la version du serveur - + Registered Inscrit - + Central Server full Serveur central rempli - + Your server version is too old La version de votre serveur est trop vieille - + Requirements not fulfilled Exigences non satisfaites - + Unknown value Valeur inconnue @@ -3201,17 +3209,17 @@ QCoreApplication - + , Version , version - + Internet Jam Session Software Logiciel de bœuf sur Internet - + Released under the GNU General Public License (GPL) Publié sous la licence publique générale GNU (GPL) diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index 20a5e0f38f..86e3e67e77 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -188,32 +188,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mixer personale sul Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Quando connessi i fader permettono di regolare i volumi in locale senza influenzare l'ascolto degli altri utenti. L'intestazione mostra il nome de server, se valorizzato, e le informazioni sullo stato della sessione di registrazione se attiva. - + Server Server - + T R Y I N G T O C O N N E C T I N A T T E S A D I C O N N E S S I O N E - + RECORDING ACTIVE Sessione con Registrazione Attiva - + Personal Mix at: Mixer personale sul Server: @@ -444,44 +444,44 @@ G - + Alias/Name Identificativo/Nome - + Instrument Strumento - + Location Località - - - + + + Skill Level Livello di Preparazione - + Beginner Principiante - + Intermediate Livello Intermedio - + Expert Esperto - + Musician Profile Profilo del Musicista @@ -1616,32 +1616,32 @@ Ok - + Custom Personalizzato - + All Genres Tutti i Generi - + Genre Rock Genere Rock - + Genre Jazz Genere Jazz - + Genre Classical/Folk/Choir Genere Classica/Folk/Corale - + Default Default @@ -2428,7 +2428,7 @@ Uculele Basso - + No Name Senza Nome @@ -2800,64 +2800,72 @@ Indirizzo Predefinito + Recording - Registrazione + Registrazione + Not recording - Registrazione Ferma + Registrazione Ferma + + + + Not initialised + + Not enabled - Non Abilitata + Non Abilitata - + Unregistered Non registrato - + Bad address Indirizzo Errato - + Registration requested Registrazione richiesta - + Registration failed Registrazione fallita - + Check server version Controlla Versione server - + Registered Registrato - + Central Server full Server Centrale Pieno - + Your server version is too old - + Requirements not fulfilled - + Unknown value Valore sconosciuto @@ -3149,17 +3157,17 @@ QCoreApplication - + , Version Versione, Versione - + Internet Jam Session Software Programma per Jam Session su Internet - + Released under the GNU General Public License (GPL) Rilasciato sotto licensa GNU General Public License (GPL) diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index e9c18a204f..da2ed2109d 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -188,32 +188,32 @@ CAudioMixerBoard - + Personal Mix at the Server Eigen mix op de Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Indien verbonden met de server kan hier de lokale mix ingesteld worden zonder dat hetgeen anderen van je horen wordt beïnvloed. De titel toont de servernaam en indien bekend of er audio wordt opgenomen. - + Server Server - + T R Y I N G T O C O N N E C T A A N H E T V E R B I N D E N - + RECORDING ACTIVE GELUIDSOPNAME ACTIEF - + Personal Mix at: Eigen mix op: @@ -436,44 +436,44 @@ G - + Alias/Name Alias/Naam - + Instrument Instrument - + Location Locatie - - - + + + Skill Level Vaardigheidssniveau - + Beginner Beginner - + Intermediate Gemiddeld - + Expert Gevorderd - + Musician Profile Muzikantenprofiel @@ -1564,32 +1564,32 @@ Handmatig - + Custom Aangepast - + All Genres Alle genres - + Genre Rock Genre Rock - + Genre Jazz Genre Jazz - + Genre Classical/Folk/Choir Genre Klassiek/Folk/Zang - + Default Standaard @@ -2416,7 +2416,7 @@ Ukelele-bas - + No Name Geen naam @@ -2778,16 +2778,24 @@ Standaardadres + Recording - Neemt op + Neemt op + Not recording - Neemt niet op + Neemt niet op + + + + Not initialised + + Not enabled - Niet ingeschakeld + Niet ingeschakeld Manual @@ -2812,52 +2820,52 @@ &Window - + Unregistered Niet geregistreerd - + Bad address Slecht adres - + Registration requested Aanmelding gevraagd - + Registration failed Registratie is mislukt - + Check server version Controleer de versie van de server - + Registered Geregistreerd - + Central Server full Centrale server vol - + Your server version is too old Je serverversie is te oud - + Requirements not fulfilled Vereisten niet gehaald - + Unknown value Onbekende waarde @@ -3149,17 +3157,17 @@ QCoreApplication - + , Version , Versie - + Internet Jam Session Software Internet Jamsessie Software - + Released under the GNU General Public License (GPL) Gereleased onder de GNU General Public License (GPL) diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index 097b116c5f..7100c02f7f 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -149,32 +149,32 @@ CAudioMixerBoard - + Personal Mix at the Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. - + Server Serwer - + T R Y I N G T O C O N N E C T P R Ó B U J Ę S I Ę P O ŠĄ C Z Y Ć - + RECORDING ACTIVE - + Personal Mix at: @@ -381,44 +381,44 @@ - + Alias/Name Nick/Imię - + Instrument Instrument - + Location Lokalizacja - - - + + + Skill Level - + Beginner Początkujący - + Intermediate Średniozaawansowany - + Expert Ekspert - + Musician Profile Profil muzyka @@ -1299,32 +1299,32 @@ nie jestem pewna - + Custom - + All Genres - + Genre Rock - + Genre Jazz - + Genre Classical/Folk/Choir - + Default @@ -2114,7 +2114,7 @@ nie jestem pewna Ukulele basowe - + No Name Brak nazwy @@ -2446,55 +2446,75 @@ nie jestem pewna - + Unregistered - + Bad address - + Registration requested - + Registration failed - + Check server version - + Registered - + Central Server full - + Your server version is too old - + Requirements not fulfilled - + Unknown value + + + Not initialised + + + + + Not enabled + + + + + Not recording + + + + + Recording + + CServerDlgBase @@ -2780,17 +2800,17 @@ nie jestem pewna QCoreApplication - + , Version - + Internet Jam Session Software - + Released under the GNU General Public License (GPL) diff --git a/src/res/translation/translation_pt_BR.ts b/src/res/translation/translation_pt_BR.ts index 29887f5462..645daf60a5 100644 --- a/src/res/translation/translation_pt_BR.ts +++ b/src/res/translation/translation_pt_BR.ts @@ -205,32 +205,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mixagem Pessoal no Servidor - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Quando conectado a um servidor, estes controles permite definir sua mixagem local sem afetar o que os outros ouvem de você. O título exibe o nome do servidor e, quando conhecido, se está ativamente gravando. - + Server Servidor - + T R Y I N G T O C O N N E C T T E N T A N D O C O N E C T A R - + RECORDING ACTIVE GRAVAÇÃO ATIVA - + Personal Mix at: Mixagem Pessoal em: @@ -440,44 +440,44 @@ - + Alias/Name Apelido/Nome - + Instrument Instrumento - + Location Localização - - - + + + Skill Level Nível de Habilidade - + Beginner Principiante - + Intermediate Intermediário - + Expert Avançado - + Musician Profile Perfil do músico @@ -1598,22 +1598,22 @@ Manual - + Custom Personalizado - + All Genres Servidor Geral - + Genre Rock Servidor Rock - + Genre Jazz Servidor Jazz @@ -1622,12 +1622,12 @@ Servidor Rock/Jazz - + Genre Classical/Folk/Choir Serv. Clássica/Folclore/Coro - + Default Servidor Padrão @@ -2454,7 +2454,7 @@ Ukulele Baixo - + No Name Sem Nome @@ -2816,16 +2816,24 @@ Endereço Predefinido + Recording - Gravando + Gravando + Not recording - Não gravando + Não gravando + + + + Not initialised + + Not enabled - Desativado + Desativado Manual @@ -2850,52 +2858,52 @@ &Janela - + Unregistered Não Registrado - + Bad address Endereço incorreto - + Registration requested Registro solicitado - + Registration failed Falha no registro - + Check server version Verifique versão do servidor - + Registered Registrado - + Central Server full Servidor Central Cheio - + Your server version is too old - + Requirements not fulfilled - + Unknown value Valor desconhecido @@ -3187,17 +3195,17 @@ QCoreApplication - + , Version , Versão - + Internet Jam Session Software Programa de Jam Sessions pela Internet - + Released under the GNU General Public License (GPL) Lançado sob a Licença Pública Geral GNU (GPL) diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index bbe49b3155..fbe9851981 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -204,32 +204,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mistura Pessoal no Servidor - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Quando ligado a um servidor, estes controles permitem que defina a sua mistura local sem afectar o que os outros ouvem. O título mostra o nome do servidor e, quando conhecido, se está gravando activamente. - + Server Servidor - + T R Y I N G T O C O N N E C T T E N T A N D O L I G A R - + RECORDING ACTIVE GRAVAÇÃO ACTIVA - + Personal Mix at: Mistura Pessoal no Servidor: @@ -439,44 +439,44 @@ G - + Alias/Name Nome/Alcunha - + Instrument Instrumento - + Location Localização - - - + + + Skill Level Nível de Habilidade - + Beginner Principiante - + Intermediate Intermediário - + Expert Avançado - + Musician Profile Perfil do músico @@ -1596,22 +1596,22 @@ Manual - + Custom Personalizado - + All Genres Servidor Geral - + Genre Rock Servidor Rock - + Genre Jazz Servidor Jazz @@ -1620,12 +1620,12 @@ Servidor Rock/Jazz - + Genre Classical/Folk/Choir Serv. Clássica/Folclore/Coro - + Default Servidor Padrão @@ -2452,7 +2452,7 @@ Ukulele Baixo - + No Name Sem Nome @@ -2814,16 +2814,24 @@ Endereço Predefinido + Recording - A gravar + A gravar + Not recording - Não está a gravar + Não está a gravar + + + + Not initialised + + Not enabled - Desactivado + Desactivado Manual @@ -2848,52 +2856,52 @@ &Janela - + Unregistered Não Registado - + Bad address Endereço incorrecto - + Registration requested Registo solicitado - + Registration failed Falha no registo - + Check server version Verifique versão do servidor - + Registered Registado - + Central Server full Servidor Central Cheio - + Your server version is too old A versão do seu servidor é muito antiga - + Requirements not fulfilled Requisitos não cumpridos - + Unknown value Valor desconhecido @@ -3185,17 +3193,17 @@ QCoreApplication - + , Version , Versão - + Internet Jam Session Software Programa de Jam Sessions pela Internet - + Released under the GNU General Public License (GPL) Lançado sob a Licença Pública Geral GNU (GPL) diff --git a/src/res/translation/translation_sv_SE.ts b/src/res/translation/translation_sv_SE.ts index d91bcbe37f..a200e6b9d6 100644 --- a/src/res/translation/translation_sv_SE.ts +++ b/src/res/translation/translation_sv_SE.ts @@ -148,32 +148,32 @@ CAudioMixerBoard - + Personal Mix at the Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. - + Server - + T R Y I N G T O C O N N E C T - + RECORDING ACTIVE - + Personal Mix at: @@ -380,44 +380,44 @@ - + Alias/Name - + Instrument - + Location - - - + + + Skill Level - + Beginner - + Intermediate - + Expert - + Musician Profile @@ -1324,32 +1324,32 @@ - + Custom - + All Genres - + Genre Rock - + Genre Jazz - + Genre Classical/Folk/Choir - + Default @@ -1793,7 +1793,7 @@ CMusProfDlg - + No Name @@ -2428,55 +2428,75 @@ - + Unregistered - + Bad address - + Registration requested - + Registration failed - + Check server version - + Registered - + Central Server full - + Your server version is too old - + Requirements not fulfilled - + Unknown value + + + Not initialised + + + + + Not enabled + + + + + Not recording + + + + + Recording + + CServerDlgBase @@ -2749,17 +2769,17 @@ QCoreApplication - + , Version - + Internet Jam Session Software - + Released under the GNU General Public License (GPL) From 752134b1fd6c0d5101af38db0026928a79279e3a Mon Sep 17 00:00:00 2001 From: Olivier Humbert Date: Mon, 6 Jul 2020 14:57:06 +0200 Subject: [PATCH 337/936] Update French translation --- src/res/translation/translation_fr_FR.ts | 56 ++++++++++++------------ 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index 13ee5f6048..dd2c17974a 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -113,12 +113,12 @@ Polish - + Polonais About - À propos + À propos , Version @@ -338,7 +338,7 @@ No grouping - + Pas de regroupement @@ -346,7 +346,7 @@ Assign to group - + Affecter au groupe @@ -953,7 +953,7 @@ Sort Channel Users by &Group - + Trier les utilisateurs des canaux par &groupe @@ -2644,43 +2644,43 @@ Display dialog to select recording directory button - + Afficher le dialogue pour sélectionner le bouton du répertoire d'enregistrement Main Recording Directory - + Répertoire principal des enregistrements Click the button to open the dialog that allows the main recording directory to be selected.The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). - + Cliquez sur le bouton pour ouvrir la boîte de dialogue permettant de sélectionner le répertoire d'enregistrement principal. La valeur choisie doit exister et être inscriptible (permettre la création de sous-répertoires par l'utilisateur sous lequel Jamulus fonctionne). Main recording directory text box (read-only) - + Zone de texte du répertoire principal d'enregistrement (lecture seule) The current value of the main recording directory. The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). Click the button to open the dialog that allows the main recording directory to be selected. - + La valeur actuelle du répertoire principal d'enregistrement. La valeur choisie doit exister et être inscriptible (permettre la création de sous-répertoires par l'utilisateur sous lequel Jamulus fonctionne). Cliquez sur le bouton pour ouvrir la boîte de dialogue permettant de sélectionner le répertoire d'enregistrement principal. Clear the recording directory button - + Effacer le bouton du répertoire d'enregistrement Clear Recording Directory - + Effacer le répertoire des enregistrements Click the button to clear the currently selected recording directory. This will prevent recording until a new value is selected. - + Cliquez sur le bouton pour effacer le répertoire d'enregistrement actuellement sélectionné. Cela empêchera l'enregistrement jusqu'à ce qu'une nouvelle valeur soit sélectionnée. @@ -2725,52 +2725,52 @@ Displays the current status of the recorder. The following values are possible: - + Affiche l'état actuel de l'enregistreur. Les valeurs suivantes sont possibles : No recording directory has been set or the value is not useable - + Aucun répertoire d'enregistrement n'a été défini ou la valeur n'est pas utilisable Recording has been switched off - + L'enregistrement a été désactivé by the UI checkbox - + par la case à cocher de l'interface graphique , either by the UI checkbox or SIGUSR2 being received - + , soit en cochant la case de l'interface graphique ou en recevant SIGUSR2 There is no one connected to the server to record - + Il n'y a personne connecté au serveur pour enregistrer The performers are being recorded to the specified session directory - + Les interprètes sont enregistrés dans le répertoire de session spécifié NOTE - + NOTE If the recording directory is not useable, the problem will be displayed in place of the directory. - + Si le répertoire d'enregistrement n'est pas utilisable, le problème sera affiché à la place du répertoire. ERROR - + ERREUR Displays the current status of the recorder. @@ -2822,7 +2822,7 @@ Select Main Recording Directory - + Sélectionner le répertoire principal des enregistrements @@ -2842,7 +2842,7 @@ Not initialised - + Non initialisé @@ -2974,17 +2974,17 @@ Recording Directory - + Répertoire des enregistrements Enable Jam Recorder - + Activer l'enregistreur de bœuf New Recording - Nouvel enregistrement + Nouvel enregistrement Central Server Address: From 3743a6c9238c179b6b5cf8aa121b8bbda76b391c Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 6 Jul 2020 16:35:26 +0200 Subject: [PATCH 338/936] update translation files --- src/res/translation/translation_de_DE.qm | Bin 101916 -> 101555 bytes src/res/translation/translation_es_ES.qm | Bin 98984 -> 104235 bytes src/res/translation/translation_fr_FR.qm | Bin 105023 -> 111216 bytes src/res/translation/translation_it_IT.qm | Bin 100056 -> 99677 bytes src/res/translation/translation_nl_NL.qm | Bin 99112 -> 98731 bytes src/res/translation/translation_pl_PL.qm | Bin 13508 -> 14745 bytes src/res/translation/translation_pt_BR.qm | Bin 100380 -> 100035 bytes src/res/translation/translation_pt_PT.qm | Bin 101574 -> 101231 bytes 8 files changed, 0 insertions(+), 0 deletions(-) diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index babf5994772a91db8c9f56fa26559e5298ce3633..ce3ba950801309040a525c15c6be201294774940 100644 GIT binary patch delta 1252 zcmX9+eNa?Y96i7H_U+q`_uc~IMt-o$s)$a2AGj;4U}VULd`y6=sJniE8mNSdk@DFn znt!Ot9TRh{F=JE;v{A!iBvgj{sT5A<3}^R5*i4LWq#` zAqx|Bk(HehCIxm?zX@92ga-pI;Ks9;NQn=bD!M1EX`#cl=4~3r^mjh;(a5w!pC}FG6S6BiZ z+4Bl-ZW8*-D?ytAgn^Qc!1W|ypgjg?8!bEu?FBlTMg8$Ce!f%Gw?5$Jmxw`6ZGg90 z3_hI)+F%ePy)mH3Dlz@aXTS?pEObW#GmeRs-)Dn8(fON}eI;<`rd8B+Hx|>~;yu;>rbhmGe1`7A;y3X=p`-bbfBg;VVr?5Ev>|t3=lIvkTaHv|E zu1*0AtWBEYG!a@`5~h ze(e?@vsd;^FoGOM`@h_ z)eEn4fml=iy`!LU2TcWo+dwgAP3sbPcSS|4)a-V}oi_b7kyn?QX1Z_W_U6=?b+v&& zy4P$F=Kx}d*>6lZx0_;irmP3<=bGbVD?oW|OjVq;l*K6yA^R#TRU#;Z)hXe2XSXus zgaDdgQG!aja>QN5wyO{5-}e$Jx{eKUvXOmTUA+X#wJTM3!J9v& zuu$Hmu}Ik;+zi^-sWcLQJ}37T-d?Djf4h)(zF%pbe*>@uC_fvffTB*b1M1A7Q`8ZM zCE$yumqh@`O_gv=N3{ z5Yn{JvNE70ObhMt0VA`tiB?|eyb{e>kpYpW6|>*9@l3Ofb**dHN_%R6iQO8rE&~O+ zwS$ijb5Av|FnLgGy1WwzNzi_^IzjeE?T$PKG~LJ6SjqxcS6j}lVepDaYkR3(Wf*U?vNHxOVZ3(3AP4<$1 KL%WyWiTEGNgn-fj delta 1445 zcmX|92~1R16g~IP{Q0x|{|C?!*O`G@L|Ra*GB_xTMMTiS0-|UcMHp}p2Amm}x`2%( zYFpPA1yj^gYgE!$QLAlesk=5QZcWviRIM9vsn)hwiA(#6i7$EYVNvye-ep)wCuMaH<1R$~S!=P|D6DoA~daYqM$%>9razX3FN6%&Oh zA)|=J3Tvp2eJ2dE-G1l?WoXe>Hwsi@#={OLaQRs$QhI=in%wjX3vJCl3pnzqq1g%= zolQH#N&)E`ITf?9>C-jZe;BNjWY=C!NtJN4KMM^Lg8_B4QNpz+pM)lF1o7G9e>D+ zXwvj~Y6aYNnuxDULG$u7L)=NAp%(V5Hp*D|Ow%-X7-;cFOc6&K9%=JGe*l`C#U_b9 zA<4&%i|(G|M`^EJehmoLYTFL;y4rhb?+vK}&ELXC=u&%5GmFkYb_3h$#6)Em!1ZnyOGl`H-5|~$+8c;iBv!ng!}%%Vf``|E>igoti$37Y zI&p<}8^~2BuJo-2y|sdg(&W%j#l}SE{eS4zkPA=95-XNTqb3xCIp5$i^6w zgc(CwjbS-$V~R0Js2t5E7>k9(WcHP@IBe2oV^PUXV9|7AQTqc>a4(BBStFeqW7)J{ zc%o#Z@8&L0zXoIF^W~tCDMo)9_i4c?R&L65rY0Ki4CHEaGL3f)2GIDmCT(LlkmWY% zH5q{Bv?-)-94Kdt$uS`S-1VBqCNBk*b!X2_4!X&P%JG7yA1jv!&;_G_)j9df(L<+!<~HSIaUsa@t#W!Mzvsm(XS(xo zd^$*JyT?nP?pE&3;QX9=<&o0`q??q#_q#y-V^!%z7^ue{HT=v2pgvUXRl+;$I;{5A zH-eC-T$nL3}zUG=mIXyNvM_%q;WROAE^FucGF>OWhA{ol4sU{Y%d4 zs~zN~9^p>p!UI1R^3#h#%;L(t2(WW2yVOogq|jckREB1CO7Qwh0`}sHvj4U4td`od NZc+|bmTA3|JYJ7R-Y5!Zh;Q5`H898MG! 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 R@eRdO8i$P@#IwyU{}=X0_$dGY delta 4450 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 GI{gn7`XlE6 delta 4383 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 L?@UT#-)#N|n6E1Q diff --git a/src/res/translation/translation_it_IT.qm b/src/res/translation/translation_it_IT.qm index 779588fa7dff5525a4dcb15c3c12167b26a5e868..7f057a52554f30dd60d2fd0378eac4be5a2dde5e 100644 GIT binary patch delta 1170 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 poE0}`kco%a4U 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 W>VCDrlV57hD=Fg7H}L8oBmV{MgP!03 diff --git a/src/res/translation/translation_pl_PL.qm b/src/res/translation/translation_pl_PL.qm index 33447ef5b5ad04de3d04a9811316683fa0d835f3..0c998c47621c3c9f5d3f5a64ef2785c584e011aa 100755 GIT binary patch delta 1890 zcmZXUdr(w$6vw~2+{^CWU6$R2mF2lCAn*615>Qc;rzW9df;cK{fFUM=iBf9`mXA^M z`oJPnB*a%{tByuy@+d$}jG9ps5jB;xjFJ>1>@0VhX6TQd&u`D1dw$>Z`ZX8qTxyCv znX7AmSiS9n!R5@nJ*T@S0&G2i(SZFy;uOGECQ!`@bbO1LPWBps>dOM1+v(dZ`tD62 zAO;X?fDAfIwhL5~e|b6JDhIRS2r#M*jA>T|pvVDZp(-ED?o)KP0?fV5fbV3m0pA1a z5U`=OfZH9gaXjGo3)rM6AS@DW#$*ywD$xG~*x54y|Jz{quz*WB*ai|CxEnTM`vFa# zz)^DeH!vjZ98ALpn@spW2n7rg2)OtSVAF}j?ah=y6B4`0QF&Eha2}E>Z2`|XB6dKAS4wcmyy1{fGob zn2_lnNacD5+13UiNQ7*QL(oFhZlcUQk71v0CtwBChXhl=9vnFPJK$G|OB<5`yRiZt zRJcL9p*w_!1JQs(fxzG&(eHN)@KB0+rVo;klVVkW9^kZ3tZhvsAttrh<7P2An8o97 zMF8Gb;FvmG=u zX{Gt31IpKIzM5XpIxU4Oki7+sl;v$Y{!BjiWkZLFvpX6Tq{uf zIeY))m()^ok_CfLAy0;M4pKatQBf&O9A)VyzLR!&Rvziy%L zzY^%lNXz;*0@8BnniSIj^+qRMS4ROn2RX0Ts0HpmT!KhV3J1B&C*x?k7jZf7_0t-~ za5?ws0>8&xVb+`E_baz}l1!F^dxgxHOl#)aCCg81rGRO&{9gLdV}-0R>k7?4jqGQR zql(Do>(?xxZE2Qo4JF~y=jGK2G#i17IF*rP3Il1x{?eP|Yx-rU^?of%Xx|K!sLnLUklGj=?9#lR)^a(vo8*C@E(f)g{ zvz<~#f@Dp$uUw$s2E14RM6_Db{OkBGgM)c9ThH>pc?KwL;^Xt@7Zn)`6Xxd{i+TIe zkt0pbKE5MOnSS9TO;vsgBTdir|MSuXj2r1yXYVt@v_;?^mgKC(T0M%2_jfuFxd&H36=cvr>#SDJ2SP`iau{K9#-sg64*p z?;RDzH)?f!v_qtYA`gC#ojpH8=R0i8cbqlMdS|1B=EGW^;r(2^&8M7H48KdSSIFbz z7gMEjEVB4l4Vlt^4g58=hxw-45*0r~ delta 1785 zcmYjS2~bmK5dIS0OL)0BluIB4p)?|jty-<1sCaOxDOwc~D@P2`0G4BH95vRet>9># zNQ)z0qxIIx#9BL8t)ea7wAAq!571Uon4z^|rBk(Eq-C0!mwoT;?zi85yMMBw5-fTzhrp#qf|5v$uVFYZm}#~ zOvYsaed7T6FktEu`uT3rA|Plugw5 zg<2pE*a7rf263bl@DGESG#H49gE)085S0!w<6YXN5Vwgy;6aGB9|FdBXy4ca_&h>% ztpKRMLUh{zAmlRoUj6~l^vC$mPLp6O#^0e|>kyE%!VA#fL~`C85*dNyx>(u*q`XxL z^bbPHsZ}IoLh89HcAJL@@m~PF55P2yK)ThKoWTzLnlb(P6L#E&8HO0(^$27s!bxZo zvfTbY3hY=*;$bH2GByGpM(mF54>)8J_MUu9mBaDlnq*4UjwTXC&kEdcF9xDL(B4To zdnBQw&pjY?udI18<&Kyl_wKMznd@@D`tc-?DDQoj@%l;fgnI*l@GbIHBn!he`CfM; zDpQvYZIYj@H3LG9yrXmx9Ppnm?_6Z3WG0WAvbWiBsu2H5qJ6^5)UzaD7VNg!WMmX7 zJ2`@YyUCn}GXqOF) z7Eiyt&G@@weX@g62D!wBoEL1cLA)|Ef=X-b z9MLdkXc7zeZBnM6845^2$}%IDR-B@&y2HHCRAqA(iS{uon~x;W4pu%4(^IKIp0Ue+ z<)|-urdlr1W_ad1zCXj6ZS}POz6MZOJy)i5QsNZP@|{cwtCAw;Q_A2vX`IZ5M5?42 z&qi>jl9aoygG+W*%58N6Iwf1?5^j09R6g9T&@*Yzjm;!hE*-nj$ij=I6IrDk!ADgRr#iR0)3#$f5-&Azsi<*od6?L zHP+)?&fipzB#8?6sw-CJkjQNH`T-=ah*VdPTTdk=^_GMuRLo1gbM0u3aKF0toJhQ3 z>iPrRDet4|CKKO>opq?63T+I$stH|8#_BYUel0r-UZ{zQDI-w6Cgs#GJm0Mvr%}gq zYu0QG|Bkx?O|7hiK>98lXwlsNg9Lq`X(^jU?<`Gc7Kub|(WX{V*^n1n^CS||RCZad zOQ(F{%h5P4>Bg?O$BqJZ6K_A}56ltWJNGH6pwt!ae!;D7)j9p#9aibKUE4*!P50;i zgCzREYt&iB_m1*Pvy-6bA+I?XIm)O=u4Ae8N3?)n}!#rf8kRS#u z;I~C4BCi`pH7>g_*KU|R&sylL2{t$j3{kG(%EnE7@t?+efmW!;!P#ujGh*vy8x*#(ATb8b;_p1IiBKE%%zK3FAxvlk|!hzRan zH=>1@Zhl1TM$k?)FZegrT4-_S^3Me!NM&RxFB=go|Ie3=>CW{@e^rusC5Aagw*P7y IhrBQU2kC9iD*ylh diff --git a/src/res/translation/translation_pt_BR.qm b/src/res/translation/translation_pt_BR.qm index 9139615ce90ff89842178ee3ae7bd7f83f4c4409..069c91b200a6ef4919dd2b467e5d467f95b39283 100644 GIT binary patch delta 1224 zcmXAnYfw~W7{~w5IeYdjXU{pSB%-Dus}V7_fb6b{x@jO63k=c48&HUgA|P&f$w6_( zL3A1&^&Qj{OjE~Ol9q->UJ;@4nj%S!mPm|}m^!FfQ19rc-#j1Q_xWF*@^!|VHO6(l zXzzNzR_eXJD@mBLf+f;ItMyaFmsmiO6$x3lLB>KP)P!;F#CT^JDE~TZplD4}so&P3R~r z0=~HRij7Ia)8Z0P;Rd0z=o8>7=T9!+REO{)q#dX`FB%U`1uYmT8fzbd<{88R{{#Tj z?~6gla`?Pgw5Pj3L#~Ju8@2(@28o4kJ22w7Sn}OWupbRQl^F-b!wW|6KYnH{2A2{O zVo2N74w_KP-j+Oqvxt>R>HT7g4Zk-H0t)sSTF-FP556+A*_VL|>X>GX?U%Adiu#+o z+?Fei)FJ`XR%uk)5m4NAmS+r(n*X(wGg=1*K9c4-`UBPsXD+&}K=C7)LoOvBc0#rZQ|;`5 z9M?16_~djt|GB~VEReq(zK@MF1zS@?Szb$b+Ha5Fep>WoqiJ}H!Ase z_kjiuQVP0CLBk3ZZ#=Kd`xbMU-BGSC1Y?f+M!fVxD-v}V*M4;9F6v^UMT=`)QXl`RpF0UGBs0^~pi4wT(xWdXi#qem1Xsn+vTg;6{Y-hVIfxXR^PUkcpXSb#E%Y0C9!W_`T o7b}`9RZSN1237qUL7~>Fj7fA=*z|l1g>IUbO1-Mir;l8UO$Q delta 1405 zcmYL{3rtgI6vxlG?d>hM_uh^Q1DVnmgl$C&6)cL->1YvHtO{CR0j>4{4HVWEb&IcM z;$s;``Jy-#jj#BK=**^=uqlEl%bdFCL|xQPL{wC!hHYd)_YD(wlk@%W_c-_dzH|Pq zHHz&U6dNM2d1GWZzS=loXJ(%zlW|d8d<^7Ps{z?K$aCERRD>X}HJR!j$Tx2Stc)aG zn8;XH5s_JgTgfKIq`lu80JIvQd&>mC`F+sap8;@X?Vw^dA-5QZp|lEj7G4GzlZ?BX zVgbiz-~o*ffZK`ZYNrGI_yErxJp!1ulN8Bfneqg(OtzkxNr)&n8&V3HADY|%DhJb9 z@HOCvyP3YwQh?o8UTcS)`Ex}zVAT~;E{}~{dsv8r)^i-(X~atm(@mly4Q3OKc$B(NSPT}5ix;uu?r{I{F&0F?*j z-DfEOlcVyUwB>*SC1DjgG1Hsaj6aS5>?mW$i>Uz0ZER-Iw}8376SpFf3A`XRiYR>_ zyQKFnz|wa1(+)pCdp*0hbPwR92kbikdcY((X;U~f3AyZ{_R|2z#Gyr-l2HWTnrHRi{dXW%^WwDWGNH#XO(ipbEg32Y~{@TO915_ZlZPv zz;d3mYiUu_R&xbyV*!%xb2B1o`pimh)}d7Z1!Y{3Aq+4Dxq1CB0qv(rgVJco`<2^r z=M=y*p8HC$1Ll`-+qd5Zj2_9=pN|DpD!3D#Q-FFu8Bki7+5IFdY&A3bGtw4jVSFbE z%X^r#BvQ_MG*hg+%X<%C@jBks_Y|!TawW1k}azl>=)4(_is{ zT-vChk0huZ86SMfKTM(5nAX8R3Zs~|Q!4qPD1fQMR7%-L0J7_sb99Nl{^lI{i$~+rM5R8m@8kr#&dDCoYwE+|t0Q{NXZYzzQo#0Wo`Y(NUc(L-y+ zVf$Htdf%X;^{{B}IRfadCG}!X{!D|or-WK3d5m}eUTopOhHqzbY+zypM9oBoes*P+ctTy1t)o z=SaK$rfQPN6KTDsBw5|!rN6ffO}y@z~v6qeU^z4jj1L~ij&jS5oFpIk#)V<7#%Uh=65bAbL)K0 za^0KL9~WX|V{sw=%+y^op}NlEKnVkNlO3p=FaoAhm>`7csH0GBI{pvY4SjSa_y#h( ZV345H?+xla6=naS(2qwqmOIdq@-LP~ri=gp diff --git a/src/res/translation/translation_pt_PT.qm b/src/res/translation/translation_pt_PT.qm index d1efc10af6212fa6c25d90e29203c607185da729..aa8ecaddd0bf068a4fdc18281e65e2b65e4da154 100644 GIT binary patch delta 1237 zcmXAndr(w$6vw~k-o1PGaqnGX+*w1|LXkly9`f2)h13KVP#lqmAgksB5)mJu;RBXR z#?kH9P;=}a8+7BhWC&(`x?l29!X81Ad`sX=xR{$Kqd)+LgIZE zEUcq>?5Hrpc6;+^(5zl`_c?)!UC&90IZPEZhZmO8j>+eMm@L}aU2%>1I1q#dP-ITdn#Y> zN}ce~Qwb`)BlN9Y2AuB|`p(1wO^1cYL0!O^HKM*Q8?p{+0;SwzyY+!%ml~wEg;k)0QmG(T0|t+f=0*7eL$*i@-c0BD2&uHY9jI6@ zEx%L*oPA6BVD1;7TB0@{UG!)L*!?;%&mrQq!TuhR~tgE#F={{zIm;#8G&0YZ^ zTwJ!OV*s@QnZpj8Oc_ci2` z-5ET;=%ISwnF@^eQy&~k1qIyEB0*p z@7Ip~R0RZ$)-GEeAbYmfE(d@dXW4v9x%a$q%kg|JaqLHySzz ClYN{3 delta 1463 zcmY+C3s6*L6vzMP?%uuoxc9D-sG%&2B0fsgl-*okP|8y_2Lu!qWr^3N69fQNGVY;6O4S+H#jxZH}lQ^-t(PvzTY|L>)4`e z+@{;uhx)(e`$UM1W4`1RQuWM5rGZ-zRc;39S0g&>I>>Ml(Z@%Dj2gt)-UfM-nJ5Gc zQB7>5uz?=2Z-g-cH#^**sMToQ8U}LN(b4SyF17b4MYb_flN3`>Lpu}B1LKpa`ltmo zr8n*I$pfTQ)VOITaL!4MpBw;%yXjI_Jt)vhKPNl_DPPl#3~r}RYE7sG73Z*Bnk~Yd zAJ`OK9p5yErXUH(dZgFcnxbb z{tqoc+D%R17kQwP=QQI|Cxb>euphO-#*7fnrzPV-D{`13PBumtYv+B?4odW4iDD65 zU=3obU-U`sPge#5-hJBE?|4~v?`Ye`tpY8c%O>d}{AO!J$K3!b(WM<|1 z;6Zagmi(h$0ma;vY~4#iQk@hYumgDQg5(U~&9yhPGkS}0Y?_qT{REU?V4eDq5zZmf z*6X#v{U~Xh>;ySKleTYf1`Vi?s!muyrfli+>{?LJuWXuOvXDB7l^fR34W<|;3x$8N zIAgY8U&oFZvwadOj9EFq04ru2vpU;Bo-#JlWD#tMEY8%=aK-43;!{{s%L+_Mj+fJn zzm4W>iIe(`4!u6atFhYO=?9fSVgkk>O>ayv6LX$tFyg z&q8IJkhz8x$RUEGFRPMA1@4#o91=jm^|Jq~JoO8)vSmXjaId&W$+4E*kw;M@^H(hK z)57FMH@MU8tFrsjdC-Cmc~cAcWG~8WmYI&+x_sPendihK@ z%MG)x09K=XT0a(KThG=jQ=Yx84BRaO)qXun(XwJ|R@No;ga*(Jy7g5)~N=Z zDB|BCdhn&=`}wK4o<;fT%RE-^0+%(j#O-z!daWLBy0^q*Ez0h(x?Pz??ktx(q>^H& zPmL~=41>*9gd-DPSMG?U0ezmCR+yfV@3Q8l7g+y|s+^xp{cFs#=%i4&CzQ;U z2P4T)*^xq`;i*e*VNQ=vSP*7#LJv=x&Y82|`X6~KI=RL3A9?Ti9xNX1v1S+LbH1lH K`Ocw~(f Date: Mon, 6 Jul 2020 18:39:35 +0200 Subject: [PATCH 339/936] implementation for the client: add support to change language (#297) -> server implementation still TODO --- ChangeLog | 1 + src/clientsettingsdlg.cpp | 6 + src/clientsettingsdlg.h | 1 + src/clientsettingsdlgbase.ui | 16 ++ src/res/translation/translation_de_DE.ts | 176 ++++++++++--------- src/res/translation/translation_es_ES.ts | 176 ++++++++++--------- src/res/translation/translation_fr_FR.ts | 204 ++++++++++++----------- src/res/translation/translation_it_IT.ts | 176 ++++++++++--------- src/res/translation/translation_nl_NL.ts | 176 ++++++++++--------- src/res/translation/translation_pl_PL.ts | 176 ++++++++++--------- src/res/translation/translation_pt_BR.ts | 176 ++++++++++--------- src/res/translation/translation_pt_PT.ts | 176 ++++++++++--------- src/res/translation/translation_sv_SE.ts | 176 ++++++++++--------- src/settings.h | 15 +- src/util.cpp | 71 ++++++++ src/util.h | 22 ++- 16 files changed, 1012 insertions(+), 732 deletions(-) diff --git a/ChangeLog b/ChangeLog index a265811d21..7503d63881 100644 --- a/ChangeLog +++ b/ChangeLog @@ -22,6 +22,7 @@ TODO add support to change language (#297) TODO add language selector also in the server GUI + TODO search in the code for "TODO maybe first try to find the complete string, if not found use only first two letters instead" TODO bug fix: incorrect selection of UI language (#408) !!!!!!!!!!!!!!!!!!!!!!!!!!!!! -> note that for the 3.5.8 bug fix release we went back to the original translation code (e.g. no pt_BR!) diff --git a/src/clientsettingsdlg.cpp b/src/clientsettingsdlg.cpp index 11b841cbcc..83451379c0 100755 --- a/src/clientsettingsdlg.cpp +++ b/src/clientsettingsdlg.cpp @@ -341,6 +341,9 @@ CClientSettingsDlg::CClientSettingsDlg ( CClient* pNCliP, cbxSkin->addItem ( tr ( "Compact" ) ); // GD_SLIMFADER cbxSkin->setCurrentIndex ( static_cast ( pClient->GetGUIDesign() ) ); + // language combo box (corrects the setting if language not found) + cbxLanguage->Init ( pSettings->strLanguage ); + // custom central server address edtCentralServerAddress->setText ( pClient->GetServerListCentralServerAddress() ); @@ -423,6 +426,9 @@ CClientSettingsDlg::CClientSettingsDlg ( CClient* pNCliP, QObject::connect ( cbxSkin, static_cast ( &QComboBox::activated ), this, &CClientSettingsDlg::OnGUIDesignActivated ); + QObject::connect ( cbxLanguage, &CLanguageComboBox::LanguageChanged, + this, &CClientSettingsDlg::OnLanguageChanged ); + // buttons QObject::connect ( butDriverSetup, &QPushButton::clicked, this, &CClientSettingsDlg::OnDriverSetupClicked ); diff --git a/src/clientsettingsdlg.h b/src/clientsettingsdlg.h index 6a589e8e73..2bb04f52e7 100755 --- a/src/clientsettingsdlg.h +++ b/src/clientsettingsdlg.h @@ -107,6 +107,7 @@ class CClientSettingsDlg : public QDialog, private Ui_CClientSettingsDlgBase void OnAudioQualityActivated ( int iQualityIdx ); void OnGUIDesignActivated ( int iDesignIdx ); void OnDriverSetupClicked(); + void OnLanguageChanged ( QString strLanguage ) { pSettings->strLanguage = strLanguage; } signals: void GUIDesignChanged(); diff --git a/src/clientsettingsdlgbase.ui b/src/clientsettingsdlgbase.ui index 40fb9f4566..bf9bc4e476 100755 --- a/src/clientsettingsdlgbase.ui +++ b/src/clientsettingsdlgbase.ui @@ -515,6 +515,13 @@ + + + + Language + + + @@ -542,6 +549,9 @@ + + + @@ -707,6 +717,11 @@ QWidget
multicolorled.h
+ + CLanguageComboBox + QComboBox +
util.h
+
cbxSoundcard @@ -726,6 +741,7 @@ cbxAudioQuality edtNewClientLevel cbxSkin + cbxLanguage chbDisplayChannelLevels edtCentralServerAddress diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index 0853e28d02..48176fb4ac 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -1588,22 +1588,22 @@ Manuell
- + Custom Benutzerdefiniert - + All Genres Alle Genres - + Genre Rock Genre Rock - + Genre Jazz Genre Jazz @@ -1612,12 +1612,12 @@ Genre Rock/Jazz
- + Genre Classical/Folk/Choir Genre Klassik/Volksmusik/Chor - + Default Standard @@ -1626,23 +1626,23 @@ Standard (Nordamerika)
- + preferred bevorzugt - - + + Size: Größe: - + Buffer Delay Puffergröße - + Buffer Delay: Puffergröße: @@ -1651,17 +1651,17 @@ Vordefinierte Adresse
- + The selected audio device could not be used because of the following error: Das ausgewählte Audiogerät kann aus folgendem Grund nicht verwendet werden: - + The previous driver will be selected. Der vorherige Treiber wird wieder ausgewählt. - + Ok @@ -1787,7 +1787,12 @@ Oberfläche
- + + Language + + + + % @@ -1796,12 +1801,12 @@ Schicke Oberfläche
- + Display Channel Levels Zeige Signalpegel - + Custom Central Server Address: Benutzerdefinierte Zentralserveradresse: @@ -1810,24 +1815,24 @@ Zentralserveradresse:
- + Audio Stream Rate Netzwerkrate - - - + + + val Wert - + Ping Time Ping-Zeit - + Overall Delay Gesamtverzögerung @@ -2027,6 +2032,19 @@ Ü&ber...
+ + CLanguageComboBox + + + Restart Required + + + + + Please restart the application for the language change to take effect. + + + CLicenceDlg @@ -2164,7 +2182,7 @@ - + None Kein @@ -2242,212 +2260,212 @@ Was man hier sieht wird auch am Fader im Mixer angezeigt, wenn du mit einem Server verbunden bist. Dieses Schild wird auch bei allen anderen Musikern, die mit dem gleichen Server verbunden sind, angezeigt. - + 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 - + Vocal Bass Gesang Bass - + Vocal Tenor Gesang Tenor - + Vocal Alto Gesang Alt - + Vocal Soprano Gesang Sopran - + Banjo Banjo - + Mandolin Mandoline - + Ukulele - + Bass Ukulele @@ -2860,52 +2878,52 @@ &Fenster - + Unregistered Nicht registriert - + Bad address Ungültige Adresse - + Registration requested Registrierung angefordert - + Registration failed Registrierung fehlgeschlagen - + Check server version Überprüfe Version des Servers - + Registered Registriert - + Central Server full Zentralserver voll - + Your server version is too old Deine Serverversion ist zu alt - + Requirements not fulfilled Anfoderungen nicht erfüllt - + Unknown value Unbekannter Wert @@ -3197,17 +3215,17 @@ QCoreApplication - + , Version , Version - + Internet Jam Session Software Internet Jam Session Software - + Released under the GNU General Public License (GPL) Unter der GNU General Public License (GPL) diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index c3b0f4cf8d..f27f9f11d6 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -1604,12 +1604,12 @@ Manual - + Custom Personalizado - + All Genres Todos los Géneros @@ -1618,22 +1618,22 @@ Género Rock/Jazz - + Genre Classical/Folk/Choir Género Clásica/Folk/Coro - + Genre Rock Género Rock - + Genre Jazz Género Jazz - + Default Por defecto @@ -1642,23 +1642,23 @@ Por defecto (Norteamérica) - + preferred aconsejado - - + + Size: Tamaño: - + Buffer Delay Retardo Buffer - + Buffer Delay: Retardo Buffer: @@ -1667,17 +1667,17 @@ Dirección Preestablecida - + The selected audio device could not be used because of the following error: El dispositivo de audio seleccionado no puede utilizarse a causa del siguiente error: - + The previous driver will be selected. Se utilizará el driver anterior. - + Ok Ok @@ -1803,7 +1803,12 @@ Skin - + + Language + + + + % % @@ -1812,12 +1817,12 @@ Intfaz Oscura - + Display Channel Levels Mostrar Nivel Canales - + Custom Central Server Address: Dirección Personalizada Servidor Central: @@ -1826,24 +1831,24 @@ Dirección Servidor Central: - + Audio Stream Rate Tasa Muestreo Audio - - - + + + val val - + Ping Time Tiempo Ping - + Overall Delay Retardo Total @@ -2051,6 +2056,19 @@ &Acerca de... + + CLanguageComboBox + + + Restart Required + + + + + Please restart the application for the language change to take effect. + + + CLicenceDlg @@ -2188,7 +2206,7 @@ - + None Ninguno @@ -2266,212 +2284,212 @@ Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor Jamulus. Esta etiqueta también se mostrará en cada cliente conectado al mismo servidor que tú. - + 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 - + Vocal Bass Voz Bajo - + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Mandolina - + Ukulele Ukulele - + Bass Ukulele Ukulele Barítono @@ -2880,52 +2898,52 @@ &Ventana - + Unregistered Sin registrar - + Bad address Dirección no válida - + Registration requested Registro solicitado - + Registration failed Error de registro - + Check server version Comprueba la versión del servidor - + Registered Registrado - + Central Server full Servidor Central lleno - + Your server version is too old La versión de tu servidor es demasiado antigua - + Requirements not fulfilled No se cumplen los requisitos - + Unknown value Valor desconocido @@ -3217,17 +3235,17 @@ QCoreApplication - + , Version , Versión - + Internet Jam Session Software Internet Jam Session Software - + Released under the GNU General Public License (GPL) Publicado bajo la GNU General Public License (GPL) diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index dd2c17974a..854eefa4de 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -1608,12 +1608,12 @@ Manuel - + Custom Personnalisé - + All Genres Tous les genres @@ -1622,22 +1622,22 @@ Genre rock/jazz - + Genre Classical/Folk/Choir Genre classique/folk/choeur - + Genre Rock Genre Rock - + Genre Jazz Genre Jazz - + Default Défaut @@ -1646,23 +1646,23 @@ Défaut (Amérique du Nord) - + preferred préféré - - + + Size: Taille : - + Buffer Delay Délai de temporisation - + Buffer Delay: Délai de temporisation : @@ -1671,17 +1671,17 @@ Adresse prédéfinie - + The selected audio device could not be used because of the following error: Le périphérique audio sélectionné n'a pas pu être utilisé en raison de l'erreur suivante : - + The previous driver will be selected. Le pilote précédent sera sélectionné. - + Ok Ok @@ -1807,7 +1807,12 @@ Thème graphique - + + Language + + + + % % @@ -1816,12 +1821,12 @@ Habillage fantaisie - + Display Channel Levels Afficher les niveaux des canaux - + Custom Central Server Address: Adresse personnalisée du serveur central : @@ -1830,24 +1835,24 @@ Adresse du serveur central : - + Audio Stream Rate Débit du flux audio - - - + + + val val - + Ping Time Temps de réponse - + Overall Delay Délai global @@ -2047,6 +2052,19 @@ À &propos + + CLanguageComboBox + + + Restart Required + + + + + Please restart the application for the language change to take effect. + + + CLicenceDlg @@ -2184,7 +2202,7 @@ - + None Aucune @@ -2258,212 +2276,212 @@ Ce que vous réglez ici apparaîtra au niveau de votre chariot sur la table de mixage lorsque vous serez connecté à un serveur Jamulus. Cette étiquette sera également affichée dans chaque client qui est connecté au même serveur que vous. - + 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 - + Vocal Bass Voix basse - + Vocal Tenor Voix ténor - + Vocal Alto Voix alto - + Vocal Soprano Voix soprano - + Banjo Banjo - + Mandolin Mandoline - + Ukulele Ukulélé - + Bass Ukulele Ukulélé basse @@ -2644,7 +2662,7 @@ Display dialog to select recording directory button - Afficher le dialogue pour sélectionner le bouton du répertoire d'enregistrement + Afficher le dialogue pour sélectionner le bouton du répertoire d'enregistrement @@ -2655,22 +2673,22 @@ Click the button to open the dialog that allows the main recording directory to be selected.The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). - Cliquez sur le bouton pour ouvrir la boîte de dialogue permettant de sélectionner le répertoire d'enregistrement principal. La valeur choisie doit exister et être inscriptible (permettre la création de sous-répertoires par l'utilisateur sous lequel Jamulus fonctionne). + Cliquez sur le bouton pour ouvrir la boîte de dialogue permettant de sélectionner le répertoire d'enregistrement principal. La valeur choisie doit exister et être inscriptible (permettre la création de sous-répertoires par l'utilisateur sous lequel Jamulus fonctionne). Main recording directory text box (read-only) - Zone de texte du répertoire principal d'enregistrement (lecture seule) + Zone de texte du répertoire principal d'enregistrement (lecture seule) The current value of the main recording directory. The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). Click the button to open the dialog that allows the main recording directory to be selected. - La valeur actuelle du répertoire principal d'enregistrement. La valeur choisie doit exister et être inscriptible (permettre la création de sous-répertoires par l'utilisateur sous lequel Jamulus fonctionne). Cliquez sur le bouton pour ouvrir la boîte de dialogue permettant de sélectionner le répertoire d'enregistrement principal. + La valeur actuelle du répertoire principal d'enregistrement. La valeur choisie doit exister et être inscriptible (permettre la création de sous-répertoires par l'utilisateur sous lequel Jamulus fonctionne). Cliquez sur le bouton pour ouvrir la boîte de dialogue permettant de sélectionner le répertoire d'enregistrement principal. Clear the recording directory button - Effacer le bouton du répertoire d'enregistrement + Effacer le bouton du répertoire d'enregistrement @@ -2680,7 +2698,7 @@ Click the button to clear the currently selected recording directory. This will prevent recording until a new value is selected. - Cliquez sur le bouton pour effacer le répertoire d'enregistrement actuellement sélectionné. Cela empêchera l'enregistrement jusqu'à ce qu'une nouvelle valeur soit sélectionnée. + Cliquez sur le bouton pour effacer le répertoire d'enregistrement actuellement sélectionné. Cela empêchera l'enregistrement jusqu'à ce qu'une nouvelle valeur soit sélectionnée. @@ -2725,32 +2743,32 @@ Displays the current status of the recorder. The following values are possible: - Affiche l'état actuel de l'enregistreur. Les valeurs suivantes sont possibles : + Affiche l'état actuel de l'enregistreur. Les valeurs suivantes sont possibles : No recording directory has been set or the value is not useable - Aucun répertoire d'enregistrement n'a été défini ou la valeur n'est pas utilisable + Aucun répertoire d'enregistrement n'a été défini ou la valeur n'est pas utilisable Recording has been switched off - L'enregistrement a été désactivé + L'enregistrement a été désactivé by the UI checkbox - par la case à cocher de l'interface graphique + par la case à cocher de l'interface graphique , either by the UI checkbox or SIGUSR2 being received - , soit en cochant la case de l'interface graphique ou en recevant SIGUSR2 + , soit en cochant la case de l'interface graphique ou en recevant SIGUSR2 There is no one connected to the server to record - Il n'y a personne connecté au serveur pour enregistrer + Il n'y a personne connecté au serveur pour enregistrer @@ -2765,7 +2783,7 @@ If the recording directory is not useable, the problem will be displayed in place of the directory. - Si le répertoire d'enregistrement n'est pas utilisable, le problème sera affiché à la place du répertoire. + Si le répertoire d'enregistrement n'est pas utilisable, le problème sera affiché à la place du répertoire. @@ -2872,52 +2890,52 @@ &Fenêtre - + Unregistered Non inscrit - + Bad address Mauvaise adresse - + Registration requested Inscription demandée - + Registration failed Échec de l'inscription - + Check server version Vérifier la version du serveur - + Registered Inscrit - + Central Server full Serveur central rempli - + Your server version is too old La version de votre serveur est trop vieille - + Requirements not fulfilled Exigences non satisfaites - + Unknown value Valeur inconnue @@ -2979,7 +2997,7 @@ Enable Jam Recorder - Activer l'enregistreur de bÅ“uf + Activer l'enregistreur de bÅ“uf @@ -3209,17 +3227,17 @@ QCoreApplication - + , Version , version - + Internet Jam Session Software Logiciel de bÅ“uf sur Internet - + Released under the GNU General Public License (GPL) Publié sous la licence publique générale GNU (GPL) diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index 86e3e67e77..79c5d4ebb3 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -1576,23 +1576,23 @@ Compatto - + preferred consigliato - - + + Size: Livello: - + Buffer Delay Buffer Delay - + Buffer Delay: Buffer Delay: @@ -1601,47 +1601,47 @@ Indirizzo Preferito - + The selected audio device could not be used because of the following error: La scheda audio selezionata non può essere usata per i seguenti motivi: - + The previous driver will be selected. Sarà ripristinato il driver precedentemente usato. - + Ok Ok - + Custom Personalizzato - + All Genres Tutti i Generi - + Genre Rock Genere Rock - + Genre Jazz Genere Jazz - + Genre Classical/Folk/Choir Genere Classica/Folk/Corale - + Default Default @@ -1767,7 +1767,12 @@ Vista - + + Language + + + + % % @@ -1776,12 +1781,12 @@ Tema Fantasia - + Display Channel Levels Visualizza Livelli Canali - + Custom Central Server Address: Indirizzo Server Centrale alternativo: @@ -1790,24 +1795,24 @@ Indirizzo Server Centrale: - + Audio Stream Rate Velocità dello Streaming - - - + + + val val - + Ping Time Ping - + Overall Delay Overall Delay @@ -2007,6 +2012,19 @@ I&nformazioni su... + + CLanguageComboBox + + + Restart Required + + + + + Please restart the application for the language change to take effect. + + + CLicenceDlg @@ -2151,7 +2169,7 @@ - + None None @@ -2218,212 +2236,212 @@ Livello di Abilità - + Drum Set Batteria - + Djembe Djembe - + Electric Guitar Chitarra elettrica - + Acoustic Guitar Chitarra Acustica - + Bass Guitar Basso Elettrico - + Keyboard Tastiera - + Synthesizer Sintetizzatore - + Grand Piano Grand Piano - + Accordion Fisarmonica - + Vocal Voce - + Microphone Microfono - + Harmonica Armonica - + Trumpet Tromba - + Trombone Trombone - + French Horn Corno Francese - + Tuba Tuba - + Saxophone Sassofono - + Clarinet Clarinet - + Flute Flauto - + Violin Violino - + Cello Cello - + Double Bass Contrabbasso - + Recorder Recorder - + Streamer Streamer - + Listener Ascoltatore - + Guitar+Vocal Chitarra+Voce - + Keyboard+Vocal Tastiera+Voce - + Bodhran Bodhran - + Bassoon Fagotto - + Oboe Oboe - + Harp Arpa - + Viola Viola - + Congas Congas - + Bongo Bongo - + Vocal Bass Voce Basso - + Vocal Tenor Voce Tenore - + Vocal Alto Voce Alto - + Vocal Soprano Voce Soprano - + Banjo Banjo - + Mandolin Mandolino - + Ukulele Uculele - + Bass Ukulele Uculele Basso @@ -2820,52 +2838,52 @@ Non Abilitata - + Unregistered Non registrato - + Bad address Indirizzo Errato - + Registration requested Registrazione richiesta - + Registration failed Registrazione fallita - + Check server version Controlla Versione server - + Registered Registrato - + Central Server full Server Centrale Pieno - + Your server version is too old - + Requirements not fulfilled - + Unknown value Valore sconosciuto @@ -3157,17 +3175,17 @@ QCoreApplication - + , Version Versione, Versione - + Internet Jam Session Software Programma per Jam Session su Internet - + Released under the GNU General Public License (GPL) Rilasciato sotto licensa GNU General Public License (GPL) diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index da2ed2109d..cce637e9fd 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -1564,32 +1564,32 @@ Handmatig - + Custom Aangepast - + All Genres Alle genres - + Genre Rock Genre Rock - + Genre Jazz Genre Jazz - + Genre Classical/Folk/Choir Genre Klassiek/Folk/Zang - + Default Standaard @@ -1598,38 +1598,38 @@ Standaard (Noord-Amerika) - + preferred gewenst - - + + Size: Size: - + Buffer Delay Buffervertraging - + Buffer Delay: Buffervertraging: - + The selected audio device could not be used because of the following error: Het geselecteerde audioapparaat kon niet worden gebruikt vanwege de volgende fout: - + The previous driver will be selected. Het vorige stuurprogramma wordt geselecteerd. - + Ok Ok @@ -1755,7 +1755,12 @@ Skin - + + Language + + + + % % @@ -1764,12 +1769,12 @@ Fancy Skin - + Display Channel Levels Weergave Kanaalniveaus - + Custom Central Server Address: Eigen centrale serveradres: @@ -1778,24 +1783,24 @@ Centraal Serveradres: - + Audio Stream Rate Audio Stream Rate - - - + + + val val - + Ping Time Ping-tijd - + Overall Delay Algehele vertraging @@ -1995,6 +2000,19 @@ &Over... + + CLanguageComboBox + + + Restart Required + + + + + Please restart the application for the language change to take effect. + + + CLicenceDlg @@ -2139,7 +2157,7 @@ - + None Geen @@ -2206,212 +2224,212 @@ 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 - + Vocal Bass Bas (stem) - + Vocal Tenor Tenor (stem) - + Vocal Alto Alt (stem) - + Vocal Soprano Sopraan (stem) - + Banjo Banjo - + Mandolin Mandoline - + Ukulele Ukelele - + Bass Ukulele Ukelele-bas @@ -2820,52 +2838,52 @@ &Window - + Unregistered Niet geregistreerd - + Bad address Slecht adres - + Registration requested Aanmelding gevraagd - + Registration failed Registratie is mislukt - + Check server version Controleer de versie van de server - + Registered Geregistreerd - + Central Server full Centrale server vol - + Your server version is too old Je serverversie is te oud - + Requirements not fulfilled Vereisten niet gehaald - + Unknown value Onbekende waarde @@ -3157,17 +3175,17 @@ QCoreApplication - + , Version , Versie - + Internet Jam Session Software Internet Jamsessie Software - + Released under the GNU General Public License (GPL) Gereleased onder de GNU General Public License (GPL) diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index 7100c02f7f..a99f40c5b6 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -1299,68 +1299,68 @@ nie jestem pewna - + Custom - + All Genres - + Genre Rock - + Genre Jazz - + Genre Classical/Folk/Choir - + Default - + preferred - - + + Size: - + Buffer Delay Opóźnienie bufora - + Buffer Delay: - + The selected audio device could not be used because of the following error: - + The previous driver will be selected. - + Ok Ok @@ -1487,7 +1487,12 @@ nie jestem pewna - + + Language + + + + % % @@ -1496,34 +1501,34 @@ nie jestem pewna Wuszukany wygÄ…d - + Display Channel Levels WyÅ›wietlaj poziomy kanaÅ‚y - + Custom Central Server Address: WÅ‚asny adres serwera centralnego: - + Audio Stream Rate PrÄ™dkość strumienia audio - - - + + + val wartość - + Ping Time Czas odpowiedzi - + Overall Delay Opóźnienie caÅ‚kowite @@ -1703,6 +1708,19 @@ nie jestem pewna &O programie... + + CLanguageComboBox + + + Restart Required + + + + + Please restart the application for the language change to take effect. + + + CLicenceDlg @@ -1847,7 +1865,7 @@ nie jestem pewna - + None *nie jestem pewna Å»aden @@ -1903,213 +1921,213 @@ nie jestem pewna - + Drum Set Zestaw perkusyjny - + Djembe Djembe - + Electric Guitar Gitara elektryczna - + Acoustic Guitar Gitara akustyczna - + Bass Guitar Gitara basowa - + Keyboard Keyboard - + Synthesizer Syntezator - + Grand Piano Fortepian - + Accordion Akordeon - + Vocal Wokal - + Microphone Mikrofon - + Harmonica Harmonijka ustna - + Trumpet TrÄ…bka - + Trombone Puzon - + French Horn Waltornia - + Tuba Tuba - + Saxophone Saksofon - + Clarinet Klarnet - + Flute Flet - + Violin Skrzypce - + Cello Wiolonczela - + Double Bass Kontrabas - + Recorder *nie wiem Flet prosty - + Streamer Streamer - + Listener SÅ‚uchacz - + Guitar+Vocal Gitara+Wokal - + Keyboard+Vocal Keyboard+Wokal - + Bodhran Bodhran - + Bassoon Fagot - + Oboe Obój - + Harp Harfa - + Viola Altówka - + Congas Kongi - + Bongo Bongo - + Vocal Bass Bas - + Vocal Tenor Tenor - + Vocal Alto Alt - + Vocal Soprano Sopran - + Banjo Banjo - + Mandolin Mandolina - + Ukulele Ukulele - + Bass Ukulele Ukulele basowe @@ -2446,52 +2464,52 @@ nie jestem pewna - + Unregistered - + Bad address - + Registration requested - + Registration failed - + Check server version - + Registered - + Central Server full - + Your server version is too old - + Requirements not fulfilled - + Unknown value @@ -2800,17 +2818,17 @@ nie jestem pewna QCoreApplication - + , Version - + Internet Jam Session Software - + Released under the GNU General Public License (GPL) diff --git a/src/res/translation/translation_pt_BR.ts b/src/res/translation/translation_pt_BR.ts index 645daf60a5..b8b8ec4e30 100644 --- a/src/res/translation/translation_pt_BR.ts +++ b/src/res/translation/translation_pt_BR.ts @@ -1598,22 +1598,22 @@ Manual - + Custom Personalizado - + All Genres Servidor Geral - + Genre Rock Servidor Rock - + Genre Jazz Servidor Jazz @@ -1622,12 +1622,12 @@ Servidor Rock/Jazz - + Genre Classical/Folk/Choir Serv. Clássica/Folclore/Coro - + Default Servidor Padrão @@ -1636,38 +1636,38 @@ Servidor Padrão (America do Norte) - + preferred preferido - - + + Size: Tamanho: - + Buffer Delay Atraso do buffer - + Buffer Delay: Atraso do buffer: - + The selected audio device could not be used because of the following error: O dispositivo de áudio selecionado não pôde ser usado devido ao seguinte erro: - + The previous driver will be selected. O driver anterior será selecionado. - + Ok Ok @@ -1793,7 +1793,12 @@ Aparência - + + Language + + + + % % @@ -1802,12 +1807,12 @@ Skin Sofisticada - + Display Channel Levels Mostrar Níveis de Canais - + Custom Central Server Address: Endereço do Servidor Central Personalizado: @@ -1816,24 +1821,24 @@ Endereço do Servidor Central: - + Audio Stream Rate Taxa de Transmissão de Ãudio - - - + + + val val - + Ping Time Latência da Ligação - + Overall Delay Latência Geral @@ -2033,6 +2038,19 @@ &Sobre... + + CLanguageComboBox + + + Restart Required + + + + + Please restart the application for the language change to take effect. + + + CLicenceDlg @@ -2170,7 +2188,7 @@ - + None Nenhum @@ -2244,212 +2262,212 @@ O que definir aqui aparecerá abaixo do seu fader no mixer quando estiver conectado a um servidor Jamulus. Esta etiqueta também será exibida em cada cliente que estiver conectado ao mesmo 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 - + Vocal Bass Voz Baixo - + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Bandolim - + Ukulele Ukulele - + Bass Ukulele Ukulele Baixo @@ -2858,52 +2876,52 @@ &Janela - + Unregistered Não Registrado - + Bad address Endereço incorreto - + Registration requested Registro solicitado - + Registration failed Falha no registro - + Check server version Verifique versão do servidor - + Registered Registrado - + Central Server full Servidor Central Cheio - + Your server version is too old - + Requirements not fulfilled - + Unknown value Valor desconhecido @@ -3195,17 +3213,17 @@ QCoreApplication - + , Version , Versão - + Internet Jam Session Software Programa de Jam Sessions pela Internet - + Released under the GNU General Public License (GPL) Lançado sob a Licença Pública Geral GNU (GPL) diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index fbe9851981..c2e15306d1 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -1596,22 +1596,22 @@ Manual - + Custom Personalizado - + All Genres Servidor Geral - + Genre Rock Servidor Rock - + Genre Jazz Servidor Jazz @@ -1620,12 +1620,12 @@ Servidor Rock/Jazz - + Genre Classical/Folk/Choir Serv. Clássica/Folclore/Coro - + Default Servidor Padrão @@ -1634,38 +1634,38 @@ Servidor Padrão (America do Norte) - + preferred preferido - - + + Size: Tamanho: - + Buffer Delay Atraso do buffer - + Buffer Delay: Atraso do buffer: - + The selected audio device could not be used because of the following error: O dispositivo de áudio selecionado não pôde ser usado devido ao seguinte erro: - + The previous driver will be selected. O driver anterior será selecionado. - + Ok Ok @@ -1791,7 +1791,12 @@ Tema - + + Language + + + + % % @@ -1800,12 +1805,12 @@ Skin Sofisticada - + Display Channel Levels Mostrar Níveis de Canais - + Custom Central Server Address: Endereço do Servidor Central Personalizado: @@ -1814,24 +1819,24 @@ Endereço do Servidor Central: - + Audio Stream Rate Taxa de Transmissão de Ãudio - - - + + + val val - + Ping Time Latência da Ligação - + Overall Delay Latência Geral @@ -2031,6 +2036,19 @@ &Sobre... + + CLanguageComboBox + + + Restart Required + + + + + Please restart the application for the language change to take effect. + + + CLicenceDlg @@ -2168,7 +2186,7 @@ - + None Nenhum @@ -2242,212 +2260,212 @@ O que definir aqui aparecerá por baixo do seu fader na secção de mistura quando estiver ligado a um servidor Esta etiqueta também será exibida em cada cliente que estiver ligado ao mesmo 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 - + Vocal Bass Voz Baixo - + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Bandolim - + Ukulele Ukulele - + Bass Ukulele Ukulele Baixo @@ -2856,52 +2874,52 @@ &Janela - + Unregistered Não Registado - + Bad address Endereço incorrecto - + Registration requested Registo solicitado - + Registration failed Falha no registo - + Check server version Verifique versão do servidor - + Registered Registado - + Central Server full Servidor Central Cheio - + Your server version is too old A versão do seu servidor é muito antiga - + Requirements not fulfilled Requisitos não cumpridos - + Unknown value Valor desconhecido @@ -3193,17 +3211,17 @@ QCoreApplication - + , Version , Versão - + Internet Jam Session Software Programa de Jam Sessions pela Internet - + Released under the GNU General Public License (GPL) Lançado sob a Licença Pública Geral GNU (GPL) diff --git a/src/res/translation/translation_sv_SE.ts b/src/res/translation/translation_sv_SE.ts index a200e6b9d6..d482b8655e 100644 --- a/src/res/translation/translation_sv_SE.ts +++ b/src/res/translation/translation_sv_SE.ts @@ -1288,68 +1288,68 @@ - + preferred - - + + Size: - + Buffer Delay - + Buffer Delay: - + The selected audio device could not be used because of the following error: - + The previous driver will be selected. - + Ok - + Custom - + All Genres - + Genre Rock - + Genre Jazz - + Genre Classical/Folk/Choir - + Default @@ -1475,39 +1475,44 @@ - + + Language + + + + % - + Display Channel Levels - + Custom Central Server Address: - + Audio Stream Rate - - - + + + val - + Ping Time - + Overall Delay @@ -1687,6 +1692,19 @@ + + CLanguageComboBox + + + Restart Required + + + + + Please restart the application for the language change to take effect. + + + CLicenceDlg @@ -1836,7 +1854,7 @@ - + None @@ -1891,212 +1909,212 @@ - + Drum Set - + Djembe - + Electric Guitar - + Acoustic Guitar - + Bass Guitar - + Keyboard - + Synthesizer - + Grand Piano - + Accordion - + Vocal - + Microphone - + Harmonica - + Trumpet - + Trombone - + French Horn - + Tuba - + Saxophone - + Clarinet - + Flute - + Violin - + Cello - + Double Bass - + Recorder - + Streamer - + Listener - + Guitar+Vocal - + Keyboard+Vocal - + Bodhran - + Bassoon - + Oboe - + Harp - + Viola - + Congas - + Bongo - + Vocal Bass - + Vocal Tenor - + Vocal Alto - + Vocal Soprano - + Banjo - + Mandolin - + Ukulele - + Bass Ukulele @@ -2428,52 +2446,52 @@ - + Unregistered - + Bad address - + Registration requested - + Registration failed - + Check server version - + Registered - + Central Server full - + Your server version is too old - + Requirements not fulfilled - + Unknown value @@ -2769,17 +2787,17 @@ QCoreApplication - + , Version - + Internet Jam Session Software - + Released under the GNU General Public License (GPL) diff --git a/src/settings.h b/src/settings.h index a4d1adac2e..4884c5f95c 100755 --- a/src/settings.h +++ b/src/settings.h @@ -39,11 +39,16 @@ class CSettings { public: - CSettings() : strFileName ( "" ) {} + CSettings() : + strLanguage ( "" ), + strFileName ( "" ) {} void Load(); void Save(); + // common settings + QString strLanguage; + protected: virtual void ReadFromXML ( const QDomDocument& IniXMLDocument ) = 0; virtual void WriteToXML ( QDomDocument& IniXMLDocument ) = 0; @@ -111,6 +116,7 @@ class CClientSettings : public CSettings { public: CClientSettings ( CClient* pNCliP, const QString& sNFiName ) : + CSettings ( ), vecStoredFaderTags ( MAX_NUM_STORED_FADER_SETTINGS, "" ), vecStoredFaderLevels ( MAX_NUM_STORED_FADER_SETTINGS, AUD_MIX_FADER_MAX ), vecStoredPanValues ( MAX_NUM_STORED_FADER_SETTINGS, AUD_MIX_PAN_MAX / 2 ), @@ -120,7 +126,6 @@ class CClientSettings : public CSettings vstrIPAddress ( MAX_NUM_SERVER_ADDR_ITEMS, "" ), iNewClientFaderLevel ( 100 ), bConnectDlgShowAllMusicians ( true ), - strLanguage ( "" ), vecWindowPosMain ( ), // empty array vecWindowPosSettings ( ), // empty array vecWindowPosChat ( ), // empty array @@ -133,6 +138,7 @@ class CClientSettings : public CSettings pClient ( pNCliP ) { SetFileName ( sNFiName, DEFAULT_INI_FILE_NAME ); } + // general settings CVector vecStoredFaderTags; CVector vecStoredFaderLevels; CVector vecStoredPanValues; @@ -142,7 +148,6 @@ class CClientSettings : public CSettings CVector vstrIPAddress; int iNewClientFaderLevel; bool bConnectDlgShowAllMusicians; - QString strLanguage; // window position/state settings QByteArray vecWindowPosMain; @@ -167,13 +172,11 @@ class CServerSettings : public CSettings { public: CServerSettings ( CServer* pNSerP, const QString& sNFiName ) : - strLanguage ( "" ), + CSettings ( ), vecWindowPosMain ( ), // empty array pServer ( pNSerP ) { SetFileName ( sNFiName, DEFAULT_INI_FILE_NAME_SERVER); } - QString strLanguage; - // window position/state settings QByteArray vecWindowPosMain; diff --git a/src/util.cpp b/src/util.cpp index 4c38900f2a..d1b68b359d 100755 --- a/src/util.cpp +++ b/src/util.cpp @@ -882,6 +882,71 @@ CHelpMenu::CHelpMenu ( const bool bIsClient, QWidget* parent ) : QMenu ( tr ( "& addSeparator(); addAction ( tr ( "&About..." ), this, SLOT ( OnHelpAbout() ) ); } + + +// Language combo box ---------------------------------------------------------- +CLanguageComboBox::CLanguageComboBox ( QWidget* parent ) : + QComboBox ( parent ), + iIdxSelectedLanguage ( INVALID_INDEX ) +{ + QObject::connect ( this, static_cast ( &QComboBox::activated ), + this, &CLanguageComboBox::OnLanguageActivated ); +} + +void CLanguageComboBox::Init ( QString& strSelLanguage ) +{ + // load available translations + const QMap TranslMap = CLocale::GetAvailableTranslations(); + QMapIterator MapIter ( TranslMap ); + + // add translations to the combobox list + clear(); + int iCnt = 0; + int iIdxOfEnglishLanguage = 0; + iIdxSelectedLanguage = INVALID_INDEX; + + while ( MapIter.hasNext() ) + { + MapIter.next(); + addItem ( QLocale ( MapIter.key() ).nativeLanguageName() + " (" + MapIter.key() + ")", MapIter.key() ); + + // store the combo box index of the default english language + if ( MapIter.key().compare ( "en" ) == 0 ) + { + iIdxOfEnglishLanguage = iCnt; + } + + // if the selected language is found, store the combo box index + if ( MapIter.key().compare ( strSelLanguage ) == 0 ) + { + iIdxSelectedLanguage = iCnt; + } + + iCnt++; + } + + // if the selected language was not found, use the english language + if ( iIdxSelectedLanguage == INVALID_INDEX ) + { + strSelLanguage = "en"; + iIdxSelectedLanguage = iIdxOfEnglishLanguage; + } + + setCurrentIndex ( iIdxSelectedLanguage ); +} + +void CLanguageComboBox::OnLanguageActivated ( int iLanguageIdx ) +{ + // only update if the language selection is different from the current selected language + if ( iIdxSelectedLanguage != iLanguageIdx ) + { + QMessageBox::information ( this, + tr ( "Restart Required" ), + tr ( "Please restart the application for the language change to take effect." ) ); + + emit LanguageChanged ( itemData ( iLanguageIdx ).toString() ); + } +} #endif @@ -1380,6 +1445,9 @@ QMap CLocale::GetAvailableTranslations() QMap TranslMap; QDirIterator DirIter ( ":/translations" ); + // add english language (default which is in the actual source code) + TranslMap["en"] = ""; // empty file name means that the translation load fails and we get the default english language + while ( DirIter.hasNext() ) { // get alias of translation file @@ -1408,6 +1476,9 @@ QPair CLocale::FindSysLangTransFileName ( const QMap= 2 ) { + +// TODO maybe first try to find the complete string, if not found use only first two letters instead + PairSysLang.first = strUiLang.left ( 2 ); PairSysLang.second = TranslMap[PairSysLang.first]; } diff --git a/src/util.h b/src/util.h index 177202f8d3..841518a118 100755 --- a/src/util.h +++ b/src/util.h @@ -423,7 +423,6 @@ class CAboutDlg : public QDialog, private Ui_CAboutDlgBase public: CAboutDlg ( QWidget* parent = nullptr ); - }; @@ -491,8 +490,29 @@ public slots: void OnHelpSoftwareMan() { QDesktopServices::openUrl ( QUrl ( SOFTWARE_MANUAL_URL ) ); } }; + +// Language combo box ---------------------------------------------------------- +class CLanguageComboBox : public QComboBox +{ + Q_OBJECT + +public: + CLanguageComboBox ( QWidget* parent = nullptr ); + + void Init ( QString& strSelLanguage ); + +protected: + int iIdxSelectedLanguage; + +public slots: + void OnLanguageActivated ( int iLanguageIdx ); + +signals: + void LanguageChanged ( QString strLanguage ); +}; #endif + // Console writer factory ------------------------------------------------------ // this class was written by pljones class ConsoleWriterFactory From bb9b82d2be2a089bb6c09e8b190729dde1254979 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 6 Jul 2020 18:49:02 +0200 Subject: [PATCH 340/936] update German translation --- src/res/translation/translation_de_DE.qm | Bin 101555 -> 104292 bytes src/res/translation/translation_de_DE.ts | 40 +++++++++++------------ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index ce3ba950801309040a525c15c6be201294774940..ece9d794e45e1be0faeb5f2c06d704ec80b7ee07 100644 GIT binary patch delta 6323 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 Mx Polish - + Polnisch @@ -318,7 +318,7 @@ No grouping - + Keine Gruppierung @@ -326,7 +326,7 @@ Assign to group - + Zuweisung zur Gruppe @@ -927,17 +927,17 @@ Sort Channel Users by &Name - Sortiere Kanäle nach &Namen + Sortiere die Kanäle nach dem &Namen Sort Channel Users by &Instrument - Sortiere Kanäle nach &Instrument + Sortiere die Kanäle nach dem &Instrument Sort Channel Users by &Group - + Sortiere die Kanäle nach der &Gruppe @@ -1789,7 +1789,7 @@ Language - + Sprache @@ -2037,12 +2037,12 @@ Restart Required - + Neustart erforderlich Please restart the application for the language change to take effect. - + Bitte starte die Applikation neu um die Änderung der Spracheinstellung anzuwenden. @@ -2650,23 +2650,23 @@ Display dialog to select recording directory button - + Zeige den Dialog zum das Aufnahmeverzeichnis festzulegen Knopf Main Recording Directory - + Aufnahmehauptverzeichnis Click the button to open the dialog that allows the main recording directory to be selected.The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). - + Drücke den Knopf um einen Dialog anzuzeigen in dem man das Hauptverzeichnis für die Aufnahmen festlegen kann. Das Verzeichnis muss existieren und schreibbar sein (es muss für das Benutzerkonto, das die Applikation ausführt, möglich sein Unterverzeichnisse anzulegen). Main recording directory text box (read-only) - + Hauptaufnahmeverzeichnis Textbox (schreibgeschützt) @@ -2766,7 +2766,7 @@ NOTE - + HINWEIS @@ -2776,7 +2776,7 @@ ERROR - + FEHLER Displays the current status of the recorder. @@ -2828,7 +2828,7 @@ Select Main Recording Directory - + Wähle das Aufnahmehauptverzeichnis aus @@ -2848,7 +2848,7 @@ Not initialised - + Nicht initialisiert @@ -2980,17 +2980,17 @@ Recording Directory - + Aufnahmeverzeichnis Enable Jam Recorder - + Aktiviere die Aufnahmefunktion New Recording - Neue Aufnahme + Neue Aufnahme Central Server Address: From 399f1da5a7275114241768f5c2b6c39936f1c95a Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 6 Jul 2020 19:31:42 +0200 Subject: [PATCH 341/936] add language selector also in the server GUI --- ChangeLog | 1 - src/serverdlg.cpp | 6 ++++++ src/serverdlg.h | 1 + src/serverdlgbase.ui | 27 ++++++++++++++++++++++++--- 4 files changed, 31 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7503d63881..e97934112e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -21,7 +21,6 @@ TODO add support to change language (#297) - TODO add language selector also in the server GUI TODO search in the code for "TODO maybe first try to find the complete string, if not found use only first two letters instead" TODO bug fix: incorrect selection of UI language (#408) !!!!!!!!!!!!!!!!!!!!!!!!!!!!! diff --git a/src/serverdlg.cpp b/src/serverdlg.cpp index 1be9cafc34..788655c0b8 100755 --- a/src/serverdlg.cpp +++ b/src/serverdlg.cpp @@ -334,6 +334,9 @@ lvwClients->setMinimumHeight ( 140 ); UpdateRecorderStatus ( QString::null ); + // language combo box (corrects the setting if language not found) + cbxLanguage->Init ( pSettings->strLanguage ); + // update GUI dependencies UpdateGUIDependencies(); @@ -397,6 +400,9 @@ lvwClients->setMinimumHeight ( 140 ); QObject::connect ( cbxCentServAddrType, static_cast ( &QComboBox::activated ), this, &CServerDlg::OnCentServAddrTypeActivated ); + QObject::connect ( cbxLanguage, &CLanguageComboBox::LanguageChanged, + this, &CServerDlg::OnLanguageChanged ); + // push buttons QObject::connect ( pbtRecordingDir, &QPushButton::released, this, &CServerDlg::OnRecordingDirClicked ); diff --git a/src/serverdlg.h b/src/serverdlg.h index 35d849bcee..9e40001ed4 100755 --- a/src/serverdlg.h +++ b/src/serverdlg.h @@ -117,6 +117,7 @@ public slots: void keyPressEvent ( QKeyEvent *e ) // block escape key { if ( e->key() != Qt::Key_Escape ) QDialog::keyPressEvent ( e ); } + void OnLanguageChanged ( QString strLanguage ) { pSettings->strLanguage = strLanguage; } void OnNewRecordingClicked() { pServer->RequestNewRecording(); } void OnRecordingDirClicked(); void OnClearRecordingDirClicked(); diff --git a/src/serverdlgbase.ui b/src/serverdlgbase.ui index 9a57988a74..1754716da6 100755 --- a/src/serverdlgbase.ui +++ b/src/serverdlgbase.ui @@ -7,7 +7,7 @@ 0 0 588 - 419 + 447 @@ -186,8 +186,7 @@ - - + @@ -223,6 +222,20 @@ + + + + + + Language + + + + + + + + @@ -270,6 +283,13 @@ + + + CLanguageComboBox + QComboBox +
util.h
+
+
lvwClients chbStartOnOSStart @@ -286,6 +306,7 @@ chbEnableRecorder edtCurrentSessionDir pbtNewRecording + cbxLanguage From 1e57b7b0d529536f60f1060a7167cef99d389749 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 6 Jul 2020 19:32:15 +0200 Subject: [PATCH 342/936] update translation files --- src/res/translation/translation_de_DE.ts | 25 ++++++++++++++---------- src/res/translation/translation_es_ES.ts | 25 ++++++++++++++---------- src/res/translation/translation_fr_FR.ts | 25 ++++++++++++++---------- src/res/translation/translation_it_IT.ts | 25 ++++++++++++++---------- src/res/translation/translation_nl_NL.ts | 25 ++++++++++++++---------- src/res/translation/translation_pl_PL.ts | 25 ++++++++++++++---------- src/res/translation/translation_pt_BR.ts | 25 ++++++++++++++---------- src/res/translation/translation_pt_PT.ts | 25 ++++++++++++++---------- src/res/translation/translation_sv_SE.ts | 25 ++++++++++++++---------- 9 files changed, 135 insertions(+), 90 deletions(-) diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index 09577d2799..42c9a5f63c 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -2774,7 +2774,7 @@
- + ERROR FEHLER @@ -2799,7 +2799,7 @@
- + E&xit &Beenden @@ -2826,12 +2826,12 @@ Server
- + Select Main Recording Directory Wähle das Aufnahmehauptverzeichnis aus - + Predefined Address Vordefinierte Adresse @@ -2868,12 +2868,12 @@ Standard (Nordamerika)
- + Server - + &Window &Fenster @@ -2968,7 +2968,7 @@
- + STATUS @@ -2983,15 +2983,20 @@ Aufnahmeverzeichnis
- + Enable Jam Recorder Aktiviere die Aufnahmefunktion - + New Recording Neue Aufnahme + + + Language + Sprache + Central Server Address: Zentralserveradresse @@ -3024,7 +3029,7 @@ Verzeichnis für die Aufnahmen - + TextLabelNameVersion diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index f27f9f11d6..9241b29046 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -2794,7 +2794,7 @@ Si el directorio de grabación no es utilizable, se mostrará el problema en lugar del directorio. - + ERROR ERROR @@ -2819,7 +2819,7 @@ - + E&xit S&alir @@ -2846,12 +2846,12 @@ - + Select Main Recording Directory Seleccionar Directorio Principal de Grabación - + Predefined Address Dirección Preestablecida @@ -2888,12 +2888,12 @@ Por defecto (Norteamérica) - + Server : Servidor - + &Window &Ventana @@ -2988,7 +2988,7 @@ - + STATUS ESTADO @@ -3003,15 +3003,20 @@ Directorio de Grabación - + Enable Jam Recorder Activar Grabación de Jams - + New Recording Nueva Grabación + + + Language + + Central Server Address: Dirección Servidor Central: @@ -3044,7 +3049,7 @@ Carpeta grabaciones - + TextLabelNameVersion TextLabelNameVersion diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index 854eefa4de..a15c883107 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -2786,7 +2786,7 @@ Si le répertoire d'enregistrement n'est pas utilisable, le problème sera affiché à la place du répertoire. - + ERROR ERREUR @@ -2811,7 +2811,7 @@ - + E&xit &Quitter @@ -2838,12 +2838,12 @@ serveur - + Select Main Recording Directory Sélectionner le répertoire principal des enregistrements - + Predefined Address Adresse prédéfinie @@ -2880,12 +2880,12 @@ Défaut (Amérique du nord) - + Server serveur - + &Window &Fenêtre @@ -2980,7 +2980,7 @@ - + STATUS ÉTAT @@ -2995,15 +2995,20 @@ Répertoire des enregistrements - + Enable Jam Recorder Activer l'enregistreur de bœuf - + New Recording Nouvel enregistrement + + + Language + + Central Server Address: Adresse du serveur central : @@ -3036,7 +3041,7 @@ Dossier des enregistrements - + TextLabelNameVersion diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index 79c5d4ebb3..d9c5501618 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -2746,7 +2746,7 @@ - + ERROR @@ -2771,7 +2771,7 @@ - + E&xit &Esci @@ -2798,22 +2798,22 @@ server - + Server Server - + &Window &Finestra - + Select Main Recording Directory - + Predefined Address Indirizzo Predefinito @@ -2928,7 +2928,7 @@ - + STATUS STATO @@ -2943,15 +2943,20 @@ - + Enable Jam Recorder - + New Recording Nuova Registrazione + + + Language + + Central Server Address: Indirizzo Server Centrale: @@ -2984,7 +2989,7 @@ Cartella di Registrazione - + TextLabelNameVersion TextLabelNameVersion diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index cce637e9fd..67a78624d5 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -2734,7 +2734,7 @@ - + ERROR @@ -2759,7 +2759,7 @@ - + E&xit &Sluiten @@ -2786,12 +2786,12 @@ server - + Select Main Recording Directory - + Predefined Address Standaardadres @@ -2828,12 +2828,12 @@ Standaard (Noord-Amerika) - + Server Server - + &Window &Window @@ -2928,7 +2928,7 @@ - + STATUS STATUS @@ -2943,15 +2943,20 @@ - + Enable Jam Recorder - + New Recording Nieuwe geluidsopname + + + Language + + Central Server Address: Adres Centrale Server: @@ -2984,7 +2989,7 @@ Geluidsopname folder - + TextLabelNameVersion TextLabelNameVersion diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index a99f40c5b6..9b337657a8 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -2336,7 +2336,7 @@ nie jestem pewna - + ERROR @@ -2357,7 +2357,7 @@ nie jestem pewna - + E&xit &Wyjdź @@ -2384,17 +2384,17 @@ nie jestem pewna - + Select Main Recording Directory - + Predefined Address - + Server @@ -2459,7 +2459,7 @@ nie jestem pewna - + &Window @@ -2575,7 +2575,7 @@ nie jestem pewna - + STATUS STATUS @@ -2605,15 +2605,20 @@ nie jestem pewna - + Enable Jam Recorder - + New Recording + + + Language + + Enable jam recorder Włącz nargywanie jam-u @@ -2627,7 +2632,7 @@ nie jestem pewna Katalog nagrań - + TextLabelNameVersion diff --git a/src/res/translation/translation_pt_BR.ts b/src/res/translation/translation_pt_BR.ts index b8b8ec4e30..86cc972fe7 100644 --- a/src/res/translation/translation_pt_BR.ts +++ b/src/res/translation/translation_pt_BR.ts @@ -2772,7 +2772,7 @@ - + ERROR @@ -2797,7 +2797,7 @@ - + E&xit &Sair @@ -2824,12 +2824,12 @@ - + Select Main Recording Directory - + Predefined Address Endereço Predefinido @@ -2866,12 +2866,12 @@ Servidor Padrão (America do Norte) - + Server - Servidor - + &Window &Janela @@ -2966,7 +2966,7 @@ - + STATUS ESTADO @@ -2981,15 +2981,20 @@ - + Enable Jam Recorder - + New Recording Nova Gravação + + + Language + + Central Server Address: Endereço do Servidor Central: @@ -3022,7 +3027,7 @@ Pasta de gravações - + TextLabelNameVersion TextLabelNameVersion diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index c2e15306d1..41529c17c7 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -2770,7 +2770,7 @@ - + ERROR @@ -2795,7 +2795,7 @@ - + E&xit &Sair @@ -2822,12 +2822,12 @@ - + Select Main Recording Directory - + Predefined Address Endereço Predefinido @@ -2864,12 +2864,12 @@ Servidor Padrão (America do Norte) - + Server - Servidor - + &Window &Janela @@ -2964,7 +2964,7 @@ - + STATUS ESTADO @@ -2979,15 +2979,20 @@ - + Enable Jam Recorder - + New Recording Nova Gravação + + + Language + + Central Server Address: Endereço do Servidor Central: @@ -3020,7 +3025,7 @@ Pasta de gravações - + TextLabelNameVersion TextLabelNameVersion diff --git a/src/res/translation/translation_sv_SE.ts b/src/res/translation/translation_sv_SE.ts index d482b8655e..d991efb5b4 100644 --- a/src/res/translation/translation_sv_SE.ts +++ b/src/res/translation/translation_sv_SE.ts @@ -2378,7 +2378,7 @@ - + ERROR @@ -2399,7 +2399,7 @@ - + E&xit @@ -2426,22 +2426,22 @@ - + Server - + &Window - + Select Main Recording Directory - + Predefined Address @@ -2556,7 +2556,7 @@ - + STATUS @@ -2586,17 +2586,22 @@ - + Enable Jam Recorder - + New Recording - + + Language + + + + TextLabelNameVersion From e6a6c8a79e7075a62c60261b7844c0a0f6b54569 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 6 Jul 2020 20:01:40 +0200 Subject: [PATCH 343/936] system language: first try to find the complete string, if not found use only first two letters instead --- ChangeLog | 7 ++----- src/util.cpp | 25 ++++++++++++++++--------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/ChangeLog b/ChangeLog index e97934112e..f12a6da4a4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -13,6 +13,8 @@ - support sorting faders by channel group +- add support to change the GUI language (#297) + - add special server list filter for filtering occupied servers by using "#" (#397) - scale channel instrument picture in Compact skin mode @@ -20,11 +22,6 @@ - bug fix: grouping faders in the client should be proportional (see discussion in #202, #419) -TODO add support to change language (#297) - TODO search in the code for "TODO maybe first try to find the complete string, if not found use only first two letters instead" - -TODO bug fix: incorrect selection of UI language (#408) !!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -> note that for the 3.5.8 bug fix release we went back to the original translation code (e.g. no pt_BR!) TODO add new register message which contains version and, e.g., max number of clients diff --git a/src/util.cpp b/src/util.cpp index d1b68b359d..7112369b35 100755 --- a/src/util.cpp +++ b/src/util.cpp @@ -1469,19 +1469,26 @@ QPair CLocale::FindSysLangTransFileName ( const QMap if the language - // is not correct, the user can change it in the GUI anyway) - const QString strUiLang = QLocale().uiLanguages().at ( 0 ); + QString strUiLang = QLocale().uiLanguages().at ( 0 ); + strUiLang.replace ( "-", "_" ); - if ( strUiLang.length() >= 2 ) + // first try to find the complete language string + if ( TranslMap.constFind ( strUiLang ) != TranslMap.constEnd() ) { - -// TODO maybe first try to find the complete string, if not found use only first two letters instead - - PairSysLang.first = strUiLang.left ( 2 ); + PairSysLang.first = strUiLang; PairSysLang.second = TranslMap[PairSysLang.first]; } + else + { + // only extract two first characters to identify language (ignoring + // location for getting a simpler implementation -> if the language + // is not correct, the user can change it in the GUI anyway) + if ( strUiLang.length() >= 2 ) + { + PairSysLang.first = strUiLang.left ( 2 ); + PairSysLang.second = TranslMap[PairSysLang.first]; + } + } } return PairSysLang; From 80d3e25d83477d650a154fbc93f1372eb53c865b Mon Sep 17 00:00:00 2001 From: daryl Date: Mon, 6 Jul 2020 22:47:21 +0200 Subject: [PATCH 344/936] Update Spanish translation --- src/res/translation/translation_es_ES.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index 9241b29046..df9a9977cc 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -1805,7 +1805,7 @@ Language - + Idioma @@ -2061,12 +2061,12 @@ Restart Required - + Reinicio Necesario Please restart the application for the language change to take effect. - + Por favor reinicia la aplicación para que el cambio de idioma surta efecto.
@@ -3015,7 +3015,7 @@ Language - + Idioma Central Server Address: From a8651df25ddfeaa73a5520cd4bdb124fa558c7b4 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 7 Jul 2020 16:24:35 +0200 Subject: [PATCH 345/936] updates --- ChangeLog | 7 +++++-- src/res/translation/translation_de_DE.qm | Bin 104292 -> 104357 bytes src/res/translation/translation_de_DE.ts | 6 +++--- src/res/translation/translation_es_ES.qm | Bin 104235 -> 104733 bytes src/res/translation/translation_es_ES.ts | 6 +++--- src/res/translation/translation_fr_FR.ts | 6 +++--- src/res/translation/translation_it_IT.ts | 6 +++--- src/res/translation/translation_nl_NL.ts | 6 +++--- src/res/translation/translation_pl_PL.ts | 6 +++--- src/res/translation/translation_pt_BR.ts | 6 +++--- src/res/translation/translation_pt_PT.ts | 6 +++--- src/res/translation/translation_sv_SE.ts | 6 +++--- 12 files changed, 32 insertions(+), 29 deletions(-) diff --git a/ChangeLog b/ChangeLog index f12a6da4a4..5d649cde04 100644 --- a/ChangeLog +++ b/ChangeLog @@ -25,11 +25,14 @@ TODO add new register message which contains version and, e.g., max number of clients -TODO Inconsistency between Input meter and Audio mixer meter #423 - TODO improve settings management -> move settings class in client/server classes, move actual settings variables TODO store recorder settings (#313) +TODO Inconsistency between Input meter and Audio mixer meter #423 + + + + diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index ece9d794e45e1be0faeb5f2c06d704ec80b7ee07..4a23706ccd83475b1426d4beb0719e338d2046fc 100644 GIT binary patch delta 475 zcmXAkO-Pdg9EbnE_ubxi@8>qzcrjR0v1|vGT`~h(LAgHIcF;5r1JMmh*eq(%p=FYG ztE4|Mqc4&qDr#7SUW{lAk3zVEgbvamNXkP-7=s3#9)9o~e$U2hX(lgCdN4Wbm4RjU zAu62pa|$_kgiaJ%2{pZRa{pbz)ko|VehcU7*bvjg<-MF0!sF4_FG zTcT9_S+zfkzQ4PP`Yo}3ewZ*i%!a*1O&Q{BrkybHfREV^si!@*_|qSR{z1NJU&0{A zB@21ZNS#8Wju)!q7MG+Z3~)sX;W>B6X`#>JSMnm(IO7;qzR14gF+$IIt~f$C!yQVS zJ1S3=-xKZV@;yCD=qvDq5<@4Kly*7#W}DFcnGH3ME?!WV+~3v2&<4?!H8rtaeUdHk zLoI|AUe$&IZ#CNsi>T|M<`7R2*#yni*g}ZswYJCwqRoI7K5~ta32;ikB%}}USG`<2 zuHRWF!kDG=K9fj!so$^vKo}45s&N}JPMP6q=sVMoG?&aKjBv$l#V2ld`m0e9XHP@6 z+01Uv5Cs=a_6`ts-7ug0c}6(g@SnXR7o9omaNKnizphWa=B8aJcXQ*`o?J~5p1H9k H)`R~5ScI3q delta 415 zcmV;Q0bu^6uLk6<29Oj1h_Mw10Rfwn9RW@PXy%h`0hbXJ07=6y009zL07^EM00Dkw zlNAE?0&nM&4FhfhckPpX14jX0lf?s{0k4x~1aAR5lhp(t8Mgxl#qR(Ceu)De`yK!Q zU>5@+xM~0ae=(B{1uhC~)B~|~IRF8LW0OS%J_=OZ1YM-=00CeslZ^$>0VOi03pY)3008VM3r9hK00DIHlXVPs z0&V}3?F`=;OAM0Z0004i-VBo{4gdfNs|=eVzyJY*_><)gj{z2wbq+@XDwDkq9|1L! z-3})KHj@PpF9Dg8H4h&FrIS?;RswwVldTUP0#?eC%@3CW!INbWL;<^lst~uT5CPv* Jx58xs<1rP=h}{4H diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index 42c9a5f63c..bac96ff908 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -3220,17 +3220,17 @@ QCoreApplication - + , Version , Version - + Internet Jam Session Software Internet Jam Session Software - + Released under the GNU General Public License (GPL) Unter der GNU General Public License (GPL) diff --git a/src/res/translation/translation_es_ES.qm b/src/res/translation/translation_es_ES.qm index 22b9bdf0e09f532574dd22ad7a2dde204ab2a802..a8eebce72d463e8311d89f93f2cf626a93112bd9 100644 GIT binary patch delta 3807 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 QCoreApplication - + , Version , Versión - + Internet Jam Session Software Internet Jam Session Software - + Released under the GNU General Public License (GPL) Publicado bajo la GNU General Public License (GPL) diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index a15c883107..052542ef63 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -3232,17 +3232,17 @@ QCoreApplication - + , Version , version - + Internet Jam Session Software Logiciel de bœuf sur Internet - + Released under the GNU General Public License (GPL) Publié sous la licence publique générale GNU (GPL) diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index d9c5501618..1f8f6cf650 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -3180,17 +3180,17 @@ QCoreApplication - + , Version Versione, Versione - + Internet Jam Session Software Programma per Jam Session su Internet - + Released under the GNU General Public License (GPL) Rilasciato sotto licensa GNU General Public License (GPL) diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index 67a78624d5..dbf39e47dc 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -3180,17 +3180,17 @@ QCoreApplication - + , Version , Versie - + Internet Jam Session Software Internet Jamsessie Software - + Released under the GNU General Public License (GPL) Gereleased onder de GNU General Public License (GPL) diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index 9b337657a8..1cbd7c5006 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -2823,17 +2823,17 @@ nie jestem pewna QCoreApplication - + , Version - + Internet Jam Session Software - + Released under the GNU General Public License (GPL) diff --git a/src/res/translation/translation_pt_BR.ts b/src/res/translation/translation_pt_BR.ts index 86cc972fe7..2e820f1579 100644 --- a/src/res/translation/translation_pt_BR.ts +++ b/src/res/translation/translation_pt_BR.ts @@ -3218,17 +3218,17 @@ QCoreApplication - + , Version , Versão - + Internet Jam Session Software Programa de Jam Sessions pela Internet - + Released under the GNU General Public License (GPL) Lançado sob a Licença Pública Geral GNU (GPL) diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index 41529c17c7..1fb8ccf362 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -3216,17 +3216,17 @@ QCoreApplication - + , Version , Versão - + Internet Jam Session Software Programa de Jam Sessions pela Internet - + Released under the GNU General Public License (GPL) Lançado sob a Licença Pública Geral GNU (GPL) diff --git a/src/res/translation/translation_sv_SE.ts b/src/res/translation/translation_sv_SE.ts index d991efb5b4..029d9bc8cc 100644 --- a/src/res/translation/translation_sv_SE.ts +++ b/src/res/translation/translation_sv_SE.ts @@ -2792,17 +2792,17 @@ QCoreApplication - + , Version - + Internet Jam Session Software - + Released under the GNU General Public License (GPL) From e0750d8b1a47750c7944f0efd46083ff76e1f9f0 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 7 Jul 2020 16:35:00 +0200 Subject: [PATCH 346/936] remove the version label at the bottom of the server GUI since we now have many settings and we want to clean up a bit -> the version can be seen in the About dialog anyway --- src/serverdlg.cpp | 4 ---- src/serverdlgbase.ui | 45 -------------------------------------------- 2 files changed, 49 deletions(-) diff --git a/src/serverdlg.cpp b/src/serverdlg.cpp index 788655c0b8..7936c3335e 100755 --- a/src/serverdlg.cpp +++ b/src/serverdlg.cpp @@ -218,10 +218,6 @@ CServerDlg::CServerDlg ( CServer* pNServP, showMinimized(); } - // set text for version and application name - lblNameVersion->setText ( QString ( APP_NAME ) + - tr ( " server " ) + QString ( VERSION ) ); - // set up list view for connected clients lvwClients->setColumnWidth ( 0, 170 ); lvwClients->setColumnWidth ( 1, 200 ); diff --git a/src/serverdlgbase.ui b/src/serverdlgbase.ui index 1754716da6..6f3789f3fd 100755 --- a/src/serverdlgbase.ui +++ b/src/serverdlgbase.ui @@ -236,51 +236,6 @@ - - - - 6 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - TextLabelNameVersion - - - false - - - - - - - Qt::Horizontal - - - QSizePolicy::Expanding - - - - 20 - 20 - - - - - - From 6a7f0a6dc319e3192912119827a3a5162956683b Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 7 Jul 2020 18:31:26 +0200 Subject: [PATCH 347/936] add new register message which contains server version --- ChangeLog | 3 +- src/protocol.cpp | 172 ++++++++++++++++++++++++++++++++++++++++++++- src/protocol.h | 11 +++ src/server.cpp | 3 + src/server.h | 9 +++ src/serverlist.cpp | 10 +++ src/serverlist.h | 6 ++ 7 files changed, 210 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5d649cde04..b1be0a45de 100644 --- a/ChangeLog +++ b/ChangeLog @@ -23,7 +23,7 @@ -TODO add new register message which contains version and, e.g., max number of clients +TODO bug fix: if group is set to disabled, reset "previous level" TODO improve settings management -> move settings class in client/server classes, move actual settings variables TODO store recorder settings (#313) @@ -38,7 +38,6 @@ TODO Inconsistency between Input meter and Audio mixer meter #423 - 3.5.8 (2020-06-30) - bug fix: incorrect selection of UI language (#408) diff --git a/src/protocol.cpp b/src/protocol.cpp index 37a5355d07..2480bd6499 100755 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -289,6 +289,14 @@ CONNECTION LESS MESSAGES necessary, that value will contain the server internal address. +- PROTMESSID_CLM_REGISTER_SERVER_EX: Register a server, providing extended server + information + + +--------------------------------+-------------------------------+ + | PROTMESSID_CLM_REGISTER_SERVER | PROTMESSID_CLM_VERSION_AND_OS | + +--------------------------------+-------------------------------+ + + - PROTMESSID_CLM_UNREGISTER_SERVER: Unregister a server note: does not have any data -> n = 0 @@ -738,6 +746,10 @@ if ( rand() < ( RAND_MAX / 2 ) ) return false; bRet = EvaluateCLRegisterServerMes ( InetAddr, vecbyMesBodyData ); break; + case PROTMESSID_CLM_REGISTER_SERVER_EX: + bRet = EvaluateCLRegisterServerExMes ( InetAddr, vecbyMesBodyData ); + break; + case PROTMESSID_CLM_UNREGISTER_SERVER: bRet = EvaluateCLUnregisterServerMes ( InetAddr ); break; @@ -1466,8 +1478,8 @@ void CProtocol::CreateReqChannelLevelListMes ( const bool bRCL ) { CVector vecData ( 1 ); // 1 byte of data int iPos = 0; // init position pointer - PutValOnStream ( vecData, iPos, - static_cast ( bRCL ), 1 ); + + PutValOnStream ( vecData, iPos, static_cast ( bRCL ), 1 ); CreateAndSendMessage ( PROTMESSID_REQ_CHANNEL_LEVEL_LIST, vecData ); } @@ -1820,6 +1832,162 @@ bool CProtocol::EvaluateCLRegisterServerMes ( const CHostAddress& InetAddr, return false; // no error } +void CProtocol::CreateCLRegisterServerExMes ( const CHostAddress& InetAddr, + const CHostAddress& LInetAddr, + const CServerCoreInfo& ServerInfo ) +{ + int iPos = 0; // init position pointer + + // convert server info strings to utf-8 + const QByteArray strUTF8LInetAddr = LInetAddr.InetAddr.toString().toUtf8(); + const QByteArray strUTF8Name = ServerInfo.strName.toUtf8(); + const QByteArray strUTF8City = ServerInfo.strCity.toUtf8(); + const QByteArray strUTF8Version = QString ( VERSION ).toUtf8(); + + // size of current message body + const int iEntrLen = + 2 /* server internal port number */ + + 2 /* country */ + + 1 /* maximum number of connected clients */ + + 1 /* is permanent flag */ + + 2 /* name utf-8 string size */ + strUTF8Name.size() + + 2 /* server internal address utf-8 string size */ + strUTF8LInetAddr.size() + + 2 /* city utf-8 string size */ + strUTF8City.size() + + 1 /* operating system */ + + 2 /* version utf-8 string size */ + strUTF8Version.size(); + + // build data vector + CVector vecData ( iEntrLen ); + + // port number (2 bytes) + PutValOnStream ( vecData, iPos, static_cast ( LInetAddr.iPort ), 2 ); + + // country (2 bytes) + PutValOnStream ( vecData, iPos, static_cast ( ServerInfo.eCountry ), 2 ); + + // maximum number of connected clients (1 byte) + PutValOnStream ( vecData, iPos, static_cast ( ServerInfo.iMaxNumClients ), 1 ); + + // "is permanent" flag (1 byte) + PutValOnStream ( vecData, iPos, static_cast ( ServerInfo.bPermanentOnline ), 1 ); + + // name + PutStringUTF8OnStream ( vecData, iPos, strUTF8Name ); + + // server internal address (formerly unused topic) + PutStringUTF8OnStream ( vecData, iPos, strUTF8LInetAddr ); + + // city + PutStringUTF8OnStream ( vecData, iPos, strUTF8City ); + + // operating system (1 byte) + PutValOnStream ( vecData, iPos, + static_cast ( COSUtil::GetOperatingSystem() ), 1 ); + + // version + PutStringUTF8OnStream ( vecData, iPos, strUTF8Version ); + + CreateAndImmSendConLessMessage ( PROTMESSID_CLM_REGISTER_SERVER, + vecData, + InetAddr ); +} + +bool CProtocol::EvaluateCLRegisterServerExMes ( const CHostAddress& InetAddr, + const CVector& vecData ) +{ + int iPos = 0; // init position pointer + const int iDataLen = vecData.Size(); + QString sLocHost; // temp string for server internal address + CHostAddress LInetAddr; + CServerCoreInfo RecServerInfo; + + // check size (the first 6 bytes) + if ( iDataLen < 6 ) + { + return true; // return error code + } + + // port number (2 bytes) + LInetAddr.iPort = static_cast ( GetValFromStream ( vecData, iPos, 2 ) ); + + // country (2 bytes) + RecServerInfo.eCountry = static_cast ( GetValFromStream ( vecData, iPos, 2 ) ); + + // maximum number of connected clients (1 byte) + RecServerInfo.iMaxNumClients = static_cast ( GetValFromStream ( vecData, iPos, 1 ) ); + + // "is permanent" flag (1 byte) + RecServerInfo.bPermanentOnline = static_cast ( GetValFromStream ( vecData, iPos, 1 ) ); + + // server name + if ( GetStringFromStream ( vecData, + iPos, + MAX_LEN_SERVER_NAME, + RecServerInfo.strName ) ) + { + return true; // return error code + } + + // server internal address + if ( GetStringFromStream ( vecData, + iPos, + MAX_LEN_IP_ADDRESS, + sLocHost ) ) + { + return true; // return error code + } + + if ( sLocHost.isEmpty() ) + { + // old server, empty "topic", register as local host + LInetAddr.InetAddr.setAddress ( QHostAddress::LocalHost ); + } + else if ( !LInetAddr.InetAddr.setAddress ( sLocHost ) ) + { + return true; // return error code + } + + // server city + if ( GetStringFromStream ( vecData, + iPos, + MAX_LEN_SERVER_CITY, + RecServerInfo.strCity ) ) + { + return true; // return error code + } + + // check size (the next 1 byte) + if ( iDataLen < iPos + 1 ) + { + return true; // return error code + } + + // operating system (1 byte) + const COSUtil::EOpSystemType eOSType = + static_cast ( GetValFromStream ( vecData, iPos, 1 ) ); + + // version text + QString strVersion; + if ( GetStringFromStream ( vecData, + iPos, + MAX_LEN_VERSION_TEXT, + strVersion ) ) + { + return true; // return error code + } + + // check size: all data is read, the position must now be at the end + if ( iPos != iDataLen ) + { + return true; // return error code + } + + // invoke message action + emit CLRegisterServerExReceived ( InetAddr, LInetAddr, RecServerInfo, eOSType, strVersion ); + + return false; // no error +} + void CProtocol::CreateCLUnregisterServerMes ( const CHostAddress& InetAddr ) { CreateAndImmSendConLessMessage ( PROTMESSID_CLM_UNREGISTER_SERVER, diff --git a/src/protocol.h b/src/protocol.h index 2c4a07607c..f9ea11aa83 100755 --- a/src/protocol.h +++ b/src/protocol.h @@ -79,6 +79,7 @@ #define PROTMESSID_CLM_REQ_CONN_CLIENTS_LIST 1014 // request the connected clients list #define PROTMESSID_CLM_CHANNEL_LEVEL_LIST 1015 // channel level list #define PROTMESSID_CLM_REGISTER_SERVER_RESP 1016 // status of server registration request +#define PROTMESSID_CLM_REGISTER_SERVER_EX 1017 // register server with extended information // lengths of message as defined in protocol.cpp file #define MESS_HEADER_LENGTH_BYTE 7 // TAG (2), ID (2), cnt (1), length (2) @@ -125,6 +126,9 @@ class CProtocol : public QObject void CreateCLRegisterServerMes ( const CHostAddress& InetAddr, const CHostAddress& LInetAddr, const CServerCoreInfo& ServerInfo ); + void CreateCLRegisterServerExMes ( const CHostAddress& InetAddr, + const CHostAddress& LInetAddr, + const CServerCoreInfo& ServerInfo ); void CreateCLUnregisterServerMes ( const CHostAddress& InetAddr ); void CreateCLServerListMes ( const CHostAddress& InetAddr, const CVector vecServerInfo ); @@ -250,6 +254,8 @@ class CProtocol : public QObject bool EvaluateCLServerFullMes(); bool EvaluateCLRegisterServerMes ( const CHostAddress& InetAddr, const CVector& vecData ); + bool EvaluateCLRegisterServerExMes ( const CHostAddress& InetAddr, + const CVector& vecData ); bool EvaluateCLUnregisterServerMes ( const CHostAddress& InetAddr ); bool EvaluateCLServerListMes ( const CHostAddress& InetAddr, const CVector& vecData ); @@ -315,6 +321,11 @@ public slots: void CLRegisterServerReceived ( CHostAddress InetAddr, CHostAddress LInetAddr, CServerCoreInfo ServerInfo ); + void CLRegisterServerExReceived ( CHostAddress InetAddr, + CHostAddress LInetAddr, + CServerCoreInfo ServerInfo, + COSUtil::EOpSystemType eOSType, + QString strVersion ); void CLUnregisterServerReceived ( CHostAddress InetAddr ); void CLServerListReceived ( CHostAddress InetAddr, CVector vecServerInfo ); diff --git a/src/server.cpp b/src/server.cpp index 56739a83fb..499c57cc5c 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -449,6 +449,9 @@ CServer::CServer ( const int iNewMaxNumChan, QObject::connect ( &ConnLessProtocol, &CProtocol::CLRegisterServerReceived, this, &CServer::OnCLRegisterServerReceived ); + QObject::connect ( &ConnLessProtocol, &CProtocol::CLRegisterServerExReceived, + this, &CServer::OnCLRegisterServerExReceived ); + QObject::connect ( &ConnLessProtocol, &CProtocol::CLUnregisterServerReceived, this, &CServer::OnCLUnregisterServerReceived ); diff --git a/src/server.h b/src/server.h index 8def4f9fb7..08766acb64 100755 --- a/src/server.h +++ b/src/server.h @@ -462,6 +462,15 @@ public slots: ServerListManager.CentralServerRegisterServer ( InetAddr, LInetAddr, ServerInfo ); } + void OnCLRegisterServerExReceived ( CHostAddress InetAddr, + CHostAddress LInetAddr, + CServerCoreInfo ServerInfo, + COSUtil::EOpSystemType eOSType, + QString strVersion ) + { + ServerListManager.CentralServerRegisterServerEx ( InetAddr, LInetAddr, ServerInfo, eOSType, strVersion ); + } + void OnCLRegisterServerResp ( CHostAddress /* unused */, ESvrRegResult eResult ) { diff --git a/src/serverlist.cpp b/src/serverlist.cpp index 78074d8759..e215835c2e 100755 --- a/src/serverlist.cpp +++ b/src/serverlist.cpp @@ -340,6 +340,16 @@ void CServerListManager::OnTimerPollList() } } +void CServerListManager::CentralServerRegisterServerEx ( const CHostAddress& InetAddr, + const CHostAddress& LInetAddr, + const CServerCoreInfo& ServerInfo, + const COSUtil::EOpSystemType , + const QString& ) +{ +// TODO right now we do not make use of the additional operating system and version number informations +CentralServerRegisterServer ( InetAddr, LInetAddr, ServerInfo ); +} + void CServerListManager::CentralServerRegisterServer ( const CHostAddress& InetAddr, const CHostAddress& LInetAddr, const CServerCoreInfo& ServerInfo ) diff --git a/src/serverlist.h b/src/serverlist.h index f26003bf03..e2f0ff8563 100755 --- a/src/serverlist.h +++ b/src/serverlist.h @@ -147,6 +147,12 @@ class CServerListManager : public QObject const CHostAddress& LInetAddr, const CServerCoreInfo& ServerInfo ); + void CentralServerRegisterServerEx ( const CHostAddress& InetAddr, + const CHostAddress& LInetAddr, + const CServerCoreInfo& ServerInfo, + const COSUtil::EOpSystemType , + const QString& ); + void CentralServerUnregisterServer ( const CHostAddress& InetAddr ); void CentralServerQueryServerList ( const CHostAddress& InetAddr ); From b15e61353b7bdc5e041bee699b29d784dd06c02e Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 7 Jul 2020 18:38:13 +0200 Subject: [PATCH 348/936] bug fix --- src/protocol.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/protocol.cpp b/src/protocol.cpp index 2480bd6499..e54a4272ce 100755 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -1887,7 +1887,7 @@ void CProtocol::CreateCLRegisterServerExMes ( const CHostAddress& InetAddr, // version PutStringUTF8OnStream ( vecData, iPos, strUTF8Version ); - CreateAndImmSendConLessMessage ( PROTMESSID_CLM_REGISTER_SERVER, + CreateAndImmSendConLessMessage ( PROTMESSID_CLM_REGISTER_SERVER_EX, vecData, InetAddr ); } From 38cdd659e1b702bc41e11ffa44ea22d199af1cc9 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 7 Jul 2020 22:02:44 +0200 Subject: [PATCH 349/936] bug fix: if group is set to disabled, reset "previous level" --- ChangeLog | 7 ++++--- src/audiomixerboard.cpp | 17 ++++++++++++++++- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index b1be0a45de..dc80c6426a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -23,10 +23,11 @@ -TODO bug fix: if group is set to disabled, reset "previous level" - TODO improve settings management -> move settings class in client/server classes, move actual settings variables -TODO store recorder settings (#313) +TODO improve interaction between use of inifile and command line parameters (edited) #120 +(Save client settings on SIGUSR1 #294) +(Add a save action for client and server with a keyboard shortcut #347) +(Save and restore mixer state (fader / mute / solo...) #377) TODO Inconsistency between Input meter and Audio mixer meter #423 diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 379c87eb2a..1dc2bf6b1a 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -503,7 +503,7 @@ void CChannelFader::SetGroupID ( const int iNGroupID ) void CChannelFader::UpdateGroupIDDependencies() { // update the group checkbox according the current group ID setting - pcbGroup->blockSignals ( true ); // make sure no signals as fired + pcbGroup->blockSignals ( true ); // make sure no signals are fired if ( iGroupID == INVALID_INDEX ) { pcbGroup->setCheckState ( Qt::Unchecked ); @@ -524,6 +524,21 @@ void CChannelFader::UpdateGroupIDDependencies() pcbGroup->setText ( strGroupBaseText ); } + // if the group is disable for this fader, reset the previous fader level + if ( iGroupID == INVALID_INDEX ) + { + // for the special case that the fader is all the way down, use a small + // value instead + if ( GetFaderLevel() > 0 ) + { + dPreviousFaderLevel = GetFaderLevel(); + } + else + { + dPreviousFaderLevel = 1; // small value + } + } + // the fader tag border color is set according to the selected group SetupFaderTag ( cReceivedChanInfo.eSkillLevel ); } From 46bb1435a04ec5c28e50890a8129550f90da86ec Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 7 Jul 2020 22:07:19 +0200 Subject: [PATCH 350/936] rename variable --- src/audiomixerboard.cpp | 14 +++++++------- src/audiomixerboard.h | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 1dc2bf6b1a..0092ca4b30 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -128,8 +128,8 @@ CChannelFader::CChannelFader ( QWidget* pNW ) pMainGrid->addWidget ( pLabelInstBox ); // reset current fader - strGroupBaseText = "Grp"; // this will most probably overwritten by SetGUIDesign() - iInstrPicFixedWidth = INVALID_INDEX; // this will most probably overwritten by SetGUIDesign() + strGroupBaseText = "Grp"; // this will most probably overwritten by SetGUIDesign() + iInstrPicMaxWidth = INVALID_INDEX; // this will most probably overwritten by SetGUIDesign() Reset(); // add help text to controls @@ -228,7 +228,7 @@ void CChannelFader::SetGUIDesign ( const EGUIDesign eNewDesign ) pcbSolo->setText ( tr ( "SOLO" ) ); strGroupBaseText = tr ( "GRP" ); plbrChannelLevel->SetLevelMeterType ( CLevelMeter::MT_LED ); - iInstrPicFixedWidth = INVALID_INDEX; // no instrument picture scaling + iInstrPicMaxWidth = INVALID_INDEX; // no instrument picture scaling break; case GD_SLIMFADER: @@ -243,7 +243,7 @@ void CChannelFader::SetGUIDesign ( const EGUIDesign eNewDesign ) pcbSolo->setText ( tr ( "S" ) ); strGroupBaseText = tr ( "G" ); plbrChannelLevel->SetLevelMeterType ( CLevelMeter::MT_SLIM_BAR ); - iInstrPicFixedWidth = 18; // scale instrument picture to avoid enlarging the width by the picture + iInstrPicMaxWidth = 18; // scale instrument picture to avoid enlarging the width by the picture break; default: @@ -259,7 +259,7 @@ void CChannelFader::SetGUIDesign ( const EGUIDesign eNewDesign ) pcbSolo->setText ( tr ( "Solo" ) ); strGroupBaseText = tr ( "Grp" ); plbrChannelLevel->SetLevelMeterType ( CLevelMeter::MT_BAR ); - iInstrPicFixedWidth = INVALID_INDEX; // no instrument picture scaling + iInstrPicMaxWidth = INVALID_INDEX; // no instrument picture scaling break; } @@ -631,10 +631,10 @@ void CChannelFader::SetChannelInfos ( const CChannelInfo& cChanInfo ) // set correct picture QPixmap pixInstr ( strCurResourceRef ); - if ( ( iInstrPicFixedWidth != INVALID_INDEX ) && ( pixInstr.width() > iInstrPicFixedWidth ) ) + if ( ( iInstrPicMaxWidth != INVALID_INDEX ) && ( pixInstr.width() > iInstrPicMaxWidth ) ) { // scale instrument picture on request (scale to the width with correct aspect ratio) - plblInstrument->setPixmap ( pixInstr.scaledToWidth ( iInstrPicFixedWidth, Qt::SmoothTransformation ) ); + plblInstrument->setPixmap ( pixInstr.scaledToWidth ( iInstrPicMaxWidth, Qt::SmoothTransformation ) ); } else { diff --git a/src/audiomixerboard.h b/src/audiomixerboard.h index 95fd4d615b..3ed2c6bec8 100755 --- a/src/audiomixerboard.h +++ b/src/audiomixerboard.h @@ -119,7 +119,7 @@ class CChannelFader : public QObject double dPreviousFaderLevel; int iGroupID; QString strGroupBaseText; - int iInstrPicFixedWidth; + int iInstrPicMaxWidth; public slots: void OnLevelValueChanged ( int value ) { SendFaderLevelToServer ( value, false ); } From 91d5560f94785cf88ddd950f4a1b82ce8fcab9c5 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Wed, 8 Jul 2020 19:17:58 +0200 Subject: [PATCH 351/936] update --- ChangeLog | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index dc80c6426a..8aea6349e9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -25,12 +25,8 @@ TODO improve settings management -> move settings class in client/server classes, move actual settings variables TODO improve interaction between use of inifile and command line parameters (edited) #120 -(Save client settings on SIGUSR1 #294) -(Add a save action for client and server with a keyboard shortcut #347) -(Save and restore mixer state (fader / mute / solo...) #377) - -TODO Inconsistency between Input meter and Audio mixer meter #423 - +TODO Save and restore mixer state (fader / mute / solo...) #377 +(Add a save action for client and server with a keyboard shortcut #347) -> should be closed From 96cb2fee33b03a720db65fdf85fb730f556e21e6 Mon Sep 17 00:00:00 2001 From: genesisproject2020 <7592139+genesisproject2020@users.noreply.github.com> Date: Wed, 8 Jul 2020 23:42:46 +0200 Subject: [PATCH 352/936] Update translation_sv_SE.ts --- src/res/translation/translation_sv_SE.ts | 1966 ++++++++++------------ 1 file changed, 887 insertions(+), 1079 deletions(-) diff --git a/src/res/translation/translation_sv_SE.ts b/src/res/translation/translation_sv_SE.ts index 029d9bc8cc..0acbb358b8 100644 --- a/src/res/translation/translation_sv_SE.ts +++ b/src/res/translation/translation_sv_SE.ts @@ -4,89 +4,84 @@ CAboutDlg - + This app enables musicians to perform real-time jam sessions over the internet. - + Applikationen gör det möjligt för musiker att spela tillsammans live över Internet. - + There is a server which collects the audio data from each client, mixes the audio data and sends the mix back to each client. - + Det finns en server som samlar ljud från varje klient, blandar ljudet och skickar mixen tillbaka till varje klient. - + This app uses the following libraries, resources or code snippets: - + Denna applikationen använder följande bibliotek, resurser eller kodavsnitt: - + Qt cross-platform application framework - + Qt cross-platform applikationramverk - + Audio reverberation code by Perry R. Cook and Gary P. Scavone - + Ljudklangkod av Perry R. Cook och Gary P. Scavone - + Some pixmaps are from the - + Vissa pixmaps är från - + Country flag icons by Mark James - + Landsflaggsymboler av Mark James - + For details on the contributions check out the - + För detaljer om bidrag, kolla in - + Github Contributors list - + Github's bidragsgivarlista - + Spanish - + Spanska - + French - + Franska - + Portuguese - + Portugisiska - + Dutch - + Holländska - + Italian - + Italienska - + German - - - - - Polish - + Tyska - + About - + Om @@ -94,42 +89,42 @@ About - + Om TextLabelVersion - + TextEtikettVersion Copyright (C) 2005-2020 Volker Fischer and others - + Upphovsrätt (C) 2005-2020 Volker Fischer och andra A&bout - + O&m &Libraries - + &Bibliotek &Contributors - + &Bidragsgivare &Translation - + &Översättning &OK - + &Okej @@ -137,289 +132,246 @@ Analyzer Console - + Analyskonsol Error Rate of Each Buffer Size - + Felhastighet för varje buffertstorlek CAudioMixerBoard - + Personal Mix at the Server - + Personlig mix på servern - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. - + När du är ansluten till en server låter kontrollerna här ställa in din lokala mix utan att påverka vad andra hör från dig. Titeln visar servernamnet och, om det är känt, om den aktivt spelar in. - + Server - + Server - + T R Y I N G T O C O N N E C T - + F Ö R S Ö K E R A N S L U T A - + RECORDING ACTIVE - + INSPELNING AKTIV - + Personal Mix at: - + Personlig mix på: CChannelFader - - + + Pan - + Panorera - - + + Mute - + Tyst - - + + Solo - - - - - Grp - + Solo - + Channel Level - - - - - No grouping - - - - - - - - Assign to group - + Kanalnivå - + Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. - + Visar ljudnivån för fader på denna kanal. Alla klienter som är anslutna till servern tilldelas en ljudnivå och har samma värde för alla klienter. - + Input level of the current audio channel at the server - + Ingångsnivå för den aktuella ljudkanalen på servern - + Mixer Fader - + Mixer - + Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. - + Justerar ljudnivån på den här kanalen. Alla klienter som är anslutna till servern tilldelas en ljudfader som visas vid varje klient för att justera den lokala mixen. - + Local mix level setting of the current audio channel at the server - + Lokal mixernivåinställning för den aktuella ljudkanalen på servern - + Status Indicator - + Statusindikator - + Shows a status indication about the client which is assigned to this channel. Supported indicators are: - + Visar en statusindikering om klienten som tilldelas denna kanal. Stödjade indikatorer är - + Speaker with cancellation stroke: Indicates that another client has muted you. - + Högtalare med streck över: Visar att en annan klient har stängt av ditt ljud. - + Status indicator label - + Statusindikator etikett - + Panning - + Panorering - + Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. - + Ställer in panorering från vänster till höger för kanalen. Fungerar endast i stereo eller helst mono in / stereo ut-läge. - + Local panning position of the current audio channel at the server - + Lokal panoreringsposition för den aktuella ljudkanalen på servern - + With the Mute checkbox, the audio channel can be muted. - + Med kryssrutan Stäng av kan ljudkanalen stängas av. - + Mute button - + Stäng av knapp - + With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. - + Med kryssrutan Solo kan ljudkanalen ställas in på solo vilket innebär att alla andra kanaler utom solokanalen är avstängda. Det är möjligt att ställa in mer än en kanal för solo. - + Solo button - - - - - Group - - - - - With the Grp checkbox, a group of audio channels can be defined. All channel faders in a group are moved in proportional synchronization if any one of the group faders are moved. - + Soloknapp - - Group button - - - - + Fader Tag - + Panoreringstagg - + The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. - + Fader-taggen identifierar den anslutna klienten. Etikettnamnet, en bild av ditt instrument och ditt lands flagga kan ställas in i huvudfönstret. - + Mixer channel instrument picture - + Mixerkanalens instrumentbild - + Mixer channel label (fader tag) - + Mixerkanalens etikett (fader) - + Mixer channel country flag - + Mixerkanalens landsflagga - + PAN - + PAN - + MUTE - + TYST - + SOLO - - - - - GRP - + SOLO - + M - + T - + S - + S - - G - - - - + Alias/Name - + Alias/Namn - + Instrument - + Instrument - + Location - + Plats - - - + + + Skill Level - + Skicklighetsnivå - + Beginner - + Nybörjare - + Intermediate - + Mellannivå - + Expert - + Expert - + Musician Profile - + Musikprofil @@ -427,60 +379,50 @@ Chat Window - + Chattfönster The chat window shows a history of all chat messages. - + Chattfönstret visar en historik över alla chattmeddelanden. Chat history - + Chatthistorik Input Message Text - + Skriv meddelandetext 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. - + Ange chattmeddelandetexten i textrutan och tryck på enter för att skicka meddelandet till servern som distribuerar meddelandet till alla anslutna klienter. Ditt meddelande kommer synas i chattfönstret. New chat text edit box - - - - - Type a message here - - - - - &Edit - - - - - Cl&ear Chat History - + Ny redigeringsruta för chatt-text CChatDlgBase - + Chat - + Chatt - - &Send - + + Cl&ear + R&ensa + + + + &Close + &Stäng @@ -488,870 +430,865 @@ Input Level Meter - + Ingångsnivå This shows the level of the two stereo channels for your audio input. - + Detta visar nivån på de två stereokanalerna för din ljudingång. Make sure not to clip the input signal to avoid distortions of the audio signal. - + Se till att inte klippa insignalen för att undvika en snedvridning av ljudsignalen. If the application is connected to a server and you play your instrument/sing into the microphone, the VU 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. - + Om applikationen är ansluten till en server och du spelar ditt instrument/sjunger in i mikrofonen, bör VU-mätaren röra sig. Om detta inte sker har du antagligen valt fel inmatningskanal (t.ex. 'line in' i stället för mikrofoningången) eller ställt in ingångsförstärkningen för (Windows) för lågt. For proper usage of the application, you should not hear your singing/instrument through the loudspeaker or your headphone when the software is not connected.This can be achieved by muting your input audio channel in the Playback mixer (not the Recording mixer!). - + För korrekt användning av applikationen, bör du inte höra din sång/instrument via högtalaren eller hörlurarna när programvaran inte är ansluten. Det kan uppnås genom att stänga av din ingående ljudkanal i uppspelningsblandaren (inte inspelningsblandaren!). Input level meter - + Ingångsnivåmätare Simulates an analog LED level meter. - + Simulerar en analog LED-nivåmätare. Connect/Disconnect Button - + Anslut/koppla ifrån-knapp Opens a dialog where you can select a server to connect to. If you are connected, pressing this button will end the session. - + Öppnar en dialogruta där du kan välja en server att ansluta till. Om du är ansluten avslutar du sessionen genom att trycka på den här knappen. Connect and disconnect toggle button - + Anslut och koppla bort-knapp Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. - + Om du klickar på den här knappen ändras bildtexten på knappen från Ansluten till Nedkopplad, dvs. den implementerar en växelfunktion för att ansluta och koppla bort applikationen. - Local Audio Input Fader - + Local Audio Input Fader + Lokal ljudingångsfader Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows - + Kontrollerar de relativa nivåerna för vänster och höger lokala ljudkanal. För en monosignal fungerar den som en panorering mellan de två kanalerna. Om exempelvis en mikrofon är ansluten till den högra ingångskanalen och ett instrument är anslutet till den vänstra ingångskanalen som är mycket högre än mikrofonen, flytta ljudfadern i en riktning som etiketten ovanför fadern visar - + L - + V , where - + , där is the current attenuation indicator. - + är den aktuella dämpningsindikatorn. Local audio input fader (left/right) - + Lokal ljudingångsfader (vänster/höger) Reverb effect - + Reverb effekt Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. - + Reverb kan tillämpas på en lokal monoljudkanal eller på båda kanalerna i stereoläge. Valet av monokanal och reverbnivån kan ändras. Om till exempel en mikrofonsignal matas in till höger ljudkanal på ljudkortet och en reverb-effekt måste appliceras, ställ in kanalväljaren till höger och flytta fadern uppåt tills önskad reverbnivå har uppnåtts. Reverb effect level setting - + Reverb-effektnivåinställning Reverb Channel Selection - + Reverb kanalval With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. - + Med dessa tryckknappar kan du välja ljudingångskanalen på vilken reverb-effekten används. Antingen kan vänster eller höger ingångskanal väljas. Left channel selection for reverb - + Vänster kanal för reverb Right channel selection for reverb - + Höger kanal för reverb Delay Status LED - + Fördröjningsstatus-LED Shows the current audio delay status: - + Visar aktuell ljudfördröjningsstatus: Green - + Grön The delay is perfect for a jam session. - + Förseningen är perfekt för en jam-session. Yellow - + Gul A session is still possible but it may be harder to play. - + En session är fortfarande möjlig men det kan vara svårare att spela. Red - + Röd The delay is too large for jamming. - + Fördröjningen är för stor för en jam-session. If this LED indicator turns red, you will not have much fun using the application. - + Om den här LED-indikatorn blir röd kommer du inte ha så kul med applikationen. Delay status LED indicator - + LED-indikator för fördröjningsstatus Buffers Status LED - + Buffertstatus-LED The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: - + Statuslampan för buffertar visar aktuell ljud-/strömningsstatus. Om lampan är röd avbryts ljudströmmen. Detta orsakas av ett av följande problem: The network jitter buffer is not large enough for the current network/audio interface jitter. - + Nätverksjitterbufferten är inte tillräckligt stor för det nuvarande nätverks-/ljudgränssnittsjitteret. The sound card's buffer delay (buffer size) is too small (see Settings window). - + Ljudkortets buffertfördröjning (buffertstorlek) är för liten (se Inställningsfönstret). The upload or download stream rate is too high for your internet bandwidth. - + Uppladdnings- eller nedladdningsströmmen är för hög för din internethastighet. The CPU of the client or server is at 100%. - + Klientens eller serverns CPU är 100%. Buffers status LED indicator - + LED-indikator för buffertstatus - - + + C&onnect - + &Anslut - + &View - + &Vy - + &Connection Setup... - + Anslutningsinställningar... - + My &Profile... - + Min &profil... - + C&hat... - + C&hatt - + &Settings... - + - + &Analyzer Console... - + Anal&yskonsol... - + E&xit - + &Avsluta - + &Edit - + &Redigera - + Sort Channel Users by &Name - + Sortera kanalanvändare efter &Namn - + Sort Channel Users by &Instrument - + Sortera kanalanvändare efter &Instrument - - Sort Channel Users by &Group - - - - + None - + Ingen - + Center - + Mitten - + R - + H - + Central Server - + Central server - + user - + användare - + users - + användare - + D&isconnect - + Koppla &ner CClientDlgBase - + Delay - + Fördröjning - + Buffers - + Buffert - + Input - + Ingång - + L - + V - + R - + H - + Settings - + Inställningar - + Chat - + Chatt - + Mute Myself - + Tysta mig själv - + C&onnect - + &Koppla upp - + Pan - + Pan - + Center - + Mitten - + Reverb - + Reverb - + Left - + Vänster - + Right - + Höger CClientSettingsDlg - + Jitter Buffer Size - + Jitter bufferstorlek - + The jitter buffer compensates for network and sound card timing jitters. The size of the buffer therefore influences the quality of the audio stream (how many dropouts occur) and the overall delay (the longer the buffer, the higher the delay). - + You can set the jitter buffer size manually for the local client and the remote server. For the local jitter buffer, dropouts in the audio stream are indicated by the light below the jitter buffer size faders. If the light turns to red, a buffer overrun/underrun has taken place and the audio stream is interrupted. - + Jitterbufferten kompenserar för nätverks- och ljudkortets timeing. Storleken på bufferten påverkar därför kvaliteten på ljudströmmen (hur många bortfall som inträffar) och den totala förseningen (ju längre bufferten är, desto högre är fördröjningen). - + The jitter buffer setting is therefore a trade-off between audio quality and overall delay. - + Jitterbuffertinställningen är därför en avvägning mellan ljudkvalitet och total fördröjning. - + If the Auto setting is enabled, the jitter buffers of the local client and the remote server are set automatically based on measurements of the network and sound card timing jitter. If Auto is enabled, the jitter buffer size faders are disabled (they cannot be moved with the mouse). - + Om Auto-inställningen är aktiverad, ställs jitterbuffertarna för den lokala klienten och fjärrservern in automatiskt baserat på mätningar av nätverkets och ljudkortets timingjitter. Om Auto är aktiverat inaktiveras jitterbuffertstorleken (de kan inte justeras). - + If the Auto setting 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 and to lower the jitter buffer size manually by using the sliders until your personal acceptable amount of dropouts is reached. The LED indicator will display the audio dropouts of the local jitter buffer with a red light. - + Om Auto-inställningen är aktiverad ställs nätverksbuffertarna för den lokala klienten och fjärrservern in på ett konservativt värde för att minimera sannorlikheten för ljudbortfall. För att justera ljudfördröjningen/latensen rekommenderas att du inaktiverar Auto-inställningen och att sänka jitterbuffertstorleken manuellt genom att använda reglagen tills din personliga acceptabla mängd bortfall uppnåtts. LED-indikatorn visar ljudavfallet från den lokala jitterbufferten med rött ljus. - + Local jitter buffer slider control - + Lokalt jitterbuffertreglage - + Server jitter buffer slider control - + Server jitter buffertreglage - + Auto jitter buffer switch - + Auto jitter buffert reglage - + Jitter buffer status LED indicator - + Jitter buffert status LED-indikator - + Sound Card Device - + Ljudkortsenhet - + The ASIO driver (sound card) can be selected using - + ASIO-drivrutinen (ljudkort) kan väljas med - + 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. - + under Microsoft Windows. Under MacOS/Linux är inget ljudkortsval möjligt. Om den valda ASIO-drivrutinen inte är giltig visas ett felmeddelande och den tidigare giltiga drivrutinen väljs. - + If the driver is selected during an active connection, the connection is stopped, the driver is changed and the connection is started again automatically. - + Om drivrutinen väljs under en aktiv anslutning stoppas anslutningen, drivrutinen ändras och anslutningen startas automatiskt igen. - + Sound card device selector combo box - + Ljudkortsenhetens kombinationsruta - + If the ASIO4ALL driver is used, please note that this driver usually introduces approx. 10-30 ms of additional audio delay. Using a sound card with a native ASIO driver is therefore recommended. - + Om ASIO4ALL-drivrutinen används, observera att den här drivrutinen vanligtvis introducerar ca. 10-30 ms extra ljudfördröjning. Det rekommenderas därför att använda ett ljudkort med en inbyggd ASIO-drivrutin. - + If you are using the kX ASIO driver, make sure to connect the ASIO inputs in the kX DSP settings panel. - + Om du använder kX ASIO-drivrutinen, se till att ansluta ASIO-ingångarna på kX DSP-inställningspanelen. - + Sound Card Channel Mapping - + Ljudkortets kanalval - + If the selected sound card device offers more than one input or output channel, the Input Channel Mapping and Output Channel Mapping settings are visible. - + Om den valda ljudkortsenheten erbjuder mer än en ingångs- eller utgångskanal är inställningarna för inmatningskanalens mappning och utmatningskanal synliga. - + For each - + För varje - + input/output channel (Left and Right channel) a different actual sound card channel can be selected. - + ingångs-/utgångskanal (vänster- och högerkanal) kan en annan faktisk ljudkortkanal väljas. - + Left input channel selection combo box - + Vänster ingångskanalvalskombinationsruta - + Right input channel selection combo box - + Höger ingångskanalvalskombinationsruta - + Left output channel selection combo box - + Vänster utgångskanalvalskombinationsruta - + Right output channel selection combo box - + Höger utgångskanalvalskombinationsruta - + Enable Small Network Buffers - + Aktivera liten nätverksbuffert - + If enabled, the support for very small network audio packets is activated. Very small network packets are only actually used if the sound card buffer delay is smaller than - + Om det är aktiverat aktiveras stödet för mycket små nätverksljudpaket. Mycket små nätverkspaket används faktiskt bara om ljudkortsbuffertfördröjningen är mindre än - + samples. The smaller the network buffers, the lower the audio latency. But at the same time the network load increases and the probability of audio dropouts also increases. - + bitars buffert. Ju mindre nätbuffertarna är, desto lägre är ljudet. Men samtidigt ökar nätverksbelastningen och sannolikheten för ljudavbrott ökar också. - + Enable small network buffers check box - + Aktivera kryssrutan för små nätverksbuffertar - + Sound Card Buffer Delay - + Ljudkortets buffertfördröjning - + The buffer delay setting is a fundamental setting of this software. This setting has an influence on many connection properties. - + Inställningen för buffertfördröjning är en grundläggande inställning för denna applikation. Denna inställning påverkar många anslutningsegenskaper. - + Three buffer sizes are supported - + Tre buffertstorlekar stöds - + 64 samples: The preferred setting. Provides the lowest latency but does not work with all sound cards. - + 64 bitars buffert: Den rekommenderade inställningen. Den ger den lägsta latensen men fungerar inte med alla ljudkort. - + 128 samples: Should work for most available sound cards. - + 128 bitars buffert: Bör fungera för alla ljudkort. - + 256 samples: Should only be used on very slow computers or with a slow internet connection. - + 265 bitars buffert: Ska endast användas med långsamma datorer eller med långsam internetkoppling. - + Some sound card drivers do not allow the buffer delay to be changed from within the application. In this case the buffer delay setting is disabled and has to be changed using the sound card driver. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. - + Vissa ljudkortdrivrutiner tillåter inte buffertfördröjningen att ändras från applikationen. I detta fall avbryts inställningen för buffertfördröjning och måste ändras med ljudkortsdrivrutinen. I Windows trycker du på ASIO-inställningsknappen för att öppna drivrutinsinställningspanelen. I Linux använder du Jack-konfigurationsverktyget för att ändra buffertstorleken. - + If no buffer size is selected and all settings are disabled, an unsupported buffer size is used by the driver. The application will still work with this setting but with restricted performance. - + Om ingen buffertstorlek är vald och alla inställningar är inaktiverade, används en icke-stödd buffertstorlek av drivrutinen. Applikationen fungerar fortfarande med den här inställningen men med begränsad prestanda. - + The actual buffer delay has influence on the connection status, the current upload rate and the overall delay. The lower the buffer size, the higher the probability of a red light in the status indicator (drop outs) and the higher the upload rate and the lower the overall delay. - + Den faktiska buffertfördröjningen har påverkan på anslutningsstatusen, den aktuella uppladdningshastigheten och den totala förseningen. Ju lägre buffertstorlek, desto högre är sannolikheten för rött ljus i statusindikatorn (drop outs) och desto högre uppladdningshastighet och desto lägre blir den totala fördröjningen. - + The buffer setting is therefore a trade-off between audio quality and overall delay. - + Buffertinställningen är därför en avvägning mellan ljudkvalitet och total fördröjning. - + If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. - + Om buffertfördröjningsinställningarna är inaktiverade är det ljuddrivrutinen som begränsar och det är inte möjligt att ändra denna inställning från applikationen. I Microsoft Windows trycker du på ASIO-inställningsknappen för att öppna drivrutinsinställningspanelen. I Linux använder du Jack-konfigurationsverktyget för att ändra buffertstorleken. - + 64 samples setting radio button - + 64 bitars buffertknapp - + 128 samples setting radio button - + 128 bitars buffertknapp - + 256 samples setting radio button - + 256 bitars buffertknapp - + ASIO setup push button - + ASIO-inställningsknapp - + Skin - + Skal - + Select the skin to be used for the main window. - + Välj skal som ska användas för huvudfönstret. - + Skin combo box - + Kombineringsknapp för skal - + Display Channel Levels - + Visa kanalnivåer - + If enabled, each client channel will display a pre-fader level bar. - + Om detta är aktiverat kommer varje klientkanal att visa ett nivåfält före varje fader. - + Display channel levels check box - + Visa kryssrutan för visa kanalnivåer - + Audio Channels - + Ljudkanaler - + Selects the number of audio channels to be used for communication between client and server. There are three modes available: - + Väljer antalet ljudkanaler som ska användas för kommunikation mellan klient och server. Det finns tre lägen tillgängliga: - - + + Mono - + Mono - + and - + och - - - + + + Stereo - + Sterio - + These modes use one and two audio channels respectively. - + Dessa lägen använder respektive en och två ljudkanaler. - + Mono in/Stereo-out - + Mono in/Stereo-ut - + The audio signal sent to the server is mono but the return signal is stereo. This is useful if the sound card has the instrument on one input channel and the microphone on the other. In that case the two input signals can be mixed to one mono channel but the server mix is heard in stereo. - + Ljudsignalen som skickas till servern är mono men retursignalen är stereo. Detta är användbart om ljudkortet har instrumentet på en ingångskanal och mikrofonen på den andra. I så fall kan de två insignalerna blandas till en monokanal men servermixen hörs i stereo. - + Enabling - + Möjliggör - + mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. - + kommer att öka dataströmmen. Se till att din uppladdningshastighet inte överstiger den tillgängliga uppladdningshastigheten för din internetanslutning. - + In stereo streaming mode, no audio channel selection for the reverb effect will be available on the main window since the effect is applied to both channels in this case. - + I stereo-strömningsläge kommer inget val av ljudkanal för reverb-effekten att finnas tillgängligt i huvudfönstret eftersom effekten tillämpas på båda kanalerna i detta fall. - + Audio channels combo box - + Kombineringsknapp för ljudkanalerna - + Audio Quality - + Ljudkvalitet - + The higher the audio quality, the higher your audio stream's data rate. Make sure your upload rate does not exceed the available bandwidth of your internet connection. - + Ju högre ljudkvalitet, desto högre datahastighet krävs. Se till att din uppladdningshastighet inte överstiger den tillgängliga bandbredden för din internetanslutning. - + Audio quality combo box - + Kombineringsknapp för ljudkvalitet - + New Client Level - + Ny klientnivå - + This setting defines the fader level of a newly connected client in percent. If a new client connects to the current server, they will get the specified initial fader level if no other fader level from a previous connection of that client was already stored. - + Denna inställning definierar fadernivån för en nyansluten klient i procent. Om en ny klient ansluter till den aktuella servern, kommer de att få den angivna initiala fader-nivån om ingen annan fader-nivå från en tidigare anslutning av den klienten redan lagrats. - + New client level edit box - + Redigeringsruta för en ny klient - + Custom Central Server Address - + Anpassad central serveradress - + Leave this blank unless you need to enter the address of a central server other than the default. - + Lämna detta tomt om du inte behöver ange adressen till en annan central server än standard. - + Central server address line edit - + Ändra central serveradress - + Current Connection Status Parameter - + Parameter för aktuell anslutningsstatus - + The Ping Time is the time required for the audio stream to travel from the client to the server and back again. This delay is introduced by the network and should be about 20-30 ms. If this delay is higher than about 50 ms, your distance to the server is too large or your internet connection is not sufficient. - + Ping-tiden är den tid som krävs för ljudströmmen att resa från klienten till servern och tillbaka igen. Denna fördröjning införs av nätverket och bör vara cirka 20-30 ms. Om denna fördröjning är högre än cirka 50 ms är ditt avstånd till servern för stort eller din internetanslutning är inte tillräcklig. - + Overall Delay is calculated from the current Ping Time and the delay introduced by the current buffer settings. - + Övergripande fördröjning beräknas utifrån den aktuella Ping-tiden och den fördröjning som införts av de aktuella buffertinställningarna. - + Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net). - + Uppströmsfrekvensen för ljudet beror på den aktuella ljudpaketstorleken och komprimeringsinställningen. Se till att uppströmshastigheten inte är högre än din tillgängliga internetuppladdningshastighet (kolla detta med en tjänst som exempelvis speedtest.net). - + If this LED indicator turns red, you will not have much fun using the - + Om den här LED-indikatorn blir röd kommer du inte ha så kul med att använda - + software. - + applikationen. - + ASIO Setup - + Inställningar för ASIO - + Mono-in/Stereo-out - + Mono-in/Stereo-ut - + Low - + Låg - - + + Normal - + Normal - + High - + Hög - + Fancy - + Fancy - + Compact - + Kompakt - + preferred - + föredraget - - + + Size: - + Storlek: - + Buffer Delay - + Buffertfördröjning - + Buffer Delay: - + Buffertfördröjning: - + The selected audio device could not be used because of the following error: - + Den valda ljudenheten kunde inte användas på grund av följande fel: - + The previous driver will be selected. - + Den föregående drivrutinen kommer att väljas. - + Ok - + Okej - + Custom - + Eget - + All Genres - + Alla genrer - + Genre Rock - + Genre Rock - + Genre Jazz - + Genre Jazz - + Genre Classical/Folk/Choir - + Genre Klassiskt/Folkmusik/Kör - + Default - + Standard @@ -1359,162 +1296,157 @@ Settings - + Inställningar Soundcard - + Ljudkort Device - + Enhet Input Channel Mapping - + Kanalval för ingång L - + V R - + Output Channel Mapping - + Kanalval för utgång Enable Small Network Buffers - + Aktivera små nätverksbuffertar Buffer Delay - + Buffertfördröjning (preferred) - + (förvald) (default) - + (standard) (safe) - + (säker) Driver Setup - + Drivrutinsinställningar Jitter Buffer - + Jitterbuffert Auto - + Automatiskt Local - + Lokalt Server - + Server Size - + Storlek Misc - + Blandat Audio Channels - + Ljudkanaler Audio Quality - + Ljudkvalitet New Client Level - + Ny klientnivå Skin - + Skal - - Language - - - - + % - + % - + Display Channel Levels - + Visa kanalnivåer - + Custom Central Server Address: - + Anpassad central serveradress: - + Audio Stream Rate - + Ljudströmshastighet - - - + + + val - + val - + Ping Time - + Pingtid - + Overall Delay - + Total fördröjning @@ -1522,87 +1454,87 @@ Server List - + Serverlista The Connection Setup window shows a list of available servers. Server operators can optionally list their servers by music genre. Use the List dropdown to select a genre, click on the server you want to join and press the Connect button to connect to it. Alternatively, double click on on the server name. Permanent servers (those that have been listed for longer than 48 hours) are shown in bold. - + Inställningsfönstret visar en lista över tillgängliga servrar. Serveroperatörer kan valfritt lista sina servrar efter musikgenre. Använd rullgardinsmenyn Lista för att välja en genre, klicka på servern du vill gå med i och tryck på Anslutsknappen för att ansluta till den. Alternativt kan du dubbelklicka på servernamnet. Permanenta servrar (de som har listats längre än 48 timmar) visas med fet stil. Server list view - + Serverlista Server Address - + Serveradress If you know the IP address or URL of a server, you can connect to it using the Server name/Address field. An optional port number can be added after the IP address or URL using a colon as a separator, e.g, example.org: - + Om du känner till en servers IP-adress eller URL kan du ansluta till den i fältet Servernamn/adress. Ett valfritt portnummer kan läggas till efter IP-adressen eller URL:en med ett kolon som separator, t.ex. exempel.org: . The field will also show a list of the most recently used server addresses. - + . Fältet visar också en lista över de senast använda serveradresserna. Server address edit box - + Serveradressens redigeringsruta Holds the current server IP address or URL. It also stores old URLs in the combo box list. - + Visar den aktuella serverns IP-adress eller URL. Det lagrar också gamla URL:er i listan med kombinationsrutor. Server List Selection - + Val av server Selects the server list to be shown. - + Väljer server som ska visas. Server list selection combo box - + Kombobox för val av serverlista Filter - + Filter The server list is filtered by the given text. Note that the filter is case insensitive. - + Serverlistan filtreras av den givna texten. Observera att filtret är känsligt för stora och små bokstäver. Filter edit box - + Redigeringsrutan för filtrering Show All Musicians - + Visa alla musiker If you check this check box, the musicians of all servers are shown. If you uncheck the check box, all list view items are collapsed. - + Om du markerar den här kryssrutan visas musikerna på alla servrar. Om du avmarkerar kryssrutan minimeras alla listvyer. Show all musicians check box - + Klickruta för att visa alla musiker @@ -1610,910 +1542,791 @@ Connection Setup - + Anslutningsinställning List - + Lista Filter - + Filter Show All Musicians - + Visa alla musiker Server Name - + Servernamn Ping Time - + Pingtid Musicians - + Musiker Location - + Plats Server Name/Address - + Servernamn/adress C&ancel - + Av&bryt &Connect - + &Anslut CHelpMenu - + &Help - + &Hjälp - - + + Getting &Started... - + Komma &igång ... - + Software &Manual... - + &Manual... - + What's &This - + &Var är detta - + &About... - - - - - CLanguageComboBox - - - Restart Required - - - - - Please restart the application for the language change to take effect. - + &Om... CLicenceDlg - + I &agree to the above licence terms - + Jag &accepterar ovanstående licensvillkor - + Accept - + Acceptera - + Decline - + Neka - + By connecting to this server and agreeing to this notice, you agree to the following: - + Genom att ansluta till denna server och godkänna detta meddelande, samtycker du till följande: - + 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 - + Du accepterar att all data, ljud eller andra verk som överförs till denna server ägs och skapas av dig eller dina licensgivare, och att du gör dessa data, ljud eller andra verk tillgängliga via följande Creative Commons-licens (för mer information om detta licens, se - + You are free to: - + Du är fri att: - + Share - + Dela - + copy and redistribute the material in any medium or format - + kopiera och omfördela materialet i vilket medium eller format som helst - + Adapt - + Anpssa - + remix, transform, and build upon the material - + remixa, transformera och bygga vidare på materialet - + The licensor cannot revoke these freedoms as long as you follow the license terms. - + Licensgivaren kan inte återkalla dessa friheter så länge du följer licensvillkoren. - + Under the following terms: - + Under följande villkor: - + Attribution - + Erkännande - + 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. - + Du måste ge lämplig kredit, ange en länk till licensen och ange om ändringar gjordes. Du kan göra det på något rimligt sätt, men inte på något sätt som antyder att licensgivaren godkänner dig eller din användning. - + NonCommercial - + Icke-kommersiell - + You may not use the material for commercial purposes. - + Du får inte använda materialet för kommersiella ändamål. - + ShareAlike - + Dela lika - + If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. - + Om du remixar, omvandlar eller bygger på materialet måste du distribuera dina bidrag under samma licens som originalet. - + No additional restrictions - + Inga ytterligare begränsningar - + You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. - + Du får inte tillämpa juridiska villkor eller tekniska åtgärder som lagligen begränsar andra från att göra något som licensen tillåter. CMusProfDlg - + No Name - + Inget namn - - + + Musician Profile - + Musikprofil - + Alias/Name - + Alias/Namn - + Instrument - + Instrument - + Country - + Land - + City - + Stad - + Skill - + Färdighetsnivå - + &Close - + &Stäng - - - + + + None - + Ingen - + Beginner - + Nybörjare - + Intermediate - + Mellannivå - + Expert - + Expert - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. - + Skriv ditt namn eller ett alias här så att de andra musikerna du vill spela med vet vem du är. Du kan också lägga till en bild av instrumentet du spelar och en flagga för det land du befinner dig i. Din stad och din färdighetsnivå som spelar ditt instrument kan också läggas till. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. - + Alias or name edit box - + Redigeringsruta för alias eller namn - + Instrument picture button - + Knapp för instrumentbild - + Country flag button - + Knapp för landsflagga - + City edit box - + Redigeringsruta för stad - + Skill level combo box - + kombinationsruta för färdighetsnivå - + Drum Set - + Trumset - + Djembe - + Djembe - + Electric Guitar - + Elgitarr - + Acoustic Guitar - + Akustisk gitarr - + Bass Guitar - + Basgitarr - + Keyboard - + Klaviatur - + Synthesizer - + Synthesizer - + Grand Piano - + Flygel - + Accordion - + Dragspel - + Vocal - + Sång - + Microphone - + Mikrofon - + Harmonica - + Munspel - + Trumpet - + Trumpet - + Trombone - + Trombon - + French Horn - + Valthorn - + Tuba - + Tuba - + Saxophone - + Saxofon - + Clarinet - + Klarinett - + Flute - + Flöjt - + Violin - + Fiol - + Cello - + Cello - + Double Bass - + Kontrabas - + Recorder - + Inspelningsapparat - + Streamer - + Streamer - + Listener - + Lyssnare - + Guitar+Vocal - + Gitarr+sång - + Keyboard+Vocal - + Bodhran - + Klaviatur+Sång - + Bassoon - + Fagott - + Oboe - + Oboe - + Harp - + Harpa - + Viola - + Altfiol - + Congas - + Congas - + Bongo - + Bongo - + Vocal Bass - + Sång (bas) - + Vocal Tenor - + Sång (tenor) - + Vocal Alto - + Sång (alt) - + Vocal Soprano - + Sång (sopran) - + Banjo - + Banjo - + Mandolin - + Mandolin - + Ukulele - + Bass Ukulele - + Ukulele CServerDlg - + Client List - + Klientlista - + The client list shows all clients which are currently connected to this server. Some information about the clients like the IP address and name are given for each connected client. - + Klientlistan visar alla klienter som för närvarande är anslutna till den här servern. Viss information om klienterna som IP-adressen och namnet ges för varje ansluten klient. - + Connected clients list view - + Lista över anslutna klienter - + Start Minimized on Operating System Start - + Start Minimerad vid operativsystemets start - + If the start minimized on operating system start check box is checked, the server will be started when the operating system starts up and is automatically minimized to a system task bar icon. - + Om kryssrutan Starta minimerad på operativsystemets start är markerad kommer servern att startas när operativsystemet startar och minimeras automatiskt till en ikon för systemaktivitetsfält. - + Show Creative Commons Licence Dialog - + Visa Creative Commons licensedialog - + If enabled, a Creative Commons BY-NC-SA 4.0 Licence dialog is shown each time a new user connects the server. - + Om den är aktiverad visas en Creative Commons BY-NC-SA 4.0 licensdialog varje gång en ny användare ansluter till servern. - + Make My Server Public - + Gör min server publik - + If the Make My Server Public check box is checked, this server registers itself at the central server so that all users of the application can see the server in the connect dialog server list and connect to it. The registration of the server is renewed periodically to make sure that all servers in the connect dialog server list are actually available. - + Om kryssrutan Gör min server publik är markerad, registrerar den här servern sig själv på den centrala servern så att alla användare av applikationen kan se servern i anslutningsdialogens serverlista och ansluta till den. Registreringen av servern förnyas regelbundet för att se till att alla servrar i listan för anslutningsdialogserver är tillgängliga. - + Register Server Status - + Serverstatus om registrerad - + If the Make My Server Public check box is checked, this will show whether registration with the central server is successful. If the registration failed, please choose another server list. - + Om kryssrutan Gör min server publik är markerad kommer detta att visa om registrering med den centrala servern är gjord. Om registreringen misslyckades, välj en annan serverlista. - + Custom Central Server Address - + Anpassad central serveradress - + The custom central server address is the IP address or URL of the central server at which the server list of the connection dialog is managed. - + Den anpassade centrala serveradressen är IP-adressen eller URL:en för den centrala servern där serverlistan hanteras. - + Central server address line edit - + Ändra anpassad central serveradress - + Server List Selection - + Val av serverlista - + Selects the server list (i.e. central server address) in which your server will be added. - + Väljer serverlistan (dvs. central serveradress) där servern ska läggas till. - + Server list selection combo box - + Kombineringsknapp för val av serverlista - + Server Name - + Servernamn - + The server name identifies your server in the connect dialog server list at the clients. - + Servernamnet identifierar din server i anslutningsdialogens serverlista hos klienterna. - + Server name line edit - + Ändra servernamnet - + Location City - + Stad - + The city in which this server is located can be set here. If a city name is entered, it will be shown in the connect dialog server list at the clients. - + Här kan man visa serverns plats. Om en stad anges kommer det att visas i listan för anslutningsdialogserver på klienterna. - + City where the server is located line edit - + Ändra var servern befinner sig - + Location country - + Land - + The country in which this server is located can be set here. If a country is entered, it will be shown in the connect dialog server list at the clients. - + Landet där servern ligger kan skrivas in här. Om ett land anges kommer det att visas i listan för anslutningsdialogserver på klienterna. - + Country where the server is located combo box - - - - - Display dialog to select recording directory button - - - - - - Main Recording Directory - - - - - Click the button to open the dialog that allows the main recording directory to be selected.The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). - - - - - Main recording directory text box (read-only) - - - - - The current value of the main recording directory. The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). Click the button to open the dialog that allows the main recording directory to be selected. - - - - - Clear the recording directory button - - - - - Clear Recording Directory - - - - - Click the button to clear the currently selected recording directory. This will prevent recording until a new value is selected. - + Kombineringsknapp för val av serverplacering - + Checkbox to turn on or off server recording - + Knapp för att slå på eller av serverinspelning - + Enable Recorder - + Starta serverinspelning - + Checked when the recorder is enabled, otherwise unchecked. The recorder will run when a session is in progress, if (set up correctly and) enabled. - + Markerad när inspelaren är aktiverad, annars avmarkerad. Inspelaren kommer att köras när en session pågår, om (inställt korrekt och) aktiverat. - + Current session directory text box (read-only) - + Nuvarande inspelningskatalogtext (skrivskyddad) - + Current Session Directory - + Aktuell inspelningskatalog - + Enabled during recording and holds the current recording session directory. Disabled after recording or when the recorder is not enabled. - + Aktiverad under inspelning och har den aktuella inspelningskatalogen. Inaktiverad efter inspelning eller när inspelaren inte är aktiverad. - + Recorder status label - + Inspelningsstatusetikett - + Recorder Status - - - - - Displays the current status of the recorder. The following values are possible: - - - - - No recording directory has been set or the value is not useable - - - - - Recording has been switched off - - - - - by the UI checkbox - + Inspelningsstatus - - , either by the UI checkbox or SIGUSR2 being received - + + Displays the current status of the recorder. + Visar inspelarens aktuella status. - - There is no one connected to the server to record - - - - - The performers are being recorded to the specified session directory - - - - - NOTE - - - - - If the recording directory is not useable, the problem will be displayed in place of the directory. - - - - - ERROR - - - - + Request new recording button - + Begär ny inspelningsknapp - + New Recording - + Ny inspelning - + During a recording session, the button can be used to start a new recording. - + Under en inspelningssession kan knappen användas för att starta en ny inspelning. - - + + E&xit - + A&vbryt - + &Hide - + &Göm - - - + + + server - + server - + &Open - + &Öppna - + server - + server - + Server - + Server - + &Window - + &Fönster - - Select Main Recording Directory - + + Predefined Address + Förvald adress - - Predefined Address - + + Recording + Inspelning + + + + Not recording + Inspelning inte aktiv + + + + Not enabled + Inte aktiv - + Unregistered - + Oregistrerad - + Bad address - + Felaktig adress - + Registration requested - + Registreringsförfrågan skickad - + Registration failed - + Registrering misslyckades - + Check server version - + Kontrollera serverversionen - + Registered - + Regisrterad - + Central Server full - - - - - Your server version is too old - - - - - Requirements not fulfilled - + Centrala servern är full - + Unknown value - - - - - Not initialised - - - - - Not enabled - - - - - Not recording - - - - - Recording - + Okänt värde @@ -2521,89 +2334,84 @@ Client IP:Port - + Klient IP:Port Name - + Namn Jitter Buffer Size - + Jitter bufferstorlek Start Minimized on Windows Start - + Starta minimerad när Micosoft Windows startas Show Creative Commons BY-NC-SA 4.0 Licence Dialog - + Visa Creative Commons BY-NC-SA 4.0 licensdialog Make My Server Public (Register My Server in the Server List) - + Gör min server publik (registrera min server i serverlistan) Genre - + Genre - + STATUS - + STATUS Custom Central Server Address: - + Anpassad central serveradress: My Server Info - + Min serverinformation Location: City - + Plats: Stad Location: Country - + Plats: Land - Recording Directory - + Enable jam recorder + Aktivera inspelning - Enable Jam Recorder - + New recording + Ny inspelning - - New Recording - - - - - Language - + + Recordings folder + Inspelningsfolder - + TextLabelNameVersion - + TextLabelNameVersion @@ -2611,124 +2419,124 @@ Error closing stream: $s - + Fel vid stängning av ström: $s The Jack server is not running. This software requires a Jack server to run. Normally if the Jack server is not running this software will automatically start the Jack server. It seems that this auto start has not worked. Try to start the Jack server manually. - + Jack-servern körs inte. Denna programvara kräver att en Jack-server körs. Normalt om Jack-servern inte kör startar programvaran automatiskt Jack-servern. Det verkar som om denna automatiska start inte har fungerat. Försök starta Jack-servern manuellt. The Jack server sample rate is different from the required one. The required sample rate is: - + Jackservers samplingsfrekvens skiljer sig från den önskade. Den nödvändiga bithastigheten är: You can use a tool like <i><a href=http://qjackctl.sourceforge.net>QJackCtl</a></i> to adjust the Jack server sample rate. - + Du kan använda ett verktyg som <i><a href=http://qjackctl.sourceforge.net>QJackCtl</a></i> to adjust the Jack server sample rate. Make sure to set the Frames/Period to a low value like - + Se till att ställa in ramarna/perioden till ett så lågt värde som to achieve a low delay. - + för att uppnå en låg fördröjning. The Jack port registering failed. - + Registreringen av Jack-porten misslyckades. Cannot activate the Jack client. - + Kan inte aktivera Jack-klienten. The Jack server was shut down. This software requires a Jack server to run. Try to restart the software to solve the issue. - + Jack-servern stängdes av. Denna programvara kräver att en Jack-server körs. Försök starta om programvaran för att lösa problemet. CoreAudio input AudioHardwareGetProperty call failed. It seems that no sound card is available in the system. - + CoreAudio-ingång AudioHardwareGetProperty misslyckades. Det verkar som om det inte finns något ljudkort i systemet. CoreAudio output AudioHardwareGetProperty call failed. It seems that no sound card is available in the system. - + CoreAudio-utgång AudioHardwareGetProperty misslyckades. Det verkar som om det inte finns något ljudkort i systemet. Current system audio input device sample rate of %1 Hz is not supported. Please open the Audio-MIDI-Setup in Applications->Utilities and try to set a sample rate of %2 Hz. - + Nuvarande systemljudingångsenhetens samplingsfrekvens för %1 Hz stöds inte. Öppna Audio-MIDI-installationen i Applications->Utilities och försök att ställa in en samplingsfrekvens på %2 Hz. Current system audio output device sample rate of %1 Hz is not supported. Please open the Audio-MIDI-Setup in Applications->Utilities and try to set a sample rate of %2 Hz. - + Nuvarande systemljudutgångsenhetens samplingsfrekvens för %1 Hz stöds inte. Öppna Audio-MIDI-installationen i Applications->Utilities och försök att ställa in en samplingshastighet på %2 Hz. The audio input stream format for this audio device is not compatible with this software. - + Ljudingångsströmformatet för denna ljudenhet är inte kompatibelt med den här programvaran. The audio output stream format for this audio device is not compatible with this software. - + Ljudutmatningsströmformatet för denna ljudenhet är inte kompatibelt med den här programvaran. The buffer sizes of the current input and output audio device cannot be set to a common value. Please choose other input/output audio devices in your system settings. - + Buffertstorlekarna för den aktuella ingångs- och utgångsljudenheten kan inte ställas in på ett gemensamt värde. Välj andra input/output-ljudenheter i systeminställningarna. The audio driver could not be initialized. - + Ljuddrivrutinen kunde inte initialiseras. The audio device does not support the required sample rate. The required sample rate is: - + Ljudenheten stöder inte den valda samplingsfrekvensen. Den valda provhastigheten är: The audio device does not support setting the required sampling rate. This error can happen if you have an audio interface like the Roland UA-25EX where you set the sample rate with a hardware switch on the audio device. If this is the case, please change the sample rate to - + Ljudenheten stöder inte inställning av önskad samplingsfrekvens. Det här felet kan hända om du har ett ljudgränssnitt som Roland UA-25EX där du ställer in samtalstakten med en hårdvaruskontakt på ljudenheten. Om detta är fallet, ändra provhastigheten till Hz on the device and restart the - + Hz på enheten och starta om software. - + applikationen. The audio device does not support the required number of channels. The required number of channels for input and output is: - + Ljudenheten stöder inte det valda antalet kanaler. Det valda antalet kanaler för in- och utmatning är: Required audio sample format not available. - + Nödvändigt ljudformat är inte tillgängligt. No ASIO audio device (driver) found. - + Ingen ASIO-ljudenhet (drivrutin) hittades. @@ -2738,7 +2546,7 @@ software requires the low latency audio interface ASIO to work properly. This is not a standard Windows audio interface and therefore a special audio driver is required. Either your sound card has a native ASIO driver (which is recommended) or you might want to use alternative drivers like the ASIO4All driver. - + programvara kräver det låga latentljudgränssnittet ASIO för att fungera korrekt. Detta är inte ett vanligt Windows ljudgränssnitt och därför krävs en speciell ljuddrivrutin. Antingen har ditt ljudkort en inbyggd ASIO-drivrutin (som rekommenderas) eller så kanske du vill använda alternativa drivrutiner som ASIO4All-drivrutinen. @@ -2746,73 +2554,73 @@ Invalid device selection. - + Ogiltigt enhetsval. The audio driver properties have changed to a state which is incompatible with this software. The selected audio device could not be used because of the following error: - + Ljuddrivrutinens egenskaper har ändrats till ett tillstånd som inte är kompatibelt med den här programvaran. Den valda ljudenheten kunde inte användas på grund av följande fel: Please restart the software. - + Starta om programvaran. Close - + Stäng No usable - + Ingen användbar audio device (driver) found. - + ljudenhet (drivrutin) hittades. In the following there is a list of all available drivers with the associated error message: - + I det följande finns en lista över alla tillgängliga drivrutiner med tillhörande felmeddelande: Do you want to open the ASIO driver setups? - + Vill du öppna ASIO-drivrutinens inställningar? could not be started because of audio interface issues. - + kunde inte startas på grund av problem med ljudgränssnittet. QCoreApplication - + , Version - + , Version - + Internet Jam Session Software - + Internet Jam Session Applikation - + Released under the GNU General Public License (GPL) - + Släppt under GNU General Public License (GPL) global - + For more information use the What's This help (help menu, right mouse button or Shift+F1) - + För mer information använd hjälpen (hjälpmeny, höger musknapp eller Shift + F1) From e4b683c4df60c5faabab2adf4c53c9340341cc4d Mon Sep 17 00:00:00 2001 From: genesisproject2020 <7592139+genesisproject2020@users.noreply.github.com> Date: Wed, 8 Jul 2020 23:52:04 +0200 Subject: [PATCH 353/936] Update translation_sv_SE.ts Update --- src/res/translation/translation_sv_SE.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/res/translation/translation_sv_SE.ts b/src/res/translation/translation_sv_SE.ts index 0acbb358b8..d2cacce2c7 100644 --- a/src/res/translation/translation_sv_SE.ts +++ b/src/res/translation/translation_sv_SE.ts @@ -36,7 +36,7 @@ Country flag icons by Mark James - Landsflaggsymboler av Mark James + Landsflaggsymboler gjorda av Mark James From 1dff704163f804f6445712caadf85416b341cce5 Mon Sep 17 00:00:00 2001 From: Melcon Moraes Date: Thu, 9 Jul 2020 00:11:25 -0300 Subject: [PATCH 354/936] Update translation_pt_BR.ts --- src/res/translation/translation_pt_BR.ts | 89 ++++++++++++------------ 1 file changed, 45 insertions(+), 44 deletions(-) diff --git a/src/res/translation/translation_pt_BR.ts b/src/res/translation/translation_pt_BR.ts index 2e820f1579..afa85900a1 100644 --- a/src/res/translation/translation_pt_BR.ts +++ b/src/res/translation/translation_pt_BR.ts @@ -113,7 +113,7 @@ Polish - + Polonês @@ -329,7 +329,7 @@ Grp - + Grp @@ -339,7 +339,7 @@ No grouping - + Sem grupo @@ -347,7 +347,7 @@ Assign to group - + Atribuir ao grupo @@ -372,17 +372,17 @@ Group - + Grupo With the Grp checkbox, a group of audio channels can be defined. All channel faders in a group are moved in proportional synchronization if any one of the group faders are moved. - + Com a caixa de seleção Grp, um grupo de canais de áudio pode ser definido. Todos os faders de canal de um grupo são movidos em sincronização proporcional se algum dos faders do grupo for movido. Group button - + Botão Grupo @@ -422,7 +422,7 @@ GRP - + GRP @@ -437,7 +437,7 @@ G - + G @@ -538,17 +538,18 @@ Type a message here - + Digite uma mensagem aqui &Edit - &Editar + &Editar Cl&ear Chat History - + Didn't include "de Mensagens" in order to keep the menu a bit shorter. + &Limpar Histórico @@ -561,7 +562,7 @@ &Send - + &Enviar Cl&ear @@ -950,7 +951,7 @@ Sort Channel Users by &Group - + Ordenar os Canais por &Grupo @@ -1770,7 +1771,7 @@ Misc - Outras Config. + Outras Config. @@ -1795,7 +1796,7 @@ Language - + Idioma @@ -2043,12 +2044,12 @@ Restart Required - + É necessário reiniciar Please restart the application for the language change to take effect. - + Reinicie a aplicação para que a alteração de idioma entre em vigor. @@ -2648,43 +2649,43 @@ Display dialog to select recording directory button - + Botão que mostra diálogo para selecionar diretório de gravação Main Recording Directory - + Diretório Principal de Gravação Click the button to open the dialog that allows the main recording directory to be selected.The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). - + Clique no botão para abrir a caixa de diálogo que permite selecionar o diretório principal de gravação. O valor escolhido deve existir e ser gravável(permite a criação de subdiretórios pelo usuário que está executando Jamulus). Main recording directory text box (read-only) - + Caixa de texto com o diretório principal de gravação (apenas leitura) The current value of the main recording directory. The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). Click the button to open the dialog that allows the main recording directory to be selected. - + Valor atual do diretório principal de gravação. O valor escolhido deve existir e ser gravável (permite criação de subdiretórios pelo usuário que está executando Jamulus). Clique no botão para abrir a caixa de diálogo que permite selecionar o diretório principal de gravação. Clear the recording directory button - + Botão para limpar o diretório de gravação Clear Recording Directory - + Limpar Diretório de Gravação Click the button to clear the currently selected recording directory. This will prevent recording until a new value is selected. - + Clique no botão para limpar o atual diretório de gravação. Isso impedirá a gravação até que um novo valor seja selecionado. @@ -2729,52 +2730,52 @@ Displays the current status of the recorder. The following values are possible: - + Exibe o estado atual do gravador. Os seguintes valores são possíveis: No recording directory has been set or the value is not useable - + Nenhum diretório de gravação definido ou o valor não é utilizável Recording has been switched off - + Gravação foi desligada by the UI checkbox - + pela caixa de ativação da IU , either by the UI checkbox or SIGUSR2 being received - + , pela caixa de ativação da IU ou SIGUSR2 foi recebido There is no one connected to the server to record - + Não há ninguém conectado ao servidor para gravar The performers are being recorded to the specified session directory - + Os artistas estão sendo gravados no diretório de sessão especificado NOTE - + NOTA If the recording directory is not useable, the problem will be displayed in place of the directory. - + Se o diretório de gravação não é utilizável, o problema será exibido no lugar do diretório. ERROR - + ERRO Displays the current status of the recorder. @@ -2826,7 +2827,7 @@ Select Main Recording Directory - + Selecione Diretório Principal de Gravação @@ -2846,7 +2847,7 @@ Not initialised - + Não inicializado @@ -2913,12 +2914,12 @@ Your server version is too old - + A versão do seu servidor está muito desatualizada Requirements not fulfilled - + Requisitos não atendidos @@ -2978,22 +2979,22 @@ Recording Directory - + Diretório de Gravação Enable Jam Recorder - + Ativar Gravação da Jam New Recording - Nova Gravação + Nova Gravação Language - + Idioma Central Server Address: From d0f4b9b6a089a177d2febe8821dea1ad60a0e438 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 9 Jul 2020 16:13:40 +0200 Subject: [PATCH 355/936] introduce a tab widget for the server GUI (as proposed in #367) --- src/serverdlgbase.ui | 408 +++++++++++++++++++++++-------------------- 1 file changed, 216 insertions(+), 192 deletions(-) diff --git a/src/serverdlgbase.ui b/src/serverdlgbase.ui index 6f3789f3fd..09c45c50c4 100755 --- a/src/serverdlgbase.ui +++ b/src/serverdlgbase.ui @@ -7,7 +7,7 @@ 0 0 588 - 447 + 435 @@ -47,195 +47,218 @@ - - - Start Minimized on Windows Start + + + + 0 + 0 + - - - - - - Show Creative Commons BY-NC-SA 4.0 Licence Dialog - - - - - - - - - Make My Server Public (Register My Server in the Server List) - - - - - - - - - - - Genre - - - - - - - - - - STATUS - - - - - - - Qt::Horizontal - - - QSizePolicy::Expanding - - - - 20 - 20 - - - - - - - - - - - - Custom Central Server Address: - - - - - - - - - - - - My Server Info + + 0 - - - - - - - Name - - - - - - - Location: City - - - - - - - Location: Country - - - - - - - - - - - - - - - - - - - + + + Server Setup + + + + + + Make My Server Public (Register My Server in the Server List) + + + + + + + + + Genre + + + + + + + + + + STATUS + + + + + + + Qt::Horizontal + + + QSizePolicy::Expanding + + + + 20 + 20 + + + + + + + + + + My Server Info + + + + + + + + Name + + + + + + + Location: City + + + + + + + Location: Country + + + + + + + + + + + + + + + + + + + + + + + + + + + Enable Jam Recorder + + + + + + + true + + + + + + + STATUS + + + + + + + New Recording + + + + + + + + + + Options + + + + + + + + Language + + + + + + + + + + + + + + Recording Directory + + + + + + + true + + + + + + + + + + + + + + Custom Central Server Address: + + + + + + + + + + + + Start Minimized on Windows Start + + + + + + + Show Creative Commons BY-NC-SA 4.0 Licence Dialog + + + + + - - - - - - Recording Directory - - - - - - - true - - - - - - - - - - - - - - Enable Jam Recorder - - - - - - - true - - - - - - - STATUS - - - - - - - New Recording - - - - - - - - - - - Language - - - - - - - - @@ -247,21 +270,22 @@ lvwClients - chbStartOnOSStart - chbUseCCLicence + tabWidget chbRegisterServer cbxCentServAddrType - edtCentralServerAddress edtServerName edtLocationCity cbxLocationCountry - pbtRecordingDir - edtRecordingDir - tbtClearRecordingDir chbEnableRecorder edtCurrentSessionDir pbtNewRecording cbxLanguage + pbtRecordingDir + edtRecordingDir + tbtClearRecordingDir + edtCentralServerAddress + chbStartOnOSStart + chbUseCCLicence From 8cd4f5b3e8541009e5d67ceb4f014b68f3b574cd Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 9 Jul 2020 18:19:33 +0200 Subject: [PATCH 356/936] move vecWindowPosMain in the settings base class --- src/settings.h | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/src/settings.h b/src/settings.h index 4884c5f95c..0c1d91222e 100755 --- a/src/settings.h +++ b/src/settings.h @@ -40,14 +40,16 @@ class CSettings { public: CSettings() : - strLanguage ( "" ), - strFileName ( "" ) {} + vecWindowPosMain ( ), // empty array + strLanguage ( "" ), + strFileName ( "" ) {} void Load(); void Save(); // common settings - QString strLanguage; + QByteArray vecWindowPosMain; + QString strLanguage; protected: virtual void ReadFromXML ( const QDomDocument& IniXMLDocument ) = 0; @@ -126,7 +128,6 @@ class CClientSettings : public CSettings vstrIPAddress ( MAX_NUM_SERVER_ADDR_ITEMS, "" ), iNewClientFaderLevel ( 100 ), bConnectDlgShowAllMusicians ( true ), - vecWindowPosMain ( ), // empty array vecWindowPosSettings ( ), // empty array vecWindowPosChat ( ), // empty array vecWindowPosProfile ( ), // empty array @@ -150,7 +151,6 @@ class CClientSettings : public CSettings bool bConnectDlgShowAllMusicians; // window position/state settings - QByteArray vecWindowPosMain; QByteArray vecWindowPosSettings; QByteArray vecWindowPosChat; QByteArray vecWindowPosProfile; @@ -172,14 +172,10 @@ class CServerSettings : public CSettings { public: CServerSettings ( CServer* pNSerP, const QString& sNFiName ) : - CSettings ( ), - vecWindowPosMain ( ), // empty array - pServer ( pNSerP ) + CSettings ( ), + pServer ( pNSerP ) { SetFileName ( sNFiName, DEFAULT_INI_FILE_NAME_SERVER); } - // window position/state settings - QByteArray vecWindowPosMain; - protected: virtual void ReadFromXML ( const QDomDocument& IniXMLDocument ) override; virtual void WriteToXML ( QDomDocument& IniXMLDocument ) override; From e7daf340631ee6a876823c4b02985d8c85c63b42 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 9 Jul 2020 20:03:09 +0200 Subject: [PATCH 357/936] added a GUI control to set the server Welcome Message in the server GUI --- ChangeLog | 3 +++ src/server.cpp | 20 +++++++++++++++----- src/server.h | 4 ++++ src/serverdlg.cpp | 9 +++++++++ src/serverdlg.h | 1 + src/serverdlgbase.ui | 20 +++++++++++++++++++- 6 files changed, 51 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8aea6349e9..3a85daa931 100644 --- a/ChangeLog +++ b/ChangeLog @@ -19,9 +19,12 @@ - scale channel instrument picture in Compact skin mode +- redesign of the server dialog + - bug fix: grouping faders in the client should be proportional (see discussion in #202, #419) +TODO store welcome message set in the GUI in the ini file TODO improve settings management -> move settings class in client/server classes, move actual settings variables TODO improve interaction between use of inifile and command line parameters (edited) #120 diff --git a/src/server.cpp b/src/server.cpp index 499c57cc5c..af42563fb7 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -404,7 +404,8 @@ CServer::CServer ( const int iNewMaxNumChan, // manage welcome message: if the welcome message is a valid link to a local // file, the content of that file is used as the welcome message (#361) - strWelcomeMessage = strNewWelcomeMessage; // first copy text, may be overwritten + SetWelcomeMessage ( strNewWelcomeMessage ); // first use given text, may be overwritten + if ( QFileInfo ( strNewWelcomeMessage ).exists() ) { QFile file ( strNewWelcomeMessage ); @@ -412,13 +413,10 @@ CServer::CServer ( const int iNewMaxNumChan, if ( file.open ( QIODevice::ReadOnly | QIODevice::Text ) ) { // use entire file content for the welcome message - strWelcomeMessage = file.readAll(); + SetWelcomeMessage ( file.readAll() ); } } - // restrict welcome message to maximum allowed length - strWelcomeMessage = strWelcomeMessage.left ( MAX_LEN_CHAT_TEXT ); - // enable jam recording (if requested) - kicks off the thread (note // that jam recorder needs the frame size which is given to the jam // recorder in the SetRecordingDir() function) @@ -631,6 +629,7 @@ void CServer::OnNewConnection ( int iChID, vecChannels[iChID].CreateReqChanInfoMes(); // send welcome message (if enabled) + MutexWelcomeMessage.lock(); if ( !strWelcomeMessage.isEmpty() ) { // create formatted server welcome message and send it just to @@ -640,6 +639,7 @@ void CServer::OnNewConnection ( int iChID, vecChannels[iChID].CreateChatTextMes ( strWelcomeMessageFormated ); } + MutexWelcomeMessage.unlock(); // send licence request message (if enabled) if ( eLicenceType != LT_NO_LICENCE ) @@ -1554,6 +1554,16 @@ void CServer::SetEnableRecording ( bool bNewEnableRecording ) CreateAndSendRecorderStateForAllConChannels(); } +void CServer::SetWelcomeMessage ( const QString& strNWelcMess ) +{ + // we need a mutex to secure access + QMutexLocker locker ( &MutexWelcomeMessage ); + strWelcomeMessage = strNWelcMess; + + // restrict welcome message to maximum allowed length + strWelcomeMessage = strWelcomeMessage.left ( MAX_LEN_CHAT_TEXT ); +} + void CServer::StartStatusHTMLFileWriting ( const QString& strNewFileName, const QString& strNewServerNameWithPort ) { diff --git a/src/server.h b/src/server.h index 08766acb64..79d20ea6f1 100755 --- a/src/server.h +++ b/src/server.h @@ -254,6 +254,9 @@ class CServer : QLocale::Country GetServerCountry() { return ServerListManager.GetServerCountry(); } + void SetWelcomeMessage ( const QString& strNWelcMess ); + QString GetWelcomeMessage() { return strWelcomeMessage; } + ESvrRegStatus GetSvrRegStatus() { return ServerListManager.GetSvrRegStatus(); } @@ -323,6 +326,7 @@ class CServer : int iMaxNumChannels; CProtocol ConnLessProtocol; QMutex Mutex; + QMutex MutexWelcomeMessage; // audio encoder/decoder OpusCustomMode* Opus64Mode[MAX_NUM_CHANNELS]; diff --git a/src/serverdlg.cpp b/src/serverdlg.cpp index 7936c3335e..05ba19cf3f 100755 --- a/src/serverdlg.cpp +++ b/src/serverdlg.cpp @@ -333,6 +333,12 @@ lvwClients->setMinimumHeight ( 140 ); // language combo box (corrects the setting if language not found) cbxLanguage->Init ( pSettings->strLanguage ); + // setup welcome message GUI control + tedWelcomeMessage->setPlaceholderText ( tr ( + "Type a message here. If no message is set, the server welcome is disabled." ) ); + + tedWelcomeMessage->setText ( pServer->GetWelcomeMessage() ); + // update GUI dependencies UpdateGUIDependencies(); @@ -415,6 +421,9 @@ lvwClients->setMinimumHeight ( 140 ); this, &CServerDlg::OnTimer ); // other + QObject::connect ( tedWelcomeMessage, &QTextEdit::textChanged, + this, &CServerDlg::OnWelcomeMessageChanged ); + QObject::connect ( pServer, &CServer::Started, this, &CServerDlg::OnServerStarted ); diff --git a/src/serverdlg.h b/src/serverdlg.h index 9e40001ed4..f9fcb9800c 100755 --- a/src/serverdlg.h +++ b/src/serverdlg.h @@ -113,6 +113,7 @@ public slots: void OnSysTrayMenuHide() { hide(); } void OnSysTrayMenuExit() { close(); } void OnSysTrayActivated ( QSystemTrayIcon::ActivationReason ActReason ); + void OnWelcomeMessageChanged() { pServer->SetWelcomeMessage ( tedWelcomeMessage->toPlainText() ); } void keyPressEvent ( QKeyEvent *e ) // block escape key { if ( e->key() != Qt::Key_Escape ) QDialog::keyPressEvent ( e ); } diff --git a/src/serverdlgbase.ui b/src/serverdlgbase.ui index 09c45c50c4..98866bddef 100755 --- a/src/serverdlgbase.ui +++ b/src/serverdlgbase.ui @@ -7,7 +7,7 @@ 0 0 588 - 435 + 560 @@ -185,6 +185,23 @@ + + + + Chat Window Welcome (HTML/CSS Supported) + + + + + + + + 0 + 0 + + + + @@ -279,6 +296,7 @@ chbEnableRecorder edtCurrentSessionDir pbtNewRecording + tedWelcomeMessage cbxLanguage pbtRecordingDir edtRecordingDir From d4a8875c8b79fbc3f332695c382d16bbad711e7c Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 9 Jul 2020 20:15:52 +0200 Subject: [PATCH 358/936] merge fixes, update translations --- src/res/translation/translation_de_DE.qm | Bin 104357 -> 104231 bytes src/res/translation/translation_de_DE.ts | 295 ++++--- src/res/translation/translation_es_ES.qm | Bin 104733 -> 104581 bytes src/res/translation/translation_es_ES.ts | 293 ++++--- src/res/translation/translation_fr_FR.qm | Bin 111216 -> 111151 bytes src/res/translation/translation_fr_FR.ts | 295 ++++--- src/res/translation/translation_it_IT.qm | Bin 99677 -> 99511 bytes src/res/translation/translation_it_IT.ts | 293 ++++--- src/res/translation/translation_nl_NL.qm | Bin 98731 -> 98565 bytes src/res/translation/translation_nl_NL.ts | 293 ++++--- src/res/translation/translation_pl_PL.qm | Bin 14745 -> 14682 bytes src/res/translation/translation_pl_PL.ts | 297 ++++--- src/res/translation/translation_pt_BR.qm | Bin 100035 -> 107155 bytes src/res/translation/translation_pt_BR.ts | 293 ++++--- src/res/translation/translation_pt_PT.qm | Bin 101231 -> 101079 bytes src/res/translation/translation_pt_PT.ts | 293 ++++--- src/res/translation/translation_sv_SE.qm | Bin 23 -> 92378 bytes src/res/translation/translation_sv_SE.ts | 1025 +++++++++++++--------- src/util.cpp | 4 +- 19 files changed, 1895 insertions(+), 1486 deletions(-) diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index 4a23706ccd83475b1426d4beb0719e338d2046fc..0cbe714e906951624069d41a60167bcc48783b26 100644 GIT binary patch delta 1240 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 Syr87G!IqB`+Nuk%Iq-k%ke^Wi diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index bac96ff908..bd1418d49d 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -112,7 +112,12 @@ Polnisch - + + Swedish + + + + About Über @@ -184,32 +189,32 @@ CAudioMixerBoard - + Personal Mix at the Server Eigener Mix am Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Wenn man mit einem Server verbunden ist, dann kann man hier den eigenen Mix verstellen ohne dass man etwas daran verändert, was die anderen von mir hören. Der Titel zeigt den Servernamen an und falls bekannt den Aufnahmestatus des Servers. - + Server - + T R Y I N G T O C O N N E C T V E R B I N D U N G S A U F B A U - + RECORDING ACTIVE AUFNAHME AKTIV - + Personal Mix at: Eigener Mix am Server: @@ -419,44 +424,44 @@ G - + Alias/Name - + Instrument - + Location Standort - - - + + + Skill Level Spielstärke - + Beginner Anfänger - + Intermediate Mittlere Spielstärke - + Expert Experte - + Musician Profile Profil des Musikers @@ -2006,28 +2011,28 @@ CHelpMenu - + &Help &Hilfe - - + + Getting &Started... &Erste Schritte... - + Software &Manual... Software&handbuch... - + What's &This Konte&xthilfe - + &About... Ü&ber... @@ -2035,12 +2040,12 @@ CLanguageComboBox - + Restart Required Neustart erforderlich - + Please restart the application for the language change to take effect. Bitte starte die Applikation neu um die Änderung der Spracheinstellung anzuwenden. @@ -2048,102 +2053,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 Sie stimmen zu, dass alle Daten, Klänge oder andere Arbeiten, die zum Server gesendet werden, Ihnen gehören oder von Ihnen selbst oder einem Lizenzgeber erstellt wurden und dass Sie diese Daten, Klänge oder andere Arbeiten unter die folgende Creative Commons Lizenz stellen (Für weitere Informationen über die Lizenz, siehe - + You are free to: Sie dürfen: - + Share Teilen - + copy and redistribute the material in any medium or format das Material in jedwedem Format oder Medium vervielfältigen und weiterverbreiten - + Adapt Bearbeiten - + remix, transform, and build upon the material das Material remixen, verändern und darauf aufbauen - + The licensor cannot revoke these freedoms as long as you follow the license terms. Der Lizenzgeber kann diese Freiheiten nicht widerrufen solange Sie sich an die Lizenzbedingungen halten. - + Under the following terms: Unter folgenden Bedingungen: - + Attribution Namensnennung - + 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. Sie müssen angemessene Urheber- und Rechteangaben machen, einen Link zur Lizenz beifügen und angeben, ob Änderungen vorgenommen wurden. Diese Angaben dürfen in jeder angemessenen Art und Weise gemacht werden, allerdings nicht so, dass der Eindruck entsteht, der Lizenzgeber unterstütze gerade Sie oder Ihre Nutzung besonders. - + NonCommercial Nicht kommerziell - + You may not use the material for commercial purposes. Sie dürfen das Material nicht für kommerzielle Zwecke nutzen. - + ShareAlike Weitergabe unter gleichen Bedingungen - + If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. Wenn Sie das Material remixen, verändern oder anderweitig direkt darauf aufbauen, dürfen Sie Ihre Beiträge nur unter derselben Lizenz wie das Original verbreiten. - + No additional restrictions Keine weiteren Einschränkungen - + You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. Sie dürfen keine zusätzlichen Klauseln oder technische Verfahren einsetzen, die anderen rechtlich irgendetwas untersagen, was die Lizenz erlaubt. @@ -2155,85 +2160,85 @@ 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 @@ -2246,7 +2251,7 @@ Was man hier sieht wird auch am Fader im Mixer angezeigt, wenn du mit einem - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level 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. @@ -2255,217 +2260,217 @@ Was man hier sieht wird auch am Fader im Mixer angezeigt, wenn du mit einem Server verbunden bist. Dieses Schild wird auch bei allen anderen Musikern, die mit dem gleichen Server verbunden sind, angezeigt. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Was man hier sieht wird auch am Fader im Mixer angezeigt, wenn du mit einem Server verbunden bist. Dieses Schild wird auch bei allen anderen Musikern, die mit dem gleichen Server verbunden sind, angezeigt. - + 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 - + Vocal Bass Gesang Bass - + Vocal Tenor Gesang Tenor - + Vocal Alto Gesang Alt - + Vocal Soprano Gesang Sopran - + Banjo Banjo - + Mandolin Mandoline - + Ukulele - + Bass Ukulele @@ -2774,7 +2779,12 @@ - + + Type a message here. If no message is set, the server welcome is disabled. + + + + ERROR FEHLER @@ -2799,7 +2809,7 @@ - + E&xit &Beenden @@ -2821,17 +2831,16 @@ Ö&ffne den - server - Server + Server - + Select Main Recording Directory Wähle das Aufnahmehauptverzeichnis aus - + Predefined Address Vordefinierte Adresse @@ -2868,12 +2877,12 @@ Standard (Nordamerika) - + Server - + &Window &Fenster @@ -2937,7 +2946,7 @@ - + Name Name @@ -2947,12 +2956,27 @@ Netzwerkpuffergröße - + + Server Setup + + + + + Chat Window Welcome (HTML/CSS Supported) + + + + + Options + + + + Start Minimized on Windows Start Starte minimiert beim Windows-Start - + Show Creative Commons BY-NC-SA 4.0 Licence Dialog Zeige den Creative Commons BY-NC-SA 4.0 Lizenzdialog @@ -2962,38 +2986,38 @@ Veröffentliche meinen Server in der Serverliste - + Genre Genre - - + + STATUS - + Custom Central Server Address: Benutzerdefinierte Zentralserveradresse: - + Recording Directory Aufnahmeverzeichnis - + Enable Jam Recorder Aktiviere die Aufnahmefunktion - + New Recording Neue Aufnahme - + Language Sprache @@ -3002,17 +3026,17 @@ Zentralserveradresse - + My Server Info Meine Serverinformationen - + Location: City Standort: Stadt - + Location: Country Standort: Land @@ -3028,11 +3052,6 @@ Recordings folder Verzeichnis für die Aufnahmen - - - TextLabelNameVersion - - CSound @@ -3220,17 +3239,17 @@ QCoreApplication - + , Version , Version - + Internet Jam Session Software Internet Jam Session Software - + Released under the GNU General Public License (GPL) Unter der GNU General Public License (GPL) diff --git a/src/res/translation/translation_es_ES.qm b/src/res/translation/translation_es_ES.qm index a8eebce72d463e8311d89f93f2cf626a93112bd9..e0221bf2dc4484b11e13a92b621e9ab8f272688c 100644 GIT binary patch delta 1436 zcmXApc~BHb6vn?dyR)-9J2T4~5jGJwAOblAMO?&01T8KtP&vdSiv|${1-uYar9cwV zm@2#)C^Q;_1{I?iJQGDk4IVL`5lbzN2jY!rMKnY)>C(Smb$9iv-}}C=d+iQGNu6PN zce=5{wcS<+F^mBhPC|?v1^kc07&1A5sq?D zQ94HC4+Ht7GY`R+s#t`ujNDnX;OI7UIodl11Lq>%R7%*$JalfJ3aQsCL1GxabLVG} zeKLh)uLpX^QgqNgkXHvw()o`lD5G@=XMx~ys@mTR6j4H(yJZ2=IXb#B5jb&xj&837 zMctr_&wm5G_aEI%cm*;>Qfq20@T!jPCNzNNC$dwz3{EsqA52*+TW=rZBkY+0P>)=p zp?y3k^s#X8quoI5BH@sKCdhF>II({!U|u7%#B;!SZ{becY*1o|&@p#DP&MssZ8iwc zi%LKxJ=ryVFRzkHouR3n3sRx;c-ag1tW)RtOBSd&Oc#_A3JU7OJVYNkyIfb77Xn(8 z$YRBzrcAx_$H$<_)vR0$pm5eCMo|G%4U?#zWgFaR3M(<#X(OvP*iFG=U=>#)Z8@eC~P=n0L%jIDy|B*2<4JVhQAwA0B?)o z`MW`&F$IPfcHU=rDeEx$dWK0J(W5|PUrCP60+3K9h1-&AtXk@EcbTHPw;$DRgUZb=JuDWE=q(#qr9|M>w@`KmC`_O%1KakThZUY6Wa#{y(P*}>E&2~?dJY(Wzp3zo0=XMRK zcZWQ)YcUsPggiT%d-~Nn=BgxzN65{K_#Kb6^8J2%;CMIrfyu;$(9HTRZoudYvr#t^ z(7T&my#4v;1I)p(bAanl%~9dSpuB9hO|g@aol<%U;ZInb;t+Dqvp#Bo^|<-UPggc^_pfS5&!vqA$|YLu+~HcncqWVQGMi8f_M zeJE)3KxJktXIsBXnSJprXs%va*}}vBEJjZW}^CRR~*RK%A6KA%3ygGyUkk*E>7S8&$JNpx4^%ZTIgeL z*Qijo%@Q@YZb{xezYDYng*vT+hduT> OeW_yj-uUTsvhV-ui?pZ! delta 1539 zcmX|Bc~n$Y9R7Z9cr){6-g^To4%1;6MoDM^Tv!4VQA2P6R8Ry$1f7tHMFGV;3Z6{U zPKt5EEwwOl%Y$L26@t6szI#kTEW{0QsZcSs?y+aS31UnzC}{?>Qk>wluv{vobk zpwjyoUOX7&SH`S@FCAl1LKzKW7ln{6(>(B?GaNV@^{P_BX=c@!?ZKopuKNNHT|(&(mg{009WU(60jT>5 zq5eTKXrNix^VW|*^#WmEKsG4krf{^@0T@>cEn_&rF|oqU_5x61rqEF|8>pP}U%jXm z9+%Ds&0o)&T)cWL@YZM#Jpj%1(pdlY0^aY`*ne{Jxj_>&Ap#T>$E;#6L!MPrGd&En zppnIj1Eq48wDtEv8UCz73?wHzBt}yuQ?%*S%5t@4YGd=YHag9!v^Hs?*te1^;qYK5 z`Im95RqJc77N-cGaE>jabASr;$QM5h_T*w#iTOhk`Tknwud}(uiwm>A1&vP?7v(Jh z^=@Wqx+J$2aZAGIn}N;!_tS6P)b(Cv=yj*SZ% z)1sG~xK_?ltV0?|sVvx#E}hW-JgEdU>?vDguu&PSGXw~;@>#nf%YIJUed0VY(Jt*t zD*|a7r6acOK+t&U=&9b^{$4EC80}VLn4EP3n3-vq+`++1-Ps|d&ED6Lllm*qXsaRb z#%7R@mtpFQPeFqV4FxgW(|Nv3l#>SK87?m1XRL<}cY3b{#+VIvB?&Yx)abIs42)W4 z)N4inE*?f#p8(K=T4QKzA<+ED7(Hk%XnF@*BipDCtCPKi!4}pehY0y8%v}j|dt|)w zT_eaN%y@l7H0RpH#ws>xgxu{1fnT*cHb*g2GOJJmhi#M7mZ>1qX4zS5;kRd}>}&}D z5-oDh?g-GR3G&od&TZXBx!}?nP|@ddc?%E!$JsLTgA1~@T-dFMiE$Tc~vR# zrQ&blruUPTkhW@2aVV=&hYDHqSi5Q)RIVJ@dkWamLpk!nB+xsvlv9~}PI6ODd-Mbz z?Ne^Gaj~+qmAe!9em*IW!sCEpsmfnF;y}LPEY@VErOaWnS+=U7a}z-Qt!kL@GvL_@ zHR3+ED?W>@F-0e@ROj5Q0{XP8a|>31dIhS?JrksOsFhDS?J)7bnzUKnypku~+*PeV zw*>HuP%pcOf-I%#?>Zk)#0K?l2~Xwj4)xw5&dg$916+%THkkHjaek5crv0T{n*JrG z^Gh}X*I$?}xL*Sv2ASHPaNetA(_>c^^oEO1shD7@z5f02m5k?{dnY_$on6qTcTrT(a4NUM^0Quu49~|pfEc>Z@JAu9=m>V(sBQP0YQh(=Kufz diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index 50699f9867..a922a943d1 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -116,7 +116,12 @@ Polaco - + + Swedish + + + + About Acerca de @@ -196,32 +201,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mezcla personal en el Servidor - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Estando conectado a un servidor, estos controles te permiten hacer tu mezcla personal sin afectar lo que otros escuchan de tí. El título muestra el nombre del servidor y, cuando se conoce, si está activamente grabando. - + Server Servidor - + T R Y I N G T O C O N N E C T I N T E N T A N D O C O N E C T A R - + RECORDING ACTIVE GRABACIÓN ACTIVA - + Personal Mix at: Mezcla Personal en el Servidor: @@ -431,44 +436,44 @@ G - + Alias/Name Alias/Nombre - + Instrument Instrumento - + Location Ubicación - - - + + + Skill Level Nivel Habilidad - + Beginner Principiante - + Intermediate Intermedio - + Expert Experto - + Musician Profile Perfil Músico @@ -2030,28 +2035,28 @@ CHelpMenu - + &Help &Ayuda - - + + Getting &Started... Cómo &Empezar... - + Software &Manual... Manual del &Software... - + What's &This Qué es &Esto - + &About... &Acerca de... @@ -2059,12 +2064,12 @@ CLanguageComboBox - + Restart Required Reinicio Necesario - + Please restart the application for the language change to take effect. Por favor reinicia la aplicación para que el cambio de idioma surta efecto. @@ -2072,102 +2077,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. @@ -2179,85 +2184,85 @@ 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 @@ -2270,7 +2275,7 @@ Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Escribe tu nombre o alias aquí para que otros 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. @@ -2279,217 +2284,217 @@ Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor. Esta etiqueta también se mostrará en cada cliente conectado al mismo servidor que tú. Si se deja el nombre vacío, se muestra la dirección IP en su lugar. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor Jamulus. Esta etiqueta también se mostrará en cada cliente conectado al mismo servidor que tú. - + 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 - + Vocal Bass Voz Bajo - + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Mandolina - + Ukulele Ukulele - + Bass Ukulele Ukulele Barítono @@ -2794,7 +2799,12 @@ Si el directorio de grabación no es utilizable, se mostrará el problema en lugar del directorio. - + + Type a message here. If no message is set, the server welcome is disabled. + + + + ERROR ERROR @@ -2819,7 +2829,7 @@ - + E&xit S&alir @@ -2841,17 +2851,16 @@ &Abrir servidor - server - + - + Select Main Recording Directory Seleccionar Directorio Principal de Grabación - + Predefined Address Dirección Preestablecida @@ -2888,12 +2897,12 @@ Por defecto (Norteamérica) - + Server : Servidor - + &Window &Ventana @@ -2957,7 +2966,7 @@ - + Name Nombre @@ -2967,12 +2976,27 @@ Tamaño Jitter Buffer - + + Server Setup + + + + + Chat Window Welcome (HTML/CSS Supported) + + + + + Options + + + + Start Minimized on Windows Start Arranca Minimizado al Arrancar Windows - + Show Creative Commons BY-NC-SA 4.0 Licence Dialog Mostrar Diálogo de Licencia Creative Commons BY-NC-SA 4.0 @@ -2982,38 +3006,38 @@ Mi Servidor es Público (Registra Mi Servidor en la Lista de Servidores) - + Genre Género - - + + STATUS ESTADO - + Custom Central Server Address: Dirección Personalizada Servidor Central: - + Recording Directory Directorio de Grabación - + Enable Jam Recorder Activar Grabación de Jams - + New Recording Nueva Grabación - + Language Idioma @@ -3022,17 +3046,17 @@ Dirección Servidor Central: - + My Server Info Info Mi Servidor - + Location: City Ubicación: Ciudad - + Location: Country Ubicación: País @@ -3049,9 +3073,8 @@ Carpeta grabaciones - TextLabelNameVersion - TextLabelNameVersion + TextLabelNameVersion @@ -3240,17 +3263,17 @@ QCoreApplication - + , Version , Versión - + Internet Jam Session Software Internet Jam Session Software - + Released under the GNU General Public License (GPL) Publicado bajo la GNU General Public License (GPL) diff --git a/src/res/translation/translation_fr_FR.qm b/src/res/translation/translation_fr_FR.qm index 6bb9c0a9830b2437dd22a9a7bf70f10914afc308..d5bcf32ea260db4dbe5d001fd014320040ecf082 100644 GIT binary patch delta 1501 zcmX9;X;2hL6#m}q&dwe)v!D`!5tfY_Kmr&AR*0pT3M|N>h_?cY2Z%zvP^<`IMI{KrQSpje#)xHziVBLL9G3AQ9!Zz}>96`#_p9&d*KPH>z4f}HPIUN3 zmsU4Vh+zzYL2m1uv>#;XCYv{XoU;qlK|5=p>7E0 zHzi7V*gO+7HAZ+odp=Mqe8BpA;l+Z*pv@Oqwbo*d(CDgKxj`)&_tzdkO0&j#I32WZ zrzS9|A1JB=a}m7^T{Zi&LO?$WEL`kw7@S@OrEEabPZJeJjh+S!e>=q_bF8i@hA&n)!3Y(6%yQhfVxa=?&=X#J-6K zLDR>x+q%z;8*Yhd!XmDtnkkYitzz9Ji?c)geo6`Go3Y~3%tBE32sTU_F7#_RnGR^oMFLC|}o9<@@I zH{UBs(%jf9fYUW;ktPY$r&U^co_nyUzf`;~jO%(Ot*x!#56f9vC&z(itYHO){?0b3 z(ZY?7-J+Low}2M@%WfN1`1tFOOyItaE7hMZE(G??*PqL614&^9^+XHs$1+35&u4=M z-DAbZ0J5_xV=9efekL~-XNquk7$>IIbB1?}6QA>*YZ}-#lf}B-IBm>dppUK?GwXMO zY|D+)-{ylxmKbM7^2j$1V-HLt2Ba9Pm+(71mm3>F>DiGyRzf5jSAUwIl#HxRP)O%P>+SC zyU})#&nGNMu^39^P6q@&mn&GJ;!3?)mJ$$^DkrX1LDrAu^l~@OvxA&o=MRjYAx}Hj z50u(Rp8kL{+mj*Bym1v&;3==<^GX{sWag~`28X=CdXhizeAcYETGQpKku`v4jeKE0 z?-p}kzDVG@4$7DGy+K3LSa;RGSI~XAJ#iJNbF-q}+yNTwt902R0^9xGBTa2n{M>l> z_G3!$<1$cD2wSY$xxmY+#W_zoeew!W>8YHXJOLDYl)Y75-84$mI9|=Vr#uaf1LDle zKL_JLp)JhM>>5&_cG2$!>CUU(xw*jkORD#ijlie<)t)XMpm~>6TV4X^@vRzSS_U#! zsr_1bXp`+M$7~;!ujV}21_T~Z^JcCGh19CdB?aU$Pj$TF?Bk+8U}llJYaJg2pLn(6 zS|Q+*r`~k2fqYxl`%*Xlhs3E(xfQ_0z3P*tJWSs_=I%7dUUc1jDwR|JdX4$i0`Ae^ ztL8rocLGnhny4jnknT OCpzSP=wb+M&;B2i_0$Rg delta 1557 zcmX9;X;f8J7~S7}@4owndoP2KpgrEhAs#8vCh&T_w2RLTIaj_+xt6bUxTi-LAS<< zD%UzcagBjEoB<7^A$~Fj_^|_G=payf2{Y3edd<=(r+*?s^Xx!QCWIy41UV-mtY8*s zc29(z_ThXzM)?(h3SVH=RKWM-i3P}4N=;cMBzRe)NGB#f06BbORQI~+g zPAWU*2AVvLesD|yq$a9f7Y$qur|NxsLGkr;rTq-ZyOC~3y#~2PP-6n$m)}rRR0XJ@ zlU>wIp_j}{>rb^TNoyJVNcbfcAWw@>@gxQm{f}^>&mrJwvvAUzw>)~NaQ;{lV45o2 z9mn;}S|Z$goC*3oPiULB2-q#W!-nNTdrlsxRKqT7E$%rQUDXp%k%z|o$_+?(ta1M} zh4b4Q-}qsmuyE!qdKe~a4rB#@whU&$Vvu2tHf~!BXkj{AC3*|vda~nU2>r}N-4xd* z?XCKrz{2a=rjy);SKG7?eHVj@Z7f@7p%S)9XK}9;2b6JZ7VQ%QTlWGx{l&q`KtO+2 z91>R!%Gk(m=sqx(IEyodrJxj*DN%bId{FQjHeUKn2(qy~ z(sGAF-8AQBAp0-f;@D_VOdbo?`_OTgr4Ml(tb0}&&%=7AYwzX@npv%TVc`X0gV<%g zhkKc14jscMYmnsEu@KZHTpD573@j^^A}u_WsCH&HSjIL@RfZsk z4C%gw8y``smv6LymJDP!468kp^+%?2-=;R|s|)gh{fqQx7q^0>;Rf|Y3-HHELzlku zK%aJF1x6prWmU#xDq>zHSLu9BKalMp3pRx~)Eg6%8@STHjfri%cA=GRGFjYj8dE1- z1HD&cOmEl)@~<*xbS?)?yl%`4<o9yQ$x58=Zb z&Ab$g`*qprpulhAIoX`eYY*HmyRB{mI)}YQnvlxU6rY?ea@=<+$lXOwIp)fBhRZ2; zy@A*{a_VoxK*@9Dj7ENXPnw*0y?`51AnGn?Px zy=C(0k=(nKt#Z}GdcayQpFhCsM|77j5O}BM^6&bAAYoh?GppVM{JP5>aqB_d9xLkA zo!s+8<^7!^u*2&uQmUuo<;v$Gq)qXAxEHi0lVz(R+=VLD5_3d3U0DO1v?^z3Oy~c2 zrqm>G9@k%~b?FJBOG?v2Z_rmmlm}D!e%5W}X<#G}X{S6dj|2_&P^CAHAnP@?Yi$cq znxJ-1=2^|IW<%}Vx_v3C{<%?HQn?ynS_v{%sl!@$q%(3^mR(3prJDU{JK%dz&CT2h z3UpDKa{|ci3$^TD-bm!qcbI-&-BlFL!&#|T)a3)7x$0GCe^6hWdPnNTUz+9WgT)oV zg?;Ly6zU1xu|&Ylk2dOO03xky4L=JPd+qgBsshmL=G>)fQw`AM194F^6Vr^71(Xvf0; E0jPolonais - + + Swedish + + + + About À propos @@ -204,32 +209,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mixage personnel au serveur - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Lorsque vous êtes connecté à un serveur, les contrôles vous permettent de régler votre mixage local sans affecter ce que les autres entendent de vous. Le titre indique le nom du serveur et, lorsqu'il est connu, s'il est en train d'enregistrer. - + Server Serveur - + T R Y I N G T O C O N N E C T T E N T A T I V E D E C O N N E X I O N - + RECORDING ACTIVE ENREGISTREMENT ACTIF - + Personal Mix at: Mixage personnel à : @@ -439,44 +444,44 @@ G - + Alias/Name Pseudo/nom - + Instrument Instrument - + Location Localisation - - - + + + Skill Level Niveau de compétence - + Beginner Débutant - + Intermediate Intermédiaire - + Expert Expert - + Musician Profile Profil de musicien @@ -2026,28 +2031,28 @@ CHelpMenu - + &Help &Aide - - + + Getting &Started... Premier pa&s... - + Software &Manual... &Manuel du logiciel... - + What's &This Qu'est-ce que c'est ? - + &About... À &propos @@ -2055,12 +2060,12 @@ CLanguageComboBox - + Restart Required - + Please restart the application for the language change to take effect. @@ -2068,102 +2073,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. @@ -2175,85 +2180,85 @@ . 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 Dialogue d'édition de pseudo ou de nom - + Instrument picture button Bouton d'image d'instrument - + Country flag button Bouton de drapeau de pays - + City edit box Dialogue d'édition de ville - + Skill level combo box Choix déroulant de niveau de compétence - - - + + + 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 @@ -2266,222 +2271,222 @@ Ce que vous réglez ici apparaîtra au niveau de votre fader sur la table de mixage lorsque vous serez connecté à un serveur - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Écrivez votre nom ou un pseudonyme ici pour que les autres musiciens avec lesquels vous voulez jouer sachent qui vous êtes. Vous pouvez également ajouter une photo de l'instrument dont vous jouez et un drapeau du pays dans lequel vous vous trouvez. Vous pouvez également ajouter votre ville et votre niveau de compétence pour jouer de votre instrument. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Ce que vous réglez ici apparaîtra au niveau de votre chariot sur la table de mixage lorsque vous serez connecté à un serveur Jamulus. Cette étiquette sera également affichée dans chaque client qui est connecté au même serveur que vous. - + 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 - + Vocal Bass Voix basse - + Vocal Tenor Voix ténor - + Vocal Alto Voix alto - + Vocal Soprano Voix soprano - + Banjo Banjo - + Mandolin Mandoline - + Ukulele Ukulélé - + Bass Ukulele Ukulélé basse @@ -2786,7 +2791,12 @@ Si le répertoire d'enregistrement n'est pas utilisable, le problème sera affiché à la place du répertoire. - + + Type a message here. If no message is set, the server welcome is disabled. + + + + ERROR ERREUR @@ -2811,7 +2821,7 @@ - + E&xit &Quitter @@ -2833,17 +2843,16 @@ &Ouvrir - server - serveur + serveur - + Select Main Recording Directory Sélectionner le répertoire principal des enregistrements - + Predefined Address Adresse prédéfinie @@ -2880,12 +2889,12 @@ Défaut (Amérique du nord) - + Server serveur - + &Window &Fenêtre @@ -2949,7 +2958,7 @@ - + Name Nom @@ -2959,12 +2968,27 @@ Taille du tampon de gigue - + + Server Setup + + + + + Chat Window Welcome (HTML/CSS Supported) + + + + + Options + + + + Start Minimized on Windows Start Démarrage minimisé au lancement de Windows - + Show Creative Commons BY-NC-SA 4.0 Licence Dialog Afficher le dialogue de la licence Creative Commons BY-NC-SA 4.0 @@ -2974,38 +2998,38 @@ Rendre mon serveur public (inscrire mon serveur dans la liste des serveurs) - + Genre Genre - - + + STATUS ÉTAT - + Custom Central Server Address: Adresse personnalisée du serveur central : - + Recording Directory Répertoire des enregistrements - + Enable Jam Recorder Activer l'enregistreur de bœuf - + New Recording Nouvel enregistrement - + Language @@ -3014,17 +3038,17 @@ Adresse du serveur central : - + My Server Info Informations de mon serveur - + Location: City Emplacement : ville - + Location: Country Emplacement : pays @@ -3040,11 +3064,6 @@ Recordings folder Dossier des enregistrements - - - TextLabelNameVersion - - CSound @@ -3232,17 +3251,17 @@ QCoreApplication - + , Version , version - + Internet Jam Session Software Logiciel de bœuf sur Internet - + Released under the GNU General Public License (GPL) Publié sous la licence publique générale GNU (GPL) diff --git a/src/res/translation/translation_it_IT.qm b/src/res/translation/translation_it_IT.qm index 7f057a52554f30dd60d2fd0378eac4be5a2dde5e..1d404e9a43c73e31c3f2319a4e1da59e4da3e070 100644 GIT binary patch delta 1245 zcmX9;dr(wW9R7ZH_wM8Fy?28F7ZP?`QPI)`MRt`CB|#7dEqUZ?#Q_Dy6%@?ZggE15 zV&n5WqeNHX!ksHizH`65&lq|{sz?Sy}Qb7p>Xe&6ey<~6$Na@~di zYTOw3l9E^;O`v!-ix$&2teLEW$HTfQoT^wqVLdsSS8)2f3((<<0WMm5kmBvETj($J ze$4u594WJQ(U<9sfUAruYOJ8)U(p`_0zh9z^_wz)GfSxcKouyalde4d8T5J+-AsQD zGEAhFoGRe?0%}dK1d&>({bqmKGb3lVD zg|h(TEX3T&nd<{;wraq z5#Ls#07H=&>pl!hY+!43;Ufl#1tV3!o-fXg4gvbKibZ2GxS&tOB^|eb(!S!dtA$*G zPh34`Cn({pSYEgeG{C?f>fSf@5%-?10}lMjGWF}ZWi9#$l31W2$*)BB_p#|fSg!6L z8=rU9vw4R8QpR0LG;S*Edv2Akg$ z{gyv!fex#Ft2`bwwv&Y#NBJGm-?MQClb0IgX6{bbGB(e+N{HxYPmFOwUMGu|@`NE5 z*bXU})k=x}sa|Pj{vCdIi!}2IpP##t1)6O3Qpq#*H;~vM72f$46e>vbyFUg+&y|Xk zc`ikjEYp+~6MIIw7x@J+ajJCRXav3U$fVtC0p4vi88oSYHpKK=Uk51VN0Te91h_fU zloY=Ll#|I?OfCv$p|Vq$TE#MDhksP3>H5CkK^B;9q$crVEoYl$oAG-&;E({aU1mpR z3%Oa798u<#-Jhu-bF*Af6ATJjBNyCu0O_Y?&riH8ahK%zEu7WY=jGxnji4D_@}}Fo zs)d(iHh?E;43oFnkAW66$Th@SFUqGTT?cG=@>xR^D6&pIyRjIE z-7B9Pk_fPsihbZ}+2{TgWW1%Q*LH&(PnD3}BCu_L4^sRs#o1N`%Js5y%Gi|j3T5YP zUX~%v%APSiGnYxJ`-@YaUDJb^yLIxAIF~E`LRjmGe3LoV7@~5XAf3c}Qt( z<3?tdGq-99&Q%^>Qz0iKaGv7 JZqK43$A1nshRy&0 delta 1417 zcmX|B2}~4M82IOng@99amen4!{~eGDoM zSB?GG3&{3W`Fvl@_g7RAOJYE;b+c>gK>aP%x2q5NqxK54_LWYJp1^VJX^8l+60Hq4X7#b%~DknmE5d3=hJ%qBXFp!^|r z&1j*yOqQaA?0A+Sg*Zh78G8@j1i4v^x04e&zb5v+WY#~BoR111ZzF4v+-Ms+D}~lR zlyW{%K&C#axWxnH*)A2|3jxwENF^s?K(PjCML%b?r%Nio-VMszEN#8V2i#U9u^>JN zdOvBG&nZxOp438|RetU(?0H{09nYPL(@STwdI58R)Tx^U3VSAXZYc+*)=NK5OaNGg z>@&Vivgd3A>F>(Qjs2j|VA*rO2<$pEiZsJRjv8tNElXx6cg zJS|4K?GH|QdCMqLa)5mLR2Oh;zkI%6DJW!u+?CJwnXBc??))$K{ir-J#Er}}vlPY6 z<18oV - + + Swedish + + + + About Informazioni su @@ -188,32 +193,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mixer personale sul Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Quando connessi i fader permettono di regolare i volumi in locale senza influenzare l'ascolto degli altri utenti. L'intestazione mostra il nome de server, se valorizzato, e le informazioni sullo stato della sessione di registrazione se attiva. - + Server Server - + T R Y I N G T O C O N N E C T I N A T T E S A D I C O N N E S S I O N E - + RECORDING ACTIVE Sessione con Registrazione Attiva - + Personal Mix at: Mixer personale sul Server: @@ -444,44 +449,44 @@ G - + Alias/Name Identificativo/Nome - + Instrument Strumento - + Location Località - - - + + + Skill Level Livello di Preparazione - + Beginner Principiante - + Intermediate Livello Intermedio - + Expert Esperto - + Musician Profile Profilo del Musicista @@ -1986,28 +1991,28 @@ CHelpMenu - + &Help &Aiuto - - + + Getting &Started... &Introduzione... - + Software &Manual... &Manuale Software... - + What's &This &Cos'è Questo - + &About... I&nformazioni su... @@ -2015,12 +2020,12 @@ CLanguageComboBox - + Restart Required - + Please restart the application for the language change to take effect. @@ -2028,102 +2033,102 @@ CLicenceDlg - + I &agree to the above licence terms &Accetto i termini di licenza - + Accept Accetto - + Decline Declino - + By connecting to this server and agreeing to this notice, you agree to the following: Collegandosi a questo server e accettando questo avviso, si accetta quanto segue: - + 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 Dichiari che tutti i dati, audio o altre opere trasmessi a questo server sono di tua proprietà e creati da te o dai tuoi licenziatari e che rendi questi dati, audio o altre opere disponibili a terzi mediante la seguente Licenza Creative Commons (per ulteriori informazioni su questa licenza, vedere - + You are free to: Sei libero di: - + Share Condividere - + copy and redistribute the material in any medium or format copiare e ridistribuire il materiale in qualsiasi supporto o formato - + Adapt Adattare - + remix, transform, and build upon the material remixare, trasformare e modificare il materiale - + The licensor cannot revoke these freedoms as long as you follow the license terms. Il licenziante non può revocare queste libertà fintanto che segui i termini della licenza. - + Under the following terms: Sotto i seguenti requisiti: - + Attribution Attribuzione - + 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. È necessario accreditare in modo appropriato, fornire un collegamento alla licenza e indicare se sono state apportate modifiche. Puoi farlo in modo ragionevole, ma non in modo tale da suggerire a te o al tuo utilizzo il supporto del licenziante. - + NonCommercial Non Commerciale - + You may not use the material for commercial purposes. Non è possibile utilizzare il materiale a fini commerciali. - + ShareAlike Condividere allo stesso modo - + If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. Se remixate, trasformate o sviluppate il materiale, dovete distribuire i vostri contributi con la stessa licenza dell'originale. - + No additional restrictions Nessuna restrizione aggiuntiva - + You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. Non è possibile applicare termini legali o misure tecnologiche che impediscono legalmente ad altre persone di fare qualsiasi cosa consentita dalla licenza. @@ -2131,60 +2136,60 @@ CMusProfDlg - - + + Musician Profile Profilo del Musicista - + Alias/Name Nome/Alias - + Instrument Strumento - + Country Paese - + City Città - + Skill Livello - + &Close &Chiudi - - - + + + None None - + Beginner Principiante - + Intermediate Intermedio - + Expert Esperto @@ -2201,247 +2206,247 @@ questo tag verrà mostrato anche a ciascun client connesso allo stesso server. Se viene lasciato vuoto, verrà visualizzato l'indirizzo IP. - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Scrivi qui il tuo nome o un alias in modo che gli altri musicisti con cui vuoi suonare sappiano chi sei. Puoi anche aggiungere una foto dello strumento che suoni e una bandiera del paese in cui ti trovi. Puoi anche aggiungere la tua città e il tuo livello di abilità nel suonare il tuo strumento. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Ciò che hai impostato apparirà sul tuo fader sulla scheda del mixer quando sei collegato a un server Jamulus. Questo tag verrà mostrato anche su ogni client collegato allo stesso server. - + Alias or name edit box Box di modifica Nome o Alias - + Instrument picture button Immagine dello strumento - + Country flag button Pulsante bandiera del paese - + City edit box Box di modifica Città - + Skill level combo box Livello di Abilità - + Drum Set Batteria - + Djembe Djembe - + Electric Guitar Chitarra elettrica - + Acoustic Guitar Chitarra Acustica - + Bass Guitar Basso Elettrico - + Keyboard Tastiera - + Synthesizer Sintetizzatore - + Grand Piano Grand Piano - + Accordion Fisarmonica - + Vocal Voce - + Microphone Microfono - + Harmonica Armonica - + Trumpet Tromba - + Trombone Trombone - + French Horn Corno Francese - + Tuba Tuba - + Saxophone Sassofono - + Clarinet Clarinet - + Flute Flauto - + Violin Violino - + Cello Cello - + Double Bass Contrabbasso - + Recorder Recorder - + Streamer Streamer - + Listener Ascoltatore - + Guitar+Vocal Chitarra+Voce - + Keyboard+Vocal Tastiera+Voce - + Bodhran Bodhran - + Bassoon Fagotto - + Oboe Oboe - + Harp Arpa - + Viola Viola - + Congas Congas - + Bongo Bongo - + Vocal Bass Voce Basso - + Vocal Tenor Voce Tenore - + Vocal Alto Voce Alto - + Vocal Soprano Voce Soprano - + Banjo Banjo - + Mandolin Mandolino - + Ukulele Uculele - + Bass Ukulele Uculele Basso @@ -2746,7 +2751,12 @@ - + + Type a message here. If no message is set, the server welcome is disabled. + + + + ERROR @@ -2771,7 +2781,7 @@ - + E&xit &Esci @@ -2793,27 +2803,26 @@ &Apri - server - server + server - + Server Server - + &Window &Finestra - + Select Main Recording Directory - + Predefined Address Indirizzo Predefinito @@ -2897,7 +2906,7 @@ - + Name Nome @@ -2907,12 +2916,27 @@ Dimensione Jitter Buffer - + + Server Setup + + + + + Chat Window Welcome (HTML/CSS Supported) + + + + + Options + + + + Start Minimized on Windows Start Avvio Minimizzato all'avvio di Windows - + Show Creative Commons BY-NC-SA 4.0 Licence Dialog Visualizza la finestra Creative Commons BY-NC-SA 4.0 Licence @@ -2922,38 +2946,38 @@ Rendi il server Pubblico (Regista il server nella lista dei server pubblici) - + Genre Genere - - + + STATUS STATO - + Custom Central Server Address: Indirizzo server centrale alternativo: - + Recording Directory - + Enable Jam Recorder - + New Recording Nuova Registrazione - + Language @@ -2962,17 +2986,17 @@ Indirizzo Server Centrale: - + My Server Info Informazioni sul Server - + Location: City Ubicazione: Città - + Location: Country Ubicazione: Paese @@ -2989,9 +3013,8 @@ Cartella di Registrazione - TextLabelNameVersion - TextLabelNameVersion + TextLabelNameVersion @@ -3180,17 +3203,17 @@ QCoreApplication - + , Version Versione, Versione - + Internet Jam Session Software Programma per Jam Session su Internet - + Released under the GNU General Public License (GPL) Rilasciato sotto licensa GNU General Public License (GPL) diff --git a/src/res/translation/translation_nl_NL.qm b/src/res/translation/translation_nl_NL.qm index 4405234806f1e396831ffd7c292acdfb5071610b..0ad722b852ab8d1ff222f981208ab312f2600d69 100644 GIT binary patch delta 1321 zcmX9;dr(wW9R7ZH_wL=jd-pC7D~c>TYbt^PA_61IDrSN>ZVIEM&I&2WLtf)6Qv_cO zYNMz}D<9a9nWjl*q&6TRNR}gxsgaooq6{f0HYrMmcEZ2DIcMf~&i6X!*altEdYxtb znUsMSyZ7&IwENT~mz`~%1ehQ1u)HE8vyfAW?`Ek~Xpco~kr_k|OigJ430p9=KA7VV zhzs8hN`KBo!H>#Wpin|{*;ygN-3Q&hk-#q={YZ`oCTjf1lLcym-P7r_geySUJSwa7 z1%=IF*%~kVm(K3F&xlmQB`3qMz;0`eo_Zu|+*_&@_3{hIw z7mq-3{%n?*OFpbYOd7OF+j{d&AorlQ;~bZFzgXKjrT~=L&7yQRs%I{p%|1ySUB)Fl z2Z)i6xwz7Jahxd>&`%J@yDC7F*0ECEaCz|oF>b&d$;>zweVD)Tq)o(e# zkBQ=@jDw))o#N)4ZJ=S?6DiTKMLhab4e-qXmMxXgYSt$O2?EAprF~TQSa;R-z+8dz68Y% zk(Roy1Iu6bBU!STXt24vNuRb<16`-2J&F_b_Er{VaCmrLmG0ZPnN#lQmF7pF1W#6E zD5fN4k{!arLu|Ud$UE?bq3Y5#z_r~_<5~vNUNl^=odiPev0vpW9bO#U453 zDL*3J$^wlxdxM-c?{|=^_ppbCg12bGzb)P*cdT=DbP}4jEPH1;Eny3HOc!G&>( z>thvU>QFK(2Z6jRl+3$9K)kACRq z`>$7eUAsV1ok_iM7&LN)$>*>L?9c2+a7>gy4cW2&#c3{?1= zE-YHeA5lb>py@S6N2=9V zw*kXs^@b$^G+>3=CJp7KY*!x?R0CC))vnDvLCY(aYR;YFFxRDVYK~dvy2AgRFqp4x zI|8)kny*`K0}s!eJD+jNd%es(Zafj|Epu=9T%N>9bMMzVAiINq8+lJQc)OkUcB635 Q)5SyScF^hb3Dgnz9~iuo761SM delta 1442 zcmX|B3s6*582xERLYn- zf_74~q=wW~6f-r&K>;6BH0oHPnG?PpMp3CzG)%D*&U9za{r)*~{&T;_KeysT-JTUX z^SJuV{y%kX-FVjO+cdA{c>4sv9UIIqXaX~nU2s$|7nNJfkyv2@kqwhGuY!a%n0zXf z<55hB+6c<7WTG&bZnI#aiZ-z0LbS&LboGn@e)jA`vgI>TGnl5bU`?n;FMa7a4~&{a zH4XltQR`Wr#@pIX7ayMn^>3r=j%OfU5Z%t$2Rz+O9gap&)>5`ZlSYe~sErbmvRI7P z5|=F;&IQP8yU;ZJJ7C`c;Y3I_XjrPy+Ta4@2g1$d{h%06p}TlFQ1i}9Y+ElpF0TL; zgt2O^#kxzQYw6-5nl*m^_ye<-X{_}*pqx}q8#*u}rR39WKPn7%;-vGrvWOaJ)(d(q-me+t0UQ&vgA5M8HrPi(l zl6)oSFgI?lmz37i3reh)ikxl0lHNWf^EUQeZ}IqA`t)ieaPP3RMX`e>4rIY@Hczvg zbjQNIjlZr}+PQCzT2|_|iZ(G(wh5VI*(5nj2#H{IvX9hyE{rD{!CK^a&&knp=KNd0 z(k*gkH*Z^Tkog%b)@O3=oZms3t8)IW-Jk&udC~J#pon0(Fp&qByPG);vqs;N?}U8; zytz)k>&AJ<8V%Z7Z@_-Tpw~J0bHG|Eg}F)6j<$Zf5OD zX!!?7-G;v=cPE&gi>S1h(e%A&vJoMs@B3rH8W%#sqr7{8WF>M6K~u z^Eu$qP~#6-Z}Zr9vgxX~PlxgDJiePJ8~++(2NK>gK00Iv`R1@v)q7~K>Z`8>9wn(m z%F2KSKXu5xt$_bpHO$PXepk|IwSiEM1 z?0!Ucrzo$1?g&5;TqwlSzIT8g{L%5H4=8dKE_D?KY+e*ZUPodF(Up*dA(+9Bm7o~Y zkd6#q=fcjbJYLQ0yPyc!C_w)I*Lclvl@w1)&v511)AL+2U4=#21^JsPiTWS$cTh+0 Ezlt5JYXATM diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index dbf39e47dc..5d47c36fe2 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -112,7 +112,12 @@ - + + Swedish + + + + About Over @@ -188,32 +193,32 @@ CAudioMixerBoard - + Personal Mix at the Server Eigen mix op de Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Indien verbonden met de server kan hier de lokale mix ingesteld worden zonder dat hetgeen anderen van je horen wordt beïnvloed. De titel toont de servernaam en indien bekend of er audio wordt opgenomen. - + Server Server - + T R Y I N G T O C O N N E C T A A N H E T V E R B I N D E N - + RECORDING ACTIVE GELUIDSOPNAME ACTIEF - + Personal Mix at: Eigen mix op: @@ -436,44 +441,44 @@ G - + Alias/Name Alias/Naam - + Instrument Instrument - + Location Locatie - - - + + + Skill Level Vaardigheidssniveau - + Beginner Beginner - + Intermediate Gemiddeld - + Expert Gevorderd - + Musician Profile Muzikantenprofiel @@ -1974,28 +1979,28 @@ CHelpMenu - + &Help &Hulp - - + + Getting &Started... &Aan de slag... - + Software &Manual... Software&handleiding... - + What's &This Wat Is &Dit - + &About... &Over... @@ -2003,12 +2008,12 @@ CLanguageComboBox - + Restart Required - + Please restart the application for the language change to take effect. @@ -2016,102 +2021,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. @@ -2119,60 +2124,60 @@ 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 @@ -2189,247 +2194,247 @@ 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. - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level 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 je vaardigheidsniveau kunnen ook worden toegevoegd. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Wat u hier instelt verschijnt bij uw fader op het mengpaneel indien verbonden met een Jamulus-server. Deze tag zal ook worden getoond aan andere muzikanten die met deze server verbonden zijn. - + 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 - + Vocal Bass Bas (stem) - + Vocal Tenor Tenor (stem) - + Vocal Alto Alt (stem) - + Vocal Soprano Sopraan (stem) - + Banjo Banjo - + Mandolin Mandoline - + Ukulele Ukelele - + Bass Ukulele Ukelele-bas @@ -2734,7 +2739,12 @@ - + + Type a message here. If no message is set, the server welcome is disabled. + + + + ERROR @@ -2759,7 +2769,7 @@ - + E&xit &Sluiten @@ -2781,17 +2791,16 @@ &Open - server - server + server - + Select Main Recording Directory - + Predefined Address Standaardadres @@ -2828,12 +2837,12 @@ Standaard (Noord-Amerika) - + Server Server - + &Window &Window @@ -2897,7 +2906,7 @@ - + Name Naam @@ -2907,12 +2916,27 @@ Jitter Buffergrootte - + + Server Setup + + + + + Chat Window Welcome (HTML/CSS Supported) + + + + + Options + + + + Start Minimized on Windows Start Start geminimaliseerd bij systeemstart - + Show Creative Commons BY-NC-SA 4.0 Licence Dialog Toon Creative Commons BY-NC-SA 4.0 Licentie Dialoog @@ -2922,38 +2946,38 @@ Maak mijn server openbaar (Registreer deze in de lijst met servers) - + Genre Genre - - + + STATUS STATUS - + Custom Central Server Address: Eigen centrale serveradres: - + Recording Directory - + Enable Jam Recorder - + New Recording Nieuwe geluidsopname - + Language @@ -2962,17 +2986,17 @@ Adres Centrale Server: - + My Server Info Mijn serverinfo - + Location: City Locatie: Stad - + Location: Country Locatie: Land @@ -2989,9 +3013,8 @@ Geluidsopname folder - TextLabelNameVersion - TextLabelNameVersion + TextLabelNameVersion @@ -3180,17 +3203,17 @@ QCoreApplication - + , Version , Versie - + Internet Jam Session Software Internet Jamsessie Software - + Released under the GNU General Public License (GPL) Gereleased onder de GNU General Public License (GPL) diff --git a/src/res/translation/translation_pl_PL.qm b/src/res/translation/translation_pl_PL.qm index 0c998c47621c3c9f5d3f5a64ef2785c584e011aa..d69e0ce1e447218b325c77e6fd6ca5493df26104 100755 GIT binary patch delta 41 xcmbPPe5+`J2;+i{qUMZ@j+1>EzcUt3c4hjx*^RlHiE-lQL#$3lo2@P47y&^%4toFq delta 79 zcmV-V0I>hsa+!0G6alEQ6*mC^c#};5_W`PtMFRN;#Q)v^05U - + + Swedish + + + + About O programie @@ -149,32 +154,32 @@ CAudioMixerBoard - + Personal Mix at the Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. - + Server Serwer - + T R Y I N G T O C O N N E C T P R Ó B U J Ę S I Ę P O ŠĄ C Z Y Ć - + RECORDING ACTIVE - + Personal Mix at: @@ -381,44 +386,44 @@ - + Alias/Name Nick/Imię - + Instrument Instrument - + Location Lokalizacja - - - + + + Skill Level - + Beginner Początkujący - + Intermediate Średniozaawansowany - + Expert Ekspert - + Musician Profile Profil muzyka @@ -1682,28 +1687,28 @@ nie jestem pewna CHelpMenu - + &Help &Pomoc - - + + Getting &Started... &Zaczynajmy... - + Software &Manual... &Instrukcja programu... - + What's &This &Co to - + &About... &O programie... @@ -1711,12 +1716,12 @@ nie jestem pewna CLanguageComboBox - + Restart Required - + Please restart the application for the language change to take effect. @@ -1724,102 +1729,102 @@ nie jestem pewna CLicenceDlg - + I &agree to the above licence terms - + Accept - + Decline - + By connecting to this server and agreeing to this notice, you agree to the following: - + 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. @@ -1827,307 +1832,307 @@ nie jestem pewna CMusProfDlg - - + + Musician Profile Profil muzyka - + Alias/Name Nick/Imię - + Instrument Instrument - + Country Kraj - + City Miasto - + Skill Umiejętności - + &Close &Zamknij - - - + + + None *nie jestem pewna Żaden - + Beginner Początkujący - + Intermediate Średniozaawansowany - + Expert Ekspert - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. - + Alias or name edit box - + Instrument picture button - + Country flag button - + City edit box - + Skill level combo box - + Drum Set Zestaw perkusyjny - + Djembe Djembe - + Electric Guitar Gitara elektryczna - + Acoustic Guitar Gitara akustyczna - + Bass Guitar Gitara basowa - + Keyboard Keyboard - + Synthesizer Syntezator - + Grand Piano Fortepian - + Accordion Akordeon - + Vocal Wokal - + Microphone Mikrofon - + Harmonica Harmonijka ustna - + Trumpet Trąbka - + Trombone Puzon - + French Horn Waltornia - + Tuba Tuba - + Saxophone Saksofon - + Clarinet Klarnet - + Flute Flet - + Violin Skrzypce - + Cello Wiolonczela - + Double Bass Kontrabas - + Recorder *nie wiem Flet prosty - + Streamer Streamer - + Listener Słuchacz - + Guitar+Vocal Gitara+Wokal - + Keyboard+Vocal Keyboard+Wokal - + Bodhran Bodhran - + Bassoon Fagot - + Oboe Obój - + Harp Harfa - + Viola Altówka - + Congas Kongi - + Bongo Bongo - + Vocal Bass Bas - + Vocal Tenor Tenor - + Vocal Alto Alt - + Vocal Soprano Sopran - + Banjo Banjo - + Mandolin Mandolina - + Ukulele Ukulele - + Bass Ukulele Ukulele basowe @@ -2336,7 +2341,12 @@ nie jestem pewna - + + Type a message here. If no message is set, the server welcome is disabled. + + + + ERROR @@ -2357,7 +2367,7 @@ nie jestem pewna - + E&xit &Wyjdź @@ -2379,22 +2389,17 @@ nie jestem pewna - - server - - - - + Select Main Recording Directory - + Predefined Address - + Server @@ -2459,7 +2464,7 @@ nie jestem pewna - + &Window @@ -2543,7 +2548,7 @@ nie jestem pewna - + Name Nazwa @@ -2553,13 +2558,28 @@ nie jestem pewna - + + Server Setup + + + + + Chat Window Welcome (HTML/CSS Supported) + + + + + Options + + + + Start Minimized on Windows Start *nie jestem pewna Uruchom jako zminimalizowany przy starcie Windowsa - + Show Creative Commons BY-NC-SA 4.0 Licence Dialog @@ -2569,53 +2589,53 @@ nie jestem pewna Ustaw mój serwer jako publiczny (zarejestruj na liście) - + Genre - - + + STATUS STATUS - + Custom Central Server Address: Własny adres serwera centralnego: - + My Server Info Informacje o serwerze - + Location: City Lokalizacja: Miasto - + Location: Country Lokalizacja: Kraj - + Recording Directory - + Enable Jam Recorder - + New Recording - + Language @@ -2631,11 +2651,6 @@ nie jestem pewna Recordings folder Katalog nagrań - - - TextLabelNameVersion - - CSound @@ -2823,17 +2838,17 @@ nie jestem pewna QCoreApplication - + , Version - + Internet Jam Session Software - + Released under the GNU General Public License (GPL) diff --git a/src/res/translation/translation_pt_BR.qm b/src/res/translation/translation_pt_BR.qm index 069c91b200a6ef4919dd2b467e5d467f95b39283..af78c1883d8e36bb928ad52d1f9a9909a7e0e6e5 100644 GIT binary patch delta 9695 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 oETF2>;(@$cbM>|$l5qbmN3jux# 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 eAz@J-!L!4B!{X-7oD-e?IGPz1d>7Bct^NPolonês - + + Swedish + + + + About Sobre o @@ -205,32 +210,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mixagem Pessoal no Servidor - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Quando conectado a um servidor, estes controles permite definir sua mixagem local sem afetar o que os outros ouvem de você. O título exibe o nome do servidor e, quando conhecido, se está ativamente gravando. - + Server Servidor - + T R Y I N G T O C O N N E C T T E N T A N D O C O N E C T A R - + RECORDING ACTIVE GRAVAÇÃO ATIVA - + Personal Mix at: Mixagem Pessoal em: @@ -440,44 +445,44 @@ G - + Alias/Name Apelido/Nome - + Instrument Instrumento - + Location Localização - - - + + + Skill Level Nível de Habilidade - + Beginner Principiante - + Intermediate Intermediário - + Expert Avançado - + Musician Profile Perfil do músico @@ -2013,28 +2018,28 @@ CHelpMenu - + &Help &Ajuda - - + + Getting &Started... Como Começa&r... - + Software &Manual... &Manual do Programa... - + What's &This O que é &isto - + &About... &Sobre... @@ -2042,12 +2047,12 @@ CLanguageComboBox - + Restart Required É necessário reiniciar - + Please restart the application for the language change to take effect. Reinicie a aplicação para que a alteração de idioma entre em vigor. @@ -2055,102 +2060,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 conectar-se a este servidor e concordar com este aviso, você concorda 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 remixar, 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ê remixar, transformar, ou criar a partir do material, deve distribuir as suas contribuições sob a mesma licença que do 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. @@ -2162,85 +2167,85 @@ . 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 apelido - + 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 Seletor do nível de habilidade - - - + + + None Nenhum - - + + Musician Profile Perfil do músico - + Alias/Name Apelido/Nome - + Instrument Instrumento - + Country País - + City Cidade - + Skill Habilidade - + &Close &Fechar - + Beginner Principiante - + Intermediate Intermediário - + Expert Avançado @@ -2253,222 +2258,222 @@ O que definir aqui aparecerá por baixo do seu fader na secção de mistura quando estiver ligado a um servidor - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Escreva o seu nome ou um apelido aqui para que os outros músicos com quem quer tocar saibam quem você é. Além disso, pode também definir uma imagem do instrumento que toca e uma bandeira do país onde vive. A cidade onde 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 Jamulus server. This tag will also be shown at each client which is connected to the same server as you. O que definir aqui aparecerá abaixo do seu fader no mixer quando estiver conectado a um servidor Jamulus. Esta etiqueta também será exibida em cada cliente que estiver conectado ao mesmo 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 - + Vocal Bass Voz Baixo - + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Bandolim - + Ukulele Ukulele - + Bass Ukulele Ukulele Baixo @@ -2773,7 +2778,12 @@ Se o diretório de gravação não é utilizável, o problema será exibido no lugar do diretório. - + + Type a message here. If no message is set, the server welcome is disabled. + + + + ERROR ERRO @@ -2798,7 +2808,7 @@ - + E&xit &Sair @@ -2820,17 +2830,16 @@ &Abrir servidor - server - + - + Select Main Recording Directory Selecione Diretório Principal de Gravação - + Predefined Address Endereço Predefinido @@ -2867,12 +2876,12 @@ Servidor Padrão (America do Norte) - + Server - Servidor - + &Window &Janela @@ -2936,7 +2945,7 @@ - + Name Nome do Servidor @@ -2946,12 +2955,27 @@ Tamanho do Jitter Buffer - + + Server Setup + + + + + Chat Window Welcome (HTML/CSS Supported) + + + + + Options + + + + Start Minimized on Windows Start Iniciar Minimizado com o Sistema Operacional - + Show Creative Commons BY-NC-SA 4.0 Licence Dialog Mostrar Diálogo da Licença Creative Commons BY-NC-SA 4.0 @@ -2961,38 +2985,38 @@ Tornar Meu Servidor Público (Registrar na Lista de Servidores) - + Genre - - + + STATUS ESTADO - + Custom Central Server Address: Endereço do Servidor Central Personalizado: - + Recording Directory Diretório de Gravação - + Enable Jam Recorder Ativar Gravação da Jam - + New Recording Nova Gravação - + Language Idioma @@ -3001,17 +3025,17 @@ Endereço do Servidor Central: - + My Server Info Informação do Meu Servidor - + Location: City Localização: Cidade - + Location: Country Localização: País @@ -3028,9 +3052,8 @@ Pasta de gravações - TextLabelNameVersion - TextLabelNameVersion + TextLabelNameVersion @@ -3219,17 +3242,17 @@ QCoreApplication - + , Version , Versão - + Internet Jam Session Software Programa de Jam Sessions pela Internet - + Released under the GNU General Public License (GPL) Lançado sob a Licença Pública Geral GNU (GPL) diff --git a/src/res/translation/translation_pt_PT.qm b/src/res/translation/translation_pt_PT.qm index aa8ecaddd0bf068a4fdc18281e65e2b65e4da154..00d0179ee3b02e69f1a538dbd8b1e4a301520d68 100644 GIT binary patch delta 1297 zcmXApdr(wW9LK-E-M#y`d+%LgB7|U$i=ZHif{M@(B~VFb zO`@G}YSferO*FG4!B9YrPzTV|d@wkgh>oH_Cg_f0ouR)zbI!~;=llJh?>YV3v{x&& zE|K+_qtEs4sBE`-G^JOaxDf-G2DZBVOOu%kB~vuZq7v`dyAWS)0_i`*^vs(e!(~iA z9RL#5NC>M0cC1)fCM;KN0L3P=cCD*b6pH$917%x; z;;VT;TZZt-ianr&4q;Q?W{}@uCg@TP8lmP)6Hxn-C~KYg6jdhI{W zX@HMO`_#f0M9yX9`mx>%?&>__lR?vO>B1aEAYHRA+VTzX!9`t?g-37mW$k*4TeWVn z<0WWzjBcI%GEiJQLh|%wg2CdHru*tj5l~+qQ;XC=S@0_YqRu3puR!5GY4xJ#wsS{(k1Cm}6$u$fuh- zfMaLn)@4gU!3lE55Y zuDFg@D<1k9;Q21ax1xnP zHYkl3Hv_(JDc4+VAakH{Tj#?&xkq_W(g>XTRC&0GEAVV#S*ASaoEp=qY%V0`Gt;S3 zo<+!Y)?>1~I?vIeU*Xcd(B>r^M1oO>s^Gv}T;Gac2M-i;cU ziH9=XPWEoDK4tYdx~S$z*A&1B8(iMdV&*~#)XE%G=ItvYy3z#FeTtaODI6(;pbS>gUdmSkD5!<5im5O!Zhr;Ke=_Txx#?=}umh@f+D!vp~ zcH{wV>EajJ+dwm(iEHxKgZwWsQJd=QFYfy5C{XuWY<}|(C~h@#XshTt>(d4Z_7XNi z7v;P|^Q373;A7G}v+%-+Wvo=^E6vN(nxhl=etNb?=SqpJMQ3qu*Df4*4N5$zEwrBl zR@S{mGAFWEI*aoy?Kf8%fv3^hZ{>K<%tGd`pX|I%d)LARjNPu2ySO;>U$avEYD#9J zG?^OMG%1Uovptf#wzWMFH0&U2k){utl^|ti-2hh2l`{KyQ9&d#8!XmlDR?1t2^cIj^54?s$XbWg7b#n=q$U9Ld#P=iht3#cv{ zoO}X!6LSr=nT5cuDnnFc1t{Cb9vEzNnvIY{g^Xxsm&ZC+8aj7h=3aVYxEdS9F`sRb zJ-tJQ$%79FAm3owT*^-hij_U9`hb6zzeNgr#=7LO<>O`hMkB~2UCwE6=WPAuobCW1 zb&;HVI07{F7kSxDUR`@xF1T<8l(kR(s+${kMYYWQjDWse{@&We4OuHU5a;RWeutNL z%O|E5fudA$%bZTYOOo4k!JzRk<+cq4Kt!l~YTPt{ty8>4dt2lI`_~{-reeHU3ksR1 zc+`qO&Cs_<(Ib@5p1q))YIa_kE~JfPW~1kn#31EFQ#fJ0l)W+7hP;1&$-6y zS|5 - + + Swedish + + + + About Sobre o @@ -204,32 +209,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mistura Pessoal no Servidor - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Quando ligado a um servidor, estes controles permitem que defina a sua mistura local sem afectar o que os outros ouvem. O título mostra o nome do servidor e, quando conhecido, se está gravando activamente. - + Server Servidor - + T R Y I N G T O C O N N E C T T E N T A N D O L I G A R - + RECORDING ACTIVE GRAVAÇÃO ACTIVA - + Personal Mix at: Mistura Pessoal no Servidor: @@ -439,44 +444,44 @@ G - + Alias/Name Nome/Alcunha - + Instrument Instrumento - + Location Localização - - - + + + Skill Level Nível de Habilidade - + Beginner Principiante - + Intermediate Intermediário - + Expert Avançado - + Musician Profile Perfil do músico @@ -2010,28 +2015,28 @@ CHelpMenu - + &Help &Ajuda - - + + Getting &Started... Como Começa&r... - + Software &Manual... &Manual do Programa... - + What's &This O que é &isto - + &About... &Sobre... @@ -2039,12 +2044,12 @@ CLanguageComboBox - + Restart Required - + Please restart the application for the language change to take effect. @@ -2052,102 +2057,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. @@ -2159,85 +2164,85 @@ . 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 @@ -2250,222 +2255,222 @@ O que definir aqui aparecerá por baixo do seu fader na secção de mistura quando estiver ligado a um servidor - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Escreva 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 também definir uma imagem do instrumento que toca e uma bandeira do país onde vive. A cidade onde 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 Jamulus server. This tag will also be shown at each client which is connected to the same server as you. O que definir aqui aparecerá por baixo do seu fader na secção de mistura quando estiver ligado a um servidor Esta etiqueta também será exibida em cada cliente que estiver ligado ao mesmo 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 - + Vocal Bass Voz Baixo - + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Bandolim - + Ukulele Ukulele - + Bass Ukulele Ukulele Baixo @@ -2770,7 +2775,12 @@ - + + Type a message here. If no message is set, the server welcome is disabled. + + + + ERROR @@ -2795,7 +2805,7 @@ - + E&xit &Sair @@ -2817,17 +2827,16 @@ &Abrir servidor - server - + - + Select Main Recording Directory - + Predefined Address Endereço Predefinido @@ -2864,12 +2873,12 @@ Servidor Padrão (America do Norte) - + Server - Servidor - + &Window &Janela @@ -2933,7 +2942,7 @@ - + Name Nome do Servidor @@ -2943,12 +2952,27 @@ Tamanho do Jitter Buffer - + + Server Setup + + + + + Chat Window Welcome (HTML/CSS Supported) + + + + + Options + + + + Start Minimized on Windows Start Iniciar Minimizado com o Sistema Operativo - + Show Creative Commons BY-NC-SA 4.0 Licence Dialog Mostrar Diálogo da Licença Creative Commons BY-NC-SA 4.0 @@ -2958,38 +2982,38 @@ Tornar Servidor Público (Registar na Lista de Servidores) - + Genre Género - - + + STATUS ESTADO - + Custom Central Server Address: Endereço do Servidor Central Personalizado: - + Recording Directory - + Enable Jam Recorder - + New Recording Nova Gravação - + Language @@ -2998,17 +3022,17 @@ Endereço do Servidor Central: - + My Server Info Informação do Servidor - + Location: City Localização: Cidade - + Location: Country Localização: País @@ -3025,9 +3049,8 @@ Pasta de gravações - TextLabelNameVersion - TextLabelNameVersion + TextLabelNameVersion @@ -3216,17 +3239,17 @@ QCoreApplication - + , Version , Versão - + Internet Jam Session Software Programa de Jam Sessions pela Internet - + Released under the GNU General Public License (GPL) Lançado sob a Licença Pública Geral GNU (GPL) diff --git a/src/res/translation/translation_sv_SE.qm b/src/res/translation/translation_sv_SE.qm index 9dad8dffceb9623e88f8b96d9cd0caf25574c6fa..6c1d1196f2d831b885c5a0f2fceab262937d8604 100644 GIT binary patch literal 92378 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
)ZtEnNV-sV0^wJ$t`rgly!1CQwZ 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 MXY@Pm?6J}4pHZw9!2kdN literal 23 fcmcE7ks@*G{hX<16=n7(EZlpygMop8iIEWihQJ9+ diff --git a/src/res/translation/translation_sv_SE.ts b/src/res/translation/translation_sv_SE.ts index d2cacce2c7..c4c421892e 100644 --- a/src/res/translation/translation_sv_SE.ts +++ b/src/res/translation/translation_sv_SE.ts @@ -4,82 +4,92 @@ CAboutDlg - + This app enables musicians to perform real-time jam sessions over the internet. Applikationen gör det möjligt för musiker att spela tillsammans live över Internet. - + There is a server which collects the audio data from each client, mixes the audio data and sends the mix back to each client. Det finns en server som samlar ljud från varje klient, blandar ljudet och skickar mixen tillbaka till varje klient. - + This app uses the following libraries, resources or code snippets: Denna applikationen använder följande bibliotek, resurser eller kodavsnitt: - + Qt cross-platform application framework Qt cross-platform applikationramverk - + Audio reverberation code by Perry R. Cook and Gary P. Scavone Ljudklangkod av Perry R. Cook och Gary P. Scavone - + Some pixmaps are from the Vissa pixmaps är från - + Country flag icons by Mark James Landsflaggsymboler gjorda av Mark James - + For details on the contributions check out the För detaljer om bidrag, kolla in - + Github Contributors list - Github's bidragsgivarlista + Github's bidragsgivarlista - + Spanish Spanska - + French Franska - + Portuguese Portugisiska - + Dutch Holländska - + Italian Italienska - + German Tyska - + + Polish + + + + + Swedish + + + + About Om @@ -143,32 +153,32 @@ CAudioMixerBoard - + Personal Mix at the Server Personlig mix på servern - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. När du är ansluten till en server låter kontrollerna här ställa in din lokala mix utan att påverka vad andra hör från dig. Titeln visar servernamnet och, om det är känt, om den aktivt spelar in. - + Server Server - + T R Y I N G T O C O N N E C T F Ö R S Ö K E R A N S L U T A - + RECORDING ACTIVE INSPELNING AKTIV - + Personal Mix at: Personlig mix på: @@ -177,199 +187,242 @@ CChannelFader - - + + Pan Panorera - - + + Mute Tyst - - + + Solo Solo - + + No grouping + + + + + + + + Assign to group + + + + Channel Level Kanalnivå - + Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. Visar ljudnivån för fader på denna kanal. Alla klienter som är anslutna till servern tilldelas en ljudnivå och har samma värde för alla klienter. - + Input level of the current audio channel at the server Ingångsnivå för den aktuella ljudkanalen på servern - + Mixer Fader Mixer - + Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. Justerar ljudnivån på den här kanalen. Alla klienter som är anslutna till servern tilldelas en ljudfader som visas vid varje klient för att justera den lokala mixen. - + Local mix level setting of the current audio channel at the server Lokal mixernivåinställning för den aktuella ljudkanalen på servern - + Status Indicator Statusindikator - + Shows a status indication about the client which is assigned to this channel. Supported indicators are: Visar en statusindikering om klienten som tilldelas denna kanal. Stödjade indikatorer är - + Speaker with cancellation stroke: Indicates that another client has muted you. Högtalare med streck över: Visar att en annan klient har stängt av ditt ljud. - + Status indicator label Statusindikator etikett - + Panning Panorering - + Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. Ställer in panorering från vänster till höger för kanalen. Fungerar endast i stereo eller helst mono in / stereo ut-läge. - + Local panning position of the current audio channel at the server Lokal panoreringsposition för den aktuella ljudkanalen på servern - + With the Mute checkbox, the audio channel can be muted. Med kryssrutan Stäng av kan ljudkanalen stängas av. - + Mute button Stäng av knapp - + With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. Med kryssrutan Solo kan ljudkanalen ställas in på solo vilket innebär att alla andra kanaler utom solokanalen är avstängda. Det är möjligt att ställa in mer än en kanal för solo. - + Solo button Soloknapp - + + Group + + + + + With the Grp checkbox, a group of audio channels can be defined. All channel faders in a group are moved in proportional synchronization if any one of the group faders are moved. + + + + + Group button + + + + Fader Tag Panoreringstagg - + The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. Fader-taggen identifierar den anslutna klienten. Etikettnamnet, en bild av ditt instrument och ditt lands flagga kan ställas in i huvudfönstret. - + Mixer channel instrument picture Mixerkanalens instrumentbild - + Mixer channel label (fader tag) Mixerkanalens etikett (fader) - + Mixer channel country flag Mixerkanalens landsflagga - + PAN PAN - + MUTE TYST - + SOLO SOLO - + + GRP + + + + M T - + S S - + + G + + + + + Grp + + + + Alias/Name Alias/Namn - + Instrument Instrument - + Location Plats - - - + + + Skill Level Skicklighetsnivå - + Beginner Nybörjare - + Intermediate Mellannivå - + Expert Expert - + Musician Profile Musikprofil @@ -406,23 +459,41 @@ New chat text edit box Ny redigeringsruta för chatt-text + + + Type a message here + + + + + &Edit + &Redigera + + + + Cl&ear Chat History + + CChatDlgBase - + Chat Chatt - + + &Send + + + Cl&ear - R&ensa + R&ensa - &Close - &Stäng + &Stäng @@ -484,7 +555,7 @@ - Local Audio Input Fader + Local Audio Input Fader Lokal ljudingångsfader @@ -494,7 +565,7 @@ - + L V @@ -634,93 +705,98 @@ LED-indikator för buffertstatus - - + + C&onnect &Anslut - + &View &Vy - + &Connection Setup... Anslutningsinställningar... - + My &Profile... Min &profil... - + C&hat... C&hatt - + &Settings... - + Inställningar... - + &Analyzer Console... Anal&yskonsol... - + E&xit &Avsluta - + &Edit &Redigera - + Sort Channel Users by &Name Sortera kanalanvändare efter &Namn - + Sort Channel Users by &Instrument Sortera kanalanvändare efter &Instrument - + + Sort Channel Users by &Group + + + + None Ingen - + Center Mitten - + R H - + Central Server Central server - + user användare - + users användare - + D&isconnect Koppla &ner @@ -728,72 +804,72 @@ CClientDlgBase - + Delay Fördröjning - + Buffers Buffert - + Input Ingång - + L V - + R H - + Settings Inställningar - + Chat Chatt - + Mute Myself Tysta mig själv - + C&onnect &Koppla upp - + Pan Pan - + Center Mitten - + Reverb Reverb - + Left Vänster - + Right Höger @@ -801,492 +877,492 @@ CClientSettingsDlg - + Jitter Buffer Size Jitter bufferstorlek - + The jitter buffer compensates for network and sound card timing jitters. The size of the buffer therefore influences the quality of the audio stream (how many dropouts occur) and the overall delay (the longer the buffer, the higher the delay). - + You can set the jitter buffer size manually for the local client and the remote server. For the local jitter buffer, dropouts in the audio stream are indicated by the light below the jitter buffer size faders. If the light turns to red, a buffer overrun/underrun has taken place and the audio stream is interrupted. Jitterbufferten kompenserar för nätverks- och ljudkortets timeing. Storleken på bufferten påverkar därför kvaliteten på ljudströmmen (hur många bortfall som inträffar) och den totala förseningen (ju längre bufferten är, desto högre är fördröjningen). - + The jitter buffer setting is therefore a trade-off between audio quality and overall delay. Jitterbuffertinställningen är därför en avvägning mellan ljudkvalitet och total fördröjning. - + If the Auto setting is enabled, the jitter buffers of the local client and the remote server are set automatically based on measurements of the network and sound card timing jitter. If Auto is enabled, the jitter buffer size faders are disabled (they cannot be moved with the mouse). Om Auto-inställningen är aktiverad, ställs jitterbuffertarna för den lokala klienten och fjärrservern in automatiskt baserat på mätningar av nätverkets och ljudkortets timingjitter. Om Auto är aktiverat inaktiveras jitterbuffertstorleken (de kan inte justeras). - + If the Auto setting 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 and to lower the jitter buffer size manually by using the sliders until your personal acceptable amount of dropouts is reached. The LED indicator will display the audio dropouts of the local jitter buffer with a red light. Om Auto-inställningen är aktiverad ställs nätverksbuffertarna för den lokala klienten och fjärrservern in på ett konservativt värde för att minimera sannorlikheten för ljudbortfall. För att justera ljudfördröjningen/latensen rekommenderas att du inaktiverar Auto-inställningen och att sänka jitterbuffertstorleken manuellt genom att använda reglagen tills din personliga acceptabla mängd bortfall uppnåtts. LED-indikatorn visar ljudavfallet från den lokala jitterbufferten med rött ljus. - + Local jitter buffer slider control Lokalt jitterbuffertreglage - + Server jitter buffer slider control Server jitter buffertreglage - + Auto jitter buffer switch Auto jitter buffert reglage - + Jitter buffer status LED indicator Jitter buffert status LED-indikator - + Sound Card Device Ljudkortsenhet - + The ASIO driver (sound card) can be selected using ASIO-drivrutinen (ljudkort) kan väljas med - + 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. under Microsoft Windows. Under MacOS/Linux är inget ljudkortsval möjligt. Om den valda ASIO-drivrutinen inte är giltig visas ett felmeddelande och den tidigare giltiga drivrutinen väljs. - + If the driver is selected during an active connection, the connection is stopped, the driver is changed and the connection is started again automatically. Om drivrutinen väljs under en aktiv anslutning stoppas anslutningen, drivrutinen ändras och anslutningen startas automatiskt igen. - + Sound card device selector combo box Ljudkortsenhetens kombinationsruta - + If the ASIO4ALL driver is used, please note that this driver usually introduces approx. 10-30 ms of additional audio delay. Using a sound card with a native ASIO driver is therefore recommended. Om ASIO4ALL-drivrutinen används, observera att den här drivrutinen vanligtvis introducerar ca. 10-30 ms extra ljudfördröjning. Det rekommenderas därför att använda ett ljudkort med en inbyggd ASIO-drivrutin. - + If you are using the kX ASIO driver, make sure to connect the ASIO inputs in the kX DSP settings panel. Om du använder kX ASIO-drivrutinen, se till att ansluta ASIO-ingångarna på kX DSP-inställningspanelen. - + Sound Card Channel Mapping Ljudkortets kanalval - + If the selected sound card device offers more than one input or output channel, the Input Channel Mapping and Output Channel Mapping settings are visible. Om den valda ljudkortsenheten erbjuder mer än en ingångs- eller utgångskanal är inställningarna för inmatningskanalens mappning och utmatningskanal synliga. - + For each För varje - + input/output channel (Left and Right channel) a different actual sound card channel can be selected. ingångs-/utgångskanal (vänster- och högerkanal) kan en annan faktisk ljudkortkanal väljas. - + Left input channel selection combo box Vänster ingångskanalvalskombinationsruta - + Right input channel selection combo box Höger ingångskanalvalskombinationsruta - + Left output channel selection combo box Vänster utgångskanalvalskombinationsruta - + Right output channel selection combo box Höger utgångskanalvalskombinationsruta - + Enable Small Network Buffers Aktivera liten nätverksbuffert - + If enabled, the support for very small network audio packets is activated. Very small network packets are only actually used if the sound card buffer delay is smaller than Om det är aktiverat aktiveras stödet för mycket små nätverksljudpaket. Mycket små nätverkspaket används faktiskt bara om ljudkortsbuffertfördröjningen är mindre än - + samples. The smaller the network buffers, the lower the audio latency. But at the same time the network load increases and the probability of audio dropouts also increases. bitars buffert. Ju mindre nätbuffertarna är, desto lägre är ljudet. Men samtidigt ökar nätverksbelastningen och sannolikheten för ljudavbrott ökar också. - + Enable small network buffers check box Aktivera kryssrutan för små nätverksbuffertar - + Sound Card Buffer Delay Ljudkortets buffertfördröjning - + The buffer delay setting is a fundamental setting of this software. This setting has an influence on many connection properties. Inställningen för buffertfördröjning är en grundläggande inställning för denna applikation. Denna inställning påverkar många anslutningsegenskaper. - + Three buffer sizes are supported Tre buffertstorlekar stöds - + 64 samples: The preferred setting. Provides the lowest latency but does not work with all sound cards. 64 bitars buffert: Den rekommenderade inställningen. Den ger den lägsta latensen men fungerar inte med alla ljudkort. - + 128 samples: Should work for most available sound cards. 128 bitars buffert: Bör fungera för alla ljudkort. - + 256 samples: Should only be used on very slow computers or with a slow internet connection. 265 bitars buffert: Ska endast användas med långsamma datorer eller med långsam internetkoppling. - + Some sound card drivers do not allow the buffer delay to be changed from within the application. In this case the buffer delay setting is disabled and has to be changed using the sound card driver. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. Vissa ljudkortdrivrutiner tillåter inte buffertfördröjningen att ändras från applikationen. I detta fall avbryts inställningen för buffertfördröjning och måste ändras med ljudkortsdrivrutinen. I Windows trycker du på ASIO-inställningsknappen för att öppna drivrutinsinställningspanelen. I Linux använder du Jack-konfigurationsverktyget för att ändra buffertstorleken. - + If no buffer size is selected and all settings are disabled, an unsupported buffer size is used by the driver. The application will still work with this setting but with restricted performance. Om ingen buffertstorlek är vald och alla inställningar är inaktiverade, används en icke-stödd buffertstorlek av drivrutinen. Applikationen fungerar fortfarande med den här inställningen men med begränsad prestanda. - + The actual buffer delay has influence on the connection status, the current upload rate and the overall delay. The lower the buffer size, the higher the probability of a red light in the status indicator (drop outs) and the higher the upload rate and the lower the overall delay. Den faktiska buffertfördröjningen har påverkan på anslutningsstatusen, den aktuella uppladdningshastigheten och den totala förseningen. Ju lägre buffertstorlek, desto högre är sannolikheten för rött ljus i statusindikatorn (drop outs) och desto högre uppladdningshastighet och desto lägre blir den totala fördröjningen. - + The buffer setting is therefore a trade-off between audio quality and overall delay. Buffertinställningen är därför en avvägning mellan ljudkvalitet och total fördröjning. - + If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. Om buffertfördröjningsinställningarna är inaktiverade är det ljuddrivrutinen som begränsar och det är inte möjligt att ändra denna inställning från applikationen. I Microsoft Windows trycker du på ASIO-inställningsknappen för att öppna drivrutinsinställningspanelen. I Linux använder du Jack-konfigurationsverktyget för att ändra buffertstorleken. - + 64 samples setting radio button 64 bitars buffertknapp - + 128 samples setting radio button 128 bitars buffertknapp - + 256 samples setting radio button 256 bitars buffertknapp - + ASIO setup push button ASIO-inställningsknapp - + Skin Skal - + Select the skin to be used for the main window. Välj skal som ska användas för huvudfönstret. - + Skin combo box Kombineringsknapp för skal - + Display Channel Levels Visa kanalnivåer - + If enabled, each client channel will display a pre-fader level bar. Om detta är aktiverat kommer varje klientkanal att visa ett nivåfält före varje fader. - + Display channel levels check box Visa kryssrutan för visa kanalnivåer - + Audio Channels Ljudkanaler - + Selects the number of audio channels to be used for communication between client and server. There are three modes available: Väljer antalet ljudkanaler som ska användas för kommunikation mellan klient och server. Det finns tre lägen tillgängliga: - - + + Mono Mono - + and och - - - + + + Stereo Sterio - + These modes use one and two audio channels respectively. Dessa lägen använder respektive en och två ljudkanaler. - + Mono in/Stereo-out Mono in/Stereo-ut - + The audio signal sent to the server is mono but the return signal is stereo. This is useful if the sound card has the instrument on one input channel and the microphone on the other. In that case the two input signals can be mixed to one mono channel but the server mix is heard in stereo. Ljudsignalen som skickas till servern är mono men retursignalen är stereo. Detta är användbart om ljudkortet har instrumentet på en ingångskanal och mikrofonen på den andra. I så fall kan de två insignalerna blandas till en monokanal men servermixen hörs i stereo. - + Enabling Möjliggör - + mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. kommer att öka dataströmmen. Se till att din uppladdningshastighet inte överstiger den tillgängliga uppladdningshastigheten för din internetanslutning. - + In stereo streaming mode, no audio channel selection for the reverb effect will be available on the main window since the effect is applied to both channels in this case. I stereo-strömningsläge kommer inget val av ljudkanal för reverb-effekten att finnas tillgängligt i huvudfönstret eftersom effekten tillämpas på båda kanalerna i detta fall. - + Audio channels combo box Kombineringsknapp för ljudkanalerna - + Audio Quality Ljudkvalitet - + The higher the audio quality, the higher your audio stream's data rate. Make sure your upload rate does not exceed the available bandwidth of your internet connection. Ju högre ljudkvalitet, desto högre datahastighet krävs. Se till att din uppladdningshastighet inte överstiger den tillgängliga bandbredden för din internetanslutning. - + Audio quality combo box Kombineringsknapp för ljudkvalitet - + New Client Level Ny klientnivå - + This setting defines the fader level of a newly connected client in percent. If a new client connects to the current server, they will get the specified initial fader level if no other fader level from a previous connection of that client was already stored. Denna inställning definierar fadernivån för en nyansluten klient i procent. Om en ny klient ansluter till den aktuella servern, kommer de att få den angivna initiala fader-nivån om ingen annan fader-nivå från en tidigare anslutning av den klienten redan lagrats. - + New client level edit box Redigeringsruta för en ny klient - + Custom Central Server Address Anpassad central serveradress - + Leave this blank unless you need to enter the address of a central server other than the default. Lämna detta tomt om du inte behöver ange adressen till en annan central server än standard. - + Central server address line edit Ändra central serveradress - + Current Connection Status Parameter Parameter för aktuell anslutningsstatus - + The Ping Time is the time required for the audio stream to travel from the client to the server and back again. This delay is introduced by the network and should be about 20-30 ms. If this delay is higher than about 50 ms, your distance to the server is too large or your internet connection is not sufficient. Ping-tiden är den tid som krävs för ljudströmmen att resa från klienten till servern och tillbaka igen. Denna fördröjning införs av nätverket och bör vara cirka 20-30 ms. Om denna fördröjning är högre än cirka 50 ms är ditt avstånd till servern för stort eller din internetanslutning är inte tillräcklig. - + Overall Delay is calculated from the current Ping Time and the delay introduced by the current buffer settings. Övergripande fördröjning beräknas utifrån den aktuella Ping-tiden och den fördröjning som införts av de aktuella buffertinställningarna. - + Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net). Uppströmsfrekvensen för ljudet beror på den aktuella ljudpaketstorleken och komprimeringsinställningen. Se till att uppströmshastigheten inte är högre än din tillgängliga internetuppladdningshastighet (kolla detta med en tjänst som exempelvis speedtest.net). - + If this LED indicator turns red, you will not have much fun using the Om den här LED-indikatorn blir röd kommer du inte ha så kul med att använda - + software. applikationen. - + ASIO Setup Inställningar för ASIO - + Mono-in/Stereo-out Mono-in/Stereo-ut - + Low Låg - - + + Normal Normal - + High Hög - + Fancy Fancy - + Compact Kompakt - + preferred föredraget - - + + Size: Storlek: - + Buffer Delay Buffertfördröjning - + Buffer Delay: Buffertfördröjning: - + The selected audio device could not be used because of the following error: Den valda ljudenheten kunde inte användas på grund av följande fel: - + The previous driver will be selected. Den föregående drivrutinen kommer att väljas. - + Ok Okej - + Custom Eget - + All Genres Alla genrer - + Genre Rock Genre Rock - + Genre Jazz Genre Jazz - + Genre Classical/Folk/Choir Genre Klassiskt/Folkmusik/Kör - + Default Standard @@ -1323,7 +1399,7 @@ R - + H @@ -1412,39 +1488,44 @@ Skal - + + Language + + + + % % - + Display Channel Levels Visa kanalnivåer - + Custom Central Server Address: Anpassad central serveradress: - + Audio Stream Rate Ljudströmshastighet - - - + + + val val - + Ping Time Pingtid - + Overall Delay Total fördröjning @@ -1598,131 +1679,144 @@ CHelpMenu - + &Help &Hjälp - - + + Getting &Started... Komma &igång ... - + Software &Manual... &Manual... - + What's &This &Var är detta - + &About... &Om... + + CLanguageComboBox + + + Restart Required + + + + + Please restart the application for the language change to take effect. + + + CLicenceDlg - + I &agree to the above licence terms Jag &accepterar ovanstående licensvillkor - + Accept Acceptera - + Decline Neka - + By connecting to this server and agreeing to this notice, you agree to the following: Genom att ansluta till denna server och godkänna detta meddelande, samtycker du till följande: - + 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 Du accepterar att all data, ljud eller andra verk som överförs till denna server ägs och skapas av dig eller dina licensgivare, och att du gör dessa data, ljud eller andra verk tillgängliga via följande Creative Commons-licens (för mer information om detta licens, se - + You are free to: Du är fri att: - + Share Dela - + copy and redistribute the material in any medium or format kopiera och omfördela materialet i vilket medium eller format som helst - + Adapt Anpssa - + remix, transform, and build upon the material remixa, transformera och bygga vidare på materialet - + The licensor cannot revoke these freedoms as long as you follow the license terms. Licensgivaren kan inte återkalla dessa friheter så länge du följer licensvillkoren. - + Under the following terms: Under följande villkor: - + Attribution Erkännande - + 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. Du måste ge lämplig kredit, ange en länk till licensen och ange om ändringar gjordes. Du kan göra det på något rimligt sätt, men inte på något sätt som antyder att licensgivaren godkänner dig eller din användning. - + NonCommercial Icke-kommersiell - + You may not use the material for commercial purposes. Du får inte använda materialet för kommersiella ändamål. - + ShareAlike Dela lika - + If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. Om du remixar, omvandlar eller bygger på materialet måste du distribuera dina bidrag under samma licens som originalet. - + No additional restrictions Inga ytterligare begränsningar - + You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. Du får inte tillämpa juridiska villkor eller tekniska åtgärder som lagligen begränsar andra från att göra något som licensen tillåter. @@ -1730,310 +1824,310 @@ CMusProfDlg - + No Name Inget namn - - + + Musician Profile Musikprofil - + Alias/Name Alias/Namn - + Instrument Instrument - + Country Land - + City Stad - + Skill Färdighetsnivå - + &Close &Stäng - - - + + + None Ingen - + Beginner Nybörjare - + Intermediate Mellannivå - + Expert Expert - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Skriv ditt namn eller ett alias här så att de andra musikerna du vill spela med vet vem du är. Du kan också lägga till en bild av instrumentet du spelar och en flagga för det land du befinner dig i. Din stad och din färdighetsnivå som spelar ditt instrument kan också läggas till. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. - + Alias or name edit box Redigeringsruta för alias eller namn - + Instrument picture button Knapp för instrumentbild - + Country flag button Knapp för landsflagga - + City edit box Redigeringsruta för stad - + Skill level combo box kombinationsruta för färdighetsnivå - + Drum Set Trumset - + Djembe Djembe - + Electric Guitar Elgitarr - + Acoustic Guitar Akustisk gitarr - + Bass Guitar Basgitarr - + Keyboard Klaviatur - + Synthesizer Synthesizer - + Grand Piano Flygel - + Accordion Dragspel - + Vocal Sång - + Microphone Mikrofon - + Harmonica Munspel - + Trumpet Trumpet - + Trombone Trombon - + French Horn Valthorn - + Tuba Tuba - + Saxophone Saxofon - + Clarinet Klarinett - + Flute Flöjt - + Violin Fiol - + Cello Cello - + Double Bass Kontrabas - + Recorder Inspelningsapparat - + Streamer Streamer - + Listener Lyssnare - + Guitar+Vocal Gitarr+sång - + Keyboard+Vocal - + Bodhran Klaviatur+Sång - + Bassoon Fagott - + Oboe Oboe - + Harp Harpa - + Viola Altfiol - + Congas Congas - + Bongo Bongo - + Vocal Bass Sång (bas) - + Vocal Tenor Sång (tenor) - + Vocal Alto Sång (alt) - + Vocal Soprano Sång (sopran) - + Banjo Banjo - + Mandolin Mandolin - + Ukulele - + Bass Ukulele Ukulele @@ -2041,290 +2135,404 @@ CServerDlg - + Client List Klientlista - + The client list shows all clients which are currently connected to this server. Some information about the clients like the IP address and name are given for each connected client. Klientlistan visar alla klienter som för närvarande är anslutna till den här servern. Viss information om klienterna som IP-adressen och namnet ges för varje ansluten klient. - + Connected clients list view Lista över anslutna klienter - + Start Minimized on Operating System Start Start Minimerad vid operativsystemets start - + If the start minimized on operating system start check box is checked, the server will be started when the operating system starts up and is automatically minimized to a system task bar icon. Om kryssrutan Starta minimerad på operativsystemets start är markerad kommer servern att startas när operativsystemet startar och minimeras automatiskt till en ikon för systemaktivitetsfält. - + Show Creative Commons Licence Dialog Visa Creative Commons licensedialog - + If enabled, a Creative Commons BY-NC-SA 4.0 Licence dialog is shown each time a new user connects the server. Om den är aktiverad visas en Creative Commons BY-NC-SA 4.0 licensdialog varje gång en ny användare ansluter till servern. - + Make My Server Public Gör min server publik - + If the Make My Server Public check box is checked, this server registers itself at the central server so that all users of the application can see the server in the connect dialog server list and connect to it. The registration of the server is renewed periodically to make sure that all servers in the connect dialog server list are actually available. Om kryssrutan Gör min server publik är markerad, registrerar den här servern sig själv på den centrala servern så att alla användare av applikationen kan se servern i anslutningsdialogens serverlista och ansluta till den. Registreringen av servern förnyas regelbundet för att se till att alla servrar i listan för anslutningsdialogserver är tillgängliga. - + Register Server Status Serverstatus om registrerad - + If the Make My Server Public check box is checked, this will show whether registration with the central server is successful. If the registration failed, please choose another server list. Om kryssrutan Gör min server publik är markerad kommer detta att visa om registrering med den centrala servern är gjord. Om registreringen misslyckades, välj en annan serverlista. - + Custom Central Server Address Anpassad central serveradress - + The custom central server address is the IP address or URL of the central server at which the server list of the connection dialog is managed. Den anpassade centrala serveradressen är IP-adressen eller URL:en för den centrala servern där serverlistan hanteras. - + Central server address line edit Ändra anpassad central serveradress - + Server List Selection Val av serverlista - + Selects the server list (i.e. central server address) in which your server will be added. Väljer serverlistan (dvs. central serveradress) där servern ska läggas till. - + Server list selection combo box Kombineringsknapp för val av serverlista - + Server Name Servernamn - + The server name identifies your server in the connect dialog server list at the clients. Servernamnet identifierar din server i anslutningsdialogens serverlista hos klienterna. - + Server name line edit Ändra servernamnet - + Location City Stad - + The city in which this server is located can be set here. If a city name is entered, it will be shown in the connect dialog server list at the clients. Här kan man visa serverns plats. Om en stad anges kommer det att visas i listan för anslutningsdialogserver på klienterna. - + City where the server is located line edit Ändra var servern befinner sig - + Location country Land - + The country in which this server is located can be set here. If a country is entered, it will be shown in the connect dialog server list at the clients. Landet där servern ligger kan skrivas in här. Om ett land anges kommer det att visas i listan för anslutningsdialogserver på klienterna. - + Country where the server is located combo box Kombineringsknapp för val av serverplacering - + + Display dialog to select recording directory button + + + + + + Main Recording Directory + + + + + Click the button to open the dialog that allows the main recording directory to be selected.The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). + + + + + Main recording directory text box (read-only) + + + + + The current value of the main recording directory. The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). Click the button to open the dialog that allows the main recording directory to be selected. + + + + + Clear the recording directory button + + + + + Clear Recording Directory + + + + + Click the button to clear the currently selected recording directory. This will prevent recording until a new value is selected. + + + + Checkbox to turn on or off server recording Knapp för att slå på eller av serverinspelning - + Enable Recorder Starta serverinspelning - + Checked when the recorder is enabled, otherwise unchecked. The recorder will run when a session is in progress, if (set up correctly and) enabled. Markerad när inspelaren är aktiverad, annars avmarkerad. Inspelaren kommer att köras när en session pågår, om (inställt korrekt och) aktiverat. - + Current session directory text box (read-only) Nuvarande inspelningskatalogtext (skrivskyddad) - + Current Session Directory Aktuell inspelningskatalog - + Enabled during recording and holds the current recording session directory. Disabled after recording or when the recorder is not enabled. Aktiverad under inspelning och har den aktuella inspelningskatalogen. Inaktiverad efter inspelning eller när inspelaren inte är aktiverad. - + Recorder status label Inspelningsstatusetikett - + Recorder Status Inspelningsstatus - + + Displays the current status of the recorder. The following values are possible: + + + + + No recording directory has been set or the value is not useable + + + + + Recording has been switched off + + + + + by the UI checkbox + + + + + , either by the UI checkbox or SIGUSR2 being received + + + + + There is no one connected to the server to record + + + + + The performers are being recorded to the specified session directory + + + + + NOTE + + + + + If the recording directory is not useable, the problem will be displayed in place of the directory. + + + + + Type a message here. If no message is set, the server welcome is disabled. + + + + + ERROR + + + Displays the current status of the recorder. - Visar inspelarens aktuella status. + Visar inspelarens aktuella status. - + Request new recording button Begär ny inspelningsknapp - + New Recording Ny inspelning - + During a recording session, the button can be used to start a new recording. Under en inspelningssession kan knappen användas för att starta en ny inspelning. - - + + E&xit A&vbryt - + &Hide &Göm - - - + + + server server - + &Open &Öppna - server - server + server - + Server Server - + &Window &Fönster - + + Select Main Recording Directory + + + + Predefined Address Förvald adress - + Recording Inspelning - + Not recording Inspelning inte aktiv - + + Not initialised + + + + Not enabled Inte aktiv - + Unregistered Oregistrerad - + Bad address Felaktig adress - + Registration requested Registreringsförfrågan skickad - + Registration failed Registrering misslyckades - + Check server version Kontrollera serverversionen - + Registered Regisrterad - + Central Server full Centrala servern är full - + + Your server version is too old + + + + + Requirements not fulfilled + + + + Unknown value Okänt värde @@ -2338,7 +2546,7 @@ - + Name Namn @@ -2348,12 +2556,47 @@ Jitter bufferstorlek - + + Server Setup + + + + + Enable Jam Recorder + + + + + New Recording + Ny inspelning + + + + Chat Window Welcome (HTML/CSS Supported) + + + + + Options + + + + + Language + + + + + Recording Directory + + + + Start Minimized on Windows Start Starta minimerad när Micosoft Windows startas - + Show Creative Commons BY-NC-SA 4.0 Licence Dialog Visa Creative Commons BY-NC-SA 4.0 licensdialog @@ -2363,55 +2606,51 @@ Gör min server publik (registrera min server i serverlistan) - + Genre Genre - - + + STATUS STATUS - + Custom Central Server Address: Anpassad central serveradress: - + My Server Info Min serverinformation - + Location: City Plats: Stad - + Location: Country Plats: Land - Enable jam recorder - Aktivera inspelning + Aktivera inspelning - New recording - Ny inspelning + Ny inspelning - Recordings folder - Inspelningsfolder + Inspelningsfolder - TextLabelNameVersion - TextLabelNameVersion + TextLabelNameVersion @@ -2600,17 +2839,17 @@ QCoreApplication - + , Version , Version - + Internet Jam Session Software Internet Jam Session Applikation - + Released under the GNU General Public License (GPL) Släppt under GNU General Public License (GPL) @@ -2618,7 +2857,7 @@ global - + For more information use the What's This help (help menu, right mouse button or Shift+F1) För mer information använd hjälpen (hjälpmeny, höger musknapp eller Shift + F1) diff --git a/src/util.cpp b/src/util.cpp index 7112369b35..caa151f4cb 100755 --- a/src/util.cpp +++ b/src/util.cpp @@ -479,7 +479,9 @@ CAboutDlg::CAboutDlg ( QWidget* parent ) : QDialog ( parent ) "

" + tr ( "German" ) + "

" "
" "

" + tr ( "Polish" ) + "

" - "

Martyna Danysz (Martyna27)

"); + "

Martyna Danysz (Martyna27)

" + "

" + tr ( "Swedish" ) + "

" + "

Daniel (genesisproject2020)

"); // set version number in about dialog lblVersion->setText ( GetVersionAndNameStr() ); From 0a0de6edc2f66e835b392bc606885698293f3c4c Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 9 Jul 2020 20:21:03 +0200 Subject: [PATCH 359/936] insert a spacer in the GUI options tab --- src/serverdlgbase.ui | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/serverdlgbase.ui b/src/serverdlgbase.ui index 98866bddef..7520967c86 100755 --- a/src/serverdlgbase.ui +++ b/src/serverdlgbase.ui @@ -272,6 +272,19 @@ + + + + Qt::Vertical + + + + 20 + 40 + + + + From bb4e64042627002468b48e662c8ff1bccb0b95b6 Mon Sep 17 00:00:00 2001 From: daryl Date: Thu, 9 Jul 2020 22:14:32 +0200 Subject: [PATCH 360/936] update Spanish translation --- src/res/translation/translation_es_ES.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index a922a943d1..18eef5f1e9 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -118,7 +118,7 @@ Swedish - + Sueco @@ -2801,7 +2801,7 @@ Type a message here. If no message is set, the server welcome is disabled. - + Ecribe un mensaje aquí. Si no se establece un mensaje, la bienvenida del servidor se deshabilita. @@ -2978,17 +2978,17 @@ Server Setup - + Conf. Servidor Chat Window Welcome (HTML/CSS Supported) - + Bienvenida Ventana Chat (HTML/CSS Soportado) Options - + Opciones From 839b6def57ea38400298b7fd42518a90f3acacb3 Mon Sep 17 00:00:00 2001 From: daryl Date: Fri, 10 Jul 2020 10:08:41 +0200 Subject: [PATCH 361/936] translation corrections --- src/res/translation/translation_es_ES.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index 18eef5f1e9..00c538c7ec 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -2801,7 +2801,7 @@ Type a message here. If no message is set, the server welcome is disabled. - Ecribe un mensaje aquí. Si no se establece un mensaje, la bienvenida del servidor se deshabilita. + Escribe un mensaje aquí. Si se deja vacío, el mensaje de bienvenida del servidor se deshabilita. @@ -2983,7 +2983,7 @@ Chat Window Welcome (HTML/CSS Supported) - Bienvenida Ventana Chat (HTML/CSS Soportado) + Ventana Mensaje Bienvenida (HTML/CSS Soportado) From ac454db26bee7776745f3d2ac193654bbef287cd Mon Sep 17 00:00:00 2001 From: Melcon Moraes Date: Fri, 10 Jul 2020 12:07:17 -0300 Subject: [PATCH 362/936] Update translation_pt_BR.ts --- src/res/translation/translation_pt_BR.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/res/translation/translation_pt_BR.ts b/src/res/translation/translation_pt_BR.ts index 0ea9e62ae0..1fd01e9631 100644 --- a/src/res/translation/translation_pt_BR.ts +++ b/src/res/translation/translation_pt_BR.ts @@ -118,7 +118,7 @@ Swedish - + Suíço @@ -2780,7 +2780,7 @@ Type a message here. If no message is set, the server welcome is disabled. - + Digite uma mensagem de boas-vindas aqui. Se nenhuma mensagem for definida, a mensagem de boas-vindas do servidor será desativada. @@ -2957,17 +2957,17 @@ Server Setup - + Configuração do Servidor Chat Window Welcome (HTML/CSS Supported) - + Mensagem de Boas-vindas do Chat (Suporta HTML/CSS) Options - + Opções From 48dc79efb5198b263524db61a2d253bec9edc6b0 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Fri, 10 Jul 2020 18:51:36 +0200 Subject: [PATCH 363/936] store welcome message set in the GUI in the ini file --- ChangeLog | 3 +-- src/settings.cpp | 10 ++++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3a85daa931..e59cd72039 100644 --- a/ChangeLog +++ b/ChangeLog @@ -19,12 +19,11 @@ - scale channel instrument picture in Compact skin mode -- redesign of the server dialog +- redesign of the server dialog (e.g. added welcome message setting) - bug fix: grouping faders in the client should be proportional (see discussion in #202, #419) -TODO store welcome message set in the GUI in the ini file TODO improve settings management -> move settings class in client/server classes, move actual settings variables TODO improve interaction between use of inifile and command line parameters (edited) #120 diff --git a/src/settings.cpp b/src/settings.cpp index 0253688ea0..c7ccd2a595 100755 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -825,6 +825,12 @@ if ( GetFlagIniSet ( IniXMLDocument, "server", "defcentservaddr", bValue ) ) pServer->SetLicenceType ( static_cast ( iValue ) ); } + // welcome message (command line overwrites setting file) + if ( pServer->GetWelcomeMessage().isEmpty() ) + { + pServer->SetWelcomeMessage ( FromBase64ToString ( GetIniSetting ( IniXMLDocument, "server", "welcome" ) ) ); + } + // window position of the main window vecWindowPosMain = FromBase64ToByteArray ( GetIniSetting ( IniXMLDocument, "server", "winposmain_base64" ) ); @@ -868,6 +874,10 @@ void CServerSettings::WriteToXML ( QDomDocument& IniXMLDocument ) SetNumericIniSet ( IniXMLDocument, "server", "licencetype", static_cast ( pServer->GetLicenceType() ) ); + // welcome message + PutIniSetting ( IniXMLDocument, "server", "welcome", + ToBase64 ( pServer->GetWelcomeMessage() ) ); + // window position of the main window PutIniSetting ( IniXMLDocument, "server", "winposmain_base64", ToBase64 ( vecWindowPosMain ) ); From 10abcff239cebb19ca00e848abbaef545567e550 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Fri, 10 Jul 2020 20:32:08 +0200 Subject: [PATCH 364/936] since the server GUI custom central server address edit control is now in a different tab, it has to be read/write all the time --- ChangeLog | 1 + src/serverdlg.cpp | 33 +++++---------------------------- 2 files changed, 6 insertions(+), 28 deletions(-) diff --git a/ChangeLog b/ChangeLog index e59cd72039..ec0cf46def 100644 --- a/ChangeLog +++ b/ChangeLog @@ -24,6 +24,7 @@ - bug fix: grouping faders in the client should be proportional (see discussion in #202, #419) +TODO server list/client list connection less message seems to need a mutex at the server TODO improve settings management -> move settings class in client/server classes, move actual settings variables TODO improve interaction between use of inifile and command line parameters (edited) #120 diff --git a/src/serverdlg.cpp b/src/serverdlg.cpp index 05ba19cf3f..ec4278956b 100755 --- a/src/serverdlg.cpp +++ b/src/serverdlg.cpp @@ -249,6 +249,9 @@ lvwClients->setMinimumHeight ( 140 ); cbxCentServAddrType->addItem ( csCentServAddrTypeToString ( AT_CUSTOM ) ); cbxCentServAddrType->setCurrentIndex ( static_cast ( pServer->GetCentralServerAddressType() ) ); + // custom central server address + edtCentralServerAddress->setText ( pServer->GetServerListCentralServerAddress() ); + // update server name line edit edtServerName->setText ( pServer->GetServerName() ); @@ -664,40 +667,14 @@ void CServerDlg::OnTimer() void CServerDlg::UpdateGUIDependencies() { // get the states which define the GUI dependencies from the server - const bool bCurSerListEnabled = pServer->GetServerListEnabled(); - - const bool bCurUseDefCentServAddr = ( pServer->GetCentralServerAddressType() != AT_CUSTOM ); - - const ESvrRegStatus eSvrRegStatus = pServer->GetSvrRegStatus(); + const bool bCurSerListEnabled = pServer->GetServerListEnabled(); + const ESvrRegStatus eSvrRegStatus = pServer->GetSvrRegStatus(); // if register server is not enabled, we disable all the configuration // controls for the server list cbxCentServAddrType->setEnabled ( bCurSerListEnabled ); grbServerInfo->setEnabled ( bCurSerListEnabled ); - // make sure the line edit does not fire signals when we update the text - edtCentralServerAddress->blockSignals ( true ); - { - if ( bCurUseDefCentServAddr ) - { - // if the default central server is used, just show a text of the - // server name - edtCentralServerAddress->setText ( tr ( "Predefined Address" ) ); - } - else - { - // show the current user defined server address - edtCentralServerAddress->setText ( - pServer->GetServerListCentralServerAddress() ); - } - } - edtCentralServerAddress->blockSignals ( false ); - - // the line edit of the central server address is only enabled, if the - // server list is enabled and not the default address is used - edtCentralServerAddress->setEnabled ( - !bCurUseDefCentServAddr && bCurSerListEnabled ); - QString strStatus = svrRegStatusToString ( eSvrRegStatus ); switch ( eSvrRegStatus ) From 51d3c95de0ff21193fc8db4a68ca1d15254b0f5d Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Fri, 10 Jul 2020 20:33:05 +0200 Subject: [PATCH 365/936] for server name/city/country and licence, the command line overwrites the ini-file setting --- src/settings.cpp | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/src/settings.cpp b/src/settings.cpp index c7ccd2a595..5b357fd8de 100755 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -799,17 +799,23 @@ if ( GetFlagIniSet ( IniXMLDocument, "server", "defcentservaddr", bValue ) ) strLanguage = GetIniSetting ( IniXMLDocument, "server", "language", CLocale::FindSysLangTransFileName ( CLocale::GetAvailableTranslations() ).first ); - // name - pServer->SetServerName ( GetIniSetting ( IniXMLDocument, "server", "name" ) ); + // name/city/country (command line overwrites setting file, note that + // name/city/country are set by one single command line argument so we + // can treat them combined here and it is sufficient to just check the name) + if ( pServer->GetServerName().isEmpty() ) + { + // name + pServer->SetServerName ( GetIniSetting ( IniXMLDocument, "server", "name" ) ); - // city - pServer->SetServerCity ( GetIniSetting ( IniXMLDocument, "server", "city" ) ); + // city + pServer->SetServerCity ( GetIniSetting ( IniXMLDocument, "server", "city" ) ); - // country - if ( GetNumericIniSet ( IniXMLDocument, "server", "country", - 0, static_cast ( QLocale::LastCountry ), iValue ) ) - { - pServer->SetServerCountry ( static_cast ( iValue ) ); + // country + if ( GetNumericIniSet ( IniXMLDocument, "server", "country", + 0, static_cast ( QLocale::LastCountry ), iValue ) ) + { + pServer->SetServerCountry ( static_cast ( iValue ) ); + } } // start minimized on OS start @@ -818,11 +824,14 @@ if ( GetFlagIniSet ( IniXMLDocument, "server", "defcentservaddr", bValue ) ) pServer->SetAutoRunMinimized ( bValue ); } - // licence type - if ( GetNumericIniSet ( IniXMLDocument, "server", "licencetype", - 0, 1 /* LT_CREATIVECOMMONS */, iValue ) ) + // licence type (command line overwrites setting file) + if ( pServer->GetLicenceType() == LT_NO_LICENCE ) { - pServer->SetLicenceType ( static_cast ( iValue ) ); + if ( GetNumericIniSet ( IniXMLDocument, "server", "licencetype", + 0, 1 /* LT_CREATIVECOMMONS */, iValue ) ) + { + pServer->SetLicenceType ( static_cast ( iValue ) ); + } } // welcome message (command line overwrites setting file) From 3872206f29113313ad4e5e838c27b5ba8a466bf8 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 11 Jul 2020 09:20:16 +0200 Subject: [PATCH 366/936] update translations --- src/res/translation/translation_de_DE.qm | Bin 104231 -> 104132 bytes src/res/translation/translation_de_DE.ts | 15 +++++++-------- src/res/translation/translation_es_ES.qm | Bin 104581 -> 105162 bytes src/res/translation/translation_es_ES.ts | 15 +++++++-------- src/res/translation/translation_fr_FR.qm | Bin 111151 -> 111058 bytes src/res/translation/translation_fr_FR.ts | 15 +++++++-------- src/res/translation/translation_it_IT.qm | Bin 99511 -> 99412 bytes src/res/translation/translation_it_IT.ts | 15 +++++++-------- src/res/translation/translation_nl_NL.qm | Bin 98565 -> 98480 bytes src/res/translation/translation_nl_NL.ts | 15 +++++++-------- src/res/translation/translation_pl_PL.ts | 17 ++++++----------- src/res/translation/translation_pt_BR.qm | Bin 107155 -> 107832 bytes src/res/translation/translation_pt_BR.ts | 15 +++++++-------- src/res/translation/translation_pt_PT.qm | Bin 101079 -> 100982 bytes src/res/translation/translation_pt_PT.ts | 15 +++++++-------- src/res/translation/translation_sv_SE.qm | Bin 92378 -> 92293 bytes src/res/translation/translation_sv_SE.ts | 15 +++++++-------- 17 files changed, 62 insertions(+), 75 deletions(-) diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index 0cbe714e906951624069d41a60167bcc48783b26..7eb8eb828cf7d4c97ab9378b59c9a016bd3f11e8 100644 GIT binary patch delta 889 zcmXAne@v7G7{|ZQd+&Siz3;v6dk1;33y-%m2+PIQ6fP-7r_cczryP21f#=#?+(`UE z;9P1-?tunGgCvOFpEF z6Q@CQv+3999gyc!8h*j@m5=CpbP)8)*F0qFCX5ccGWW!d~6H-a`DWL*j1Y>t{}xCXTSq9(>I5N*?HvQo5Gu2WM>zXBwvsT=1&t`Rl$_arFvg}VCr zA3*o4SJzxS40@znT{rVOD7;f`uCO3)adX-kTewBN@u*dE`8@RxMX~Dpo#K%!AX@Bn z*q#AI!RgK|0M(5+gU`MU{P~bG9NG+OS;a}Mlpf|DEl6wmXDvXpS=S@9f$Q}Gq3i%a>O}%Ke57hb^Cyg+5@lhj3sO#ag#)Cq`yF6|L=qb)~nY_fcloGt( zWqQ{egBNxK`MJjTo**c%-?%F0TDQ2wX;(+aW3H18=YY^{*U66g7BCMd-3w^mwl4Sa OE;o5Y$Bi2Dmj4G)5fQfl delta 932 zcmX9*e@s*b9RGaZy?5{K-FxqV__4!|1A{P2&Q0KwV(bJu&n5>Rc(yuejZ;Fw>jY~F zLMru7TH`yi=8QFE1xy^~hLZ&*;#v!5E}WGXnrLcZn}Sigddt5)`+oQRe)jos`mp)) ze)ETk)HaYL6CGeD1!#cl>7#^DGW?@%P(lc+@;gC0mU5DiBUGkvsqg_E;R(SLe-wA- z3xG@8|3?ZYveQ)UKTci2bHKBC^x04vXw^OXBB2hDr|C>bCGf)pojKAET5Y2XbEiRz z7SNU815nZlntILHTfd|m!C}z$#XM%}qPICBy6GTyimr@a;ret86zmpe8=HaN#78(; zAk4M4gLa#FLUcKHn#^N&48fHq=Raw{t0|_8<8{XTfHlc&?J^BCEeEydaH&*ey)1?g z&48+Bd5_c}`0V^pTAy0=j5ztz6Tr4)@y6GNlewS8+qpYHZC-9N`y5B5fVLB2CaEPsw>oi^eJgm-s8Z+khG<^5>zqIPT55*Itl6oyRQM8I7`YWdO9cK+d0k3lz6m_PRa=b{>?= zTt-&KBdl4o=@#c%J@J$B$G;8(f2;B*Y8mLIDsHg`=pv6>i|7z*N;RF}dL=+p{FSmn zC|<`|w(5!&rDo$bp!pZ2X4VLzrAmqTMZ@wdN^SW!fCQ!X=2?*ax>Ebseb9TU=%iDD1U)R&NFVc*^GUwt*UlIHDF&J9n!d`j#)NZhDh7EkNIMSj!Pgm+&6V zC`2%alsLmVdh+)O3X-x{qf0u%0G_!Q=XqLM`#E?xy{mWp`Pkx~DA&@^Xp2 zoJP3Q?s9ym51-!)WM}FZlRTiTWBOG&6I7DV - + Type a message here. If no message is set, the server welcome is disabled. - + ERROR FEHLER @@ -2809,7 +2809,7 @@ - + E&xit &Beenden @@ -2835,14 +2835,13 @@ Server - + Select Main Recording Directory Wähle das Aufnahmehauptverzeichnis aus - Predefined Address - Vordefinierte Adresse + Vordefinierte Adresse @@ -2877,12 +2876,12 @@ Standard (Nordamerika) - + Server - + &Window &Fenster diff --git a/src/res/translation/translation_es_ES.qm b/src/res/translation/translation_es_ES.qm index e0221bf2dc4484b11e13a92b621e9ab8f272688c..c42ead42939d64857b7dc3fa213dc7ec14571be8 100644 GIT binary patch delta 4904 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 delta 4507 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 diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index 00c538c7ec..00a5d9a3b2 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -2799,12 +2799,12 @@ Si el directorio de grabación no es utilizable, se mostrará el problema en lugar del directorio. - + Type a message here. If no message is set, the server welcome is disabled. Escribe un mensaje aquí. Si se deja vacío, el mensaje de bienvenida del servidor se deshabilita. - + ERROR ERROR @@ -2829,7 +2829,7 @@ - + E&xit S&alir @@ -2855,14 +2855,13 @@ - + Select Main Recording Directory Seleccionar Directorio Principal de Grabación - Predefined Address - Dirección Preestablecida + Dirección Preestablecida @@ -2897,12 +2896,12 @@ Por defecto (Norteamérica) - + Server : Servidor - + &Window &Ventana diff --git a/src/res/translation/translation_fr_FR.qm b/src/res/translation/translation_fr_FR.qm index d5bcf32ea260db4dbe5d001fd014320040ecf082..3f8cbc9dd05afebbb88206b4bd0e5b1b54b325fe 100644 GIT binary patch delta 878 zcmXAneN0t#9LAsT@7{CHJ?EZtE*H8Z+%9)_kw{FhQ^pl698SEJa6w@qYrbT>Ps*s9 zwo=$CtcF;8V~B*zshNL(uyRy{`7+!bi#Z%kTM+BwOFF=plHHuuS^f3=^WC%O`Fx*K z)ACqU{^SYj>-Q)`CVQ!nUgbJ!cemmB3jvVlGrW-520B>79uc4#&JzddEglz{@gLs9 zTr3-y`szQW+U@MMRX+3S0Cg8%2C^U1k-=opOIPU2_*y`@Nf%p7fUE22;;CNHmVEB9 z`RFzN(bi76TwxESm5U$JPXpiG66coGfb#9)(qIMP+$N$M`#{xyh#NEYpxSvJvL|Lm zMC{$SfyrwkHj)F3+!lW=ngy=hv&nsBpu?69&soVkY~Dx7!1fuN|C?G+M==}H677Rg zTYn@A)ZN2*(kfNhHy@h??V95KQh?fcND5I3OY+vFGW*oePXW7svEMvr)p~TyekWru z=+GhFBZrdwQuf_m;6zYbX)FgEQR&&uUxRk)JRzs5`=n~|KB%UV4JDCQ@zY8wDO{jD z6r1Kb&k>*iM;vPxZ0wOAoZSMXJdhtQ$gqm8kmr3Zpt61*ccl6g6z{r1P~8b7GqxL) zuwKda9R`}Zm9WnOSzOItb)kq{;yg9zKB^r2^$hTjTj|ilpx0OPezlN}^Mu->61xl?@O&1n+)x?s)Ba(bAg`dE^!76-T>}4J43mRpq3pR(Q`!UD4*7Y zl*Kc8fGXK*gvE=KTxSF*p1X|X)s<0w=XJ}hr%tc`=`yH!L~o4()cK^&i%dX0qIdew zT2Ec350YhHed~X{(WGBk^QJWk4?i}1l)zrI(A{Y)PWl@Z`rgRAWAQmK&3nwXV(%yq zn?6eC>*hky*vp11Kr8q;m(RV+%yNDV(uU2P*^{7(`y6qFXc-T=QvEBE& zu@)e$(Y)#jg3{;A-;@-KeT=2JeeMR=`KnQ1O}p!S!*Wp3JKPnQLG<2O+`w2IH53he J@iKi>^e-+M8j1h_ delta 911 zcmXAle@xVM7{}kw=kC7WyYGF!cO1spx$Z883f1In5Cj#?CY&T36c*b2fqKUs*Us4$ z4rc}}2eSz=9_=(!yy;4}L|rj7f<(eCsKzQ;*Lp_40u5)`|w=ue$atFP7z+}<0A1c4fCkTP2N+C znYjYs>L>p>MY`E#sClGarH;xGpkSU7J#NstOgfPq0ptm~)V><{X%$^M-3i)|;8O+< zeaYV#;`AN|joydPi!UDS0zSJb`m<_5rAF~pPY|$Hi}4rEfND#`jj0&ul~V3CrsfZc zxi@wISAG_A!-c@`q_~$k4SfHbK{~S*)KP4Z24{5gX@l#&8`wN$NIMq+9X!FBDNAWe zH=M1@2OSk$WO~L@Wn6!J8dU!{x0t*%$-O2Y?O>C%(b;Ld`b#=cf7v+EufKKwxbb$* zo1ph+c$egJZZ{Rob^;&enV!_L0rR-&sr8?Nwr%1uDZ_Hv6c)R6@KM&}RNBXjy^UfRud=Hi8wLb`Kd1F-0hba!D6DBL3b;b{fEEb*v0BP}euR+fXJf62LX z^`Hf-eL~M6+ktNUZr+nboKHwjRd{Fg+UX62$rJU~Zn59*D zKFfT5i_TvCG1n=6!9E^TLR8I5ts5N)B@ns>G+a>vzw1TBC-|_{LmzUlHPv!ViLKO| z``|?$vsO7bE2B;N#Y=m?pd-y{59#sYoB#WbCUs!N>!3)4=QR(7*<~wt%xX)We}jCVYq_`ee%kVRm#tVd zr1PN7LydghwnV&TV9oBO7Jl09aei&fYpeuS?6l=u-vKFuw!-O?pc)@X?LKPeE_(*G z@tEB$R{MG0-t73nelhedup(~1*pRIsj`04Z9D3>Pp``AiBxSi le répertoire d'enregistrement n'est pas utilisable, le problème sera affiché à la place du répertoire. - + Type a message here. If no message is set, the server welcome is disabled. - + ERROR ERREUR @@ -2821,7 +2821,7 @@ - + E&xit &Quitter @@ -2847,14 +2847,13 @@ serveur - + Select Main Recording Directory Sélectionner le répertoire principal des enregistrements - Predefined Address - Adresse prédéfinie + Adresse prédéfinie @@ -2889,12 +2888,12 @@ Défaut (Amérique du nord) - + Server serveur - + &Window &Fenêtre diff --git a/src/res/translation/translation_it_IT.qm b/src/res/translation/translation_it_IT.qm index 1d404e9a43c73e31c3f2319a4e1da59e4da3e070..4c91e8accd0d406b493ab1ad1462600a6dea0fe8 100644 GIT binary patch delta 751 zcmXAnTS!!K5XNWzyXWlg*|WQ?B&OybR#EH0OX#j;nVPJcc&W53uZ7yi8r~y=)F8ro zP_jWYx`<*>4<$ijQi%piR7OcADN>dusc9e<7FK`iY37@Uk8gf6Jr~3`=f#Wb@oAI$ zZx**e?wHE!7|-Po4?3Lv5m z+aFp0w>t2an+rfwheMY#0G?IjP}g0+$QG(mS=g~AhrA$9qLjvX!dS0PS)A z>*yo)z3v=f`5-l`70A;B0UmOGR6QSF3s|D2ATi!+&x8>9?JmHz zR$;p#3_x2d?8vOI<4G_oXd{1PAO=&4F$6oQhEJSy)0oO!BecSW sH@TY{-3nGsPn<6SVg^i4>bPG>B6XX>vH0wqsb|iF$ss*W(HP+P3ze4X^8f$< delta 822 zcmXAneN0nl6vm(Pw)eKZy)BlM5Qy|ri7q8o8Y7F^uI+?y>YC(rrg zIrlzL2M($|ZW=wD@sC&$;tUFlw<|bG$ElTPsDS!;uILu81~?^xt~e%Nlmd4=|0z{? zc}6r8o};sCMuA`#^?u_4E&hZ)PmcqZE*d^k4_x0t!(a7-N~gHffKyo zuFfuBET-Sv4fIz2uVa_R^RE4%WG){y8(CkP)S*dG>nT&t-yUGY9FzA_9Q5uIzG?Pp z>sFdBYyCwhHK8nNya=iq;X`VEc4EE~FLMIkn9@=*8<_K0NmSN@ z%0J|rY9`&_arLK|7(0(qO&KaFlsV3?!U0`C(`PE8%C@`)wz zVh2dXEfvNYV9y3i*pO(7i@DF5FIE-vnAMkFz0Pvtr|*DCkL4ph462^u3|k%T;;8Ka z&G1v(GMeHdEk?KbsMh34X_43?;QeteGA*xfIn0XP@OEmg>wf?#BU;;|FF-j$+d6Xq zRMMg)Yb3$Md9JcIxUOrzE|59iT(A9Rvw@aB<34+)>uYaOT?krmg`Se`gP!G>_7SKVi zb^7TgcRCH*pfk944ai@^r=4NZQp8W?+IDuNb*D$_(*|R=fbwf;gI&_s{~7nCEmDU~ z0CKq}%d=0JHK5F*LVxBwtVA0kXhu@@E?EiWVl}t-x!qQ|4pnyg>SQz$-O}6^jT|rX M(d+@=GRm*|7luOl*Z=?k diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index f24000fa9d..872c8443e7 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -2751,12 +2751,12 @@ - + Type a message here. If no message is set, the server welcome is disabled. - + ERROR @@ -2781,7 +2781,7 @@ - + E&xit &Esci @@ -2807,24 +2807,23 @@ server - + Server Server - + &Window &Finestra - + Select Main Recording Directory - Predefined Address - Indirizzo Predefinito + Indirizzo Predefinito diff --git a/src/res/translation/translation_nl_NL.qm b/src/res/translation/translation_nl_NL.qm index 0ad722b852ab8d1ff222f981208ab312f2600d69..3ab7deeb95cf200acd1eef4b95aa1b15217792a4 100644 GIT binary patch delta 776 zcmXAmc}SB16u{s6j_uobY&wi#HJ5Z)l(X`}aypMSBiz(HN?95unv#ZTg?V&IMR@fH z3$aiOsZb0e14}Gf5kwkffn-GorKJ{O5@Ga_fBoS7@q3Tot2?3TJ+5i;!!ON?{xbFf zT7+)wpnSZ7H;HG0a5n`rji}IlCc?OL7-oKN0(frxPqa-E&t~~9!7JNG0K#*yy*~gj zT&Df333pN*YeAxGYzv+w8|Uubv3OPKY;%S}8bvQ#3yZcL4-yHFK5*z>U*XEd=RyYt2b+Kzk{53ntW&S6Ib3M`=p18smqw z7vBy5e7mE)B)b3;>=dkXF=>yfT6Y?a#EY@GgB)T3_E5K&>zgj_E%*p<=#sd1R*g_F zLT1T=N603bbl1hQBsE*{Bl1XDQF-FT`pW<*_2Q&X2N-)+;%=A#T<;};-3Gu`Nj@vA zfX-|wGWj6D+eXP5cMLGskEWzZbkIsUg2|dAj~s%LR4==+nZ{)+W1S~Ov7|1S4}4PX z9fNY&%Mn1&1^N63P{AqM zFyTdV7;21pKMW5Go&m&U7#`ND*0uL&)DVVUCq^7$;CsUx7Lecdw7pUJR=6%&_?PGk&=FuWW;>pcrptcL_kSet*zb*Rl9njKe zc%_sO7UghKYM8UnHhErremERo!`d3I5j$%Nm zlAeox4tjn!_sa!kN2O+A56J(v)ao|@_e;`-k{n>}kknTFs&y}v-bzgY+gC~3E+>HR zBGSH=Ef*JktU!$)9d3O1}dq1eSf;*K0b;Rzf4TF}P;bA3< zR&i2!N~nF3Zz~>Wb-Mk~)w95@FYSko5U9F`7pftlZWec{d#QmXt%?Tu1+9r5^03yB zF`&hoegn1~)?(9E2+b~b>26B0U(ZtSY3;REY;QclQ9V*NtlfC_D6p(Y`%_gxRTH}H zvn(Jqr7PmgfVe|XpYH($hjia7n}DmmdN8mH)X>PcbszO{zELWyuHmTRr9IqZgy~oQ z#qbE;rR;FHmv1ySUboag8a3J{#zE03qwg9(8zKfjZAGZ0j3arY)`!;^r^!-Zw`hhF zUB81qx%>r7^annoZ z_&w9Do-lp8>Oe(j_zN>!)@yd&8U(yuCTG45(wCS64~9U66Eh5yn`bZV2l6%Zr%WGc z_7-!>J|E<{&i=HW&c@2Lv8Eq@%9UwjUH={DYEbf@M&>5&5& diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index 5d47c36fe2..4c73c2258d 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -2739,12 +2739,12 @@ - + Type a message here. If no message is set, the server welcome is disabled. - + ERROR @@ -2769,7 +2769,7 @@ - + E&xit &Sluiten @@ -2795,14 +2795,13 @@ server - + Select Main Recording Directory - Predefined Address - Standaardadres + Standaardadres @@ -2837,12 +2836,12 @@ Standaard (Noord-Amerika) - + Server Server - + &Window &Window diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index db3151890f..28e88e3f6f 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -2341,12 +2341,12 @@ nie jestem pewna - + Type a message here. If no message is set, the server welcome is disabled. - + ERROR @@ -2367,7 +2367,7 @@ nie jestem pewna - + E&xit &Wyjdź @@ -2389,17 +2389,12 @@ nie jestem pewna - + Select Main Recording Directory - - Predefined Address - - - - + Server @@ -2464,7 +2459,7 @@ nie jestem pewna - + &Window diff --git a/src/res/translation/translation_pt_BR.qm b/src/res/translation/translation_pt_BR.qm index af78c1883d8e36bb928ad52d1f9a9909a7e0e6e5..9185e3e712b689b0a855591fa14cd99a13339f95 100644 GIT binary patch delta 4920 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 delta 4484 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 ie)`B5cB;|of?2F5JN?&emdtNhHkYNGoSe o diretório de gravação não é utilizável, o problema será exibido no lugar do diretório. - + Type a message here. If no message is set, the server welcome is disabled. Digite uma mensagem de boas-vindas aqui. Se nenhuma mensagem for definida, a mensagem de boas-vindas do servidor será desativada. - + ERROR ERRO @@ -2808,7 +2808,7 @@ - + E&xit &Sair @@ -2834,14 +2834,13 @@ - + Select Main Recording Directory Selecione Diretório Principal de Gravação - Predefined Address - Endereço Predefinido + Endereço Predefinido @@ -2876,12 +2875,12 @@ Servidor Padrão (America do Norte) - + Server - Servidor - + &Window &Janela diff --git a/src/res/translation/translation_pt_PT.qm b/src/res/translation/translation_pt_PT.qm index 00d0179ee3b02e69f1a538dbd8b1e4a301520d68..7679c927c33b657b06e6db44028535dae8abb7b0 100644 GIT binary patch delta 796 zcmXAmYivw;7{;IXf95}D=A1J#orE+MByhHXW5iIer|NuCeCJo!DHE%u>( z_T9ti<(}am#f%;vPQ_x;ORl6t6l5vZD9WQuaLVp4>UD?f>aS2%2oq%0PLwLb#CHh<2pb7H8m8C0)w ztIbSlQS6C+P<2f4{W}VXK37sNuLRZT++oXhx|Q>FA<()AyX03+hppn+YtYwkc%F=l z&<#$=XiC)fM^_q9d)oHmrnP6F&-N;?0aQDQ!}fv^^Sfo47s z%s98&{UN_xE;fVmhvdqz8yNGY{5EGKkaj?>nKswz&&&G$KY^y*a(!nUxc80Rw&EzL zsE$9_-_a5tRI_P6XE-9>bo<-(#X!2p{?6P9n)n|#IQ*$QR9|5UXvS7G_kBG`ZC9t5 z2Z4bd!_pGv+KY=h3WyL7&L1yXF5yB#|_RcBJhxRF@6UU$ zeHQkcCx*;}>6F@+@vqqA;|!`3TdO!sM`@5{kx$?AN--eHs`+c-b+u#eUIlP<_J1dT zG0RfWm7=2!mw@sheRwV#v^K~)rKL2=eUeVc_=I#oJiCN_CV%FLnD2ZIINA5WCqEYp zJ$<0A=lO_9&zzOa$vIFgA!YrY4KzKo+VuN3MxWG-Y1;ETsB?&Y<_*h&m2ySu4Diu%d5xn4 zuqNforY}LY7x{=ezdSDQ5WS!c0lCem0S_0;FO)6^au3P7p4ejS6}fBf77!nlUzvyk zW83AoTaSY_jq`o;BAw-VOA)1bh1KusHvgH}2IM)-i~0blvXQ&3`R*x8R!so3@usEh zUKhxcuvFBj)ahqH-U3cq9}%0YdB$4g+GctG*Ym(%HI_qa9q7qvUTF)^OWbYi z7p0G~tgIC~OL)B!p&$8ErP*~+2}SMzuRf!M<_#>n&vKSscOO<>eC|5P?p309PJwb; zl=k~?f!5?Gu^I#Ho<(l52g^?=f2=Z!G)^dYZ8oEzW;YEl1-2}+Tcuh+x@J$yD+Ja5 zWcNPR0Zi?+`>W!h9iQ=x-AgBVh3cgQH>pLmmETnZG|s=Mg<`eJ4u`(EUv2-*2>;}U z8oPQ46e&>OyA9*CL*)X4vaLrw>`oXTpsVM|2oK+W;5SaI->&O4s86cNrze3NMIE!2 zfJ%SnZb!iOkE3kbVAkf~D-J)M;w(+4VfJbHw3owLp{SL3NYia&nm676^2GTotxoI? zuNf1G{J9@nt*LS!7Me#d#C$GGRY&ObOk^xc~x zZA7F|uZM>g(u?a6Ll_}LEoep5PzbxMFve_XNqsCF3b(XI!=aq2P$(Ae=s4*1Q2I#! II!dko5BZ@C2LJ#7 diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index dac9af6ca5..7ee00f51a0 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -2775,12 +2775,12 @@ - + Type a message here. If no message is set, the server welcome is disabled. - + ERROR @@ -2805,7 +2805,7 @@ - + E&xit &Sair @@ -2831,14 +2831,13 @@ - + Select Main Recording Directory - Predefined Address - Endereço Predefinido + Endereço Predefinido @@ -2873,12 +2872,12 @@ Servidor Padrão (America do Norte) - + Server - Servidor - + &Window &Janela diff --git a/src/res/translation/translation_sv_SE.qm b/src/res/translation/translation_sv_SE.qm index 6c1d1196f2d831b885c5a0f2fceab262937d8604..ea3bb90d2f3626a24c800f0a356655c92760b269 100644 GIT binary patch delta 792 zcmXAmeN2o29LK-E=bq=DyXT&}ThVgabq?KK;zCqjk~X@Mgi59Xx=wrL}Hw3WS;4-&wsz~_xt%hed5~&|xmrjHJBZ$a>A;EZigfnh(LjEM&Uq~WS}by%=v8J1br&nAfeN}gD5e@karw!wped~!A*~kd&0HlF zQx?CHA}NJKl8@GNiawG&oUeBYxo^2jA8GSTTYBFD6*r}=o$G++cxl&~6QJ>F+@$ZN zSUxIyg_LU?l+(kb9_xR!76GGr^nH#!AV&ws7+j-g^vU*&98g@DoH(!r_&!@sa~uOI zf65CS+UAjsTxM_ylRLT2;0>S9CLelp6L|emKCCVPd6W5xA%|QXW2~WF++<9p1nx1G zQX=Oo#fugzC8h6x@;Id=q)l5`tgOluffvgZ|H8X~7*PD59su8(6@Pyp$o559Tlft4 zc}iLL?hMG#s+14bfTHV_jTxG^yeyVX1!1Mir-@p_tT#%x(Fht>$7QC-uob4H>`lPq zLX$6T2PnhMb*3cB;Gii{Nc+o@8c$<+s_LU{T&23#3|9j!HZ3Ag4Rm>d?9J-h>$5q{Ap!7THfi8e@kErai0ERC0h_h9D@Ful|w75d&5bss0x93!VJZIIm zrOyHTboIU=0Tkt7vpL7uXiogB$;_O~tIR&S#7$-g**R!-Q!R(g@wAy^EDnn2Y)ks+ zoGwe%ms7y_krs|v3H&~1Y3OeRjVKyoTpwSy>5|hSdDU9xFi#WHo0>Ig5!|I7DmS~6 z7)eqbj>X*ai%f|vVjC278yg!9EfHH!mXSVS_*@7qVXE= zR)$WFJ3*caI%SUlQYlRjH31hwH2wW|pfzc()46DryL6vXH?Qadj;N4{9Rx;>zT(V} z!qYYUt>s^k7&Twf76g;EL{nrUJ$8?@wBB1wzJgoQ06*;;e;u}Ca{hZR5n}Yh? z-~0_)r*f9KPjE`yC+?vUz9VMSC!7%jbe`WaWK*1*4f#S-G4~m=9Y2c)mKK26g!s{1 zH!xN#e%$djsA!Orh9&CdFD0L_S>%*dWnb+wJem9eaHkE=T!SF@D$XioUjgxDX}e2vUcJm+#(bgl4IVc7>^{3RGCu*_eJG78+d;kr&l>A# zKj)bSXqJTR!e>W~)fNN}CCRM=H> z - + Type a message here. If no message is set, the server welcome is disabled. - + ERROR @@ -2421,7 +2421,7 @@ - + E&xit A&vbryt @@ -2447,24 +2447,23 @@ server - + Server Server - + &Window &Fönster - + Select Main Recording Directory - Predefined Address - Förvald adress + Förvald adress From 0f9b422d0f86471d883a9c904fe191ee7053753b Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 11 Jul 2020 09:28:44 +0200 Subject: [PATCH 367/936] server list/client list connection less message seems to need a mutex at the server --- ChangeLog | 2 -- src/server.cpp | 14 ++++++++------ src/server.h | 4 +++- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index ec0cf46def..04f9e434ed 100644 --- a/ChangeLog +++ b/ChangeLog @@ -24,8 +24,6 @@ - bug fix: grouping faders in the client should be proportional (see discussion in #202, #419) -TODO server list/client list connection less message seems to need a mutex at the server - TODO improve settings management -> move settings class in client/server classes, move actual settings variables TODO improve interaction between use of inifile and command line parameters (edited) #120 TODO Save and restore mixer state (fader / mute / solo...) #377 diff --git a/src/server.cpp b/src/server.cpp index af42563fb7..c69c4d2d16 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -630,14 +630,16 @@ void CServer::OnNewConnection ( int iChID, // send welcome message (if enabled) MutexWelcomeMessage.lock(); - if ( !strWelcomeMessage.isEmpty() ) { - // create formatted server welcome message and send it just to - // the client which just connected to the server - const QString strWelcomeMessageFormated = - "Server Welcome Message: " + strWelcomeMessage; + if ( !strWelcomeMessage.isEmpty() ) + { + // create formatted server welcome message and send it just to + // the client which just connected to the server + const QString strWelcomeMessageFormated = + "Server Welcome Message: " + strWelcomeMessage; - vecChannels[iChID].CreateChatTextMes ( strWelcomeMessageFormated ); + vecChannels[iChID].CreateChatTextMes ( strWelcomeMessageFormated ); + } } MutexWelcomeMessage.unlock(); diff --git a/src/server.h b/src/server.h index 79d20ea6f1..57de47d44f 100755 --- a/src/server.h +++ b/src/server.h @@ -456,8 +456,10 @@ public slots: void OnCLReqVersionAndOS ( CHostAddress InetAddr ) { ConnLessProtocol.CreateCLVersionAndOSMes ( InetAddr ); } + // the CreateChannelList() function access vecChannels which as to be mutexed + // since the normal server thread my change that at a random time void OnCLReqConnClientsList ( CHostAddress InetAddr ) - { ConnLessProtocol.CreateCLConnClientsListMes ( InetAddr, CreateChannelList() ); } + { QMutexLocker locker ( &Mutex ); ConnLessProtocol.CreateCLConnClientsListMes ( InetAddr, CreateChannelList() ); } void OnCLRegisterServerReceived ( CHostAddress InetAddr, CHostAddress LInetAddr, From b0781c7c02dfd8a0f2b2e87d6c705e35a05b78a6 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 11 Jul 2020 10:40:59 +0200 Subject: [PATCH 368/936] put fader settings load/store in separate functions --- src/main.cpp | 3 +- src/settings.cpp | 210 ++++++++++++++++++++++------------------------- src/settings.h | 3 + 3 files changed, 104 insertions(+), 112 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 274a08d42a..1c45b4ccb7 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -532,7 +532,8 @@ int main ( int argc, char** argv ) { tsConsole << "Qt5 requires a windowing system to paint a JPEG image; image will use SVG" << endl; } - + + // Application/GUI setup --------------------------------------------------- // Application object #ifdef HEADLESS diff --git a/src/settings.cpp b/src/settings.cpp index 5b357fd8de..c2976bbbe8 100755 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -226,70 +226,6 @@ void CClientSettings::ReadFromXML ( const QDomDocument& IniXMLDocument ) QString ( "ipaddress%1" ).arg ( iIdx ), "" ); } - // stored fader tags - for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) - { - vecStoredFaderTags[iIdx] = FromBase64ToString ( - GetIniSetting ( IniXMLDocument, "client", - QString ( "storedfadertag%1_base64" ).arg ( iIdx ), "" ) ); - } - - // stored fader levels - for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) - { - if ( GetNumericIniSet ( IniXMLDocument, "client", - QString ( "storedfaderlevel%1" ).arg ( iIdx ), - 0, AUD_MIX_FADER_MAX, iValue ) ) - { - vecStoredFaderLevels[iIdx] = iValue; - } - } - - // stored pan values - for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) - { - if ( GetNumericIniSet ( IniXMLDocument, "client", - QString ( "storedpanvalue%1" ).arg ( iIdx ), - 0, AUD_MIX_PAN_MAX, iValue ) ) - { - vecStoredPanValues[iIdx] = iValue; - } - } - - // stored fader solo state - for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) - { - if ( GetFlagIniSet ( IniXMLDocument, "client", - QString ( "storedfaderissolo%1" ).arg ( iIdx ), - bValue ) ) - { - vecStoredFaderIsSolo[iIdx] = bValue; - } - } - - // stored fader muted state - for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) - { - if ( GetFlagIniSet ( IniXMLDocument, "client", - QString ( "storedfaderismute%1" ).arg ( iIdx ), - bValue ) ) - { - vecStoredFaderIsMute[iIdx] = bValue; - } - } - - // stored fader group ID - for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) - { - // note that we only apply valid group numbers here - if ( GetNumericIniSet ( IniXMLDocument, "client", - QString ( "storedgroupid%1" ).arg ( iIdx ), - 0, MAX_NUM_FADER_GROUPS - 1, iValue ) ) - { - vecStoredFaderGroupID[iIdx] = iValue; - } - } - // new client level if ( GetNumericIniSet ( IniXMLDocument, "client", "newclientlevel", 0, 100, iValue ) ) @@ -547,66 +483,77 @@ if ( GetFlagIniSet ( IniXMLDocument, "client", "defcentservaddr", bValue ) ) { bWindowWasShownConnect = bValue; } + + // fader settings + ReadFaderSettingsFromXML ( IniXMLDocument ); } -void CClientSettings::WriteToXML ( QDomDocument& IniXMLDocument ) +void CClientSettings::ReadFaderSettingsFromXML ( const QDomDocument& IniXMLDocument ) { - int iIdx; - - // IP addresses - for ( iIdx = 0; iIdx < MAX_NUM_SERVER_ADDR_ITEMS; iIdx++ ) - { - PutIniSetting ( IniXMLDocument, "client", - QString ( "ipaddress%1" ).arg ( iIdx ), - vstrIPAddress[iIdx] ); - } + int iIdx; + int iValue; + bool bValue; - // stored fader tags for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) { - PutIniSetting ( IniXMLDocument, "client", - QString ( "storedfadertag%1_base64" ).arg ( iIdx ), - ToBase64 ( vecStoredFaderTags[iIdx] ) ); - } + // stored fader tags + vecStoredFaderTags[iIdx] = FromBase64ToString ( + GetIniSetting ( IniXMLDocument, "client", + QString ( "storedfadertag%1_base64" ).arg ( iIdx ), "" ) ); - // stored fader levels - for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) - { - SetNumericIniSet ( IniXMLDocument, "client", - QString ( "storedfaderlevel%1" ).arg ( iIdx ), - vecStoredFaderLevels[iIdx] ); - } + // stored fader levels + if ( GetNumericIniSet ( IniXMLDocument, "client", + QString ( "storedfaderlevel%1" ).arg ( iIdx ), + 0, AUD_MIX_FADER_MAX, iValue ) ) + { + vecStoredFaderLevels[iIdx] = iValue; + } - // stored pan values - for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) - { - SetNumericIniSet ( IniXMLDocument, "client", - QString ( "storedpanvalue%1" ).arg ( iIdx ), - vecStoredPanValues[iIdx] ); - } + // stored pan values + if ( GetNumericIniSet ( IniXMLDocument, "client", + QString ( "storedpanvalue%1" ).arg ( iIdx ), + 0, AUD_MIX_PAN_MAX, iValue ) ) + { + vecStoredPanValues[iIdx] = iValue; + } - // stored fader solo states - for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) - { - SetFlagIniSet ( IniXMLDocument, "client", - QString ( "storedfaderissolo%1" ).arg ( iIdx ), - vecStoredFaderIsSolo[iIdx] != 0 ); - } + // stored fader solo state + if ( GetFlagIniSet ( IniXMLDocument, "client", + QString ( "storedfaderissolo%1" ).arg ( iIdx ), + bValue ) ) + { + vecStoredFaderIsSolo[iIdx] = bValue; + } - // stored fader muted states - for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) - { - SetFlagIniSet ( IniXMLDocument, "client", - QString ( "storedfaderismute%1" ).arg ( iIdx ), - vecStoredFaderIsMute[iIdx] != 0 ); + // stored fader muted state + if ( GetFlagIniSet ( IniXMLDocument, "client", + QString ( "storedfaderismute%1" ).arg ( iIdx ), + bValue ) ) + { + vecStoredFaderIsMute[iIdx] = bValue; + } + + // stored fader group ID + // note that we only apply valid group numbers here + if ( GetNumericIniSet ( IniXMLDocument, "client", + QString ( "storedgroupid%1" ).arg ( iIdx ), + 0, MAX_NUM_FADER_GROUPS - 1, iValue ) ) + { + vecStoredFaderGroupID[iIdx] = iValue; + } } +} - // stored fader group ID - for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) +void CClientSettings::WriteToXML ( QDomDocument& IniXMLDocument ) +{ + int iIdx; + + // IP addresses + for ( iIdx = 0; iIdx < MAX_NUM_SERVER_ADDR_ITEMS; iIdx++ ) { - SetNumericIniSet ( IniXMLDocument, "client", - QString ( "storedgroupid%1" ).arg ( iIdx ), - vecStoredFaderGroupID[iIdx] ); + PutIniSetting ( IniXMLDocument, "client", + QString ( "ipaddress%1" ).arg ( iIdx ), + vstrIPAddress[iIdx] ); } // new client level @@ -752,6 +699,47 @@ void CClientSettings::WriteToXML ( QDomDocument& IniXMLDocument ) // visibility state of the connect window SetFlagIniSet ( IniXMLDocument, "client", "winviscon", bWindowWasShownConnect ); + + // fader settings + WriteFaderSettingsToXML ( IniXMLDocument ); +} + +void CClientSettings::WriteFaderSettingsToXML ( QDomDocument& IniXMLDocument ) +{ + int iIdx; + + for ( iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) + { + // stored fader tags + PutIniSetting ( IniXMLDocument, "client", + QString ( "storedfadertag%1_base64" ).arg ( iIdx ), + ToBase64 ( vecStoredFaderTags[iIdx] ) ); + + // stored fader levels + SetNumericIniSet ( IniXMLDocument, "client", + QString ( "storedfaderlevel%1" ).arg ( iIdx ), + vecStoredFaderLevels[iIdx] ); + + // stored pan values + SetNumericIniSet ( IniXMLDocument, "client", + QString ( "storedpanvalue%1" ).arg ( iIdx ), + vecStoredPanValues[iIdx] ); + + // stored fader solo states + SetFlagIniSet ( IniXMLDocument, "client", + QString ( "storedfaderissolo%1" ).arg ( iIdx ), + vecStoredFaderIsSolo[iIdx] != 0 ); + + // stored fader muted states + SetFlagIniSet ( IniXMLDocument, "client", + QString ( "storedfaderismute%1" ).arg ( iIdx ), + vecStoredFaderIsMute[iIdx] != 0 ); + + // stored fader group ID + SetNumericIniSet ( IniXMLDocument, "client", + QString ( "storedgroupid%1" ).arg ( iIdx ), + vecStoredFaderGroupID[iIdx] ); + } } diff --git a/src/settings.h b/src/settings.h index 0c1d91222e..3e05c3e248 100755 --- a/src/settings.h +++ b/src/settings.h @@ -164,6 +164,9 @@ class CClientSettings : public CSettings virtual void ReadFromXML ( const QDomDocument& IniXMLDocument ) override; virtual void WriteToXML ( QDomDocument& IniXMLDocument ) override; + void ReadFaderSettingsFromXML ( const QDomDocument& IniXMLDocument ); + void WriteFaderSettingsToXML ( QDomDocument& IniXMLDocument ); + CClient* pClient; }; From dc2834dc979e2a2a4540dea858d79309abdcb4ab Mon Sep 17 00:00:00 2001 From: Olivier Humbert Date: Sat, 11 Jul 2020 12:08:02 +0200 Subject: [PATCH 369/936] French translation update for 3.5.9 --- src/res/translation/translation_fr_FR.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index b87b591919..95b562eb39 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -118,7 +118,7 @@ Swedish - + Suédois @@ -1814,7 +1814,7 @@ Language - + Langue @@ -2062,12 +2062,12 @@ Restart Required - + Redémarrage nécessaire Please restart the application for the language change to take effect. - + Veuillez relancer l'application pour que le changement de langue prenne effet.

Volker Fischer (corrados)

@@ -2793,7 +2793,7 @@ Type a message here. If no message is set, the server welcome is disabled. - + Tapez un message ici. Si aucun message n'est défini, l'accueil du serveur est désactivé. @@ -2969,17 +2969,17 @@ Server Setup - + Paramètre du serveur Chat Window Welcome (HTML/CSS Supported) - + Bienvenue dans la fenêtre de tchate (HTML/CSS pris en charge) Options - + Options @@ -3030,7 +3030,7 @@ Language - + Langue Central Server Address: From 11def323ddf10d7fa395773e3050a80fd0a9e5fb Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 11 Jul 2020 12:08:19 +0200 Subject: [PATCH 370/936] added context help text for server welcome message edit box --- src/res/translation/translation_de_DE.ts | 39 ++++++++++++++++-------- src/res/translation/translation_es_ES.ts | 39 ++++++++++++++++-------- src/res/translation/translation_fr_FR.ts | 39 ++++++++++++++++-------- src/res/translation/translation_it_IT.ts | 39 ++++++++++++++++-------- src/res/translation/translation_nl_NL.ts | 39 ++++++++++++++++-------- src/res/translation/translation_pl_PL.ts | 39 ++++++++++++++++-------- src/res/translation/translation_pt_BR.ts | 39 ++++++++++++++++-------- src/res/translation/translation_pt_PT.ts | 39 ++++++++++++++++-------- src/res/translation/translation_sv_SE.ts | 39 ++++++++++++++++-------- src/serverdlg.cpp | 6 ++++ 10 files changed, 249 insertions(+), 108 deletions(-) diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index 3768333b77..30a97c587c 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -2475,7 +2475,7 @@ - + No Name Kein Name @@ -2779,12 +2779,27 @@ - + + Server welcome message edit box + + + + + Server Welcome Message + + + + + A server welcome message text is displayed in the chat window if a musician enters the server. If no message is set, the server welcome is disabled. + + + + Type a message here. If no message is set, the server welcome is disabled. - + ERROR FEHLER @@ -2808,25 +2823,25 @@ Mit diesem Knopf kann man die Aufnahme neu starten (d.h. es wird eine neue Aufnahmedatei angelegt). - - + + E&xit &Beenden - + &Hide &Ausblenden vom - - + + server Server - + &Open Ö&ffne den @@ -2835,7 +2850,7 @@ Server - + Select Main Recording Directory Wähle das Aufnahmehauptverzeichnis aus @@ -2876,12 +2891,12 @@ Standard (Nordamerika) - + Server - + &Window &Fenster diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index 00a5d9a3b2..b7c8916253 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -2499,7 +2499,7 @@ Ukulele Barítono - + No Name Sin Nombre @@ -2799,12 +2799,27 @@ Si el directorio de grabación no es utilizable, se mostrará el problema en lugar del directorio. - + + Server welcome message edit box + + + + + Server Welcome Message + + + + + A server welcome message text is displayed in the chat window if a musician enters the server. If no message is set, the server welcome is disabled. + + + + Type a message here. If no message is set, the server welcome is disabled. Escribe un mensaje aquí. Si se deja vacío, el mensaje de bienvenida del servidor se deshabilita. - + ERROR ERROR @@ -2828,25 +2843,25 @@ Durante una sesión de grabación, el botón puede utilizarse para comenzar una nueva grabación. - - + + E&xit S&alir - + &Hide &Ocultar servidor - - + + server - + &Open &Abrir servidor @@ -2855,7 +2870,7 @@ - + Select Main Recording Directory Seleccionar Directorio Principal de Grabación @@ -2896,12 +2911,12 @@ Por defecto (Norteamérica) - + Server : Servidor - + &Window &Ventana diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index b87b591919..48279ec8f5 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -2491,7 +2491,7 @@ Ukulélé basse - + No Name Sans nom @@ -2791,12 +2791,27 @@ Si le répertoire d'enregistrement n'est pas utilisable, le problème sera affiché à la place du répertoire. - + + Server welcome message edit box + + + + + Server Welcome Message + + + + + A server welcome message text is displayed in the chat window if a musician enters the server. If no message is set, the server welcome is disabled. + + + + Type a message here. If no message is set, the server welcome is disabled. - + ERROR ERREUR @@ -2820,25 +2835,25 @@ Pendant une session d'enregistrement, le bouton peut être utilisé pour démarrer un nouvel enregistrement. - - + + E&xit &Quitter - + &Hide Cac&hé - - + + server serveur - + &Open &Ouvrir @@ -2847,7 +2862,7 @@ serveur - + Select Main Recording Directory Sélectionner le répertoire principal des enregistrements @@ -2888,12 +2903,12 @@ Défaut (Amérique du nord) - + Server serveur - + &Window &Fenêtre diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index 872c8443e7..2cb88d545b 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -2451,7 +2451,7 @@ Uculele Basso - + No Name Senza Nome @@ -2751,12 +2751,27 @@ - + + Server welcome message edit box + + + + + Server Welcome Message + + + + + A server welcome message text is displayed in the chat window if a musician enters the server. If no message is set, the server welcome is disabled. + + + + Type a message here. If no message is set, the server welcome is disabled. - + ERROR @@ -2780,25 +2795,25 @@ Durante una sessione di registrazione questo pulsante può essere usato per iniziare una nuova registrazione. - - + + E&xit &Esci - + &Hide &Nascondi - - + + server server - + &Open &Apri @@ -2807,17 +2822,17 @@ server - + Server Server - + &Window &Finestra - + Select Main Recording Directory diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index 4c73c2258d..7a005f10c8 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -2439,7 +2439,7 @@ Ukelele-bas - + No Name Geen naam @@ -2739,12 +2739,27 @@ - + + Server welcome message edit box + + + + + Server Welcome Message + + + + + A server welcome message text is displayed in the chat window if a musician enters the server. If no message is set, the server welcome is disabled. + + + + Type a message here. If no message is set, the server welcome is disabled. - + ERROR @@ -2768,25 +2783,25 @@ Tijdens een opnamesessie kan de knio gebruikt worden om een nieuwe opname te starten. - - + + E&xit &Sluiten - + &Hide &Verbergen - - + + server server - + &Open &Open @@ -2795,7 +2810,7 @@ server - + Select Main Recording Directory @@ -2836,12 +2851,12 @@ Standaard (Noord-Amerika) - + Server Server - + &Window &Window diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index 28e88e3f6f..4b60c3455f 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -2137,7 +2137,7 @@ nie jestem pewna Ukulele basowe - + No Name Brak nazwy @@ -2341,12 +2341,27 @@ nie jestem pewna - + + Server welcome message edit box + + + + + Server Welcome Message + + + + + A server welcome message text is displayed in the chat window if a musician enters the server. If no message is set, the server welcome is disabled. + + + + Type a message here. If no message is set, the server welcome is disabled. - + ERROR @@ -2366,35 +2381,35 @@ nie jestem pewna - - + + E&xit &Wyjdź - + &Hide - - + + server - + &Open - + Select Main Recording Directory - + Server @@ -2459,7 +2474,7 @@ nie jestem pewna - + &Window diff --git a/src/res/translation/translation_pt_BR.ts b/src/res/translation/translation_pt_BR.ts index d84645e849..52ce982fb0 100644 --- a/src/res/translation/translation_pt_BR.ts +++ b/src/res/translation/translation_pt_BR.ts @@ -2478,7 +2478,7 @@ Ukulele Baixo - + No Name Sem Nome @@ -2778,12 +2778,27 @@ Se o diretório de gravação não é utilizável, o problema será exibido no lugar do diretório. - + + Server welcome message edit box + + + + + Server Welcome Message + + + + + A server welcome message text is displayed in the chat window if a musician enters the server. If no message is set, the server welcome is disabled. + + + + Type a message here. If no message is set, the server welcome is disabled. Digite uma mensagem de boas-vindas aqui. Se nenhuma mensagem for definida, a mensagem de boas-vindas do servidor será desativada. - + ERROR ERRO @@ -2807,25 +2822,25 @@ Durante uma sessão de gravação, este botão pode ser usado para começar uma nova gravação. - - + + E&xit &Sair - + &Hide &Esconder servidor - - + + server - + &Open &Abrir servidor @@ -2834,7 +2849,7 @@ - + Select Main Recording Directory Selecione Diretório Principal de Gravação @@ -2875,12 +2890,12 @@ Servidor Padrão (America do Norte) - + Server - Servidor - + &Window &Janela diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index 7ee00f51a0..f8ef9d179b 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -2475,7 +2475,7 @@ Ukulele Baixo - + No Name Sem Nome @@ -2775,12 +2775,27 @@ - + + Server welcome message edit box + + + + + Server Welcome Message + + + + + A server welcome message text is displayed in the chat window if a musician enters the server. If no message is set, the server welcome is disabled. + + + + Type a message here. If no message is set, the server welcome is disabled. - + ERROR @@ -2804,25 +2819,25 @@ Durante uma sessão de gravação, este botão pode ser usado para começar uma nova gravação. - - + + E&xit &Sair - + &Hide &Esconder servidor - - + + server - + &Open &Abrir servidor @@ -2831,7 +2846,7 @@ - + Select Main Recording Directory @@ -2872,12 +2887,12 @@ Servidor Padrão (America do Norte) - + Server - Servidor - + &Window &Janela diff --git a/src/res/translation/translation_sv_SE.ts b/src/res/translation/translation_sv_SE.ts index a13830e765..cdfae9c9ad 100644 --- a/src/res/translation/translation_sv_SE.ts +++ b/src/res/translation/translation_sv_SE.ts @@ -1824,7 +1824,7 @@ CMusProfDlg - + No Name Inget namn @@ -2391,12 +2391,27 @@ - + + Server welcome message edit box + + + + + Server Welcome Message + + + + + A server welcome message text is displayed in the chat window if a musician enters the server. If no message is set, the server welcome is disabled. + + + + Type a message here. If no message is set, the server welcome is disabled. - + ERROR @@ -2420,25 +2435,25 @@ Under en inspelningssession kan knappen användas för att starta en ny inspelning. - - + + E&xit A&vbryt - + &Hide &Göm - - + + server server - + &Open &Öppna @@ -2447,17 +2462,17 @@ server - + Server Server - + &Window &Fönster - + Select Main Recording Directory diff --git a/src/serverdlg.cpp b/src/serverdlg.cpp index ec4278956b..83241bcb35 100755 --- a/src/serverdlg.cpp +++ b/src/serverdlg.cpp @@ -182,6 +182,12 @@ CServerDlg::CServerDlg ( CServer* pNServP, pbtNewRecording->setWhatsThis ( "" + tr ( "New Recording" ) + ": " + tr ( "During a recording session, the button can be used to start a new recording." ) ); + // welcome message + tedWelcomeMessage->setAccessibleName ( tr ( "Server welcome message edit box" ) ); + tedWelcomeMessage->setWhatsThis ( "" + tr ( "Server Welcome Message" ) + ": " + + tr ( "A server welcome message text is displayed in the chat window if a " + "musician enters the server. If no message is set, the server welcome is disabled." ) ); + // init system tray icon if ( bSystemTrayIconAvaialbe ) { From 829b06d732291c993560687b04a3be607a02f3b2 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 11 Jul 2020 12:23:45 +0200 Subject: [PATCH 371/936] update German translation --- src/res/translation/translation_de_DE.qm | Bin 104132 -> 109058 bytes src/res/translation/translation_de_DE.ts | 42 +++++++++++------------ src/res/translation/translation_fr_FR.qm | Bin 111058 -> 112282 bytes 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index 7eb8eb828cf7d4c97ab9378b59c9a016bd3f11e8..36253537d412b4d14acbfa5a43a2fb8fc74169eb 100644 GIT binary patch delta 7439 zcmcIod011|_T4AR%{<@`0SCA$Do!{dDo$7jKoJ#CoKPUSKokQcLC`9}7HzH8Db;AT zwpz7{O11SBt1S+7z@cib`s%DW55?9QYwcS%QMB)S?|r|2eqTP=_a^t8vxl|T-pQVg z@^?^>-w%`2PG`L^b?~s0q;-TvH^Gu@W{0m&d)=t|G;CJe*|$Oh7$A7B(BH+N9Pc?f+MO}0sDezbGX-5oFQ&a z8zO!)aV6QrCO;%@`!r(pCXl>&EYZPhPLdZT6P^B%6bE(_nd*_Q-8!O)m%aAv0&1~c zM$}@Z*S70RE$+4@s@g>@m-Rv9W@>qKKT*5G)UoeBh_s~?xo8iOdNf6@br3zDLy;G; zzQ-nyWu1#CYPx|~jjj}JzKBdY$5Qk{3o(m?qJL^+Jpf`ik7X<)b2#Efw?a4#|_9H7`)Wki5X?4q40X%8Bl2uI8=iXVZJ zU3^Nz|9nU!{7NHk;(7KHjpSPqbJkT+lDr{OvXheVAgkY)Qu}8RRUV@$%TN+i49(xY zoM>h`eVT^@(ham~ZeK*Og1!j;8IjJSwQWL(q(i89*L`Aswdl*<3B(3=qC-cI5KBp; zpXNjpz5Uc{&!yAxCP;l+8lBiahn#fpExLpZ()l}dEiss=a46ka96@Z_Bf3`=4v=l} zSZ3ZwkD6a0dbXT#zauiqWu|EsLaa5R(GfCY0UibzoUS%pMB#5sm2r>8_?cn0dFN_-xHhL|GlJG1fAiUqqk& zDKi;hBH5&64)8rrHYFPR@M)QB+U2IiVlre4t2z>0UhTC{<7LZ6LT5s^d9BI$K(?yz zIOsG^wt89=(Z+4EH3Q#8t@35XKSMfy-RQ9_P9oc|K8a}R&$10i7lJJVWt)CLDr>iu zZEjJB+U%5VJ`_S^KPWqz`4M`?c#mbq0NJr{9C-D**FJH`e%S*Zk>twGxe%aJ@}=y2 z08*ZIL3Zg(V<_Js*^OO5|C8FXJD~-{78J=IK8+ySx=!|Jz#O8EZ8`m4(1n6V9?L?{ zamFYCQmo+WG{NU%n{q*M!yq&PT$@0EuKi4|{fYo$xsSN;-%5y959Ye+I-m))=ei|r zAtxL6G1ueSAPCQKF7kO3B=Qq3!2sUhyvhx80X*xwamm&YVy;eHhNOs?sRK8zyPl|F z05`s4eeir9mn8~L>UC}+8WBlnbNTlwP@+}bSw6&fHo-^u;A!tsYwE=n(2t_=mdFj7cJ=Zj(kH- z4`OeBEiYY{jBXb%-;n@x`|kEw=G#@iyVyeX&0+bzGjN#yr@TBT1nqmY{KhOJ_ zi$|tcos{3dFZPIua_57cV^G5i`Qy5w#FES8PXbY!goX0I>Z9g?rxk1#x?R*&h2#b{ zoZU}h{2tG{$13U%0yrm?DjGxqJLz{7VO9B1$kmEofy*&)oKwUGmJo}LRK)G=45`1N z7;412(TxhpfE)o=1p8Y_q*)zqhzyM4-Yn9sbl}L3x zrO%cgMAt0JHbvLaL@szN^ZQ=eZpc@d2`4Mtmy{7xZ&waTKZ5oft&IKZ5x`vPu`F$v zGSMHp^2J(Z#=gBoH8*=Kt5HLlBd&KwHd5wT4k2Y`WzNa|uz|`+zt4fPeXE?&zY5AV zK>5KML{j5N<-F5~yykhO>nrpMiA1?cF`L+cW6Ez$1;j=UQSLZ3hFFuc%6$v5z9dq) zzu-4wvKA`+j!L2=1!cdB{{Qr(s>P64qOAR@E|b3iSUy*E z_d&#;{X^BGE>b!xSk;f!z%bcWH9*)#^ru!e@@WtB`_3xU{70Y_sZ4jSA@X-snWG9Y znth;}nbrsc?P=8q-9@39q?*?d2kSel=0CfErqx-s?#yzcHnFPBr}Dx7$=W?GHqXLT{;#v_k{~uc~fMMv9HoR8^~>fKUBYfAmD8V*=EY zKG6`S4Qj(*D4DXgy7AIbG^G#JQHQW!W1ceaGD$;ZsXeYXxs)_7XNNmOnO}t+#IJRAr*1j9&jP{zG z4rN5wS8JR(;`AF?sL8o_gs7iUlYcv&h;C_S%}6Cy*RA>R7BoLDU-MC0fU%{YW?8?F zQ1dX&Cu?GfGGAyu?fDP_w8&#woei2bb1^mhFV<}AswY;c(`-M8h^0F&nAJVNySr@H-VCSp-bbVpKgKeAGH)UPr4|KelajXOZ?MmS_O4 zd$=W*Sf_Zs;zdoA#9!}ww36tP1NwUDpr7S}zP_@Um~^W?xS)V&?=^k!-DT){R()Gz z05SX5`YxIeh$(L9dsKq9W4q~l6}^vXc&onebkwZiKCBZL=ik@IEWyD|6#608uVEgr z>Boza{?$ZpUHbx{+N;l&ZUN1j>8H-b#&ae5sdrZ+a?%&tFy)4Y>Rm>WEj#opo}vWN zVP2b2pkKEn0U$o4FFQVms9BQ!7h@-4&EMBoC?I&TW%}FB0;F#L7X96s$UyUY`iBiL zI!%q&KiN=1)Xu4YHWZF^avExkz~rO3ZD_DJ7TsUeNNGVamzQn3!@6vzJQHyzUzkK2%tV6pal_ ze8&JBM-98t#ptb8hTTqpalj12&vVvd3hrY#VZ4CxdcWb$lUSmaBMgsy^u)Tv8LGlY z;>U?FL)8W=v2Lp%CW{Yzy}+k47eux3=Lu$4L~Y}{ z2aTl%jZ7JUsguWJR{S?(iOsz$oYe~RtiqcXa^PjhpFo*-3DrB*;!`K_jtqex8qJ$B z1k?D`tbF(7ZmhQZcn5a7_jl9^I||ss@zNFSjdvze*6Xuy--~jweIBL2p zN)_FrG<%%-$ZOKrffW%oq(6d|VTk`naqWL5-t5CE&4_H%y)qaFvgByeB|A39g??jINFGN__pW;4_~7*ZI?a z@O4&4{82C7F4!g_;yfYKlr=%%CkS?XO1i*1gnS2YvGZn&Jv%dHl3?a7R!_}M87U4v z&tf%ajBAh!3_M5u$0HR20-uckuRv>euZUo^+_8gLo!a83_UhRD zduIwMHh08O7Ho{d&xwz*T4aZqATtvGdZnK`E{N4s2YD8V{=3ijWFZn3?oR5$noIGp zE4i7`EemHg#e@8sPX=;dxg=h{=~f7~?}P0ppcW4I;JM7#{c!}V+g-%J2<8mDZ+!`2 zv4*L*x5MUnYUkl0?q1c}imO}_+}*=j1C5C1mq)qQFZFj8_Rh4J#(NT;n(J_6p+H%@ zNsQWCsa%^4HOZWWTxSX<2Wkk&X4%Xlc+D1EJF;w(LimIXBtOrRnaO9{go#-3#$&lw zhb0q5whDRt#FWfjLBzz%?bypojq1WS%h@JZjUc1zQAShusxa1Aix@--da~gv^Q-3^ z>B*A=MD|9{BNT5Yc;xCau$+l|u|VO~B^=zxi#{)?Ox}2SyCcPsYv;4lJW+Z>5^Nzn z0ulJMtjx?Tz%$+JuANV@34C^zU2eAkTj3s=D%D0XUu{jg3!;cf@?z<4h>+%juA>WD zyDs)s))*Au*@NfrK1MUc`Yyvjj!F-7VaOM_zA=dya`&?7If zM6im$suq!I&iF;XfhmuqyjE8cYa%RPuYLtej(j*!GS3dLcXVB;su5jX!Je^M z|1sW-6gyN@u!@2pDyx{6YJ9zs32(jj4`%zAG?e;W8cdX!_W>yZh9H|U-c7374d0%iPP6-)rt3tXyQu| z9q1KN&k^qaiR@JCKL4i^#8wMscQiUtXG0X=8Niw z1KopqvUbg(pE3QGeVp*M2|&%8V_rsiLdshKH|RFf-Nn}HbHDaY%zskaASo*BqfbT5{~Y4Lx|F!h2d3RBQPH1#&v zAs#Pp|AfrBc9i&cXkP7iaBp#3N%W2@ujm;Zl`t@-P4D=4K0Y@)JIjX7*nE+|{8*6d z_up!l8cgghStB1Bgh5iohd8wYkkxxC24y=?al5$0JtUn?Hw43jH}u05vA1rW>c_P& Tc^oe|adq9o%AAY{?dEfJ%`^hDhlKX}%MHxoPtqU?mVT!4U^^4rEolrJojWxFkL+GZ- zY`JX0MloV@nK5!%$R%@4jr^WEe?8~C=lg!YpU?C8JkR%YmR!*Ox?5}Oy+79Z)Z@%G zXIi@zkKg+9wSIuZTmbEXD|%ue;P?Y^2tRJHW9%wBmWL6C0xqYB{5+)Aj&b33yt$Xi z&n>zF%11z6Z@}XNK);M@r*YpafGw1pHB08YNkEP(Fd`aoI{-xRncHv{#`5kceE#%FqfY&%X#yo=j?E#3!%OKxd1<`CE6-zR*FYIGjDdth3G#)A=m%xU4#4#dl!$>q2-gvXiwb4* zNMbiAsa9q<63SKuxD`*V0}6#5Z*7ILvkTB_E|h|45b+UE4lRao^?|lyC~zv@25sti z;IFTto;(IjxCOI!4lq00j#o#c(;*q?G}(^cCUkn}1=M^7kIVtg+yfqGO91Z-_zq;5 zOvwmb`zv5*i@@xe!0V9+Ea&@va~e>1?LttR6{3-Z;Mj69WqSv~YbG<(LkRw*3m-%x zr286(MHdk=ryqpZRfHT{PRiUc_|$qpe2O8d3^3&}hW6e8;pl>)$H`#$PY7Lc7zijq z=-MMJse%t98A$9HgpX#)%8N1T&2u1bA4cEfda)j3T6Ko7xtv3kwlyjF6j59#T<>E- zNIX!r4hu6`l9(n~eQYzZ+!I^o@PLVzko6@?&?p|eI-F;wVaV>{3225R_vljyrz`lb z{|JbFBk+5AFtDK5j(>aNkM^W|;(NGoC>?mL#|;u^!?nGri0r_O+;De&Ux=xZcwEy9 z_hd8i-bz-&31Pl9$jIcTz#GELxCHx%F!&huQkffE2)>w)aaC0f?zeI?4=1a5wOlD?1B-?y$e0zeFQf&dIsnT-9 zLNw7x>sF2h_H>rE1&?GPN2DE#DaVN|rQG`7vgS*<+uVVTfl`6ZN^@{3mkMerkG9jK z9~0PPZGVssKOPM+AV@0qAazAErK6r~(moHRlZWB}W1@6BjMNVwCf#|&fWt$i7c<#p zxlQeOqnGs3#wJ^uC)F&RMY#cv>(I=>6);Mn<1n=nwb$kK%W(ww1Y7aIImeAQbtN`nzeb~KqL&% z6wd0&4bN+?w&6arUuvFTi=~ewYo1@{dpSk2`m6wW_mS*8Qz9cxK7*NX@K zv)hiv3{Gd{)r#dUb-$>x0fnc#;usVM;asLPYtP@KA1Up^B4{iXN|%;wHjm$wu3Oz9 zVj`7Z{}uo{oRkmD-2h#U(mQG&MC5D5uXY%O+Xf}@b$jx+Nf}|Kyzk{H5g7}q|2&N{ zKG72*WrGqgrLw6WC{y}a=-Cy@C%$gfb)+)2-cW{bR%UxKGtEk6?&Di5%_qwIKNEr9 z9hA=|Z|6Zy%JRf?h@L`Od3p(*ZjQ2Q{2x?TowD}Eb^1Y$vTnOdE8nWD&*OV8tLo9l zTWGtInMn#wXYF|NI`I}&&`jB?J3<+qP_}+b*>!VKa!ZTJRDY#3_%$iaRL)JPqhtQ4 zTpU|ZZIm6a8k7h74^t(o^12&!KEYRc{9uo-v0oHB}Q0;hC*|Rm$#9IiRlD zz`JHtnoV6_ewZF@Qa6}F`Jh&{*S@#9sl=V~`&K=;o}*Wj_tm3U$-vNlYU#4;{61g3 z8AXeB8?D~_(Vyt5-md)xqTM@cWlMJsDpPf)YgHUL7U>-J`2iJPx-O{|yc>2jpm0vr zc@N*qksoLa!mva)cv2Z<=AaAR`-1m%as!GH!MaEn8pp1wy7&{vfyQ$iP&i!H zCDm^*s8W|S`8P7=p-Z|LLRH++&3lqg!%ERD3#p+oHP(H;lZiC?TDR&iX5KhUm$8?3 zfH1IFo2tl z>N^b&1*WF!d(Pj*o|vNV8RU8whKP6p?Gt{)^CarTq+gX0d;DbMT2yz*lJZ}l;& zUqCc3(Z@WfV4@-VgpZP`|C-_Yg84puRYY>zl^wOInfH?tH*d6tN%3e`Yx7r2uuE z3_q=$2_!Et9Cq-et```7ZAJ%kj5n0-W`NB$8BRBfh6r73sPrO3BRvfF^;E^k)Hdz zXDEYi zU*qY=J{-qOjOQvXjC4-}ia~D1D|vrYUek>?1_#ob|25wDuphhmO#_NXCB~QXLk^$m zrpC`NuxY(bO~02Qyp5(7i^z;uvB~{Qs_NC~1{8y4o7`(+xqp())Um2DE%!51=gza} z<>O6319cor+n7R*vG%wAF@=?~dk6esidxIaTeLMzIpo6H>P=H_vm}vGri7pP`-fvq z(<*pSUYu$ArE?I|51GEY&09Mq)RfVIiRkl88(SaYL=fW6T2c6eni#V1ar1%PLy&X!D%@JaF<;^TxH$ zAmY9;Z;wv|y1JUP`yU40KVvR_>d9V6X+SY{hxwNyWx&r9%_S2#!uf}q%O;dj|6_hI zpLOQ-S@*H|?gMt|q@CvbT&#$~f~NKOWh=UX~F%;crzYw>b)hxpjh($n}k^a`=yQ4x8;PmmS}SXur>LOQm7;ziPRkOlC?JSRV4< zlxQDldEUZyi=$R^OLcw$HymWC9mzo6A7pJbngfZk(As)%HV+V1zqTpB(*LXhC!f;k zvaCbqu{k}5TE|^tpv$^jKVCsB++>}2<~U`x&bo4=#LMM?^$Rr-(B8LhaEgYQ?QK2A zI|c#ItjBEiJ>_UU-z`0x1A@_d!SOo1I^Fu9IuzK}%KFm5Lix9G zM3F Swedish - + Schwedisch @@ -2676,22 +2676,22 @@ The current value of the main recording directory. The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). Click the button to open the dialog that allows the main recording directory to be selected. - + Dies ist das aktuelle Aufnahmeverzeichnis. Das Verzeichnis muss existieren und der Benutzer Jamulus muss Schreibrechte haben und Verzeichnisse erstellen können. Wenn man den Knopf drückt, dann erscheint ein Dialog zum Auswählen des Verzeichnisses. Clear the recording directory button - + Lösche das Aufnahmeverzeichnis Knopf Clear Recording Directory - + Zurücksetzen des Aufnahmeverzeichnisses Click the button to clear the currently selected recording directory. This will prevent recording until a new value is selected. - + Drücke den Knopf um das aktuelle Aufnahmeverzeichnis zurückzusetzen. Damit wird eine neue Aufnahme verhindert bis wieder ein neues Verzeichnis gesetzt wurde. @@ -2736,37 +2736,37 @@ Displays the current status of the recorder. The following values are possible: - + Zeigt den aktuellen Status der Aufnahmefunktion an. Die folgenden Zustände sind möglich: No recording directory has been set or the value is not useable - + Es wurde kein Aufnahmeverzeichnis gesetzt oder es wurde ein ungültiges Aufnahmeverzeichnis angegeben Recording has been switched off - + Die Aufnahme wurde beendet by the UI checkbox - + in der Benutzerschnittstelle , either by the UI checkbox or SIGUSR2 being received - + , entweder von der Auswahl in der Benutzeroberfläche oder von einem empfangenen SIGUSR2-Signal There is no one connected to the server to record - + Es ist kein Musiker mit dem Server verbunden The performers are being recorded to the specified session directory - + Die Aufnahme ist aktiv @@ -2776,27 +2776,27 @@ If the recording directory is not useable, the problem will be displayed in place of the directory. - + Wenn das Aufnahmeverzeichnis ungültig ist, dann wird die Problembeschreibung anstelle des Verzeichnisnamens angezeigt. Server welcome message edit box - + Server Willkommenstext Eingabefeld Server Welcome Message - + Server Willkommensnachricht A server welcome message text is displayed in the chat window if a musician enters the server. If no message is set, the server welcome is disabled. - + Eine Server Willkommensnachricht wird im Chat-Fenster angezeigt, wenn sich ein Musiker mit dem Server verbindet. Ist kein Text gesetzt, dann ist die Willkommensnachricht deaktiviert. Type a message here. If no message is set, the server welcome is disabled. - + Willkommensnachricht eingeben. Ist kein Text gesetzt, dann ist die Willkommensnachricht deaktiviert. @@ -2972,17 +2972,17 @@ Server Setup - + Server Konfiguration Chat Window Welcome (HTML/CSS Supported) - + Chat-Fenster Willkommensnachricht (HTML/CSS wird unterstützt) Options - + Optionen @@ -3033,7 +3033,7 @@ Language - Sprache + Sprache Central Server Address: diff --git a/src/res/translation/translation_fr_FR.qm b/src/res/translation/translation_fr_FR.qm index 3f8cbc9dd05afebbb88206b4bd0e5b1b54b325fe..a455317a3062dda046732614f7758a0ee186fd7e 100644 GIT binary patch delta 5260 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 B`8xmr delta 4370 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 Date: Sat, 11 Jul 2020 13:40:12 +0200 Subject: [PATCH 372/936] Update translation_sv_SE.ts --- src/res/translation/translation_sv_SE.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/res/translation/translation_sv_SE.ts b/src/res/translation/translation_sv_SE.ts index d2cacce2c7..f05fb51ebf 100644 --- a/src/res/translation/translation_sv_SE.ts +++ b/src/res/translation/translation_sv_SE.ts @@ -808,7 +808,7 @@ The jitter buffer compensates for network and sound card timing jitters. The size of the buffer therefore influences the quality of the audio stream (how many dropouts occur) and the overall delay (the longer the buffer, the higher the delay). - + Jitterbufferten kompenserar för nätverks- och ljudkortstimning. Storleken på bufferten påverkar därför kvaliteten på ljudströmmen (hur många bortfall som inträffar) och den totala förseningen (ju längre bufferten är, desto högre fördröjning). @@ -1800,7 +1800,7 @@ What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. - + Det du ställer in här visas på din fader på mixerkortet när du är ansluten till en Jamulus-server. Den här taggen kommer också att visas vid varje klient som är ansluten till samma server som du. @@ -1960,7 +1960,7 @@ Keyboard+Vocal - + Klaviatur+sång @@ -2030,12 +2030,12 @@ Ukulele - + Ukulele Bass Ukulele - Ukulele + Ukulele (bas) @@ -2546,7 +2546,7 @@ software requires the low latency audio interface ASIO to work properly. This is not a standard Windows audio interface and therefore a special audio driver is required. Either your sound card has a native ASIO driver (which is recommended) or you might want to use alternative drivers like the ASIO4All driver. - programvara kräver det låga latentljudgränssnittet ASIO för att fungera korrekt. Detta är inte ett vanligt Windows ljudgränssnitt och därför krävs en speciell ljuddrivrutin. Antingen har ditt ljudkort en inbyggd ASIO-drivrutin (som rekommenderas) eller så kanske du vill använda alternativa drivrutiner som ASIO4All-drivrutinen. + Programvaran kräver det låga latentljudgränssnittet ASIO för att fungera korrekt. Detta är inte ett vanligt Windows ljudgränssnitt och därför krävs en speciell ljuddrivrutin. Antingen har ditt ljudkort en inbyggd ASIO-drivrutin (som rekommenderas) eller så kanske du vill använda alternativa drivrutiner som ASIO4All-drivrutinen. From 85e30f0b6cae823d81c128d3c7cc2a19b54c7b3d Mon Sep 17 00:00:00 2001 From: genesisproject2020 <7592139+genesisproject2020@users.noreply.github.com> Date: Sat, 11 Jul 2020 14:05:03 +0200 Subject: [PATCH 373/936] Swedish updates --- distributions/jamulus.desktop.in | 2 ++ src/res/translation/translation_sv_SE.ts | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/distributions/jamulus.desktop.in b/distributions/jamulus.desktop.in index a5d2839ebf..58d0d1d3b8 100644 --- a/distributions/jamulus.desktop.in +++ b/distributions/jamulus.desktop.in @@ -2,11 +2,13 @@ Name=Jamulus Comment=Jam Session Comment[fr]=Séance de bœuf +Comment[sv]=Musikaliska jamsessioner över Internet GenericName=Internet Jam Session Software GenericName[fr]=Logiciel de séance de bœuf sur Internet GenericName[es]=Software para Jam Sessions por Internet GenericName[pt]=Software para Jam Sessions pela Internet GenericName[nl]=Software voor jamsessies over internet +GenericName[sv]=Mjukvara för Jam Sessioner över Internet Exec=$$TARGET Icon=jamulus Terminal=false diff --git a/src/res/translation/translation_sv_SE.ts b/src/res/translation/translation_sv_SE.ts index f05fb51ebf..432fc5f1e6 100644 --- a/src/res/translation/translation_sv_SE.ts +++ b/src/res/translation/translation_sv_SE.ts @@ -2607,7 +2607,7 @@ Internet Jam Session Software - Internet Jam Session Applikation + Internet Jam Session Software From 3a1645b98833143849514efe3cbeb65be32901c0 Mon Sep 17 00:00:00 2001 From: dingodoppelt Date: Sat, 11 Jul 2020 15:22:30 +0200 Subject: [PATCH 374/936] show number of connected clients as well as max clients in serverbrowser --- src/connectdlg.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connectdlg.cpp b/src/connectdlg.cpp index 494a0573ed..2ce4471b40 100755 --- a/src/connectdlg.cpp +++ b/src/connectdlg.cpp @@ -769,7 +769,7 @@ void CConnectDlg::SetPingTimeAndNumClientsResult ( const CHostAddress& InetAddr, else { pCurListViewItem-> - setText ( 2, QString().setNum ( iNumClients ) ); + setText ( 2, QString().setNum ( iNumClients ) + "/" + pCurListViewItem->text ( 5 ) ); } // check if the number of child list items matches the number of From c86340a74b8d988995cd7d1d5d33087cefa3451f Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 11 Jul 2020 16:56:59 +0200 Subject: [PATCH 375/936] update --- ChangeLog | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ChangeLog b/ChangeLog index 04f9e434ed..b7e3d42438 100644 --- a/ChangeLog +++ b/ChangeLog @@ -21,6 +21,8 @@ - redesign of the server dialog (e.g. added welcome message setting) +- show maximum number of clients for servers in the serverlist, coded by dingodoppelt (#451) + - bug fix: grouping faders in the client should be proportional (see discussion in #202, #419) From 3b61a34fc5cea05c0074654deb4b4b78cbf3dcfb Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 11 Jul 2020 20:29:27 +0200 Subject: [PATCH 376/936] update --- ChangeLog | 1 - src/util.cpp | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index b7e3d42438..c37006b43b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -29,7 +29,6 @@ TODO improve settings management -> move settings class in client/server classes, move actual settings variables TODO improve interaction between use of inifile and command line parameters (edited) #120 TODO Save and restore mixer state (fader / mute / solo...) #377 -(Add a save action for client and server with a keyboard shortcut #347) -> should be closed diff --git a/src/util.cpp b/src/util.cpp index caa151f4cb..48ea3e8ee3 100755 --- a/src/util.cpp +++ b/src/util.cpp @@ -460,6 +460,7 @@ CAboutDlg::CAboutDlg ( QWidget* parent ) : QDialog ( parent ) "

JP Cimalando (jpcima)

" "

Adam Sampson (atsampson)

" "

Stefan Weil (stweil)

" + "

dingodoppelt (dingodoppelt)

" "
" + tr ( "For details on the contributions check out the " ) + "" + tr ( "Github Contributors list" ) + "." ); From 57b14a01ed7280a57b110dc862f7ac344601ab30 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 11 Jul 2020 20:31:24 +0200 Subject: [PATCH 377/936] update translations --- src/res/translation/translation_de_DE.ts | 210 +++++++++++------------ src/res/translation/translation_es_ES.ts | 210 +++++++++++------------ src/res/translation/translation_fr_FR.ts | 210 +++++++++++------------ src/res/translation/translation_it_IT.ts | 210 +++++++++++------------ src/res/translation/translation_nl_NL.ts | 210 +++++++++++------------ src/res/translation/translation_pl_PL.ts | 210 +++++++++++------------ src/res/translation/translation_pt_BR.ts | 210 +++++++++++------------ src/res/translation/translation_pt_PT.ts | 210 +++++++++++------------ src/res/translation/translation_sv_SE.qm | Bin 92293 -> 93841 bytes src/res/translation/translation_sv_SE.ts | 210 +++++++++++------------ 10 files changed, 945 insertions(+), 945 deletions(-) diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index df7158e293..b44e4b68d1 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -67,57 +67,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 Holländisch - + Italian Italienisch - + German Deutsch - + Polish Polnisch - + Swedish Schwedisch - + About Über @@ -2011,28 +2011,28 @@ CHelpMenu - + &Help &Hilfe - - + + Getting &Started... &Erste Schritte... - + Software &Manual... Software&handbuch... - + What's &This Konte&xthilfe - + &About... Ü&ber... @@ -2040,12 +2040,12 @@ CLanguageComboBox - + Restart Required Neustart erforderlich - + Please restart the application for the language change to take effect. Bitte starte die Applikation neu um die Änderung der Spracheinstellung anzuwenden. @@ -2053,102 +2053,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 Sie stimmen zu, dass alle Daten, Klänge oder andere Arbeiten, die zum Server gesendet werden, Ihnen gehören oder von Ihnen selbst oder einem Lizenzgeber erstellt wurden und dass Sie diese Daten, Klänge oder andere Arbeiten unter die folgende Creative Commons Lizenz stellen (Für weitere Informationen über die Lizenz, siehe - + You are free to: Sie dürfen: - + Share Teilen - + copy and redistribute the material in any medium or format das Material in jedwedem Format oder Medium vervielfältigen und weiterverbreiten - + Adapt Bearbeiten - + remix, transform, and build upon the material das Material remixen, verändern und darauf aufbauen - + The licensor cannot revoke these freedoms as long as you follow the license terms. Der Lizenzgeber kann diese Freiheiten nicht widerrufen solange Sie sich an die Lizenzbedingungen halten. - + Under the following terms: Unter folgenden Bedingungen: - + Attribution Namensnennung - + 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. Sie müssen angemessene Urheber- und Rechteangaben machen, einen Link zur Lizenz beifügen und angeben, ob Änderungen vorgenommen wurden. Diese Angaben dürfen in jeder angemessenen Art und Weise gemacht werden, allerdings nicht so, dass der Eindruck entsteht, der Lizenzgeber unterstütze gerade Sie oder Ihre Nutzung besonders. - + NonCommercial Nicht kommerziell - + You may not use the material for commercial purposes. Sie dürfen das Material nicht für kommerzielle Zwecke nutzen. - + ShareAlike Weitergabe unter gleichen Bedingungen - + If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. Wenn Sie das Material remixen, verändern oder anderweitig direkt darauf aufbauen, dürfen Sie Ihre Beiträge nur unter derselben Lizenz wie das Original verbreiten. - + No additional restrictions Keine weiteren Einschränkungen - + You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. Sie dürfen keine zusätzlichen Klauseln oder technische Verfahren einsetzen, die anderen rechtlich irgendetwas untersagen, was die Lizenz erlaubt. @@ -2160,85 +2160,85 @@ 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 @@ -2251,7 +2251,7 @@ Was man hier sieht wird auch am Fader im Mixer angezeigt, wenn du mit einem - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level 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. @@ -2260,217 +2260,217 @@ Was man hier sieht wird auch am Fader im Mixer angezeigt, wenn du mit einem Server verbunden bist. Dieses Schild wird auch bei allen anderen Musikern, die mit dem gleichen Server verbunden sind, angezeigt. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Was man hier sieht wird auch am Fader im Mixer angezeigt, wenn du mit einem Server verbunden bist. Dieses Schild wird auch bei allen anderen Musikern, die mit dem gleichen Server verbunden sind, angezeigt. - + 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 - + Vocal Bass Gesang Bass - + Vocal Tenor Gesang Tenor - + Vocal Alto Gesang Alt - + Vocal Soprano Gesang Sopran - + Banjo Banjo - + Mandolin Mandoline - + Ukulele - + Bass Ukulele @@ -3253,17 +3253,17 @@ QCoreApplication - + , Version , Version - + Internet Jam Session Software Internet Jam Session Software - + Released under the GNU General Public License (GPL) Unter der GNU General Public License (GPL) diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index b7c8916253..e8461e5753 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -71,57 +71,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 - + Italian Italiano - + German Alemán - + Polish Polaco - + Swedish Sueco - + About Acerca de @@ -2035,28 +2035,28 @@ CHelpMenu - + &Help &Ayuda - - + + Getting &Started... Cómo &Empezar... - + Software &Manual... Manual del &Software... - + What's &This Qué es &Esto - + &About... &Acerca de... @@ -2064,12 +2064,12 @@ CLanguageComboBox - + Restart Required Reinicio Necesario - + Please restart the application for the language change to take effect. Por favor reinicia la aplicación para que el cambio de idioma surta efecto. @@ -2077,102 +2077,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. @@ -2184,85 +2184,85 @@ 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 @@ -2275,7 +2275,7 @@ Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Escribe tu nombre o alias aquí para que otros 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. @@ -2284,217 +2284,217 @@ Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor. Esta etiqueta también se mostrará en cada cliente conectado al mismo servidor que tú. Si se deja el nombre vacío, se muestra la dirección IP en su lugar. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor Jamulus. Esta etiqueta también se mostrará en cada cliente conectado al mismo servidor que tú. - + 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 - + Vocal Bass Voz Bajo - + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Mandolina - + Ukulele Ukulele - + Bass Ukulele Ukulele Barítono @@ -3277,17 +3277,17 @@ QCoreApplication - + , Version , Versión - + Internet Jam Session Software Internet Jam Session Software - + Released under the GNU General Public License (GPL) Publicado bajo la GNU General Public License (GPL) diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index e7f12179d6..d643d92e66 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -71,57 +71,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 - + Italian Italien - + German Allemand - + Polish Polonais - + Swedish Suédois - + About À propos @@ -2031,28 +2031,28 @@ CHelpMenu - + &Help &Aide - - + + Getting &Started... Premier pa&s... - + Software &Manual... &Manuel du logiciel... - + What's &This Qu'est-ce que c'est ? - + &About... À &propos @@ -2060,12 +2060,12 @@ CLanguageComboBox - + Restart Required Redémarrage nécessaire - + Please restart the application for the language change to take effect. Veuillez relancer l'application pour que le changement de langue prenne effet. @@ -2073,102 +2073,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. @@ -2180,85 +2180,85 @@ . 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 Dialogue d'édition de pseudo ou de nom - + Instrument picture button Bouton d'image d'instrument - + Country flag button Bouton de drapeau de pays - + City edit box Dialogue d'édition de ville - + Skill level combo box Choix déroulant de niveau de compétence - - - + + + 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 @@ -2271,222 +2271,222 @@ Ce que vous réglez ici apparaîtra au niveau de votre fader sur la table de mixage lorsque vous serez connecté à un serveur - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Écrivez votre nom ou un pseudonyme ici pour que les autres musiciens avec lesquels vous voulez jouer sachent qui vous êtes. Vous pouvez également ajouter une photo de l'instrument dont vous jouez et un drapeau du pays dans lequel vous vous trouvez. Vous pouvez également ajouter votre ville et votre niveau de compétence pour jouer de votre instrument. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Ce que vous réglez ici apparaîtra au niveau de votre chariot sur la table de mixage lorsque vous serez connecté à un serveur Jamulus. Cette étiquette sera également affichée dans chaque client qui est connecté au même serveur que vous. - + 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 - + Vocal Bass Voix basse - + Vocal Tenor Voix ténor - + Vocal Alto Voix alto - + Vocal Soprano Voix soprano - + Banjo Banjo - + Mandolin Mandoline - + Ukulele Ukulélé - + Bass Ukulele Ukulélé basse @@ -3265,17 +3265,17 @@ QCoreApplication - + , Version , version - + Internet Jam Session Software Logiciel de bÅ“uf sur Internet - + Released under the GNU General Public License (GPL) Publié sous la licence publique générale GNU (GPL) diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index 2cb88d545b..a03582e430 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -67,57 +67,57 @@ Le icone delle bandiere sono state realizzate da Marl James - + For details on the contributions check out the Per maggiori informazioni su chi ha contribuito, visitare - + Github Contributors list Lista dei collaboratori su Github - + Spanish Spagnolo - + French Francese - + Portuguese Portoghese - + Dutch Olandese - + Italian Italiano - + German Tedesco - + Polish - + Swedish - + About Informazioni su @@ -1991,28 +1991,28 @@ CHelpMenu - + &Help &Aiuto - - + + Getting &Started... &Introduzione... - + Software &Manual... &Manuale Software... - + What's &This &Cos'è Questo - + &About... I&nformazioni su... @@ -2020,12 +2020,12 @@ CLanguageComboBox - + Restart Required - + Please restart the application for the language change to take effect. @@ -2033,102 +2033,102 @@ CLicenceDlg - + I &agree to the above licence terms &Accetto i termini di licenza - + Accept Accetto - + Decline Declino - + By connecting to this server and agreeing to this notice, you agree to the following: Collegandosi a questo server e accettando questo avviso, si accetta quanto segue: - + 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 Dichiari che tutti i dati, audio o altre opere trasmessi a questo server sono di tua proprietà e creati da te o dai tuoi licenziatari e che rendi questi dati, audio o altre opere disponibili a terzi mediante la seguente Licenza Creative Commons (per ulteriori informazioni su questa licenza, vedere - + You are free to: Sei libero di: - + Share Condividere - + copy and redistribute the material in any medium or format copiare e ridistribuire il materiale in qualsiasi supporto o formato - + Adapt Adattare - + remix, transform, and build upon the material remixare, trasformare e modificare il materiale - + The licensor cannot revoke these freedoms as long as you follow the license terms. Il licenziante non può revocare queste libertà fintanto che segui i termini della licenza. - + Under the following terms: Sotto i seguenti requisiti: - + Attribution Attribuzione - + 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. È necessario accreditare in modo appropriato, fornire un collegamento alla licenza e indicare se sono state apportate modifiche. Puoi farlo in modo ragionevole, ma non in modo tale da suggerire a te o al tuo utilizzo il supporto del licenziante. - + NonCommercial Non Commerciale - + You may not use the material for commercial purposes. Non è possibile utilizzare il materiale a fini commerciali. - + ShareAlike Condividere allo stesso modo - + If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. Se remixate, trasformate o sviluppate il materiale, dovete distribuire i vostri contributi con la stessa licenza dell'originale. - + No additional restrictions Nessuna restrizione aggiuntiva - + You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. Non è possibile applicare termini legali o misure tecnologiche che impediscono legalmente ad altre persone di fare qualsiasi cosa consentita dalla licenza. @@ -2136,60 +2136,60 @@ CMusProfDlg - - + + Musician Profile Profilo del Musicista - + Alias/Name Nome/Alias - + Instrument Strumento - + Country Paese - + City Città - + Skill Livello - + &Close &Chiudi - - - + + + None None - + Beginner Principiante - + Intermediate Intermedio - + Expert Esperto @@ -2206,247 +2206,247 @@ questo tag verrà mostrato anche a ciascun client connesso allo stesso server. Se viene lasciato vuoto, verrà visualizzato l'indirizzo IP. - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Scrivi qui il tuo nome o un alias in modo che gli altri musicisti con cui vuoi suonare sappiano chi sei. Puoi anche aggiungere una foto dello strumento che suoni e una bandiera del paese in cui ti trovi. Puoi anche aggiungere la tua città e il tuo livello di abilità nel suonare il tuo strumento. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Ciò che hai impostato apparirà sul tuo fader sulla scheda del mixer quando sei collegato a un server Jamulus. Questo tag verrà mostrato anche su ogni client collegato allo stesso server. - + Alias or name edit box Box di modifica Nome o Alias - + Instrument picture button Immagine dello strumento - + Country flag button Pulsante bandiera del paese - + City edit box Box di modifica Città - + Skill level combo box Livello di Abilità - + Drum Set Batteria - + Djembe Djembe - + Electric Guitar Chitarra elettrica - + Acoustic Guitar Chitarra Acustica - + Bass Guitar Basso Elettrico - + Keyboard Tastiera - + Synthesizer Sintetizzatore - + Grand Piano Grand Piano - + Accordion Fisarmonica - + Vocal Voce - + Microphone Microfono - + Harmonica Armonica - + Trumpet Tromba - + Trombone Trombone - + French Horn Corno Francese - + Tuba Tuba - + Saxophone Sassofono - + Clarinet Clarinet - + Flute Flauto - + Violin Violino - + Cello Cello - + Double Bass Contrabbasso - + Recorder Recorder - + Streamer Streamer - + Listener Ascoltatore - + Guitar+Vocal Chitarra+Voce - + Keyboard+Vocal Tastiera+Voce - + Bodhran Bodhran - + Bassoon Fagotto - + Oboe Oboe - + Harp Arpa - + Viola Viola - + Congas Congas - + Bongo Bongo - + Vocal Bass Voce Basso - + Vocal Tenor Voce Tenore - + Vocal Alto Voce Alto - + Vocal Soprano Voce Soprano - + Banjo Banjo - + Mandolin Mandolino - + Ukulele Uculele - + Bass Ukulele Uculele Basso @@ -3217,17 +3217,17 @@ QCoreApplication - + , Version Versione, Versione - + Internet Jam Session Software Programma per Jam Session su Internet - + Released under the GNU General Public License (GPL) Rilasciato sotto licensa GNU General Public License (GPL) diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index 7a005f10c8..da070a672c 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -67,57 +67,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 - + Italian Italiaans - + German Duits - + Polish - + Swedish - + About Over @@ -1979,28 +1979,28 @@ CHelpMenu - + &Help &Hulp - - + + Getting &Started... &Aan de slag... - + Software &Manual... Software&handleiding... - + What's &This Wat Is &Dit - + &About... &Over... @@ -2008,12 +2008,12 @@ CLanguageComboBox - + Restart Required - + Please restart the application for the language change to take effect. @@ -2021,102 +2021,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. @@ -2124,60 +2124,60 @@ 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 @@ -2194,247 +2194,247 @@ 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. - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level 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 je vaardigheidsniveau kunnen ook worden toegevoegd. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Wat u hier instelt verschijnt bij uw fader op het mengpaneel indien verbonden met een Jamulus-server. Deze tag zal ook worden getoond aan andere muzikanten die met deze server verbonden zijn. - + 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 - + Vocal Bass Bas (stem) - + Vocal Tenor Tenor (stem) - + Vocal Alto Alt (stem) - + Vocal Soprano Sopraan (stem) - + Banjo Banjo - + Mandolin Mandoline - + Ukulele Ukelele - + Bass Ukulele Ukelele-bas @@ -3217,17 +3217,17 @@ QCoreApplication - + , Version , Versie - + Internet Jam Session Software Internet Jamsessie Software - + Released under the GNU General Public License (GPL) Gereleased onder de GNU General Public License (GPL) diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index 4b60c3455f..0db61d7feb 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -39,57 +39,57 @@ - + For details on the contributions check out the - + Github Contributors list - + Spanish hiszpaÅ„ski - + French francuski - + Portuguese portugalski - + Dutch holenderski - + Italian wÅ‚oski - + German niemiecki - + Polish - + Swedish - + About O programie @@ -1687,28 +1687,28 @@ nie jestem pewna CHelpMenu - + &Help &Pomoc - - + + Getting &Started... &Zaczynajmy... - + Software &Manual... &Instrukcja programu... - + What's &This &Co to - + &About... &O programie... @@ -1716,12 +1716,12 @@ nie jestem pewna CLanguageComboBox - + Restart Required - + Please restart the application for the language change to take effect. @@ -1729,102 +1729,102 @@ nie jestem pewna CLicenceDlg - + I &agree to the above licence terms - + Accept - + Decline - + By connecting to this server and agreeing to this notice, you agree to the following: - + 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. @@ -1832,307 +1832,307 @@ nie jestem pewna CMusProfDlg - - + + Musician Profile Profil muzyka - + Alias/Name Nick/ImiÄ™ - + Instrument Instrument - + Country Kraj - + City Miasto - + Skill UmiejÄ™tnoÅ›ci - + &Close &Zamknij - - - + + + None *nie jestem pewna Å»aden - + Beginner PoczÄ…tkujÄ…cy - + Intermediate Åšredniozaawansowany - + Expert Ekspert - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. - + Alias or name edit box - + Instrument picture button - + Country flag button - + City edit box - + Skill level combo box - + Drum Set Zestaw perkusyjny - + Djembe Djembe - + Electric Guitar Gitara elektryczna - + Acoustic Guitar Gitara akustyczna - + Bass Guitar Gitara basowa - + Keyboard Keyboard - + Synthesizer Syntezator - + Grand Piano Fortepian - + Accordion Akordeon - + Vocal Wokal - + Microphone Mikrofon - + Harmonica Harmonijka ustna - + Trumpet TrÄ…bka - + Trombone Puzon - + French Horn Waltornia - + Tuba Tuba - + Saxophone Saksofon - + Clarinet Klarnet - + Flute Flet - + Violin Skrzypce - + Cello Wiolonczela - + Double Bass Kontrabas - + Recorder *nie wiem Flet prosty - + Streamer Streamer - + Listener SÅ‚uchacz - + Guitar+Vocal Gitara+Wokal - + Keyboard+Vocal Keyboard+Wokal - + Bodhran Bodhran - + Bassoon Fagot - + Oboe Obój - + Harp Harfa - + Viola Altówka - + Congas Kongi - + Bongo Bongo - + Vocal Bass Bas - + Vocal Tenor Tenor - + Vocal Alto Alt - + Vocal Soprano Sopran - + Banjo Banjo - + Mandolin Mandolina - + Ukulele Ukulele - + Bass Ukulele Ukulele basowe @@ -2848,17 +2848,17 @@ nie jestem pewna QCoreApplication - + , Version - + Internet Jam Session Software - + Released under the GNU General Public License (GPL) diff --git a/src/res/translation/translation_pt_BR.ts b/src/res/translation/translation_pt_BR.ts index 52ce982fb0..862f40f87d 100644 --- a/src/res/translation/translation_pt_BR.ts +++ b/src/res/translation/translation_pt_BR.ts @@ -71,57 +71,57 @@ Ãcones das bandeiras dos países por 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 - + Italian Italiano - + German Alemão - + Polish Polonês - + Swedish Suíço - + About Sobre o @@ -2018,28 +2018,28 @@ CHelpMenu - + &Help &Ajuda - - + + Getting &Started... Como Começa&r... - + Software &Manual... &Manual do Programa... - + What's &This O que é &isto - + &About... &Sobre... @@ -2047,12 +2047,12 @@ CLanguageComboBox - + Restart Required É necessário reiniciar - + Please restart the application for the language change to take effect. Reinicie a aplicação para que a alteração de idioma entre em vigor. @@ -2060,102 +2060,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 conectar-se a este servidor e concordar com este aviso, você concorda 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 remixar, 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ê remixar, transformar, ou criar a partir do material, deve distribuir as suas contribuições sob a mesma licença que do 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. @@ -2167,85 +2167,85 @@ . 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 apelido - + 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 Seletor do nível de habilidade - - - + + + None Nenhum - - + + Musician Profile Perfil do músico - + Alias/Name Apelido/Nome - + Instrument Instrumento - + Country País - + City Cidade - + Skill Habilidade - + &Close &Fechar - + Beginner Principiante - + Intermediate Intermediário - + Expert Avançado @@ -2258,222 +2258,222 @@ O que definir aqui aparecerá por baixo do seu fader na secção de mistura quando estiver ligado a um servidor - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Escreva o seu nome ou um apelido aqui para que os outros músicos com quem quer tocar saibam quem você é. Além disso, pode também definir uma imagem do instrumento que toca e uma bandeira do país onde vive. A cidade onde 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 Jamulus server. This tag will also be shown at each client which is connected to the same server as you. O que definir aqui aparecerá abaixo do seu fader no mixer quando estiver conectado a um servidor Jamulus. Esta etiqueta também será exibida em cada cliente que estiver conectado ao mesmo 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 - + Vocal Bass Voz Baixo - + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Bandolim - + Ukulele Ukulele - + Bass Ukulele Ukulele Baixo @@ -3256,17 +3256,17 @@ QCoreApplication - + , Version , Versão - + Internet Jam Session Software Programa de Jam Sessions pela Internet - + Released under the GNU General Public License (GPL) Lançado sob a Licença Pública Geral GNU (GPL) diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index f8ef9d179b..cd97fa8943 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -71,57 +71,57 @@ Ãcones das bandeiras dos países por 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 - + Italian Italiano - + German Alemão - + Polish - + Swedish - + About Sobre o @@ -2015,28 +2015,28 @@ CHelpMenu - + &Help &Ajuda - - + + Getting &Started... Como Começa&r... - + Software &Manual... &Manual do Programa... - + What's &This O que é &isto - + &About... &Sobre... @@ -2044,12 +2044,12 @@ CLanguageComboBox - + Restart Required - + Please restart the application for the language change to take effect. @@ -2057,102 +2057,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. @@ -2164,85 +2164,85 @@ . 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 @@ -2255,222 +2255,222 @@ O que definir aqui aparecerá por baixo do seu fader na secção de mistura quando estiver ligado a um servidor - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Escreva 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 também definir uma imagem do instrumento que toca e uma bandeira do país onde vive. A cidade onde 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 Jamulus server. This tag will also be shown at each client which is connected to the same server as you. O que definir aqui aparecerá por baixo do seu fader na secção de mistura quando estiver ligado a um servidor Esta etiqueta também será exibida em cada cliente que estiver ligado ao mesmo 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 - + Vocal Bass Voz Baixo - + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Bandolim - + Ukulele Ukulele - + Bass Ukulele Ukulele Baixo @@ -3253,17 +3253,17 @@ QCoreApplication - + , Version , Versão - + Internet Jam Session Software Programa de Jam Sessions pela Internet - + Released under the GNU General Public License (GPL) Lançado sob a Licença Pública Geral GNU (GPL) diff --git a/src/res/translation/translation_sv_SE.qm b/src/res/translation/translation_sv_SE.qm index ea3bb90d2f3626a24c800f0a356655c92760b269..d4d61e788564c997bcdac0ec6bf77d6a94203371 100644 GIT binary patch delta 4406 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 delta 3451 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 gjorda av Mark James - + For details on the contributions check out the För detaljer om bidrag, kolla in - + Github Contributors list Github's bidragsgivarlista - + Spanish Spanska - + French Franska - + Portuguese Portugisiska - + Dutch Holländska - + Italian Italienska - + German Tyska - + Polish - + Swedish - + About Om @@ -1679,28 +1679,28 @@ CHelpMenu - + &Help &Hjälp - - + + Getting &Started... Komma &igÃ¥ng ... - + Software &Manual... &Manual... - + What's &This &Var är detta - + &About... &Om... @@ -1708,12 +1708,12 @@ CLanguageComboBox - + Restart Required - + Please restart the application for the language change to take effect. @@ -1721,102 +1721,102 @@ CLicenceDlg - + I &agree to the above licence terms Jag &accepterar ovanstÃ¥ende licensvillkor - + Accept Acceptera - + Decline Neka - + By connecting to this server and agreeing to this notice, you agree to the following: Genom att ansluta till denna server och godkänna detta meddelande, samtycker du till följande: - + 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 Du accepterar att all data, ljud eller andra verk som överförs till denna server ägs och skapas av dig eller dina licensgivare, och att du gör dessa data, ljud eller andra verk tillgängliga via följande Creative Commons-licens (för mer information om detta licens, se - + You are free to: Du är fri att: - + Share Dela - + copy and redistribute the material in any medium or format kopiera och omfördela materialet i vilket medium eller format som helst - + Adapt Anpssa - + remix, transform, and build upon the material remixa, transformera och bygga vidare pÃ¥ materialet - + The licensor cannot revoke these freedoms as long as you follow the license terms. Licensgivaren kan inte Ã¥terkalla dessa friheter sÃ¥ länge du följer licensvillkoren. - + Under the following terms: Under följande villkor: - + Attribution Erkännande - + 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. Du mÃ¥ste ge lämplig kredit, ange en länk till licensen och ange om ändringar gjordes. Du kan göra det pÃ¥ nÃ¥got rimligt sätt, men inte pÃ¥ nÃ¥got sätt som antyder att licensgivaren godkänner dig eller din användning. - + NonCommercial Icke-kommersiell - + You may not use the material for commercial purposes. Du fÃ¥r inte använda materialet för kommersiella ändamÃ¥l. - + ShareAlike Dela lika - + If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. Om du remixar, omvandlar eller bygger pÃ¥ materialet mÃ¥ste du distribuera dina bidrag under samma licens som originalet. - + No additional restrictions Inga ytterligare begränsningar - + You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. Du fÃ¥r inte tillämpa juridiska villkor eller tekniska Ã¥tgärder som lagligen begränsar andra frÃ¥n att göra nÃ¥got som licensen tillÃ¥ter. @@ -1829,305 +1829,305 @@ Inget namn - - + + Musician Profile Musikprofil - + Alias/Name Alias/Namn - + Instrument Instrument - + Country Land - + City Stad - + Skill FärdighetsnivÃ¥ - + &Close &Stäng - - - + + + None Ingen - + Beginner Nybörjare - + Intermediate MellannivÃ¥ - + Expert Expert - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Skriv ditt namn eller ett alias här sÃ¥ att de andra musikerna du vill spela med vet vem du är. Du kan ocksÃ¥ lägga till en bild av instrumentet du spelar och en flagga för det land du befinner dig i. Din stad och din färdighetsnivÃ¥ som spelar ditt instrument kan ocksÃ¥ läggas till. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Det du ställer in här visas pÃ¥ din fader pÃ¥ mixerkortet när du är ansluten till en Jamulus-server. Den här taggen kommer ocksÃ¥ att visas vid varje klient som är ansluten till samma server som du. - + Alias or name edit box Redigeringsruta för alias eller namn - + Instrument picture button Knapp för instrumentbild - + Country flag button Knapp för landsflagga - + City edit box Redigeringsruta för stad - + Skill level combo box kombinationsruta för färdighetsnivÃ¥ - + Drum Set Trumset - + Djembe Djembe - + Electric Guitar Elgitarr - + Acoustic Guitar Akustisk gitarr - + Bass Guitar Basgitarr - + Keyboard Klaviatur - + Synthesizer Synthesizer - + Grand Piano Flygel - + Accordion Dragspel - + Vocal SÃ¥ng - + Microphone Mikrofon - + Harmonica Munspel - + Trumpet Trumpet - + Trombone Trombon - + French Horn Valthorn - + Tuba Tuba - + Saxophone Saxofon - + Clarinet Klarinett - + Flute Flöjt - + Violin Fiol - + Cello Cello - + Double Bass Kontrabas - + Recorder Inspelningsapparat - + Streamer Streamer - + Listener Lyssnare - + Guitar+Vocal Gitarr+sÃ¥ng - + Keyboard+Vocal Klaviatur+sÃ¥ng - + Bodhran Klaviatur+SÃ¥ng - + Bassoon Fagott - + Oboe Oboe - + Harp Harpa - + Viola Altfiol - + Congas Congas - + Bongo Bongo - + Vocal Bass SÃ¥ng (bas) - + Vocal Tenor SÃ¥ng (tenor) - + Vocal Alto SÃ¥ng (alt) - + Vocal Soprano SÃ¥ng (sopran) - + Banjo Banjo - + Mandolin Mandolin - + Ukulele Ukulele - + Bass Ukulele Ukulele (bas) @@ -2853,17 +2853,17 @@ QCoreApplication - + , Version , Version - + Internet Jam Session Software Internet Jam Session Software - + Released under the GNU General Public License (GPL) Släppt under GNU General Public License (GPL) From 377d9e2984e23a529bb78513c0274bf3e5eee552 Mon Sep 17 00:00:00 2001 From: ignotus666 Date: Sat, 11 Jul 2020 21:32:07 +0200 Subject: [PATCH 378/936] update Spanish translation --- src/res/translation/translation_es_ES.ts | 236 +++++++++++------------ 1 file changed, 118 insertions(+), 118 deletions(-) diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index e8461e5753..395b92722c 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -1,35 +1,35 @@ - + CAboutDlg The - El software + El software software enables musicians to perform real-time jam sessions over the internet. There is a - software permite a músicos realizar jam sessions en tiempo real por internet. Hay un + software permite a músicos realizar jam sessions en tiempo real por internet. Hay un software enables musicians to perform real-time jam sessions over the internet. - permite a músicos realizar jam sessions en tiempo real por internet. + permite a músicos realizar jam sessions en tiempo real por internet. server which collects the audio data from each - que recoge el audio de cada cliente + que recoge el audio de cada cliente There is a - Hay un servidor + Hay un servidor client, mixes the audio data and sends the mix back to each client. - , mezcla el audio y lo envía de vuelta a cada cliente. + , mezcla el audio y lo envía de vuelta a cada cliente. uses the following libraries, resources or code snippets: - utiliza las siguientes librerías, recursos o fragmentos de código: + utiliza las siguientes librerías, recursos o fragmentos de código: @@ -48,7 +48,7 @@ Country flag icons from Mark James - Iconos de banderas nacionales de Mark James + Iconos de banderas nacionales de Mark James @@ -127,19 +127,19 @@ , Version - , Versión + , Versión Internet Jam Session Software - Internet Jam Session Software + Internet Jam Session Software Released under the GNU General Public License (GPL) - Publicado bajo la GNU General Public License (GPL) + Publicado bajo la GNU General Public License (GPL) Under the GNU General Public License (GPL) - Bajo la GNU General Public License (GPL) + Bajo la GNU General Public License (GPL) @@ -240,7 +240,7 @@ Displays the pre-fader audio level of this channel. All connected clients at the server will be assigned an audio level, the same value for each client. - Muestra el nivel de audio pre-fader de este canal. Todos los clientes conectados al servidor tienen un nivel de audio asignado, el mismo para cada cliente. + Muestra el nivel de audio pre-fader de este canal. Todos los clientes conectados al servidor tienen un nivel de audio asignado, el mismo para cada cliente. @@ -254,7 +254,7 @@ Adjusts the audio level of this channel. All connected clients at the server will be assigned an audio fader at each client, adjusting the local mix. - Ajusta el nivel de audio de este canal. Todos los clientes conectados al servidor tienen asignado un fader en el cliente, ajustando la mezcla local. + Ajusta el nivel de audio de este canal. Todos los clientes conectados al servidor tienen asignado un fader en el cliente, ajustando la mezcla local. @@ -273,7 +273,7 @@ Speaker with cancellation stroke: Indicates that the other client has muted you. - Altavoz tachado: Indica que el otro cliente te ha muteado. + Altavoz tachado: Indica que el otro cliente te ha muteado. @@ -287,7 +287,7 @@ Sets the panning position from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. - Fija el paneo de Izquierda a Derecha del canal. Solo funciona en estéreo o preferiblemente en modo Entrada mono/Salida estéreo. + Fija el paneo de Izquierda a Derecha del canal. Solo funciona en estéreo o preferiblemente en modo Entrada mono/Salida estéreo. @@ -306,7 +306,7 @@ With the Solo checkbox, the audio channel can be set to solo which means that all other channels except of the current channel are muted. It is possible to set more than one channel to solo. - Activando Solo, todos los demás canales de audio excepto este se mutean. Es posible activar esta función para más de un canal. + Activando Solo, todos los demás canales de audio excepto este se mutean. Es posible activar esta función para más de un canal. @@ -320,7 +320,7 @@ The fader tag identifies the connected client. The tag name, the picture of your instrument and a flag of your country can be set in the main window. - La etiqueta del fader identifica al cliente conectado. El nombre de la etiqueta, la imagen de tu instrumento y la bandera de tu país se pueden establecer en la ventana principal. + La etiqueta del fader identifica al cliente conectado. El nombre de la etiqueta, la imagen de tu instrumento y la bandera de tu país se pueden establecer en la ventana principal. @@ -561,11 +561,11 @@ Cl&ear - Va&ciar + Va&ciar &Close - &Cerrar + &Cerrar @@ -577,7 +577,7 @@ The input level indicators show the input level of the two stereo channels of the current selected audio input. - Los indicadores de nivel de entrada muestran el nivel de entrada de los dos canales estéreo de la entrada de audio actualmente seleccionada. + Los indicadores de nivel de entrada muestran el nivel de entrada de los dos canales estéreo de la entrada de audio actualmente seleccionada. @@ -586,23 +586,23 @@ If the - Si el software + Si el software 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á conectado y tocas tu instrumento/cantas por el micrófono, el LED del indicador debería parpadear. Si no es así, seguramente has seleccionado el canal de entrada equivocado (por ej. line in en lugar de la entrada del micrófono) o está muy bajo el gain de entrada en el mezclador de audio (Windows). + está conectado y tocas tu instrumento/cantas por el micrófono, el LED del indicador debería parpadear. Si no es así, seguramente has seleccionado el canal de entrada equivocado (por ej. line in en lugar de la entrada del micrófono) o está muy bajo el gain de entrada en el mezclador de audio (Windows). For a proper usage of the - Para un uso adecuado del software + Para un uso adecuado del software software, you should not hear your singing/instrument in the loudspeaker or your headphone when the - , no deberías oír tu voz/instrumento por el altavoz o los auriculares cuando el software + , no deberías oír tu voz/instrumento por el altavoz o los auriculares cuando el software software is not connected. This can be achieved by muting your input audio channel in the Playback mixer (not the Recording mixer!). - no está conectado. Esto se puede hacer muteando tu entrada de audio en el mezclador de Reproducción (¡y no en el de Grabación!). + no está conectado. Esto se puede hacer muteando tu entrada de audio en el mezclador de Reproducción (¡y no en el de Grabación!). @@ -621,7 +621,7 @@ Push this button to connect to a server. A dialog where you can select a server will open. If you are connected, pressing this button will end the session. - Pulsa este botón para conectar con un servidor. Se abrirá una ventana donde puedes seleccionar un servidor. Si estás conectado, este botón finalizará la sesión. + Pulsa este botón para conectar con un servidor. Se abrirá una ventana donde puedes seleccionar un servidor. Si estás conectado, este botón finalizará la sesión. @@ -630,11 +630,11 @@ Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the - Pulsando este botón cambia el texto del mismo de Conectar a Desconectar; esto es, tiene la función de conmutador para conectar y desconectar el software + Pulsando este botón cambia el texto del mismo de Conectar a Desconectar; esto es, tiene la función de conmutador para conectar y desconectar el software software. - . + . @@ -648,19 +648,19 @@ Reverberation effect level setting - Nivel efecto reverberación + Nivel efecto reverberación Left channel selection for reverberation - Selección canal izq para reverberación + Selección canal izq para reverberación Right channel selection for reverberation - Selección canal dcho para reverberación + Selección canal dcho para reverberación If this LED indicator turns red, you will not have much fun using the - Si este indicador LED se vuelve rojo, no te divertirás demasiado utilizando el + Si este indicador LED se vuelve rojo, no te divertirás demasiado utilizando el @@ -699,7 +699,7 @@ Reverb requires significant CPU so it should only be used on fast PCs. If the reverb level fader is set to minimum (the default setting), the effect is switched off and does not cause any additional CPU usage. - El efecto de reverb requiere un esfuerzo importante del procesador, por lo que solo debería usarse en ordenadores potentes. Si se deja el fader de reverb al mínimo (la configuración por defecto), el efecto estará desactivado y no significará ninguna carga adicional para el procesador. + El efecto de reverb requiere un esfuerzo importante del procesador, por lo que solo debería usarse en ordenadores potentes. Si se deja el fader de reverb al mínimo (la configuración por defecto), el efecto estará desactivado y no significará ninguna carga adicional para el procesador. @@ -752,7 +752,7 @@ If this LED indicator turns red, you will not have much fun using the application - Si este indicador LED se vuelve rojo, no te divertirás demasiado utilizando la aplicación + Si este indicador LED se vuelve rojo, no te divertirás demasiado utilizando la aplicación @@ -771,7 +771,7 @@ The delay is perfect for a jam session - El retardo es perfecto para una jam session + El retardo es perfecto para una jam session @@ -882,7 +882,7 @@ With the audio fader, the relative levels of the left and right local audio channels can be changed. For a mono signal it acts like a panning between the two channels. If, e.g., a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows - Con el fader de audio, los niveles relativos de los canales locales de audio derecho e izquierdo pueden cambiarse. Para una señal mono actúa como paneo entre los dos canales. Por ej., si se conecta un miocrófono al canal derecho y un instrumento al izquierdo que suena mucho más alto que el micrófono, mueve el fader en una dirección donde la etiqueta sobre el fader muestra + Con el fader de audio, los niveles relativos de los canales locales de audio derecho e izquierdo pueden cambiarse. Para una señal mono actúa como paneo entre los dos canales. Por ej., si se conecta un miocrófono al canal derecho y un instrumento al izquierdo que suena mucho más alto que el micrófono, mueve el fader en una dirección donde la etiqueta sobre el fader muestra @@ -896,23 +896,23 @@ Reverberation Level - Nivel Reverberación + Nivel Reverberación A reverberation effect can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverberation level can be modified. If, e.g., the microphone signal is fed into the right audio channel of the sound card and a reverberation effect shall be applied, set the channel selector to right and move the fader upwards until the desired reverberation level is reached. - Se puede aplicar un efecto de reverberación a un canal local de audio mono o a ambos canales en modo estéreo. Se puede modificar la selección de canales en modo mono y el nivel de reverberación. Por ej., si la señal del micrófono va por el canal derecho de la tarjeta de sonido y se desea aplicar reverberación, cambia el selector de canal a derecho y sube el fader hasta alcanzar el nivel de reverberación deseado. + Se puede aplicar un efecto de reverberación a un canal local de audio mono o a ambos canales en modo estéreo. Se puede modificar la selección de canales en modo mono y el nivel de reverberación. Por ej., si la señal del micrófono va por el canal derecho de la tarjeta de sonido y se desea aplicar reverberación, cambia el selector de canal a derecho y sube el fader hasta alcanzar el nivel de reverberación deseado. The reverberation effect requires significant CPU so it should only be used on fast PCs. If the reverberation level fader is set to minimum (which is the default setting), the reverberation effect is switched off and does not cause any additional CPU usage. - El efecto de reverberación require un esfuerzo importante del procesador, por lo que solo debería usarse en ordenadores potentes. Si se deja el fader de reverberación al mínimo (la configuración por defecto), el efecto estará desactivado y no significará ninguna carga adicional para el procesador. + El efecto de reverberación require un esfuerzo importante del procesador, por lo que solo debería usarse en ordenadores potentes. Si se deja el fader de reverberación al mínimo (la configuración por defecto), el efecto estará desactivado y no significará ninguna carga adicional para el procesador. Reverberation Channel Selection - Selección Canal Reverberación + Selección Canal Reverberación With these radio buttons the audio input channel on which the reverberation effect is applied can be chosen. Either the left or right input channel can be selected. - Con estos botones se puede escoger el canal de entrada de audio al que se aplica el efecto de reverberación. Se pueden elegir los canales de entrada izquierdo o derecho. + Con estos botones se puede escoger el canal de entrada de audio al que se aplica el efecto de reverberación. Se pueden elegir los canales de entrada izquierdo o derecho. @@ -921,7 +921,7 @@ The delay status LED indicator shows the current audio delay status. If the light is green, the delay is perfect for a jam session. If the light is yellow, a session is still possible but it may be harder to play. If the light is red, the delay is too large for jamming. - El indicador LED del estado del retardo muestra el estado actual del retardo del audio. Si está en verde, el retardo es perfecto para una jam session. Si está en amarillo, la sesión aún es posible, pero quizá sea más difícil tocar. Si está en rojo, el retardo es demasiado alto para tocar. + El indicador LED del estado del retardo muestra el estado actual del retardo del audio. Si está en verde, el retardo es perfecto para una jam session. Si está en amarillo, la sesión aún es posible, pero quizá sea más difícil tocar. Si está en rojo, el retardo es demasiado alto para tocar. @@ -930,7 +930,7 @@ The buffers status LED indicator shows the current audio/streaming status. If the light is green, there are no buffer overruns/underruns and the audio stream is not interrupted. If the light is red, the audio stream is interrupted caused by one of the following problems: - El indicador LED del estado de buffers muestra el estado actual del flujo de audio. Si está verde, no hay problemas de buffer y no se interrumpe el flujo de audio. Si está rojo, el flujo de audio se interrumpe, a causa de uno de los siguientes problemas: + El indicador LED del estado de buffers muestra el estado actual del flujo de audio. Si está verde, no hay problemas de buffer y no se interrumpe el flujo de audio. Si está rojo, el flujo de audio se interrumpe, a causa de uno de los siguientes problemas: @@ -939,11 +939,11 @@ The sound card buffer delay (buffer size) is set to too small a value. - El retardo de buffer de la tarjeta de audio (tamaño buffer) tiene un valor demasiado bajo. + El retardo de buffer de la tarjeta de audio (tamaño buffer) tiene un valor demasiado bajo. The upload or download stream rate is too high for the current available internet bandwidth. - La tasa de subida o bajada is demasiado alta para el ancho de banda disponible de internet. + La tasa de subida o bajada is demasiado alta para el ancho de banda disponible de internet. @@ -1063,11 +1063,11 @@ The jitter buffer compensates for network and sound card timing jitters. The size of this jitter buffer has therefore influence on the quality of the audio stream (how many dropouts occur) and the overall delay (the longer the buffer, the higher the delay). - El jitter buffer compensa el jitter de la red y la tarjeta de audio. El tamaño de este buffer tiene por tanto un impacto sobre la calidad del flujo de audio (el número de caídas de la señal) y el retardo total (a mayor buffer, mayor retardo). + El jitter buffer compensa el jitter de la red y la tarjeta de audio. El tamaño de este buffer tiene por tanto un impacto sobre la calidad del flujo de audio (el número de caídas de la señal) y el retardo total (a mayor buffer, mayor retardo). The jitter buffer size can be manually chosen for the local client and the remote server. For the local jitter buffer, dropouts in the audio stream are indicated by the light below the jitter buffer size faders. If the light turns to red, a buffer overrun/underrun took place and the audio stream is interrupted. - El tamaño del jitter buffer se puede establecer para el cliente local y para el servidor remoto. Para el jitter buffer local, las caídas del flujo de audio se indican mediante la luz debajo de los faders del jitter buffer. Si la luz se vuelve roja, significa que ha habido una interrupción del flujo de audio. + El tamaño del jitter buffer se puede establecer para el cliente local y para el servidor remoto. Para el jitter buffer local, las caídas del flujo de audio se indican mediante la luz debajo de los faders del jitter buffer. Si la luz se vuelve roja, significa que ha habido una interrupción del flujo de audio. @@ -1076,11 +1076,11 @@ An auto setting of the jitter buffer size setting is available. If the check Auto is enabled, the jitter buffers of the local client and the remote server are set automatically based on measurements of the network and sound card timing jitter. If the Auto check is enabled, the jitter buffer size faders are disabled (they cannot be moved with the mouse). - Hay disponible una configuración automática del jitter buffer. Si se activa Auto, los jitter buffers del cliente local y del servidor remoto se configuran automáticamente basándose en mediciones del jitter de la red y la tarjeta de audio. Si se activa esta opción, los faders quedan deshabilitados (no pueden moverse con el ratón). + Hay disponible una configuración automática del jitter buffer. Si se activa Auto, los jitter buffers del cliente local y del servidor remoto se configuran automáticamente basándose en mediciones del jitter de la red y la tarjeta de audio. Si se activa esta opción, los faders quedan deshabilitados (no pueden moverse con el ratón). If 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 with a red light. - En caso de activar la configuración automática del jitter buffer, los buffers de red del cliente local y del servidor remoto se asignan a un valor conservador para minimizar la probabilidad de fallos de audio. Para ajustar el retardo de audio/latencia se recomienda desactivar la función automática y bajar los valores de jitter buffer manualmente utilizando los controles deslizantes hasta alcanzar un límite aceptable de caídas de audio. El indicador LED ofrece una visualización de las caídas de audio mediante una luz roja. + En caso de activar la configuración automática del jitter buffer, los buffers de red del cliente local y del servidor remoto se asignan a un valor conservador para minimizar la probabilidad de fallos de audio. Para ajustar el retardo de audio/latencia se recomienda desactivar la función automática y bajar los valores de jitter buffer manualmente utilizando los controles deslizantes hasta alcanzar un límite aceptable de caídas de audio. El indicador LED ofrece una visualización de las caídas de audio mediante una luz roja. @@ -1214,11 +1214,11 @@ The buffer delay setting is a fundamental setting of the - Este parámetro es una parte fundamental de la configuración del software + Este parámetro es una parte fundamental de la configuración del software software. This setting has influence on many connection properties. - . Este parámetro tiene un impacto sobre muchas propiedades de la conexión. + . Este parámetro tiene un impacto sobre muchas propiedades de la conexión. @@ -1227,31 +1227,31 @@ 64 samples: This is the preferred setting since it provides the lowest latency but does not work with all sound cards. - 64 muestras: Es la configuración aconsejada puesto que ofrece la latencia más baja, aunque no funciona con todas las tarjetas de audio. + 64 muestras: Es la configuración aconsejada puesto que ofrece la latencia más baja, aunque no funciona con todas las tarjetas de audio. 128 samples: This setting should work for most available sound cards. - 128 muestras: Esta configuración debería de funcionar con la mayoría de tarjetas de audio. + 128 muestras: Esta configuración debería de funcionar con la mayoría de tarjetas de audio. 256 samples: This setting should only be used if only a very slow computer or a slow internet connection is available. - 256 muestras: Esta configuración solo debería usarse con un ordenador muy lento o con una conexión a internet muy lenta. + 256 muestras: Esta configuración solo debería usarse con un ordenador muy lento o con una conexión a internet muy lenta. Some sound card drivers do not allow the buffer delay to be changed from within the - Algunos drivers de tarjetas de audio no permiten cambiar el retardo de buffer desde el software + Algunos drivers de tarjetas de audio no permiten cambiar el retardo de buffer desde el software software. In this case the buffer delay setting is disabled. To change the actual buffer delay, this setting has to be changed in the sound card driver. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. - . En este caso la configuración del retardo de buffer se deshabilita. Para cambiarlo, esta configuración debe realizarse en el driver de la tarjeta de audio. En Windows, pulsa el botón de Configuración ASIO para acceder al panel de configuración. En Linux, utiliza la herramienta de configuración de Jack para cambiar el tamaño del buffer. + . En este caso la configuración del retardo de buffer se deshabilita. Para cambiarlo, esta configuración debe realizarse en el driver de la tarjeta de audio. En Windows, pulsa el botón de Configuración ASIO para acceder al panel de configuración. En Linux, utiliza la herramienta de configuración de Jack para cambiar el tamaño del buffer. If no buffer size is selected and all settings are disabled, an unsupported buffer size is used by the driver. The - Si no hay ningún tamaño de buffer seleccionado y todas las configuraciones están deshabilitadas, el driver está utilizando un tamaño de buffer no soportado. El software + Si no hay ningún tamaño de buffer seleccionado y todas las configuraciones están deshabilitadas, el driver está utilizando un tamaño de buffer no soportado. El software software will still work with this setting but with restricted performance. - seguirá funcionando con esta configuración pero con un rendimiento limitado. + seguirá funcionando con esta configuración pero con un rendimiento limitado. @@ -1265,11 +1265,11 @@ If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the - Si la configuración de retardo de buffers se encuentra deshabilitada, es porque el driver de audio prohíbe la modificación de este parámetro desde dentro del software + Si la configuración de retardo de buffers se encuentra deshabilitada, es porque el driver de audio prohíbe la modificación de este parámetro desde dentro del software software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. - . En Windows, pulsa el botón de Configuración ASIO para abrir el panel de configuración del driver. En Linux, utiliza la herramienta de configuración de Jack para cambiar el tamaño del buffer. + . En Windows, pulsa el botón de Configuración ASIO para abrir el panel de configuración del driver. En Linux, utiliza la herramienta de configuración de Jack para cambiar el tamaño del buffer. @@ -1293,15 +1293,15 @@ Fancy Skin - Interfaz Oscura + Interfaz Oscura If enabled, a fancy skin will be applied to the main window. - Si se activa, se aplicará un aspecto oscuro a la ventana principal. + Si se activa, se aplicará un aspecto oscuro a la ventana principal. Fancy skin check box - Activar interfaz oscura + Activar interfaz oscura @@ -1325,15 +1325,15 @@ Select the number of audio channels to be used. There are three modes available. The mono and stereo modes use one and two audio channels respectively. In mono-in/stereo-out mode the audio signal which is sent to the server is mono but the return signal is stereo. This is useful if the sound card has the instrument on one input channel and the microphone on the other channel. In that case the two input signals can be mixed to one mono channel but the server mix can be heard in stereo. - Selecciona el número de canales de audio a utilizar. Hay tres modos disponibles. Los modos mono y estéreo utilizan uno y dos canales de audio respectivamente. En modo entrada-mono/salida-estéreo la señal de audio enviada al servidor es mono pero la señal que vuelve es estéreo. Esto es útil si la tarjeta de audio tiene un instrumento en un canal de entrada y un micrófono en el otro. En ese caso las dos señales de entrada pueden combinarse en un canal mono pero la mezcla del servidor se escucha en estéreo. + Selecciona el número de canales de audio a utilizar. Hay tres modos disponibles. Los modos mono y estéreo utilizan uno y dos canales de audio respectivamente. En modo entrada-mono/salida-estéreo la señal de audio enviada al servidor es mono pero la señal que vuelve es estéreo. Esto es útil si la tarjeta de audio tiene un instrumento en un canal de entrada y un micrófono en el otro. En ese caso las dos señales de entrada pueden combinarse en un canal mono pero la mezcla del servidor se escucha en estéreo. Enabling the stereo streaming mode will increase the stream data rate. Make sure that the current upload rate does not exceed the available bandwidth of your internet connection. - Activar el modo estéreo aumentará la tasa de envío de datos. Asegúrate de que la tasa de subida no excede el ancho de banda disponible en tu conexión a internet. + Activar el modo estéreo aumentará la tasa de envío de datos. Asegúrate de que la tasa de subida no excede el ancho de banda disponible en tu conexión a internet. In stereo streaming mode, no audio channel selection for the reverberation effect will be available on the main window since the effect is applied on both channels in this case. - En el caso del modo estéreo, no estará disponible la selección de canal para el efecto de reverberación en la ventana principal puesto que en este caso el efecto se aplicará a ambos canales. + En el caso del modo estéreo, no estará disponible la selección de canal para el efecto de reverberación en la ventana principal puesto que en este caso el efecto se aplicará a ambos canales. @@ -1347,7 +1347,7 @@ Select the desired audio quality. A low, normal or high audio quality can be selected. The higher the audio quality, the higher the audio stream data rate. Make sure that the current upload rate does not exceed the available bandwidth of your internet connection. - Selecciona la calidad de audio deseada. Se puede seleccionar una calidad baja, normal o alta. Cuanto mayor la calidad del audio, mayor la tasa de transferencia de datos de audio. Asegúrate de que la tasa de subida no excede el ancho de banda disponible en tu conexión a internet. + Selecciona la calidad de audio deseada. Se puede seleccionar una calidad baja, normal o alta. Cuanto mayor la calidad del audio, mayor la tasa de transferencia de datos de audio. Asegúrate de que la tasa de subida no excede el ancho de banda disponible en tu conexión a internet. @@ -1361,7 +1361,7 @@ The new client level setting defines the fader level of a new connected client in percent. I.e. if a new client connects to the current server, it will get the specified initial fader level if no other fader level of a previous connection of that client was already stored. - La configuración del nivel de clientes nuevos define el nivel del fader para una nueva conexión expresado en un porcentaje. Esto es, si un cliente nuevo se conecta al servidor actual, su fader tomará el valor especificado si no se ha guardado ningún valor de una conexión anterior de ese cliente. + La configuración del nivel de clientes nuevos define el nivel del fader para una nueva conexión expresado en un porcentaje. Esto es, si un cliente nuevo se conecta al servidor actual, su fader tomará el valor especificado si no se ha guardado ningún valor de una conexión anterior de ese cliente. @@ -1375,19 +1375,19 @@ The custom central server address is the IP address or URL of the central server at which the server list of the connection dialog is managed. This address is only used if the custom server list is selected in the connection dialog. - La dirección personalizada del servidor central es la dirección IP o URL del servidor central en el cual se gestiona la lista de servidores de la ventana de conexión. Esta dirección solo se utiliza si se selecciona la lista personalizada en la ventana de conexión. + La dirección personalizada del servidor central es la dirección IP o URL del servidor central en el cual se gestiona la lista de servidores de la ventana de conexión. Esta dirección solo se utiliza si se selecciona la lista personalizada en la ventana de conexión. Central Server Address - Dirección Servidor Central + Dirección Servidor Central The central server address is the IP address or URL of the central server at which the server list of the connection dialog is managed. With the central server address type either the local region can be selected of the default central servers or a manual address can be specified. - La dirección del servidor central es la dirección IP o URL del servidor central en el que se gestiona la lista de servidores en la ventana de conexión. Aquí se puede escoger la región local de entre los servidores centrales por defecto o se puede especificar una dirección manualmente. + La dirección del servidor central es la dirección IP o URL del servidor central en el que se gestiona la lista de servidores en la ventana de conexión. Aquí se puede escoger la región local de entre los servidores centrales por defecto o se puede especificar una dirección manualmente. Default central server type combo box - Selección servidor central + Selección servidor central @@ -1401,15 +1401,15 @@ The ping time is the time required for the audio stream to travel from the client to the server and back again. This delay is introduced by the network. This delay should be as low as 20-30 ms. If this delay is higher (e.g., 50-60 ms), your distance to the server is too large or your internet connection is not sufficient. - El ping es el tiempo que requiere el flujo de audio para viajar desde el cliente al servidor y volver. Este retardo lo determina la red. Esta cifra debería ser de unos 20-30 ms. Si este retardo es mayor (por ej. 50-60 ms), la distancia al servidor es demasiado grande o tu conexión a internet no es óptima. + El ping es el tiempo que requiere el flujo de audio para viajar desde el cliente al servidor y volver. Este retardo lo determina la red. Esta cifra debería ser de unos 20-30 ms. Si este retardo es mayor (por ej. 50-60 ms), la distancia al servidor es demasiado grande o tu conexión a internet no es óptima. The overall delay is calculated from the current ping time and the delay which is introduced by the current buffer settings. - El retardo total se calcula con el ping y el retardo ocasionado por la configuración de buffers. + El retardo total se calcula con el ping y el retardo ocasionado por la configuración de buffers. The upstream rate depends on the current audio packet size and the audio compression setting. Make sure that the upstream rate is not higher than the available rate (check the upstream capabilities of your internet connection by, e.g., using speedtest.net). - La tasa de subida depende del tamaño actual de paquetes de audio y la configuración de compresión de audio. Asegúrate de que la tasa de subida no es mayor que la tasa disponible (comprueba la tasa de subida de tu conexión a internet, por ej. con speedtest.net). + La tasa de subida depende del tamaño actual de paquetes de audio y la configuración de compresión de audio. Asegúrate de que la tasa de subida no es mayor que la tasa disponible (comprueba la tasa de subida de tu conexión a internet, por ej. con speedtest.net). @@ -1551,7 +1551,7 @@ mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. - aumentará la tasa de datos. Asegúrate de que tu tasa de subida no excede el valor de subida disponible con tu ancho de banda de Internet. + aumentará la tasa de datos. Asegúrate de que tu tasa de subida no excede el valor de subida disponible con tu ancho de banda de Internet. @@ -1606,7 +1606,7 @@ Manual - Manual + Manual @@ -1620,7 +1620,7 @@ Genre Rock/Jazz - Género Rock/Jazz + Género Rock/Jazz @@ -1644,7 +1644,7 @@ Default (North America) - Por defecto (Norteamérica) + Por defecto (Norteamérica) @@ -1669,7 +1669,7 @@ Predefined Address - Dirección Preestablecida + Dirección Preestablecida @@ -1819,7 +1819,7 @@ Fancy Skin - Intfaz Oscura + Intfaz Oscura @@ -1833,7 +1833,7 @@ Central Server Address: - Dirección Servidor Central: + Dirección Servidor Central: @@ -1867,11 +1867,11 @@ The server list shows a list of available servers which are registered at the central server. Select a server from the list and press the connect button to connect to this server. Alternatively, double click a server from the list to connect to it. If a server is occupied, a list of the connected musicians is available by expanding the list item. Permanent servers are shown in bold font. - La lista de servidores muestra una lista de servidores disponibles que se encuentran registrados en el servidor central. Escoge un servidor de la lista y pulsa el botón de conectar para conectarte a este servidor. También es posible realizar la conexión haciendo doble clic en un servidor de la lista. Si un servidor está ocupado, se puede desplegar una lista de los músicos conectados al pulsar el icono al lado del nombre. Los servidores permanentes se muestran en negrita. + La lista de servidores muestra una lista de servidores disponibles que se encuentran registrados en el servidor central. Escoge un servidor de la lista y pulsa el botón de conectar para conectarte a este servidor. También es posible realizar la conexión haciendo doble clic en un servidor de la lista. Si un servidor está ocupado, se puede desplegar una lista de los músicos conectados al pulsar el icono al lado del nombre. Los servidores permanentes se muestran en negrita. Note that it may take some time to retrieve the server list from the central server. If no valid central server address is specified in the settings, no server list will be available. - Ten en cuenta que puede llevar un tiempo recuperar la lista de servidores del servidor central. Si no se especifica una dirección válida en la configuración, no habrá ninguna lista de servidores disponible. + Ten en cuenta que puede llevar un tiempo recuperar la lista de servidores del servidor central. Si no se especifica una dirección válida en la configuración, no habrá ninguna lista de servidores disponible. @@ -1885,23 +1885,23 @@ The IP address or URL of the server running the - La dirección IP o URL del servidor ejecutando el software del servidor + La dirección IP o URL del servidor ejecutando el software del servidor server software must be set here. An optional port number can be added after the IP address or URL using a comma as a separator, e.g, example.org: - debe introducirse aquí. Se puede añadir un número de puerto opcional detrás de la dirección IP o URL utilizando dos puntos como separador, por ej. ejemplo.org: + debe introducirse aquí. Se puede añadir un número de puerto opcional detrás de la dirección IP o URL utilizando dos puntos como separador, por ej. ejemplo.org: 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: - debe introducirse aquí. Se puede añadir un número de puerto opcional detrás de la dirección IP o URL utilizando dos puntos como separador, por ej. ejemplo.org: + debe introducirse aquí. Se puede añadir un número de puerto opcional detrás de la dirección IP o URL utilizando dos puntos como separador, por ej. ejemplo.org: . A list of the most recent used server IP addresses or URLs is available for selection. - . Hay disponible una lista de las direcciones IP o URLs utilizadas más recientemente para su selección. + . Hay disponible una lista de las direcciones IP o URLs utilizadas más recientemente para su selección. The Connection Setup window shows a list of available servers. Server operators can optionally list their servers by music genre. Use the List dropdown to select a genre, click on the server you want to join and press the Connect button to connect to it. Alternatively, double click on on the server name. Permanent servers (those that have been listed for longer than 24 hours) are shown in bold. - La ventana de Conexión muestra una lista de servidores disponibles. Opcionalmente los administradores de los servidores pueden listar sus servidores por género musical. Utiliza el menú Lista para escoger un género, escoge un servidor de la lista y pulsa el botón de Conectar para conectarte a él. También es posible realizar la conexión haciendo doble clic en un servidor de la lista. Los servidores permanentes (aquellos que llevan más de 24 horas en la lista) se muestran en negrita. + La ventana de Conexión muestra una lista de servidores disponibles. Opcionalmente los administradores de los servidores pueden listar sus servidores por género musical. Utiliza el menú Lista para escoger un género, escoge un servidor de la lista y pulsa el botón de Conectar para conectarte a él. También es posible realizar la conexión haciendo doble clic en un servidor de la lista. Los servidores permanentes (aquellos que llevan más de 24 horas en la lista) se muestran en negrita. @@ -2181,7 +2181,7 @@ 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. + 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. @@ -2268,11 +2268,11 @@ 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 in. The city you live in and the skill level 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. + 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 + Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor @@ -2281,7 +2281,7 @@ What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. If the name is left empty, the IP address is shown instead. - Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor. Esta etiqueta también se mostrará en cada cliente conectado al mismo servidor que tú. Si se deja el nombre vacío, se muestra la dirección IP en su lugar. + Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor. Esta etiqueta también se mostrará en cada cliente conectado al mismo servidor que tú. Si se deja el nombre vacío, se muestra la dirección IP en su lugar. @@ -2528,11 +2528,11 @@ If the start minimized on operating system start check box is checked, the - Si se activa el arranque al arrancar el sistema operativo, el + Si se activa el arranque al arrancar el sistema operativo, el server will be started when the operating system starts up and is automatically minimized to a system task bar icon. - servidor arrancará cuando arranque el sistema operativo y se minimizará automáticamente a un icono en la barra de tareas. + servidor arrancará cuando arranque el sistema operativo y se minimizará automáticamente a un icono en la barra de tareas. @@ -2551,11 +2551,11 @@ If the Make My Server Public check box is checked, this server registers itself at the central server so that all - Si se activa Mi Servidor es Público, este servidor se registra en el servidor central para que todos los usuarios de + Si se activa Mi Servidor es Público, este servidor se registra en el servidor central para que todos los usuarios de users can see the server in the connect dialog server list and connect to it. The registration of the server is renewed periodically to make sure that all servers in the connect dialog server list are actually available. - puedan ver el servidor en la lista de servidores de la ventana de conexión y puedan conectarse a él. El registro del servidor se renueva periódicamente para asegurarse de que todos los servidores en la lista se encuentren realmente disponibles. + puedan ver el servidor en la lista de servidores de la ventana de conexión y puedan conectarse a él. El registro del servidor se renueva periódicamente para asegurarse de que todos los servidores en la lista se encuentren realmente disponibles. @@ -2564,15 +2564,15 @@ If the Make My Server Public check box is checked, this will show whether registration with the central server is successful. - Si se ha activado Mi Servidor es Público, esto mostrará si se ha registrado en el servidor central con éxito. + Si se ha activado Mi Servidor es Público, esto mostrará si se ha registrado en el servidor central con éxito. Central Server Address - Dirección Servidor Central + Dirección Servidor Central The Central server address is the IP address or URL of the central server at which this server is registered. With the central server address type either the local region can be selected of the default central servers or a manual address can be specified. - La dirección del Servidor Central es la dirección IP o URL del servidor central en el que se ha registrado este servidor. Aquí se puede escoger la región local de entre los servidores centrales por defecto o se puede especificar una dirección manualmente. + La dirección del Servidor Central es la dirección IP o URL del servidor central en el que se ha registrado este servidor. Aquí se puede escoger la región local de entre los servidores centrales por defecto o se puede especificar una dirección manualmente. @@ -2581,7 +2581,7 @@ Default central server type combo box - Selección servidor central + Selección servidor central @@ -2630,7 +2630,7 @@ The server name identifies your server in the connect dialog server list at the clients. If no name is given, the IP address is shown instead. - El nombre del servidor identifica a tu servidor en la lista de conexión de servidores de los clientes. Si no se especifica un nombre, se muestra la dirección IP en su lugar. + El nombre del servidor identifica a tu servidor en la lista de conexión de servidores de los clientes. Si no se especifica un nombre, se muestra la dirección IP en su lugar. @@ -2801,17 +2801,17 @@ Server welcome message edit box - + Campo edición mensaje bienvenida servidor Server Welcome Message - + Mensaje Bienvenida Servidor A server welcome message text is displayed in the chat window if a musician enters the server. If no message is set, the server welcome is disabled. - + Se muestra un mensaje de bienvenida al servidor cuando un músico entra al mismo. Si no se escribe ningún mensaje, la bienvenida se deshabilita. @@ -2825,7 +2825,7 @@ Displays the current status of the recorder. - Muestra el estado actual de la grabación. + Muestra el estado actual de la grabación. @@ -2867,7 +2867,7 @@ server - + @@ -2876,7 +2876,7 @@ Predefined Address - Dirección Preestablecida + Dirección Preestablecida @@ -2900,15 +2900,15 @@ Manual - Manual + Manual Default - Por defecto + Por defecto Default (North America) - Por defecto (Norteamérica) + Por defecto (Norteamérica) @@ -3057,7 +3057,7 @@ Central Server Address: - Dirección Servidor Central: + Dirección Servidor Central: @@ -3076,19 +3076,19 @@ Enable jam recorder - Habilitar grabación Jam + Habilitar grabación Jam New recording - Nueva grabación + Nueva grabación Recordings folder - Carpeta grabaciones + Carpeta grabaciones TextLabelNameVersion - TextLabelNameVersion + TextLabelNameVersion From 2e6e1c464de51d94090a0fdbbfd4a0cc3cbd39bc Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 11 Jul 2020 22:01:40 +0200 Subject: [PATCH 379/936] update --- src/util.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/util.cpp b/src/util.cpp index 48ea3e8ee3..b8426535f4 100755 --- a/src/util.cpp +++ b/src/util.cpp @@ -460,7 +460,7 @@ CAboutDlg::CAboutDlg ( QWidget* parent ) : QDialog ( parent ) "

JP Cimalando (jpcima)

" "

Adam Sampson (atsampson)

" "

Stefan Weil (stweil)

" - "

dingodoppelt (dingodoppelt)

" + "

Nils Brederlow (dingodoppelt)

" "
" + tr ( "For details on the contributions check out the " ) + "" + tr ( "Github Contributors list" ) + "." ); From 619b0176fc9109af55c8dd69cece6dc1cee57099 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 11 Jul 2020 22:04:59 +0200 Subject: [PATCH 380/936] update translation --- src/res/translation/translation_es_ES.qm | Bin 105162 -> 105902 bytes src/res/translation/translation_es_ES.ts | 230 +++++++++++------------ 2 files changed, 115 insertions(+), 115 deletions(-) diff --git a/src/res/translation/translation_es_ES.qm b/src/res/translation/translation_es_ES.qm index c42ead42939d64857b7dc3fa213dc7ec14571be8..5ae494d591b61e2a2c7dd15b5753278127e3300c 100644 GIT binary patch delta 2219 zcmZ8hdq7k76+Y)CHwpI@M3F~%L-N0u}1=!pOyloiZ?0qa6r*NLvnH%eppS6H(nGsOq zhKa=&0ky3#ah(hBB_B*|eh!e=!X(Q&z@-H+Y5rKiXG>T#m&nbO*?4ZXVBHH}o;(4V zcaUA+ER(7m;C5FUz}LPF#bIq(WV#~kGE9tO}LiUZ7mu@cG`HxPIw_Wte@zC@WZ%ee+-~47Pp6#0~i2X3INb9Ia0LR+# z$j%*rlNRFH2ZsTpf5ywXKLHx5@!O&u06$&AYqni4K5oQ>C7xQf}VR%;%c zv5IT@)gFKyd$`ZcRQQMk+_C*CfcPbMC5Li*@f!Et_f>#1wsD=l#Q|m z;7XZ&uZ@XYxk96BxlKGR*F^sq17J_m^!r;m;Ibi_ltL?@C4mj*6NRcq&93THz&FM- zJ8ui|^Ovu(VYOTWZg`7AE;br!8Fte=&ny>zZWz`R@9Yo8GfH#cc-rPKj7 z=4tOg$^h7TUfVf&H9*Q4Uiq1XUa&b3G4c0&s7(bFtNFeOwEmKrkI%^ma9rn~i!CO0 zhx5r>h)!1npLU1ndC$U+l!pQYY57t1-GGHLytR8Oux?$yxaDDd8MhQLzm_jgR{-KR z@vjVvBBjpom6>@oKZ2#}V?stI^1pU%CD*j^D?F=m8PqkMTf`NvucBxs~pX?8L}d+_jNxUDg=nP>K;UwtWe3INjF_i?x$7~Y)35j1&j8f) z4MdFe=&O@xET7lU&prXrtCxPMrVwyIvVP4MMDF53{kn}ARQ$*K4HplRWl_ITngaOp zICdb&8WM3xe92GwJ}~S;YQn-TeNZoec8uiVoq_SP+WSI z5`SAL?xdTR)CuZDEvesMD4X^L03R%r-8ez@rwV0{9s;Is7b<4|8&KCr@Lc@}FribJ z`@iLY7Sdu&n5N+bTp~TmD6z4tZ z8>t3y-bLbf+#<2&W-k4t5#k$-MIfSV6j$9KCuMdsUbb-FW|l6Sg|VgLxj%jb7#Yl} z<;1vAaZ;bZaMWeiO3}5H-4Lx5^JXVNdt4ym*puvlY_1=ZAlcU|fW|hde18Phyh6F$`8^XrZ5=&CZ>7PpP_B#Z);<&UQskowR zJ@H?H)I5&#DQJ>fW}E{sG3nSY!cT3Gjw29RtM4UNB9vtx)Fy)GDxwQju(Ps7!C9D3Gc6n==2OxQxygie+8$Ltc z>3ET-36q=dQ5mj;K*XXS<>o^t0CrE8kCr$A)27QOifCMrA)gGV#&GwJeC-x#~c93R~GVPn5IJ;f>Xk#9^ zJwiEndNn|jTWJd&4){#I@?U*CU`CX3vyRF;5U;eapfn>dGkb79eRN9_xigQ|2Is%9 zc!=@yQp!AIlkxNVp+w+)<3Cq#2e>@Qcqa5e0C$|mTMwzCcSaf?1S{l=>&7n2EE4*$ zvFlGBKyyA>?l;vM(xwk{Jnp?Dx!2z0UU)7{hcS=~DsyB+_>-I%?5}fTlz(jzhSxix z8XVw(VyFZYeS7HbhHmhJ3!H&DmF9dVCpaLBJ1}8@NcRMk$aP1hASFL(gtuoD5E1Z>X z)#O&aUPq~F@~JgGlgn!=c6sMkI2NeICYQ(LD^pF*GKbGJ-{mQ;oNscKm>ec|wb$iz zIXouS<5R1=flWQ2{thQj-YXBpf`Mr9FHmuS|Lk-$`cGw}&^Nc|-h!w1X7}9d|9UX? zVf*ft`M=7+@`xPBq~zT&_bENa0jgZ^1AB8(sDG&w`!e6Xa8vA4u>UVYEq3`#MU^!H L)V-EmTsz?x|0a=* delta 1665 zcmX9;YgANK7~S8UxpRj*_uj!#L2{ zgpa-2{9d^VF@^z6PawKS0~;4Xj2{BZXk`JEBux316;pX=NIv2hnnAi^B;;KI>6?*I zT?l%8D-s$8fiIb;KfyO>!mj!2HX)W$| zL;}Cg>_QsnMti^OKwA!p4-W%6B2!-nC?JZ|D{FZ1Y1IAZPEg=-iYVR;1kI!Pu-l*@ zJIm5JlHdNGK1=xp2tQ1l>a3sTQM(vcOZ!0{G3vZDqRS3_qX9|rk5 z=vvBCkg<$z-_{FgidZ$phoXyuehPn0$KfYKC)YJ+G9lUX8 zi*URyA26L1t|xPDDK7{&TT4OXE(q;2=K-5mKgZ@F!sCjCpvAGQRd2N|-mfz>-sd{i z=>q<>0$Cxt-rp60-p$vAWxGIOsce84EKmDEx2r4yv}7*J5?yk-hd%3zHc;*fwncOZ zL(QyNbPKU=7GTJ(NS~m;dNBxi>z@ABK`z7H4f=aw<)HVL=>PgB2H0^)-#&5~5Y{AW z|8b+|ZtOy`H;Z2J`5;r7*s~A+Kfxi|lhc5Sx5a^hc_3SX7`lneSx_rRKH&1KcZyN! zV8BB!4$ayF8lNn>o{R>2V(4wF8Y#XhRB;t{iAB*GVA~*08RE~KY7(anPvzgIvS`U_ zi5Mp?Dg2x}qKHdNmVpM{V8v3J(Eko=lverqA2m$$x(&>FY@LG&zc8LDx8d(VUTgSxCVB+hit?p^_|ZJRpGwY-IUu1y ziVfTVl;=oEf!zG)Gi;QHHQBjQdZVKglyg#=k<|pu>Dh(kvtB9-;b--dG<(!3pj$Vo zN|z1lGf`S`jEg%jTdH0g!<)Y*t+`UqBTLd+B?&ZP4%_eHvUuN@?gVmM6D&sMavNw$ zD^q2ckj5XCv*oC_jNeb<&Lpg7`(>*TSlN$rcA&-9g%s1t8dXQdtEo!XDh*^luN2k!@)6#r6kT@!sqxCxeJ;=# zoihCfzrOjbQhN3m(5!yS3ceYr%Al|i9xRW2%DUbMK#Mw+I^s-oZ#~CzveNL{Oi=2d zN@K=Fpchk)@8b2tcPb|cyz^$|C*xqgS%xlPWtt<@wq5DSS_zURRXhJBDDs->|D_0g z8sCMKR;CW{?F0?BsLp#epgB#fS#wtu_EJB8vjhkoqi!8u&sR={`r{)`zpzgiQqDlN z;lL?i&sg zLhX0S4swmu?w0e`_S?0VrJSm-CoA^s%~pAiv&_vmADYZr$80bksu&E43S!SZt=|2- x%^l86?qR37V|xkcrG&1@ diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index 395b92722c..923f575ba4 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -1,35 +1,35 @@ - + CAboutDlg The - El software + El software software enables musicians to perform real-time jam sessions over the internet. There is a - software permite a músicos realizar jam sessions en tiempo real por internet. Hay un + software permite a músicos realizar jam sessions en tiempo real por internet. Hay un software enables musicians to perform real-time jam sessions over the internet. - permite a músicos realizar jam sessions en tiempo real por internet. + permite a músicos realizar jam sessions en tiempo real por internet. server which collects the audio data from each - que recoge el audio de cada cliente + que recoge el audio de cada cliente There is a - Hay un servidor + Hay un servidor client, mixes the audio data and sends the mix back to each client. - , mezcla el audio y lo envía de vuelta a cada cliente. + , mezcla el audio y lo envía de vuelta a cada cliente. uses the following libraries, resources or code snippets: - utiliza las siguientes librerías, recursos o fragmentos de código: + utiliza las siguientes librerías, recursos o fragmentos de código: @@ -48,7 +48,7 @@ Country flag icons from Mark James - Iconos de banderas nacionales de Mark James + Iconos de banderas nacionales de Mark James @@ -127,19 +127,19 @@ , Version - , Versión + , Versión Internet Jam Session Software - Internet Jam Session Software + Internet Jam Session Software Released under the GNU General Public License (GPL) - Publicado bajo la GNU General Public License (GPL) + Publicado bajo la GNU General Public License (GPL) Under the GNU General Public License (GPL) - Bajo la GNU General Public License (GPL) + Bajo la GNU General Public License (GPL) @@ -240,7 +240,7 @@ Displays the pre-fader audio level of this channel. All connected clients at the server will be assigned an audio level, the same value for each client. - Muestra el nivel de audio pre-fader de este canal. Todos los clientes conectados al servidor tienen un nivel de audio asignado, el mismo para cada cliente. + Muestra el nivel de audio pre-fader de este canal. Todos los clientes conectados al servidor tienen un nivel de audio asignado, el mismo para cada cliente. @@ -254,7 +254,7 @@ Adjusts the audio level of this channel. All connected clients at the server will be assigned an audio fader at each client, adjusting the local mix. - Ajusta el nivel de audio de este canal. Todos los clientes conectados al servidor tienen asignado un fader en el cliente, ajustando la mezcla local. + Ajusta el nivel de audio de este canal. Todos los clientes conectados al servidor tienen asignado un fader en el cliente, ajustando la mezcla local. @@ -273,7 +273,7 @@ Speaker with cancellation stroke: Indicates that the other client has muted you. - Altavoz tachado: Indica que el otro cliente te ha muteado. + Altavoz tachado: Indica que el otro cliente te ha muteado. @@ -287,7 +287,7 @@ Sets the panning position from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. - Fija el paneo de Izquierda a Derecha del canal. Solo funciona en estéreo o preferiblemente en modo Entrada mono/Salida estéreo. + Fija el paneo de Izquierda a Derecha del canal. Solo funciona en estéreo o preferiblemente en modo Entrada mono/Salida estéreo. @@ -306,7 +306,7 @@ With the Solo checkbox, the audio channel can be set to solo which means that all other channels except of the current channel are muted. It is possible to set more than one channel to solo. - Activando Solo, todos los demás canales de audio excepto este se mutean. Es posible activar esta función para más de un canal. + Activando Solo, todos los demás canales de audio excepto este se mutean. Es posible activar esta función para más de un canal. @@ -320,7 +320,7 @@ The fader tag identifies the connected client. The tag name, the picture of your instrument and a flag of your country can be set in the main window. - La etiqueta del fader identifica al cliente conectado. El nombre de la etiqueta, la imagen de tu instrumento y la bandera de tu país se pueden establecer en la ventana principal. + La etiqueta del fader identifica al cliente conectado. El nombre de la etiqueta, la imagen de tu instrumento y la bandera de tu país se pueden establecer en la ventana principal. @@ -561,11 +561,11 @@ Cl&ear - Va&ciar + Va&ciar &Close - &Cerrar + &Cerrar @@ -577,7 +577,7 @@ The input level indicators show the input level of the two stereo channels of the current selected audio input. - Los indicadores de nivel de entrada muestran el nivel de entrada de los dos canales estéreo de la entrada de audio actualmente seleccionada. + Los indicadores de nivel de entrada muestran el nivel de entrada de los dos canales estéreo de la entrada de audio actualmente seleccionada. @@ -586,23 +586,23 @@ If the - Si el software + Si el software 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á conectado y tocas tu instrumento/cantas por el micrófono, el LED del indicador debería parpadear. Si no es así, seguramente has seleccionado el canal de entrada equivocado (por ej. line in en lugar de la entrada del micrófono) o está muy bajo el gain de entrada en el mezclador de audio (Windows). + está conectado y tocas tu instrumento/cantas por el micrófono, el LED del indicador debería parpadear. Si no es así, seguramente has seleccionado el canal de entrada equivocado (por ej. line in en lugar de la entrada del micrófono) o está muy bajo el gain de entrada en el mezclador de audio (Windows). For a proper usage of the - Para un uso adecuado del software + Para un uso adecuado del software software, you should not hear your singing/instrument in the loudspeaker or your headphone when the - , no deberías oír tu voz/instrumento por el altavoz o los auriculares cuando el software + , no deberías oír tu voz/instrumento por el altavoz o los auriculares cuando el software software is not connected. This can be achieved by muting your input audio channel in the Playback mixer (not the Recording mixer!). - no está conectado. Esto se puede hacer muteando tu entrada de audio en el mezclador de Reproducción (¡y no en el de Grabación!). + no está conectado. Esto se puede hacer muteando tu entrada de audio en el mezclador de Reproducción (¡y no en el de Grabación!). @@ -621,7 +621,7 @@ Push this button to connect to a server. A dialog where you can select a server will open. If you are connected, pressing this button will end the session. - Pulsa este botón para conectar con un servidor. Se abrirá una ventana donde puedes seleccionar un servidor. Si estás conectado, este botón finalizará la sesión. + Pulsa este botón para conectar con un servidor. Se abrirá una ventana donde puedes seleccionar un servidor. Si estás conectado, este botón finalizará la sesión. @@ -630,11 +630,11 @@ Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the - Pulsando este botón cambia el texto del mismo de Conectar a Desconectar; esto es, tiene la función de conmutador para conectar y desconectar el software + Pulsando este botón cambia el texto del mismo de Conectar a Desconectar; esto es, tiene la función de conmutador para conectar y desconectar el software software. - . + . @@ -648,19 +648,19 @@ Reverberation effect level setting - Nivel efecto reverberación + Nivel efecto reverberación Left channel selection for reverberation - Selección canal izq para reverberación + Selección canal izq para reverberación Right channel selection for reverberation - Selección canal dcho para reverberación + Selección canal dcho para reverberación If this LED indicator turns red, you will not have much fun using the - Si este indicador LED se vuelve rojo, no te divertirás demasiado utilizando el + Si este indicador LED se vuelve rojo, no te divertirás demasiado utilizando el @@ -699,7 +699,7 @@ Reverb requires significant CPU so it should only be used on fast PCs. If the reverb level fader is set to minimum (the default setting), the effect is switched off and does not cause any additional CPU usage. - El efecto de reverb requiere un esfuerzo importante del procesador, por lo que solo debería usarse en ordenadores potentes. Si se deja el fader de reverb al mínimo (la configuración por defecto), el efecto estará desactivado y no significará ninguna carga adicional para el procesador. + El efecto de reverb requiere un esfuerzo importante del procesador, por lo que solo debería usarse en ordenadores potentes. Si se deja el fader de reverb al mínimo (la configuración por defecto), el efecto estará desactivado y no significará ninguna carga adicional para el procesador. @@ -752,7 +752,7 @@ If this LED indicator turns red, you will not have much fun using the application - Si este indicador LED se vuelve rojo, no te divertirás demasiado utilizando la aplicación + Si este indicador LED se vuelve rojo, no te divertirás demasiado utilizando la aplicación @@ -771,7 +771,7 @@ The delay is perfect for a jam session - El retardo es perfecto para una jam session + El retardo es perfecto para una jam session @@ -882,7 +882,7 @@ With the audio fader, the relative levels of the left and right local audio channels can be changed. For a mono signal it acts like a panning between the two channels. If, e.g., a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows - Con el fader de audio, los niveles relativos de los canales locales de audio derecho e izquierdo pueden cambiarse. Para una señal mono actúa como paneo entre los dos canales. Por ej., si se conecta un miocrófono al canal derecho y un instrumento al izquierdo que suena mucho más alto que el micrófono, mueve el fader en una dirección donde la etiqueta sobre el fader muestra + Con el fader de audio, los niveles relativos de los canales locales de audio derecho e izquierdo pueden cambiarse. Para una señal mono actúa como paneo entre los dos canales. Por ej., si se conecta un miocrófono al canal derecho y un instrumento al izquierdo que suena mucho más alto que el micrófono, mueve el fader en una dirección donde la etiqueta sobre el fader muestra @@ -896,23 +896,23 @@ Reverberation Level - Nivel Reverberación + Nivel Reverberación A reverberation effect can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverberation level can be modified. If, e.g., the microphone signal is fed into the right audio channel of the sound card and a reverberation effect shall be applied, set the channel selector to right and move the fader upwards until the desired reverberation level is reached. - Se puede aplicar un efecto de reverberación a un canal local de audio mono o a ambos canales en modo estéreo. Se puede modificar la selección de canales en modo mono y el nivel de reverberación. Por ej., si la señal del micrófono va por el canal derecho de la tarjeta de sonido y se desea aplicar reverberación, cambia el selector de canal a derecho y sube el fader hasta alcanzar el nivel de reverberación deseado. + Se puede aplicar un efecto de reverberación a un canal local de audio mono o a ambos canales en modo estéreo. Se puede modificar la selección de canales en modo mono y el nivel de reverberación. Por ej., si la señal del micrófono va por el canal derecho de la tarjeta de sonido y se desea aplicar reverberación, cambia el selector de canal a derecho y sube el fader hasta alcanzar el nivel de reverberación deseado. The reverberation effect requires significant CPU so it should only be used on fast PCs. If the reverberation level fader is set to minimum (which is the default setting), the reverberation effect is switched off and does not cause any additional CPU usage. - El efecto de reverberación require un esfuerzo importante del procesador, por lo que solo debería usarse en ordenadores potentes. Si se deja el fader de reverberación al mínimo (la configuración por defecto), el efecto estará desactivado y no significará ninguna carga adicional para el procesador. + El efecto de reverberación require un esfuerzo importante del procesador, por lo que solo debería usarse en ordenadores potentes. Si se deja el fader de reverberación al mínimo (la configuración por defecto), el efecto estará desactivado y no significará ninguna carga adicional para el procesador. Reverberation Channel Selection - Selección Canal Reverberación + Selección Canal Reverberación With these radio buttons the audio input channel on which the reverberation effect is applied can be chosen. Either the left or right input channel can be selected. - Con estos botones se puede escoger el canal de entrada de audio al que se aplica el efecto de reverberación. Se pueden elegir los canales de entrada izquierdo o derecho. + Con estos botones se puede escoger el canal de entrada de audio al que se aplica el efecto de reverberación. Se pueden elegir los canales de entrada izquierdo o derecho. @@ -921,7 +921,7 @@ The delay status LED indicator shows the current audio delay status. If the light is green, the delay is perfect for a jam session. If the light is yellow, a session is still possible but it may be harder to play. If the light is red, the delay is too large for jamming. - El indicador LED del estado del retardo muestra el estado actual del retardo del audio. Si está en verde, el retardo es perfecto para una jam session. Si está en amarillo, la sesión aún es posible, pero quizá sea más difícil tocar. Si está en rojo, el retardo es demasiado alto para tocar. + El indicador LED del estado del retardo muestra el estado actual del retardo del audio. Si está en verde, el retardo es perfecto para una jam session. Si está en amarillo, la sesión aún es posible, pero quizá sea más difícil tocar. Si está en rojo, el retardo es demasiado alto para tocar. @@ -930,7 +930,7 @@ The buffers status LED indicator shows the current audio/streaming status. If the light is green, there are no buffer overruns/underruns and the audio stream is not interrupted. If the light is red, the audio stream is interrupted caused by one of the following problems: - El indicador LED del estado de buffers muestra el estado actual del flujo de audio. Si está verde, no hay problemas de buffer y no se interrumpe el flujo de audio. Si está rojo, el flujo de audio se interrumpe, a causa de uno de los siguientes problemas: + El indicador LED del estado de buffers muestra el estado actual del flujo de audio. Si está verde, no hay problemas de buffer y no se interrumpe el flujo de audio. Si está rojo, el flujo de audio se interrumpe, a causa de uno de los siguientes problemas: @@ -939,11 +939,11 @@ The sound card buffer delay (buffer size) is set to too small a value. - El retardo de buffer de la tarjeta de audio (tamaño buffer) tiene un valor demasiado bajo. + El retardo de buffer de la tarjeta de audio (tamaño buffer) tiene un valor demasiado bajo. The upload or download stream rate is too high for the current available internet bandwidth. - La tasa de subida o bajada is demasiado alta para el ancho de banda disponible de internet. + La tasa de subida o bajada is demasiado alta para el ancho de banda disponible de internet. @@ -1063,11 +1063,11 @@ The jitter buffer compensates for network and sound card timing jitters. The size of this jitter buffer has therefore influence on the quality of the audio stream (how many dropouts occur) and the overall delay (the longer the buffer, the higher the delay). - El jitter buffer compensa el jitter de la red y la tarjeta de audio. El tamaño de este buffer tiene por tanto un impacto sobre la calidad del flujo de audio (el número de caídas de la señal) y el retardo total (a mayor buffer, mayor retardo). + El jitter buffer compensa el jitter de la red y la tarjeta de audio. El tamaño de este buffer tiene por tanto un impacto sobre la calidad del flujo de audio (el número de caídas de la señal) y el retardo total (a mayor buffer, mayor retardo). The jitter buffer size can be manually chosen for the local client and the remote server. For the local jitter buffer, dropouts in the audio stream are indicated by the light below the jitter buffer size faders. If the light turns to red, a buffer overrun/underrun took place and the audio stream is interrupted. - El tamaño del jitter buffer se puede establecer para el cliente local y para el servidor remoto. Para el jitter buffer local, las caídas del flujo de audio se indican mediante la luz debajo de los faders del jitter buffer. Si la luz se vuelve roja, significa que ha habido una interrupción del flujo de audio. + El tamaño del jitter buffer se puede establecer para el cliente local y para el servidor remoto. Para el jitter buffer local, las caídas del flujo de audio se indican mediante la luz debajo de los faders del jitter buffer. Si la luz se vuelve roja, significa que ha habido una interrupción del flujo de audio. @@ -1076,11 +1076,11 @@ An auto setting of the jitter buffer size setting is available. If the check Auto is enabled, the jitter buffers of the local client and the remote server are set automatically based on measurements of the network and sound card timing jitter. If the Auto check is enabled, the jitter buffer size faders are disabled (they cannot be moved with the mouse). - Hay disponible una configuración automática del jitter buffer. Si se activa Auto, los jitter buffers del cliente local y del servidor remoto se configuran automáticamente basándose en mediciones del jitter de la red y la tarjeta de audio. Si se activa esta opción, los faders quedan deshabilitados (no pueden moverse con el ratón). + Hay disponible una configuración automática del jitter buffer. Si se activa Auto, los jitter buffers del cliente local y del servidor remoto se configuran automáticamente basándose en mediciones del jitter de la red y la tarjeta de audio. Si se activa esta opción, los faders quedan deshabilitados (no pueden moverse con el ratón). If 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 with a red light. - En caso de activar la configuración automática del jitter buffer, los buffers de red del cliente local y del servidor remoto se asignan a un valor conservador para minimizar la probabilidad de fallos de audio. Para ajustar el retardo de audio/latencia se recomienda desactivar la función automática y bajar los valores de jitter buffer manualmente utilizando los controles deslizantes hasta alcanzar un límite aceptable de caídas de audio. El indicador LED ofrece una visualización de las caídas de audio mediante una luz roja. + En caso de activar la configuración automática del jitter buffer, los buffers de red del cliente local y del servidor remoto se asignan a un valor conservador para minimizar la probabilidad de fallos de audio. Para ajustar el retardo de audio/latencia se recomienda desactivar la función automática y bajar los valores de jitter buffer manualmente utilizando los controles deslizantes hasta alcanzar un límite aceptable de caídas de audio. El indicador LED ofrece una visualización de las caídas de audio mediante una luz roja. @@ -1214,11 +1214,11 @@ The buffer delay setting is a fundamental setting of the - Este parámetro es una parte fundamental de la configuración del software + Este parámetro es una parte fundamental de la configuración del software software. This setting has influence on many connection properties. - . Este parámetro tiene un impacto sobre muchas propiedades de la conexión. + . Este parámetro tiene un impacto sobre muchas propiedades de la conexión. @@ -1227,31 +1227,31 @@ 64 samples: This is the preferred setting since it provides the lowest latency but does not work with all sound cards. - 64 muestras: Es la configuración aconsejada puesto que ofrece la latencia más baja, aunque no funciona con todas las tarjetas de audio. + 64 muestras: Es la configuración aconsejada puesto que ofrece la latencia más baja, aunque no funciona con todas las tarjetas de audio. 128 samples: This setting should work for most available sound cards. - 128 muestras: Esta configuración debería de funcionar con la mayoría de tarjetas de audio. + 128 muestras: Esta configuración debería de funcionar con la mayoría de tarjetas de audio. 256 samples: This setting should only be used if only a very slow computer or a slow internet connection is available. - 256 muestras: Esta configuración solo debería usarse con un ordenador muy lento o con una conexión a internet muy lenta. + 256 muestras: Esta configuración solo debería usarse con un ordenador muy lento o con una conexión a internet muy lenta. Some sound card drivers do not allow the buffer delay to be changed from within the - Algunos drivers de tarjetas de audio no permiten cambiar el retardo de buffer desde el software + Algunos drivers de tarjetas de audio no permiten cambiar el retardo de buffer desde el software software. In this case the buffer delay setting is disabled. To change the actual buffer delay, this setting has to be changed in the sound card driver. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. - . En este caso la configuración del retardo de buffer se deshabilita. Para cambiarlo, esta configuración debe realizarse en el driver de la tarjeta de audio. En Windows, pulsa el botón de Configuración ASIO para acceder al panel de configuración. En Linux, utiliza la herramienta de configuración de Jack para cambiar el tamaño del buffer. + . En este caso la configuración del retardo de buffer se deshabilita. Para cambiarlo, esta configuración debe realizarse en el driver de la tarjeta de audio. En Windows, pulsa el botón de Configuración ASIO para acceder al panel de configuración. En Linux, utiliza la herramienta de configuración de Jack para cambiar el tamaño del buffer. If no buffer size is selected and all settings are disabled, an unsupported buffer size is used by the driver. The - Si no hay ningún tamaño de buffer seleccionado y todas las configuraciones están deshabilitadas, el driver está utilizando un tamaño de buffer no soportado. El software + Si no hay ningún tamaño de buffer seleccionado y todas las configuraciones están deshabilitadas, el driver está utilizando un tamaño de buffer no soportado. El software software will still work with this setting but with restricted performance. - seguirá funcionando con esta configuración pero con un rendimiento limitado. + seguirá funcionando con esta configuración pero con un rendimiento limitado. @@ -1265,11 +1265,11 @@ If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the - Si la configuración de retardo de buffers se encuentra deshabilitada, es porque el driver de audio prohíbe la modificación de este parámetro desde dentro del software + Si la configuración de retardo de buffers se encuentra deshabilitada, es porque el driver de audio prohíbe la modificación de este parámetro desde dentro del software software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. - . En Windows, pulsa el botón de Configuración ASIO para abrir el panel de configuración del driver. En Linux, utiliza la herramienta de configuración de Jack para cambiar el tamaño del buffer. + . En Windows, pulsa el botón de Configuración ASIO para abrir el panel de configuración del driver. En Linux, utiliza la herramienta de configuración de Jack para cambiar el tamaño del buffer. @@ -1293,15 +1293,15 @@ Fancy Skin - Interfaz Oscura + Interfaz Oscura If enabled, a fancy skin will be applied to the main window. - Si se activa, se aplicará un aspecto oscuro a la ventana principal. + Si se activa, se aplicará un aspecto oscuro a la ventana principal. Fancy skin check box - Activar interfaz oscura + Activar interfaz oscura @@ -1325,15 +1325,15 @@ Select the number of audio channels to be used. There are three modes available. The mono and stereo modes use one and two audio channels respectively. In mono-in/stereo-out mode the audio signal which is sent to the server is mono but the return signal is stereo. This is useful if the sound card has the instrument on one input channel and the microphone on the other channel. In that case the two input signals can be mixed to one mono channel but the server mix can be heard in stereo. - Selecciona el número de canales de audio a utilizar. Hay tres modos disponibles. Los modos mono y estéreo utilizan uno y dos canales de audio respectivamente. En modo entrada-mono/salida-estéreo la señal de audio enviada al servidor es mono pero la señal que vuelve es estéreo. Esto es útil si la tarjeta de audio tiene un instrumento en un canal de entrada y un micrófono en el otro. En ese caso las dos señales de entrada pueden combinarse en un canal mono pero la mezcla del servidor se escucha en estéreo. + Selecciona el número de canales de audio a utilizar. Hay tres modos disponibles. Los modos mono y estéreo utilizan uno y dos canales de audio respectivamente. En modo entrada-mono/salida-estéreo la señal de audio enviada al servidor es mono pero la señal que vuelve es estéreo. Esto es útil si la tarjeta de audio tiene un instrumento en un canal de entrada y un micrófono en el otro. En ese caso las dos señales de entrada pueden combinarse en un canal mono pero la mezcla del servidor se escucha en estéreo. Enabling the stereo streaming mode will increase the stream data rate. Make sure that the current upload rate does not exceed the available bandwidth of your internet connection. - Activar el modo estéreo aumentará la tasa de envío de datos. Asegúrate de que la tasa de subida no excede el ancho de banda disponible en tu conexión a internet. + Activar el modo estéreo aumentará la tasa de envío de datos. Asegúrate de que la tasa de subida no excede el ancho de banda disponible en tu conexión a internet. In stereo streaming mode, no audio channel selection for the reverberation effect will be available on the main window since the effect is applied on both channels in this case. - En el caso del modo estéreo, no estará disponible la selección de canal para el efecto de reverberación en la ventana principal puesto que en este caso el efecto se aplicará a ambos canales. + En el caso del modo estéreo, no estará disponible la selección de canal para el efecto de reverberación en la ventana principal puesto que en este caso el efecto se aplicará a ambos canales. @@ -1347,7 +1347,7 @@ Select the desired audio quality. A low, normal or high audio quality can be selected. The higher the audio quality, the higher the audio stream data rate. Make sure that the current upload rate does not exceed the available bandwidth of your internet connection. - Selecciona la calidad de audio deseada. Se puede seleccionar una calidad baja, normal o alta. Cuanto mayor la calidad del audio, mayor la tasa de transferencia de datos de audio. Asegúrate de que la tasa de subida no excede el ancho de banda disponible en tu conexión a internet. + Selecciona la calidad de audio deseada. Se puede seleccionar una calidad baja, normal o alta. Cuanto mayor la calidad del audio, mayor la tasa de transferencia de datos de audio. Asegúrate de que la tasa de subida no excede el ancho de banda disponible en tu conexión a internet. @@ -1361,7 +1361,7 @@ The new client level setting defines the fader level of a new connected client in percent. I.e. if a new client connects to the current server, it will get the specified initial fader level if no other fader level of a previous connection of that client was already stored. - La configuración del nivel de clientes nuevos define el nivel del fader para una nueva conexión expresado en un porcentaje. Esto es, si un cliente nuevo se conecta al servidor actual, su fader tomará el valor especificado si no se ha guardado ningún valor de una conexión anterior de ese cliente. + La configuración del nivel de clientes nuevos define el nivel del fader para una nueva conexión expresado en un porcentaje. Esto es, si un cliente nuevo se conecta al servidor actual, su fader tomará el valor especificado si no se ha guardado ningún valor de una conexión anterior de ese cliente. @@ -1375,19 +1375,19 @@ The custom central server address is the IP address or URL of the central server at which the server list of the connection dialog is managed. This address is only used if the custom server list is selected in the connection dialog. - La dirección personalizada del servidor central es la dirección IP o URL del servidor central en el cual se gestiona la lista de servidores de la ventana de conexión. Esta dirección solo se utiliza si se selecciona la lista personalizada en la ventana de conexión. + La dirección personalizada del servidor central es la dirección IP o URL del servidor central en el cual se gestiona la lista de servidores de la ventana de conexión. Esta dirección solo se utiliza si se selecciona la lista personalizada en la ventana de conexión. Central Server Address - Dirección Servidor Central + Dirección Servidor Central The central server address is the IP address or URL of the central server at which the server list of the connection dialog is managed. With the central server address type either the local region can be selected of the default central servers or a manual address can be specified. - La dirección del servidor central es la dirección IP o URL del servidor central en el que se gestiona la lista de servidores en la ventana de conexión. Aquí se puede escoger la región local de entre los servidores centrales por defecto o se puede especificar una dirección manualmente. + La dirección del servidor central es la dirección IP o URL del servidor central en el que se gestiona la lista de servidores en la ventana de conexión. Aquí se puede escoger la región local de entre los servidores centrales por defecto o se puede especificar una dirección manualmente. Default central server type combo box - Selección servidor central + Selección servidor central @@ -1401,15 +1401,15 @@ The ping time is the time required for the audio stream to travel from the client to the server and back again. This delay is introduced by the network. This delay should be as low as 20-30 ms. If this delay is higher (e.g., 50-60 ms), your distance to the server is too large or your internet connection is not sufficient. - El ping es el tiempo que requiere el flujo de audio para viajar desde el cliente al servidor y volver. Este retardo lo determina la red. Esta cifra debería ser de unos 20-30 ms. Si este retardo es mayor (por ej. 50-60 ms), la distancia al servidor es demasiado grande o tu conexión a internet no es óptima. + El ping es el tiempo que requiere el flujo de audio para viajar desde el cliente al servidor y volver. Este retardo lo determina la red. Esta cifra debería ser de unos 20-30 ms. Si este retardo es mayor (por ej. 50-60 ms), la distancia al servidor es demasiado grande o tu conexión a internet no es óptima. The overall delay is calculated from the current ping time and the delay which is introduced by the current buffer settings. - El retardo total se calcula con el ping y el retardo ocasionado por la configuración de buffers. + El retardo total se calcula con el ping y el retardo ocasionado por la configuración de buffers. The upstream rate depends on the current audio packet size and the audio compression setting. Make sure that the upstream rate is not higher than the available rate (check the upstream capabilities of your internet connection by, e.g., using speedtest.net). - La tasa de subida depende del tamaño actual de paquetes de audio y la configuración de compresión de audio. Asegúrate de que la tasa de subida no es mayor que la tasa disponible (comprueba la tasa de subida de tu conexión a internet, por ej. con speedtest.net). + La tasa de subida depende del tamaño actual de paquetes de audio y la configuración de compresión de audio. Asegúrate de que la tasa de subida no es mayor que la tasa disponible (comprueba la tasa de subida de tu conexión a internet, por ej. con speedtest.net). @@ -1551,7 +1551,7 @@ mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. - aumentará la tasa de datos. Asegúrate de que tu tasa de subida no excede el valor de subida disponible con tu ancho de banda de Internet. + aumentará la tasa de datos. Asegúrate de que tu tasa de subida no excede el valor de subida disponible con tu ancho de banda de Internet. @@ -1606,7 +1606,7 @@ Manual - Manual + Manual @@ -1620,7 +1620,7 @@ Genre Rock/Jazz - Género Rock/Jazz + Género Rock/Jazz @@ -1644,7 +1644,7 @@ Default (North America) - Por defecto (Norteamérica) + Por defecto (Norteamérica) @@ -1669,7 +1669,7 @@ Predefined Address - Dirección Preestablecida + Dirección Preestablecida @@ -1819,7 +1819,7 @@ Fancy Skin - Intfaz Oscura + Intfaz Oscura @@ -1833,7 +1833,7 @@ Central Server Address: - Dirección Servidor Central: + Dirección Servidor Central: @@ -1867,11 +1867,11 @@ The server list shows a list of available servers which are registered at the central server. Select a server from the list and press the connect button to connect to this server. Alternatively, double click a server from the list to connect to it. If a server is occupied, a list of the connected musicians is available by expanding the list item. Permanent servers are shown in bold font. - La lista de servidores muestra una lista de servidores disponibles que se encuentran registrados en el servidor central. Escoge un servidor de la lista y pulsa el botón de conectar para conectarte a este servidor. También es posible realizar la conexión haciendo doble clic en un servidor de la lista. Si un servidor está ocupado, se puede desplegar una lista de los músicos conectados al pulsar el icono al lado del nombre. Los servidores permanentes se muestran en negrita. + La lista de servidores muestra una lista de servidores disponibles que se encuentran registrados en el servidor central. Escoge un servidor de la lista y pulsa el botón de conectar para conectarte a este servidor. También es posible realizar la conexión haciendo doble clic en un servidor de la lista. Si un servidor está ocupado, se puede desplegar una lista de los músicos conectados al pulsar el icono al lado del nombre. Los servidores permanentes se muestran en negrita. Note that it may take some time to retrieve the server list from the central server. If no valid central server address is specified in the settings, no server list will be available. - Ten en cuenta que puede llevar un tiempo recuperar la lista de servidores del servidor central. Si no se especifica una dirección válida en la configuración, no habrá ninguna lista de servidores disponible. + Ten en cuenta que puede llevar un tiempo recuperar la lista de servidores del servidor central. Si no se especifica una dirección válida en la configuración, no habrá ninguna lista de servidores disponible. @@ -1885,23 +1885,23 @@ The IP address or URL of the server running the - La dirección IP o URL del servidor ejecutando el software del servidor + La dirección IP o URL del servidor ejecutando el software del servidor server software must be set here. An optional port number can be added after the IP address or URL using a comma as a separator, e.g, example.org: - debe introducirse aquí. Se puede añadir un número de puerto opcional detrás de la dirección IP o URL utilizando dos puntos como separador, por ej. ejemplo.org: + debe introducirse aquí. Se puede añadir un número de puerto opcional detrás de la dirección IP o URL utilizando dos puntos como separador, por ej. ejemplo.org: 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: - debe introducirse aquí. Se puede añadir un número de puerto opcional detrás de la dirección IP o URL utilizando dos puntos como separador, por ej. ejemplo.org: + debe introducirse aquí. Se puede añadir un número de puerto opcional detrás de la dirección IP o URL utilizando dos puntos como separador, por ej. ejemplo.org: . A list of the most recent used server IP addresses or URLs is available for selection. - . Hay disponible una lista de las direcciones IP o URLs utilizadas más recientemente para su selección. + . Hay disponible una lista de las direcciones IP o URLs utilizadas más recientemente para su selección. The Connection Setup window shows a list of available servers. Server operators can optionally list their servers by music genre. Use the List dropdown to select a genre, click on the server you want to join and press the Connect button to connect to it. Alternatively, double click on on the server name. Permanent servers (those that have been listed for longer than 24 hours) are shown in bold. - La ventana de Conexión muestra una lista de servidores disponibles. Opcionalmente los administradores de los servidores pueden listar sus servidores por género musical. Utiliza el menú Lista para escoger un género, escoge un servidor de la lista y pulsa el botón de Conectar para conectarte a él. También es posible realizar la conexión haciendo doble clic en un servidor de la lista. Los servidores permanentes (aquellos que llevan más de 24 horas en la lista) se muestran en negrita. + La ventana de Conexión muestra una lista de servidores disponibles. Opcionalmente los administradores de los servidores pueden listar sus servidores por género musical. Utiliza el menú Lista para escoger un género, escoge un servidor de la lista y pulsa el botón de Conectar para conectarte a él. También es posible realizar la conexión haciendo doble clic en un servidor de la lista. Los servidores permanentes (aquellos que llevan más de 24 horas en la lista) se muestran en negrita. @@ -2181,7 +2181,7 @@ 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. + 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. @@ -2268,11 +2268,11 @@ 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 in. The city you live in and the skill level 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. + 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 + Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor @@ -2281,7 +2281,7 @@ What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. If the name is left empty, the IP address is shown instead. - Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor. Esta etiqueta también se mostrará en cada cliente conectado al mismo servidor que tú. Si se deja el nombre vacío, se muestra la dirección IP en su lugar. + Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor. Esta etiqueta también se mostrará en cada cliente conectado al mismo servidor que tú. Si se deja el nombre vacío, se muestra la dirección IP en su lugar. @@ -2528,11 +2528,11 @@ If the start minimized on operating system start check box is checked, the - Si se activa el arranque al arrancar el sistema operativo, el + Si se activa el arranque al arrancar el sistema operativo, el server will be started when the operating system starts up and is automatically minimized to a system task bar icon. - servidor arrancará cuando arranque el sistema operativo y se minimizará automáticamente a un icono en la barra de tareas. + servidor arrancará cuando arranque el sistema operativo y se minimizará automáticamente a un icono en la barra de tareas. @@ -2551,11 +2551,11 @@ If the Make My Server Public check box is checked, this server registers itself at the central server so that all - Si se activa Mi Servidor es Público, este servidor se registra en el servidor central para que todos los usuarios de + Si se activa Mi Servidor es Público, este servidor se registra en el servidor central para que todos los usuarios de users can see the server in the connect dialog server list and connect to it. The registration of the server is renewed periodically to make sure that all servers in the connect dialog server list are actually available. - puedan ver el servidor en la lista de servidores de la ventana de conexión y puedan conectarse a él. El registro del servidor se renueva periódicamente para asegurarse de que todos los servidores en la lista se encuentren realmente disponibles. + puedan ver el servidor en la lista de servidores de la ventana de conexión y puedan conectarse a él. El registro del servidor se renueva periódicamente para asegurarse de que todos los servidores en la lista se encuentren realmente disponibles. @@ -2564,15 +2564,15 @@ If the Make My Server Public check box is checked, this will show whether registration with the central server is successful. - Si se ha activado Mi Servidor es Público, esto mostrará si se ha registrado en el servidor central con éxito. + Si se ha activado Mi Servidor es Público, esto mostrará si se ha registrado en el servidor central con éxito. Central Server Address - Dirección Servidor Central + Dirección Servidor Central The Central server address is the IP address or URL of the central server at which this server is registered. With the central server address type either the local region can be selected of the default central servers or a manual address can be specified. - La dirección del Servidor Central es la dirección IP o URL del servidor central en el que se ha registrado este servidor. Aquí se puede escoger la región local de entre los servidores centrales por defecto o se puede especificar una dirección manualmente. + La dirección del Servidor Central es la dirección IP o URL del servidor central en el que se ha registrado este servidor. Aquí se puede escoger la región local de entre los servidores centrales por defecto o se puede especificar una dirección manualmente. @@ -2581,7 +2581,7 @@ Default central server type combo box - Selección servidor central + Selección servidor central @@ -2630,7 +2630,7 @@ The server name identifies your server in the connect dialog server list at the clients. If no name is given, the IP address is shown instead. - El nombre del servidor identifica a tu servidor en la lista de conexión de servidores de los clientes. Si no se especifica un nombre, se muestra la dirección IP en su lugar. + El nombre del servidor identifica a tu servidor en la lista de conexión de servidores de los clientes. Si no se especifica un nombre, se muestra la dirección IP en su lugar. @@ -2825,7 +2825,7 @@ Displays the current status of the recorder. - Muestra el estado actual de la grabación. + Muestra el estado actual de la grabación. @@ -2867,7 +2867,7 @@ server - + @@ -2876,7 +2876,7 @@ Predefined Address - Dirección Preestablecida + Dirección Preestablecida @@ -2900,15 +2900,15 @@ Manual - Manual + Manual Default - Por defecto + Por defecto Default (North America) - Por defecto (Norteamérica) + Por defecto (Norteamérica) @@ -3057,7 +3057,7 @@ Central Server Address: - Dirección Servidor Central: + Dirección Servidor Central: @@ -3076,19 +3076,19 @@ Enable jam recorder - Habilitar grabación Jam + Habilitar grabación Jam New recording - Nueva grabación + Nueva grabación Recordings folder - Carpeta grabaciones + Carpeta grabaciones TextLabelNameVersion - TextLabelNameVersion + TextLabelNameVersion From 52302446c026c05e2381d0fc227b628e56e46b86 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 11 Jul 2020 22:22:13 +0200 Subject: [PATCH 381/936] adde Load/StoreFaderSettings --- src/settings.cpp | 66 +++++++++++++++++++++++++++++++++++++----------- src/settings.h | 21 ++++++++++----- 2 files changed, 66 insertions(+), 21 deletions(-) diff --git a/src/settings.cpp b/src/settings.cpp index c2976bbbe8..1a23331d5c 100755 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -31,16 +31,10 @@ void CSettings::Load() // prepare file name for loading initialization data from XML file and read // data from file if possible QDomDocument IniXMLDocument; - QFile file ( strFileName ); - - if ( file.open ( QIODevice::ReadOnly ) ) - { - IniXMLDocument.setContent ( QTextStream ( &file ).readAll(), false ); - file.close(); - } + ReadFromFile ( strFileName, IniXMLDocument ); // read the settings from the given XML file - ReadFromXML ( IniXMLDocument ); + ReadSettingsFromXML ( IniXMLDocument ); } void CSettings::Save() @@ -49,15 +43,33 @@ void CSettings::Save() QDomDocument IniXMLDocument; // write the settings in the XML file - WriteToXML ( IniXMLDocument ); + WriteSettingsToXML ( IniXMLDocument ); // prepare file name for storing initialization data in XML file and store // XML data in file - QFile file ( strFileName ); + WriteToFile ( strFileName, IniXMLDocument ); +} + +void CSettings::ReadFromFile ( const QString& strCurFileName, + QDomDocument& XMLDocument ) +{ + QFile file ( strCurFileName ); + + if ( file.open ( QIODevice::ReadOnly ) ) + { + XMLDocument.setContent ( QTextStream ( &file ).readAll(), false ); + file.close(); + } +} + +void CSettings::WriteToFile ( const QString& strCurFileName, + const QDomDocument& XMLDocument ) +{ + QFile file ( strCurFileName ); if ( file.open ( QIODevice::WriteOnly ) ) { - QTextStream ( &file ) << IniXMLDocument.toString(); + QTextStream ( &file ) << XMLDocument.toString(); file.close(); } } @@ -212,7 +224,31 @@ void CSettings::PutIniSetting ( QDomDocument& xmlFile, // Client settings ------------------------------------------------------------- -void CClientSettings::ReadFromXML ( const QDomDocument& IniXMLDocument ) +void CClientSettings::LoadFaderSettings ( const QString& strCurFileName ) +{ + // prepare file name for loading initialization data from XML file and read + // data from file if possible + QDomDocument IniXMLDocument; + ReadFromFile ( strCurFileName, IniXMLDocument ); + + // read the settings from the given XML file + ReadFaderSettingsFromXML ( IniXMLDocument ); +} + +void CClientSettings::SaveFaderSettings ( const QString& strCurFileName ) +{ + // create XML document for storing initialization parameters + QDomDocument IniXMLDocument; + + // write the settings in the XML file + WriteFaderSettingsToXML ( IniXMLDocument ); + + // prepare file name for storing initialization data in XML file and store + // XML data in file + WriteToFile ( strCurFileName, IniXMLDocument ); +} + +void CClientSettings::ReadSettingsFromXML ( const QDomDocument& IniXMLDocument ) { int iIdx; int iValue; @@ -544,7 +580,7 @@ void CClientSettings::ReadFaderSettingsFromXML ( const QDomDocument& IniXMLDocum } } -void CClientSettings::WriteToXML ( QDomDocument& IniXMLDocument ) +void CClientSettings::WriteSettingsToXML ( QDomDocument& IniXMLDocument ) { int iIdx; @@ -744,7 +780,7 @@ void CClientSettings::WriteFaderSettingsToXML ( QDomDocument& IniXMLDocument ) // Server settings ------------------------------------------------------------- -void CServerSettings::ReadFromXML ( const QDomDocument& IniXMLDocument ) +void CServerSettings::ReadSettingsFromXML ( const QDomDocument& IniXMLDocument ) { int iValue; bool bValue; @@ -833,7 +869,7 @@ if ( GetFlagIniSet ( IniXMLDocument, "server", "defcentservaddr", bValue ) ) GetIniSetting ( IniXMLDocument, "server", "winposmain_base64" ) ); } -void CServerSettings::WriteToXML ( QDomDocument& IniXMLDocument ) +void CServerSettings::WriteSettingsToXML ( QDomDocument& IniXMLDocument ) { // central server address PutIniSetting ( IniXMLDocument, "server", "centralservaddr", diff --git a/src/settings.h b/src/settings.h index 3e05c3e248..d3bd13914d 100755 --- a/src/settings.h +++ b/src/settings.h @@ -52,8 +52,14 @@ class CSettings QString strLanguage; protected: - virtual void ReadFromXML ( const QDomDocument& IniXMLDocument ) = 0; - virtual void WriteToXML ( QDomDocument& IniXMLDocument ) = 0; + virtual void ReadSettingsFromXML ( const QDomDocument& IniXMLDocument ) = 0; + virtual void WriteSettingsToXML ( QDomDocument& IniXMLDocument ) = 0; + + void ReadFromFile ( const QString& strCurFileName, + QDomDocument& XMLDocument ); + + void WriteToFile ( const QString& strCurFileName, + const QDomDocument& XMLDocument ); void SetFileName ( const QString& sNFiName, const QString& sDefaultFileName ); @@ -139,6 +145,9 @@ class CClientSettings : public CSettings pClient ( pNCliP ) { SetFileName ( sNFiName, DEFAULT_INI_FILE_NAME ); } + void LoadFaderSettings ( const QString& strCurFileName ); + void SaveFaderSettings ( const QString& strCurFileName ); + // general settings CVector vecStoredFaderTags; CVector vecStoredFaderLevels; @@ -161,8 +170,8 @@ class CClientSettings : public CSettings bool bWindowWasShownConnect; protected: - virtual void ReadFromXML ( const QDomDocument& IniXMLDocument ) override; - virtual void WriteToXML ( QDomDocument& IniXMLDocument ) override; + virtual void ReadSettingsFromXML ( const QDomDocument& IniXMLDocument ) override; + virtual void WriteSettingsToXML ( QDomDocument& IniXMLDocument ) override; void ReadFaderSettingsFromXML ( const QDomDocument& IniXMLDocument ); void WriteFaderSettingsToXML ( QDomDocument& IniXMLDocument ); @@ -180,8 +189,8 @@ class CServerSettings : public CSettings { SetFileName ( sNFiName, DEFAULT_INI_FILE_NAME_SERVER); } protected: - virtual void ReadFromXML ( const QDomDocument& IniXMLDocument ) override; - virtual void WriteToXML ( QDomDocument& IniXMLDocument ) override; + virtual void ReadSettingsFromXML ( const QDomDocument& IniXMLDocument ) override; + virtual void WriteSettingsToXML ( QDomDocument& IniXMLDocument ) override; CServer* pServer; }; From b28463455a4e12ee5750a5441604e998b2aa1f01 Mon Sep 17 00:00:00 2001 From: jerogee Date: Sat, 11 Jul 2020 23:06:13 +0200 Subject: [PATCH 382/936] Update Dutch translation for 3.5.9 as part of #77 --- src/res/translation/translation_nl_NL.qm | Bin 98480 -> 105504 bytes src/res/translation/translation_nl_NL.ts | 82 +++++++++++------------ 2 files changed, 41 insertions(+), 41 deletions(-) diff --git a/src/res/translation/translation_nl_NL.qm b/src/res/translation/translation_nl_NL.qm index 3ab7deeb95cf200acd1eef4b95aa1b15217792a4..4e89012958b65271d3f1c190dff7b1209a857981 100644 GIT binary patch delta 8947 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 Polish - + Pools Swedish - + Zweeds @@ -249,7 +249,7 @@ No grouping - + Geen groepering @@ -257,7 +257,7 @@ Assign to group - + Toewijzen aan groep @@ -901,17 +901,17 @@ Sort Channel Users by &Name - Sorteer muzikanten op &naam + Sorteer muzikanten op &Naam Sort Channel Users by &Instrument - Sorteer muzikanten op &instrument + Sorteer muzikanten op &Instrument Sort Channel Users by &Group - + Sorteer muzikanten op &Groep @@ -1762,7 +1762,7 @@ Language - + Taal @@ -2010,12 +2010,12 @@ Restart Required - + Herstart noodzakelijk Please restart the application for the language change to take effect. - + Start de applicatie opnieuw om de taalwijziging door te voeren. @@ -2615,43 +2615,43 @@ Display dialog to select recording directory button - + Toon venster voor het instellen van de directory voor geluidsopnames Main Recording Directory - + Hoofddirectory voor geluidsopnames Click the button to open the dialog that allows the main recording directory to be selected.The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). - + Klik op deze knop om het venster te tonen waarin de directory voor geluidsopnames kan worden ingesteld. Deze directory moet reeds bestaan en door de gebruiker die Jamulus draait kunnen worden aangepast. Main recording directory text box (read-only) - + Hoofddirectory voor geluidsopnames tekstvak (read-only) The current value of the main recording directory. The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). Click the button to open the dialog that allows the main recording directory to be selected. - + De huidig ingestelde directory voor geluidsopnames. Deze directory moet reeds bestaan en door de gebruiker die Jamulus draait kunnen worden aangepast. Clear the recording directory button - + Wis aangegeven geluidsopnamedirectory Clear Recording Directory - + Wis aangegeven geluidsopnamedirectory Click the button to clear the currently selected recording directory. This will prevent recording until a new value is selected. - + Klik op deze knop om de aangegeven geluidsopnamedirectory te wissen. Opnames kunnen niet worden gemaakt zonder ingestelde geluidsopnamedirectory. @@ -2696,72 +2696,72 @@ Displays the current status of the recorder. The following values are possible: - + Toon de huidige status van geluidsopname. De volgende keuzes zijn mogelijk: No recording directory has been set or the value is not useable - + Geen geluidsopnamedirectory ingesteld of waarde is niet bruikbaar Recording has been switched off - + Geluidsopname is uitgeschakeld by the UI checkbox - + door het selectievak , either by the UI checkbox or SIGUSR2 being received - + , of door het selectievak of doordat SIGUSR2 wordt ontvangen There is no one connected to the server to record - + Er is niemand verbonden met de server voor geluidsopname The performers are being recorded to the specified session directory - + Het geluid van de muzikanten wordt opgenomen in de aangegeven sessie-directory NOTE - + NOOT If the recording directory is not useable, the problem will be displayed in place of the directory. - + Als de geluidsopnamedirectory niet bruikbaar is wordt het probleem getoont in plaats van de locatie. Server welcome message edit box - + Vak voor welkomsbericht server Server Welcome Message - + Welkomsbericht server A server welcome message text is displayed in the chat window if a musician enters the server. If no message is set, the server welcome is disabled. - + Een server welkomsbericht wordt getoond in het chatvenster als een muzikant binnenkomt. Indien niets ingesteld wordt geen welkomsbericht getoond. Type a message here. If no message is set, the server welcome is disabled. - + Typ hier een bericht. Indien niets ingesteld wordt geen welkomsbericht getoond. ERROR - + FOUT Displays the current status of the recorder. @@ -2812,7 +2812,7 @@ Select Main Recording Directory - + Selecteer hoofdgeluidsopnamedirectory Predefined Address @@ -2831,7 +2831,7 @@ Not initialised - + Niet geïnitialiseerd @@ -2932,17 +2932,17 @@ Server Setup - + Server Setup Chat Window Welcome (HTML/CSS Supported) - + Welkomsbericht Chatvenster (HTML/CSS mogelijk) Options - + Opties @@ -2978,22 +2978,22 @@ Recording Directory - + Geluidsopnamedirectory Enable Jam Recorder - + Activeer geluidsopname New Recording - Nieuwe geluidsopname + Nieuwe geluidsopname Language - + Taal Central Server Address: From c0d63fd5e5e4619c5c8bfe4b367de25f2d6a57cf Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 12 Jul 2020 10:38:18 +0200 Subject: [PATCH 383/936] save and restore mixer state (like fader, mute, etc.) (#377) --- ChangeLog | 5 + src/audiomixerboard.cpp | 72 +++++------ src/audiomixerboard.h | 13 +- src/clientdlg.cpp | 157 +++++++++-------------- src/clientdlg.h | 11 +- src/clientsettingsdlg.cpp | 10 -- src/clientsettingsdlg.h | 3 +- src/res/translation/translation_de_DE.qm | Bin 109058 -> 109005 bytes src/res/translation/translation_de_DE.ts | 78 ++++++----- src/res/translation/translation_es_ES.qm | Bin 105902 -> 105845 bytes src/res/translation/translation_es_ES.ts | 78 ++++++----- src/res/translation/translation_fr_FR.qm | Bin 112282 -> 112229 bytes src/res/translation/translation_fr_FR.ts | 78 ++++++----- src/res/translation/translation_it_IT.qm | Bin 99412 -> 99359 bytes src/res/translation/translation_it_IT.ts | 78 ++++++----- src/res/translation/translation_nl_NL.qm | Bin 98480 -> 98429 bytes src/res/translation/translation_nl_NL.ts | 78 ++++++----- src/res/translation/translation_pl_PL.qm | Bin 14682 -> 14629 bytes src/res/translation/translation_pl_PL.ts | 78 ++++++----- src/res/translation/translation_pt_BR.qm | Bin 107832 -> 107777 bytes src/res/translation/translation_pt_BR.ts | 78 ++++++----- src/res/translation/translation_pt_PT.qm | Bin 100982 -> 100927 bytes src/res/translation/translation_pt_PT.ts | 78 ++++++----- src/res/translation/translation_sv_SE.qm | Bin 93841 -> 93788 bytes src/res/translation/translation_sv_SE.ts | 78 ++++++----- 25 files changed, 551 insertions(+), 422 deletions(-) diff --git a/ChangeLog b/ChangeLog index c37006b43b..b2b86c8fc6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -17,6 +17,9 @@ - add special server list filter for filtering occupied servers by using "#" (#397) +- save and restore mixer state (like fader, mute, etc.) (#377) + note that saving/loading of settings only works if not connected + - scale channel instrument picture in Compact skin mode - redesign of the server dialog (e.g. added welcome message setting) @@ -26,6 +29,8 @@ - bug fix: grouping faders in the client should be proportional (see discussion in #202, #419) +TODO instrument names in the profile dialog are no longer translated (worked in v3.5.8) + TODO improve settings management -> move settings class in client/server classes, move actual settings variables TODO improve interaction between use of inifile and command line parameters (edited) #120 TODO Save and restore mixer state (fader / mute / solo...) #377 diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 0092ca4b30..8e92f1396a 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -772,20 +772,14 @@ double CChannelFader::CalcFaderGain ( const double dValue ) * CAudioMixerBoard * \******************************************************************************/ CAudioMixerBoard::CAudioMixerBoard ( QWidget* parent, Qt::WindowFlags ) : - QGroupBox ( parent ), - vecStoredFaderTags ( MAX_NUM_STORED_FADER_SETTINGS, "" ), - vecStoredFaderLevels ( MAX_NUM_STORED_FADER_SETTINGS, AUD_MIX_FADER_MAX ), - vecStoredPanValues ( MAX_NUM_STORED_FADER_SETTINGS, AUD_MIX_PAN_MAX / 2 ), - vecStoredFaderIsSolo ( MAX_NUM_STORED_FADER_SETTINGS, false ), - vecStoredFaderIsMute ( MAX_NUM_STORED_FADER_SETTINGS, false ), - vecStoredFaderGroupID ( MAX_NUM_STORED_FADER_SETTINGS, INVALID_INDEX ), - iNewClientFaderLevel ( 100 ), - bDisplayPans ( false ), - bIsPanSupported ( false ), - bNoFaderVisible ( true ), - iMyChannelID ( INVALID_INDEX ), - strServerName ( "" ), - eRecorderState ( RS_UNDEFINED ) + QGroupBox ( parent ), + pSettings ( nullptr ), + bDisplayPans ( false ), + bIsPanSupported ( false ), + bNoFaderVisible ( true ), + iMyChannelID ( INVALID_INDEX ), + strServerName ( "" ), + eRecorderState ( RS_UNDEFINED ) { // add group box and hboxlayout QHBoxLayout* pGroupBoxLayout = new QHBoxLayout ( this ); @@ -1076,11 +1070,11 @@ void CAudioMixerBoard::ApplyNewConClientList ( CVector& vecChanInf // server, in that case we do not have to do anything here. if ( ( !bNoFaderVisible || ( ( iMyChannelID != INVALID_INDEX ) && ( iMyChannelID != i ) ) ) && - ( iNewClientFaderLevel != 100 ) ) + ( pSettings->iNewClientFaderLevel != 100 ) ) { // the value is in percent -> convert range vecpChanFader[i]->SetFaderLevel ( - iNewClientFaderLevel / 100.0 * AUD_MIX_FADER_MAX ); + pSettings->iNewClientFaderLevel / 100.0 * AUD_MIX_FADER_MAX ); } } @@ -1235,26 +1229,26 @@ void CAudioMixerBoard::StoreFaderSettings ( CChannelFader* pChanFader ) if ( pChanFader->IsVisible() && !pChanFader->GetReceivedName().isEmpty() ) { - CVector viOldStoredFaderLevels ( vecStoredFaderLevels ); - CVector viOldStoredPanValues ( vecStoredPanValues ); - CVector vbOldStoredFaderIsSolo ( vecStoredFaderIsSolo ); - CVector vbOldStoredFaderIsMute ( vecStoredFaderIsMute ); - CVector vbOldStoredFaderGroupID ( vecStoredFaderGroupID ); + CVector viOldStoredFaderLevels ( pSettings->vecStoredFaderLevels ); + CVector viOldStoredPanValues ( pSettings->vecStoredPanValues ); + CVector vbOldStoredFaderIsSolo ( pSettings->vecStoredFaderIsSolo ); + CVector vbOldStoredFaderIsMute ( pSettings->vecStoredFaderIsMute ); + CVector vbOldStoredFaderGroupID ( pSettings->vecStoredFaderGroupID ); // init temporary list count (may be overwritten later on) int iTempListCnt = 0; // put new value on the top of the list const int iOldIdx = - vecStoredFaderTags.StringFiFoWithCompare ( pChanFader->GetReceivedName(), - true ); + pSettings->vecStoredFaderTags.StringFiFoWithCompare ( pChanFader->GetReceivedName(), + true ); // current fader level and solo state is at the top of the list - vecStoredFaderLevels[0] = pChanFader->GetFaderLevel(); - vecStoredPanValues[0] = pChanFader->GetPanValue(); - vecStoredFaderIsSolo[0] = pChanFader->IsSolo(); - vecStoredFaderIsMute[0] = pChanFader->IsMute(); - vecStoredFaderGroupID[0] = pChanFader->GetGroupID(); + pSettings->vecStoredFaderLevels[0] = pChanFader->GetFaderLevel(); + pSettings->vecStoredPanValues[0] = pChanFader->GetPanValue(); + pSettings->vecStoredFaderIsSolo[0] = pChanFader->IsSolo(); + pSettings->vecStoredFaderIsMute[0] = pChanFader->IsMute(); + pSettings->vecStoredFaderGroupID[0] = pChanFader->GetGroupID(); iTempListCnt = 1; for ( int iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) @@ -1267,11 +1261,11 @@ void CAudioMixerBoard::StoreFaderSettings ( CChannelFader* pChanFader ) // index in case the entry was not present in the vector before if ( iIdx != iOldIdx ) { - vecStoredFaderLevels[iTempListCnt] = viOldStoredFaderLevels[iIdx]; - vecStoredPanValues[iTempListCnt] = viOldStoredPanValues[iIdx]; - vecStoredFaderIsSolo[iTempListCnt] = vbOldStoredFaderIsSolo[iIdx]; - vecStoredFaderIsMute[iTempListCnt] = vbOldStoredFaderIsMute[iIdx]; - vecStoredFaderGroupID[iTempListCnt] = vbOldStoredFaderGroupID[iIdx]; + pSettings->vecStoredFaderLevels[iTempListCnt] = viOldStoredFaderLevels[iIdx]; + pSettings->vecStoredPanValues[iTempListCnt] = viOldStoredPanValues[iIdx]; + pSettings->vecStoredFaderIsSolo[iTempListCnt] = vbOldStoredFaderIsSolo[iIdx]; + pSettings->vecStoredFaderIsMute[iTempListCnt] = vbOldStoredFaderIsMute[iIdx]; + pSettings->vecStoredFaderGroupID[iTempListCnt] = vbOldStoredFaderGroupID[iIdx]; iTempListCnt++; } @@ -1293,14 +1287,14 @@ bool CAudioMixerBoard::GetStoredFaderSettings ( const CChannelInfo& ChanInfo, for ( int iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) { // check if fader text is already known in the list - if ( !vecStoredFaderTags[iIdx].compare ( ChanInfo.strName ) ) + if ( !pSettings->vecStoredFaderTags[iIdx].compare ( ChanInfo.strName ) ) { // copy stored settings values - iStoredFaderLevel = vecStoredFaderLevels[iIdx]; - iStoredPanValue = vecStoredPanValues[iIdx]; - bStoredFaderIsSolo = vecStoredFaderIsSolo[iIdx] != 0; - bStoredFaderIsMute = vecStoredFaderIsMute[iIdx] != 0; - iGroupID = vecStoredFaderGroupID[iIdx]; + iStoredFaderLevel = pSettings->vecStoredFaderLevels[iIdx]; + iStoredPanValue = pSettings->vecStoredPanValues[iIdx]; + bStoredFaderIsSolo = pSettings->vecStoredFaderIsSolo[iIdx] != 0; + bStoredFaderIsMute = pSettings->vecStoredFaderIsMute[iIdx] != 0; + iGroupID = pSettings->vecStoredFaderGroupID[iIdx]; // values found and copied, return OK return true; diff --git a/src/audiomixerboard.h b/src/audiomixerboard.h index 3ed2c6bec8..aa1bc510c5 100755 --- a/src/audiomixerboard.h +++ b/src/audiomixerboard.h @@ -40,6 +40,7 @@ #include "global.h" #include "util.h" #include "levelmeter.h" +#include "settings.h" /* Classes ********************************************************************/ @@ -189,6 +190,7 @@ class CAudioMixerBoard : virtual ~CAudioMixerBoard(); + void SetSettingsPointer ( CClientSettings* pNSet ) { pSettings = pNSet; } void HideAll(); void ApplyNewConClientList ( CVector& vecChanInfo ); void SetServerName ( const QString& strNewServerName ); @@ -209,16 +211,6 @@ class CAudioMixerBoard : void SetRecorderState ( const ERecorderState newRecorderState ); - - // settings - CVector vecStoredFaderTags; - CVector vecStoredFaderLevels; - CVector vecStoredPanValues; - CVector vecStoredFaderIsSolo; - CVector vecStoredFaderIsMute; - CVector vecStoredFaderGroupID; - int iNewClientFaderLevel; - protected: class CMixerBoardScrollArea : public QScrollArea { @@ -249,6 +241,7 @@ class CAudioMixerBoard : void OnGainValueChanged ( const int iChannelIdx, const double dValue ); + CClientSettings* pSettings; CVector vecpChanFader; CMixerBoardScrollArea* pScrollArea; QHBoxLayout* pMainLayout; diff --git a/src/clientdlg.cpp b/src/clientdlg.cpp index 1895a7515b..73b3c99ba1 100755 --- a/src/clientdlg.cpp +++ b/src/clientdlg.cpp @@ -182,21 +182,15 @@ CClientDlg::CClientDlg ( CClient* pNCliP, // init GUI design SetGUIDesign ( pClient->GetGUIDesign() ); + // set the settings pointer to the mixer board (must be done early) + MainMixerBoard->SetSettingsPointer ( pSettings ); + // reset mixer board MainMixerBoard->HideAll(); // restore channel level display preference MainMixerBoard->SetDisplayChannelLevels ( pClient->GetDisplayChannelLevels() ); - // restore fader settings - MainMixerBoard->vecStoredFaderTags = pSettings->vecStoredFaderTags; - MainMixerBoard->vecStoredFaderLevels = pSettings->vecStoredFaderLevels; - MainMixerBoard->vecStoredPanValues = pSettings->vecStoredPanValues; - MainMixerBoard->vecStoredFaderIsSolo = pSettings->vecStoredFaderIsSolo; - MainMixerBoard->vecStoredFaderIsMute = pSettings->vecStoredFaderIsMute; - MainMixerBoard->vecStoredFaderGroupID = pSettings->vecStoredFaderGroupID; - MainMixerBoard->iNewClientFaderLevel = pSettings->iNewClientFaderLevel; - // init status label OnTimerStatus(); @@ -252,8 +246,23 @@ CClientDlg::CClientDlg ( CClient* pNCliP, #endif + // File menu -------------------------------------------------------------- + QMenu* pFileMenu = new QMenu ( tr ( "&File" ), this ); + + pLoadChannelSetupAction = pFileMenu->addAction ( tr ( "&Load Mixer Channels Setup..." ), this, + SLOT ( OnLoadChannelSetup() ) ); + + pSaveChannelSetupAction = pFileMenu->addAction ( tr ( "&Save Mixer Channels Setup..." ), this, + SLOT ( OnSaveChannelSetup() ) ); + + pFileMenu->addSeparator(); + + pFileMenu->addAction ( tr ( "E&xit" ), this, + SLOT ( close() ), QKeySequence ( Qt::CTRL + Qt::Key_Q ) ); + + // View menu -------------------------------------------------------------- - pViewMenu = new QMenu ( tr ( "&View" ), this ); + QMenu* pViewMenu = new QMenu ( tr ( "&View" ), this ); pViewMenu->addAction ( tr ( "&Connection Setup..." ), this, SLOT ( OnOpenConnectionSetupDialog() ) ); @@ -274,14 +283,9 @@ CClientDlg::CClientDlg ( CClient* pNCliP, SLOT ( OnOpenAnalyzerConsole() ) ); } - pViewMenu->addSeparator(); - - pViewMenu->addAction ( tr ( "E&xit" ), this, - SLOT ( close() ), QKeySequence ( Qt::CTRL + Qt::Key_Q ) ); - // Edit menu -------------------------------------------------------------- - pEditMenu = new QMenu ( tr ( "&Edit" ), this ); + QMenu* pEditMenu = new QMenu ( tr ( "&Edit" ), this ); pEditMenu->addAction ( tr ( "Sort Channel Users by &Name" ), this, SLOT ( OnSortChannelsByName() ), QKeySequence ( Qt::CTRL + Qt::Key_N ) ); @@ -294,8 +298,9 @@ CClientDlg::CClientDlg ( CClient* pNCliP, // Main menu bar ----------------------------------------------------------- - pMenu = new QMenuBar ( this ); + QMenuBar* pMenu = new QMenuBar ( this ); + pMenu->addMenu ( pFileMenu ); pMenu->addMenu ( pViewMenu ); pMenu->addMenu ( pEditMenu ); pMenu->addMenu ( new CHelpMenu ( true, this ) ); @@ -304,70 +309,6 @@ CClientDlg::CClientDlg ( CClient* pNCliP, layout()->setMenuBar ( pMenu ); - // Instrument pictures popup menu ------------------------------------------ - pInstrPictPopupMenu = new QMenu ( this ); - - // add an entry for all known instruments - for ( int iCurInst = 0; iCurInst < CInstPictures::GetNumAvailableInst(); iCurInst++ ) - { - // create a menu action with text and image - QAction* pCurAction = new QAction ( - QIcon ( CInstPictures::GetResourceReference ( iCurInst ) ), - CInstPictures::GetName ( iCurInst ), - this ); - - // add data to identify the action data when it is triggered - pCurAction->setData ( iCurInst ); - - pInstrPictPopupMenu->addAction ( pCurAction ); - } - - - // Country flag icons popup menu ------------------------------------------- - pCountryFlagPopupMenu = new QMenu ( this ); - - // add an entry for all known country flags - for ( int iCurCntry = static_cast ( QLocale::AnyCountry ); - iCurCntry < static_cast ( QLocale::LastCountry ); iCurCntry++ ) - { - // the "Default" country gets a special icon - QIcon CurFlagIcon; - QString sCurCountryName; - - if ( static_cast ( iCurCntry ) == QLocale::AnyCountry ) - { - // default icon and name for no flag selected - CurFlagIcon.addFile ( ":/png/flags/res/flags/flagnone.png" ); - sCurCountryName = tr ( "None" ); - } - else - { - // get current country enum - QLocale::Country eCountry = - static_cast ( iCurCntry ); - - // get resource file name - CurFlagIcon.addFile ( CLocale::GetCountryFlagIconsResourceReference ( eCountry ) ); - - // get the country name - sCurCountryName = QLocale::countryToString ( eCountry ); - } - - // only add the entry if a flag is available - if ( !CurFlagIcon.isNull() ) - { - // create a menu action with text and image - QAction* pCurAction = - new QAction ( CurFlagIcon, sCurCountryName, this ); - - // add data to identify the action data when it is triggered - pCurAction->setData ( iCurCntry ); - - pCountryFlagPopupMenu->addAction ( pCurAction ); - } - } - - // Window positions -------------------------------------------------------- // main window if ( !pSettings->vecWindowPosMain.isEmpty() && !pSettings->vecWindowPosMain.isNull() ) @@ -524,9 +465,6 @@ CClientDlg::CClientDlg ( CClient* pNCliP, QObject::connect ( &ClientSettingsDlg, &CClientSettingsDlg::AudioChannelsChanged, this, &CClientDlg::OnAudioChannelsChanged ); - QObject::connect ( &ClientSettingsDlg, &CClientSettingsDlg::NewClientLevelChanged, - this, &CClientDlg::OnNewClientLevelChanged ); - QObject::connect ( MainMixerBoard, &CAudioMixerBoard::ChangeChanGain, this, &CClientDlg::OnChangeChanGain ); @@ -597,17 +535,10 @@ void CClientDlg::closeEvent ( QCloseEvent* Event ) pClient->Stop(); } - // store mixer fader settings (we have to hide all mixer faders first to - // initiate a storage of the current mixer fader levels in case we are - // just in a connected state) and other settings + // we have to hide all mixer faders first to initiate a storage of the + // current mixer fader levels in case we are just in a connected state MainMixerBoard->HideAll(); - pSettings->vecStoredFaderTags = MainMixerBoard->vecStoredFaderTags; - pSettings->vecStoredFaderLevels = MainMixerBoard->vecStoredFaderLevels; - pSettings->vecStoredPanValues = MainMixerBoard->vecStoredPanValues; - pSettings->vecStoredFaderIsSolo = MainMixerBoard->vecStoredFaderIsSolo; - pSettings->vecStoredFaderIsMute = MainMixerBoard->vecStoredFaderIsMute; - pSettings->vecStoredFaderGroupID = MainMixerBoard->vecStoredFaderGroupID; - pSettings->iNewClientFaderLevel = MainMixerBoard->iNewClientFaderLevel; + pSettings->bConnectDlgShowAllMusicians = ConnectDlg.GetShowAllMusicians(); // default implementation of this event handler routine @@ -755,6 +686,36 @@ void CClientDlg::OnConnectDisconBut() } } +void CClientDlg::OnLoadChannelSetup() +{ + QString strFileName = QFileDialog::getOpenFileName ( this, + tr ( "Select Channel Setup File" ), + "", + "*.jch" ); + + if ( !strFileName.isEmpty() ) + { +// TODO The client has to be stopped to apply recovered settings after re-connect. +// TODO Should we automatically stop/load/re-start the connection? + pSettings->LoadFaderSettings ( strFileName ); + } +} + +void CClientDlg::OnSaveChannelSetup() +{ + QString strFileName = QFileDialog::getSaveFileName ( this, + tr ( "Select Channel Setup File" ), + "", + "*.jch" ); + + if ( !strFileName.isEmpty() ) + { +// TODO The client has to be stopped to store current faders. +// TODO Should we automatically stop/save/re-start the connection? + pSettings->SaveFaderSettings ( strFileName ); + } +} + void CClientDlg::OnCentralServerAddressTypeChanged() { // if the server list is shown and the server type was changed, update the list @@ -1061,6 +1022,10 @@ void CClientDlg::Connect ( const QString& strSelectedAddress, if ( !pClient->IsRunning() ) { pClient->Start(); + +// TODO the client has to be stopped to load/store current faders -> as a quick hack disable menu if running +pLoadChannelSetupAction->setEnabled ( false ); +pSaveChannelSetupAction->setEnabled ( false ); } } @@ -1093,6 +1058,10 @@ void CClientDlg::Disconnect() if ( pClient->IsRunning() ) { pClient->Stop(); + +// TODO the client has to be stopped to load/store current faders -> as a quick hack disable menu if running +pLoadChannelSetupAction->setEnabled ( true ); +pSaveChannelSetupAction->setEnabled ( true ); } // change connect button text to "connect" diff --git a/src/clientdlg.h b/src/clientdlg.h index ff58cbbfb6..882a88cab3 100755 --- a/src/clientdlg.h +++ b/src/clientdlg.h @@ -36,6 +36,7 @@ #include #include #include +#include #if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0) # include #endif @@ -109,11 +110,8 @@ class CClientDlg : public QDialog, private Ui_CClientDlgBase virtual void closeEvent ( QCloseEvent* Event ); void UpdateDisplay(); - QMenu* pViewMenu; - QMenu* pEditMenu; - QMenuBar* pMenu; - QMenu* pInstrPictPopupMenu; - QMenu* pCountryFlagPopupMenu; + QAction* pLoadChannelSetupAction; + QAction* pSaveChannelSetupAction; CClientSettingsDlg ClientSettingsDlg; CChatDlg ChatDlg; @@ -150,6 +148,8 @@ public slots: { ConnectDlg.SetVersionAndOSType ( InetAddr, eOSType, strVersion ); } #endif + void OnLoadChannelSetup(); + void OnSaveChannelSetup(); void OnOpenConnectionSetupDialog() { ShowConnectionSetupDialog(); } void OnOpenMusicianProfileDialog() { ShowMusicianProfileDialog(); } void OnOpenGeneralSettings() { ShowGeneralSettings(); } @@ -230,7 +230,6 @@ public slots: void OnAudioChannelsChanged() { UpdateRevSelection(); } void OnNumClientsChanged ( int iNewNumClients ); - void OnNewClientLevelChanged() { MainMixerBoard->iNewClientFaderLevel = pSettings->iNewClientFaderLevel; } void accept() { close(); } // introduced by pljones diff --git a/src/clientsettingsdlg.cpp b/src/clientsettingsdlg.cpp index 83451379c0..1e3e6215bd 100755 --- a/src/clientsettingsdlg.cpp +++ b/src/clientsettingsdlg.cpp @@ -679,16 +679,6 @@ void CClientSettingsDlg::OnCentralServerAddressEditingFinished() edtCentralServerAddress->text() ); } -void CClientSettingsDlg::OnNewClientLevelEditingFinished() -{ - // store new setting in the client - pSettings->iNewClientFaderLevel = edtNewClientLevel->text().toInt(); - - // inform that the level has changed and the mixer board settings must - // be updated - emit NewClientLevelChanged(); -} - void CClientSettingsDlg::OnSndCrdBufferDelayButtonGroupClicked ( QAbstractButton* button ) { if ( button == rbtBufferDelayPreferred ) diff --git a/src/clientsettingsdlg.h b/src/clientsettingsdlg.h index 2bb04f52e7..6f5cfddf34 100755 --- a/src/clientsettingsdlg.h +++ b/src/clientsettingsdlg.h @@ -96,7 +96,7 @@ class CClientSettingsDlg : public QDialog, private Ui_CClientSettingsDlgBase void OnDisplayChannelLevelsStateChanged ( int value ); void OnEnableOPUS64StateChanged ( int value ); void OnCentralServerAddressEditingFinished(); - void OnNewClientLevelEditingFinished(); + void OnNewClientLevelEditingFinished() { pSettings->iNewClientFaderLevel = edtNewClientLevel->text().toInt(); } void OnSndCrdBufferDelayButtonGroupClicked ( QAbstractButton* button ); void OnSoundcardActivated ( int iSndDevIdx ); void OnLInChanActivated ( int iChanIdx ); @@ -113,5 +113,4 @@ class CClientSettingsDlg : public QDialog, private Ui_CClientSettingsDlgBase void GUIDesignChanged(); void DisplayChannelLevelsChanged(); void AudioChannelsChanged(); - void NewClientLevelChanged(); }; diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index 36253537d412b4d14acbfa5a43a2fb8fc74169eb..108cb064fea414d4424586504d550f1c6c131154 100644 GIT binary patch delta 4173 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 EKTD3?od5s; delta 4106 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 diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index b44e4b68d1..6540611444 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -189,32 +189,32 @@ CAudioMixerBoard - + Personal Mix at the Server Eigener Mix am Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Wenn man mit einem Server verbunden ist, dann kann man hier den eigenen Mix verstellen ohne dass man etwas daran verändert, was die anderen von mir hören. Der Titel zeigt den Servernamen an und falls bekannt den Aufnahmestatus des Servers. - + Server - + T R Y I N G T O C O N N E C T V E R B I N D U N G S A U F B A U - + RECORDING ACTIVE AUFNAHME AKTIV - + Personal Mix at: Eigener Mix am Server: @@ -789,48 +789,53 @@ LED Statuslampe für den Netzwerkpuffer - - + + C&onnect &Verbinden - + + &File + + + + &View &Ansicht - + &Connection Setup... &Verbinden... - + My &Profile... Mein &Profil... - + C&hat... C&hat... - + &Settings... &Einstellungen... - + &Analyzer Console... - + E&xit &Beenden - + &Edit B&earbeiten @@ -839,23 +844,22 @@ &Sortiere Kanäle nach Namen - None - Keine + Keine - + Center Mitte - + R - + L @@ -930,37 +934,53 @@ Die CPU des Computers ist voll ausgelastet. - + + &Load Mixer Channels Setup... + + + + + &Save Mixer Channels Setup... + + + + Sort Channel Users by &Name Sortiere die Kanäle nach dem &Namen - + Sort Channel Users by &Instrument Sortiere die Kanäle nach dem &Instrument - + Sort Channel Users by &Group Sortiere die Kanäle nach der &Gruppe - + Central Server Zentralserver - + + + Select Channel Setup File + + + + user Musiker - + users Musiker - + D&isconnect &Trennen @@ -2475,7 +2495,7 @@ - + No Name Kein Name diff --git a/src/res/translation/translation_es_ES.qm b/src/res/translation/translation_es_ES.qm index 5ae494d591b61e2a2c7dd15b5753278127e3300c..c2ae6ab66a82c066444739ff2c85c4452ff50bb1 100644 GIT binary patch delta 4218 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 delta 4106 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 CAudioMixerBoard - + Personal Mix at the Server Mezcla personal en el Servidor - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Estando conectado a un servidor, estos controles te permiten hacer tu mezcla personal sin afectar lo que otros escuchan de tí. El título muestra el nombre del servidor y, cuando se conoce, si está activamente grabando. - + Server Servidor - + T R Y I N G T O C O N N E C T I N T E N T A N D O C O N E C T A R - + RECORDING ACTIVE GRABACIÓN ACTIVA - + Personal Mix at: Mezcla Personal en el Servidor: @@ -809,74 +809,78 @@ Indicador LED estado buffers - - + + C&onnect C&onectar - + + &File + + + + &View &Ver - + &Connection Setup... &Configuración de Conexión... - + My &Profile... Mi &Perfil... - + C&hat... C&hat... - + &Settings... &Configuración... - + &Analyzer Console... &Analyzer Console... - + E&xit S&alir - + &Edit &Editar - + Sort Channel Users by &Group Ordenar Usuarios de Canal por &Grupo - None - Ninguno + Ninguno - + Center Centro - + R R - + L L @@ -951,32 +955,48 @@ El procesador del cliente o del servidor está al 100%. - + + &Load Mixer Channels Setup... + + + + + &Save Mixer Channels Setup... + + + + Sort Channel Users by &Name Ordenar Canales por &Nombre - + Sort Channel Users by &Instrument Ordenar Canales por &Instrumento - + Central Server Servidor Central - + + + Select Channel Setup File + + + + user usuario - + users usuarios - + D&isconnect D&esconectar @@ -2499,7 +2519,7 @@ Ukulele Barítono - + No Name Sin Nombre diff --git a/src/res/translation/translation_fr_FR.qm b/src/res/translation/translation_fr_FR.qm index a455317a3062dda046732614f7758a0ee186fd7e..ac7ee4909873ca57b13f139972f6c21da7b1eff3 100644 GIT binary patch delta 4105 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 Lb|NT@4GH=`^rqHL delta 4145 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 CAudioMixerBoard - + Personal Mix at the Server Mixage personnel au serveur - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Lorsque vous êtes connecté à un serveur, les contrôles vous permettent de régler votre mixage local sans affecter ce que les autres entendent de vous. Le titre indique le nom du serveur et, lorsqu'il est connu, s'il est en train d'enregistrer. - + Server Serveur - + T R Y I N G T O C O N N E C T T E N T A T I V E D E C O N N E X I O N - + RECORDING ACTIVE ENREGISTREMENT ACTIF - + Personal Mix at: Mixage personnel à : @@ -805,48 +805,53 @@ Indicateur LED d'état de tampon - - + + C&onnect Se c&onnecter - + + &File + + + + &View &Vue - + &Connection Setup... Paramètres de &connexion... - + My &Profile... Mon &profil - + C&hat... Tc&hate... - + &Settings... Paramètre&s... - + &Analyzer Console... Console d'&analyse - + E&xit &Quitter - + &Edit Édit&er @@ -855,23 +860,22 @@ &Trier les utilisateurs du canal par nom - None - Aucun + Aucun - + Center Centre - + R D - + L G @@ -946,37 +950,53 @@ Le processeur du client ou du serveur est à 100%. - + + &Load Mixer Channels Setup... + + + + + &Save Mixer Channels Setup... + + + + Sort Channel Users by &Name Trier les utilisateurs du canal par &nom - + Sort Channel Users by &Instrument Trier les utilisateurs du canal par &instrument - + Sort Channel Users by &Group Trier les utilisateurs des canaux par &groupe - + Central Server Serveur central - + + + Select Channel Setup File + + + + user utilisateur - + users utilisateurs - + D&isconnect Dé&connecter @@ -2491,7 +2511,7 @@ Ukulélé basse - + No Name Sans nom diff --git a/src/res/translation/translation_it_IT.qm b/src/res/translation/translation_it_IT.qm index 4c91e8accd0d406b493ab1ad1462600a6dea0fe8..3a97174fcc2dee847a1d049c7c66f7df4a69f827 100644 GIT binary patch delta 3855 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 delta 3837 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 diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index a03582e430..f5beac05ca 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -193,32 +193,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mixer personale sul Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Quando connessi i fader permettono di regolare i volumi in locale senza influenzare l'ascolto degli altri utenti. L'intestazione mostra il nome de server, se valorizzato, e le informazioni sullo stato della sessione di registrazione se attiva. - + Server Server - + T R Y I N G T O C O N N E C T I N A T T E S A D I C O N N E S S I O N E - + RECORDING ACTIVE Sessione con Registrazione Attiva - + Personal Mix at: Mixer personale sul Server: @@ -639,7 +639,7 @@ - + L L @@ -861,63 +861,78 @@ Led di stato del Buffer - - + + C&onnect C&onnetti - + + &File + + + + &View &Vista - + &Connection Setup... Setup &Connessione... - + My &Profile... &Profilo Personale... - + C&hat... C&hat... - + &Settings... &Settaggi... - + &Analyzer Console... &Analizzatore... - + E&xit &Uscita - + + &Load Mixer Channels Setup... + + + + + &Save Mixer Channels Setup... + + + + &Edit &Modifica - + Sort Channel Users by &Name Ordina canali per &Nome - + Sort Channel Users by &Instrument Ordina canali per &Strumento - + Sort Channel Users by &Group @@ -926,37 +941,42 @@ &Canali in ordine Alfabetico - None - Nullo + Nullo - + Center Centro - + R R - + Central Server Server Centrale - + + + Select Channel Setup File + + + + user utente - + users utenti - + D&isconnect D&isconnetti @@ -2451,7 +2471,7 @@ Uculele Basso - + No Name Senza Nome diff --git a/src/res/translation/translation_nl_NL.qm b/src/res/translation/translation_nl_NL.qm index 3ab7deeb95cf200acd1eef4b95aa1b15217792a4..9b71ffe7f80d814c95099fe8523b0b13f6516f5e 100644 GIT binary patch delta 3806 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 CU~hr| delta 3880 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 O`^F*Uq(cY`81nzruYkV* diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index da070a672c..cc3a713a11 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -193,32 +193,32 @@ CAudioMixerBoard - + Personal Mix at the Server Eigen mix op de Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Indien verbonden met de server kan hier de lokale mix ingesteld worden zonder dat hetgeen anderen van je horen wordt beïnvloed. De titel toont de servernaam en indien bekend of er audio wordt opgenomen. - + Server Server - + T R Y I N G T O C O N N E C T A A N H E T V E R B I N D E N - + RECORDING ACTIVE GELUIDSOPNAME ACTIEF - + Personal Mix at: Eigen mix op: @@ -631,7 +631,7 @@ - + L L @@ -853,98 +853,118 @@ Status van de buffers LED-indicator - - + + C&onnect C&onnect - + + &File + + + + &View &Bekijken - + &Connection Setup... &Verbindingsinstellingen... - + My &Profile... Mijn &Profiel... - + C&hat... C&hat... - + &Settings... &Settings... - + &Analyzer Console... &Analyzer Console... - + E&xit E&xit - + + &Load Mixer Channels Setup... + + + + + &Save Mixer Channels Setup... + + + + &Edit &Bewerken - + Sort Channel Users by &Name Sorteer muzikanten op &naam - + Sort Channel Users by &Instrument Sorteer muzikanten op &instrument - + Sort Channel Users by &Group - None - Geen + Geen - + Center Centrum - + R R - + Central Server Centrale Server - + + + Select Channel Setup File + + + + user gebruiker - + users gebruikers - + D&isconnect &Afmelden @@ -2439,7 +2459,7 @@ Ukelele-bas - + No Name Geen naam diff --git a/src/res/translation/translation_pl_PL.qm b/src/res/translation/translation_pl_PL.qm index d69e0ce1e447218b325c77e6fd6ca5493df26104..ee1fe75d12567321d41af28b091d9691669828cf 100755 GIT binary patch delta 1373 zcmXApdr;I>6vw~&<9GM{;;}9dc`m^M%PX^NK_Mp)77UbZV!4f}*6*=`fz~qnIvO7R@HFA5CiEh}QJO(@-09#KZpx=qS!G(IIBR~Bt z5HpFw4SlrUj&++T*PuFV{C9>VNKqVNp}G{qE{!B6}UDF&j5QX^cz8*Zl*;HVOLK?LhDz z!O*{o_D>2?KUD!y4MN7m5^C*jp%G<7o$%p8E>T8dpt~Fpt-|bX(&RtN=?L-)-r5?# z@T|{;>Zd8`Y%!hc1L1(UId1?+P8Dk^w~!);$Gp^!kUY-tZKA8V2hhIEsh5iG{ohcM zE5-Kw0~9z*?DSAz<8`sCx1QeJqNnmGAkE~A=@N&nJy0Pu`2Pol)jK~IjE+O%y=%i{ z0~0gkkly$;EP8Db*&~&uX(%sABTKh`OtyHDt(YsI+TLJ?cATO2Wvux|9qqft+Rn(R z{eQC)9WN1;oMF?<(8Y+hCX1!Tj%K<8T)p#39$OT#vcra+4QGhP_xcS z1NW0jV%JEotf%~?mpIJ_rT3Z)Wbh2x0UF*@pG<93pn=#q_J${<$CrozK$ zj4blxgFllT8)v*I&)fbr5Z5ZN`07gq+mJL#B2rRnV_sClQAIYT2<1si9?24#6J4Nqv7vZAn`s$Hn8n4fbGE9zWhJ$7Le)LU z=s-VJ|2cA1K&R?%A+57{&Sn~cAB;1(&g%I$u1hbWt@xU>R)~*p#d}M`_(TX4O$5c9RM^O+n(_it zsI_wHZfa%obcZD|ZC3pR%|$t9pxU{Y8Dl)!KReIUrO~W=X5crfqg}VUhQcd*b=z)I W+Y%yo087d)e#UBa7q=MZO#cB(?qDqd delta 1431 zcmXApc~n$&9L4X!z7 zi)_CL`hOj{ZvH@|2Dz^9k76r3AxE^<{zbsZU0QqRbPBO)1AZ>z_f~Dv zwOAlnr>($3_A^1d*JUW+F>P0SJ|M+u`&X9od=Jh41B?vTI!j9c`-{3m#gpiKg_N+B z4z=s0c^O?m^n9tL@L4K?w8hEdk9tL=uS06cJ_(qYskFvQ&1=7<(`8c2%=J9DNZNmn z2YcR=K0H;<=kwCJ!aBe$*~Ky{?2)?TxPkX{l|COy7du>~E|z|DFh1BP_4s5_z{k?f z6WvTfrm&~dLD*^$GH)2XIHB;+1uD&7`}1G89ir+8!W4nF6Ls*Fc9^M<(51o8d6K=!s-rTr6e=g8;m z;Q=?VwaiY)YPVxgvLbG6Dnk#s-K?}T-#L2kR0@f?q@R8IQ9y~%7l$&=B0|6I3fKD| z)c2ZmsXVev-`kc%zU4Te^DG-@$XN6Z6Y-g$;EU6oeq3dsWGLy|3>Zoc8`GU^fR|xY ziw_GuCeVgp zxxAgS-jzQ+dx5v8Lq3+fl93EfmT#}3fRIGl+3a9_vWDz- z(mmGgC6%Eol$PqLjAXb~X+I;l;V`B10Hfz|Nx7Oim6aG$85F7fE&WDE@h0zA>A=)y z@~Ng%-=9=Q)te$Bih00UQ~Js4{0|&8IYP~h@?=xHW(6CWuX6N6(~Z9<)b4M(RXm>t zbtY%7E0SY%?irOVwSS&_{wyjq$EmaonDs;at3{1Br<7mgWqnhn*Cg{3H&|lb74y>F zLljhFcGz8x2hI2Qe*m~wS*CRHk_T_H%qXEC<0;E?U$eF0k1qydYjq5{7iPf^%Ta{Z V CAudioMixerBoard - + Personal Mix at the Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. - + Server Serwer - + T R Y I N G T O C O N N E C T P R Ó B U J Ę S I Ę P O ŠĄ C Z Y Ć - + RECORDING ACTIVE - + Personal Mix at: @@ -536,7 +536,7 @@ - + L L @@ -706,98 +706,118 @@ - - + + C&onnect &Połącz - + + &File + + + + &View &Widok - + &Connection Setup... &Konfiguracja połączenia... - + My &Profile... Mój &profil... - + C&hat... &Czat... - + &Settings... &Ustawienia... - + &Analyzer Console... &Konsola analizatora... - + E&xit &Wyjdź - + + &Load Mixer Channels Setup... + + + + + &Save Mixer Channels Setup... + + + + &Edit &Edytuj - + Sort Channel Users by &Name - + Sort Channel Users by &Instrument - + Sort Channel Users by &Group - None - Żaden + Żaden - + Center Środek - + R P - + Central Server - + + + Select Channel Setup File + + + + user - + users - + D&isconnect &Rozłącz @@ -2137,7 +2157,7 @@ nie jestem pewna Ukulele basowe - + No Name Brak nazwy diff --git a/src/res/translation/translation_pt_BR.qm b/src/res/translation/translation_pt_BR.qm index 9185e3e712b689b0a855591fa14cd99a13339f95..4b4a9b01248ff4e3d430bb04d3a486f0528ba702 100644 GIT binary patch delta 4231 zcmX9>c|c8h8-9N0-gC}f&ONtbQbNe`S(9YRo~>1u5>iPEMIwYTbn83=^M0hrYT=mgwxBy^aHpZ^2X-G=hj2CyG)L0Me}tQ-u!TLK;C4*2f3ftecccDsQ0mEau`z(zQM zA8rKh?*Tt%9I&T5c$dClL6P7+b_0esf#7{cgZ)SkOr1nn3O-&>r@sh3ou>mi5HHXFgaoU7w5tvrs|k>Iqy*g%BSIloUX`d=?0?g|7ErU~!HKOV^{@ zNhQ!@W)m8-n1$zTZ zy#;RllED(s!fnY2u-=7mJG%x5T@3dtsQ^0wk9gWSZXw1F-VJ7E#Mlc&$@Ek3Ow0pD z&W2~oY0AfGjGufS288CoYbxd7{#;D?S_{mQG4&O3`}H^Yw(9|Az6kz8dkQri{`4HP zxQ`&WFrcyo%eNB8A=9z(Y#Oj82HTg=24R-iwVtSzVz8&nEkH93nZ0ZQML4p~)POZ# zi~}RR!N&B*)$2tDuxTxEBgqx`d7BB#QgE{qaXM=yZl6p7-b}-zOC+v)qwsuk7a(>q zUZxHQTfPI;4FgFuZ<~+>oI_pLr@%)oyXPum&Q=0-*JXzwC*E& zF7~4g%unRjAcXh`=6+x22jpaNJ6tDGQM9_o?T(`=TR5D{`YtiepIp`sYv2z(m!r1_ zEO&7^pGf>|k8?*OD9(0_%d4IW<|1aBI*d!~2 z3)Q6g8bzDWbf6jI6zz}C23wb+a0nO*HpE#mu_O&>Y^7M_;{Xi3r${&v419U2SmRa% zED#kb`~Cp?X|v)`v?Hx|TJet!t+PZ>)IJCydk9d}mOD@p?zw7==G(T+RQkDJ1`CW; z`tPa&i-=avaX3vSb;P)zw=nEfE_by9()7x>$DP4O`zezf`U2%0O<4Pfa;q;{K)*~A zhN_giVsBDCxGHzYxd8k2DKo~dB>J~0vu=@>y^d)@=9aF^-scaj$W>-vPX_L;Qyx4= z?C67)hq}cQ-A|N0MhZwM5k0@*FhXY5;ly&Y&K>yCX{EZ5G#pfnu zw%vGhmr(M^`Fx8`NtC9*X?(|tKIFPie6O}7r0)B9`*f;<`CJqa3!~E*-om7Cy z{F=xlFvnbeUEzP}pm+HVfj6mwa`==-;R&oiBB&lyYU`Z@ZNJ+< zUpK)rR!@$h6IvdpgTIRrJdDFsZ47?G4D(myOnTvGK|y`(n-Jqm40+fJ3F9rOjfDu? zjrDXsOJVnEvZP9_kdZ(E6j}*cjuLtMI3YWV3TLs6aBOcNApI@mdy|GO{hE+9J1U&b z3I}qJ2p8|sxonI=L6j}fCP{diXigd|trRNS5u-Z?2sJgd@t8%z`_loGs^h{3D+e&& zaN%QH%790a@U1nawpEzO5~(Y>)r;IqS}?I%H2<5PPZ=Y&9!DBn)Ix0ILJ|p5i~Smw zlD7qjPHoeu(a#e-+vb2dcMvCD7y#HU6epPnkOuuq#3@XMQunKW{17%=# zgt*Y3m|O1JgslAwF}e#~>-LCC#um}IlP|_A0>Erfh?@$i2;$m^$(x6Rg{~G;ALaoc za>UJ&C)iALu_^U!H;CIVSyQz(iYHQOENZ?(JoAq&X>gpGSg@*`ZoCyA`;!Y>I*E^u z4kHxBr=QM&wI3)}w6&($Cr>3ksG^A>LuHmbl&Z8*)hqrvQ7Jbe`>~y>_k_bVZ_QNM z=j4G2-YWN5MbsvO>Rl{vAd5d?4scU(Cjk(xIk2usiK+|fGR5d zDiy^$RaA)^VTS6bcS%6cMAa&{25KY4sJG2R15K z^}pa4FfSX`#bkOfd$8(K%)h|5Gio`%3b=Ap-Mq&lu#v^;mWHBDl*@Q^$N4LPy3Xou z6Fh-=pVW@a_E2Qk)kDlE((P92p;koYs!;V9_5+DHRqY;n0%&km`_>PoNv6L#cw-${ zi_Plb%I6gEGj+tY7+SARy=JBjFzFBV+96~kYG?I^_O!9uLcQ_ROKLNH)P}wH(nt(d z>O*&yQbV*;AHLC%L|C9cRY(&@h*6#IPcP{2s4ul8YWv+)7xktH#{HtMSVq*EomV&P zB7>`)uKqlXBAxE6;YPWV@BFRNf1^|>?rS=1aiBJmrg6DS>s2l^VcmL-&o)ZY>~{uD z$gF21vMNnT9lfx&QWNS*?W3kl6E?np%37%jtDucEw>4q)AE`xj)I?0XOCq|iiF~#f ztmiz<{I9=&xhHEDxKJNkZ=w0wl@1s_N|WJjNjWaiWQCNGR<>!f-%|iBQ#8kXj#KNf z(44U2flum4&8c;ZfEc6EU$QVbX$pS`0P_jcl&qrT{AY&dpM&3z;i##wBc6ONYhJ6V zMrQQXDznHPCdpcr!kv6rqc!Vj3l{!a+kfmr;MHTTvr{Zs++(emWe*_3S3A>wFcDv^ zjp~yJJRP8o`aX&dU#E?FSVUh7541~PdyyM3b8X_PAj+h*_SXtBaQ9Z)-|R?oJ)UW| zj`@x5-_UN$@C4?r)NUVEOEzQGgsd6UW~`?f)?A_8KS%~!R--+6h2m2bYtJ|}0(rZ% z1^X}4x5+GRVKpVB-AJ*wWUqS+$Kxb4I#8af2nI#GxFd4 zQjZ?dLIzErNloxEKMvR3A_9*`KQP^mq z6g@E2L7M-ZHrl&hT5zWrEY?@r^ptveQcua)g(6WOmA14$O(W1S=_I2R%o=6F^0(5t zQ6%Aj2=r~Gczj?Y)!}lK{S9P;3D56)6x&|qsttb2RN4N@@s5K6XTnZh2PelJ6!~v4AWhj z8BCFu>WYHsdRn^fx+S&LPrG$5D@m-2@^!BR>HfmWx_1LT>628{8ESJq!R+E>v9TGY z;9R50K}45Ad_SL5|F9q>t8o zdA=eS@IET9SVIf1jgwcr*-a65lw%jr^x12*Y&8E~B|dU`JyAa*!h}IbDW|oHi z`k@_Sf%v(4r^_|uagyHSCsL}NjehzaI_0YK`WcCY2Yc#gUZbvIK1jd3WB|?b9rf$B zaMXUP^uLOcfKZ{|Y!N_tzpp<_Z3rV%^=Azvv{6C&TS=Kz84dc|=H+DK8hzzQPvFl~ t{RcCdD#YGR-_Xw&m>R5a$c_Z-yPBNB`06jKA2efEdIcQw3SiI2{2z>_0B!&P delta 4167 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 diff --git a/src/res/translation/translation_pt_BR.ts b/src/res/translation/translation_pt_BR.ts index 862f40f87d..6d1fa13af9 100644 --- a/src/res/translation/translation_pt_BR.ts +++ b/src/res/translation/translation_pt_BR.ts @@ -210,32 +210,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mixagem Pessoal no Servidor - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Quando conectado a um servidor, estes controles permite definir sua mixagem local sem afetar o que os outros ouvem de você. O título exibe o nome do servidor e, quando conhecido, se está ativamente gravando. - + Server Servidor - + T R Y I N G T O C O N N E C T T E N T A N D O C O N E C T A R - + RECORDING ACTIVE GRAVAÇÃO ATIVA - + Personal Mix at: Mixagem Pessoal em: @@ -803,48 +803,53 @@ Indicador LED do estado dos buffers - - + + C&onnect C&onectar - + + &File + + + + &View &Ver - + &Connection Setup... &Conectar a Servidor... - + My &Profile... Meu &Perfil... - + C&hat... &Mensagens... - + &Settings... &Definições... - + &Analyzer Console... Console de &Análise... - + E&xit &Sair - + &Edit &Editar @@ -853,23 +858,22 @@ Ordenar os Canais por &Nome... - None - Nenhum + Nenhum - + Center Centro - + R R - + L L @@ -944,37 +948,53 @@ O CPU do cliente ou servidor está em 100%. - + + &Load Mixer Channels Setup... + + + + + &Save Mixer Channels Setup... + + + + Sort Channel Users by &Name Ordenar os Canais por &Nome - + Sort Channel Users by &Instrument Ordenar os Canais por &Instrumento - + Sort Channel Users by &Group Ordenar os Canais por &Grupo - + Central Server Servidor Central - + + + Select Channel Setup File + + + + user usuário - + users usuários - + D&isconnect Opted by Desligar instead of Desconectar to keep same keyboard shortcut Desl&igar @@ -2478,7 +2498,7 @@ Ukulele Baixo - + No Name Sem Nome diff --git a/src/res/translation/translation_pt_PT.qm b/src/res/translation/translation_pt_PT.qm index 7679c927c33b657b06e6db44028535dae8abb7b0..5a958b6ebf2899e1511f8792cb2380e58cdf4cce 100644 GIT binary patch delta 3869 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 delta 3852 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 diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index cd97fa8943..917b326761 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -209,32 +209,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mistura Pessoal no Servidor - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Quando ligado a um servidor, estes controles permitem que defina a sua mistura local sem afectar o que os outros ouvem. O título mostra o nome do servidor e, quando conhecido, se está gravando activamente. - + Server Servidor - + T R Y I N G T O C O N N E C T T E N T A N D O L I G A R - + RECORDING ACTIVE GRAVAÇÃO ACTIVA - + Personal Mix at: Mistura Pessoal no Servidor: @@ -801,48 +801,53 @@ Indicador LED do estado dos buffers - - + + C&onnect &Ligar - + + &File + + + + &View &Ver - + &Connection Setup... &Ligar a Servidor... - + My &Profile... Meu &Perfil... - + C&hat... &Mensagens... - + &Settings... &Definições... - + &Analyzer Console... Consola de &Análise... - + E&xit &Sair - + &Edit &Editar @@ -851,23 +856,22 @@ Ordenar os Canais por &Nome... - None - Nenhum + Nenhum - + Center Centro - + R R - + L L @@ -942,37 +946,53 @@ O CPU do cliente ou servidor está a 100%. - + + &Load Mixer Channels Setup... + + + + + &Save Mixer Channels Setup... + + + + Sort Channel Users by &Name Ordenar Utilizadores por &Nome - + Sort Channel Users by &Instrument Ordenar canais por &Instrumento - + Sort Channel Users by &Group - + Central Server Servidor Central - + + + Select Channel Setup File + + + + user utilizador - + users utilizadores - + D&isconnect Desl&igar @@ -2475,7 +2495,7 @@ Ukulele Baixo - + No Name Sem Nome diff --git a/src/res/translation/translation_sv_SE.qm b/src/res/translation/translation_sv_SE.qm index d4d61e788564c997bcdac0ec6bf77d6a94203371..f037a488a21e598049d860929cb473a8331cb83d 100644 GIT binary patch delta 3929 zcmX9>c|c8h8-9NG-gD1g&b>EF6N3uzAtJk&h=~?uDOxDmmoZIQK6{s;naL8#)+Y=@ zh{-x*$Rv`AET4UBHMVS%50w`3J-L59_jG>eocDd+_j%s8r2Epnd(xVQ*2Mr?0cRHx z2Lt_P+AwUL4GZoO1AsF$icf1&~GoDMZ)afbJ;&%rhIkf#68s z%L~BBIAVnj!+9o@XRO{GfQ1Wzi~i88JOG?q0L|8AK)ZMwhQ5L3=i@-dDrlaq0jfQr zd3_t0y#W%>pwZWmT(1LRCm?m&2^4jO)Grx0KM>NuAq-$PB%f{&?yDdT-o*fdA&q2E zA61aTM!<@XoggijizT#*HM)L>}HS)PwVP#CE`Z$RkBG9dg6!k)#m1|?k(?%bZ76d^*} zoGBI~f(He>FwTz!y_JZCspK@&grqZDfdwnEZ4O^N>LGTnCYR;Cu)EDQK)(!oI=TUB zHPTPN1!`{Lz<^)~=TQ7N(HDrmY{PTexY~*oj_QT$nTf2yZ95c`66E*6laMyROgEHl z>IdOF3a_g?fV?K3QMmny^0tr2VXctfFe6opFcp!3isPc!w>tpm9>S;VGYHdc5wYJH zn6g8RPnZETd?4nI{EZ)IClUwS0pGP2Niq}LmLZad*IFTl7Km*@R{-~Nu|3lf;$Pjx zp8C@Oxr;crHWgIn;<8^_$YosSc6Q~Cbzp)i4 zNmb7p*%j!XtByZ09(Wp~PVl=#>Sn7q?E4SIz_sc_vwJ~A>{Z`w!52*%s4lzD%s1{) zmp$Nfo7BnwXq>Fhn$i9R?EL~w#LiL(k9f^DU9+i;A)0y9qu2q^%uAgGJnXMo=u0&w z-q5VC>IPg$v0>3IO)7N(w=p&hJ*nBb_$sydL9=U#53u~GJmlE?otfOP>1 z*H-EiaTKESKaywl5C|(?NP|AKB3pVX*g^$frE4a${3#u!sAx9^vRj(=l^JmAAbr!V zDV6u5^j)3Q-8x8fUq2+@Nz(jV(ZHXOewz9VU#yi9q7xw+osw1-eoyaNC9R1fuLaAc z4aEE$0;?Cajrhb~lNNOS3p%xrZKK6><*Gz&<3AYjy&`Q`z$L)+wKn1g zU(n-*cC7s~np~JRE}TrblxpLLI&iMIYPTgR?TJ4*OR@RwsO?w$$?H85Y4B{!*hEAZGGes_Iz+? zjU1Z3jB7)0Iij7OmJu$GsUqb)Q{|ZvWbC`8pHb-U%Cp<>TFI8@)G=l`A+OD6Q_s91 zuTP=NcUdlPD$1g(AD2^tnq&N@8A0pqvc1{IS@K``MDFH8(`Ea_e&xAztq_s^#m?E=sGTYLgo}3epsS& zA9k2aPjg-8j4a@FbDjTW2Kd2Z)rB;s+SjkpO*xkf)H`RxvemlSx(E8+)x}QbMl*Yu zF7}2WQPItNlL)k)ulvETif+*sjlv{PlhiL{SQM!ZjN(iR_-MRHVmpV(A7xzEl zc~ialR4H)0R^Ry2T9!uAyTs64imfB`?S=&cBlFPb83o)cP4ij6 zn=E}&bqRawrGD?7tt{!E`a?Ha@^6Rh5C7MN`gg9;pDet_kv~9xDuNGGF4E^YF>|*y z`b+MN*gIYSeEub>AxK}flLl0js;}vr$enMD!SadsUmY>D+}xFJ9&hlu!1vtpuwikA zVdR!9h+Ync36meQM`{fd%2}e3E{2J|8p_tyFlA^y^{<&`nDU$-c(=kZrSd(gJ7kzX z>M!=f_lD@ldm+s6hM12(Qf3nkGkiEt!tD$TeEH!B7eiWbBVa=tL;8f<^wo63{&x)A zL2EcR@(&t#U&Dz`67aZ*;p9pt78`HKvU8(MGYx0IpaC^pZ^-{Oi~6rlHx$;3gm7(d zc;1N=`5!jC(6h@sg&Q^L)U}_tQK$Cjva`@==iF+{*CV^AY5 zRU6J3Cw1-vyiGI4cF6*+d~1v?Vq%_`jB{TEfz4rD@xwTvcC&HS^JPrPWL($D$|h>v z!#auj2&y-*0+qlkZQx~>Bh9x{kgS`HvZb%3^6Fjn0cO=srwjDd({FN z|1swOTEGQ$pRw>YOL4ZB@yc^E13dB>MT_UgJNxcYE%S`U{)6bKHOAthd|!R7vDjMo zqx`V3Li36Sv`VR8b{)cTs?zX?3c~J*(rghKag`Ov)oi-r`kzs>^imwFIFWD6P}-K( zr(?z`?c2|00{avnZyhkhS@Ao=nqQQa;rX8QlfRUR4Gdh&Ql@1#W=R_>(;l%D0ltcL z`bi#WpQFS);fGRElo>a#KnzY$);7|CbW``284yDZCjS+Ql-m?j$UfF| z#sM4VZ#PXG!jieQvtj50(=-PLe*K_nMnx$dbc|`v0Df?c!L)h9J8o-pOutNt2HGcI zH`!V1n@+uDWA%7w%E`V2q(3m_O&U*|%{5&b$Lk@vrpt{u*&h3uN?!6@{~@LqQT+R) zi1A1+H*>|ac(z;&{QJJetKcoI>4;_UJhoMv zHdt6QF8h*aD*V=2Zz1LpbFwM@b zjnN2`Lz*;=G0re$l1nKPXNYD{xu#)UQmKUVYX9}@y?)>NzW06J=Xt+(-MlGmxg~6V z-}DuL0l?W@!pXqcL<@$Vvfz1%&>yh2B@6;4jIdzXHVam02&Vx(V*p_mkg*+b7zt>O z(&K30+hxG?2%yIWU}iF5iv`1IeF&{FO$Y;4uLdrD3V!2HKxq#6Jt@GTR11dMfdBqC zprru(!_7eZV(?F^f#qi)&>C2ehv0A(2(5?UydS8Y2VtxkIG+e%;uH#C9|Z4zfw>ew zn0$Z&m=0m)1Yn#67vQxMgwPql>u?Au2Fhd;ge(E5C?rw~r zR64V%9X^q@l;mvqoS`#XHo$k-cCg^S@I9SI$xVUZ`JDhu#N-s(J82^PM^Q3uf$%R$ z1#^l1a}*BRUjd{P`m0fE& z3nnjSx2JUwuZ`^f{Cwa^8mpgH1UB8%yi{d04dHZ#cEB%?>(Wfxz94W`Ws`vNK(2>k zO-b`y-#euD7tgsdcU^(jrCdlVB_F(!3mZXXdbMx~uj0V8nVe}=1W7)RTl-Q0B4fEU zL;^3zao=v74eY7s_W6(^yBoO!>o$XVb>nhL4KTg^Vchcd%z=3t#DaS=%y$iYW!i9jghPxYd7|hX%Yfd6r?A&0%^M|<>6Uk?G z4%fDNB~TK>wO#N8{@aafw|@ehn5$AB4h0MEuTqyh#R3*QRn_|y1u!E?Wp_N5^x2|v zi|_>NIYbpywFjs#S0&AK1BR8TQVSLU4|c24d@F&4`&2s)eFrx2r0VD8?zG`G)s4Qi zPi&&9=@w=FZI!C2hThxhY`)Lin*90Me&wX<7CwCc6EKe>{9?CaQvGUv<&wE19`GwO zlSmt%@T+~Cfp0i|d)vRL9;Ftn(fEwM1|(|MLY$AUcGzjT=3_@|(}B^xHVbs{r_3s&A#$c`rAg8}K(QMU^HgJzPidkIdq zk)+#a!q6;<5@niZIv)mPYTow6h?&~1#|5oc(zXgV@6?8#{l9_5~dr-ZGQ|A zW|~P58MB4CagG$oRUvk?VqT~2<{l<|`t%NQUL>r#9tZqBMEGjaf53*i3TbiaVAhX? zjTN6$1O>w8xx{VxF=0nt4W%~Nd{J#QnT5Rv zuNEBMP(HiWLMmbLEw!*OfSUZejcVPntH2Nkwe?zRux*9v?#C&-Te5kLXmtNlog7Bp zYCunQ>Qp1Odn7W{yIy;rZEL^D0b(cxj-PCyrB=d2(=8K|H8mm5? zy9n67$NZ0IG)+`D^dSPwkJOEg?>gXF^^4*NYEb{EU)mB;1AbG#?M2k`T9Iv_*6kH7 za`hBq@>tR8cUreTSnM^0G~m@B_V%U{xy%uVwS7ugf~V+ZyNB+%CNaP^AIvU83@RA` z4D=RfSkZfd_F_nG3W;@cj2J#hBD1d-=d=-bBg)0Za7z7?!=1<^jkw&N{>#PU3ja#L zP#|tCBk?71;`R*cyspQ@owY^4?FV9p902AvNVL>yhq(Kk4Y{O7EZ9ktLD!GPQ#TxG z0{C1k`?7}qe<9uucZG@JPx1DzW2k7m#JlZhz%&tJgDt%{PN$J?Jt5YtHC>K+0++^X zoKo&nabyd2ZgeMKn$2^TjbOH` zG^N{VU1pZ%T=FxZ!ADX~J^>0Gr0$hlsWgJrKc4zR-RIJvzyM%DvoyL31-@C3JbMr` zK?9_T>^&Mm+$6t+1;AaS6xM2@1ufmB1zVbFB=C|JJfaLclB6ZGl8I7RDJ`lm;CoN{ zdh|OxCP|y^l7Q!rq%H0Bq&I8nhrjkvO@EhuzD6})YLbrpuRqn=UOG{6g>K<^>0~&q zZ_Sm?*;3|?o25z@3V6bGsbN(msd}x{X4+4EqPARmH71=Vu8ms5TUzkAPTOyn8};E- zt@j1m=z6pT>uzXg?k)mzAFqv!z6ZoRXd|1cL^A`m3w?Oq@wzte1x0RDYmd!54(wW@EpQfqd*0d;8!5AdBj(XMW9W5l#d{H84x!oxXX3-J zR{OU^l6GFN<8#TMzRPqPl^;zTt94!aJCekMbi@4B@dAr-83pSMiicJ{zUG+@Mf2 zb)CrieW3g6&`t6|wyw@^5|~M2udAC%8+KJ&u(?*(!aoLH706wiu7cU@kl+7>1ADKl z+b!bdGO%nlt8uYJwXF3^Ot>3Q#CKT z$w6hFV13nc_znu3Wy!IH-N~WKL^<}ZBhB&umY1BM1%sc-@%QPVj8b{owaZ|Wf0ei1 z1-1W8ve}+8(cG1H*%i}Vuuv|fkrT7*ELf2!pBbM-bHr}BB;+rkw})JzaiyNuL$27e zjKk^c~SEU%A`^*c~W8c=0DWw4{&xaCrnp{!)IPaEzulXSpq$O7Lo}Ua3Av z3|!UsI!F|ozwSill%XH?C?9OfaJ}D#bTZO*eej`al<7?imR0H(PN9-H4zgfKjy~2% zfnU9)U)J&jn7UEFVjP_}XSjaX4$}*;vHSJ^iHQRS`{{GW712PrL4UH*k!nAt6WIuZ z{!DQta7d>=7qx(zX`{Y!KK-B4sJ~=Q7ty^H`uaztypLDw|DH?FqaNs=djwFATc>Y2 z8USXvqKI$066Fz!@zN7ulce;FCW8!(QF@s)^lkO03>>jl>>p>+S45)XY-IyB z%1&|DeNB$trg)`%MHA3XWkM>|BH@_@%QQ;hgZp&zZBZ7#%jmwW#O1u9&!eMCyy_@f zW3aL&jrN&QrL1{;fD-Jfn62iMHlSp+zGHT(;?()Wr9mnBBOT~_R;jic4kooIe)<0lGMqM%E^G%GuB7MCfaPSkYE?r6TeacQOJZ%y z979VNg#;gGXd4y=1ZWLyd2wLx=PUw?c=*eAhTw7E?v CAudioMixerBoard - + Personal Mix at the Server Personlig mix på servern - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. När du är ansluten till en server låter kontrollerna här ställa in din lokala mix utan att påverka vad andra hör från dig. Titeln visar servernamnet och, om det är känt, om den aktivt spelar in. - + Server Server - + T R Y I N G T O C O N N E C T F Ö R S Ö K E R A N S L U T A - + RECORDING ACTIVE INSPELNING AKTIV - + Personal Mix at: Personlig mix på: @@ -565,7 +565,7 @@ - + L V @@ -705,98 +705,118 @@ LED-indikator för buffertstatus - - + + C&onnect &Anslut - + + &File + + + + &View &Vy - + &Connection Setup... Anslutningsinställningar... - + My &Profile... Min &profil... - + C&hat... C&hatt - + &Settings... Inställningar... - + &Analyzer Console... Anal&yskonsol... - + E&xit &Avsluta - + + &Load Mixer Channels Setup... + + + + + &Save Mixer Channels Setup... + + + + &Edit &Redigera - + Sort Channel Users by &Name Sortera kanalanvändare efter &Namn - + Sort Channel Users by &Instrument Sortera kanalanvändare efter &Instrument - + Sort Channel Users by &Group - None - Ingen + Ingen - + Center Mitten - + R H - + Central Server Central server - + + + Select Channel Setup File + + + + user användare - + users användare - + D&isconnect Koppla &ner @@ -1824,7 +1844,7 @@ CMusProfDlg - + No Name Inget namn From d6bca1e4ed34f667b5b3823087464bf9cf2b348b Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 12 Jul 2020 10:39:51 +0200 Subject: [PATCH 384/936] update --- src/res/translation/translation_nl_NL.qm | Bin 98429 -> 105453 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/res/translation/translation_nl_NL.qm b/src/res/translation/translation_nl_NL.qm index 9b71ffe7f80d814c95099fe8523b0b13f6516f5e..0829c3f8fe9eadd7bda5d7ad7630a420749d11de 100644 GIT binary patch delta 9272 zcmd5?30Rb6*FMiM@9YbPD5${el7S1jXK1*fvWSR);)XK73ycgi!!QWAjh2>{pIVcS zrDF2&x=Dwws+h?w6?rCNJ{k|_ki~ZlfT>o|b7Z)DpU7qKhbD#S@=b8F- zqUwh#m8a|a+@LRR%%A;L<3^ja7X9 zT11pSf~esyM1v;a#b;!jwVi12N7w+@$BiTUT0_d|9}pe*WF8W^f+;S z`oodK#Km_cHslU*NlV~RAL0h}CT7SaZpc8`X~a!7!@_BR_QQUGj(T~F@?lj)- za!0bPMI6OXF%wf7C?WSWGBlVHW?P93^{l0Y?NPY!G9`AJP3(m&lvvi2Sc|cgxDB|C z{Dk^`0UX&_N}3D@$30E`x-KE68AknfB6AtJl>F)@qHf`oJZB3q{THQVz>$%+C~XL! zIy#RA|9XeW(uamz0t9#MG?Z^e%-D=FRgH;x%psJC2bp;sWhWL8oqv(W%?A`C7SU_l z77)F-i58Y&gX}zdZzdp6meaEE!-(`IEsu&M^3zl0)?38%Jbe(GPAuki`f~q1Vri4; z;EV*K(eq?`NJ)pDM(Qp9q$3+H-f@rHXk|9}yeZhAm7xK-6hCTeKmR zSllhP{Haky>Q!uK1`rq)&vw0@PV~hzw(En{#1gx)WA}Ct3oT%0(|!RYci4sO)kMDv z>|)v`q;@&GIaN#4AfG)5yH6Bcq)^9QM<8D-bOS~Z*|HUSv*#gE%9jfNyZJ=NN)>^7 z;)srnQ8X}t>!r&SP0qQ9`I!~n&bKF~9;O&P1u4wDq!`*6(DYfSDE`?_EQC{(9-n{+ z0~MYzSorI%ii!74M1_kK(cPhqOD2Jyqvk3qJz~)*7APtg zhZ4OJt5|J@sMOo0Sp5*RsXtuti4Bq0_bE2r7(%T33yRGxk-`sh6H8_prvifXsfzD^fWsLI#a%awZ}Aq{9;>Uk=RvVf%~m`ZS3z`On&QEiF+`i=6`qIT zNXf36L_WTCr><1l*j;G4@T8eW1Q0Pp% z4`n+tMfu*uLtvAqi*m`Nc%r3I%BB5Y1Xg2}m4_jj=Y~s`#dcAyTA4{yzFN6z|7@`0 zq;k!6q*5KBT-#zIu=!BA_RB~j`*G!d+Z*72h-8_jsq#QHHayv0wpWXkCw4$b6#bOn zcoCpttn%AXWZW~jSb63o8iMnh^5Rxh|5d&6YKIBLCRZu%{M4Oj&0OW(zB7p0x8Y2` zK^Mw@kSuF{o(qf@AjQqNdQap2&{JHq)Irep@my3Gimq8U*KQG5l>Z$U{o`t)1@pKr z#`Z*-1zgw6kBALV;9?&3ClB+F;NpIH8i{<4OE-h}-(KJbc~Ly?F5Yd?Huau@QK_oO6hRlYX2V-3F2Q_2kNLoC8D)xiQD>M7!VNCf_)U-trqa z)%q^z8^BGo&mh)L;HK|=0YVhW&B{6i{vSEV%{lWOGT`BS@2Y`qGB+p9;p z`SX!V!yVZk-vxV)SiQO2BFz@i>Md^3%b;PakGaY{n~|}R+#a!0UfIhX$bJN6P2!FY zM}~{r%l5z*+|~7)h;&Q2U)p=X`^*j8uaPs*VqaEqEgzv*YgF76*e~m;xW&mt(>_;e z&H~#T+g18bM~K?mRY4QcOf;KS!Rz7p<*urv_Na}>6xEP^`-qGms4|aYy{=7ES#=_y zltz^$@Dda+P&HQNho&=DHDM?+*SoH2iYKK$+Gwh3q4y{7dWUMs7D(N>!>XlI5ZTVv zs>GYk%dh3R&7p4b=P}AvP_q%+E!^LS}mw{orJ@@QMIQy5^dY9 zy7+1!<^+f8GJgm)U{c+>CH9D;s@q#e5H-=LJog%OAeOpSbw3Q)^gg2ctr0K}sHbMH zqTBW1)ryN)@TGa`z<=U}S>@_R{ZX8Sqtzkt{V^XbQFnS!4u#BC_Xt~nLE|fRa@cBO z-Dap$cXlRf9jG1{i1#vL)q^W1V@MLznJu&su2l8N2Y|+M#iK6CL`uuzB+D8;t1b=4 zXJbosnV3rdj_S#NBZxhdrha`7*fI93diI;$QN1VBb5C!AmPf1KG$a$t9H^FRqJFsg z?cJfE@i*$v=3->4vq!!46f%+6T)pR|?}(lv>;&{^53F4c=B? z4hzM&cTQvY_Btk(Z#4cN#elyXHBplosvQLi1EcB|pQqt2SX`TNj* zhij5Qyo-LHC0UknTaytCU0L|8reN1j1ae=p%x|BjSbE>7DYkxz{yTo4rub+gQs=L! zxH*HUMU>{H#0O|bcQmgoMI_44G_$@&t#OEw#b>UdIr-Ufaz1BGI)&+7<(n z(f>!?(>^z58H#1C_IZCq{N@R5Oar8Je37;ft3ym1t?es(28lhT9r{xY`h8Pv&TDru z%k|ghT)lwE=V)!iCSWvsSvxJS3A$;b_Lb*Fp*gRe)fgKyqxQ9j7g3z2v@1?7Kux@$ zU3;t?-L9hknIlvnjwRTRIdlwK-x}XyhJW2?~bX`Hp9w^{aUBP8+q&T80_~|}U{G!e_>}wR$`#Sr- zRuF66RpRj>Yic?PM#wK9noNKzJ=|M#AlJ@3Oq?P=ZKI>0jd4c*a~;33~g zcWRC3*m2$EHb~uo9NiTy=ree;URep<=)YdC@#_oetZ|4hoPx0w}M6reX@+)cRW=#L;OWBxC zkLmw$8JZuvR{usD6l276{ro;}0P~miZ!b+IDtKDIu-hF7P*2G+?IQisnV6alAM4-m zVj|`;=r??Ui2a=UtvwzQtv{pR^Zw_U_wVZW-T*}Vr|Az|Ho?)k9_bI(vzPwl%5Ol! z)A}=g<1q2;(Vt1_iK?F=S*Ebq}2( za}GTB|JX2ULolY-BZg7ufl*q9!L||i2MjVeFJPnhvX^!lr~7yy1vM zn{1fZcnc<|#)b_H5Lm{@_Jp5ddoL9Apst3UgHIBL_BVXK7VAHkW%z;-_&?y5VXp>? z6w}eL_ca$rs_}-e+V+N2UNjs&(12*!EW`J=G4UMeX1G*30<7p|xLI6<{=V4oAQO=2 zW*JQR&QnHx; zZyJUEz_Q&~*^aDZ9916?otb8I-Mfwh=rUtjEH)N)8RyNpjj6S*@!bMDj$R)cm&a}* z>UhWafn^}Ep5GWZ--;y4KO15o#WgpSUF5~XJ9Lxa?jQg_jd63b#Kd33#P;9(- zH4^-{1sktq;f6iUcr!YgC_c(~=c8m|5$#OsM^6C~m#O~#>qK)Vm>TATe#2&(8fhw_ zaABtK2@{Am=9$8;&BtMLx~WZIC^4bj^ql?`=s~I}<~nGbl40sGc`62)hNj+AfLX;7 z*&c3aN_x|Sjhp^z8u0xE3CT}3vVltT){R9Z2SITy1Q`3q!(^15~m^K}nLDXDtIuZCRu|_>i=hV$G z#)p`$OhD!~)i+)9Op7Ge@C(zOkaL*rLQVHqt;Pmw)5C#qtYe(H&JavK`jh66o#7Ck zKy%~1%R$eP=9s1vi6$I2_xSu46!U;NsRGs9YK?g$dI3$!GFx7StsH31`)Vg>dDT4b zXlG1Jd(G45DbNF=&Hqr_iB#jwNpIF4fy1rJybWE9x(zaK^Pm{J?lvEuu^jZdZ9WqC z9kl;-^VR#wMDw!D_x!<>~cAIBee6>egG=Js_VoG|*5gBLP3Tzk5cVRwm@Gd#!G7L$~IXjs*lfWTjCw27lR! zCkuW=n@=w3uCr!&bB~e|YrdU#JNSH;qtv^mSJ&@Y#ih?UY}$ zfIeA%(`mKmd)GFrzwSYcdmUM4?~hqgQE`9Su2Gu9<>q4xEOxtK;|G=qt`a`Gf^Qy& zy`A0xF?GE+vf8i&FK?N|lGiP^#J|u`gNQ``Z8ckJk}UT8QcJ$zopga;cjbIcuzmu* zEpp=_7rDJz$zdJ`IpL)h{+1#YJc2I5zq$C#OV44sniN@)7AYp_2{HdJ=_&Eq(Nelx zQXV2}9O#o`6D%bH?-EMf7R2K&5O|BzX|v{7+*XI3&+|B3(nVXfqkIk`&KJZiyDfzR zFXZJ3Iqpa_Fsc*#IGR{TQMRL}qn!ESatn%=l3nsREI4C_GY$kX27wmhu1&(Yu*NO_ z)M|fHLxkc|t4qjz@&@ag{<^w3YvIjG3iLMU7}%g@fdCN;F_?h~@L0$x^syc|LLY3( zj%drN6{bj?WfQXvlmHCs;=dxxSlCS%8u?q26A0Bj6cv zH!(4V*r|w0C|gRRm2#*++P~TtAB$%Vy_M0SW|1498(fo$-Mc0#&^v2b-G-64k^m=j zr6LkZAeWPyO1z(jggqk$BL*N7Hwy4w>C1GUH+t|W_t6NjOt9rRiUht$C@Db| z^KPNs&09j*xe#^#E0ZX zBl(0p-tMSb6U&td?pC!=1k~;;Z)M50`A#RY`c+GsF{jcmkutntvqF41%~^vMV$@>M z=OAe!coj7;1;?WFU3{vL<8b8y3E#mMEc6dAcmDgAo5?SWUIRdR0Yr_z-40iUFC~UG zXaFetN|jxR42v|DX$vLuZha?^;op;Z$8IN4aF)HwLs*#%zW`tH?G)T|0>Y;T?*5CB;@~)1F98(iLu~%p_JV0 zQnwqF2eWge%t*MEx?DiWRsjrb2o8uoA>K$ny#P>@S#37n=@LfcjoQZ=@uhaR)dtM% zLK#2WVk;HI5|P&vajVyW&G}C<6)>a#;fPf_8rEJNUahc+xFRR`6*DO6t1Rq~Me;8o zN-Ig?=*w!(LRg8{u{qfHP8_Q@uou=5JB|46pXvtJim;RHiI`2Pap9^+Oj+CH&Ln&C zSW2*xk8j87N6AZyODDp`B0y=wuSnNiI4rttm4d7W+51kXKyRyep7Nj&YD)INlfZH~ z1({>HR*TJ%4=6!3i_PXJlUY?{0SBJ|nh12ZNIDtU$aIOOjuNaUg9M7Y`4K|76~~k1r|BZvB`7Rzd29VhNRk)_kI+sMJMK?ael#5rCu-M_$QRTzby&&`Hy0u4W9&v*wa923C3q@2aWc-6$Z_GlIL?0E2RP5!QSiinUY*nRFfrz+`0b-*hm&L*m zCA7MYQFIMrDb=pXP~^yL;?Zl}NCt9NDj-@FDu02fzMZ1qIhuP*6XSG^vl3U1|-_*#8@A#fm8rWw=n%1~EBe z7YGN{1^k^$t)*nzsDdJDz-uk-T0>P|PD|F_7aPs;>T4(&K==P0(8}cg>Aj^|@U4hu z>3%OzoG)c4MjTP{dp$AMKlKMZ^LXxgESoZRatTNU(IBD5xo((_Yh3#sY6TWBU4Uqy zNsH5sh;EI@{|-;t*I%Pqk{17&OezbvZ-kTa!8Kc$lL5cgZgqpU))ILls#}%Ng+(*g z)tAzmg=xjKmf~f%*ZGgSKE4an@?kYF@wL8`S=|`>a#0(3GGSiq%K9l-qVHe~3()hJ zp{lFGw?Bn7X#3ZE)i@QFCJ7|}go>y-5W^0!zAY#Np#J@&CN^}J)Vy3ZtJX`C2dIqd z0ji%oK*>p3+?}1w?n;BIi>6xT5c%H@XA&!)v=6+0;-DtvTHSMcu%N1OJy?}Gt`&)$ zPfUxLT#+dG`1IF;`Mb{edm$cHA}b~q{QuQTy|$HF5Azc>_OTGlg<7q{f7d9*=|-Gj z|J)k?C!G<;ssCzg{6FdSO0n5XLswP11h#_(&X-PSkIw+&NCN!5g{>R=u7@&}cSmR_ z*di8!r0mkjYK~-K$u*VSOH7VaaOF8%MdBbYcB`6`4F+S7P&_N*p%SN%W6iVTLJ6u} zJYCjGw$#+_C9*=+&`G^P7jaXO?DAQq2voqJ>+2E9!o0>Nb=AKsxJI=C(iXm8d#RD| z4!htx8^!|6G6Ud*EMF4G*aC0z^Wlx8N=*=##&+`H_P;zF#V4j$IB|xqIlhP<{o5nW z-=1hJNzBMR!~c!K#DchDul@6Y91d{P@qeczQ541E6q|;G{&`lZZ9n1oGQ-Vh$cMDY z!W15#-p@ZNDmE>RPb+mg@tuc|8!=}93-a0fv0eIB7%s%4m6b;OCPcC(AvJXo(AzEz zikSSW8>!%u-s_OeX8vbig-8#X`lE#(PiC=-M&c<*9wTb|v%0@i{Cc89e3rEmTSLRh zzqI#SS86*%ug6C;yxA`*2pOr-X5>cv|*>t~waE_I5#RrMRd+C=>acxxc2 delta 4318 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 Date: Sun, 12 Jul 2020 10:56:12 +0200 Subject: [PATCH 385/936] update German translation --- src/res/translation/translation_de_DE.qm | Bin 109005 -> 109543 bytes src/res/translation/translation_de_DE.ts | 8 ++++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index 108cb064fea414d4424586504d550f1c6c131154..b49c9ecfb0732765cb649d43288241bd00f54275 100644 GIT binary patch delta 4750 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 delta 4409 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 bCi^@82A_BTuEmfa+I*fod4KX`5kKVr^n4mj diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index 6540611444..5cedf2e934 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -797,7 +797,7 @@ &File - + &Datei @@ -936,12 +936,12 @@ &Load Mixer Channels Setup... - + &Laden der Konfiguration der Mixerkanäle &Save Mixer Channels Setup... - + &Speichern der Konfiguration der Mixerkanäle @@ -967,7 +967,7 @@ Select Channel Setup File - + Auswählen der Datei für die Konfiguration der Mixerkanäle From 57a7027e642dd6202d71ec72edca92bc7471977f Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 12 Jul 2020 12:31:46 +0200 Subject: [PATCH 386/936] bug fix: instrument names in the profile dialog are no longer translated (worked in v3.5.8) --- src/main.cpp | 1 + src/util.cpp | 5 +++-- src/util.h | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 1c45b4ccb7..e0b9a57384 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -606,6 +606,7 @@ int main ( int argc, char** argv ) if ( bUseGUI && bUseTranslation ) { CLocale::LoadTranslation ( Settings.strLanguage, pApp ); + CInstPictures::UpdateTableOnLanguageChange(); } #ifndef HEADLESS diff --git a/src/util.cpp b/src/util.cpp index b8426535f4..9f3e7cbe90 100755 --- a/src/util.cpp +++ b/src/util.cpp @@ -1058,18 +1058,19 @@ QString NetworkUtil::GetCentralServerAddress ( const ECSAddType eCentralServerAd // Instrument picture data base ------------------------------------------------ -CVector& CInstPictures::GetTable() +CVector& CInstPictures::GetTable ( const bool bReGenerateTable ) { // make sure we generate the table only once static bool TableIsInitialized = false; static CVector vecDataBase; - if ( !TableIsInitialized ) + if ( !TableIsInitialized || bReGenerateTable ) { // instrument picture data base initialization // NOTE: Do not change the order of any instrument in the future! // NOTE: The very first entry is the "not used" element per definition. + vecDataBase.Init ( 0 ); // first clear all existing data since we create the list be adding entries vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "None" ), ":/png/instr/res/instruments/none.png", IC_OTHER_INSTRUMENT ) ); // special first element vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Drum Set" ), ":/png/instr/res/instruments/drumset.png", IC_PERCUSSION_INSTRUMENT ) ); vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Djembe" ), ":/png/instr/res/instruments/djembe.png", IC_PERCUSSION_INSTRUMENT ) ); diff --git a/src/util.h b/src/util.h index 841518a118..d279d89d85 100755 --- a/src/util.h +++ b/src/util.h @@ -859,6 +859,7 @@ class CInstPictures static QString GetResourceReference ( const int iInstrument ); static QString GetName ( const int iInstrument ); static EInstCategory GetCategory ( const int iInstrument ); + static void UpdateTableOnLanguageChange() { GetTable ( true ); } // TODO make use of instrument category (not yet implemented) @@ -884,8 +885,7 @@ class CInstPictures }; static bool IsInstIndexInRange ( const int iIdx ); - - static CVector& GetTable(); + static CVector& GetTable ( const bool bReGenerateTable = false ); }; From 9ee7842275cbe02ada0342caf525146e69c957c0 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 12 Jul 2020 12:32:20 +0200 Subject: [PATCH 387/936] update --- ChangeLog | 7 ------- 1 file changed, 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index b2b86c8fc6..e762045c1b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -29,13 +29,6 @@ - bug fix: grouping faders in the client should be proportional (see discussion in #202, #419) -TODO instrument names in the profile dialog are no longer translated (worked in v3.5.8) - -TODO improve settings management -> move settings class in client/server classes, move actual settings variables -TODO improve interaction between use of inifile and command line parameters (edited) #120 -TODO Save and restore mixer state (fader / mute / solo...) #377 - - From 1eecaa8a33e1e2092093c016abd27a1f5ca97202 Mon Sep 17 00:00:00 2001 From: genesisproject2020 <7592139+genesisproject2020@users.noreply.github.com> Date: Sun, 12 Jul 2020 23:31:47 +0200 Subject: [PATCH 388/936] Update translation_sv_SE.ts Updated with new texts. --- src/res/translation/translation_sv_SE.ts | 1101 +++++++++++----------- 1 file changed, 551 insertions(+), 550 deletions(-) diff --git a/src/res/translation/translation_sv_SE.ts b/src/res/translation/translation_sv_SE.ts index 4ffb716a0b..e7f8be1d1d 100644 --- a/src/res/translation/translation_sv_SE.ts +++ b/src/res/translation/translation_sv_SE.ts @@ -6,92 +6,92 @@ This app enables musicians to perform real-time jam sessions over the internet. - Applikationen gör det möjligt för musiker att spela tillsammans live över Internet. + Applikationen gör det möjligt för musiker att spela tillsammans live över Internet. There is a server which collects the audio data from each client, mixes the audio data and sends the mix back to each client. - Det finns en server som samlar ljud från varje klient, blandar ljudet och skickar mixen tillbaka till varje klient. + Det finns en server som samlar ljud från varje klient, blandar ljudet och skickar mixen tillbaka till varje klient. This app uses the following libraries, resources or code snippets: - Denna applikationen använder följande bibliotek, resurser eller kodavsnitt: + Denna applikationen använder följande bibliotek, resurser eller kodavsnitt: Qt cross-platform application framework - Qt cross-platform applikationramverk + Qt cross-platform applikationsramverk Audio reverberation code by Perry R. Cook and Gary P. Scavone - Ljudklangkod av Perry R. Cook och Gary P. Scavone + Ljudklangkod av Perry R. Cook och Gary P. Scavone Some pixmaps are from the - Vissa pixmaps är från + Vissa pixmaps är från Country flag icons by Mark James - Landsflaggsymboler gjorda av Mark James + Landsflaggsymboler gjorda av Mark James For details on the contributions check out the - För detaljer om bidrag, kolla in + För detaljer om bidrag, kolla in Github Contributors list - Github's bidragsgivarlista + Github's bidragsgivarlista Spanish - Spanska + Spanska French - Franska + Franska Portuguese - Portugisiska + Portugisiska Dutch - Holländska + Holländska Italian - Italienska + Italienska German - Tyska + Tyska Polish - + Polska Swedish - + Svenska About - Om + Om @@ -99,42 +99,43 @@ About - Om + Om TextLabelVersion - TextEtikettVersion + How to translate this? + TextLabelVersion Copyright (C) 2005-2020 Volker Fischer and others - Upphovsrätt (C) 2005-2020 Volker Fischer och andra + Upphovsrätt (C) 2005-2020 Volker Fischer och andra A&bout - O&m + &Om &Libraries - &Bibliotek + &Bibliotek &Contributors - &Bidragsgivare + Bidrags&givare &Translation - &Översättning + &Översättning &OK - &Okej + &Okej @@ -142,12 +143,12 @@ Analyzer Console - Analyskonsol + Analyskonsol Error Rate of Each Buffer Size - Felhastighet för varje buffertstorlek + Felhastighet för varje buffertstorlek @@ -155,32 +156,32 @@ Personal Mix at the Server - Personlig mix på servern + Personlig mix på servern When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. - När du är ansluten till en server låter kontrollerna här ställa in din lokala mix utan att påverka vad andra hör från dig. Titeln visar servernamnet och, om det är känt, om den aktivt spelar in. + När du är ansluten till en server låter kontrollerna här ställa in din lokala mix utan att påverka vad andra hör från dig. Titeln visar servernamnet och, om det är känt, om den aktivt spelar in. Server - Server + Server T R Y I N G T O C O N N E C T - F Ö R S Ö K E R A N S L U T A + F Ö R S Ö K E R A N S L U T A RECORDING ACTIVE - INSPELNING AKTIV + INSPELNING AKTIV Personal Mix at: - Personlig mix på: + Personlig mix på: @@ -190,26 +191,26 @@ Pan - Panorera + Panorera Mute - Tyst + Tyst Solo - Solo + Solo No grouping - + Ingen gruppering @@ -217,214 +218,214 @@ Assign to group - + Tilldela grupp Channel Level - Kanalnivå + Kanalnivå Displays the pre-fader audio level of this channel. All clients connected to the server will be assigned an audio level, the same value for every client. - Visar ljudnivån för fader på denna kanal. Alla klienter som är anslutna till servern tilldelas en ljudnivå och har samma värde för alla klienter. + Visar ljudnivån för fader på denna kanal. Alla klienter som är anslutna till servern tilldelas en ljudnivå och har samma värde för alla klienter. Input level of the current audio channel at the server - Ingångsnivå för den aktuella ljudkanalen på servern + Ingångsnivå för den aktuella ljudkanalen på servern Mixer Fader - Mixer + Mixer Adjusts the audio level of this channel. All clients connected to the server will be assigned an audio fader, displayed at each client, to adjust the local mix. - Justerar ljudnivån på den här kanalen. Alla klienter som är anslutna till servern tilldelas en ljudfader som visas vid varje klient för att justera den lokala mixen. + Justerar ljudnivån på den här kanalen. Alla klienter som är anslutna till servern tilldelas en ljudfader som visas vid varje klient för att justera den lokala mixen. Local mix level setting of the current audio channel at the server - Lokal mixernivåinställning för den aktuella ljudkanalen på servern + Lokal mixernivåinställning för den aktuella ljudkanalen på servern Status Indicator - Statusindikator + Statusindikator Shows a status indication about the client which is assigned to this channel. Supported indicators are: - Visar en statusindikering om klienten som tilldelas denna kanal. Stödjade indikatorer är + Visar en statusindikering om klienten som tilldelas denna kanal. Stödjade indikatorer är: Speaker with cancellation stroke: Indicates that another client has muted you. - Högtalare med streck över: Visar att en annan klient har stängt av ditt ljud. + Högtalare med streck över visar att en annan klient har stängt av ditt ljud. Status indicator label - Statusindikator etikett + etikett för statusindikator Panning - Panorering + Panorering Sets the pan from Left to Right of the channel. Works only in stereo or preferably mono in/stereo out mode. - Ställer in panorering från vänster till höger för kanalen. Fungerar endast i stereo eller helst mono in / stereo ut-läge. + Ställer in panorering från vänster till höger för kanalen. Fungerar endast i stereo eller helst mono in / stereo ut-läge. Local panning position of the current audio channel at the server - Lokal panoreringsposition för den aktuella ljudkanalen på servern + Lokal panoreringsposition för den aktuella ljudkanalen på servern With the Mute checkbox, the audio channel can be muted. - Med kryssrutan Stäng av kan ljudkanalen stängas av. + Med kryssrutan "Stäng av" kan ljudkanalen stängas av. Mute button - Stäng av knapp + Knapp för att stänga av With the Solo checkbox, the audio channel can be set to solo which means that all other channels except the soloed channel are muted. It is possible to set more than one channel to solo. - Med kryssrutan Solo kan ljudkanalen ställas in på solo vilket innebär att alla andra kanaler utom solokanalen är avstängda. Det är möjligt att ställa in mer än en kanal för solo. + Med kryssrutan Solo kan ljudkanalen ställas in på solo vilket innebär att alla andra kanaler utom solokanalen är avstängda. Det är möjligt att ställa in mer än en kanal för solo. Solo button - Soloknapp + Soloknapp Group - + Grupp With the Grp checkbox, a group of audio channels can be defined. All channel faders in a group are moved in proportional synchronization if any one of the group faders are moved. - + Med kryssrutan Grp kan en grupp ljudkanaler definieras. Alla kanalfadrar i en grupp flyttas i proportionell synkronisering om någon av gruppfadrarna flyttas. Group button - + Gruppknapp Fader Tag - Panoreringstagg + Panoreringstagg The fader tag identifies the connected client. The tag name, a picture of your instrument and the flag of your country can be set in the main window. - Fader-taggen identifierar den anslutna klienten. Etikettnamnet, en bild av ditt instrument och ditt lands flagga kan ställas in i huvudfönstret. + Fadertaggen identifierar den anslutna klienten. Etikettnamnet, en bild av ditt instrument och ditt lands flagga kan ställas in i huvudfönstret. Mixer channel instrument picture - Mixerkanalens instrumentbild + Mixerkanalens instrumentbild Mixer channel label (fader tag) - Mixerkanalens etikett (fader) + Mixerkanalens etikett (fader) Mixer channel country flag - Mixerkanalens landsflagga + Mixerkanalens landsflagga PAN - PAN + PANORERA MUTE - TYST + TYST SOLO - SOLO + SOLO GRP - + GRUPP M - T + T S - S + S G - + G Grp - + Grp Alias/Name - Alias/Namn + Alias/Namn Instrument - Instrument + Instrument Location - Plats + Plats Skill Level - Skicklighetsnivå + Skicklighetsnivå Beginner - Nybörjare + Nybörjare Intermediate - Mellannivå + Mellannivå Expert - Expert + Expert Musician Profile - Musikprofil + Musikprofil @@ -432,47 +433,47 @@ Chat Window - Chattfönster + Chattfönster The chat window shows a history of all chat messages. - Chattfönstret visar en historik över alla chattmeddelanden. + Chattfönstret visar en historik över alla chattmeddelanden. Chat history - Chatthistorik + Chatthistorik Input Message Text - Skriv meddelandetext + Skriv meddelandetext 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. - Ange chattmeddelandetexten i textrutan och tryck på enter för att skicka meddelandet till servern som distribuerar meddelandet till alla anslutna klienter. Ditt meddelande kommer synas i chattfönstret. + Ange chattmeddelandetexten i textrutan och tryck på enter för att skicka meddelandet till servern som distribuerar meddelandet till alla anslutna klienter. Ditt meddelande kommer synas i chattfönstret. New chat text edit box - Ny redigeringsruta för chatt-text + Ny redigeringsruta för chatt-text Type a message here - + Skriv ditt meddelande här &Edit - &Redigera + &Redigera Cl&ear Chat History - + &Rensa chatthistorik @@ -480,12 +481,12 @@ Chat - Chatt + Chatt &Send - + &Skicka Cl&ear @@ -501,284 +502,284 @@ Input Level Meter - Ingångsnivå + Ingångsnivå This shows the level of the two stereo channels for your audio input. - Detta visar nivån på de två stereokanalerna för din ljudingång. + Detta visar nivån på de två stereokanalerna för din ljudingång. Make sure not to clip the input signal to avoid distortions of the audio signal. - Se till att inte klippa insignalen för att undvika en snedvridning av ljudsignalen. + Se till att inte klippa insignalen för att undvika en snedvridning av ljudsignalen. If the application is connected to a server and you play your instrument/sing into the microphone, the VU 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. - Om applikationen är ansluten till en server och du spelar ditt instrument/sjunger in i mikrofonen, bör VU-mätaren röra sig. Om detta inte sker har du antagligen valt fel inmatningskanal (t.ex. 'line in' i stället för mikrofoningången) eller ställt in ingångsförstärkningen för (Windows) för lågt. + Om applikationen är ansluten till en server och du spelar ditt instrument/sjunger in i mikrofonen, bör VU-mätaren röra sig. Om detta inte sker har du antagligen valt fel inmatningskanal (t.ex. 'line in' i stället för mikrofoningången) eller ställt in ingångsförstärkningen för (Windows) för lågt. For proper usage of the application, you should not hear your singing/instrument through the loudspeaker or your headphone when the software is not connected.This can be achieved by muting your input audio channel in the Playback mixer (not the Recording mixer!). - För korrekt användning av applikationen, bör du inte höra din sång/instrument via högtalaren eller hörlurarna när programvaran inte är ansluten. Det kan uppnås genom att stänga av din ingående ljudkanal i uppspelningsblandaren (inte inspelningsblandaren!). + För korrekt användning av applikationen, bör du inte höra din sång/instrument via högtalaren eller hörlurarna när programvaran inte är ansluten. Det kan uppnås genom att stänga av din ingående ljudkanal i uppspelningsblandaren (inte inspelningsblandaren!). Input level meter - Ingångsnivåmätare + Ingångsnivåmätare Simulates an analog LED level meter. - Simulerar en analog LED-nivåmätare. + Simulerar en analog LED-nivåmätare. Connect/Disconnect Button - Anslut/koppla ifrån-knapp + Knapp för att anslut eller koppla ifrån Opens a dialog where you can select a server to connect to. If you are connected, pressing this button will end the session. - Öppnar en dialogruta där du kan välja en server att ansluta till. Om du är ansluten avslutar du sessionen genom att trycka på den här knappen. + Öppnar en dialogruta där du kan välja en server att ansluta till. Om du är ansluten avslutar du sessionen genom att trycka på den här knappen. Connect and disconnect toggle button - Anslut och koppla bort-knapp + Knapp för att anslut och koppla bort Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. - Om du klickar på den här knappen ändras bildtexten på knappen från Ansluten till Nedkopplad, dvs. den implementerar en växelfunktion för att ansluta och koppla bort applikationen. + Om du klickar på den här knappen ändras bildtexten på knappen från Ansluten till Nedkopplad, dvs. den implementerar en växelfunktion för att ansluta och koppla bort applikationen. Local Audio Input Fader - Lokal ljudingångsfader + Lokal ljudingångsfader Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows - Kontrollerar de relativa nivåerna för vänster och höger lokala ljudkanal. För en monosignal fungerar den som en panorering mellan de två kanalerna. Om exempelvis en mikrofon är ansluten till den högra ingångskanalen och ett instrument är anslutet till den vänstra ingångskanalen som är mycket högre än mikrofonen, flytta ljudfadern i en riktning som etiketten ovanför fadern visar + Kontrollerar de relativa nivåerna för vänster och höger lokala ljudkanal. För en monosignal fungerar den som en panorering mellan de två kanalerna. Om exempelvis en mikrofon är ansluten till den högra ingångskanalen och ett instrument är anslutet till den vänstra ingångskanalen som är mycket högre än mikrofonen, flytta ljudfadern i en riktning som etiketten ovanför fadern visar L - V + V , where - , där + , där is the current attenuation indicator. - är den aktuella dämpningsindikatorn. + är den aktuella dämpningsindikatorn. Local audio input fader (left/right) - Lokal ljudingångsfader (vänster/höger) + Lokal ljudingångsfader (vänster/höger) Reverb effect - Reverb effekt + Reverb effekt Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. - Reverb kan tillämpas på en lokal monoljudkanal eller på båda kanalerna i stereoläge. Valet av monokanal och reverbnivån kan ändras. Om till exempel en mikrofonsignal matas in till höger ljudkanal på ljudkortet och en reverb-effekt måste appliceras, ställ in kanalväljaren till höger och flytta fadern uppåt tills önskad reverbnivå har uppnåtts. + Reverb kan tillämpas på en lokal monoljudkanal eller på båda kanalerna i stereoläge. Valet av monokanal och reverbnivån kan ändras. Om till exempel en mikrofonsignal matas in till höger ljudkanal på ljudkortet och en reverb-effekt måste appliceras, ställ in kanalväljaren till höger och flytta fadern uppåt tills önskad reverbnivå har uppnåtts. Reverb effect level setting - Reverb-effektnivåinställning + Reverbeffektnivåinställning Reverb Channel Selection - Reverb kanalval + Reverbkanalval With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. - Med dessa tryckknappar kan du välja ljudingångskanalen på vilken reverb-effekten används. Antingen kan vänster eller höger ingångskanal väljas. + Med dessa tryckknappar kan du välja ljudingångskanalen på vilken reverbeffekten används. Antingen kan vänster eller höger ingångskanal väljas. Left channel selection for reverb - Vänster kanal för reverb + Vänster kanal för reverb Right channel selection for reverb - Höger kanal för reverb + Höger kanal för reverb Delay Status LED - Fördröjningsstatus-LED + Fördröjningsstatus-LED Shows the current audio delay status: - Visar aktuell ljudfördröjningsstatus: + Visar aktuell ljudfördröjningsstatus: Green - Grön + Grön The delay is perfect for a jam session. - Förseningen är perfekt för en jam-session. + Fördröjningen är perfekt för en jam-session. Yellow - Gul + Gul A session is still possible but it may be harder to play. - En session är fortfarande möjlig men det kan vara svårare att spela. + En session är fortfarande möjlig men det kan vara svårare att spela. Red - Röd + Röd The delay is too large for jamming. - Fördröjningen är för stor för en jam-session. + Fördröjningen är troligtvis för stor för en jam-session. If this LED indicator turns red, you will not have much fun using the application. - Om den här LED-indikatorn blir röd kommer du inte ha så kul med applikationen. + Om den här LED-indikatorn blir röd kommer du inte ha så kul med applikationen. Delay status LED indicator - LED-indikator för fördröjningsstatus + LED-indikator för fördröjningsstatus Buffers Status LED - Buffertstatus-LED + Buffertstatus-LED The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: - Statuslampan för buffertar visar aktuell ljud-/strömningsstatus. Om lampan är röd avbryts ljudströmmen. Detta orsakas av ett av följande problem: + Statuslampan för buffertar visar aktuell ljud-/strömningsstatus. Om lampan är röd avbryts ljudströmmen. Detta orsakas av ett av följande problem: The network jitter buffer is not large enough for the current network/audio interface jitter. - Nätverksjitterbufferten är inte tillräckligt stor för det nuvarande nätverks-/ljudgränssnittsjitteret. + Nätverksjitterbufferten är inte tillräckligt stor för det nuvarande nätverks-/ljudgränssnittsjitteret. The sound card's buffer delay (buffer size) is too small (see Settings window). - Ljudkortets buffertfördröjning (buffertstorlek) är för liten (se Inställningsfönstret). + Ljudkortets buffertfördröjning (buffertstorlek) är för liten (se Inställningsfönstret). The upload or download stream rate is too high for your internet bandwidth. - Uppladdnings- eller nedladdningsströmmen är för hög för din internethastighet. + Uppladdnings- eller nedladdningsströmmen är för hög för din internethastighet. The CPU of the client or server is at 100%. - Klientens eller serverns CPU är 100%. + Klientens eller serverns CPU är 100%. Buffers status LED indicator - LED-indikator för buffertstatus + LED-indikator för buffertstatus C&onnect - &Anslut + &Anslut &File - + &Fil &View - &Vy + &Vy &Connection Setup... - Anslutningsinställningar... + Anslutnings&inställningar... My &Profile... - Min &profil... + Min &profil... C&hat... - C&hatt + &Chatt... &Settings... - Inställningar... + &Inställningar... &Analyzer Console... - Anal&yskonsol... + &Analyskonsol... E&xit - &Avsluta + &Avsluta &Load Mixer Channels Setup... - + &Ladda in mixerkanalinställningarna... &Save Mixer Channels Setup... - + &Spara mixerkanalinställningarna... &Edit - &Redigera + &Redigera Sort Channel Users by &Name - Sortera kanalanvändare efter &Namn + Sortera kanalanvändare efter &Namn Sort Channel Users by &Instrument - Sortera kanalanvändare efter &Instrument + Sortera kanalanvändare efter &Instrument Sort Channel Users by &Group - + Sortera kanalanvändare efter &Grupp None @@ -787,38 +788,38 @@ Center - Mitten + Mitten R - H + H Central Server - Central server + Central server Select Channel Setup File - + Välj kanalinställningsfil user - användare + användare users - användare + användare D&isconnect - Koppla &ner + Koppla &ner @@ -826,72 +827,72 @@ Delay - Fördröjning + Fördröjning Buffers - Buffert + Buffert Input - Ingång + Ingång L - V + V R - H + H Settings - Inställningar + Inställningar Chat - Chatt + Chatt Mute Myself - Tysta mig själv + Tysta mig själv C&onnect - &Koppla upp + &Koppla upp Pan - Pan + Panorera Center - Mitten + Mitten Reverb - Reverb + Reverb Left - Vänster + Vänster Right - Höger + Höger @@ -899,492 +900,492 @@ Jitter Buffer Size - Jitter bufferstorlek + Jitterbufferstorlek The jitter buffer compensates for network and sound card timing jitters. The size of the buffer therefore influences the quality of the audio stream (how many dropouts occur) and the overall delay (the longer the buffer, the higher the delay). - Jitterbufferten kompenserar för nätverks- och ljudkortstimning. Storleken på bufferten påverkar därför kvaliteten på ljudströmmen (hur många bortfall som inträffar) och den totala förseningen (ju längre bufferten är, desto högre fördröjning). + Jitterbufferten kompenserar för nätverks- och ljudkortstimning. Storleken på bufferten påverkar därför kvaliteten på ljudströmmen (hur många bortfall som inträffar) och den totala förseningen (ju längre bufferten är, desto högre fördröjning). You can set the jitter buffer size manually for the local client and the remote server. For the local jitter buffer, dropouts in the audio stream are indicated by the light below the jitter buffer size faders. If the light turns to red, a buffer overrun/underrun has taken place and the audio stream is interrupted. - Jitterbufferten kompenserar för nätverks- och ljudkortets timeing. Storleken på bufferten påverkar därför kvaliteten på ljudströmmen (hur många bortfall som inträffar) och den totala förseningen (ju längre bufferten är, desto högre är fördröjningen). + Jitterbufferten kompenserar för nätverks- och ljudkortets timeing. Storleken på bufferten påverkar därför kvaliteten på ljudströmmen (hur många bortfall som inträffar) och den totala förseningen (ju längre bufferten är, desto högre är fördröjningen). The jitter buffer setting is therefore a trade-off between audio quality and overall delay. - Jitterbuffertinställningen är därför en avvägning mellan ljudkvalitet och total fördröjning. + Jitterbuffertinställningen är därför en avvägning mellan ljudkvalitet och total fördröjning. If the Auto setting is enabled, the jitter buffers of the local client and the remote server are set automatically based on measurements of the network and sound card timing jitter. If Auto is enabled, the jitter buffer size faders are disabled (they cannot be moved with the mouse). - Om Auto-inställningen är aktiverad, ställs jitterbuffertarna för den lokala klienten och fjärrservern in automatiskt baserat på mätningar av nätverkets och ljudkortets timingjitter. Om Auto är aktiverat inaktiveras jitterbuffertstorleken (de kan inte justeras). + Om Auto-inställningen är aktiverad, ställs jitterbuffertarna för den lokala klienten och fjärrservern in automatiskt baserat på mätningar av nätverkets och ljudkortets timingjitter. Om Auto är aktiverat inaktiveras jitterbuffertstorleken (de kan inte justeras). If the Auto setting 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 and to lower the jitter buffer size manually by using the sliders until your personal acceptable amount of dropouts is reached. The LED indicator will display the audio dropouts of the local jitter buffer with a red light. - Om Auto-inställningen är aktiverad ställs nätverksbuffertarna för den lokala klienten och fjärrservern in på ett konservativt värde för att minimera sannorlikheten för ljudbortfall. För att justera ljudfördröjningen/latensen rekommenderas att du inaktiverar Auto-inställningen och att sänka jitterbuffertstorleken manuellt genom att använda reglagen tills din personliga acceptabla mängd bortfall uppnåtts. LED-indikatorn visar ljudavfallet från den lokala jitterbufferten med rött ljus. + Om Auto-inställningen är aktiverad ställs nätverksbuffertarna för den lokala klienten och fjärrservern in på ett konservativt värde för att minimera sannorlikheten för ljudbortfall. För att justera ljudfördröjningen/latensen rekommenderas att du inaktiverar Auto-inställningen och att sänka jitterbuffertstorleken manuellt genom att använda reglagen tills din personliga acceptabla mängd bortfall uppnåtts. LED-indikatorn visar ljudavfallet från den lokala jitterbufferten med rött ljus. Local jitter buffer slider control - Lokalt jitterbuffertreglage + Lokalt jitterbuffertreglage Server jitter buffer slider control - Server jitter buffertreglage + Server jitter buffertreglage Auto jitter buffer switch - Auto jitter buffert reglage + Auto-jitterbuffert reglage Jitter buffer status LED indicator - Jitter buffert status LED-indikator + LED-indikator för jitterbufferstatus Sound Card Device - Ljudkortsenhet + Ljudkortsenhet The ASIO driver (sound card) can be selected using - ASIO-drivrutinen (ljudkort) kan väljas med + ASIO-drivrutinen (ljudkort) kan väljas med 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. - under Microsoft Windows. Under MacOS/Linux är inget ljudkortsval möjligt. Om den valda ASIO-drivrutinen inte är giltig visas ett felmeddelande och den tidigare giltiga drivrutinen väljs. + under Microsoft Windows. Under MacOS/Linux är inget ljudkortsval möjligt. Om den valda ASIO-drivrutinen inte är giltig visas ett felmeddelande och den tidigare giltiga drivrutinen väljs. If the driver is selected during an active connection, the connection is stopped, the driver is changed and the connection is started again automatically. - Om drivrutinen väljs under en aktiv anslutning stoppas anslutningen, drivrutinen ändras och anslutningen startas automatiskt igen. + Om drivrutinen väljs under en aktiv anslutning stoppas anslutningen, drivrutinen ändras och anslutningen startas automatiskt igen. Sound card device selector combo box - Ljudkortsenhetens kombinationsruta + Ljudkortsenhetens kombinationsruta If the ASIO4ALL driver is used, please note that this driver usually introduces approx. 10-30 ms of additional audio delay. Using a sound card with a native ASIO driver is therefore recommended. - Om ASIO4ALL-drivrutinen används, observera att den här drivrutinen vanligtvis introducerar ca. 10-30 ms extra ljudfördröjning. Det rekommenderas därför att använda ett ljudkort med en inbyggd ASIO-drivrutin. + Om ASIO4ALL-drivrutinen används, observera att den här drivrutinen vanligtvis introducerar ca. 10-30 ms extra ljudfördröjning. Det rekommenderas därför att använda ett ljudkort med en inbyggd ASIO-drivrutin. If you are using the kX ASIO driver, make sure to connect the ASIO inputs in the kX DSP settings panel. - Om du använder kX ASIO-drivrutinen, se till att ansluta ASIO-ingångarna på kX DSP-inställningspanelen. + Om du använder kX ASIO-drivrutinen, se till att ansluta ASIO-ingångarna på kX DSP-inställningspanelen. Sound Card Channel Mapping - Ljudkortets kanalval + Ljudkortets kanalval If the selected sound card device offers more than one input or output channel, the Input Channel Mapping and Output Channel Mapping settings are visible. - Om den valda ljudkortsenheten erbjuder mer än en ingångs- eller utgångskanal är inställningarna för inmatningskanalens mappning och utmatningskanal synliga. + Om den valda ljudkortsenheten erbjuder mer än en ingångs- eller utgångskanal är inställningarna för inmatningskanalens mappning och utmatningskanal synliga. For each - För varje + För varje input/output channel (Left and Right channel) a different actual sound card channel can be selected. - ingångs-/utgångskanal (vänster- och högerkanal) kan en annan faktisk ljudkortkanal väljas. + ingångs-/utgångskanal (vänster- och högerkanal) kan en annan faktisk ljudkortkanal väljas. Left input channel selection combo box - Vänster ingångskanalvalskombinationsruta + Vänster ingångskanalvalskombinationsruta Right input channel selection combo box - Höger ingångskanalvalskombinationsruta + Höger ingångskanalvalskombinationsruta Left output channel selection combo box - Vänster utgångskanalvalskombinationsruta + Vänster utgångskanalvalskombinationsruta Right output channel selection combo box - Höger utgångskanalvalskombinationsruta + Höger utgångskanalvalskombinationsruta Enable Small Network Buffers - Aktivera liten nätverksbuffert + Aktivera liten nätverksbuffert If enabled, the support for very small network audio packets is activated. Very small network packets are only actually used if the sound card buffer delay is smaller than - Om det är aktiverat aktiveras stödet för mycket små nätverksljudpaket. Mycket små nätverkspaket används faktiskt bara om ljudkortsbuffertfördröjningen är mindre än + Om det är aktiverat aktiveras stödet för mycket små nätverksljudpaket. Mycket små nätverkspaket används faktiskt bara om ljudkortsbuffertfördröjningen är mindre än samples. The smaller the network buffers, the lower the audio latency. But at the same time the network load increases and the probability of audio dropouts also increases. - bitars buffert. Ju mindre nätbuffertarna är, desto lägre är ljudet. Men samtidigt ökar nätverksbelastningen och sannolikheten för ljudavbrott ökar också. + bitars buffert. Ju mindre nätbuffertarna är, desto lägre är ljudet. Men samtidigt ökar nätverksbelastningen och sannolikheten för ljudavbrott ökar också. Enable small network buffers check box - Aktivera kryssrutan för små nätverksbuffertar + Aktivera kryssrutan för små nätverksbuffertar Sound Card Buffer Delay - Ljudkortets buffertfördröjning + Ljudkortets buffertfördröjning The buffer delay setting is a fundamental setting of this software. This setting has an influence on many connection properties. - Inställningen för buffertfördröjning är en grundläggande inställning för denna applikation. Denna inställning påverkar många anslutningsegenskaper. + Inställningen för buffertfördröjning är en grundläggande inställning för denna applikation. Denna inställning påverkar många anslutningsegenskaper. Three buffer sizes are supported - Tre buffertstorlekar stöds + Tre buffertstorlekar stöds 64 samples: The preferred setting. Provides the lowest latency but does not work with all sound cards. - 64 bitars buffert: Den rekommenderade inställningen. Den ger den lägsta latensen men fungerar inte med alla ljudkort. + 64 bitars buffert: Den rekommenderade inställningen. Den ger den lägsta latensen men fungerar inte med alla ljudkort. 128 samples: Should work for most available sound cards. - 128 bitars buffert: Bör fungera för alla ljudkort. + 128 bitars buffert: Bör fungera för alla ljudkort. 256 samples: Should only be used on very slow computers or with a slow internet connection. - 265 bitars buffert: Ska endast användas med långsamma datorer eller med långsam internetkoppling. + 265 bitars buffert: Ska endast användas med långsamma datorer eller med långsam internetkoppling. Some sound card drivers do not allow the buffer delay to be changed from within the application. In this case the buffer delay setting is disabled and has to be changed using the sound card driver. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. - Vissa ljudkortdrivrutiner tillåter inte buffertfördröjningen att ändras från applikationen. I detta fall avbryts inställningen för buffertfördröjning och måste ändras med ljudkortsdrivrutinen. I Windows trycker du på ASIO-inställningsknappen för att öppna drivrutinsinställningspanelen. I Linux använder du Jack-konfigurationsverktyget för att ändra buffertstorleken. + Vissa ljudkortdrivrutiner tillåter inte buffertfördröjningen att ändras från applikationen. I detta fall avbryts inställningen för buffertfördröjning och måste ändras med ljudkortsdrivrutinen. I Windows trycker du på ASIO-inställningsknappen för att öppna drivrutinsinställningspanelen. I Linux använder du Jack-konfigurationsverktyget för att ändra buffertstorleken. If no buffer size is selected and all settings are disabled, an unsupported buffer size is used by the driver. The application will still work with this setting but with restricted performance. - Om ingen buffertstorlek är vald och alla inställningar är inaktiverade, används en icke-stödd buffertstorlek av drivrutinen. Applikationen fungerar fortfarande med den här inställningen men med begränsad prestanda. + Om ingen buffertstorlek är vald och alla inställningar är inaktiverade, används en icke-stödd buffertstorlek av drivrutinen. Applikationen fungerar fortfarande med den här inställningen men med begränsad prestanda. The actual buffer delay has influence on the connection status, the current upload rate and the overall delay. The lower the buffer size, the higher the probability of a red light in the status indicator (drop outs) and the higher the upload rate and the lower the overall delay. - Den faktiska buffertfördröjningen har påverkan på anslutningsstatusen, den aktuella uppladdningshastigheten och den totala förseningen. Ju lägre buffertstorlek, desto högre är sannolikheten för rött ljus i statusindikatorn (drop outs) och desto högre uppladdningshastighet och desto lägre blir den totala fördröjningen. + Den faktiska buffertfördröjningen har påverkan på anslutningsstatusen, den aktuella uppladdningshastigheten och den totala förseningen. Ju lägre buffertstorlek, desto högre är sannolikheten för rött ljus i statusindikatorn (drop outs) och desto högre uppladdningshastighet och desto lägre blir den totala fördröjningen. The buffer setting is therefore a trade-off between audio quality and overall delay. - Buffertinställningen är därför en avvägning mellan ljudkvalitet och total fördröjning. + Buffertinställningen är därför en avvägning mellan ljudkvalitet och total fördröjning. If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. - Om buffertfördröjningsinställningarna är inaktiverade är det ljuddrivrutinen som begränsar och det är inte möjligt att ändra denna inställning från applikationen. I Microsoft Windows trycker du på ASIO-inställningsknappen för att öppna drivrutinsinställningspanelen. I Linux använder du Jack-konfigurationsverktyget för att ändra buffertstorleken. + Om buffertfördröjningsinställningarna är inaktiverade är det ljuddrivrutinen som begränsar och det är inte möjligt att ändra denna inställning från applikationen. I Microsoft Windows trycker du på ASIO-inställningsknappen för att öppna drivrutinsinställningspanelen. I Linux använder du Jack-konfigurationsverktyget för att ändra buffertstorleken. 64 samples setting radio button - 64 bitars buffertknapp + 64 bitars buffertknapp 128 samples setting radio button - 128 bitars buffertknapp + 128 bitars buffertknapp 256 samples setting radio button - 256 bitars buffertknapp + 256 bitars buffertknapp ASIO setup push button - ASIO-inställningsknapp + ASIO-inställningsknapp Skin - Skal + Skal Select the skin to be used for the main window. - Välj skal som ska användas för huvudfönstret. + Välj skal som ska användas för huvudfönstret. Skin combo box - Kombineringsknapp för skal + Kombineringsknapp för skal Display Channel Levels - Visa kanalnivåer + Visa kanalnivåer If enabled, each client channel will display a pre-fader level bar. - Om detta är aktiverat kommer varje klientkanal att visa ett nivåfält före varje fader. + Om detta är aktiverat kommer varje klientkanal att visa ett nivåfält före varje fader. Display channel levels check box - Visa kryssrutan för visa kanalnivåer + Visa kryssrutan för visa kanalnivåer Audio Channels - Ljudkanaler + Ljudkanaler Selects the number of audio channels to be used for communication between client and server. There are three modes available: - Väljer antalet ljudkanaler som ska användas för kommunikation mellan klient och server. Det finns tre lägen tillgängliga: + Väljer antalet ljudkanaler som ska användas för kommunikation mellan klient och server. Det finns tre lägen tillgängliga: Mono - Mono + Mono and - och + och Stereo - Sterio + Stereo These modes use one and two audio channels respectively. - Dessa lägen använder respektive en och två ljudkanaler. + Dessa lägen använder respektive en och två ljudkanaler. Mono in/Stereo-out - Mono in/Stereo-ut + Mono in/Stereo-ut The audio signal sent to the server is mono but the return signal is stereo. This is useful if the sound card has the instrument on one input channel and the microphone on the other. In that case the two input signals can be mixed to one mono channel but the server mix is heard in stereo. - Ljudsignalen som skickas till servern är mono men retursignalen är stereo. Detta är användbart om ljudkortet har instrumentet på en ingångskanal och mikrofonen på den andra. I så fall kan de två insignalerna blandas till en monokanal men servermixen hörs i stereo. + Ljudsignalen som skickas till servern är mono men retursignalen är stereo. Detta är användbart om ljudkortet har instrumentet på en ingångskanal och mikrofonen på den andra. I så fall kan de två insignalerna blandas till en monokanal men servermixen hörs i stereo. Enabling - Möjliggör + Möjliggör mode will increase your stream's data rate. Make sure your upload rate does not exceed the available upload speed of your internet connection. - kommer att öka dataströmmen. Se till att din uppladdningshastighet inte överstiger den tillgängliga uppladdningshastigheten för din internetanslutning. + kommer att öka dataströmmen. Se till att din uppladdningshastighet inte överstiger den tillgängliga uppladdningshastigheten för din internetanslutning. In stereo streaming mode, no audio channel selection for the reverb effect will be available on the main window since the effect is applied to both channels in this case. - I stereo-strömningsläge kommer inget val av ljudkanal för reverb-effekten att finnas tillgängligt i huvudfönstret eftersom effekten tillämpas på båda kanalerna i detta fall. + I stereo-strömningsläge kommer inget val av ljudkanal för reverb-effekten att finnas tillgängligt i huvudfönstret eftersom effekten tillämpas på båda kanalerna i detta fall. Audio channels combo box - Kombineringsknapp för ljudkanalerna + Kombineringsknapp för ljudkanalerna Audio Quality - Ljudkvalitet + Ljudkvalitet The higher the audio quality, the higher your audio stream's data rate. Make sure your upload rate does not exceed the available bandwidth of your internet connection. - Ju högre ljudkvalitet, desto högre datahastighet krävs. Se till att din uppladdningshastighet inte överstiger den tillgängliga bandbredden för din internetanslutning. + Ju högre ljudkvalitet, desto högre datahastighet krävs. Se till att din uppladdningshastighet inte överstiger den tillgängliga bandbredden för din internetanslutning. Audio quality combo box - Kombineringsknapp för ljudkvalitet + Kombineringsknapp för ljudkvalitet New Client Level - Ny klientnivå + Ny klientnivå This setting defines the fader level of a newly connected client in percent. If a new client connects to the current server, they will get the specified initial fader level if no other fader level from a previous connection of that client was already stored. - Denna inställning definierar fadernivån för en nyansluten klient i procent. Om en ny klient ansluter till den aktuella servern, kommer de att få den angivna initiala fader-nivån om ingen annan fader-nivå från en tidigare anslutning av den klienten redan lagrats. + Denna inställning definierar fadernivån för en nyansluten klient i procent. Om en ny klient ansluter till den aktuella servern, kommer de att få den angivna initiala fader-nivån om ingen annan fader-nivå från en tidigare anslutning av den klienten redan lagrats. New client level edit box - Redigeringsruta för en ny klient + Redigeringsruta för en ny klient Custom Central Server Address - Anpassad central serveradress + Anpassad central serveradress Leave this blank unless you need to enter the address of a central server other than the default. - Lämna detta tomt om du inte behöver ange adressen till en annan central server än standard. + Lämna detta tomt om du inte behöver ange adressen till en annan central server än standard. Central server address line edit - Ändra central serveradress + Ändra centralserveradress Current Connection Status Parameter - Parameter för aktuell anslutningsstatus + Parameter för aktuell anslutningsstatus The Ping Time is the time required for the audio stream to travel from the client to the server and back again. This delay is introduced by the network and should be about 20-30 ms. If this delay is higher than about 50 ms, your distance to the server is too large or your internet connection is not sufficient. - Ping-tiden är den tid som krävs för ljudströmmen att resa från klienten till servern och tillbaka igen. Denna fördröjning införs av nätverket och bör vara cirka 20-30 ms. Om denna fördröjning är högre än cirka 50 ms är ditt avstånd till servern för stort eller din internetanslutning är inte tillräcklig. + Ping-tiden är den tid som krävs för ljudströmmen att resa från klienten till servern och tillbaka igen. Denna fördröjning införs av nätverket och bör vara cirka 20-30 ms. Om denna fördröjning är högre än cirka 50 ms är ditt avstånd till servern för stort eller din internetanslutning är inte tillräcklig. Overall Delay is calculated from the current Ping Time and the delay introduced by the current buffer settings. - Övergripande fördröjning beräknas utifrån den aktuella Ping-tiden och den fördröjning som införts av de aktuella buffertinställningarna. + Övergripande fördröjning beräknas utifrån den aktuella Ping-tiden och den fördröjning som införts av de aktuella buffertinställningarna. Audio Upstream Rate depends on the current audio packet size and compression setting. Make sure that the upstream rate is not higher than your available internet upload speed (check this with a service such as speedtest.net). - Uppströmsfrekvensen för ljudet beror på den aktuella ljudpaketstorleken och komprimeringsinställningen. Se till att uppströmshastigheten inte är högre än din tillgängliga internetuppladdningshastighet (kolla detta med en tjänst som exempelvis speedtest.net). + Uppströmsfrekvensen för ljudet beror på den aktuella ljudpaketstorleken och komprimeringsinställningen. Se till att uppströmshastigheten inte är högre än din tillgängliga internetuppladdningshastighet (kolla detta med en tjänst som exempelvis speedtest.net). If this LED indicator turns red, you will not have much fun using the - Om den här LED-indikatorn blir röd kommer du inte ha så kul med att använda + Om den här LED-indikatorn blir röd kommer du inte ha så kul med att använda software. - applikationen. + applikationen. ASIO Setup - Inställningar för ASIO + Inställningar för ASIO Mono-in/Stereo-out - Mono-in/Stereo-ut + Mono-in/Stereo-ut Low - Låg + Låg Normal - Normal + Normal High - Hög + Hög Fancy - Fancy + Fancy Compact - Kompakt + Kompakt preferred - föredraget + föredraget Size: - Storlek: + Storlek: Buffer Delay - Buffertfördröjning + Buffertfördröjning Buffer Delay: - Buffertfördröjning: + Buffertfördröjning: The selected audio device could not be used because of the following error: - Den valda ljudenheten kunde inte användas på grund av följande fel: + Den valda ljudenheten kunde inte användas på grund av följande fel: The previous driver will be selected. - Den föregående drivrutinen kommer att väljas. + Den föregående drivrutinen kommer att väljas. Ok - Okej + Okej Custom - Eget + Eget All Genres - Alla genrer + Alla genrer Genre Rock - Genre Rock + Genre Rock Genre Jazz - Genre Jazz + Genre Jazz Genre Classical/Folk/Choir - Genre Klassiskt/Folkmusik/Kör + Genre Klassiskt/Folkmusik/Kör Default - Standard + Standard @@ -1392,162 +1393,162 @@ Settings - Inställningar + Inställningar Soundcard - Ljudkort + Ljudkort Device - Enhet + Enhet Input Channel Mapping - Kanalval för ingång + Kanalval för ingång L - V + V R - H + H Output Channel Mapping - Kanalval för utgång + Kanalval för utgång Enable Small Network Buffers - Aktivera små nätverksbuffertar + Aktivera små nätverksbuffertar Buffer Delay - Buffertfördröjning + Buffertfördröjning (preferred) - (förvald) + (förvald) (default) - (standard) + (standard) (safe) - (säker) + (säker) Driver Setup - Drivrutinsinställningar + Drivrutinsinställningar Jitter Buffer - Jitterbuffert + Jitterbuffert Auto - Automatiskt + Automatiskt Local - Lokalt + Lokalt Server - Server + Server Size - Storlek + Storlek Misc - Blandat + Blandat Audio Channels - Ljudkanaler + Ljudkanaler Audio Quality - Ljudkvalitet + Ljudkvalitet New Client Level - Ny klientnivå + Ny klientnivå Skin - Skal + Skal Language - + Språk % - % + % Display Channel Levels - Visa kanalnivåer + Visa kanalnivåer Custom Central Server Address: - Anpassad central serveradress: + Anpassad centralserveradress: Audio Stream Rate - Ljudströmshastighet + Ljudströmshastighet val - val + val Ping Time - Pingtid + Pingtid Overall Delay - Total fördröjning + Total fördröjning @@ -1555,87 +1556,87 @@ Server List - Serverlista + Serverlista The Connection Setup window shows a list of available servers. Server operators can optionally list their servers by music genre. Use the List dropdown to select a genre, click on the server you want to join and press the Connect button to connect to it. Alternatively, double click on on the server name. Permanent servers (those that have been listed for longer than 48 hours) are shown in bold. - Inställningsfönstret visar en lista över tillgängliga servrar. Serveroperatörer kan valfritt lista sina servrar efter musikgenre. Använd rullgardinsmenyn Lista för att välja en genre, klicka på servern du vill gå med i och tryck på Anslutsknappen för att ansluta till den. Alternativt kan du dubbelklicka på servernamnet. Permanenta servrar (de som har listats längre än 48 timmar) visas med fet stil. + Inställningsfönstret visar en lista över tillgängliga servrar. Serveroperatörer kan valfritt lista sina servrar efter musikgenre. Använd rullgardinsmenyn Lista för att välja en genre, klicka på servern du vill gå med i och tryck på Anslutsknappen för att ansluta till den. Alternativt kan du dubbelklicka på servernamnet. Permanenta servrar (de som har listats längre än 48 timmar) visas med fet stil. Server list view - Serverlista + Serverlista Server Address - Serveradress + Serveradress If you know the IP address or URL of a server, you can connect to it using the Server name/Address field. An optional port number can be added after the IP address or URL using a colon as a separator, e.g, example.org: - Om du känner till en servers IP-adress eller URL kan du ansluta till den i fältet Servernamn/adress. Ett valfritt portnummer kan läggas till efter IP-adressen eller URL:en med ett kolon som separator, t.ex. exempel.org: + Om du känner till en servers IP-adress eller URL kan du ansluta till den i fältet Servernamn/adress. Ett valfritt portnummer kan läggas till efter IP-adressen eller URL:en med ett kolon som separator, t.ex. exempel.org: . The field will also show a list of the most recently used server addresses. - . Fältet visar också en lista över de senast använda serveradresserna. + . Fältet visar också en lista över de senast använda serveradresserna. Server address edit box - Serveradressens redigeringsruta + Serveradressens redigeringsruta Holds the current server IP address or URL. It also stores old URLs in the combo box list. - Visar den aktuella serverns IP-adress eller URL. Det lagrar också gamla URL:er i listan med kombinationsrutor. + Visar den aktuella serverns IP-adress eller URL. Det lagrar också gamla URL:er i listan med kombinationsrutor. Server List Selection - Val av server + Val av server Selects the server list to be shown. - Väljer server som ska visas. + Väljer server som ska visas. Server list selection combo box - Kombobox för val av serverlista + Kombobox för val av serverlista Filter - Filter + Filter The server list is filtered by the given text. Note that the filter is case insensitive. - Serverlistan filtreras av den givna texten. Observera att filtret är känsligt för stora och små bokstäver. + Serverlistan filtreras av den givna texten. Observera att filtret är känsligt för stora och små bokstäver. Filter edit box - Redigeringsrutan för filtrering + Redigeringsrutan för filtrering Show All Musicians - Visa alla musiker + Visa alla musiker If you check this check box, the musicians of all servers are shown. If you uncheck the check box, all list view items are collapsed. - Om du markerar den här kryssrutan visas musikerna på alla servrar. Om du avmarkerar kryssrutan minimeras alla listvyer. + Om du markerar den här kryssrutan visas musikerna på alla servrar. Om du avmarkerar kryssrutan minimeras alla listvyer. Show all musicians check box - Klickruta för att visa alla musiker + Klickruta för att visa alla musiker @@ -1643,57 +1644,57 @@ Connection Setup - Anslutningsinställning + Anslutningsinställning List - Lista + Lista Filter - Filter + Filter Show All Musicians - Visa alla musiker + Visa alla musiker Server Name - Servernamn + Servernamn Ping Time - Pingtid + Pingtid Musicians - Musiker + Musiker Location - Plats + Plats Server Name/Address - Servernamn/adress + Servernamn/ipadress (:port) C&ancel - Av&bryt + Av&bryt &Connect - &Anslut + &Anslut @@ -1701,28 +1702,28 @@ &Help - &Hjälp + &Hjälp Getting &Started... - Komma &igång ... + Komma &igång ... Software &Manual... - &Manual... + &Manual... What's &This - &Var är detta + &Var är detta &About... - &Om... + &Om... @@ -1730,12 +1731,12 @@ Restart Required - + Omstart krävs Please restart the application for the language change to take effect. - + Starta om applikationen för att språkändringen ska träda i kraft. @@ -1743,102 +1744,102 @@ I &agree to the above licence terms - Jag &accepterar ovanstående licensvillkor + Jag &accepterar ovanstående licensvillkor Accept - Acceptera + Acceptera Decline - Neka + Neka By connecting to this server and agreeing to this notice, you agree to the following: - Genom att ansluta till denna server och godkänna detta meddelande, samtycker du till följande: + Genom att ansluta till denna server och godkänna detta meddelande, samtycker du till följande: 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 - Du accepterar att all data, ljud eller andra verk som överförs till denna server ägs och skapas av dig eller dina licensgivare, och att du gör dessa data, ljud eller andra verk tillgängliga via följande Creative Commons-licens (för mer information om detta licens, se + Du accepterar att all data, ljud eller andra verk som överförs till denna server ägs och skapas av dig eller dina licensgivare, och att du gör dessa data, ljud eller andra verk tillgängliga via följande Creative Commons-licens (för mer information om detta licens, se You are free to: - Du är fri att: + Du är fri att: Share - Dela + Dela copy and redistribute the material in any medium or format - kopiera och omfördela materialet i vilket medium eller format som helst + kopiera och omfördela materialet i vilket medium eller format som helst Adapt - Anpssa + Anpssa remix, transform, and build upon the material - remixa, transformera och bygga vidare på materialet + remixa, transformera och bygga vidare på materialet The licensor cannot revoke these freedoms as long as you follow the license terms. - Licensgivaren kan inte återkalla dessa friheter så länge du följer licensvillkoren. + Licensgivaren kan inte återkalla dessa friheter så länge du följer licensvillkoren. Under the following terms: - Under följande villkor: + Under följande villkor: Attribution - Erkännande + Erkännande 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. - Du måste ge lämplig kredit, ange en länk till licensen och ange om ändringar gjordes. Du kan göra det på något rimligt sätt, men inte på något sätt som antyder att licensgivaren godkänner dig eller din användning. + Du måste ge lämplig kredit, ange en länk till licensen och ange om ändringar gjordes. Du kan göra det på något rimligt sätt, men inte på något sätt som antyder att licensgivaren godkänner dig eller din användning. NonCommercial - Icke-kommersiell + Ickekommersiell You may not use the material for commercial purposes. - Du får inte använda materialet för kommersiella ändamål. + Du får inte använda materialet för kommersiella ändamål. ShareAlike - Dela lika + Dela lika If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. - Om du remixar, omvandlar eller bygger på materialet måste du distribuera dina bidrag under samma licens som originalet. + Om du remixar, omvandlar eller bygger på materialet måste du distribuera dina bidrag under samma licens som originalet. No additional restrictions - Inga ytterligare begränsningar + Inga ytterligare begränsningar You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. - Du får inte tillämpa juridiska villkor eller tekniska åtgärder som lagligen begränsar andra från att göra något som licensen tillåter. + Du får inte tillämpa juridiska villkor eller tekniska åtgärder som lagligen begränsar andra från att göra något som licensen tillåter. @@ -1846,310 +1847,310 @@ No Name - Inget namn + Inget namn Musician Profile - Musikprofil + Musikprofil Alias/Name - Alias/Namn + Alias/Namn Instrument - Instrument + Instrument Country - Land + Land City - Stad + Stad Skill - Färdighetsnivå + Färdighetsnivå &Close - &Stäng + &Stäng None - Ingen + Ingen Beginner - Nybörjare + Nybörjare Intermediate - Mellannivå + Mellannivå Expert - Expert + Expert Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. - Skriv ditt namn eller ett alias här så att de andra musikerna du vill spela med vet vem du är. Du kan också lägga till en bild av instrumentet du spelar och en flagga för det land du befinner dig i. Din stad och din färdighetsnivå som spelar ditt instrument kan också läggas till. + Skriv ditt namn eller ett alias här så att de andra musikerna du vill spela med vet vem du är. Du kan också lägga till en bild av instrumentet du spelar och en flagga för det land du befinner dig i. Din stad och din färdighetsnivå som spelar ditt instrument kan också läggas till. What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. - Det du ställer in här visas på din fader på mixerkortet när du är ansluten till en Jamulus-server. Den här taggen kommer också att visas vid varje klient som är ansluten till samma server som du. + Det du ställer in här visas på din fader på mixerkortet när du är ansluten till en Jamulus-server. Den här taggen kommer också att visas vid varje klient som är ansluten till samma server som du. Alias or name edit box - Redigeringsruta för alias eller namn + Redigeringsruta för alias eller namn Instrument picture button - Knapp för instrumentbild + Knapp för instrumentbild Country flag button - Knapp för landsflagga + Knapp för landsflagga City edit box - Redigeringsruta för stad + Redigeringsruta för stad Skill level combo box - kombinationsruta för färdighetsnivå + Kombinationsruta för färdighetsnivå Drum Set - Trumset + Trumset Djembe - Djembe + Djembe Electric Guitar - Elgitarr + Elgitarr Acoustic Guitar - Akustisk gitarr + Akustisk gitarr Bass Guitar - Basgitarr + Basgitarr Keyboard - Klaviatur + Klaviatur Synthesizer - Synthesizer + Synthesizer Grand Piano - Flygel + Flygel Accordion - Dragspel + Dragspel Vocal - Sång + Sång Microphone - Mikrofon + Mikrofon Harmonica - Munspel + Munspel Trumpet - Trumpet + Trumpet Trombone - Trombon + Trombon French Horn - Valthorn + Valthorn Tuba - Tuba + Tuba Saxophone - Saxofon + Saxofon Clarinet - Klarinett + Klarinett Flute - Flöjt + Flöjt Violin - Fiol + Fiol Cello - Cello + Cello Double Bass - Kontrabas + Kontrabas Recorder - Inspelningsapparat + Inspelningsapparat Streamer - Streamer + Streamer Listener - Lyssnare + Lyssnare Guitar+Vocal - Gitarr+sång + Gitarr+Sång Keyboard+Vocal - Klaviatur+sång + Klaviatur+Sång Bodhran - Klaviatur+Sång + Klaviatur+Sång Bassoon - Fagott + Fagott Oboe - Oboe + Oboe Harp - Harpa + Harpa Viola - Altfiol + Altfiol Congas - Congas + Congas Bongo - Bongo + Bongo Vocal Bass - Sång (bas) + Sång (bas) Vocal Tenor - Sång (tenor) + Sång (tenor) Vocal Alto - Sång (alt) + Sång (alt) Vocal Soprano - Sång (sopran) + Sång (sopran) Banjo - Banjo + Banjo Mandolin - Mandolin + Mandolin Ukulele - Ukulele + Ukulele Bass Ukulele - Ukulele (bas) + Ukulele (bas) @@ -2157,283 +2158,283 @@ Client List - Klientlista + Klientlista The client list shows all clients which are currently connected to this server. Some information about the clients like the IP address and name are given for each connected client. - Klientlistan visar alla klienter som för närvarande är anslutna till den här servern. Viss information om klienterna som IP-adressen och namnet ges för varje ansluten klient. + Klientlistan visar alla klienter som för närvarande är anslutna till den här servern. Viss information om klienterna som IP-adressen och namnet ges för varje ansluten klient. Connected clients list view - Lista över anslutna klienter + Lista över anslutna klienter Start Minimized on Operating System Start - Start Minimerad vid operativsystemets start + Starta Minimerad vid operativsystemets start If the start minimized on operating system start check box is checked, the server will be started when the operating system starts up and is automatically minimized to a system task bar icon. - Om kryssrutan Starta minimerad på operativsystemets start är markerad kommer servern att startas när operativsystemet startar och minimeras automatiskt till en ikon för systemaktivitetsfält. + Om kryssrutan Starta minimerad på operativsystemets start är markerad kommer servern att startas när operativsystemet startar och minimeras automatiskt till en ikon för systemaktivitetsfält. Show Creative Commons Licence Dialog - Visa Creative Commons licensedialog + Visa Creative Commons licensedialog If enabled, a Creative Commons BY-NC-SA 4.0 Licence dialog is shown each time a new user connects the server. - Om den är aktiverad visas en Creative Commons BY-NC-SA 4.0 licensdialog varje gång en ny användare ansluter till servern. + Om den är aktiverad visas en Creative Commons BY-NC-SA 4.0 licensdialog varje gång en ny användare ansluter till servern. Make My Server Public - Gör min server publik + Gör min server publik If the Make My Server Public check box is checked, this server registers itself at the central server so that all users of the application can see the server in the connect dialog server list and connect to it. The registration of the server is renewed periodically to make sure that all servers in the connect dialog server list are actually available. - Om kryssrutan Gör min server publik är markerad, registrerar den här servern sig själv på den centrala servern så att alla användare av applikationen kan se servern i anslutningsdialogens serverlista och ansluta till den. Registreringen av servern förnyas regelbundet för att se till att alla servrar i listan för anslutningsdialogserver är tillgängliga. + Om kryssrutan Gör min server publik är markerad, registrerar den här servern sig själv på den centrala servern så att alla användare av applikationen kan se servern i anslutningsdialogens serverlista och ansluta till den. Registreringen av servern förnyas regelbundet för att se till att alla servrar i listan för anslutningsdialogserver är tillgängliga. Register Server Status - Serverstatus om registrerad + Serverstatus om servern är registrerad If the Make My Server Public check box is checked, this will show whether registration with the central server is successful. If the registration failed, please choose another server list. - Om kryssrutan Gör min server publik är markerad kommer detta att visa om registrering med den centrala servern är gjord. Om registreringen misslyckades, välj en annan serverlista. + Om kryssrutan Gör min server publik är markerad kommer detta att visa om registrering med den centrala servern är gjord. Om registreringen misslyckades, välj en annan serverlista. Custom Central Server Address - Anpassad central serveradress + Anpassad centralserveradress The custom central server address is the IP address or URL of the central server at which the server list of the connection dialog is managed. - Den anpassade centrala serveradressen är IP-adressen eller URL:en för den centrala servern där serverlistan hanteras. + Den anpassade centralserveradressen är IP-adressen eller URL:en för den centrala servern där serverlistan hanteras. Central server address line edit - Ändra anpassad central serveradress + Ändra anpassad centralserveradress Server List Selection - Val av serverlista + Val av serverlista Selects the server list (i.e. central server address) in which your server will be added. - Väljer serverlistan (dvs. central serveradress) där servern ska läggas till. + Väljer serverlistan (dvs. centralserveradress) där servern ska läggas till. Server list selection combo box - Kombineringsknapp för val av serverlista + Kombineringsknapp för val av serverlista Server Name - Servernamn + Servernamn The server name identifies your server in the connect dialog server list at the clients. - Servernamnet identifierar din server i anslutningsdialogens serverlista hos klienterna. + Servernamnet identifierar din server i anslutningsdialogens serverlista hos klienterna. Server name line edit - Ändra servernamnet + Ändra servernamnet Location City - Stad + Stad The city in which this server is located can be set here. If a city name is entered, it will be shown in the connect dialog server list at the clients. - Här kan man visa serverns plats. Om en stad anges kommer det att visas i listan för anslutningsdialogserver på klienterna. + Här kan man visa serverns plats. Om en stad anges kommer det att visas i listan för anslutningsdialogserver på klienterna. City where the server is located line edit - Ändra var servern befinner sig + Ändra var servern befinner sig Location country - Land + Land The country in which this server is located can be set here. If a country is entered, it will be shown in the connect dialog server list at the clients. - Landet där servern ligger kan skrivas in här. Om ett land anges kommer det att visas i listan för anslutningsdialogserver på klienterna. + Landet där servern ligger kan skrivas in här. Om ett land anges kommer det att visas i listan för anslutningsdialogserver på klienterna. Country where the server is located combo box - Kombineringsknapp för val av serverplacering + Kombineringsknapp för val av serverplacering Display dialog to select recording directory button - + Knapp för att visa dialogruta för att välja inspelningskatalog Main Recording Directory - + Huvudinspelningskatalog Click the button to open the dialog that allows the main recording directory to be selected.The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). - + Klicka på knappen för att öppna dialogrutan som gör det möjligt att välja den huvudsakliga inspelningskatalogen. Den valda platsen måste finnas och vara skrivbar (tillåta skapandet av underkataloger av den användare som Jamulus körs via.). Main recording directory text box (read-only) - + Textruta för huvudinspelningskatalog (skrivskyddad) The current value of the main recording directory. The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). Click the button to open the dialog that allows the main recording directory to be selected. - + Det aktuella värdet för huvudinspelningskatalogen. Det valda värdet måste existera och vara skrivbart (tillåta skapandet av underkataloger av användaren som Jamulus körs av). Klicka på knappen för att öppna dialogrutan som gör det möjligt att välja huvudinspelningskatalogen. Clear the recording directory button - + Knappen för att rensa inspelningskatalogen Clear Recording Directory - + Rensa inspelningskatalogen Click the button to clear the currently selected recording directory. This will prevent recording until a new value is selected. - + Klicka på knappen för att rensa den valda inspelningskatalogen. Detta förhindrar inspelning tills ett ny plats valts. Checkbox to turn on or off server recording - Knapp för att slå på eller av serverinspelning + Knapp för att slå på eller av serverinspelning Enable Recorder - Starta serverinspelning + Starta serverinspelning Checked when the recorder is enabled, otherwise unchecked. The recorder will run when a session is in progress, if (set up correctly and) enabled. - Markerad när inspelaren är aktiverad, annars avmarkerad. Inspelaren kommer att köras när en session pågår, om (inställt korrekt och) aktiverat. + Markerad när inspelaren är aktiverad, annars avmarkerad. Inspelaren kommer att köras när en session pågår, om (inställt korrekt och) aktiverat. Current session directory text box (read-only) - Nuvarande inspelningskatalogtext (skrivskyddad) + Nuvarande inspelningskatalogtext (skrivskyddad) Current Session Directory - Aktuell inspelningskatalog + Aktuell inspelningskatalog Enabled during recording and holds the current recording session directory. Disabled after recording or when the recorder is not enabled. - Aktiverad under inspelning och har den aktuella inspelningskatalogen. Inaktiverad efter inspelning eller när inspelaren inte är aktiverad. + Aktiverad under inspelning och har den aktuella inspelningskatalogen. Inaktiverad efter inspelning eller när inspelaren inte är aktiverad. Recorder status label - Inspelningsstatusetikett + Inspelningsstatusetikett Recorder Status - Inspelningsstatus + Inspelningsstatus Displays the current status of the recorder. The following values are possible: - + Visar inspelarens aktuella status. Dessa värden är möjliga: No recording directory has been set or the value is not useable - + Ingen inspelningskatalog har ställts in eller värdet kan inte användas Recording has been switched off - + Inspelningen har stängts av by the UI checkbox - + genom kryssrutan , either by the UI checkbox or SIGUSR2 being received - + , antingen genom kryssrutan eller SIGUSR2 som tas emot There is no one connected to the server to record - + Det är ingen ansluten till servern att spela in The performers are being recorded to the specified session directory - + Artisterna spelas in i den angivna sessionskatalogen NOTE - + NOTERING If the recording directory is not useable, the problem will be displayed in place of the directory. - + Om inspelningskatalogen inte kan användas visas problemet istället för katalogen. Server welcome message edit box - + Serverns redigeringsruta för välkomstmeddelandet Server Welcome Message - + Serverns välkomstmeddelande A server welcome message text is displayed in the chat window if a musician enters the server. If no message is set, the server welcome is disabled. - + En välkomstmeddelandetext för servern visas i chattfönstret om en musiker kommer in på servern. Om inget meddelande är inställt är serverns välkomst inaktiverad. Type a message here. If no message is set, the server welcome is disabled. - + Skriv ett meddelande här. Om inget meddelande är inställt är serverns välkomst inaktiverad. ERROR - + FEL Displays the current status of the recorder. @@ -2442,40 +2443,40 @@ Request new recording button - Begär ny inspelningsknapp + Begär ny inspelningsknapp New Recording - Ny inspelning + Ny inspelning During a recording session, the button can be used to start a new recording. - Under en inspelningssession kan knappen användas för att starta en ny inspelning. + Under en inspelningssession kan knappen användas för att starta en ny inspelning. E&xit - A&vbryt + &Avbryt &Hide - &Göm + &Göm server - server + server &Open - &Öppna + &Öppna server @@ -2484,17 +2485,17 @@ Server - Server + Server &Window - &Fönster + &Fönster Select Main Recording Directory - + Välj huvudinspelningskatalog Predefined Address @@ -2503,72 +2504,72 @@ Recording - Inspelning + Inspelning Not recording - Inspelning inte aktiv + Inspelning inte aktiv Not initialised - + Inte initierad Not enabled - Inte aktiv + Inte aktiv Unregistered - Oregistrerad + Oregistrerad Bad address - Felaktig adress + Felaktig adress Registration requested - Registreringsförfrågan skickad + Registreringsförfrågan skickad Registration failed - Registrering misslyckades + Registrering misslyckades Check server version - Kontrollera serverversionen + Kontrollera serverversionen Registered - Regisrterad + Regisrterad Central Server full - Centrala servern är full + Centrala servern är full Your server version is too old - + Din serverversion är för gammal Requirements not fulfilled - + Kraven uppfylls inte Unknown value - Okänt värde + Okänt värde @@ -2576,99 +2577,99 @@ Client IP:Port - Klient IP:Port + Klient IP:Port Name - Namn + Namn Jitter Buffer Size - Jitter bufferstorlek + Jitterbufferstorlek Server Setup - + Serverinställningar Enable Jam Recorder - + Aktivera Jam-inspelning New Recording - Ny inspelning + Ny inspelning Chat Window Welcome (HTML/CSS Supported) - + Välkomstmeddelande som visas i chattfönstret (HTML/CSS stöds) Options - + Alternativ Language - + Språk Recording Directory - + Inspelningskatalog Start Minimized on Windows Start - Starta minimerad när Micosoft Windows startas + Starta minimerad när Micosoft Windows startas Show Creative Commons BY-NC-SA 4.0 Licence Dialog - Visa Creative Commons BY-NC-SA 4.0 licensdialog + Visa Creative Commons BY-NC-SA 4.0 licensdialog Make My Server Public (Register My Server in the Server List) - Gör min server publik (registrera min server i serverlistan) + Gör min server publik (registrera min server i serverlistan) Genre - Genre + Genre STATUS - STATUS + STATUS Custom Central Server Address: - Anpassad central serveradress: + Anpassad centralserveradress: My Server Info - Min serverinformation + Min serverinformation Location: City - Plats: Stad + Plats: Stad Location: Country - Plats: Land + Plats: Land Enable jam recorder @@ -2692,134 +2693,134 @@ Error closing stream: $s - Fel vid stängning av ström: $s + Fel vid stängning av ström: $s The Jack server is not running. This software requires a Jack server to run. Normally if the Jack server is not running this software will automatically start the Jack server. It seems that this auto start has not worked. Try to start the Jack server manually. - Jack-servern körs inte. Denna programvara kräver att en Jack-server körs. Normalt om Jack-servern inte kör startar programvaran automatiskt Jack-servern. Det verkar som om denna automatiska start inte har fungerat. Försök starta Jack-servern manuellt. + Jack-servern körs inte. Denna programvara kräver att en Jack-server körs. Normalt om Jack-servern inte kör startar programvaran automatiskt Jack-servern. Det verkar som om denna automatiska start inte har fungerat. Försök starta Jack-servern manuellt. The Jack server sample rate is different from the required one. The required sample rate is: - Jackservers samplingsfrekvens skiljer sig från den önskade. Den nödvändiga bithastigheten är: + Jackservers samplingsfrekvens skiljer sig från den önskade. Den nödvändiga bithastigheten är: You can use a tool like <i><a href=http://qjackctl.sourceforge.net>QJackCtl</a></i> to adjust the Jack server sample rate. - Du kan använda ett verktyg som <i><a href=http://qjackctl.sourceforge.net>QJackCtl</a></i> to adjust the Jack server sample rate. + Du kan använda ett verktyg som <i><a href=http://qjackctl.sourceforge.net>QJackCtl</a></i> för att justera Jack-serverns samplingsfrekvens. Make sure to set the Frames/Period to a low value like - Se till att ställa in ramarna/perioden till ett så lågt värde som + Se till att ställa in ramarna/perioden till ett så lågt värde som to achieve a low delay. - för att uppnå en låg fördröjning. + för att uppnå en låg fördröjning. The Jack port registering failed. - Registreringen av Jack-porten misslyckades. + Registreringen av Jack-porten misslyckades. Cannot activate the Jack client. - Kan inte aktivera Jack-klienten. + Kan inte aktivera Jack-klienten. The Jack server was shut down. This software requires a Jack server to run. Try to restart the software to solve the issue. - Jack-servern stängdes av. Denna programvara kräver att en Jack-server körs. Försök starta om programvaran för att lösa problemet. + Jack-servern stängdes av. Denna programvara kräver att en Jack-server körs. Försök starta om programvaran för att lösa problemet. CoreAudio input AudioHardwareGetProperty call failed. It seems that no sound card is available in the system. - CoreAudio-ingång AudioHardwareGetProperty misslyckades. Det verkar som om det inte finns något ljudkort i systemet. + CoreAudio-ingång AudioHardwareGetProperty misslyckades. Det verkar som om det inte finns något ljudkort i systemet. CoreAudio output AudioHardwareGetProperty call failed. It seems that no sound card is available in the system. - CoreAudio-utgång AudioHardwareGetProperty misslyckades. Det verkar som om det inte finns något ljudkort i systemet. + CoreAudio-utgång AudioHardwareGetProperty misslyckades. Det verkar som om det inte finns något ljudkort i systemet. Current system audio input device sample rate of %1 Hz is not supported. Please open the Audio-MIDI-Setup in Applications->Utilities and try to set a sample rate of %2 Hz. - Nuvarande systemljudingångsenhetens samplingsfrekvens för %1 Hz stöds inte. Öppna Audio-MIDI-installationen i Applications->Utilities och försök att ställa in en samplingsfrekvens på %2 Hz. + Nuvarande systemljudingångsenhetens samplingsfrekvens för %1 Hz stöds inte. Öppna Audio-MIDI-installationen i Applications->Utilities och försök att ställa in en samplingsfrekvens på %2 Hz. Current system audio output device sample rate of %1 Hz is not supported. Please open the Audio-MIDI-Setup in Applications->Utilities and try to set a sample rate of %2 Hz. - Nuvarande systemljudutgångsenhetens samplingsfrekvens för %1 Hz stöds inte. Öppna Audio-MIDI-installationen i Applications->Utilities och försök att ställa in en samplingshastighet på %2 Hz. + Nuvarande systemljudutgångsenhetens samplingsfrekvens för %1 Hz stöds inte. Öppna Audio-MIDI-installationen i Applications->Utilities och försök att ställa in en samplingshastighet på %2 Hz. The audio input stream format for this audio device is not compatible with this software. - Ljudingångsströmformatet för denna ljudenhet är inte kompatibelt med den här programvaran. + Ljudingångsströmformatet för denna ljudenhet är inte kompatibelt med den här programvaran. The audio output stream format for this audio device is not compatible with this software. - Ljudutmatningsströmformatet för denna ljudenhet är inte kompatibelt med den här programvaran. + Ljudutmatningsströmformatet för denna ljudenhet är inte kompatibelt med den här programvaran. The buffer sizes of the current input and output audio device cannot be set to a common value. Please choose other input/output audio devices in your system settings. - Buffertstorlekarna för den aktuella ingångs- och utgångsljudenheten kan inte ställas in på ett gemensamt värde. Välj andra input/output-ljudenheter i systeminställningarna. + Buffertstorlekarna för den aktuella ingångs- och utgångsljudenheten kan inte ställas in på ett gemensamt värde. Välj andra input/output-ljudenheter i systeminställningarna. The audio driver could not be initialized. - Ljuddrivrutinen kunde inte initialiseras. + Ljuddrivrutinen kunde inte initialiseras. The audio device does not support the required sample rate. The required sample rate is: - Ljudenheten stöder inte den valda samplingsfrekvensen. Den valda provhastigheten är: + Ljudenheten stöder inte den valda samplingsfrekvensen. Den valda provhastigheten är: The audio device does not support setting the required sampling rate. This error can happen if you have an audio interface like the Roland UA-25EX where you set the sample rate with a hardware switch on the audio device. If this is the case, please change the sample rate to - Ljudenheten stöder inte inställning av önskad samplingsfrekvens. Det här felet kan hända om du har ett ljudgränssnitt som Roland UA-25EX där du ställer in samtalstakten med en hårdvaruskontakt på ljudenheten. Om detta är fallet, ändra provhastigheten till + Ljudenheten stöder inte inställning av önskad samplingsfrekvens. Det här felet kan hända om du har ett ljudgränssnitt som Roland UA-25EX där du ställer in samtalstakten med en hårdvaruskontakt på ljudenheten. Om detta är fallet, ändra provhastigheten till Hz on the device and restart the - Hz på enheten och starta om + Hz på enheten och starta om software. - applikationen. + applikationen. The audio device does not support the required number of channels. The required number of channels for input and output is: - Ljudenheten stöder inte det valda antalet kanaler. Det valda antalet kanaler för in- och utmatning är: + Ljudenheten stöder inte det valda antalet kanaler. Det valda antalet kanaler för in- och utmatning är: Required audio sample format not available. - Nödvändigt ljudformat är inte tillgängligt. + Nödvändigt ljudformat är inte tillgängligt. No ASIO audio device (driver) found. - Ingen ASIO-ljudenhet (drivrutin) hittades. + Ingen ASIO-ljudenhet (drivrutin) hittades. The - + Programvaran software requires the low latency audio interface ASIO to work properly. This is not a standard Windows audio interface and therefore a special audio driver is required. Either your sound card has a native ASIO driver (which is recommended) or you might want to use alternative drivers like the ASIO4All driver. - Programvaran kräver det låga latentljudgränssnittet ASIO för att fungera korrekt. Detta är inte ett vanligt Windows ljudgränssnitt och därför krävs en speciell ljuddrivrutin. Antingen har ditt ljudkort en inbyggd ASIO-drivrutin (som rekommenderas) eller så kanske du vill använda alternativa drivrutiner som ASIO4All-drivrutinen. + kräver det låga latentljudgränssnittet ASIO för att fungera korrekt. Detta är inte ett vanligt Windows ljudgränssnitt och därför krävs en speciell ljuddrivrutin. Antingen har ditt ljudkort en inbyggd ASIO-drivrutin (som rekommenderas) eller så kanske du vill använda alternativa drivrutiner som ASIO4All-drivrutinen. @@ -2827,47 +2828,47 @@ Invalid device selection. - Ogiltigt enhetsval. + Ogiltigt enhetsval. The audio driver properties have changed to a state which is incompatible with this software. The selected audio device could not be used because of the following error: - Ljuddrivrutinens egenskaper har ändrats till ett tillstånd som inte är kompatibelt med den här programvaran. Den valda ljudenheten kunde inte användas på grund av följande fel: + Ljuddrivrutinens egenskaper har ändrats till ett tillstånd som inte är kompatibelt med den här programvaran. Den valda ljudenheten kunde inte användas på grund av följande fel: Please restart the software. - Starta om programvaran. + Starta om programvaran. Close - Stäng + Stäng No usable - Ingen användbar + Ingen användbar audio device (driver) found. - ljudenhet (drivrutin) hittades. + ljudenhet (drivrutin) hittades. In the following there is a list of all available drivers with the associated error message: - I det följande finns en lista över alla tillgängliga drivrutiner med tillhörande felmeddelande: + I det följande finns en lista över alla tillgängliga drivrutiner med tillhörande felmeddelande: Do you want to open the ASIO driver setups? - Vill du öppna ASIO-drivrutinens inställningar? + Vill du öppna ASIO-drivrutinens inställningar? could not be started because of audio interface issues. - kunde inte startas på grund av problem med ljudgränssnittet. + kunde inte startas på grund av problem med ljudgränssnittet. @@ -2875,17 +2876,17 @@ , Version - , Version + , Version Internet Jam Session Software - Internet Jam Session Software + Internet Jam Session Software Released under the GNU General Public License (GPL) - Släppt under GNU General Public License (GPL) + Släppt under GNU General Public License (GPL) @@ -2893,7 +2894,7 @@ For more information use the What's This help (help menu, right mouse button or Shift+F1) - För mer information använd hjälpen (hjälpmeny, höger musknapp eller Shift + F1) + För mer information använd hjälpen (hjälpmeny, höger musknapp eller Shift + F1) From 2c99a6fc5b0ddf65b5fbd528924bdc9eab5ea53b Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 13 Jul 2020 19:34:50 +0200 Subject: [PATCH 389/936] update translations --- src/res/translation/translation_de_DE.ts | 92 +++++++++++------------ src/res/translation/translation_es_ES.ts | 92 +++++++++++------------ src/res/translation/translation_fr_FR.ts | 92 +++++++++++------------ src/res/translation/translation_it_IT.ts | 92 +++++++++++------------ src/res/translation/translation_nl_NL.ts | 92 +++++++++++------------ src/res/translation/translation_pl_PL.ts | 92 +++++++++++------------ src/res/translation/translation_pt_BR.ts | 92 +++++++++++------------ src/res/translation/translation_pt_PT.ts | 92 +++++++++++------------ src/res/translation/translation_sv_SE.qm | Bin 93788 -> 102981 bytes src/res/translation/translation_sv_SE.ts | 92 +++++++++++------------ 10 files changed, 414 insertions(+), 414 deletions(-) diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index 5cedf2e934..2d0ff5a3f3 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -2207,7 +2207,7 @@ - + None Kein @@ -2285,212 +2285,212 @@ Was man hier sieht wird auch am Fader im Mixer angezeigt, wenn du mit einem Server verbunden bist. Dieses Schild wird auch bei allen anderen Musikern, die mit dem gleichen Server verbunden sind, angezeigt. - + 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 - + Vocal Bass Gesang Bass - + Vocal Tenor Gesang Tenor - + Vocal Alto Gesang Alt - + Vocal Soprano Gesang Sopran - + Banjo Banjo - + Mandolin Mandoline - + Ukulele - + Bass Ukulele @@ -3273,17 +3273,17 @@ QCoreApplication - + , Version , Version - + Internet Jam Session Software Internet Jam Session Software - + Released under the GNU General Public License (GPL) Unter der GNU General Public License (GPL) diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index 097d572a55..a85ac8c68d 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -2231,7 +2231,7 @@ - + None Ninguno @@ -2309,212 +2309,212 @@ Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor Jamulus. Esta etiqueta también se mostrará en cada cliente conectado al mismo servidor que tú. - + 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 - + Vocal Bass Voz Bajo - + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Mandolina - + Ukulele Ukulele - + Bass Ukulele Ukulele Barítono @@ -3297,17 +3297,17 @@ QCoreApplication - + , Version , Versión - + Internet Jam Session Software Internet Jam Session Software - + Released under the GNU General Public License (GPL) Publicado bajo la GNU General Public License (GPL) diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index 9051e7d382..4e09feb56b 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -2227,7 +2227,7 @@ - + None Aucune @@ -2301,212 +2301,212 @@ Ce que vous réglez ici apparaîtra au niveau de votre chariot sur la table de mixage lorsque vous serez connecté à un serveur Jamulus. Cette étiquette sera également affichée dans chaque client qui est connecté au même serveur que vous. - + 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 - + Vocal Bass Voix basse - + Vocal Tenor Voix ténor - + Vocal Alto Voix alto - + Vocal Soprano Voix soprano - + Banjo Banjo - + Mandolin Mandoline - + Ukulele Ukulélé - + Bass Ukulele Ukulélé basse @@ -3285,17 +3285,17 @@ QCoreApplication - + , Version , version - + Internet Jam Session Software Logiciel de bœuf sur Internet - + Released under the GNU General Public License (GPL) Publié sous la licence publique générale GNU (GPL) diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index f5beac05ca..3948c52d91 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -2194,7 +2194,7 @@ - + None None @@ -2261,212 +2261,212 @@ Livello di Abilità - + Drum Set Batteria - + Djembe Djembe - + Electric Guitar Chitarra elettrica - + Acoustic Guitar Chitarra Acustica - + Bass Guitar Basso Elettrico - + Keyboard Tastiera - + Synthesizer Sintetizzatore - + Grand Piano Grand Piano - + Accordion Fisarmonica - + Vocal Voce - + Microphone Microfono - + Harmonica Armonica - + Trumpet Tromba - + Trombone Trombone - + French Horn Corno Francese - + Tuba Tuba - + Saxophone Sassofono - + Clarinet Clarinet - + Flute Flauto - + Violin Violino - + Cello Cello - + Double Bass Contrabbasso - + Recorder Recorder - + Streamer Streamer - + Listener Ascoltatore - + Guitar+Vocal Chitarra+Voce - + Keyboard+Vocal Tastiera+Voce - + Bodhran Bodhran - + Bassoon Fagotto - + Oboe Oboe - + Harp Arpa - + Viola Viola - + Congas Congas - + Bongo Bongo - + Vocal Bass Voce Basso - + Vocal Tenor Voce Tenore - + Vocal Alto Voce Alto - + Vocal Soprano Voce Soprano - + Banjo Banjo - + Mandolin Mandolino - + Ukulele Uculele - + Bass Ukulele Uculele Basso @@ -3237,17 +3237,17 @@ QCoreApplication - + , Version Versione, Versione - + Internet Jam Session Software Programma per Jam Session su Internet - + Released under the GNU General Public License (GPL) Rilasciato sotto licensa GNU General Public License (GPL) diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index 09e6c4cfe4..f3f5511f78 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -2182,7 +2182,7 @@ - + None Geen @@ -2249,212 +2249,212 @@ 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 - + Vocal Bass Bas (stem) - + Vocal Tenor Tenor (stem) - + Vocal Alto Alt (stem) - + Vocal Soprano Sopraan (stem) - + Banjo Banjo - + Mandolin Mandoline - + Ukulele Ukelele - + Bass Ukulele Ukelele-bas @@ -3237,17 +3237,17 @@ QCoreApplication - + , Version , Versie - + Internet Jam Session Software Internet Jamsessie Software - + Released under the GNU General Public License (GPL) Gereleased onder de GNU General Public License (GPL) diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index f569e2befc..e0f7108a18 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -1890,7 +1890,7 @@ nie jestem pewna - + None *nie jestem pewna Żaden @@ -1946,213 +1946,213 @@ nie jestem pewna - + Drum Set Zestaw perkusyjny - + Djembe Djembe - + Electric Guitar Gitara elektryczna - + Acoustic Guitar Gitara akustyczna - + Bass Guitar Gitara basowa - + Keyboard Keyboard - + Synthesizer Syntezator - + Grand Piano Fortepian - + Accordion Akordeon - + Vocal Wokal - + Microphone Mikrofon - + Harmonica Harmonijka ustna - + Trumpet Trąbka - + Trombone Puzon - + French Horn Waltornia - + Tuba Tuba - + Saxophone Saksofon - + Clarinet Klarnet - + Flute Flet - + Violin Skrzypce - + Cello Wiolonczela - + Double Bass Kontrabas - + Recorder *nie wiem Flet prosty - + Streamer Streamer - + Listener Słuchacz - + Guitar+Vocal Gitara+Wokal - + Keyboard+Vocal Keyboard+Wokal - + Bodhran Bodhran - + Bassoon Fagot - + Oboe Obój - + Harp Harfa - + Viola Altówka - + Congas Kongi - + Bongo Bongo - + Vocal Bass Bas - + Vocal Tenor Tenor - + Vocal Alto Alt - + Vocal Soprano Sopran - + Banjo Banjo - + Mandolin Mandolina - + Ukulele Ukulele - + Bass Ukulele Ukulele basowe @@ -2868,17 +2868,17 @@ nie jestem pewna QCoreApplication - + , Version - + Internet Jam Session Software - + Released under the GNU General Public License (GPL) diff --git a/src/res/translation/translation_pt_BR.ts b/src/res/translation/translation_pt_BR.ts index 6d1fa13af9..671fb8e73e 100644 --- a/src/res/translation/translation_pt_BR.ts +++ b/src/res/translation/translation_pt_BR.ts @@ -2214,7 +2214,7 @@ - + None Nenhum @@ -2288,212 +2288,212 @@ O que definir aqui aparecerá abaixo do seu fader no mixer quando estiver conectado a um servidor Jamulus. Esta etiqueta também será exibida em cada cliente que estiver conectado ao mesmo 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 - + Vocal Bass Voz Baixo - + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Bandolim - + Ukulele Ukulele - + Bass Ukulele Ukulele Baixo @@ -3276,17 +3276,17 @@ QCoreApplication - + , Version , Versão - + Internet Jam Session Software Programa de Jam Sessions pela Internet - + Released under the GNU General Public License (GPL) Lançado sob a Licença Pública Geral GNU (GPL) diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index 917b326761..a54ff38caf 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -2211,7 +2211,7 @@ - + None Nenhum @@ -2285,212 +2285,212 @@ O que definir aqui aparecerá por baixo do seu fader na secção de mistura quando estiver ligado a um servidor Esta etiqueta também será exibida em cada cliente que estiver ligado ao mesmo 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 - + Vocal Bass Voz Baixo - + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Bandolim - + Ukulele Ukulele - + Bass Ukulele Ukulele Baixo @@ -3273,17 +3273,17 @@ QCoreApplication - + , Version , Versão - + Internet Jam Session Software Programa de Jam Sessions pela Internet - + Released under the GNU General Public License (GPL) Lançado sob a Licença Pública Geral GNU (GPL) diff --git a/src/res/translation/translation_sv_SE.qm b/src/res/translation/translation_sv_SE.qm index f037a488a21e598049d860929cb473a8331cb83d..8b74070371c06becc9df27ec2f329d5c59699905 100644 GIT binary patch delta 11733 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 delta 5246 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 - + None Ingen @@ -1943,212 +1943,212 @@ Kombinationsruta för färdighetsnivå - + Drum Set Trumset - + Djembe Djembe - + Electric Guitar Elgitarr - + Acoustic Guitar Akustisk gitarr - + Bass Guitar Basgitarr - + Keyboard Klaviatur - + Synthesizer Synthesizer - + Grand Piano Flygel - + Accordion Dragspel - + Vocal Sång - + Microphone Mikrofon - + Harmonica Munspel - + Trumpet Trumpet - + Trombone Trombon - + French Horn Valthorn - + Tuba Tuba - + Saxophone Saxofon - + Clarinet Klarinett - + Flute Flöjt - + Violin Fiol - + Cello Cello - + Double Bass Kontrabas - + Recorder Inspelningsapparat - + Streamer Streamer - + Listener Lyssnare - + Guitar+Vocal Gitarr+Sång - + Keyboard+Vocal Klaviatur+Sång - + Bodhran Klaviatur+Sång - + Bassoon Fagott - + Oboe Oboe - + Harp Harpa - + Viola Altfiol - + Congas Congas - + Bongo Bongo - + Vocal Bass Sång (bas) - + Vocal Tenor Sång (tenor) - + Vocal Alto Sång (alt) - + Vocal Soprano Sång (sopran) - + Banjo Banjo - + Mandolin Mandolin - + Ukulele Ukulele - + Bass Ukulele Ukulele (bas) @@ -2874,17 +2874,17 @@ QCoreApplication - + , Version , Version - + Internet Jam Session Software Internet Jam Session Software - + Released under the GNU General Public License (GPL) Släppt under GNU General Public License (GPL) From 4620c1b3a633902c838686e8d0f0f945da6be7cf Mon Sep 17 00:00:00 2001 From: Melcon Moraes Date: Mon, 13 Jul 2020 17:37:42 -0300 Subject: [PATCH 390/936] Update translation_pt_BR.ts --- src/res/translation/translation_pt_BR.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/res/translation/translation_pt_BR.ts b/src/res/translation/translation_pt_BR.ts index 6d1fa13af9..dfdca78500 100644 --- a/src/res/translation/translation_pt_BR.ts +++ b/src/res/translation/translation_pt_BR.ts @@ -402,7 +402,7 @@ Mixer channel label (fader tag) - Identificação do canal d0 mixer (identificador do fader) + Identificação do canal do mixer (identificador do fader) @@ -811,7 +811,7 @@ &File - + &Arquivo @@ -950,12 +950,12 @@ &Load Mixer Channels Setup... - + &Carregar Configuração de Canais do Mixer... &Save Mixer Channels Setup... - + &Salvar Configuração de Canais do Mixer... @@ -981,7 +981,7 @@ Select Channel Setup File - + Selecione Arquivo de Configuraçao de Canal @@ -2800,17 +2800,17 @@ Server welcome message edit box - + Caixa de edição da mensagem de boas-vindas do servidor Server Welcome Message - + Mensagem de Boas-vindas do Servidor A server welcome message text is displayed in the chat window if a musician enters the server. If no message is set, the server welcome is disabled. - + Uma mensagem de boas-vindas é exibida na janela de chat se um músico entra no servidor. Se nenhuma mensagem for definida, a mensagem de boas-vindas do servidor é desativada. From b8ef2d414dfcda6031128e6d535c9b8b21faa18c Mon Sep 17 00:00:00 2001 From: Adrien David-Sivelle Date: Mon, 13 Jul 2020 22:02:19 -0400 Subject: [PATCH 391/936] Add 2 new instruments: Baritone and Lead vocals Used in barbershop and TTBB choirs, as well as a-capella groups --- src/res/instruments/vocalbaritone.png | Bin 0 -> 3036 bytes src/res/instruments/vocallead.png | Bin 0 -> 2563 bytes src/res/translation/translation_de_DE.ts | 22 ++++++++++++++++------ src/res/translation/translation_es_ES.ts | 22 ++++++++++++++++------ src/res/translation/translation_fr_FR.ts | 22 ++++++++++++++++------ src/res/translation/translation_it_IT.ts | 22 ++++++++++++++++------ src/res/translation/translation_nl_NL.ts | 22 ++++++++++++++++------ src/res/translation/translation_pl_PL.ts | 22 ++++++++++++++++------ src/res/translation/translation_pt_BR.ts | 20 +++++++++++++++----- src/res/translation/translation_pt_PT.ts | 22 ++++++++++++++++------ src/res/translation/translation_sv_SE.ts | 22 ++++++++++++++++------ src/resources.qrc | 2 ++ src/util.cpp | 2 ++ 13 files changed, 147 insertions(+), 53 deletions(-) create mode 100644 src/res/instruments/vocalbaritone.png create mode 100644 src/res/instruments/vocallead.png diff --git a/src/res/instruments/vocalbaritone.png b/src/res/instruments/vocalbaritone.png new file mode 100644 index 0000000000000000000000000000000000000000..b37dfa47d85f6d2d24e8b375bdca6dfec2d06608 GIT binary patch literal 3036 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 literal 0 HcmV?d00001 diff --git a/src/res/instruments/vocallead.png b/src/res/instruments/vocallead.png new file mode 100644 index 0000000000000000000000000000000000000000..59ec9866be7e6ee92f3552a40ec5958d3859055b GIT binary patch literal 2563 zcmY*bc|4n07k*=pU{LKKY9di-Es3P|1{G0B22=Y|+5|xqNh3xW8nu*a2ASGv?b z%u@isA|C+0Wfr$N<3x#Mnina^(Gk!UVHrRYqzs6Q5JNRN z!~h_b4oH0A_=x<@qKIs#=Cc8&Tp&~Y5oQ}~JIWUvx9SHymy*mcV z(Nhp5LEdyXFSeJXgGB%%97PRe_|s6FaOO@Gfa6$*U^tCUg>k~eA|fp~mhevu3lZK4 zqv5bm6!u9=xR>Kmm@R`vgBhcYP=;_TSr`n4V+96TxDbwfDHq)=;UR1`(*li-j*dn} zA4D-&!Dx)RxjEVpi^gINL=1z-m5K^2jxN=o5yiHI z!*?2eU7z2{rU(7oDI)UASfT;ZI~gg9_yv z`2`n~_RimE@jY_l9=>&~f0AMyhLmXMqg7ziR=hB&-(&aYu)qQB5q;qZ(`Qg?j+4(Z zMs1z0&enFfJ{BBM8~Jf*swy~RY_Ge}r0p?jYq@)0eqrL??Xi&GeIBrPHLFmnev_Ms zK1KPc73i>wJlk`!oj4P#M9>W*oy{eSXmhVy8)B4JxY2yych1Jy7ms9h; zkk)5PTW{8`6(hUk;BGHxs8z04P$>WWJ=@>GO>X_Hii|+MRm2yZ@3kcqCDat{nZM|C zvz1x!>s&|NRPBPy^M2rdpiilgs`$$2WNgw%YsXpSX_Hjdb>0Ssgm(o@nm;_?M<@Lljzs+wxzY#c|8A^ zs|3Au2Px^XRyj8*HY)E(2YqVWW$(Zxsz%)6v1JQrw%2u*XMNh%9YDZb{2ppDnWcas z$=DGl)EnaUZ;Z73)1`o8zgQvasjnL1P4cQ(hp#Ew47{7_TuwFhNz{`ykACGldVGDj zfhw;sX^GD0Sr@jY9zA?)yQBI}+bd|pynn^Hur|Q`NfxOHHe5>G4EZsCZ~!%8{B1Bd zMkk7CSn zu-R^6ekocbCk=`}^r`ufpZ6;nHJ?lg z^@@N*3oD&&-)^ym7iQd>1f1=tz3(?hPb0+x=X84;u_^`5T{j|(;CH)g$@ zyJWRybYA27q_?xI83gGqK_R8*o-eR zz5}5v?RL5>d0D{2o3Y}Z1u_as2Pd=zjz(au?jf#M%6f;*^rJ^O-`hRgB?4)M^OV#S zl$^F|XtHm*cmK%@nzN0M-CuuH!+*K*$cU=S)Sr^k`rd|452sRBE~gzzyRXdMXR@z( zEVP^M&J0{aE)O?YtF+tAY^(xdD?iis&%SDY;A)sfUYJ!|OoxQ_u7f#$@=4;uF7nmW zl$BOw-+*M;b7g0QiNOlALBO;A_#)bj`z)%`2#nM$K3u4l8yNPRPz&DHvtSfZ?@Zr! z`Eh?|{qd|qMO|gr_O1_mx;>yzo)?;$bbLH}rnwBt+bs$C1FOEaFMHv!S?u(24QrD# z%VigDE?_t2u{kU?8D)*}BCa6kcciZj%GO`nxYRh*LfHLIMc5Re zv%NhrUh0p{SbUoD{+FLCHs2w_$A%qiZulNgZru#}ix0`m*&gF|Na<-I@`%)sIE|9c zzw?@yAK)*mgIlW7^0ggD%{3*5H27+uVN1UnxL$egRx=|^)h>|4!J0btZdK5w;U;ocQ{YH%to}{z>iFS_U z)S=ji6*T{D*V&9aV8s^8>E>;1vg98r>VM~`KYFUK$Nk3b0{@ny^X?~wU2=>q{w~jF z_cNFJt?P$+eRnk~I@P%u&Y=Q4o6@w#rw>1IJfNdLE>rY?ue+E$-bZ#?@vU)xIPcbS zRrY{`t7?M7!vyah|0JK=U4myezE$l(ccYXw(0;#ue@*V5Ki>All0vq}eA@c`V}~K9 znN5RGe + Vocal Baritone + Gesang Bariton + + + + Vocal Lead + Gesang Lead + + + Vocal Tenor Gesang Tenor - + Vocal Alto Gesang Alt - + Vocal Soprano Gesang Sopran - + Banjo Banjo - + Mandolin Mandoline - + Ukulele - + Bass Ukulele diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index a85ac8c68d..d1928b057a 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -2485,36 +2485,46 @@ + Vocal Baritone + Voz Barítono + + + + Vocal Lead + Voz Lead + + + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Mandolina - + Ukulele Ukulele - + Bass Ukulele Ukulele Barítono diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index 4e09feb56b..9b4efc50cf 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -2477,36 +2477,46 @@ + Vocal Baritone + Voix bariton + + + + Vocal Lead + Voix lead + + + Vocal Tenor Voix ténor - + Vocal Alto Voix alto - + Vocal Soprano Voix soprano - + Banjo Banjo - + Mandolin Mandoline - + Ukulele Ukulélé - + Bass Ukulele Ukulélé basse diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index 3948c52d91..ef5a7768f4 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -2437,36 +2437,46 @@ + Vocal Baritone + Voce Baritono + + + + Vocal Lead + Voce Lead + + + Vocal Tenor Voce Tenore - + Vocal Alto Voce Alto - + Vocal Soprano Voce Soprano - + Banjo Banjo - + Mandolin Mandolino - + Ukulele Uculele - + Bass Ukulele Uculele Basso diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index f3f5511f78..d6b790ffd6 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -2425,36 +2425,46 @@ + Vocal Baritone + Bairton (stem) + + + + Vocal Lead + Lead (stem) + + + Vocal Tenor Tenor (stem) - + Vocal Alto Alt (stem) - + Vocal Soprano Sopraan (stem) - + Banjo Banjo - + Mandolin Mandoline - + Ukulele Ukelele - + Bass Ukulele Ukelele-bas diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index e0f7108a18..3ae4dffec3 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -2123,36 +2123,46 @@ nie jestem pewna + Vocal Baritone + Baryton + + + + Vocal Lead + Lead + + + Vocal Tenor Tenor - + Vocal Alto Alt - + Vocal Soprano Sopran - + Banjo Banjo - + Mandolin Mandolina - + Ukulele Ukulele - + Bass Ukulele Ukulele basowe diff --git a/src/res/translation/translation_pt_BR.ts b/src/res/translation/translation_pt_BR.ts index 671fb8e73e..008365dbc4 100644 --- a/src/res/translation/translation_pt_BR.ts +++ b/src/res/translation/translation_pt_BR.ts @@ -2469,31 +2469,41 @@ + Vocal Baritone + Voz Barítono + + + + Vocal Lead + Voz Lead + + + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Bandolim - + Ukulele Ukulele - + Bass Ukulele Ukulele Baixo diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index a54ff38caf..ce0dd2d709 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -2461,36 +2461,46 @@ + Vocal Baritone + Voz Barítono + + + + Vocal Lead + Voz Lead + + + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Bandolim - + Ukulele Ukulele - + Bass Ukulele Ukulele Baixo diff --git a/src/res/translation/translation_sv_SE.ts b/src/res/translation/translation_sv_SE.ts index a1116e6831..61c012beb1 100644 --- a/src/res/translation/translation_sv_SE.ts +++ b/src/res/translation/translation_sv_SE.ts @@ -2119,36 +2119,46 @@ + Vocal Baritone + Sång (baryton) + + + + Vocal Lead + Sång (lead) + + + Vocal Tenor Sång (tenor) - + Vocal Alto Sång (alt) - + Vocal Soprano Sång (sopran) - + Banjo Banjo - + Mandolin Mandolin - + Ukulele Ukulele - + Bass Ukulele Ukulele (bas) diff --git a/src/resources.qrc b/src/resources.qrc index c9bba96ec0..d0730d72ee 100755 --- a/src/resources.qrc +++ b/src/resources.qrc @@ -85,6 +85,8 @@ res/instruments/congas.png res/instruments/bongo.png res/instruments/vocalbass.png + res/instruments/vocalbaritone.png + res/instruments/vocallead.png res/instruments/vocaltenor.png res/instruments/vocalalto.png res/instruments/vocalsoprano.png diff --git a/src/util.cpp b/src/util.cpp index 9f3e7cbe90..f2c7461259 100755 --- a/src/util.cpp +++ b/src/util.cpp @@ -1107,6 +1107,8 @@ CVector& CInstPictures::GetTable ( const bool bRe vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Congas" ), ":/png/instr/res/instruments/congas.png", IC_PERCUSSION_INSTRUMENT ) ); vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Bongo" ), ":/png/instr/res/instruments/bongo.png", IC_PERCUSSION_INSTRUMENT ) ); vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Vocal Bass" ), ":/png/instr/res/instruments/vocalbass.png", IC_OTHER_INSTRUMENT ) ); + vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Vocal Baritone" ), ":/png/instr/res/instruments/vocalbaritone.png", IC_OTHER_INSTRUMENT ) ); + vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Vocal Lead" ), ":/png/instr/res/instruments/vocallead.png", IC_OTHER_INSTRUMENT ) ); vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Vocal Tenor" ), ":/png/instr/res/instruments/vocaltenor.png", IC_OTHER_INSTRUMENT ) ); vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Vocal Alto" ), ":/png/instr/res/instruments/vocalalto.png", IC_OTHER_INSTRUMENT ) ); vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Vocal Soprano" ), ":/png/instr/res/instruments/vocalsoprano.png", IC_OTHER_INSTRUMENT ) ); From 397100371eddba17d3d63000ac356cf9330df07a Mon Sep 17 00:00:00 2001 From: Adrien David-Sivelle Date: Tue, 14 Jul 2020 11:15:18 -0400 Subject: [PATCH 392/936] Improve vocal lead icon (larger notes) - Using the same image source than in the original image: https://commons.wikimedia.org/wiki/File:Africa_Music_ZP_8th_notes.svg --- src/res/instruments/vocallead.png | Bin 2563 -> 2640 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/res/instruments/vocallead.png b/src/res/instruments/vocallead.png index 59ec9866be7e6ee92f3552a40ec5958d3859055b..95a7eedec687ce7e0ec6b7ef6869f71a521bf676 100644 GIT binary patch delta 2045 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 Date: Tue, 14 Jul 2020 11:42:06 -0400 Subject: [PATCH 393/936] Fix instrument orders and translations after b8ef2d41 (#460) - Move the new instruments (Vocal lead and baritone) to the end of vecDataBase in util.cpp - Remove the partial translations for vocal leads - Fix lines references for translations that were altered in b8ef2d41 --- src/res/translation/translation_de_DE.ts | 32 ++++++++++++------------ src/res/translation/translation_es_ES.ts | 32 ++++++++++++------------ src/res/translation/translation_fr_FR.ts | 32 ++++++++++++------------ src/res/translation/translation_it_IT.ts | 32 ++++++++++++------------ src/res/translation/translation_nl_NL.ts | 32 ++++++++++++------------ src/res/translation/translation_pl_PL.ts | 32 ++++++++++++------------ src/res/translation/translation_pt_BR.ts | 30 +++++++++++----------- src/res/translation/translation_pt_PT.ts | 32 ++++++++++++------------ src/res/translation/translation_sv_SE.ts | 32 ++++++++++++------------ src/util.cpp | 4 +-- 10 files changed, 145 insertions(+), 145 deletions(-) diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index 53af4a6a0b..7d72ef7c8b 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -2461,49 +2461,49 @@ - Vocal Baritone - Gesang Bariton - - - - Vocal Lead - Gesang Lead - - - Vocal Tenor Gesang Tenor - + Vocal Alto Gesang Alt - + Vocal Soprano Gesang Sopran - + Banjo Banjo - + Mandolin Mandoline - + Ukulele - + Bass Ukulele + + + Vocal Baritone + Gesang Bariton + + + + Vocal Lead + + No Name diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index d1928b057a..2ca3930b47 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -2485,49 +2485,49 @@ - Vocal Baritone - Voz Barítono - - - - Vocal Lead - Voz Lead - - - Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Mandolina - + Ukulele Ukulele - + Bass Ukulele Ukulele Barítono + + + Vocal Baritone + Voz Barítono + + + + Vocal Lead + + No Name diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index 9b4efc50cf..03c3ba283b 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -2477,49 +2477,49 @@ - Vocal Baritone - Voix bariton - - - - Vocal Lead - Voix lead - - - Vocal Tenor Voix ténor - + Vocal Alto Voix alto - + Vocal Soprano Voix soprano - + Banjo Banjo - + Mandolin Mandoline - + Ukulele Ukulélé - + Bass Ukulele Ukulélé basse + + + Vocal Baritone + Voix baryton + + + + Vocal Lead + Voix principale + No Name diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index ef5a7768f4..b537269e5c 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -2437,49 +2437,49 @@ - Vocal Baritone - Voce Baritono - - - - Vocal Lead - Voce Lead - - - Vocal Tenor Voce Tenore - + Vocal Alto Voce Alto - + Vocal Soprano Voce Soprano - + Banjo Banjo - + Mandolin Mandolino - + Ukulele Uculele - + Bass Ukulele Uculele Basso + + + Vocal Baritone + Voce Baritono + + + + Vocal Lead + + No Name diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index d6b790ffd6..6f6858ccb3 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -2425,49 +2425,49 @@ - Vocal Baritone - Bairton (stem) - - - - Vocal Lead - Lead (stem) - - - Vocal Tenor Tenor (stem) - + Vocal Alto Alt (stem) - + Vocal Soprano Sopraan (stem) - + Banjo Banjo - + Mandolin Mandoline - + Ukulele Ukelele - + Bass Ukulele Ukelele-bas + + + Vocal Baritone + Bariton (stem) + + + + Vocal Lead + + No Name diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index 3ae4dffec3..edb9259372 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -2123,49 +2123,49 @@ nie jestem pewna - Vocal Baritone - Baryton - - - - Vocal Lead - Lead - - - Vocal Tenor Tenor - + Vocal Alto Alt - + Vocal Soprano Sopran - + Banjo Banjo - + Mandolin Mandolina - + Ukulele Ukulele - + Bass Ukulele Ukulele basowe + + + Vocal Baritone + Baryton + + + + Vocal Lead + + No Name diff --git a/src/res/translation/translation_pt_BR.ts b/src/res/translation/translation_pt_BR.ts index 008365dbc4..0a362ae039 100644 --- a/src/res/translation/translation_pt_BR.ts +++ b/src/res/translation/translation_pt_BR.ts @@ -2469,44 +2469,44 @@ - Vocal Baritone - Voz Barítono - - - - Vocal Lead - Voz Lead - - - Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Bandolim - + Ukulele Ukulele - + Bass Ukulele Ukulele Baixo + + + Vocal Baritone + Voz Barítono + + + + Vocal Lead + + No Name diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index ce0dd2d709..0687dab285 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -2461,49 +2461,49 @@ - Vocal Baritone - Voz Barítono - - - - Vocal Lead - Voz Lead - - - Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Bandolim - + Ukulele Ukulele - + Bass Ukulele Ukulele Baixo + + + Vocal Baritone + Voz Barítono + + + + Vocal Lead + + No Name diff --git a/src/res/translation/translation_sv_SE.ts b/src/res/translation/translation_sv_SE.ts index 61c012beb1..767d749b6a 100644 --- a/src/res/translation/translation_sv_SE.ts +++ b/src/res/translation/translation_sv_SE.ts @@ -2119,49 +2119,49 @@ - Vocal Baritone - Sång (baryton) - - - - Vocal Lead - Sång (lead) - - - Vocal Tenor Sång (tenor) - + Vocal Alto Sång (alt) - + Vocal Soprano Sång (sopran) - + Banjo Banjo - + Mandolin Mandolin - + Ukulele Ukulele - + Bass Ukulele Ukulele (bas) + + + Vocal Baritone + Sång (baryton) + + + + Vocal Lead + + CServerDlg diff --git a/src/util.cpp b/src/util.cpp index f2c7461259..978e4ae43e 100755 --- a/src/util.cpp +++ b/src/util.cpp @@ -1107,8 +1107,6 @@ CVector& CInstPictures::GetTable ( const bool bRe vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Congas" ), ":/png/instr/res/instruments/congas.png", IC_PERCUSSION_INSTRUMENT ) ); vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Bongo" ), ":/png/instr/res/instruments/bongo.png", IC_PERCUSSION_INSTRUMENT ) ); vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Vocal Bass" ), ":/png/instr/res/instruments/vocalbass.png", IC_OTHER_INSTRUMENT ) ); - vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Vocal Baritone" ), ":/png/instr/res/instruments/vocalbaritone.png", IC_OTHER_INSTRUMENT ) ); - vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Vocal Lead" ), ":/png/instr/res/instruments/vocallead.png", IC_OTHER_INSTRUMENT ) ); vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Vocal Tenor" ), ":/png/instr/res/instruments/vocaltenor.png", IC_OTHER_INSTRUMENT ) ); vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Vocal Alto" ), ":/png/instr/res/instruments/vocalalto.png", IC_OTHER_INSTRUMENT ) ); vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Vocal Soprano" ), ":/png/instr/res/instruments/vocalsoprano.png", IC_OTHER_INSTRUMENT ) ); @@ -1116,6 +1114,8 @@ CVector& CInstPictures::GetTable ( const bool bRe vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Mandolin" ), ":/png/instr/res/instruments/mandolin.png", IC_PLUCKING_INSTRUMENT ) ); vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Ukulele" ), ":/png/instr/res/instruments/ukulele.png", IC_PLUCKING_INSTRUMENT ) ); vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Bass Ukulele" ), ":/png/instr/res/instruments/bassukulele.png", IC_PLUCKING_INSTRUMENT ) ); + vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Vocal Baritone" ), ":/png/instr/res/instruments/vocalbaritone.png", IC_OTHER_INSTRUMENT ) ); + vecDataBase.Add ( CInstPictProps ( QCoreApplication::translate ( "CMusProfDlg", "Vocal Lead" ), ":/png/instr/res/instruments/vocallead.png", IC_OTHER_INSTRUMENT ) ); // now the table is initialized TableIsInitialized = true; From 0521b53e9c403c9a4a332e12c02714493cc7db81 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 14 Jul 2020 18:51:04 +0200 Subject: [PATCH 394/936] update translations --- src/res/translation/translation_de_DE.qm | Bin 109543 -> 109675 bytes src/res/translation/translation_de_DE.ts | 6 +++--- src/res/translation/translation_es_ES.qm | Bin 105845 -> 105973 bytes src/res/translation/translation_es_ES.ts | 6 +++--- src/res/translation/translation_fr_FR.qm | Bin 112229 -> 112387 bytes src/res/translation/translation_fr_FR.ts | 6 +++--- src/res/translation/translation_it_IT.qm | Bin 99359 -> 99489 bytes src/res/translation/translation_it_IT.ts | 6 +++--- src/res/translation/translation_nl_NL.qm | Bin 105453 -> 105585 bytes src/res/translation/translation_nl_NL.ts | 6 +++--- src/res/translation/translation_pl_PL.qm | Bin 14629 -> 14747 bytes src/res/translation/translation_pl_PL.ts | 6 +++--- src/res/translation/translation_pt_BR.qm | Bin 107777 -> 107905 bytes src/res/translation/translation_pt_BR.ts | 6 +++--- src/res/translation/translation_pt_PT.qm | Bin 100927 -> 101055 bytes src/res/translation/translation_pt_PT.ts | 6 +++--- src/res/translation/translation_sv_SE.qm | Bin 102981 -> 103113 bytes src/res/translation/translation_sv_SE.ts | 6 +++--- 18 files changed, 27 insertions(+), 27 deletions(-) diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index b49c9ecfb0732765cb649d43288241bd00f54275..57c0fe3c12f39e26506e7dc16d48c86f7affd87c 100644 GIT binary patch delta 1794 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 diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index 7d72ef7c8b..898737cfe2 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -3283,17 +3283,17 @@ QCoreApplication - + , Version , Version - + Internet Jam Session Software Internet Jam Session Software - + Released under the GNU General Public License (GPL) Unter der GNU General Public License (GPL) diff --git a/src/res/translation/translation_es_ES.qm b/src/res/translation/translation_es_ES.qm index c2ae6ab66a82c066444739ff2c85c4452ff50bb1..5b29cfe461f0d3d0efde5c5aadafcb8e6a590522 100644 GIT binary patch delta 1834 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 Ux4z;@!CTc{Bpv(JliZg42R5PuWdHyG diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index 2ca3930b47..f3ed6d54b6 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -3307,17 +3307,17 @@ QCoreApplication - + , Version , Versión - + Internet Jam Session Software Internet Jam Session Software - + Released under the GNU General Public License (GPL) Publicado bajo la GNU General Public License (GPL) diff --git a/src/res/translation/translation_fr_FR.qm b/src/res/translation/translation_fr_FR.qm index ac7ee4909873ca57b13f139972f6c21da7b1eff3..8d6f58f9198ce4116c178021d3d74ae21471e0c4 100644 GIT binary patch delta 1909 zcmYjRX;4&G7XHp_UcX-6d(C3YBG9%dZY(N@ae+jWVI3C362$@mMS);LSVl(!Bm-ic zL>#;_YJyRQFd8FjifD|Eh#HI-qj4?9nYf~eXrq&$gK?Q#Se2R|-Cx~Xb*seDpc4kA~YK;{F8T6h)YIs{R5xu9YTqK*af^XrHXsRM0}M)cBIps;#o7JP+* zDi$iN)wkgLGp9jsPh=N`DN*OpH!uyj_RS!YtqlERZvrn`NPPG$pdm7j4ggK^CFSZy zUV10F+};BUK0#BL{0$hHL6O0CK(92hWKH1gjkG24M_~E{YB=Z(N_V8~&Ut{&gWBH$ zZ}2D`UzY@Q&ZgtLcY!ii)1^n>f+qCP^~9$jkEe7ii{Gow)ScK0`Z$4I)GVgwEYu-H zs2aga9W1jS2>bGRsqsESYu{W@N`r8C{9fRIT{sfJHHe!jbR5hEj7+%sCT}!9TDX0` z2vp!K^q0H~?9{!)u2aIJij|!xFfj$k^1gD3A zV&d5-akPH7=F8HlpwDVpvKVG4Omay3%no|@2-_?M(mD2n7%t4sWM=Jr_b(i-UG@Q% z-EinW!Ug%Y$Dud49JFNxTcfqmR@SVw%swwpYTzQhFNo6~>;krhiqn-KKtEKRk@gj+ zMZH z{2;fH3tlU(w$*?l*0XFW!s(INplbtKI>m-nHqcBzc1T+5Ua!qG-vP?5YgcGBJZs(B z^3){IykM5C3lLU0vN~Oa^{)2kwsc^WulA8gFetB7``E$@&$DY^c=9HERrXA0vHl`? zMe>&48IVE-mVt&mk!D&x1*)5*ILj_jauW;HTjusk^9P=TmhX^?(=GrN(+83KJ*Cny z{H)YUOJh&-kr1USO*&}0pS11-7qRMhQr)K4K&4gE#;dJ7qbbrRIS%v(AF00n258&? zwpTxTY>ae$->V>Nhjin47ng6fbo0qEkY9<^W8v1up3})c*+JFS?3q4HDD+~XhV*fX zLv`OQ;09%_*B!5`0rvb!_g(n|kgiX!9<~E#|Dt#CD*?Uf&Dsrtbe{Da7759bEX^1u zEP0!4Hu^fR@HZ@6+{Nj185Z{Q57Za4i$;sJ#*jbnpCGp~gRSdx(9{k?;j>ks)DI0s zkvw5ruQRip61^zeaIu;{n$%(V*PauAIN#7Sfh#x1#c)@z=Zb2K4m(_dlmw$r6T`#c zVRRfBz%`s~oDy3MJUDBNnE4)v#j?G!#k$e>&Q-2p@V^5_wunfxZbu2a{HXifK`z@zU1}e zE%HeM*X4kGN*Bb}Q&Iv;Qv;^GVvz^Z)`L9j6}594_bEs5+$I8l4;n-&*r$w6HuE%y zioZM0UetgR(z^?^zMUOXBPw<)jX5@8@(^YF>#e}FHs$btIE#YtL8Rrfa;)t%aKu;n zZqWkX#bf1k7C)y=QO>yefHW0KcQ1EiUMC~Dot+A<#W`j#y^AP5;e@uladq2noZ%U^)71Jy(S>| zw)$St$DkRWDl>C0hmTPk{>zyreDD&B)~KIvO5*m_sIBK}fUzxVr+Eq}z)!s)jpU0m zM7>+ixt-jr-doLk^*_X79n7a zATH>B)A^e1z{4KX1@jdUT{iVTjsqI+m>xN*pjUlO10kuvJRj4*P8(>}6~2s{Zd4ka zzBV|Ke#AsKq@Vz~Scc)qLMDpvN0jgzn~vKFE&r)01q(9shtJ9^$}K6dWp8*th^!kd uK{P4I`~Th+@|U@=VFCXy2G&Rn>`I+0wzP7EUF%Krgi4?-mX delta 1731 zcmX9;YgAR$8lB%hXPURZLIL+t@+J4zpu2< z(0$urnfcYSQLX(oRcCEp$I|MLcFqPy+^w+mdB&cDIEw*Y6%Zq0fqjo5MokB;InTT) zLMUrt8B{zitOHSHW{~9&qL*C)dAK9GDjSqnf#?(d{5%Kqf~r6@M=)>gY>-`J7Ga#= z9AII>W*1+4cdiYTvy)vEf}_LHKNtdB{(2Z`Wk2puyaqgOB=O!ifR4yC-VgNrR#Go* z<)!!2$evF@fgvJR&X9B)EnOfsy@yx>N06H3)2S) zrCV5`-Wr!Ke38pbJy#_(^(TQ6M+(O#9Rv>b2`zqHg9VMknZp@?i3!&haiS}Z2t9Z5 zK+g5T{em}u{l+KQ^}R4qQU=;_nsw`~ws4){WItEzw$A&Z50L(w&h}LfX!~wmV2T|y zuZ8)F<6UgJ&kARNJ_1`T+T~TJ^p21EKyL)F?V>-0v$JA^u;eFZF{F<6)?e-z1H5`w z-`m0kd3ZyAE3g<;dxvc@Sjmkw7_4z~#cB0iq;&;i$lU|Lo-i>~4FFu85@$L-2Nk4> z_6M<`XXl8Kk9+}rqnKdkR^548Ok}*129ucPW$Y`}Km%O7m zWq#IUl>4Nh{rLzxI_9qi%yRd3An=7Zti#8g+euW#8ZeR_v zj}Z4yc2@SMxok*YE+iac878}s+sSsB#<{&-CojwF;%vL*W%qfVZQZQXWVJ!gUHS`X zRFUlL`WQ4LR9-#w7AR>*&Wqv!`Y@h(D~as1`@JG`^<^Ozo8W2n^R@)-Qy;0yBz^-@~@&5wa6`#%bfuYi2 zq$Qi!LDjD$u|;wGOXE@dR>?U$noo0!l5@=uNM5Vt9hls@A>-6xX48?Gb_90mDeECa6;STV K*&jgerT+(|R~Tae diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index 03c3ba283b..8d7a22f1f1 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -3295,17 +3295,17 @@ QCoreApplication - + , Version , version - + Internet Jam Session Software Logiciel de bœuf sur Internet - + Released under the GNU General Public License (GPL) Publié sous la licence publique générale GNU (GPL) diff --git a/src/res/translation/translation_it_IT.qm b/src/res/translation/translation_it_IT.qm index 3a97174fcc2dee847a1d049c7c66f7df4a69f827..da8f06f54995fcb29db423d6ad49bfa13c32462e 100644 GIT binary patch delta 1407 zcmX|>2~1R16o&uvW_h!`c>}~@1Yw3j5u=4+6hXA0QWh1ZRg_xIsB97x2Stp#m{_+q zK=oG9Xe3i>#EsHa)CQp_wT%r_YTb%;VKD}=T3bg%1$%=@Z}Rdd_nw>c|Mxq26+6`K zo$4X@wsm95RwGF0!qn`0AmvODOK>6v+L!q>f z1q!8tBZ!?6qI{gQ@w9h5@Y}NirOA5c5rzu^F)UDF_b#Q1v=$(`nB27%(74Z-Q(?B< zrW-GQ1P$@0wzM}OO$a^6tODL7(8IKPP~JGUN3lTgi)9`~H1)GEr6u0?6X8rgK)$<$ zA4b&xRV~7W@H|l1BjIvw4xo<{I%ZXaCIt(gq78uC_nlrZ6J8W=1r_R8iPCD@t59Eh z%7biE1irQa^F0dNxh0@w!xfPW;y@$svS#IQ-Mlf1Z&$^DRxVvYZ`#cZ7TP67brNF#fs(p&8~}fdd^guB!7of z{cpnpU}%=Q$I358Rjc0ygoAw6vK)=oc2x|V!h3&kRgCIg!_mizldXqa9Feuu<`z5Sq+0CA=B8n8NSK*{W8cQh9Nqy%x_y?WruGjYF^3QD>y9z592VTCZ0 zcKAqRq}X<5B1o8~<7VKa!+MP(1yBa)y@rK@rXAKt&sYhxdFhiU zZw6&fWX<|0VXT6wq-Z|!v69{Uw!ZbmpCEIh{(ed__ut4iN>*EsH0V146yzrbZsd(3 zj!2d=5AavefKp^KtCQ@-6_RtW4Dt$=mel%z0Ldp15*BZK6!C<(((uV_E&DH z@J0)0QKz)KgU`FGPGTcuKs!`AU~2%asF7-k+sqvOPH)bY8WW26+@F^&&20s&i=`&b z7*ND9scBas@cwbB*^vmar3Ra$S?YCu3DVXWkN$zzXGS%8Gc@z1qzR0VY1n=((q^z-*qiBJR6_NNwyfC zpH2l?DrK?Xhm&rT%~zfPd(`rfT#hE8i>;Eabdv3nQ{$JK<&BSz0FDzfGi8Dd2HE|R z+X_GOP7@Z%^;b)Q&`SB1DH=3*mHcQ^Jy17Me!Pn#i-36ZZ7`uD8xBc%KUwCl>K`V^CQS*S=ql~>LU7%rM{5Mimy`|N7 zw$(^~%Mt!aM**^sgCN8s1BJ*#5#Mp4Km)$i{FBoQvNH06;xh{KiprM{p~2<9SZKoF aw|xCyqkC5~Jtrf(yv>J9XEjzb=llm4WUUhb delta 1292 zcmXApdr(wW9LK-EyN|nj_wHSmaa~1ruPcS6E(=LZ+5qwr5F?eGN<&FR9^$H~BbrK6 zL&!{Gb|Q6jbhcz94WjYcPzV~D6B?<_|2JR=QRpt=s|Bl^rA7YBP8no~_3(#l^ zXAYrCh^%LIf;afRPV@~-1b)9eNSd^j1%z;6#0lomc&wqcGpiklDI*K$nYZFm{$)xPNth#O`w9~tXeZi81^d*XkzG7=GHnBZ8wF3#Q+T* zDI6Jl0H|*lS|SQT?o#1oV;*3N6S`(JfZ`j3!16VKf9P{|Y!n`pm4lXUVH>on>jjOz zwGUK0MC16^3Cs>?T!)MJc)uokP8?`VF*~IVm)>pBe7|A>sHB%Y(Z)#$N3_|ydO=eU zuoPWBIar-;?u20N)k|T((y7{;Exf{>T5V7CI?$pE+WQYD0pH!z1~RIE=nr(tGX|8N z93(j!Sc+aXT6M4ZxgXQ&*&@B&n52t)^d`tMhHcP01>Y`Kr?h@M}w-@IE()<8lx6ml%rE9s@ZmD3}FMzgPD(F59qB^PIVL!+dkcwyj0n+V|eAmALg?30w zo>YLMyQGpdp7LS`OEJA|O_aJLd4)3~q+3QKD6xRmne5gmQ_LI7fNMdf)PxT~@1J5F zCa(~^iJ9dX-tj52$69E*wD&JA|E%e1Mk?oYRxYcqa(T!;0i^Dh9c%fqku|b&V*t1_ za*#B>gSE<@bhn)SrNSd_kc%3Jb7|RfQC9?zwM{PmkvCpkhP>nk-~E+eE;-*0$|;dQ z@8a$5%aGYi3SbPAx4D{m8z-??v)wvHZhhwxpe~Tx4C6tOF)YvQd3m-xko^V7c)+Y& z+zpC2X%5}31Gbe7k`iW_y*>4yTsLbqr_yj{R#dCOe60C2uz$7r#DZM@oKCP<#U4fG zTRD8zx5#{VVkQr&-F$z4Cdlbk#HYc$ip7fkw_c!HuZ+m&1}Cp%<%&uZS&fpJSX85| zy{D~{15+^GyXY~dX=U#Rlw+4<)SSHG)$x1TGs^p6tCQ_i~!kpuvaa< zskv>IqxoFJq!!E3GG3!+gyn2iEzmj2a?bWQ(ARJ2>F3(Ej QCoreApplication - + , Version Versione, Versione - + Internet Jam Session Software Programma per Jam Session su Internet - + Released under the GNU General Public License (GPL) Rilasciato sotto licensa GNU General Public License (GPL) diff --git a/src/res/translation/translation_nl_NL.qm b/src/res/translation/translation_nl_NL.qm index 0829c3f8fe9eadd7bda5d7ad7630a420749d11de..9912112b51321e6c3ffa155f6e2ad6c98f2ff9b6 100644 GIT binary patch delta 1788 zcmX9;3shBA8vg!sIrrRqUKg<2g%P+wA)*tQ0xn+H2MJeF5U)HH9TWsnP|-{=kfwZK zOH=nCYNEqrqfDtZW;#QnMQZ9`t|rhdmjY^u#LY%*(9+q1XRWiowf8#vKmYgm_m9Vn z_l_I4JVSw7t#04@5XUp1{W8R)G@#+%5S>w=++yZWNkZvJR!D1JY=(2K1>~V(a=~?w zn2pJ`3qUhNFu65?uh%0bx)$_CBvM|T2pZvLRw0zGumoYVJkE#c`dPaWow7U| z?txg~tC@pHnNQFk)(!OSB=O$ofY3-vXgDa)K-%>kyml82x!nW`PN$gCzW_nmsOHJKHZvo2>7j#zIU~Ns{L5Ip@>$o1dnK8p~_zIu*X~yK3>F2`6xn*I|nrW zfpBu`O~wErG>aWH+QT};(G6U!;^|`SPn`Xpcf>et3}D(L#^-$mnsq{SJWK<5*0X-2 zJ^iX!EW8QI*d>-E=s;kKxG>6(J8?itfYW8295rP6-r6oHdSmeodOzni4E(^Kre)`6H=Y;>&ATR55Nkm zakbIFbLci!y<1cnzImu~!;uj7Y zvXO~qdr*($@8m3UeWmDul_0}hX@Y$ZP}wG>+7EFf1vbfS_dO%c8F&nuJ6l?o_cicp z@*vXC_gSUc7Is$J_63)5b*EIjb37<-inQZ;3r}mTv{Oyx>vPiX-CZEtZg#>vY=mc& z)cNr^kmaD%_4pzXif-~oyX1m?Uh9uJ?3Q8= z`bAze^Ba)ypj>vd5j3nxUh>;|uA4zFck(=~OJgBwW^kHGZePa_1#XeQZTbT6xGdip z#WhKvC-<1mpqw$RUbUrnD`TfF13HH&$rGwUtLhb(&+qx=;H}Ib9S-QqG} z)ZeuOiCo60``Y3B3{c`U?c~p#P0@`(r2M~Wt*0&mN6WRd^XGwLH?yf0+l!mDo@pmmYib%-z;)U-kjptMs8oJOQ%|tkz=p>eXYEjliSnx}%Th zW7-9F+LD}eL9gt6k9Sh7SC{Vs4R6qyl^dt)dc%J?uQ>Zt%&pTKck(IpS)#XmwHX+u z=vS;`L4HT|F6ntbN?Y}wD$bC= z0)xn=>Y0n@l z%##Wh8V<`L$BeM00%{Ifn#)AZBowqk5K_@Xo6e$Nd!4h^`Og0K-rslsuyn6VTGNd@ zKJaSuUIK9#1M03qj2Qz|d=D`;1T?Xo`BIFKTg9?y@jy3XSJ*&i4RM(bAaMfX*3AS> zI*7QFLHxWD@uBNL@6;lGZZznH1imhf*d8JHGaxhz_}tiy?-AlK8mh9{tDzbgKj1L z1+ui$o%DUc-&yoaQZ;DtPF82iCXq#&Lxr4DR%mvFO%}e$<)!Q!gzC15pkeO_HT^1q z{h7k?KrX^d>xHk6WC7}Ep=m59I&PKl^SuI4ionjB?ZeZBj=&~&gc3{~{mo(M;P4ms`&jI-@=3kC;VVYHQbMPY2@+$Ve zD#{^NF~;tqv6a zuefUFR_;Ytu_&(?G$@N@$uV8Jmx>jZT42{kv0`N&=*3EQOy1zFOVhl51?G533nUYd z*aB(MB>u^$Zfuq%i1JyvC8n3FPI_271?Xjw9`^_ajXf^?;oy}=U6%g!2?TZR&P1!j zIY;)5h&Sgq&>JK1kuab9r z7sx+C$^UyLXk>{}5X*D4;z!nB8y}zWp;GrQfAp-6^5cQCfcdKO+W@XbVuo_pY6VTG zQO&#Uz?j3T#q=`wa<}TyJCLjLhB{>QY~WT`)jfO(=&b;DUh@-P;(v1(aggcy5YpHv zJt%Rcdi~QIyyXV<=F4ub$XWH~tI>dGaVL_wS$%A70Vx->F71~=LmRYihXlSWc4)o} zIg_9nnqSEyprxb}DS8t-r3b|+TH1PpC$Un?IpWQy{<4jGP0uURdw||}h3K(R_|8(I36d3mJT7mV8jGo!t-_#Pe-RAI| zXN0M%fu~~)S1Wh_)f84|b5Be$7Pf5XOqLi+3O0iJ_BWVUI><1Lia&Wj;h+AGlb$nn zmGRlK|7BEPDhB*j9EV^1C^a3 QCoreApplication - + , Version , Versie - + Internet Jam Session Software Internet Jamsessie Software - + Released under the GNU General Public License (GPL) Gereleased onder de GNU General Public License (GPL) diff --git a/src/res/translation/translation_pl_PL.qm b/src/res/translation/translation_pl_PL.qm index ee1fe75d12567321d41af28b091d9691669828cf..fbabe227129b9edd05594832c4b38d33b24321cd 100755 GIT binary patch delta 233 zcmZ2lG`o0$2;+*0qRSa`C+<_ou zGcf4pus{0u1gMB(@>=F+Oa?BKr?TWTUYN|v>d3AhDhgCEXR<4+JY)9cR8}9xQ=2!j zF3?ruV{l?fWGG^&WGG?CXUOAV00K53<_pVDPRvnoN-WAO${$0w)n|1wQ&u001q_1&C>*001#KlLZ5Q0x+zTg##Z6oCo2y zKL7wNY?HME<^nI?lbr-_0cw*C1woTm1s(wflXV450c5kn1)wdHo--}8^)sdg*zqnJ diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index edb9259372..1c77d378b1 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -2878,17 +2878,17 @@ nie jestem pewna QCoreApplication - + , Version - + Internet Jam Session Software - + Released under the GNU General Public License (GPL) diff --git a/src/res/translation/translation_pt_BR.qm b/src/res/translation/translation_pt_BR.qm index 4b4a9b01248ff4e3d430bb04d3a486f0528ba702..643a881dce606ddd4e007fd922d12631255af6ac 100644 GIT binary patch delta 1834 zcmX|B3s6dZb2BNkaK@$>d z6LG@PDk`?943#t(r%|*PMl+zN0b=YtpkX}3xJjVge=`rV z(^XbL<)NV};@&fZNAK#0O^p;USs)fW+JY=0($AEJc7G)RqQN zegu74oeW$^q%RLPf#%oKcaP72#<|heq+yVAGWF&1eX)jaCbfVz#jq|-q2S}grfMf= zd@3~lzbxaQg~q*}z)rK!WDW&f_X|x=SAe|zg(JoM5$`vJmVpdV+-l+E_`|^A&xJ37 zI6ToG3tt^C08Guo_1Ad`Z#)uyxK|2V)XvUpUFbgR(|Xy;HM+I|4qdLs#Wfos4!f#RBfIxrd?f>=4w1)4EN{Qc5> zoF`G-W4#5eHS5;uG+cfqy7C45 zl{tIZa(ysWvs%5~c0>2@R2I+RsP6HoFwlbUbx*u_;KV513wNIJ=x!z&ybSM49&xjqNoS`6e`5nIt zY@O^9P;1gQx&SGvNw1mBrC~HV`2=xrmYF6emI1e}n(WipgWj3XPRL#~%zF9%1NKY~ z7uM#oNlH*eLYnE)$348XLDQAlb`HZ4)0NlwJQ|Vx(vtkd^jLcrG$K^CJh}*)DagP2 zo4}{a5>~6Y&{=j^2}+2UCq2<+{AX(>Bd@k_CC@}?_+ZqGrH6-xM> zCeXVFS(_Rwl-ZeL_N*wHskENrayh<4Ia`?%Jo;=dDCB`EJ-6`ELsXZ}eqh&s)X|GMYxy;*yS@>4F+=q)F9%LX ztNwR)^QN?@AyzIkN1-~!^aq$ovtEtr=X9qZV~5T5j0ftvyY)brkGj5eCs*&F%B;Dd zk*R9kATKhe=VzPes~)J~-R6B;ZTYqe2r#JK*2$o;S?V>(hfhCMyFQ{(-j=yncuQrC$EuzHxGp` z05bB-Lw|LECJpj2x;6b>i*vKZnP#~Lxgr%MSOagwAP1$mhqt)zK#88S1sz{%YDr#B sv3E>P>C(5hclwd*_Ot++;`)Mrznn4td}dBTPX2bAFIk&e06EtF4-=0chX4Qo delta 1791 zcmXApc~n)`6~@1P-@EU=;okd@^a&_D@(>M37?i<6WDpGSP_zjsf&z-5K!6z3q;+7Z zv>~Zt!zoeX(4a{vG?Jvnp+x~j9EgItBv@-|98es9sF8><+Eeq-+3TFO&e{9>?Qfs* zuXN>II?MC}+0I?V+iOnST-z4c9r`93aCr2AW!Pl~#3%+_s)ram7pV7v7#|GEDq?OF zM{ltlDw#TEC*pr+2Fc@K&%O*&3Sh6v11$}Py~CgHw;>^<2K0v`NO&h2H02bt2$O`& zgDhOwY?y|xdb&XiU0AOWlCW+UhDXDI3xm%iWpv=7_ch=L6N&eZ0>T3_z2pa)bc&SA zTS2OpUbyiE$ZLc`3wHq%Zc}{F0O;j6*gTE@YaaCHq%%O+uc)rY3Yv3<{_2tY$6@|yb1JLFnv986g07ct|UDHjY+2dEPgK5(#@n+P~|z+t63&YXlCKs zX{k{{0U@<5&jh)syQ5oyky4zHZu5*~9yRUKkk>^-4S7SSn z58C*lCMY8U6duPWij$1LsnvYBIuumh&gO}chB9sXCqtlu)oh38Pm9=TF;+;ZV-{V; zxW#?iZ!b;&-d43Y4|6gPlC*b%N0*NR**?7Jpl_gV23 zC6Hr#B2G_l24xS55s&ABoY#wSPbLD|-D0wtH?4n)IG?Qp8ob5DMZ8H>AB(v{1t{Gr z=7+0*$9eIMU{}C1T6{AmnJexS-wxOcXm*Of9=;0v)>mB9SA_BC7Q~9-UQqPk#mc3(qM56|w_J#*z1kI!YI!QC)ca*OBs zvJA}E;8Z$6dcE_PK)_0Ao`v6C)GIA$tN>EZO6ijgpvYTN=IB#Ueu1b z_5WO20!s4GAFHVXKAWyTUh*CA?65&?8v?q{8D4mK6)5Hm>oxjQ4iinwgxC|T&=eu0 zA7Xn^0-eBU&#_~~8HtQuo+ zJa^@0CpJ+|vF93lf6wo{w8Z$IFHQhrsPR_7PGJ5?<81@ywZzw?ZFB}mAw2}4mbvzT55Mj-I7Owa?+HaaJ{_PT{P-*&h zRve$OShilVdc;)Azxap1|CdLy+j^cb&?;LuKLoz-dmbqvg&k7-O5?Z4=^v_`j-EEj)$22_?NSMwi;s(fYUr2>Y1@-|yL=z~bP zg?PQoXZ{@jJ1BR|A(z%}U6fCeVgR)~m(}#eK}pY%R?@uXMC` z11-7A@nuVSmOiCBi|-fKDLu}7z#o6A+`Pl7u4+?mFXrbfQMFZ_&H|nRU2xPdCS(Q zt>>x$Z-aWlG7aQ0q+XRgL2*0P+a;~QQ6Kg0d%S#)4J^kY)7#U$ahm|xhs>L#B0zV` zT6rAY&9P#4de*3*r0>^*aY)vNE(p3)I9oG5h%Dak5AFS29GiOJ;u QCoreApplication - + , Version , Versão - + Internet Jam Session Software Programa de Jam Sessions pela Internet - + Released under the GNU General Public License (GPL) Lançado sob a Licença Pública Geral GNU (GPL) diff --git a/src/res/translation/translation_pt_PT.qm b/src/res/translation/translation_pt_PT.qm index 5a958b6ebf2899e1511f8792cb2380e58cdf4cce..3009633511edbb4ce7a34c24565c78ebc75ec6c4 100644 GIT binary patch delta 1326 zcmX|B3s96*6h7x){{P?oUn|76pe#QiFKt{OJT^#CNnQ$=A>s=Vg%G6Wokl4-YU-Gj zT#YbIH#2BTv{4}k5yX5o2~H_POpXsgM-a>c6l$?MIMbcE^Ub+)?ws$O@4L5gAJ@2_ z`_vi#+-n$R=KBx>MlvfWk!0M&_?pOVRB;2bqaU6mK1>-CJeizff}PeZg(t(I0Bwz9 zh*7S@&iLU`;-i@w(~gG|ZUBTNp{?E>Fl;tfJ7oj#*YI-rVt`f^FQ2FZoO1-*hJFI{ zd>!v4{0k`W!S2=c953U;g!6#8JINtU3ZsS)yT*beB*;OX`;4j00YJBKrt!5i0H=Ot zE|{|b145Z=^%(%-W~TG)lYkM2nZcqD0lr!C5<9jqL#5jRH$;>D4ytFHhP(6xu%KFF z`o|q0wNB&tV>V!6tR^re3~*X3x#i$1tXin~p*RHa{hfqm!-VJhGFLIk+s%3Xs%K)c5C3Y^#k+3#x6TtD+tZj!C&_9AC z@)c+!ef(5xCnjy=_}~og@1_(0Z$0-+r59(;;$FC!0bOLWQLB2k@TO?WA?7L{JiGyr z-^^_eZ-Z zKIc0}E>Z#O`9~@p{eoj!>2^Qh$`n$p`-lm8h1hjr%)1lFEFlx?$T1<+@r00`*#+>y zWFdW!X6D<7K~z1r3OOr&2Nbn}wd-5JiB&?LeFxwhTA?7CN?Ck|B#KFndxS^RXs3zQ zLXS=d7(GN9M5E(b(Gph(@L-h~HFq=M+6vMwTCj|mBnwuPM9CZ)GEeOI?hindDBfKV zMd|Jk@4gid;M6gOsGBAZIXni`ualexZUP1dNY1AiK;H$VK{8@3xg|}F8IY1cQ>gS` zN!j(TlwyRG-Dw6$nl9y>qb{3gmGZhNxvJw*LE8<$%yCkAC-rvGphWzsH*}@a7oJVj zvpk8DjgHOIrKKGJ9)k3XHUKcFo)pXG8D17?IC&o>5+p0_Rg_4f>{i7B9O)fHjOvp8 z5)E|j@5#ZvHGo-zy)X zUNhi|^>WWDdY*qpei|B2HS3oLPR9fKfWnVD(FQXVV{1Ra0bgZ8Ce>hmFWIB0c$yqn z;+cF4u`9;ueTwZlr8hrEIsa=Jfd3q&-CzN9&sXmA-qeD-m7Y!1M9nLd$Gd1rcaB8p za~;d|&6%`t_-=i3DeXD%0=cADU#-*+2QQ~{ysjVq-U>LWm3{yvHCspYbt8H#aW=ca z63B%T@PKegg97M-A{tvER||A;bSq18*QDimgr^l`6;;gkK$nUlZwzsHLD&B|!pof4 SjI{KMr{mF3chVa_$@mYyN|T-d delta 1271 zcmX9;dr(w$7(L%z?%v(I_ufT<&|vqvz>3-k@)k?P7f2+fh%aVY2Ol6Ypom&3q6Io; zney|kl#G>{VGmy^3M47&s5p)=XfQs|Oi7$dOiZZX;9qCHZ+_o==X~ePuV%BcW|MJ) zH{IIk(<3AuVLp@~q#tK4S|K@ysc#7otwEBSN%S=I?miH5_QF=|xJ| z&$@+RieOGdXi_$Pk$MG)ok|r|cF>3h+UJ!6NayKn*<_$Wr?cN31jP@frl-Gv`k$lQ zsV_k4r*toq_vtL%Ppt;!_hsdV48eY$bsJ*nV;1G1k6I%f%>~Hss!;R#5#Z1T;pdQf zpzsUA`Kmd9Wu?$I>3h()P@%JMIq>zAmw029@U*xTw4|AB_Rt-34aPH%K?TDMwtww_ z`HcVUnYuia^iIl*OwijNp)<3m?y+;V5dYk z4P`c?FR3ibs1sP4Q8zCW!z;MzDTi5+(bqgujC=kL$oofDZnOs!J`=Nr63(w)%o(8p z0b$~MQT{;Sb}@gW30+pF!#hN@&a3f2Two({- zB!yBovzZcJi|RD~U7G;}S&jebeDIA+#{c|7K)&Uy$fP?mB-?n-A!(Wv-Ss|5+9-|E zKL=Lrky7-7py=J~lu4hsSaNsufZjbJEp%N2mX`J+`FBZ+2J%`hk(Nxj40wJbm7U}6 z7EhNpZ;uBhH%Z%WRs&D^N!yha(A%@5UAyjZi`;C8IoPpSx_xvc*Z-!}_Ph?{pDaDl z`N@;NGAXScp!5z_WL_;q?qQ-FC*&Sr=&@^X~2k1;)tpyVrn*Z<7nga|;*cGnZv*tWAC}lq*czCqFcsLE~3jJihS- zQrj&iLo#4!ws;1GaIHy}muR~#$9Jgpb7z4f{M5^t zyq;lE8~O$UPfx1%+xY?0CH3J<-d|9!{y98_+uET%Ih+Ct+Mr22UflLh&9|Wg*fBu! z%i=b@wTzW(I*nzgv=m`}JyWf|VMSWSGfpe%g;sraJuom{Yxao&*-5)21%YDxw1+FI zfz#>QA8Ywa+ZL8)&F>RnJ)OlDk6vdzUCfn7PGpT%{nbI%uIL&3zL%_B-{ye^x%uC) ZH0~qW^O)>OOTD*V2%^|yL!4AL=YJ2Ee`^2$ diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index 0687dab285..a80e2fd83d 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -3283,17 +3283,17 @@ QCoreApplication - + , Version , Versão - + Internet Jam Session Software Programa de Jam Sessions pela Internet - + Released under the GNU General Public License (GPL) Lançado sob a Licença Pública Geral GNU (GPL) diff --git a/src/res/translation/translation_sv_SE.qm b/src/res/translation/translation_sv_SE.qm index 8b74070371c06becc9df27ec2f329d5c59699905..48a800e6921bf374f4b047f044f84fe3e03badd7 100644 GIT binary patch delta 1848 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 k8u=~1t84DO; QCoreApplication - + , Version , Version - + Internet Jam Session Software Internet Jam Session Software - + Released under the GNU General Public License (GPL) Släppt under GNU General Public License (GPL) From 6409bf18374e7db30720b6a0e795e63ed7a5eb3b Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Wed, 15 Jul 2020 22:25:30 +0200 Subject: [PATCH 395/936] move the Mute Myself button up to prevent accidentally disconnecting --- ChangeLog | 4 ++++ src/clientdlgbase.ui | 14 +++++++------- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index e762045c1b..7ecd9e820a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -26,9 +26,13 @@ - show maximum number of clients for servers in the serverlist, coded by dingodoppelt (#451) +- move the Mute Myself button up to prevent accidentally disconnecting + - bug fix: grouping faders in the client should be proportional (see discussion in #202, #419) +TODO add the names of the instrument icon creators to the contributors list in the about dialog + diff --git a/src/clientdlgbase.ui b/src/clientdlgbase.ui index ab5ea69147..709f628c0f 100755 --- a/src/clientdlgbase.ui +++ b/src/clientdlgbase.ui @@ -318,23 +318,23 @@ - + - Settings + Mute Myself - + - Chat + Settings - + - Mute Myself + Chat @@ -575,9 +575,9 @@ butConnect + chbLocalMute chbSettings chbChat - chbLocalMute sldAudioPan sldAudioReverb rbtReverbSelL From 2ec02df04e7d181d7e51a2d9c33b6d8455f67bd3 Mon Sep 17 00:00:00 2001 From: ignotus666 Date: Thu, 16 Jul 2020 15:43:58 +0200 Subject: [PATCH 396/936] Updated Spanish translation --- src/res/translation/translation_es_ES.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index f3ed6d54b6..d084b3e4ea 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -817,7 +817,7 @@ &File - + &Archivo @@ -957,12 +957,12 @@ &Load Mixer Channels Setup... - + &Cargar Configuración Canales Mezclador... &Save Mixer Channels Setup... - + &Guardar Configuración Canales Mezclador... @@ -983,7 +983,7 @@ Select Channel Setup File - + Seleccionar Archivo Configuración Canales From 6a5e1ba173e7c4de4a0fbe9421f2263783b944da Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 16 Jul 2020 18:50:44 +0200 Subject: [PATCH 397/936] update translations --- src/res/translation/translation_de_DE.qm | Bin 109675 -> 109709 bytes src/res/translation/translation_de_DE.ts | 14 +++++++------- src/res/translation/translation_es_ES.qm | Bin 105973 -> 106485 bytes src/res/translation/translation_es_ES.ts | 6 +++--- src/res/translation/translation_fr_FR.ts | 6 +++--- src/res/translation/translation_it_IT.ts | 6 +++--- src/res/translation/translation_nl_NL.ts | 6 +++--- src/res/translation/translation_pl_PL.ts | 6 +++--- src/res/translation/translation_pt_BR.ts | 6 +++--- src/res/translation/translation_pt_PT.ts | 6 +++--- src/res/translation/translation_sv_SE.ts | 6 +++--- 11 files changed, 31 insertions(+), 31 deletions(-) diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index 57c0fe3c12f39e26506e7dc16d48c86f7affd87c..f674a68af9c298f519b972a17689b910ce2f32a0 100644 GIT binary patch delta 4371 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 diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index 898737cfe2..767ce3c443 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -936,12 +936,12 @@ &Load Mixer Channels Setup... - &Laden der Konfiguration der Mixerkanäle + &Laden der Konfiguration der Mixerkanäle... &Save Mixer Channels Setup... - &Speichern der Konfiguration der Mixerkanäle + &Speichern der Konfiguration der Mixerkanäle... @@ -1013,17 +1013,17 @@ - + Settings Einstellungen - + Chat Chat - + Mute Myself Stummschalten @@ -2502,7 +2502,7 @@ Vocal Lead - + Leadsänger @@ -2696,7 +2696,7 @@ Click the button to open the dialog that allows the main recording directory to be selected.The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). - Drücke den Knopf um einen Dialog anzuzeigen in dem man das Hauptverzeichnis für die Aufnahmen festlegen kann. Das Verzeichnis muss existieren und schreibbar sein (es muss für das Benutzerkonto, das die Applikation ausführt, möglich sein Unterverzeichnisse anzulegen). + Drücke den Knopf um einen Dialog anzuzeigen in dem man das Hauptverzeichnis für die Aufnahmen festlegen kann. Das Verzeichnis muss existieren und schreibbar sein (es muss für das Benutzerkonto, das die Applikation ausführt, möglich sein Unterverzeichnisse anzulegen). diff --git a/src/res/translation/translation_es_ES.qm b/src/res/translation/translation_es_ES.qm index 5b29cfe461f0d3d0efde5c5aadafcb8e6a590522..48db11eb6ae14126ff56fa3773cd0b46d506834d 100644 GIT binary patch delta 4723 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 Q{5S9K4n`b47(os2A3sEMAOHXW delta 4425 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 diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index d084b3e4ea..1f2a196b61 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -1029,17 +1029,17 @@ R - + Settings Configuración - + Chat Chat - + Mute Myself Mutearme Yo diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index 8d7a22f1f1..a17667bdc5 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -1029,17 +1029,17 @@ D - + Settings Paramètres - + Chat Tchate - + Mute Myself Me silencer diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index ffca6e2ead..141b25898f 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -1009,17 +1009,17 @@ R - + Settings Settaggi - + Chat Chat - + Mute Myself Disattiva Input diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index a2808cbeba..357910fad0 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -997,17 +997,17 @@ R - + Settings Instellingen - + Chat Chat - + Mute Myself Demp Mijzelf diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index 1c77d378b1..096e65f953 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -852,17 +852,17 @@ nie jestem pewna P - + Settings Ustawienia - + Chat Czat - + Mute Myself Wycisz mnie diff --git a/src/res/translation/translation_pt_BR.ts b/src/res/translation/translation_pt_BR.ts index b44cd4e41d..479da37e81 100644 --- a/src/res/translation/translation_pt_BR.ts +++ b/src/res/translation/translation_pt_BR.ts @@ -1028,17 +1028,17 @@ R - + Settings Definições - + Chat Mensagens - + Mute Myself Silenciar-me diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index a80e2fd83d..ceeb63704d 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -1025,17 +1025,17 @@ R - + Settings Definições - + Chat Mensagens - + Mute Myself Silenciar-me diff --git a/src/res/translation/translation_sv_SE.ts b/src/res/translation/translation_sv_SE.ts index 20304e0898..f6e6aa93c0 100644 --- a/src/res/translation/translation_sv_SE.ts +++ b/src/res/translation/translation_sv_SE.ts @@ -850,17 +850,17 @@ H - + Settings Inställningar - + Chat Chatt - + Mute Myself Tysta mig själv From 64494a3e6770bdcc5128c1054fea9b8e7a40bae4 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 16 Jul 2020 18:54:10 +0200 Subject: [PATCH 398/936] fix translation: type="unfinished" was missing --- src/res/translation/translation_es_ES.ts | 2 +- src/res/translation/translation_it_IT.ts | 2 +- src/res/translation/translation_nl_NL.ts | 2 +- src/res/translation/translation_pl_PL.ts | 2 +- src/res/translation/translation_pt_BR.ts | 2 +- src/res/translation/translation_pt_PT.ts | 2 +- src/res/translation/translation_sv_SE.ts | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index 1f2a196b61..1c0cec7405 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -2526,7 +2526,7 @@ Vocal Lead - + diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index 141b25898f..d3e2e1ceff 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -2478,7 +2478,7 @@ Vocal Lead - + diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index 357910fad0..64660c3554 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -2466,7 +2466,7 @@ Vocal Lead - + diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index 096e65f953..f1ea729296 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -2164,7 +2164,7 @@ nie jestem pewna Vocal Lead - + diff --git a/src/res/translation/translation_pt_BR.ts b/src/res/translation/translation_pt_BR.ts index 479da37e81..076bb67ddf 100644 --- a/src/res/translation/translation_pt_BR.ts +++ b/src/res/translation/translation_pt_BR.ts @@ -2505,7 +2505,7 @@ Vocal Lead - + diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index ceeb63704d..8f76553b2e 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -2502,7 +2502,7 @@ Vocal Lead - + diff --git a/src/res/translation/translation_sv_SE.ts b/src/res/translation/translation_sv_SE.ts index f6e6aa93c0..a7de891206 100644 --- a/src/res/translation/translation_sv_SE.ts +++ b/src/res/translation/translation_sv_SE.ts @@ -2160,7 +2160,7 @@ Vocal Lead - + From 9261895b2e10679a565fc5a6faf16a03bd44a141 Mon Sep 17 00:00:00 2001 From: ignotus666 Date: Thu, 16 Jul 2020 21:55:25 +0200 Subject: [PATCH 399/936] Update Spanish translation --- src/res/translation/translation_es_ES.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index 1c0cec7405..fbcf2897e2 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -2526,7 +2526,7 @@ Vocal Lead - + Voz Principal From aabe93a07483d2920d7d0c87a7cafc0751eaa478 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Fri, 17 Jul 2020 18:29:11 +0200 Subject: [PATCH 400/936] add the names of the instrument icon creators to the contributors list in the about dialog --- ChangeLog | 2 -- src/util.cpp | 5 +++++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7ecd9e820a..b82b1e57ed 100644 --- a/ChangeLog +++ b/ChangeLog @@ -31,8 +31,6 @@ - bug fix: grouping faders in the client should be proportional (see discussion in #202, #419) -TODO add the names of the instrument icon creators to the contributors list in the about dialog - diff --git a/src/util.cpp b/src/util.cpp index 978e4ae43e..d015455293 100755 --- a/src/util.cpp +++ b/src/util.cpp @@ -461,6 +461,11 @@ CAboutDlg::CAboutDlg ( QWidget* parent ) : QDialog ( parent ) "

Adam Sampson (atsampson)

" "

Stefan Weil (stweil)

" "

Nils Brederlow (dingodoppelt)

" + "

Sebastian Krzyszkowiak (dos1)

" + "

dszgit (dszgit)

" + "

Bodo (bomm)

" + "

jp8 (jp8)

" + "

bspeer (bspeer)

" "
" + tr ( "For details on the contributions check out the " ) + "" + tr ( "Github Contributors list" ) + "." ); From a9d85301ad35df30dd3f883de6c000f6d5869621 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Fri, 17 Jul 2020 22:58:58 +0200 Subject: [PATCH 401/936] update translations --- src/res/translation/translation_de_DE.ts | 212 +++++++++++------------ src/res/translation/translation_es_ES.qm | Bin 106485 -> 106511 bytes src/res/translation/translation_es_ES.ts | 212 +++++++++++------------ src/res/translation/translation_fr_FR.ts | 212 +++++++++++------------ src/res/translation/translation_it_IT.qm | Bin 99489 -> 99439 bytes src/res/translation/translation_it_IT.ts | 212 +++++++++++------------ src/res/translation/translation_nl_NL.qm | Bin 105585 -> 105535 bytes src/res/translation/translation_nl_NL.ts | 212 +++++++++++------------ src/res/translation/translation_pl_PL.qm | Bin 14747 -> 14697 bytes src/res/translation/translation_pl_PL.ts | 212 +++++++++++------------ src/res/translation/translation_pt_BR.qm | Bin 107905 -> 107855 bytes src/res/translation/translation_pt_BR.ts | 212 +++++++++++------------ src/res/translation/translation_pt_PT.qm | Bin 101055 -> 101005 bytes src/res/translation/translation_pt_PT.ts | 212 +++++++++++------------ src/res/translation/translation_sv_SE.qm | Bin 103113 -> 103063 bytes src/res/translation/translation_sv_SE.ts | 212 +++++++++++------------ 16 files changed, 954 insertions(+), 954 deletions(-) diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index 767ce3c443..f7d9332b5e 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -67,57 +67,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 Holländisch - + Italian Italienisch - + German Deutsch - + Polish Polnisch - + Swedish Schwedisch - + About Über @@ -2031,28 +2031,28 @@ CHelpMenu - + &Help &Hilfe - + Getting &Started... &Erste Schritte... - + Software &Manual... Software&handbuch... - + What's &This Konte&xthilfe - + &About... Ü&ber... @@ -2060,12 +2060,12 @@ CLanguageComboBox - + Restart Required Neustart erforderlich - + Please restart the application for the language change to take effect. Bitte starte die Applikation neu um die Änderung der Spracheinstellung anzuwenden. @@ -2073,102 +2073,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 Sie stimmen zu, dass alle Daten, Klänge oder andere Arbeiten, die zum Server gesendet werden, Ihnen gehören oder von Ihnen selbst oder einem Lizenzgeber erstellt wurden und dass Sie diese Daten, Klänge oder andere Arbeiten unter die folgende Creative Commons Lizenz stellen (Für weitere Informationen über die Lizenz, siehe - + You are free to: Sie dürfen: - + Share Teilen - + copy and redistribute the material in any medium or format das Material in jedwedem Format oder Medium vervielfältigen und weiterverbreiten - + Adapt Bearbeiten - + remix, transform, and build upon the material das Material remixen, verändern und darauf aufbauen - + The licensor cannot revoke these freedoms as long as you follow the license terms. Der Lizenzgeber kann diese Freiheiten nicht widerrufen solange Sie sich an die Lizenzbedingungen halten. - + Under the following terms: Unter folgenden Bedingungen: - + Attribution Namensnennung - + 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. Sie müssen angemessene Urheber- und Rechteangaben machen, einen Link zur Lizenz beifügen und angeben, ob Änderungen vorgenommen wurden. Diese Angaben dürfen in jeder angemessenen Art und Weise gemacht werden, allerdings nicht so, dass der Eindruck entsteht, der Lizenzgeber unterstütze gerade Sie oder Ihre Nutzung besonders. - + NonCommercial Nicht kommerziell - + You may not use the material for commercial purposes. Sie dürfen das Material nicht für kommerzielle Zwecke nutzen. - + ShareAlike Weitergabe unter gleichen Bedingungen - + If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. Wenn Sie das Material remixen, verändern oder anderweitig direkt darauf aufbauen, dürfen Sie Ihre Beiträge nur unter derselben Lizenz wie das Original verbreiten. - + No additional restrictions Keine weiteren Einschränkungen - + You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. Sie dürfen keine zusätzlichen Klauseln oder technische Verfahren einsetzen, die anderen rechtlich irgendetwas untersagen, was die Lizenz erlaubt. @@ -2180,85 +2180,85 @@ 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 @@ -2271,7 +2271,7 @@ Was man hier sieht wird auch am Fader im Mixer angezeigt, wenn du mit einem - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level 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. @@ -2280,227 +2280,227 @@ Was man hier sieht wird auch am Fader im Mixer angezeigt, wenn du mit einem Server verbunden bist. Dieses Schild wird auch bei allen anderen Musikern, die mit dem gleichen Server verbunden sind, angezeigt. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Was man hier sieht wird auch am Fader im Mixer angezeigt, wenn du mit einem Server verbunden bist. Dieses Schild wird auch bei allen anderen Musikern, die mit dem gleichen Server verbunden sind, angezeigt. - + 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 - + Vocal Bass Gesang Bass - + Vocal Tenor Gesang Tenor - + Vocal Alto Gesang Alt - + Vocal Soprano Gesang Sopran - + Banjo Banjo - + Mandolin Mandoline - + Ukulele - + Bass Ukulele - + Vocal Baritone Gesang Bariton - + Vocal Lead Leadsänger @@ -3283,17 +3283,17 @@ QCoreApplication - + , Version , Version - + Internet Jam Session Software Internet Jam Session Software - + Released under the GNU General Public License (GPL) Unter der GNU General Public License (GPL) diff --git a/src/res/translation/translation_es_ES.qm b/src/res/translation/translation_es_ES.qm index 48db11eb6ae14126ff56fa3773cd0b46d506834d..98795478663d95057eee236688e57205f8c82373 100644 GIT binary patch delta 1591 zcmX9;Yg83g7~S7oX68O-2F4=1#AUob7Fcm9MG;LNx_FxSKuocF5tY!ZB4L)PpsjqQ zC8S4E(==2vOOcj^rU|5Bnkia_@67iT$pFL?-VFNt@41WZJ>5EsZ9 zPwKf9AUT+xx>5n^w34DGuLC;GqNIpxpb!^xo5F`w(b}{lKvW==?g|E_jG!;tc>y!1 z_Emr~6KLPkVZgyvv~O!U=#_0$-~1z}LoYg?_6TI{Oqa)$1CNX8YFZWOy+U@@ltV*U zyiX)8V+B6OkRqXS60g+$xKPzN64Y;>Q2qS3K*c!W2iF8p?`Gk^u57?|P`Egh^BmDZ zxYCdh%J@TQdUF=AKH&-0UlN*U&jWp!z#4oE=N^+(+sO5*F**JT20X`2&K+LR0c5?hUs=Id!Z|bP2I`_PhAM8xARxvRHu>K#N(4 zWY9VGtz=m8#BQZrk%>FmSt-Essu=zEAdtRnj_2ruhDZ^;|<;T$oz~ifCk$URG7glCGKF;%;7Yhm6;QrVbZ-C570SUY7UIx^DsbqVDP$0qosd? zT%f1DOtlzJuk1+TOx>k&&z9*RpL{vaSOd)Ql~av!P}~_d&|-}IQqF9749Y$tPjw#y z-l=Uv3fd@73*~3^wEXtK!+@^Kb4?yl*NO7d{d`UeRk>tkENJu5S-Le-pK1PXY#}Ihow>T6R}Kti zwN``HvddPN@UG7MZ8`KVE3n1TAhz2UuBTbYLefT zz1G}In?Rv1YhLRDE|WKxJzcRM5c^xNzsR*nYqH+3 zSU|6BW4o0AyW1Atp7+`<#}+woDsaBemKZk&G;29)Pz;J=s%lVo7N$nhBbKd(>z~<9 zeRT#Dlx+KRKqAN<#L85|IZAnYo4}KMNO2VKf4tAfb<8-r0=6a>1HMGGJm~co|0dG1T@p7Eal;*g*JtSYJlZ?WtFpr zr@+MAT7dJRQaj=l(19rjzUI~X>{Nax0K?`gznHs&Vn1LdT6k2Y(&AnQvQ?_uiH)G> zn`+QT5%}~$8`7v5YDl_2$nTIEW`7Kd3{rdEEC&^wWUX4_>@Mp1@wq_v&($ybR{_1s z)va0Sp!mUR^-50ByJ5shkH`%b{Uwd&QIEs;V$X50KH>sfKQ#AQ;JD#v(T0q@xV0pgwY!0_n$Xvo|eGNTTi?S^O z9=)YS-{y`F(^->m;>bQ)!L2e*E?=9I{|V^17>)Ul0cp)z=|kRXU;iiQ>7s2~$>U@n zs#X131cXl3PWVTH9L3rNxieo%>DrA#-dxph+O370q$7}(_=WIwu-h+&?z2|E0Nv}m zCx_FHyYIVaHkURgjCIkCXPmw*Ju`seTYOtK=Yn1=<{Pc3{Jji)dxlP_dN4O55W_JA aGtdEpk&g+;#aRB$Ll!1&-`tUs3;qKG{o}C! delta 1565 zcmX9;X>?6j7~S7}x%cM1ckhiy(s-KWdWIE>JVORCBw~7@6*OXqzQm9;1d)cI2-YG( zTXZ>6QezOqszxkDTQU^SP--aB7}C@bbCN0%DT$uO{j=9OYkm9fZ-4tcYf7ZrVyVE5 ztd}76V?gO%h=Yd%+k+rR27#Pq%$FRL%MvMzVptV>mKK zbt1K514#Cx7WWH4Z5LDMjO{?%g%lb15ajR4oCf>IowPOj5)j&oa*z6fhKA9e=E;CN z$TbF__|9}{?I_^fMmn`WAM{ZUmA*U)YVAk2qu+o`?Wl56KG3*^9z+*`mL{-rLlT9s zL2e;5pJlk|BWDYTr*o#3g+fuyI8gt6LUE@|qltj|oN)JJu5+v; z+^=GeKWs#wZI3~6)o{Od8GK*+0dapAY(FN0vPKvJ zp1>ByXC< zvL&5d?2x1zM~mHaxg*oIv2w}V*jEhucR0v0mo-SbEm)i)EaO@?iOGF6pv@L>T96O- z_Nq8@z$kt{hV_+o%OG*Z)E%I>I&o#nYEa-cHbZt;wurgzCBWWSVs2InDBwDC$?L60 zq={Y+fq8k-0?EK@#z~7}Ig?`xOLwOX7fbVbaT1fjkf0q&l7RMh=$V z`UHSHM=;f>+eXN~kzA=WOAfA|2Xaf3BlIo65)U~_&j&>uXTyy8xUc2-`bJRVVR@GG zD)70h3CU-boZf+-)tmC%VHW_4MP6oz19coJuRX(avPhM)bNYcMoR>FL6ah5_a*h%O znmAeBwCN6?aujnJ!z~r^Bb`rW=oELQyc(2R#=K17RLEjX@s^41KTTc)idx}bT*{eS zY0PEPDU(&20)!=X%*&iaNi4%0PC=~DY`27(5|Zu#^ZS_+YB^QrX4YWVZKqAs$6x2+ zK4D6^w-?mG)0Enf#qBbf(js{bR_j1O8CGWL+k~w79Ea3J2e6gi7>gZiYZ7bfxZ*c$a>%eKJtt?Gj(0ic=B z)W;L}eQJgJtXCAz$bR+34^f~_T{XF}Id|q~&HG|Cus%(DKZ%c2h@Z<`9=at^3pIZM zyqTkgRr85Q*Rfg;$2gmo@idQ%OVgI5eGB@ay~eyIfwY%e?knDEpV#j&&aCat;p=4W zsTKXc8t5=XEAt8g`KD`ka9Iq#G5O+qCH*7Mf!qeH}mJuL1D9Sy1^Qnd0R$! z98co1BVKqMU(BryZ^7DI^!H?s`rue#^!Fb1`%*w%)A@_Gdfn1k%aK?MMOob5^6$v0 IHZ&yTKS-9~{{R30 diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index fbcf2897e2..b27d2cab03 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -71,57 +71,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 - + Italian Italiano - + German Alemán - + Polish Polaco - + Swedish Sueco - + About Acerca de @@ -2055,28 +2055,28 @@ CHelpMenu - + &Help &Ayuda - + Getting &Started... Cómo &Empezar... - + Software &Manual... Manual del &Software... - + What's &This Qué es &Esto - + &About... &Acerca de... @@ -2084,12 +2084,12 @@ CLanguageComboBox - + Restart Required Reinicio Necesario - + Please restart the application for the language change to take effect. Por favor reinicia la aplicación para que el cambio de idioma surta efecto. @@ -2097,102 +2097,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. @@ -2204,85 +2204,85 @@ 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 @@ -2295,7 +2295,7 @@ Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Escribe tu nombre o alias aquí para que otros 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. @@ -2304,227 +2304,227 @@ Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor. Esta etiqueta también se mostrará en cada cliente conectado al mismo servidor que tú. Si se deja el nombre vacío, se muestra la dirección IP en su lugar. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor Jamulus. Esta etiqueta también se mostrará en cada cliente conectado al mismo servidor que tú. - + 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 - + Vocal Bass Voz Bajo - + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Mandolina - + Ukulele Ukulele - + Bass Ukulele Ukulele Barítono - + Vocal Baritone Voz Barítono - + Vocal Lead Voz Principal @@ -3307,17 +3307,17 @@ QCoreApplication - + , Version , Versión - + Internet Jam Session Software Internet Jam Session Software - + Released under the GNU General Public License (GPL) Publicado bajo la GNU General Public License (GPL) diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index a17667bdc5..5680c50b84 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -71,57 +71,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 - + Italian Italien - + German Allemand - + Polish Polonais - + Swedish Suédois - + About À propos @@ -2051,28 +2051,28 @@ CHelpMenu - + &Help &Aide - + Getting &Started... Premier pa&s... - + Software &Manual... &Manuel du logiciel... - + What's &This Qu'est-ce que c'est ? - + &About... À &propos @@ -2080,12 +2080,12 @@ CLanguageComboBox - + Restart Required Redémarrage nécessaire - + Please restart the application for the language change to take effect. Veuillez relancer l'application pour que le changement de langue prenne effet. @@ -2093,102 +2093,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. @@ -2200,85 +2200,85 @@ . 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 Dialogue d'édition de pseudo ou de nom - + Instrument picture button Bouton d'image d'instrument - + Country flag button Bouton de drapeau de pays - + City edit box Dialogue d'édition de ville - + Skill level combo box Choix déroulant de niveau de compétence - - - + + + 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 @@ -2291,232 +2291,232 @@ Ce que vous réglez ici apparaîtra au niveau de votre fader sur la table de mixage lorsque vous serez connecté à un serveur - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Écrivez votre nom ou un pseudonyme ici pour que les autres musiciens avec lesquels vous voulez jouer sachent qui vous êtes. Vous pouvez également ajouter une photo de l'instrument dont vous jouez et un drapeau du pays dans lequel vous vous trouvez. Vous pouvez également ajouter votre ville et votre niveau de compétence pour jouer de votre instrument. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Ce que vous réglez ici apparaîtra au niveau de votre chariot sur la table de mixage lorsque vous serez connecté à un serveur Jamulus. Cette étiquette sera également affichée dans chaque client qui est connecté au même serveur que vous. - + 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 - + Vocal Bass Voix basse - + Vocal Tenor Voix ténor - + Vocal Alto Voix alto - + Vocal Soprano Voix soprano - + Banjo Banjo - + Mandolin Mandoline - + Ukulele Ukulélé - + Bass Ukulele Ukulélé basse - + Vocal Baritone Voix baryton - + Vocal Lead Voix principale @@ -3295,17 +3295,17 @@ QCoreApplication - + , Version , version - + Internet Jam Session Software Logiciel de bÅ“uf sur Internet - + Released under the GNU General Public License (GPL) Publié sous la licence publique générale GNU (GPL) diff --git a/src/res/translation/translation_it_IT.qm b/src/res/translation/translation_it_IT.qm index da8f06f54995fcb29db423d6ad49bfa13c32462e..9fc1fc675e59404393556f5e48b6b0db1e439048 100644 GIT binary patch delta 1141 zcmX9-e^69a7(L(HefxO3@4a=6byHkkWHUG#yOOw+Gk}=18igkP)DRO^l5jPY0e{le zDE>$+zswvRo7EU;43Y`L$yCtDY_zZuQzs`CZAL>#a}hMPJNVa`d%t_{cfNDZjjXlx ztg(F*OFw<=en1MlDM-Y5R8FnjK_)%PQA(sRd!=e=OfT0-sjgAz=^qcAyfJ_@;UY(+ zL~^p%;&&C&=eg}bY9&SX$Ag}p&3P7&+CZm!e*g{phgVoUWbkH7K0U%wODdh>B&(U} zm%c3lXvo{rq0vo1eY@1^n+Hm2k&f*T0giO3bNXITMxPX2yc~!Od59ewrQXU_pm#6u z2CJD+VzIULfJ)x9c<;soGozM-eZ^w^pCx5hI%rfQpRgvXs->aq8PK8t-?L_@iZ$~5ZB51G=p`UC&9Gd>YD(3ebXAvt_D(;$;JZ)Dvk{xdHXoaW~y( z(|UQn&7-cD)9*|LIZJtiEnW(Dah-T5TdwH21T4QTFa13X{CHemGjA7Y(ueZea5ZS; z2)<$qx{k_`m=>URwH&DmgC0-gG-ZpBr$h16&n(9ThmN)V+cFCnQDD1mihF_8wg$?v}pdj6)eDDM#hu;{Yru+Lr?73bc0iDieGkY+ELc@`w^u!k>y z3G#aF3-48d#*Ma@P8L=z2yvF{hwC&CdAUvV zPbt&#J~f0>eOmGUp`hV4T5+cj$la!ud@r(+&f3B&g2K*-R(iS}H2XVkQ>RF1m^B`0 z0O|;BTSALS-g-{cJ+4h!+w125bFOwgW-Mq-C5Lo>@-D4E?-P*Pq#I{;gZwUi_-+~4 zRylx_xl>Pk#SJpL^uXWspn@`P(}VOD>xSu?rXOkf1!!EVADvqO@;N!p@FY*sugw;_ z;raTF@j1eTcKudk4k&)5q1+!VrfD`jzjgzgZAM&?kaf}_US*i{KGzsI6N|4KE4pfc z1y+EmmAu_(2T2`Dx7Q>kqgjPVDdbyYM%Z}28JCwK0hIWu$Sc5O2G zD@>aQQtOtGK1$#a^3VwO(h9oImr17_4p1!ZO1E)9 ziltq|}9B0(i zKa`Fa0yJo=^wWqs;7F@HPQI!>3HC~e~p2xDqzeSS?gn9<@tW3$Y{6Z2K zD8Hz4N)#_PIW2W^>a+Jjj@?{oij;~6ajginTwd9A3t0O^UVXI)_@!Civ|ukNXL_Owzr>@a zzVLX^fK^;z)?JsBhzWxF?Mq5x&q|P#qNMA4fOT$Vl70jqm0>`G&a7Prt>G6|-Q}|u z&iVr+@39tj90WyptV>>O1dW|xEtw!BE3W1g+Xu8m7iu?^!IMx31fahn&FV zy*9HU3owS;f`-I{-rZ|U$}RZc8f#!#O%kJ%B00@5DX6Yn1Z<<)S5-9w+Vtm(s7+nX9M0LNC_f1RHP zichv*m?zFT6YUp6V}R}r_B;1Q8)uYqw&n~wpeelrgwQuN=fzH7n@Jn&6VhbdXZ4i|xj#EE~u?5F`i6mJfTTrUTmkb`Kl jBeYK}voOOXwl$|XZ*F1Kdj)gzcT5>bAtz?)Le icone delle bandiere sono state realizzate da Marl James - + For details on the contributions check out the Per maggiori informazioni su chi ha contribuito, visitare - + Github Contributors list Lista dei collaboratori su Github - + Spanish Spagnolo - + French Francese - + Portuguese Portoghese - + Dutch Olandese - + Italian Italiano - + German Tedesco - + Polish - + Swedish - + About Informazioni su @@ -2011,28 +2011,28 @@ CHelpMenu - + &Help &Aiuto - + Getting &Started... &Introduzione... - + Software &Manual... &Manuale Software... - + What's &This &Cos'è Questo - + &About... I&nformazioni su... @@ -2040,12 +2040,12 @@ CLanguageComboBox - + Restart Required - + Please restart the application for the language change to take effect. @@ -2053,102 +2053,102 @@ CLicenceDlg - + I &agree to the above licence terms &Accetto i termini di licenza - + Accept Accetto - + Decline Declino - + By connecting to this server and agreeing to this notice, you agree to the following: Collegandosi a questo server e accettando questo avviso, si accetta quanto segue: - + 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 Dichiari che tutti i dati, audio o altre opere trasmessi a questo server sono di tua proprietà e creati da te o dai tuoi licenziatari e che rendi questi dati, audio o altre opere disponibili a terzi mediante la seguente Licenza Creative Commons (per ulteriori informazioni su questa licenza, vedere - + You are free to: Sei libero di: - + Share Condividere - + copy and redistribute the material in any medium or format copiare e ridistribuire il materiale in qualsiasi supporto o formato - + Adapt Adattare - + remix, transform, and build upon the material remixare, trasformare e modificare il materiale - + The licensor cannot revoke these freedoms as long as you follow the license terms. Il licenziante non può revocare queste libertà fintanto che segui i termini della licenza. - + Under the following terms: Sotto i seguenti requisiti: - + Attribution Attribuzione - + 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. È necessario accreditare in modo appropriato, fornire un collegamento alla licenza e indicare se sono state apportate modifiche. Puoi farlo in modo ragionevole, ma non in modo tale da suggerire a te o al tuo utilizzo il supporto del licenziante. - + NonCommercial Non Commerciale - + You may not use the material for commercial purposes. Non è possibile utilizzare il materiale a fini commerciali. - + ShareAlike Condividere allo stesso modo - + If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. Se remixate, trasformate o sviluppate il materiale, dovete distribuire i vostri contributi con la stessa licenza dell'originale. - + No additional restrictions Nessuna restrizione aggiuntiva - + You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. Non è possibile applicare termini legali o misure tecnologiche che impediscono legalmente ad altre persone di fare qualsiasi cosa consentita dalla licenza. @@ -2156,60 +2156,60 @@ CMusProfDlg - - + + Musician Profile Profilo del Musicista - + Alias/Name Nome/Alias - + Instrument Strumento - + Country Paese - + City Città - + Skill Livello - + &Close &Chiudi - - - + + + None None - + Beginner Principiante - + Intermediate Intermedio - + Expert Esperto @@ -2226,257 +2226,257 @@ questo tag verrà mostrato anche a ciascun client connesso allo stesso server. Se viene lasciato vuoto, verrà visualizzato l'indirizzo IP. - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Scrivi qui il tuo nome o un alias in modo che gli altri musicisti con cui vuoi suonare sappiano chi sei. Puoi anche aggiungere una foto dello strumento che suoni e una bandiera del paese in cui ti trovi. Puoi anche aggiungere la tua città e il tuo livello di abilità nel suonare il tuo strumento. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Ciò che hai impostato apparirà sul tuo fader sulla scheda del mixer quando sei collegato a un server Jamulus. Questo tag verrà mostrato anche su ogni client collegato allo stesso server. - + Alias or name edit box Box di modifica Nome o Alias - + Instrument picture button Immagine dello strumento - + Country flag button Pulsante bandiera del paese - + City edit box Box di modifica Città - + Skill level combo box Livello di Abilità - + Drum Set Batteria - + Djembe Djembe - + Electric Guitar Chitarra elettrica - + Acoustic Guitar Chitarra Acustica - + Bass Guitar Basso Elettrico - + Keyboard Tastiera - + Synthesizer Sintetizzatore - + Grand Piano Grand Piano - + Accordion Fisarmonica - + Vocal Voce - + Microphone Microfono - + Harmonica Armonica - + Trumpet Tromba - + Trombone Trombone - + French Horn Corno Francese - + Tuba Tuba - + Saxophone Sassofono - + Clarinet Clarinet - + Flute Flauto - + Violin Violino - + Cello Cello - + Double Bass Contrabbasso - + Recorder Recorder - + Streamer Streamer - + Listener Ascoltatore - + Guitar+Vocal Chitarra+Voce - + Keyboard+Vocal Tastiera+Voce - + Bodhran Bodhran - + Bassoon Fagotto - + Oboe Oboe - + Harp Arpa - + Viola Viola - + Congas Congas - + Bongo Bongo - + Vocal Bass Voce Basso - + Vocal Tenor Voce Tenore - + Vocal Alto Voce Alto - + Vocal Soprano Voce Soprano - + Banjo Banjo - + Mandolin Mandolino - + Ukulele Uculele - + Bass Ukulele Uculele Basso - + Vocal Baritone Voce Baritono - + Vocal Lead @@ -3247,17 +3247,17 @@ QCoreApplication - + , Version Versione, Versione - + Internet Jam Session Software Programma per Jam Session su Internet - + Released under the GNU General Public License (GPL) Rilasciato sotto licensa GNU General Public License (GPL) diff --git a/src/res/translation/translation_nl_NL.qm b/src/res/translation/translation_nl_NL.qm index 9912112b51321e6c3ffa155f6e2ad6c98f2ff9b6..be73b28e0c4d2572d29cca146117db3c353d6c11 100644 GIT binary patch delta 1546 zcmX9;YjjLk7~S8@+tukWsNzPrD@_jjI_ibqSuWi6@o za-VwNGY}#fQ1vT>0kJ^QFA$=7fRe(QA9;w_B%0H8Iim7xAd`aV)LS57B%)VNfiwGp-l||eh5#yNVTL8v@EbUL;XEkrEUPl~j1EG5qZ_!C+>De^ zg@(X8KwSX|Pfr4dZ6pT-f%I#n-dfFD*HDZ5yFu*(D0KR_fO8~81wRCJ%w_RL*RWZ% zA?_j&GMb7G`GcZ*(^l_vK-xhSi2x<9pi?VG0B7>))UIOCz19u4Bint(CIt%VU_<-xz3cb|sfO);p zJ7pheG!w#K#)7=vdNz5vB%GC#>dPS!)x?a{)*sT;Y3DMEh65>U5YY?3s< zyH$-)WG)A`tr3bAWPsjz&5lT4`zDIxeI5cI`G~VcBM(M}n42^L)PD?{Zg$a+tkCRn z>f)c}V}SN%@kN_po(Ea{OXrOT_=~UG1%Xw7oY<&(DWvgZka2?4M_&)* zR7x>=F(~3H>u=G0*GXd={{>A5mS&_}24;Gik=lO7ax9L(LTSa%T$tInrIiJdpp^E~ z>RV+zV{WNHiQ)AIY2CUSZfO=fV(IF*^YR3!%>(Ioom=CnF)KIgK+`)h)fz!zY>0KN zJ)+o1wGEW32YEoPy;+{BI|G%LB?i8yPZhr$F0N~e;=i;3s9oBO)b}B) zP+id@l$2E(&&X>f{g5wb?60KX2?F90m1&2=LBqaLGVk%*n=DG!m5ZR6&y^K?lPPbi z!a8e!B}Q56EC((8fQ4xe=X|ANpFuTR^?fs_nK2Kw(KUQew3l5bp!BJyyH;@&p9GP(vOUgJ$hyH#JY_Y<1(5 z4B*|p>ehbT@gC3BUE||H{W_^fpKvo(e!akH9ijXN?xK_&dHS|rYM+Yh+y^r6>*t4=DI^&dMg)LH-l delta 1628 zcmX9;dr(wW82^2D_ujjEU(0IivI$()A|glD6mdWW&2+&`R1^V42Lv$!GJNZRl=&>5 zCsb5yD9fmPG-g>STBxPwV=B-rM+NZ(L7He}YG>%qocYc7$NBE}dwl26e(CmpY3&mf zy3W<+xeIYH1M1E}9G(PJ{tPjpA1Hk~3noAHWI43x`D!FAae%BE60jvt2Z4ao&7>X%)AMmD9LevdV*vD+V#W!X< zy_b9zh@M21)ghpSY4mZIJV5@8j!pm{@BkfKKMpvtf{yLp1sbuJ>hB!^h5SxelK%zS z?ow0MF5qDfT~Dq7l?JgoOD@f4gRIfQs~VeaHDk^SU*_{xfvQl`mIfMpPdL=@8WgN+yC?VGI`+gm}|IjlnTk&m4c{j{68q$!>z z>*Whi0W(^x*T3cDn^kLbR0(KFPqs=jX#(3RnGyA3pGq#s^s!>>pPb;fE#d&ZFJRjy z4$SxhH0hui_fHZipn|naru~9AU3d#LelrV}-SiUcC!5Zh;__EM;1VtqR}`)W_4$?M z$iut1HL=om7^vDTRxT?9^@?Bz<&B;#C|P)T+N6^7aiC$#S%J+*S6PM4 z?@g5cIy@QZVUzAX8O8I^Pr7gN#={e&$3c;xt}B^nH@&yy-~>Kcx<`)gmD({oIo((wqCHCdjS@e455--*=yQ&wzuM|>}@|A7m$@QPekJ{XiS zQr>i_hG#5RF4so!`nbGxYXiu=l^wJ{Z#F!-%7vIIH~v!#>h6?pn%p9PgH5~G3Mv@Q zL?xbb*)U~_bDiz$sa)uh-`Eb-PX>7gvVDq4@3A_?M^~7r=F$#UpvDO)cD7RucV1Mo zbFcE@8kFpI-s;UX)})%=`%3=AUqRANrSNJM=$SprjEBp(R2HQufoEcA5)0E(dL-GD zx~2S5=vw8sJwE`}bIQ%$T!%4Jm0NZ@D6KE6(A>^Owg1aAfh%2A|BzD9{0eqdGrei* z>z7UgLtjgAXGJmv#g zv2J>kwI}uppq|~e;9~w)-*hcxO*_!CrW0vs7j{thEh^D6HW(mhgqBzB;Zzc|yv9f% zd4iUIAPzL`u| zYG0fMO4*|wO}zkwBx%P#=lx@T(M}M!26wa{ZGAyPToo%YB4fk4X&o8wf|RwoaefDA zV7nf)Lj)@Jb|R%JdiZ!3$kD9#^6=F33)Q2WcYzk1V|9j~K4ifTcg$%0&>cQ|?&VIT z%un>%!(79CMf&&Crh;Nu>!-7Loucb!0{QaYd0oHW90|%_#R?p5&qs#*s0&ZgHN$bkF6cPO`8Hhv{rFV$_wugRw?jE4O^~Np{NNPdjN8w|ofnE;UMvHiMq6G?ct$nOyZVEI_8ATG(|jY=8MjJmfEu^avVu<( z6vqkz!f6F73y6;x?09F301S(Dtda`>sn}8O=E+^S!0}x!XA_^|_-+wba?k+wFu?4# z(9sc{&i#Af==iJ<6nT-qZ*TWr+{gJLandvlag-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 - + Italian Italiaans - + German Duits - + Polish Pools - + Swedish Zweeds - + About Over @@ -1999,28 +1999,28 @@ CHelpMenu - + &Help &Hulp - + Getting &Started... &Aan de slag... - + Software &Manual... Software&handleiding... - + What's &This Wat Is &Dit - + &About... &Over... @@ -2028,12 +2028,12 @@ CLanguageComboBox - + Restart Required Herstart noodzakelijk - + Please restart the application for the language change to take effect. Start de applicatie opnieuw om de taalwijziging door te voeren. @@ -2041,102 +2041,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. @@ -2144,60 +2144,60 @@ 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 @@ -2214,257 +2214,257 @@ 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. - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level 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 je vaardigheidsniveau kunnen ook worden toegevoegd. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Wat u hier instelt verschijnt bij uw fader op het mengpaneel indien verbonden met een Jamulus-server. Deze tag zal ook worden getoond aan andere muzikanten die met deze server verbonden zijn. - + 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 - + Vocal Bass Bas (stem) - + Vocal Tenor Tenor (stem) - + Vocal Alto Alt (stem) - + Vocal Soprano Sopraan (stem) - + Banjo Banjo - + Mandolin Mandoline - + Ukulele Ukelele - + Bass Ukulele Ukelele-bas - + Vocal Baritone Bariton (stem) - + Vocal Lead @@ -3247,17 +3247,17 @@ QCoreApplication - + , Version , Versie - + Internet Jam Session Software Internet Jamsessie Software - + Released under the GNU General Public License (GPL) Gereleased onder de GNU General Public License (GPL) diff --git a/src/res/translation/translation_pl_PL.qm b/src/res/translation/translation_pl_PL.qm index fbabe227129b9edd05594832c4b38d33b24321cd..779b38c15238b0e466d7a7797ddaffb7940c8da1 100755 GIT binary patch delta 126 zcmV-^0D=FTbLn!B6ak=-6{i71k-cXDc9SIm9|2I4MFEZiF6xuj0cR0{1U#0+0007m z1YAqW001v-lT8AD0mPHd0w)ov1wQ&u001rs1&C>*001#`lLZ5Q0x;;4g##&*wgct? g8k3y_Zvm#04FzWbL6da_OaY*?!UYK~v-LBk1#q`1o&W#< delta 159 zcmaD^G`o0$2;+*0qRSa`C+p7*B29#mcEC@gE2{7=VBch`GY@lM{0kd{Prr KHg7cE!3qGQAvAmd diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index f1ea729296..d0f4a1ed0c 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -39,57 +39,57 @@ - + For details on the contributions check out the - + Github Contributors list - + Spanish hiszpaÅ„ski - + French francuski - + Portuguese portugalski - + Dutch holenderski - + Italian wÅ‚oski - + German niemiecki - + Polish - + Swedish - + About O programie @@ -1707,28 +1707,28 @@ nie jestem pewna CHelpMenu - + &Help &Pomoc - + Getting &Started... &Zaczynajmy... - + Software &Manual... &Instrukcja programu... - + What's &This &Co to - + &About... &O programie... @@ -1736,12 +1736,12 @@ nie jestem pewna CLanguageComboBox - + Restart Required - + Please restart the application for the language change to take effect. @@ -1749,102 +1749,102 @@ nie jestem pewna CLicenceDlg - + I &agree to the above licence terms - + Accept - + Decline - + By connecting to this server and agreeing to this notice, you agree to the following: - + 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. @@ -1852,317 +1852,317 @@ nie jestem pewna CMusProfDlg - - + + Musician Profile Profil muzyka - + Alias/Name Nick/ImiÄ™ - + Instrument Instrument - + Country Kraj - + City Miasto - + Skill UmiejÄ™tnoÅ›ci - + &Close &Zamknij - - - + + + None *nie jestem pewna Å»aden - + Beginner PoczÄ…tkujÄ…cy - + Intermediate Åšredniozaawansowany - + Expert Ekspert - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. - + Alias or name edit box - + Instrument picture button - + Country flag button - + City edit box - + Skill level combo box - + Drum Set Zestaw perkusyjny - + Djembe Djembe - + Electric Guitar Gitara elektryczna - + Acoustic Guitar Gitara akustyczna - + Bass Guitar Gitara basowa - + Keyboard Keyboard - + Synthesizer Syntezator - + Grand Piano Fortepian - + Accordion Akordeon - + Vocal Wokal - + Microphone Mikrofon - + Harmonica Harmonijka ustna - + Trumpet TrÄ…bka - + Trombone Puzon - + French Horn Waltornia - + Tuba Tuba - + Saxophone Saksofon - + Clarinet Klarnet - + Flute Flet - + Violin Skrzypce - + Cello Wiolonczela - + Double Bass Kontrabas - + Recorder *nie wiem Flet prosty - + Streamer Streamer - + Listener SÅ‚uchacz - + Guitar+Vocal Gitara+Wokal - + Keyboard+Vocal Keyboard+Wokal - + Bodhran Bodhran - + Bassoon Fagot - + Oboe Obój - + Harp Harfa - + Viola Altówka - + Congas Kongi - + Bongo Bongo - + Vocal Bass Bas - + Vocal Tenor Tenor - + Vocal Alto Alt - + Vocal Soprano Sopran - + Banjo Banjo - + Mandolin Mandolina - + Ukulele Ukulele - + Bass Ukulele Ukulele basowe - + Vocal Baritone Baryton - + Vocal Lead @@ -2878,17 +2878,17 @@ nie jestem pewna QCoreApplication - + , Version - + Internet Jam Session Software - + Released under the GNU General Public License (GPL) diff --git a/src/res/translation/translation_pt_BR.qm b/src/res/translation/translation_pt_BR.qm index 643a881dce606ddd4e007fd922d12631255af6ac..d99bfd7fa0eeb73b74dcff40d47f4343693af75f 100644 GIT binary patch delta 1561 zcmX9;eOyg<9Dcs%-g9pE+;h%VlPlb=qP0+0ie%*7Eu>9(36+;p`lK~sn?&AcL-?^t zGQ~cLxn72B(IR=B!e?P##*lZl&C3+C{l-7%`TTyL&-Xdc_j#Uk=AD*mPDv}96IQu5 zcr1a~hXGfMAr6WHiaSCK?+Ti@ms!a{r7Vf&bP2qT@I_{j(h3oY*FkC;BGyg;P0B(< zrJbMiF}T}W&@vYc{-htMiyLznd`V!vgj{1bPS;d}#wM^@p_|+6duV9v0bF|g1}VYF ztU8OA8>!dVfiyk6b7vRGuP230Edts-pzz>(piaBl2%SANg}#YC3-tJa3d=k}Q7vez zTPolJsu~4QVlz6nItDlwNym0NK_6z(h37{>J`L=U&O$9&t!}c=u8H;1hr})xw*9YI z-Xv@*@&wkK1*f?S&~l65Y{~%HUJLuvIAvRhP~H#=3Xc?i>bMWscThMSz&GzRPdHhY z1ei*NTf@2Fai@ekkEekWHnB5$3ms#1dYe~_PO56)u5{N~U-EZMh|+l-Nag3Ny5RUQ zP_O08M|@ZQ?7D9Ej8G7h*a)$=@t8htOFby9j1`D>Dq?5ELBim>%w0Eq}?DOE$`2J0#EH9iNC@3b{8KPO--yPGIvn@qIOjd-O`|8Mhad z6eNZZUXcD#aS2Afoefq*iZ}V_d@)9%4S}OE8^1h6`;^2mSk|a28e|&6~N9Iv2aN` zC^(EAGJNe(Bu#L?2V|M0EJ?>_21;|r#DIoQXH#A5l)?&J99}<4Pb%Vp_6MZrt%5;g zc1nNSIB#Tg>EAX1pw><%8g0gL25UIqWnvWbH(F>48)&q7*bNDduR*DM44HAi0J9_B zAbEFU*+z>W469FY>*iSvYxDYWH>wTmu9pMPorXMR7-;fX!-fqvdHfgHA!DHBR#PR& zE5~r(#^W1W?xI|)2hDiIRJk|hvPd~z9?<0S!z7+TbPC%i+o%PrmF={hiKb-I*i=(* z(y<*TU)K;hG5IzZQ!ghz;}l;8vO1H^D^*S#`ztSfjhueF1mwR@&iH2uXvh_LS~%}X zZXEMbMtM2q+Qodvw^+Wi>jWT%%J(~O1V)~e9~h0G37M=wvAFg%g+yio_kK4y`sRS< z`?4y^qx{`Od@955XezelMWeHmz5 zs+`=-`TIJQQv_gCyz;Y45Og$1VN*4GXm6!4ZVkxom8xAT1`SA5+Z2mHQOz5q@f}p( z5$?R>eN}%C-i4kc)NT)*paqLqt>z#rvzl$Lt<=hjYM?AdJwAC7Z?Kg`nk|8%`d~c2 z%^aov*<%gCxTjx)Cym4)&2Io#fdMql04r3wiR0W`4xbl zQM=?G0%{km-88fZIc{qY=9B|RJ8F-X27tUzvZQ7SeyQeV`2rA8Z(eRl2c-MvJWD)i zp||-+ay8I@o%zVzAnwgp_PCj?#Y%Hyw=qEMBy;0;>7cIF{2#U^V1c)5skbW~ZCTo^ I1AUzJACz>}9{>OV delta 1569 zcmX9;dsvNk9RGaZbKY}#&wJieahy)%6p=<9lB|{_ms2itONyP+JuSIC*ii1wOr{@m z%@%r^Oz~{Q$lT4X@W^7BYnV$hMw!cgv-f%4_w)Szc)!2T?f0ubt(kX5^L0zotu!}U zcR`F`KwSyM0Yib3&Jd$|fRg`Up5&mLERFI40~JIqGJ#|dM5kT{8M6_+dORql7|}=V ze7yk!gI9yT3dFz}k)XgZW)^&@3+pAU(3jv$broprQdT1byXCr}u{ji|ef%CNu{-lr zS-iu@czrEMQB#Y%J3)Tw6f$8m(Eb5M1>FaA`JIhY*+UBG+mYvi&|y@xzb$BJ1by$8 z1?WJ>M+1}^N+$|pfD1$DM0pu#crjgmaSYVa$|_YBiexpabiv1m^-}kY-zk*-$5{GK zDBau^SZ@-_Oo4#=R-x?GB#>7pVNW(6=`~q6*ccCrnj!qsc{i~8fN(f~E05SNoZ6oT z7%GI@BRJtto(p#$PXQ&KX6Muvdcx|}Ht#%@=6EA_C0XV958oqcsLFe97HGLf6_gMT z>Q%uyh#jSwdeyFJAt2V3jS_q7pQxQ%8$j9htWdPmS$0kwAPjP4W=*2ip}ujoJuqES z-#g50cs5e~Fend{-+?XH*l0c5p=mp!i>DY^#J!nRD~3KP1GZccKQeab9=#UBoIiom zoMQN^p&<9iqT_W3K)pqbG4VX=yNR)EHn7c49G4RSTHzvQ3JXEbeCDaObaRN)yRHRP zo5ar=ZvpfD#hJh509Asxu(1Zzx1IRK_$@pEQCymn4+`~RXn+4sf4$8buT5-z3(Bg~PIX=aW=FqA zY8T6L^%lPmv<1I%>*jfCSFelUZZv7vUOx!DDATT!KL({Q(r(;%i^mRDsqbdH_4W>T z>ZtbitD_+AQth8M9^>GHI{8`yXnHFqO1)_x>n|lp{e5)%Qg{|43)l|HMiK0sWTzVT zM#`WMS(>3Y`Lkk!uWOQ&nsJAdYLHU@<|CGkW!DTg?^ROv*eksJ)l$x#Z6N>a(xf*_ zxFMo6C5rcD#S-QzkJi^pHH-N_z86@oZ1F2Js7o!tD8-;t4dO9M1{a?IF8fnM&mmKR z`!@}aK663yhqFrAMz7g5{$0l2$UP~U^)T8)MjNhfuj8Vc3^xWjxZpj88^a=j7USL{ z$uA8r)Q>R z(RY-Yr`E^lZ{P^(y_sEM%*@dMR}0N`+2Oh@@Oe%)b1H`x+KynR_S7K9c((1!CCiRYdSKA z`_u0tt9P-r`q|VRJO+qQF*W~?1M1PlZ>v>t3p`vaJY4CRyZbx-=(w%W@K=hRn39z3 UH8?FPb(_p1^)Qi6#xJL diff --git a/src/res/translation/translation_pt_BR.ts b/src/res/translation/translation_pt_BR.ts index 076bb67ddf..956fcc383a 100644 --- a/src/res/translation/translation_pt_BR.ts +++ b/src/res/translation/translation_pt_BR.ts @@ -71,57 +71,57 @@ Ãcones das bandeiras dos países por 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 - + Italian Italiano - + German Alemão - + Polish Polonês - + Swedish Suíço - + About Sobre o @@ -2038,28 +2038,28 @@ CHelpMenu - + &Help &Ajuda - + Getting &Started... Como Começa&r... - + Software &Manual... &Manual do Programa... - + What's &This O que é &isto - + &About... &Sobre... @@ -2067,12 +2067,12 @@ CLanguageComboBox - + Restart Required É necessário reiniciar - + Please restart the application for the language change to take effect. Reinicie a aplicação para que a alteração de idioma entre em vigor. @@ -2080,102 +2080,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 conectar-se a este servidor e concordar com este aviso, você concorda 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 remixar, 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ê remixar, transformar, ou criar a partir do material, deve distribuir as suas contribuições sob a mesma licença que do 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. @@ -2187,85 +2187,85 @@ . 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 apelido - + 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 Seletor do nível de habilidade - - - + + + None Nenhum - - + + Musician Profile Perfil do músico - + Alias/Name Apelido/Nome - + Instrument Instrumento - + Country País - + City Cidade - + Skill Habilidade - + &Close &Fechar - + Beginner Principiante - + Intermediate Intermediário - + Expert Avançado @@ -2278,232 +2278,232 @@ O que definir aqui aparecerá por baixo do seu fader na secção de mistura quando estiver ligado a um servidor - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Escreva o seu nome ou um apelido aqui para que os outros músicos com quem quer tocar saibam quem você é. Além disso, pode também definir uma imagem do instrumento que toca e uma bandeira do país onde vive. A cidade onde 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 Jamulus server. This tag will also be shown at each client which is connected to the same server as you. O que definir aqui aparecerá abaixo do seu fader no mixer quando estiver conectado a um servidor Jamulus. Esta etiqueta também será exibida em cada cliente que estiver conectado ao mesmo 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 - + Vocal Bass Voz Baixo - + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Bandolim - + Ukulele Ukulele - + Bass Ukulele Ukulele Baixo - + Vocal Baritone Voz Barítono - + Vocal Lead @@ -3286,17 +3286,17 @@ QCoreApplication - + , Version , Versão - + Internet Jam Session Software Programa de Jam Sessions pela Internet - + Released under the GNU General Public License (GPL) Lançado sob a Licença Pública Geral GNU (GPL) diff --git a/src/res/translation/translation_pt_PT.qm b/src/res/translation/translation_pt_PT.qm index 3009633511edbb4ce7a34c24565c78ebc75ec6c4..8709a907043cae41688947395a8df2cd1b3b15fb 100644 GIT binary patch delta 1209 zcmX9-dr(w$7(L%z?%v(I_ud7AR)XcW%8J$qqQDMXsHCh&VufT%3%)@jP<&gUO+Lna zg zu8b4+beOK?)Pu_Mx!O`dPHwmO=nN-^m_1HP-1f?V zz%gHHdF^Y^;2B&I;-VN{9b$U6Tdap}fyyf_?nf~|!5)j}yJFC^E|#SHG*GWDd^RM` z?zMa~BNa3!pJlnf-3$qAY6Ioid6--(r8ekE+>pHpYr4fSSPuwhOmdQ&> zSAcpR;dZM(Y_eQqYXEkPlWP{2g1Sd>uCj(^@l7RxYT0e`NA|PcX~+j+oz{O$QTM`A z)+f>NAXf`l*i6qR#XUqY$lR!;1ZRVkDrKO#5qR%&CEKh8rCjBGHZyXsQV@I$dKJpF zz%Rhug&j!l{(MioMk{N7uLtf%D(kdt(97GD4I3_jqBe6+d!no5VWW`0O1W+dDYG`) zwB|O@n@L<@UnC`6XIV{?N^bLDwUCzc4z(a`p*o@PGVsoG>V$jZ=hRv3c9@<~YDwO& zAcsvYy}S+7wL+cJz8KW^H?@3-ux7??4md`pj#sbu66|xgsyFO*(2x_3kS|<7POHOa z$pS3r9HFuCpjTEpe8Z*zSI0Q~1LuQ^-sYPQA5CDd=A%juXbEA@IL?20LGZrl_#?|N zFu>KC>9K3!J0(yzkLIoreR^kUF)Qx@f2VgKr7q)UEn(gdJGiZ=D<%+1@vO_CxIs=+?Ra?~}B0BxJ#@&VQ_IcVTo(9mYX046{%Za=G z#|!Ujjf19(e5}T9RR@F|}`hb$Fv=de3Kw64+GI21#OLb48t_1@hft<;@ac&DJ zDN~Q$A_Jebb|CqG(BpC=MDk|pDXq1j$;Y`__fsKz4RchH-q>&o_!e2E{fR%HvLA{(gq*bQ`d~ zn-Ntgyc&9ds|}Mr;C;q$(ph)95*v-02ZG(ubff;~6+rg^#<>U|D8_GGQer{AvBr(c zdf;H5@z)a3(S3n)on>J~&Vz-bZ~9W_!Fgi-q&0ljX+B-%45o}0DxY))x0ix?Y!+KS VcftE==pHqcg5i65dTG_f{{a7DYJ&g( delta 1179 zcmX9-3s6*L6h7xJ_uhTndzU4)m67GT%1ax;4RC`3AF0cmDI}Z}P=rt-K!_q6)W%F5 zMomscm?oPs(3D`KKo0Q`Q?p5NDj0HdEFLz3VwR{&E%uL{nSajA`TsNXz5ac*LQk#m zzAyfH&^*H>29X(8aqH$&7H;E$t#l1ltRxSH;0X%i4&VZ6;~b_naK{}3Fxd0BqtlN( zTnHYcAWe9}5FSmx0uY^vuFe3!xFy)^QwShl#Pc<)0s2)u-`WDWv;hb2e+y`P27gcg z7f{}ZW4UaO=kbs9ZorZ~bVQSb(d5xMaGIjL)cFs%_96iEU(WSB)dq0#d+towX26IT z?qX*?fMEwW^5O}=l}D+{%YyM#>!sQTHNv?&fMv}Z>puYiIUO3?*M)%P$(qRQIKV~8 zG~gAYOVfN+5e@j(9^&~Wx&*JR&n5xWBPfM0=3;=l_#A8?t6;$@iV{>Tr3^vUP4G{< z7{SaysuC=^Rz7Yz4bVK7jtHu46TgXj7jTt>FN{?H=GysJqx=Ep)$=9KuVxVcqHAoY zo!?u$A8_Ga@(4~7@h)vI!0}w(wYwNFbR}hob?BnoVmJGXx3WiHqHpfZ{=MnfeL9JIBOSwFS`OO7?CS8$D4_2{ab)@| zv!PSGsWM5E8nx23Nx*g4RH1v1i+X}Qx;XB&*%YfUzz%BE=a^dcc?F{YZ!gg2O|h3- zTx2$=ww?N-wZ8xwwEE)F&jIH(=}SGk0iV_C%i@_u71t@lkZIbdzqyF9$Y|D&>vVwe z_o>TZF`YIzQpy2ttT#B9?Eu_VM`H#D?kB6{z-G#j!c8j-SHJib&}uOJmgHn;cT=sT z>LMiHlN?}h5_L%yY^MP!JmH>{^`XL?`&26I^kXu> zTq+y90$AWJ)r_zhzCI;UDDzggUHaJ83s@;qifl3UN$1vF1(>6ke$Yk$Ms-q!9By|= z?yL_0jZv~P)C3q=F8ep}01Xq5J32?@kPI`^_6>RQL<`{NDH@QSc#y1$YO0aX_Fe`! zeMr9W%0?FVYD!To_BZA6^=!K3f_yh7mANn}-#e8G7zBzq;k50 z;sn(yDxRV?B`v|BRNZO>h)7b%oD1kvt+*aCR1vrT?}=rb4%mm_r{Qm%a_-Fk9 diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index 8f76553b2e..3f1b07dbac 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -71,57 +71,57 @@ Ãcones das bandeiras dos países por 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 - + Italian Italiano - + German Alemão - + Polish - + Swedish - + About Sobre o @@ -2035,28 +2035,28 @@ CHelpMenu - + &Help &Ajuda - + Getting &Started... Como Começa&r... - + Software &Manual... &Manual do Programa... - + What's &This O que é &isto - + &About... &Sobre... @@ -2064,12 +2064,12 @@ CLanguageComboBox - + Restart Required - + Please restart the application for the language change to take effect. @@ -2077,102 +2077,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. @@ -2184,85 +2184,85 @@ . 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 @@ -2275,232 +2275,232 @@ O que definir aqui aparecerá por baixo do seu fader na secção de mistura quando estiver ligado a um servidor - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Escreva 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 também definir uma imagem do instrumento que toca e uma bandeira do país onde vive. A cidade onde 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 Jamulus server. This tag will also be shown at each client which is connected to the same server as you. O que definir aqui aparecerá por baixo do seu fader na secção de mistura quando estiver ligado a um servidor Esta etiqueta também será exibida em cada cliente que estiver ligado ao mesmo 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 - + Vocal Bass Voz Baixo - + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Bandolim - + Ukulele Ukulele - + Bass Ukulele Ukulele Baixo - + Vocal Baritone Voz Barítono - + Vocal Lead @@ -3283,17 +3283,17 @@ QCoreApplication - + , Version , Versão - + Internet Jam Session Software Programa de Jam Sessions pela Internet - + Released under the GNU General Public License (GPL) Lançado sob a Licença Pública Geral GNU (GPL) diff --git a/src/res/translation/translation_sv_SE.qm b/src/res/translation/translation_sv_SE.qm index 48a800e6921bf374f4b047f044f84fe3e03badd7..4a6f788073286d2de5cbe8235f4aa3fac4bbae21 100644 GIT binary patch delta 1605 zcmX9;e^69q6g~GXZy)>iy|=8nEy$1OlA)HeDF|W-D9Hi_q<|(0m`W%C8m5v4%4Cx1 znE6RTkqjoKlc8p24T&gVX$_dEV-^+y{y@R8K*Iw2hWuQqNU zPLtoY^^6F505OsQ=R}CniNLOYh%u8uv#&8gt|NPKvM+a_>)I~{g;Fjfy+P>6NJ;XnSeP$ zXrImJjL#9Sb?1W;{}uXPeI2O0`ahnVF5FxHCa7qTb-U?~wFYC;9q!j2gYQ3nz=8&Y zvplqy&m|aUaTs~0|k_`Ch2{zvBno|H-J^G#&t#mugNeLrE;e5ootnR zppbckRlBq=gk+17R*m7`szX{6-wb$o zOB)U8AV;RO<9i;VbtzJ5c_b+1tW@@U9S`JIsa#0_&2dQ;6<2uxJXw=zg1!Ag188`; zbW`VRi{0d|wDy29=P;WbE(~bx87;3EDB-@D z<@^{Pl-C)Xs$@8P7BBoB5BKF0QkM)}ZD&(EZmrD=9Yu+sFxWk8Qo zP9NfI6T6f%1R%*r`O!TH6k5qjHD_3((x0{yDgqz04Iw?hLmi!B z1DTGg;cwiam^d672dAqlPu9Tg2(@lNj7a?Ilm!mhgNrP8xYW@U9yFO9(8J0rBVD2s;%X!-s;MTX6Tlcw| uvac-nJoq+8wOaZ^Qh}5ROaJ~n&=@=a^A(4`k!n4fYNcrT=oxQ%xcWb)Ywef- delta 1644 zcmX9;c~n$Y9R7Z9=Dj!b=DjxzIgW_%95bO)GNmlyNj8@OH&7PS8dQWpQZN*y64YZx zdff85;gVs}hEdj`4MmdBXu-7dsKqf)(tT+0+i~^%RMJ ze+dW`WD5xc1so;q!cNZoH9hd#2cWUbbL!1aN;vM{(cQ;Y!scj`6XyT3$>-*1qo-UJ*x(|wUDl) z)`OP5&00;l)XT=3qbPxunvH2og^w3-CP$S}e|;us^rOPjM{0qCXN51q=7UC*2+egl zfGt+IG@a|5vR(MCqX?8TOz2v&9N2g9KAuhxZmw7ZS`o@R%!d1bNou;z{c14<{TB>8 z-Dq-unh$zmi77lY2IRTMhKs|L`5~r5#nGUZ8O$ffS|^)*2RcDdx3MbGL+R`%(MyL| zkTjbZE0tXC_slnL#{uu%Fn3Mb2t-b!(v@`&3Hi(tw1)yP#tV!MxkSfh}{tgtkN-s(#UZJ&8*(}Z!Q_qSm zVZt;1tjgkbua*97$mGZLNH+(DgC;dgw+v1kn<@1U3Il0bOtS_L$sQmFC33CPYvsu9 z65!qtIo@~;C{2>58a1HkOg6=8%p51r?(PB2x-BpE{Rk`*`;eRq<>FAj*4*;4DJ_6s zp!||46Xf0`Z~2N>=*4t-TSXiw{f@lzLOn0!dbvWK3d(p+-m~W-FF*oovOaEH?77U{ z8ZTeE(+KLx<;ALQS{jwl8- zu~x-Ho0w+Hr4CkXi=_%yYx7K7tYqh2=5ouF>@H4Ka#G1jG6U_`l)RL$0P`Lt?<$vl zm*eeQpr`<4!BgizU`oN|cR+&|DU0rvb7LcvqD0=Lxy`RQfOHZX(jRb2tC zHuJkKAf?`BF--zY2W@^s!?;ze*mtUnRcm4{YbFe*rmd zwqGZCxe;gCUd?cqtNlI__@q~>L8Ux|$NHXfwdlLB%7%Sb-oQO#_F?uqVHyM0?h z=4?$r`xYqDt_^xi1a`IcA*CGFLeiZe>k(~uKo2PFxEA?G4d}T_)}?#t2R6p;ik_ey z{fA4>+unyXD@JQ<;DLOYrJZ-@xO!@12{ppRsur~dyGYZsyrhZW#%ID%6{aP7s zblq6}&$V2U^Dnl+FNAimTEEzbJMHUt3xLF(110gCnVqyPW_ diff --git a/src/res/translation/translation_sv_SE.ts b/src/res/translation/translation_sv_SE.ts index a7de891206..4f101435f2 100644 --- a/src/res/translation/translation_sv_SE.ts +++ b/src/res/translation/translation_sv_SE.ts @@ -39,57 +39,57 @@ Landsflaggsymboler gjorda av Mark James - + For details on the contributions check out the För detaljer om bidrag, kolla in - + Github Contributors list Github's bidragsgivarlista - + Spanish Spanska - + French Franska - + Portuguese Portugisiska - + Dutch Holländska - + Italian Italienska - + German Tyska - + Polish Polska - + Swedish Svenska - + About Om @@ -1700,28 +1700,28 @@ CHelpMenu - + &Help &Hjälp - + Getting &Started... Komma &igÃ¥ng ... - + Software &Manual... &Manual... - + What's &This &Var är detta - + &About... &Om... @@ -1729,12 +1729,12 @@ CLanguageComboBox - + Restart Required Omstart krävs - + Please restart the application for the language change to take effect. Starta om applikationen för att sprÃ¥kändringen ska träda i kraft. @@ -1742,102 +1742,102 @@ CLicenceDlg - + I &agree to the above licence terms Jag &accepterar ovanstÃ¥ende licensvillkor - + Accept Acceptera - + Decline Neka - + By connecting to this server and agreeing to this notice, you agree to the following: Genom att ansluta till denna server och godkänna detta meddelande, samtycker du till följande: - + 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 Du accepterar att all data, ljud eller andra verk som överförs till denna server ägs och skapas av dig eller dina licensgivare, och att du gör dessa data, ljud eller andra verk tillgängliga via följande Creative Commons-licens (för mer information om detta licens, se - + You are free to: Du är fri att: - + Share Dela - + copy and redistribute the material in any medium or format kopiera och omfördela materialet i vilket medium eller format som helst - + Adapt Anpssa - + remix, transform, and build upon the material remixa, transformera och bygga vidare pÃ¥ materialet - + The licensor cannot revoke these freedoms as long as you follow the license terms. Licensgivaren kan inte Ã¥terkalla dessa friheter sÃ¥ länge du följer licensvillkoren. - + Under the following terms: Under följande villkor: - + Attribution Erkännande - + 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. Du mÃ¥ste ge lämplig kredit, ange en länk till licensen och ange om ändringar gjordes. Du kan göra det pÃ¥ nÃ¥got rimligt sätt, men inte pÃ¥ nÃ¥got sätt som antyder att licensgivaren godkänner dig eller din användning. - + NonCommercial Ickekommersiell - + You may not use the material for commercial purposes. Du fÃ¥r inte använda materialet för kommersiella ändamÃ¥l. - + ShareAlike Dela lika - + If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. Om du remixar, omvandlar eller bygger pÃ¥ materialet mÃ¥ste du distribuera dina bidrag under samma licens som originalet. - + No additional restrictions Inga ytterligare begränsningar - + You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. Du fÃ¥r inte tillämpa juridiska villkor eller tekniska Ã¥tgärder som lagligen begränsar andra frÃ¥n att göra nÃ¥got som licensen tillÃ¥ter. @@ -1850,315 +1850,315 @@ Inget namn - - + + Musician Profile Musikprofil - + Alias/Name Alias/Namn - + Instrument Instrument - + Country Land - + City Stad - + Skill FärdighetsnivÃ¥ - + &Close &Stäng - - - + + + None Ingen - + Beginner Nybörjare - + Intermediate MellannivÃ¥ - + Expert Expert - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Skriv ditt namn eller ett alias här sÃ¥ att de andra musikerna du vill spela med vet vem du är. Du kan ocksÃ¥ lägga till en bild av instrumentet du spelar och en flagga för det land du befinner dig i. Din stad och din färdighetsnivÃ¥ som spelar ditt instrument kan ocksÃ¥ läggas till. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Det du ställer in här visas pÃ¥ din fader pÃ¥ mixerkortet när du är ansluten till en Jamulus-server. Den här taggen kommer ocksÃ¥ att visas vid varje klient som är ansluten till samma server som du. - + Alias or name edit box Redigeringsruta för alias eller namn - + Instrument picture button Knapp för instrumentbild - + Country flag button Knapp för landsflagga - + City edit box Redigeringsruta för stad - + Skill level combo box Kombinationsruta för färdighetsnivÃ¥ - + Drum Set Trumset - + Djembe Djembe - + Electric Guitar Elgitarr - + Acoustic Guitar Akustisk gitarr - + Bass Guitar Basgitarr - + Keyboard Klaviatur - + Synthesizer Synthesizer - + Grand Piano Flygel - + Accordion Dragspel - + Vocal SÃ¥ng - + Microphone Mikrofon - + Harmonica Munspel - + Trumpet Trumpet - + Trombone Trombon - + French Horn Valthorn - + Tuba Tuba - + Saxophone Saxofon - + Clarinet Klarinett - + Flute Flöjt - + Violin Fiol - + Cello Cello - + Double Bass Kontrabas - + Recorder Inspelningsapparat - + Streamer Streamer - + Listener Lyssnare - + Guitar+Vocal Gitarr+SÃ¥ng - + Keyboard+Vocal Klaviatur+SÃ¥ng - + Bodhran Klaviatur+SÃ¥ng - + Bassoon Fagott - + Oboe Oboe - + Harp Harpa - + Viola Altfiol - + Congas Congas - + Bongo Bongo - + Vocal Bass SÃ¥ng (bas) - + Vocal Tenor SÃ¥ng (tenor) - + Vocal Alto SÃ¥ng (alt) - + Vocal Soprano SÃ¥ng (sopran) - + Banjo Banjo - + Mandolin Mandolin - + Ukulele Ukulele - + Bass Ukulele Ukulele (bas) - + Vocal Baritone SÃ¥ng (baryton) - + Vocal Lead @@ -2884,17 +2884,17 @@ QCoreApplication - + , Version , Version - + Internet Jam Session Software Internet Jam Session Software - + Released under the GNU General Public License (GPL) Släppt under GNU General Public License (GPL) From 79425584317c087cce54f7e57e747c1353af258b Mon Sep 17 00:00:00 2001 From: Melcon Moraes Date: Sat, 18 Jul 2020 02:46:10 -0300 Subject: [PATCH 402/936] Update translation_pt_BR.ts --- src/res/translation/translation_pt_BR.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/res/translation/translation_pt_BR.ts b/src/res/translation/translation_pt_BR.ts index 650d0f0de1..12e7c748df 100644 --- a/src/res/translation/translation_pt_BR.ts +++ b/src/res/translation/translation_pt_BR.ts @@ -2505,7 +2505,7 @@ Vocal Lead - + Voz Principal From 718154635971746c3d8a04801c6eb41f598c8298 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 18 Jul 2020 08:31:54 +0200 Subject: [PATCH 403/936] update --- src/res/translation/translation_pt_BR.qm | Bin 107855 -> 109291 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/res/translation/translation_pt_BR.qm b/src/res/translation/translation_pt_BR.qm index d99bfd7fa0eeb73b74dcff40d47f4343693af75f..305c45142e6eb33c8ec0e6e1da3507686674342d 100644 GIT binary patch delta 5163 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 delta 4428 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 From 4707501060a0b77a01b16cd944e4562ef766b925 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 18 Jul 2020 08:56:52 +0200 Subject: [PATCH 404/936] log the number of connected clients on each new connection (#277) --- ChangeLog | 2 ++ src/server.cpp | 2 +- src/serverlogging.cpp | 5 +++-- src/serverlogging.h | 4 +++- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index b82b1e57ed..a20b3e3399 100644 --- a/ChangeLog +++ b/ChangeLog @@ -26,6 +26,8 @@ - show maximum number of clients for servers in the serverlist, coded by dingodoppelt (#451) +- log the number of connected clients on each new connection (#277) + - move the Mute Myself button up to prevent accidentally disconnecting - bug fix: grouping faders in the client should be proportional (see discussion in #202, #419) diff --git a/src/server.cpp b/src/server.cpp index c69c4d2d16..74694d5115 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -660,7 +660,7 @@ void CServer::OnNewConnection ( int iChID, DoubleFrameSizeConvBufOut[iChID].Reset(); // logging of new connected channel - Logging.AddNewConnection ( RecHostAddr.InetAddr ); + Logging.AddNewConnection ( RecHostAddr.InetAddr, GetNumberOfConnectedClients() ); } void CServer::OnServerFull ( CHostAddress RecHostAddr ) diff --git a/src/serverlogging.cpp b/src/serverlogging.cpp index cdbe446878..e9ba0b1b57 100755 --- a/src/serverlogging.cpp +++ b/src/serverlogging.cpp @@ -59,11 +59,12 @@ void CServerLogging::EnableHistory ( const QString& strHistoryFileName ) } } -void CServerLogging::AddNewConnection ( const QHostAddress& ClientInetAddr ) +void CServerLogging::AddNewConnection ( const QHostAddress& ClientInetAddr, + const int iNumberOfConnectedClients ) { // logging of new connected channel const QString strLogStr = CurTimeDatetoLogString() + ", " + - ClientInetAddr.toString() + ", connected"; + ClientInetAddr.toString() + ", connected (" + QString::number ( iNumberOfConnectedClients ) + ")"; QTextStream& tsConsoleStream = *( ( new ConsoleWriterFactory() )->get() ); tsConsoleStream << strLogStr << endl; // on console diff --git a/src/serverlogging.h b/src/serverlogging.h index 71587d55e1..aeb46a1aec 100755 --- a/src/serverlogging.h +++ b/src/serverlogging.h @@ -50,10 +50,12 @@ class CServerLogging void Start ( const QString& strLoggingFileName ); void EnableHistory ( const QString& strHistoryFileName ); - void AddNewConnection ( const QHostAddress& ClientInetAddr ); void AddServerStopped(); void ParseLogFile ( const QString& strFileName ); + void AddNewConnection ( const QHostAddress& ClientInetAddr, + const int iNumberOfConnectedClients ); + protected: void operator<< ( const QString& sNewStr ); QString CurTimeDatetoLogString(); From 2ee1955c288cd73be3035b6901dba0907ef80519 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 18 Jul 2020 09:11:34 +0200 Subject: [PATCH 405/936] some re-ordering --- ChangeLog | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index a20b3e3399..e6b813b407 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,8 +5,6 @@ 3.5.9git -- update server UI to allow setting the jam recorder directory (like -R) (#228, #405) - - new app icon for Jamulus, created by geheimerEichkater (#410) - support up to four different groups for the channels (#202) @@ -17,13 +15,15 @@ - add special server list filter for filtering occupied servers by using "#" (#397) +- update server UI to allow setting the jam recorder directory (like -R) (#228, #405) + +- redesign of the server dialog (e.g. added welcome message setting) + - save and restore mixer state (like fader, mute, etc.) (#377) note that saving/loading of settings only works if not connected - scale channel instrument picture in Compact skin mode -- redesign of the server dialog (e.g. added welcome message setting) - - show maximum number of clients for servers in the serverlist, coded by dingodoppelt (#451) - log the number of connected clients on each new connection (#277) From 797b442dadf31ac90de7044ddd3afc2f7ed43dea Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 18 Jul 2020 10:56:15 +0200 Subject: [PATCH 406/936] small fix in German translation --- src/res/translation/translation_de_DE.qm | Bin 109709 -> 109707 bytes src/res/translation/translation_de_DE.ts | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index f674a68af9c298f519b972a17689b910ce2f32a0..5361bc4167ac4eab5e258c970bfa051e6d6867f0 100644 GIT binary patch delta 4477 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 diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index f7d9332b5e..c88a87fdcb 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -54,7 +54,7 @@ There is a server which collects the audio data from each client, mixes the audio data and sends the mix back to each client. - Es gibt einen Server, der die Audiodaten von allen Musikern sammelt, zusammen mischt und wieder an alle verbundenen Musikern zurück schickt. + Es gibt einen Server, der die Audiodaten von allen Musikern sammelt, zusammen mischt und wieder an alle verbundenen Musiker zurück schickt. From 4b6619e3501348b7b28883b1a1a30fd8d721e0d8 Mon Sep 17 00:00:00 2001 From: Miguel de Matos <11491485+Snayler@users.noreply.github.com> Date: Sat, 18 Jul 2020 16:58:26 +0100 Subject: [PATCH 407/936] Update pt_PT --- src/res/translation/translation_pt_PT.qm | Bin 101005 -> 109159 bytes src/res/translation/translation_pt_PT.ts | 88 +++++++++++------------ 2 files changed, 44 insertions(+), 44 deletions(-) diff --git a/src/res/translation/translation_pt_PT.qm b/src/res/translation/translation_pt_PT.qm index 8709a907043cae41688947395a8df2cd1b3b15fb..6e9d88c163b730c8965ed6c9db9c81d401ed0ceb 100644 GIT binary patch delta 10332 zcmcgx30Rcn+J4?)_7y~A$>qZ>+yE6VO-%&_6afL(LLJ}(Mu!=g83Z>*ODogdCY?N) zrI{(2X?CKM{%U#L($te$X1Qf%s7d9DmHzkpeJob?U*|v9_5YU_JTo8f`@GL`Klk&z zpD!#`Up%Jv_W2+$?30=mOFxZlzGK3w|2j30D5yUXwIlkXD`X;3vlk&#h=zPF%Yv!0 z{Q5fNFrtX_kQqd2+hkdoEXyLc=|m$dAg9T)um#cR_i(^zqUqC#&R!+u{C9}H97W2Nvx&N`k!Ai-Qoi;N zV&)^H{C*L!CWlE`bAo90GE#M%L-dfARGp3y6}(2O*fm7gKO(OxZVs`*8Kmm(BRaK; zRD;uCh?7)FJ%|-NMXHoHh+3>B)yP4_LS84;m=TaiNj2L-)Cvk$sbEkv*{Dh}0cYiS}J3_3Q~mpYQaNX8*@T;x;mMT~Aa#P?jg2 zrH)&bM4ji$vinl%cmyfwzLz>)i6y$Fq)sam;CV51I=q*t$3W^a=pG5i$ zN?hk5s@+V9XP~G52}!aZM=5EJg_x-sCFh+%q`ZZcywpYvIZNIZg9m;Z(sL=XMMr2z z*+61F84dY(E<$Fcp`W}&#NMHl*)a5}Pia`6H;4r-q+z=e!Mr1sI&V8s!c0nCwiCJi zmeNPTkb(rt9D|gdDxlH70WXDXXw3IW#ogI7R_IL3+pL(f)sYB|m9nvrg&m`uA%#R& zcG2_|NQroj7Js~w==p>6Y8ei&ZKO2|kqXmPdNb-MJbjwh#Y7VY*r@WOpNTbf(L3>3 z#DSAFQhs3@XYpVP&c z`V*VAiE3(l17sH@$#T!rjSfKat#eHE6FgH~V}^&LiFG`{OlMvqhNuRAw~1JnR;*Xi zYNEEWEGh1LVzIBW>vND1^3&B$PjHSl=T9p=lpOYHer z_G;!4qQ|DPRa;vU%Zg>|noK0pMzP(akb%N)*`6g?M4t^}d*0bdY~*70`OSY4>#&xc z%ls9nPiGf$@LWBYUCi80?1i)Jr{{D;&0l7piQuM*vEr_c}gjw5m#6$Z;4 zqEWjQfj3Zwr-v&-_9YU1-Chx424tt*Q?&lZMa&qWc>H{KVu6blqvs%mVo$}`N0FM8 z^@@^T9K;@eQ&IXw1w0HuAx6DMYNX1;rLxjdF{PUkAdgruab@B)pq*1)# zorO9r&rnoy&>5B~Dp$88dbvQc(bA15?2uyP9h6UGs^Wb+Jda$i*j_V+SW1*)M<;~v z{T~${MFYGEd5Zm8MIyr)#rX`Rz`95A-48H0Z>r*k2jE*jU6!Y=C~kTI)@83LYNt;D z!PO|dwFmkU?b)Qb6NQi*niZhlgaiE10qWf~#1>OPi(g<+&Z&UN4<_RKnt-@*{fG^i z9FTE*CDA=YfM;YJ(c`xR=6sk-^xM&ZxkC;iqOSxjd+Tq+D&7p(T-poz&IWwd8hXnA z7I6Jk9{6Q-!1dGEx8CAaYOZZ0>S$Dkc@)S^Ph}seep@R0RaX%GgOpDW-A_zhtIS?= zl~~C<<)k>2*V7hd`MNKOx{Oy&u}=V)NI7MN2lYNfIXxNt@TyHY>s)(c$!_J++8#t_ zTFUZ9v2w*&@XaHaWSQ?>sa!MjGnCUHzg)%FA&T#FiXaUccR+ z=!010jiC#O9xYUv?|~P**^*@4ic}#aw^pm#W{d>!e4&bI1<=KOuj;l6 zRa81%)%(YdL~jJE9y4`E6KbpKll>lf*+h-1-<>pK;rCRDzk*_wt5jJQ)ctpns*yf` zr?N;j!4XZ&w^LQ9m`yBaoN8iUGf^8sHK|8))cJENCnuboaMk2kcowiyRbKNAQuM59 z>K6{8!=qKRYmTGG>{2~vdmZKbj%u!B0kOVERr3!%h59dasuoT74CS_3we0L^M4*$( z|GEa;zfJYhTTl@3x-73>Q>|EmP@2}s^2}PuZ-@!Ss#V&Z;E(52tDZ#}KKih#a^DW3 zsvD|($-fd^yP`Uha~I6|n(FwIJi;}yJQ1t9{DF5n$|g?rYj@PW7@+zsdI8b+RcckI zyXe{ZYSkRb&rYaSt5b;O%FiC}ewcPv6Te2IEadMNt+TJ@{G z+pv6``i-5Sy34idwR7Ovr^V{ZUPd&H$JHB3P=3>5)m7^!5E(D1cVq$GVb4gC1;4BQ zxY9=S_iFW?lQ6jT8TG!BXteJm>WlM2h)$eWR||;rnyKoaf95@6x!QYe=Q!l>uKH#~ z9I^3Vsc*GHZZe|P_nIT;%`a)#JaoGhg+_4^3Sa1}3HdLq_pj76PXjoowAZvq0(J`8 zX?oU{gCVmt16r-bz_DMG+G-=Qp$VFd-H#H*F4T+&!M<_1n$eZBiN@q=vODTPT!CKA z_*&$~`IN?;jgZcGOOmYJ7n;&2d^erfl<`moUe?SG7)PwzZ<;0hP#sTsHA|QGCpK}V z=A|>+(UfLumK#%vP3okPFcH~a^UB_qDC0Yt4`0IQ7JN|i(N~B>dZ1?CGpC7~hHB1b zgUZ9bUd_4p9|t(@X}-DpEgo#uoWHY+Si26I>Q*f=-tE&GPhG_X^S(Cly?&_UtJ;{^ z7ZB2PNwSdU+OEUj#cWut?Y40{F-?MYXu%=0;dR>7cWaNROe1ll%VqNa#3-J7`&i+IN(ai(8x%sUz!2V75 zd|ysDPTitN9IV&q7T>vu=2f6ue{v=2zpGxi`SWtL*(JJn|J4?#ysX=H5R*-QjBZCZ zHUxgA+uI5ue)J*Tp|0>C{aIc0RD?Kar>=GlnD9mq-7k;B(+S7*iiBhkQMKN34=Ga~ z)VFy#4$WzsK4#lW%#Oe5lMX=d6{{?7iu#eSp#E90MxR&kEm1|fKJNxLF09py$x0B% zd-}rkec%CwzOWhx8a~k%-oAyV@|fQK#Fqfq0lnkf^~Aca(HH;rEV1-jy(;bgdz6Ikv66+oD@(Ms0ZESM=7*PI-vFR2C#`rGA7Be^odK+6VL|NW=Taql* zJKNZ@78A*(NMnbqO~C0ljGa4|f)6?ylLl#tW^ObN`54$ZyV{ts4`@&M*qFTxmPdGv z6SsyV_XCX+&qouD9c8p{!{5hM8jCOBpvt30*XKuw%_%f4Igfz(h8cZPa71_7_;Tb< zj9}x9TNzT|Ej%fIICIgsD*X3y=gqC1!E=G7!NLX z;YKsY_-WTcpwe^3qemi$Ha=?n?iwbdFJ3o(UpfvG&Sc|HB~=)|eyQ}GN82a`v zUem?PSU2Uc>Cyx|_xxb`sdp+-YLMyrd#S|Y-ZyLRHbH6znnMp?C3+>r{7?bP(iU%S zuB`+Eb~i^=R1oc2W{$eD0^M<(IX1-Gl9=0Q?qzr$gi&nncNO)V{de<#+0S7*J!Kv= z2g#c`K$a&Dm{XSH;PyY6hkthgbHg*{N!-(4jb_KXyXgC0nTrG7BO39(dB$AmUAWLZ ziMW6$st#S>`Kq5rOs|^Ys=Ou__jrZ*AC!dj7?HX9NuEJ;M?-1{0F8 z*wSKm6bLEJ5;=4ov1aQn{o2eVn)8um!2X}XoLWoD6o5LmpT#>K&4Qk5VzJJH+-$Yv zf4UnR918gI%&BXXh!)>v()w+iz>Nhsomfp)@w6JWjSUb+M)`4HK2u& z(#c77vQjQNQFVAtz<<)6cAL9!%i`c^EQ0iSl~PLL?^b9s%f!4bx0+U)dI~gvJmex9 zwPNi&XT$9fnjabva9m zeP_EwY$@nc7Sg&2wWq;2CYK7ajUU%&x2pYMn_ct;#Wyt#gjMZf5x2|bn^n=u*QRrm zHqnHC4Q{q*pW?LU3BzpVqDzP`v^pH3-R)aAutgBw9l!@WO~!BTPkUd49;r**Kr|!*EOf?=ANAd#%mVvrG+jCf}w`x`^;h(JtnC>a7qm zMNet5Q18u_CSq5{y7?0FJH#aZDXh&iovy~6Biy3PE#yoQ+9yhZLol|)=kItLaZZ5| z4&W`YLwklb?5EDToVg6LOl`cWa0o>UDYJj6bqkg0_*J>A1 zL~EYEYbXn;y4#k$t=1)BQ!xy&`+|D5^50HoM&Hp%AuSrV1@k0v_eUhdNila)jqP#zW~UTox0C^nRRNey##_@7kQvks-`#bYa6#tcCkJcu z?kkrbodwYb3tSJdL_i)glM_c|W^@yBM4O`k8Os%IlSP*2XECg)>M0ylbo~x z4RUoNCT<)$Su!Y(fAj6EdB}HUuhJLSuTQW*B@*x)+ytyEr6T{P-YnE0z%qx#AXeYv zU&4Jef7P}T@Z`L-tPsCTp;X3{Lt0zNH}j)|^YERQ7Ed)l5+RdJ+Eo+gl}nD-?>QXD z*Km^a;1jRvMnt|iKtRb%Mik0Kd#@|bLFF~ zId(BGT0%mVzcY(fwdyTZZjl5#&PI9gf#=ji*ElHs_u^P+`x|)RZU9$!Jj%=^WQe&= zS02w^0-&Djar%eHvt}&A|HEJw+KN~2pSAKBHR|pBd%bOCy*voeSEoBq*6o_&Pf27E z&6z;)h_Fktk+Y2mn;lX%bNn@fSxArHAI#CfQ)0&w***TG-pK}Yd});}ymAUTf!SfY z3>*=pE&%#&7|wU{;P8|eO9pW0aCmUdyd_zsvo4b47oJ(Ms~VD{lN$P z%iL-#nMhXO@XBzXcZS|OGake>Ny=qTsmBBU0#D^ip_gz{>T&@Q_9;j?r*|Oe0a1$< zvI>#(nWL6JCs=ClPTT)OsiGkG8M* z+CcyNSu8N5{;!;sTyWC{*G2de;^o14V9@KH%BB71@bSQ>;pb1ulJ)_Rs5m}e6yhwo z?0LoVl<=xA$5Wm(n^(#Xe^}o<8clR#Nqw&PX1ujNHI&QL`f$Ixh_#|sLp)BU7FLSzD8}LG#qermV$nSA=aW&d#Rg) z%2n!caH_Dn13E+tG6C)F%0dDx75L9KrxYSyKQ4dCa2D)K|3zrSY2VWj)ITDKM^Iv? z2!EGErt8u@K_*fVsvHn!osSQS0_T#4*i>Jz*tIWL+z7rrsKrQuXKAqMe(vDNkXs{1 z%?}dLY`$}`A;Z(_j+P^zE7zrf5yS)E5u!#y6J5~)3R1)*!c)ZqA_d(oSY4t}?8FF* zF!z?j^K~2>%EGiX2puUcfbrE!64=d|YpuOm9;SMTP2pg2I6WL-9FpjDk074KE+@Ve$vg+h{;sQ{ zzvhbdiD*zHvs+bEfA)BQm_P|qN%L8zu0u(2`_o`1IUvW956izJ{DusL4dd09(a^&Z z?(dHt->h4~X`GA7ag?00|15D)z~ME?AklxdJA25|MLM^k>iywyth>J;p5=sUDHVXu zBL4D2zJ@7N)3OFhAoA~zXM;nhKbUKI|9>cmBfoxV;xMuK7WE2o$irg&bKd730G);d zAIEj8!LF1S;YrxHZf_zOG_0E+37}{{ABT%NW)1^!+Sd z-@*Tl!9XIr`{n{K=&OEq`TrOUcuF`)%56m?-@+9Ud_d^?Zw?6m^H^r|Z|TLF`68bD z-;8GeX4LDk$pUyUt8aL6(bo05znVYzJj(Al(!k;U|Cu;2a6EW~8vLKmP`@9cq%pb5 zmch<3?~=N?fnQO08*NN6ugv;!hR==l7wASx;+;_j1K-Wp++PvDZ%p-5CfDk&8 z*Egj*Ue%B+)|GW1C(|(Olzrnf0KW~%uYsy1Lgg2S0{9|#eO$u#gr+yX@@e$l)nH^- z7zw+iHZM3G0E-jv&ZPTIy>T*U;hWq~B(`G5d{F~pJ4=)xPeb*M>Hq$gKO}2PvB+=g zb$5I2z<+o(=P!)(@iLS8`*va4s%axw8x}B{hWV~e5B1jbuW&z?Bkoa@g!VoRm-!g* zLMHz4S2ofsQVEH220AoEISQ{NJ;EsYHA6l7MBM2{knNabopb)vM~SrQEYkJf9JKJKV~couWC1% zITg**0N=XC++e9Dt(d>Ob4zMdWB+1MtM3tiJ(LAEw(h!l4DS>qQc|c8h8-9N0o^#J#&OJ9~vZiF2v3-#ivP6bfWrrYFa-&2I!y$3_d^6!$JCPHjrZuObMn1GXcL8!gLdczXqlqr2~q9 zA-GPU3wS_qcL4Kv2Vr~;VDSQi-#9R{dk_Mqg0(Y)kg5kPJ4478 zfZJt+AA$UA6V_6oxdQ>~QV0bxVADTAC|U;g#Yiao`T%Fjp-c?{uKfbBq7(?-Y=F*o z9}sV0!s|29uZSm_wwrKpF8Vzk1T=3&|E#eT=`!@cd=9X)g2T9DfbA_UK@Cd&Prp|#!*+9Z7csgzZTVU{kXX$DntPWo1w*c%Q z#;4MS413@`A_q*m2=6m#U~Vhmv$hx*69k{lrzmCinCMRjhg-rofKqbvJ*ItV0U}Zm z@QA2xJ&nNb1BkJF1SzeFfgK2<@7R~^5b7BTG)zNs7BO!Ky@d6pJAjqB_%(qJn6(PK zeARgkPZ#EH{|KzdVit6uJFxHw3tPQ_7^q>1ev|^(vyAa(K+*uVUZlwKtJsFgAHn7p zuwQ+z08aiayT}sE*_`cdKL?a}cJ}8fz-23T_F#blZ1f^l{pwFJYnlDy`yNcUjy()5 z0Apuay>Btt{9x9!N)2>6dTQ!8^Kv&z1-LG9 zCm``A*W>;IFmW_D>VX}YwvwBcMhu0Tae+gLanBW8>^nm=n3bN3|2u^uir@@Mv~jJG zTl!iCqTg|=5l&2Gahd5efCI<5ogP!^BK};?GAgftD_q`Z5h<^6c{?qEEiPPvelXC< zk}G&i>hF4q`+Xis%Aylj(w~?rJkOoBi2}1T<0^_G0PRxlfno9?uyOI+%QzBIuAd2O zmT|8PB)UXPt~Gfv8Bqn-dcheeTf@EW(+FIcu23Edp!Ww9$}`VM#VLwz@8|;G8Wq;Z z=YTEjp|B5j1{>5vG5Puq;H|qN&d(kgd0mlqB8W}D~_~wf=~9Kvd;R(z;9}G0B#kU z@P)u<1(Gp1oHJoqBENg-RjP&`_?%_#z`hDT*Lyjoq?*sWM$T6MsSTM^HGg1#5b*tT z{=nr;z~90Ap)z7no5dgQx0G^lpFe!T23RnazdUavS-J_CWZ2AK8Ab=*d2Yg{?);5E z$p^Ug{Ot`C8CS;FS`yXni}-sriG2!KoG;(kk;rfi820EbP^8;{QBRn}? zOpbS5cyCAbJhN8#V3PsN_+BaW|45xhR0?T?myalgoj$<2dZpH}iu`B3veQ!Xc%7@V z^KrUx<1^)WJJNuywKBlF5|E(`x=#BzKTysze?*SyrA!GVMusOS(D)XEqDwkyCfmkZ183jt?z7T3UE0iTuNVFZR+mOl6l%;u5 zz>zZL*&4c-^>bx;tPSnkU0J`@oC5np+0dOB&7Pus@#3>}4_7vy3I=-Vm9Gs}ME!^_ zl%FgphaDe?Y%Mh(kGmpQPaCc2D4PF4A8t$(EhdoI0(Xnu+(`=_J4DCUL~^$EqKnlI z>hHTmAFBe|xK5mWW+*W5H*u;tt(!hloR*hLGsH+SsGk~a@JaF8R-%3q#Dzh`TvD27 z`24`SjS}Pg&>wWEV!~(2%+kf5%Sq*i0CCe+Y8vA$#4UG=sct)qTO}X*y-zgdI!D}o z&XUS(h`Ll_4^{r1 z$q#l-QbnFU1GL}VhD_B?75n*nw|Z4<)CFRuw<`9!C#k+hwYVvRjHpz#!n2k9=3CX8 zT)Mc*@IkfV2#KZjqw0{D4rbq=I=hKJ%nMYVOL-2wYgEf6jX(vb?p*mZrDm?WSIlzY z#d>wWNj}sg=BP)S(Z#oqRXcYfX67}iU0FL4<6mm8h!eoe5Ov@iXBs$S)M4vig0-(y zhdp^ne$Y)lZ+Z$b+#I4_J*x-JeF^F{BdPAyX6m1;h*8yscE>V_toqG26a^* zu1=(`Hcx%zuU?evb?TEBX+8*3t4o6Ddr7Z8XGM`ayir%$(uIA()eT9+l=MN}x|Ad>gC<-j-pho|R7>8QZbDKR37`avBet|Z6^vZ-U-fH}|6V;Q_G~u)VB}?t634cio zViPnG9z4~rhbD4jIT_JaO=JTdAc~sEH?P4Q0yOic-y|)lG|~U=1M9g&6Z2su*swdA z1@6?8;*V**_n?c-KB~!`(uq=6r^ySyLG^#Phvq;t-Mq7z#^`sPJl;WbVvqp5O4FQ7 zk0UF+tSL6Lp`p`F^JfP#BJ*{c@_f3WoTRzfE*NY~n5JP6F*J3r=CPVo?tW3r=TTYv zKGCWaUNkw~(3vpe{t~=CTwl@;j|>C&K_>ccOOI;1SfvEwr(A#lXEk zw6S+90oO`x;$vTG9_HG$D?%xEzS?ySWU<4-wHpVKhz4}kX1Q)8CsS&-=lTG1o3+1= zY9U|P*oI6Vrp^6v49$QewE4qju$d{^qVp7(Vu$v$%SYg3mA2fFUqSudNqg~`J&nZ` z+A9q*bv3aKnNt^S&Hmd|F8^rndASh=Y41%OLu#*SL#7_2eZ@beYM3jvZ=o`_S4&?O za$sLsOWl?bBZIvp%O78oSjV&>b4r&iTdA$r{Vw%wY){U4RWb}15Kj?AN$%rRz>-yx zXDQ{pc8D~&oK!pHycD#VZf>3^%_-_kIqfRVc|fV~x0U9dr1xXTN-+=VpgsB0g6b<^ zv+AUu9}r=27o-h+C=j(l+Gc$UETL8^Vnlt!Q4`)ymdeJGXkE7$q%+fMfbJUUqKb^d zVZC&5{Q~l8N9mI7IC8Ec>DrYp!2b49T{8_5RZFBt@xi2WU#Th9NJFVkY7L?k=pA(O zjXlJGht6UTQT*GJHe_xmbYD+3C*xV9b9_<&7Ii`AwKjwPpD5S)@2AwJ82)2=xUpCl zF@bXDu+fBJF1k4#DT0T`bqiiK0)cyU3E$AcQM+~9HaFAkH(R$WG8(X3qTBmTF)*}A zSMtJ!G;pd7*~Ca)*{Mq4zrX0t%?hKLZ>Fv?lzs>K;=4YrmG~ zeva(5haA24Bel(^a*X0AmCpuw$!gj#RwplcnnRI#$s5c+SHW62`wdZTS7t)bF>>+M z44}_w`G)xrFiSW2zDNc&WTyN$g_tRwEE`mkRoiM;fOeznDZhaDx8ZYPx9ZQ~k`fgayO( zvo4*X@8k68+c@eG*Y)efXh3;HzqMm9*qlgxDfJ4BS*tHKkhbhI_17}?QgtQitIY3^ zHCyYSyzb!x>^Q1_WhPVE%-6R%29mlj>01v(gZ0gc0!vCQ3~aYkQ8>Unk`a|i+STHcbyfDDkzDHrtC|g!|dQQpm!ZVGcY$w#xGr&7u&PejcJV6CbQ9sOdo$1nt98gxn{nb#zq@g2QYVL^q$U~IAix=pV{bMWgL^>^?K9Vwf#6_FBk#vdqVEtTEGO5!-6y6WDw%Q=i1_ LjM+)-?7;s6zCII) diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index 3f1b07dbac..4578d0b067 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -113,12 +113,12 @@ Polish - + Polaco Swedish - + Sueco @@ -343,7 +343,7 @@ No grouping - + Sem grupo @@ -351,7 +351,7 @@ Assign to group - + Atribuir a grupo @@ -809,7 +809,7 @@ &File - + &Ficheiro @@ -948,12 +948,12 @@ &Load Mixer Channels Setup... - + A&brir configuração da mistura... &Save Mixer Channels Setup... - + Salvar &configuração da mistura... @@ -968,7 +968,7 @@ Sort Channel Users by &Group - + Ordenar canais por &Grupo @@ -979,7 +979,7 @@ Select Channel Setup File - + Selecione o ficheiro de configuração da mistura @@ -1818,7 +1818,7 @@ Language - + Linguagem @@ -2066,12 +2066,12 @@ Restart Required - + Reinicio necessário Please restart the application for the language change to take effect. - + Por favor reinicie a aplicação para a alteração de linguagem ter efeito. @@ -2502,7 +2502,7 @@ Vocal Lead - + Voz Principal @@ -2681,43 +2681,43 @@ Display dialog to select recording directory button - + Mostrar diálogo para selecionar botão do directorio de gravação Main Recording Directory - + Directório Principal das Gravações Click the button to open the dialog that allows the main recording directory to be selected.The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). - + Clique no botão para abrir o diálogo que permite selecionar o directório das gravações. O directório escolhido deve existir e ter permissões de escrita (deve permitir a criação de sub-pastas pelo utilizador que está a correr o Jamulus). Main recording directory text box (read-only) - + Caixa de texto do directório das gravações (só de leitura) The current value of the main recording directory. The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). Click the button to open the dialog that allows the main recording directory to be selected. - + O valor actual do diretório das gravações. O valor escolhido deve existir e ter permissões de escrita (deve permitir a criação de sub-pastas pelo utilizador que está a correr o Jamulus). Clique no botão para abrir a caixa de diálogo que permite selecionar o diretório das gravações. Clear the recording directory button - + Botão para limpar directório de gravações Clear Recording Directory - + Limpar diretório de gravações Click the button to clear the currently selected recording directory. This will prevent recording until a new value is selected. - + Carregue no botão para limpar o valor do directório selecionado actualmente. Isto irá prevenir gravações até que um novo valor seja selecionado. @@ -2762,72 +2762,72 @@ Displays the current status of the recorder. The following values are possible: - + Mostra o estado actual do gravadro. Os valores possíveis são: No recording directory has been set or the value is not useable - + O directório de gravaçãos não foi definido ou não é utilizável Recording has been switched off - + As gravações foram desactivadas by the UI checkbox - + pela caixa de selecção da interface , either by the UI checkbox or SIGUSR2 being received - + , pela caixa de selecção da interface ou por sinal SIGUSR2 ser recebido There is no one connected to the server to record - + Não está ninguém ligado ao servidor para gravar The performers are being recorded to the specified session directory - + Os artistas estão a ser gravados para o directório de sessão especificado NOTE - + NOTE If the recording directory is not useable, the problem will be displayed in place of the directory. - + Se o directório das gravações não for utilizável, o problema será apresentado em vez do directório. Server welcome message edit box - + Caixa de edição da mensagem de Boas-Vindas do Servidor Server Welcome Message - + Mesagem de Boas-Vindas do Servidor A server welcome message text is displayed in the chat window if a musician enters the server. If no message is set, the server welcome is disabled. - + Uma mensagem de boas vindas do servidor é exibida na janela de mensagens quando um utilizador entra no servidor. Se não houver nenhuma mensagem definida, a mensagem do servidor ficará inactiva. Type a message here. If no message is set, the server welcome is disabled. - + Insira uma mensagem aqui. Se não houver nenhuma mensagem definida, a mensagem do servidor ficará inactiva. ERROR - + ERRO Displays the current status of the recorder. @@ -2878,7 +2878,7 @@ Select Main Recording Directory - + Seleciona o directório principal das gravações Predefined Address @@ -2897,7 +2897,7 @@ Not initialised - + Não inicializado @@ -2998,17 +2998,17 @@ Server Setup - + Configuração do Servidor Chat Window Welcome (HTML/CSS Supported) - + Mensagem de Boas Vindas (HTML/CSS Suportado) Options - + Opções @@ -3044,22 +3044,22 @@ Recording Directory - + Directório das Gravações Enable Jam Recorder - + Activar Gravador New Recording - Nova Gravação + Nova Gravação Language - + Linguagem Central Server Address: From f40d1f50d50657158bebbe146d1ab12859553783 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 19 Jul 2020 08:44:47 +0200 Subject: [PATCH 408/936] r3_5_9 --- ChangeLog | 11 ++++------- Jamulus.pro | 2 +- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index e6b813b407..6b189ad422 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,7 +3,10 @@ -3.5.9git + + + +3.5.9 (2020-07-19) - new app icon for Jamulus, created by geheimerEichkater (#410) @@ -33,12 +36,6 @@ - bug fix: grouping faders in the client should be proportional (see discussion in #202, #419) - - - - - - 3.5.8 (2020-06-30) - bug fix: incorrect selection of UI language (#408) diff --git a/Jamulus.pro b/Jamulus.pro index 12c950866d..288b676259 100755 --- a/Jamulus.pro +++ b/Jamulus.pro @@ -1,4 +1,4 @@ -VERSION = 3.5.9git +VERSION = 3.5.9 # use target name which does not use a captital letter at the beginning contains(CONFIG, "noupcasename") { From 82a06f6dde33380b86e18db8f6d8d60781ed5dfa Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 19 Jul 2020 09:13:53 +0200 Subject: [PATCH 409/936] bug fix --- Jamulus.pro | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Jamulus.pro b/Jamulus.pro index 288b676259..18203d7762 100755 --- a/Jamulus.pro +++ b/Jamulus.pro @@ -733,6 +733,8 @@ DISTFILES += ChangeLog \ src/res/instruments/vocaltenor.png \ src/res/instruments/vocalalto.png \ src/res/instruments/vocalsoprano.png \ + src/res/instruments/vocalbaritone.png \ + src/res/instruments/vocallead.png \ src/res/instruments/banjo.png \ src/res/instruments/mandolin.png \ src/res/flags/flagnone.png \ From 81f9af8be31471138b13a08b699f9b179ab94541 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 19 Jul 2020 09:50:02 +0200 Subject: [PATCH 410/936] prepare for next version --- ChangeLog | 9 +++++++++ Jamulus.pro | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 6b189ad422..ec10962950 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,15 @@ +3.5.10git + + + + + + + + diff --git a/Jamulus.pro b/Jamulus.pro index 18203d7762..39b5b01b22 100755 --- a/Jamulus.pro +++ b/Jamulus.pro @@ -1,4 +1,4 @@ -VERSION = 3.5.9 +VERSION = 3.5.10git # use target name which does not use a captital letter at the beginning contains(CONFIG, "noupcasename") { From 36d5ebafa3ce59ffadfc90c6170e860c38578b78 Mon Sep 17 00:00:00 2001 From: Jonathan <4561747+gilgongo@users.noreply.github.com> Date: Sun, 19 Jul 2020 10:34:06 +0100 Subject: [PATCH 411/936] Update for max occupants and "#" filter --- src/res/homepage/manual.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/res/homepage/manual.md b/src/res/homepage/manual.md index 1cff31b138..e605eb5365 100644 --- a/src/res/homepage/manual.md +++ b/src/res/homepage/manual.md @@ -60,7 +60,9 @@ pressing this button will end the session. ![Connect dialog](connect.png) -The Connection Setup window shows a list of available servers. Server operators can optionally list their servers by musical genre. Use the List dropdown to select a genre, click on the server you want to join and press the Connect button to connect to it. Alternatively, double-click on the server name. Permanent servers (those that have been listed for longer than 24 hours) are shown in bold. +The Connection Setup window shows a list of available servers together with the number of occupants and the maxmium number supported. Server operators can optionally list their servers by musical genre. Use the List dropdown to select a genre, click on the server you want to join and press the Connect button to connect to it. Alternatively, double-click on the server name. Permanent servers (those that have been listed for longer than 24 hours) are shown in bold. + +You can filter the list by server name or location. To list only occupied servers, enter a "#" character. If you know the IP address or URL of a server, you can connect to it using the Server Name/Address field. An optional port number can be added after the IP address or URL using a colon as a separator, e.g, From bf0591579eb0673ef532017feb8a58705af2f572 Mon Sep 17 00:00:00 2001 From: Olivier Humbert Date: Sun, 19 Jul 2020 14:40:02 +0200 Subject: [PATCH 412/936] French translation update --- src/res/translation/translation_fr_FR.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index 5680c50b84..9e1f26c300 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -813,7 +813,7 @@ &File - + &Fichier @@ -952,12 +952,12 @@ &Load Mixer Channels Setup... - + &Charger la configuration des canaux du mixeur... &Save Mixer Channels Setup... - + &Sauvegarder la configuration des canaux du mixeur... @@ -983,7 +983,7 @@ Select Channel Setup File - + Sélectionnez le fichier de configuration des canaux @@ -2823,17 +2823,17 @@ Server welcome message edit box - + Dialogue d'édition du message de bienvenue du serveur Server Welcome Message - + Message de bienvenue du serveur A server welcome message text is displayed in the chat window if a musician enters the server. If no message is set, the server welcome is disabled. - + Un message de bienvenue du serveur est affiché dans la fenêtre de tchate si un musicien entre sur le serveur. Si aucun message n'est défini, le message de bienvenue du serveur est désactivé. From a0dce8e1403b6363ce4390d216a4620df0f7ad75 Mon Sep 17 00:00:00 2001 From: dingodoppelt Date: Sun, 19 Jul 2020 18:36:44 +0200 Subject: [PATCH 413/936] connect dialog: remove spaces from the parsed string in the the "Servername/Address" combo box --- src/connectdlg.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/connectdlg.cpp b/src/connectdlg.cpp index 2ce4471b40..657fc0a1de 100755 --- a/src/connectdlg.cpp +++ b/src/connectdlg.cpp @@ -658,7 +658,8 @@ void CConnectDlg::OnConnectClicked() } else { - strSelectedAddress = cbxServerAddr->currentText(); + // remove all spaces from the parsed string in the the combo box + strSelectedAddress = cbxServerAddr->currentText().simplified().replace ( " ", "" ); } // tell the parent window that the connection shall be initiated From 4f256bef7095c56b6ca6c8d3956f011957f8f78b Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 19 Jul 2020 19:24:58 +0200 Subject: [PATCH 414/936] do not change the server list order if the mouse is over the table to avoid selecting an incorrect server on a mouse double click (#293) --- ChangeLog | 4 +++- src/connectdlg.cpp | 11 +++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index ec10962950..0e16d22575 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,10 +3,12 @@ 3.5.10git +- do not change the server list order if the mouse is over the table to + avoid selecting an incorrect server on a mouse double click (#293) - +TODO improve compact channels: smaller font size of name is too long diff --git a/src/connectdlg.cpp b/src/connectdlg.cpp index 2ce4471b40..0261ae1d97 100755 --- a/src/connectdlg.cpp +++ b/src/connectdlg.cpp @@ -786,16 +786,19 @@ void CConnectDlg::SetPingTimeAndNumClientsResult ( const CHostAddress& InetAddr, } // Update sorting. Note that the sorting must be the last action for the - // current item since the topLevelItem ( iIdx ) is then no longer valid. - if ( bDoSorting && !bShowCompleteRegList ) // do not sort if "show all servers" + // current item since the topLevelItem(iIdx) is then no longer valid. + // To avoid that the list is sorted shortly before a double click (which + // could lead to connecting an incorrect server) the sorting is disabled + // as long as the mouse is over the list (#293). + if ( bDoSorting && !bShowCompleteRegList && !lvwServers->underMouse() ) // do not sort if "show all servers" { lvwServers->sortByColumn ( 4, Qt::AscendingOrder ); } } // if no server item has children, do not show decoration - bool bAnyListItemHasChilds = false; - const int iServerListLen = lvwServers->topLevelItemCount(); + bool bAnyListItemHasChilds = false; + const int iServerListLen = lvwServers->topLevelItemCount(); for ( int iIdx = 0; iIdx < iServerListLen; iIdx++ ) { From ba14dbcd983716a083a855d8e3838f1aea76aa80 Mon Sep 17 00:00:00 2001 From: dingodoppelt Date: Mon, 20 Jul 2020 01:06:41 +0200 Subject: [PATCH 415/936] remove spaces from network address given as argument to --connect --- src/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index e0b9a57384..1684700f4f 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -462,7 +462,7 @@ int main ( int argc, char** argv ) "--connect", strArgument ) ) { - strConnOnStartupAddress = strArgument; + strConnOnStartupAddress = strArgument.simplified().replace( " ", "" ); tsConsole << "- connect on startup to address: " << strConnOnStartupAddress << endl; continue; } From 63ebc28a182db63820dffdc8bf4a895844456417 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 20 Jul 2020 15:44:00 +0200 Subject: [PATCH 416/936] if network name/address contains spaces, they are removed now, coded by dingodoppelt (#462) --- ChangeLog | 3 +++ src/clientsettingsdlg.cpp | 2 +- src/connectdlg.cpp | 3 +-- src/main.cpp | 2 +- src/util.cpp | 6 ++++++ src/util.h | 1 + 6 files changed, 13 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0e16d22575..ef5149ce1c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -6,6 +6,9 @@ - do not change the server list order if the mouse is over the table to avoid selecting an incorrect server on a mouse double click (#293) +- if network name/address contains spaces, they are removed now, + coded by dingodoppelt (#462) + TODO improve compact channels: smaller font size of name is too long diff --git a/src/clientsettingsdlg.cpp b/src/clientsettingsdlg.cpp index 1e3e6215bd..048345de9d 100755 --- a/src/clientsettingsdlg.cpp +++ b/src/clientsettingsdlg.cpp @@ -676,7 +676,7 @@ void CClientSettingsDlg::OnCentralServerAddressEditingFinished() { // store new setting in the client pClient->SetServerListCentralServerAddress ( - edtCentralServerAddress->text() ); + NetworkUtil::FixAddress ( edtCentralServerAddress->text() ) ); } void CClientSettingsDlg::OnSndCrdBufferDelayButtonGroupClicked ( QAbstractButton* button ) diff --git a/src/connectdlg.cpp b/src/connectdlg.cpp index 71ac9be78c..cbe015f243 100755 --- a/src/connectdlg.cpp +++ b/src/connectdlg.cpp @@ -658,8 +658,7 @@ void CConnectDlg::OnConnectClicked() } else { - // remove all spaces from the parsed string in the the combo box - strSelectedAddress = cbxServerAddr->currentText().simplified().replace ( " ", "" ); + strSelectedAddress = NetworkUtil::FixAddress ( cbxServerAddr->currentText() ); } // tell the parent window that the connection shall be initiated diff --git a/src/main.cpp b/src/main.cpp index 1684700f4f..1f3674d3d1 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -462,7 +462,7 @@ int main ( int argc, char** argv ) "--connect", strArgument ) ) { - strConnOnStartupAddress = strArgument.simplified().replace( " ", "" ); + strConnOnStartupAddress = NetworkUtil::FixAddress ( strArgument ); tsConsole << "- connect on startup to address: " << strConnOnStartupAddress << endl; continue; } diff --git a/src/util.cpp b/src/util.cpp index d015455293..0ee137ede4 100755 --- a/src/util.cpp +++ b/src/util.cpp @@ -1061,6 +1061,12 @@ QString NetworkUtil::GetCentralServerAddress ( const ECSAddType eCentralServerAd } } +QString NetworkUtil::FixAddress ( const QString& strAddress ) +{ + // remove all spaces from the address string + return strAddress.simplified().replace ( " ", "" ); +} + // Instrument picture data base ------------------------------------------------ CVector& CInstPictures::GetTable ( const bool bReGenerateTable ) diff --git a/src/util.h b/src/util.h index d279d89d85..e64230104e 100755 --- a/src/util.h +++ b/src/util.h @@ -1112,6 +1112,7 @@ class NetworkUtil static bool ParseNetworkAddress ( QString strAddress, CHostAddress& HostAddress ); + static QString FixAddress ( const QString& strAddress ); static CHostAddress GetLocalAddress(); static QString GetCentralServerAddress ( const ECSAddType eCentralServerAddressType, const QString& strCentralServerAddress ); From e832ac09bbb61b954bc30a040467cdc0d84d2efc Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 20 Jul 2020 19:26:05 +0200 Subject: [PATCH 417/936] improve compact skin by using smaller font size if the name is too long --- ChangeLog | 3 +-- src/audiomixerboard.cpp | 45 +++++++++++++++++++++++++++++++++++------ src/audiomixerboard.h | 1 + 3 files changed, 41 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index ef5149ce1c..2e61f01641 100644 --- a/ChangeLog +++ b/ChangeLog @@ -9,10 +9,9 @@ - if network name/address contains spaces, they are removed now, coded by dingodoppelt (#462) +- improve compact skin by using smaller font size if the name is too long -TODO improve compact channels: smaller font size of name is too long - diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 8e92f1396a..b82a0d4807 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -28,7 +28,8 @@ /******************************************************************************\ * CChanneFader * \******************************************************************************/ -CChannelFader::CChannelFader ( QWidget* pNW ) +CChannelFader::CChannelFader ( QWidget* pNW ) : + eDesign ( GD_STANDARD ) { // create new GUI control objects and store pointers to them (note that // QWidget takes the ownership of the pMainGrid so that this only has @@ -91,7 +92,6 @@ CChannelFader::CChannelFader ( QWidget* pNW ) // setup fader tag label (black bold text which is centered) plblLabel->setTextFormat ( Qt::PlainText ); plblLabel->setAlignment ( Qt::AlignHCenter | Qt::AlignVCenter ); - plblLabel->setStyleSheet ( "QLabel { color: black; font: bold; }" ); // set margins of the layouts to zero to get maximum space for the controls pMainGrid->setContentsMargins ( 0, 0, 0, 0 ); @@ -203,6 +203,8 @@ CChannelFader::CChannelFader ( QWidget* pNW ) void CChannelFader::SetGUIDesign ( const EGUIDesign eNewDesign ) { + eDesign = eNewDesign; + switch ( eNewDesign ) { case GD_ORIGINAL: @@ -601,14 +603,45 @@ void CChannelFader::SetChannelInfos ( const CChannelInfo& cChanInfo ) // Label text -------------------------------------------------------------- - // break text at predefined position - const int iBreakPos = MAX_LEN_FADER_TAG / 2; QString strModText = cChanInfo.strName; - if ( strModText.length() > iBreakPos ) + // apply break position and font size depending on the selected design as + // well as the length of the name + if ( ( eDesign == GD_SLIMFADER ) && ( strModText.length() > 6 ) ) { - strModText.insert ( iBreakPos, QString ( "\n" ) ); + // in slim mode, if the text is longer than 6 character, use a small font + plblLabel->setStyleSheet ( "QLabel { color: black; font: 6pt bold; }" ); + + // break at every 4th character + for ( int iInsPos = 4; iInsPos <= strModText.size() - 1; iInsPos += 4 + 1 ) + { + strModText.insert ( iInsPos, "\n" ); + } + } + else + { + plblLabel->setStyleSheet ( "QLabel { color: black; font: bold; }" ); + + // break text at predefined position + int iBreakPos; + + if ( eDesign == GD_SLIMFADER ) + { + // for slim design if the text is shorter than 6 characters, break + // at half of the 6 characters + iBreakPos = 3; + } + else + { + // default break position (used for other skins than slim) + iBreakPos = MAX_LEN_FADER_TAG / 2; + } + + if ( strModText.length() > iBreakPos ) + { + strModText.insert ( iBreakPos, QString ( "\n" ) ); + } } plblLabel->setText ( strModText ); diff --git a/src/audiomixerboard.h b/src/audiomixerboard.h index aa1bc510c5..9819b5ada8 100755 --- a/src/audiomixerboard.h +++ b/src/audiomixerboard.h @@ -121,6 +121,7 @@ class CChannelFader : public QObject int iGroupID; QString strGroupBaseText; int iInstrPicMaxWidth; + EGUIDesign eDesign; public slots: void OnLevelValueChanged ( int value ) { SendFaderLevelToServer ( value, false ); } From 9b32d295a411882b035a4c0b043641d0cf1624d5 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 21 Jul 2020 17:09:38 +0200 Subject: [PATCH 418/936] do not use smaller font for compact view but use non-bold font instead --- src/audiomixerboard.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index b82a0d4807..5b020aec7d 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -611,7 +611,7 @@ void CChannelFader::SetChannelInfos ( const CChannelInfo& cChanInfo ) if ( ( eDesign == GD_SLIMFADER ) && ( strModText.length() > 6 ) ) { // in slim mode, if the text is longer than 6 character, use a small font - plblLabel->setStyleSheet ( "QLabel { color: black; font: 6pt bold; }" ); + plblLabel->setStyleSheet ( "QLabel { color: black; }" ); // not bold // break at every 4th character for ( int iInsPos = 4; iInsPos <= strModText.size() - 1; iInsPos += 4 + 1 ) From b129376d4f1c5c11700c2e9f62d3c9f6a3c094ef Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 21 Jul 2020 18:24:44 +0200 Subject: [PATCH 419/936] increase minimum height of channel tag for compact mode --- src/audiomixerboard.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 5b020aec7d..07fb7b70e7 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -235,7 +235,7 @@ void CChannelFader::SetGUIDesign ( const EGUIDesign eNewDesign ) case GD_SLIMFADER: pLabelPictGrid->addWidget ( plblLabel, 0, Qt::AlignHCenter ); // label below icons - pLabelInstBox->setMinimumHeight ( 94 ); // maximum height of the instrument+flag+label + pLabelInstBox->setMinimumHeight ( 130 ); // maximum height of the instrument+flag+label pFader->setMinimumHeight ( 85 ); pPan->setFixedSize ( 28, 28 ); pFader->setTickPosition ( QSlider::NoTicks ); From edc6e63d2c3d49797a2aaefe6fab866d4d7e2955 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 21 Jul 2020 18:38:38 +0200 Subject: [PATCH 420/936] always use non-bold font for slim faders --- src/audiomixerboard.cpp | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 07fb7b70e7..dbb3002071 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -606,12 +606,11 @@ void CChannelFader::SetChannelInfos ( const CChannelInfo& cChanInfo ) QString strModText = cChanInfo.strName; - // apply break position and font size depending on the selected design as - // well as the length of the name - if ( ( eDesign == GD_SLIMFADER ) && ( strModText.length() > 6 ) ) + // apply break position and font size depending on the selected design + if ( eDesign == GD_SLIMFADER ) { - // in slim mode, if the text is longer than 6 character, use a small font - plblLabel->setStyleSheet ( "QLabel { color: black; }" ); // not bold + // in slim mode use a non-bold font (smaller width font) + plblLabel->setStyleSheet ( "QLabel { color: black; }" ); // break at every 4th character for ( int iInsPos = 4; iInsPos <= strModText.size() - 1; iInsPos += 4 + 1 ) @@ -621,22 +620,11 @@ void CChannelFader::SetChannelInfos ( const CChannelInfo& cChanInfo ) } else { + // in normal mode use bold font plblLabel->setStyleSheet ( "QLabel { color: black; font: bold; }" ); // break text at predefined position - int iBreakPos; - - if ( eDesign == GD_SLIMFADER ) - { - // for slim design if the text is shorter than 6 characters, break - // at half of the 6 characters - iBreakPos = 3; - } - else - { - // default break position (used for other skins than slim) - iBreakPos = MAX_LEN_FADER_TAG / 2; - } + const int iBreakPos = MAX_LEN_FADER_TAG / 2; if ( strModText.length() > iBreakPos ) { From 1fd3cc977f7f93410ba0b925019700522429fc4f Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Wed, 22 Jul 2020 18:07:37 +0200 Subject: [PATCH 421/936] bug fix: --showallservers ping column sort is alphabetic (#201) --- ChangeLog | 2 ++ src/connectdlg.cpp | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 2e61f01641..3bc33f9853 100644 --- a/ChangeLog +++ b/ChangeLog @@ -11,8 +11,10 @@ - improve compact skin by using smaller font size if the name is too long +- bug fix: --showallservers ping column sort is alphabetic (#201) +TODO If network configuration of client changes (e.g. Wifi to LAN) we may get audio issues for a period of time #426 diff --git a/src/connectdlg.cpp b/src/connectdlg.cpp index cbe015f243..a348090a83 100755 --- a/src/connectdlg.cpp +++ b/src/connectdlg.cpp @@ -756,8 +756,10 @@ void CConnectDlg::SetPingTimeAndNumClientsResult ( const CHostAddress& InetAddr, } else { + // prepend spaces so that we can sort correctly (fieldWidth of + // 4 is sufficient since the maximum width is ">500") (#201) pCurListViewItem-> - setText ( 1, QString().setNum ( iMinPingTime ) + " ms" ); + setText ( 1, QString ( "%1 ms" ).arg ( iMinPingTime, 4, 10, QLatin1Char ( ' ' ) ) ); } // update number of clients text From 9c5a77940f690120a185738d49b8ed4dd6bd3e68 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 23 Jul 2020 17:31:21 +0200 Subject: [PATCH 422/936] improve server audio mix processing for better clipping behavior --- ChangeLog | 2 ++ src/server.cpp | 59 +++++++++++++++++++++++++++++--------------------- src/server.h | 2 ++ 3 files changed, 38 insertions(+), 25 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3bc33f9853..882a0389c2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -11,6 +11,8 @@ - improve compact skin by using smaller font size if the name is too long +- improve server audio mix processing for better clipping behavior + - bug fix: --showallservers ping column sort is alphabetic (#201) diff --git a/src/server.cpp b/src/server.cpp index 74694d5115..188d00930e 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -338,6 +338,7 @@ CServer::CServer ( const int iNewMaxNumChan, vecvecdPannings.Init ( iMaxNumChannels ); vecvecsData.Init ( iMaxNumChannels ); vecvecsSendData.Init ( iMaxNumChannels ); + vecvecsIntermediateProcBuf.Init ( iMaxNumChannels ); vecvecbyCodedData.Init ( iMaxNumChannels ); vecNumAudioChannels.Init ( iMaxNumChannels ); vecNumFrameSizeConvBlocks.Init ( iMaxNumChannels ); @@ -357,6 +358,9 @@ CServer::CServer ( const int iNewMaxNumChan, // and coded data because of the OMP implementation) vecvecsSendData[i].Init ( 2 /* stereo */ * DOUBLE_SYSTEM_FRAME_SIZE_SAMPLES /* worst case buffer size */ ); + // allocate worst case memory for intermediate processing buffers in double precision + vecvecsIntermediateProcBuf[i].Init ( 2 /* stereo */ * DOUBLE_SYSTEM_FRAME_SIZE_SAMPLES /* worst case buffer size */ ); + // allocate worst case memory for the coded data vecvecbyCodedData[i].Init ( MAX_SIZE_BYTES_NETW_BUF ); } @@ -1031,6 +1035,7 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE vecvecdGains[i], vecvecdPannings[i], vecNumAudioChannels, + vecvecsIntermediateProcBuf[i], vecvecsSendData[i], iCurNumAudChan, iNumClients ); @@ -1136,14 +1141,15 @@ void CServer::ProcessData ( const CVector >& vecvecsData, const CVector& vecdGains, const CVector& vecdPannings, const CVector& vecNumAudioChannels, + CVector& vecdIntermProcBuf, CVector& vecsOutData, const int iCurNumAudChan, const int iNumClients ) { int i, j, k; - // init return vector with zeros since we mix all channels on that vector - vecsOutData.Reset ( 0 ); + // init intermediate processing vector with zeros since we mix all channels on that vector + vecdIntermProcBuf.Reset ( 0 ); // distinguish between stereo and mono mode if ( iCurNumAudChan == 1 ) @@ -1163,8 +1169,7 @@ void CServer::ProcessData ( const CVector >& vecvecsData, // mono for ( i = 0; i < iServerFrameSizeSamples; i++ ) { - vecsOutData[i] = Double2Short ( - static_cast ( vecsOutData[i] ) + vecsData[i] ); + vecdIntermProcBuf[i] += vecsData[i]; } } else @@ -1172,9 +1177,8 @@ void CServer::ProcessData ( const CVector >& vecvecsData, // stereo: apply stereo-to-mono attenuation for ( i = 0, k = 0; i < iServerFrameSizeSamples; i++, k += 2 ) { - vecsOutData[i] = - Double2Short ( vecsOutData[i] + - ( static_cast ( vecsData[k] ) + vecsData[k + 1] ) / 2 ); + vecdIntermProcBuf[i] += + ( static_cast ( vecsData[k] ) + vecsData[k + 1] ) / 2; } } } @@ -1185,8 +1189,7 @@ void CServer::ProcessData ( const CVector >& vecvecsData, // mono for ( i = 0; i < iServerFrameSizeSamples; i++ ) { - vecsOutData[i] = Double2Short ( - vecsOutData[i] + vecsData[i] * dGain ); + vecdIntermProcBuf[i] += vecsData[i] * dGain; } } else @@ -1194,13 +1197,18 @@ void CServer::ProcessData ( const CVector >& vecvecsData, // stereo: apply stereo-to-mono attenuation for ( i = 0, k = 0; i < iServerFrameSizeSamples; i++, k += 2 ) { - vecsOutData[i] = - Double2Short ( vecsOutData[i] + dGain * - ( static_cast ( vecsData[k] ) + vecsData[k + 1] ) / 2 ); + vecdIntermProcBuf[i] += dGain * + ( static_cast ( vecsData[k] ) + vecsData[k + 1] ) / 2; } } } } + + // convert from double to short with clipping + for ( i = 0; i < iServerFrameSizeSamples; i++ ) + { + vecsOutData[i] = Double2Short ( vecdIntermProcBuf[i] ); + } } else { @@ -1225,13 +1233,9 @@ void CServer::ProcessData ( const CVector >& vecvecsData, // mono: copy same mono data in both out stereo audio channels for ( i = 0, k = 0; i < iServerFrameSizeSamples; i++, k += 2 ) { - // left channel - vecsOutData[k] = Double2Short ( - static_cast ( vecsOutData[k] ) + vecsData[i] ); - - // right channel - vecsOutData[k + 1] = Double2Short ( - static_cast ( vecsOutData[k + 1] ) + vecsData[i] ); + // left/right channel + vecdIntermProcBuf[k] += vecsData[i]; + vecdIntermProcBuf[k + 1] += vecsData[i]; } } else @@ -1239,8 +1243,7 @@ void CServer::ProcessData ( const CVector >& vecvecsData, // stereo for ( i = 0; i < ( 2 * iServerFrameSizeSamples ); i++ ) { - vecsOutData[i] = Double2Short ( - static_cast ( vecsOutData[i] ) + vecsData[i] ); + vecdIntermProcBuf[i] += vecsData[i]; } } } @@ -1252,8 +1255,8 @@ void CServer::ProcessData ( const CVector >& vecvecsData, for ( i = 0, k = 0; i < iServerFrameSizeSamples; i++, k += 2 ) { // left/right channel - vecsOutData[k] = Double2Short ( vecsOutData[k] + vecsData[i] * dGainL ); - vecsOutData[k + 1] = Double2Short ( vecsOutData[k + 1] + vecsData[i] * dGainR ); + vecdIntermProcBuf[k] += vecsData[i] * dGainL; + vecdIntermProcBuf[k + 1] += vecsData[i] * dGainR; } } else @@ -1262,12 +1265,18 @@ void CServer::ProcessData ( const CVector >& vecvecsData, for ( i = 0; i < ( 2 * iServerFrameSizeSamples ); i += 2 ) { // left/right channel - vecsOutData[i] = Double2Short ( vecsOutData[i] + vecsData[i] * dGainL ); - vecsOutData[i + 1] = Double2Short ( vecsOutData[i + 1] + vecsData[i + 1] * dGainR ); + vecdIntermProcBuf[i] += vecsData[i] * dGainL; + vecdIntermProcBuf[i + 1] += vecsData[i + 1] * dGainR; } } } } + + // convert from double to short with clipping + for ( i = 0; i < ( 2 * iServerFrameSizeSamples ); i++ ) + { + vecsOutData[i] = Double2Short ( vecdIntermProcBuf[i] ); + } } } diff --git a/src/server.h b/src/server.h index 57de47d44f..37c0b21c21 100755 --- a/src/server.h +++ b/src/server.h @@ -305,6 +305,7 @@ class CServer : const CVector& vecdGains, const CVector& vecdPannings, const CVector& vecNumAudioChannels, + CVector& vecdIntermProcBuf, CVector& vecsOutData, const int iCurNumAudChan, const int iNumClients ); @@ -353,6 +354,7 @@ class CServer : CVector vecUseDoubleSysFraSizeConvBuf; CVector vecAudioComprType; CVector > vecvecsSendData; + CVector > vecvecsIntermediateProcBuf; CVector > vecvecbyCodedData; // Channel levels From ec378919d69975895bae1ae99f0c9f09688bc9b6 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Fri, 24 Jul 2020 14:06:29 +0200 Subject: [PATCH 423/936] add support for keyboard shortcut "Alt-m" to enable Mute Myself --- src/clientdlgbase.ui | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/clientdlgbase.ui b/src/clientdlgbase.ui index 709f628c0f..e07fdf1312 100755 --- a/src/clientdlgbase.ui +++ b/src/clientdlgbase.ui @@ -320,7 +320,7 @@ - Mute Myself + &Mute Myself From 801f98aec652afc649fb23baa5c1856082754c42 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Fri, 24 Jul 2020 14:20:42 +0200 Subject: [PATCH 424/936] update translations --- src/res/translation/translation_de_DE.qm | Bin 109707 -> 109627 bytes src/res/translation/translation_de_DE.ts | 170 ++++++++++++----------- src/res/translation/translation_es_ES.qm | Bin 106511 -> 106435 bytes src/res/translation/translation_es_ES.ts | 170 ++++++++++++----------- src/res/translation/translation_fr_FR.qm | Bin 112387 -> 113743 bytes src/res/translation/translation_fr_FR.ts | 170 ++++++++++++----------- src/res/translation/translation_it_IT.qm | Bin 99439 -> 99355 bytes src/res/translation/translation_it_IT.ts | 170 ++++++++++++----------- src/res/translation/translation_nl_NL.qm | Bin 105535 -> 105457 bytes src/res/translation/translation_nl_NL.ts | 170 ++++++++++++----------- src/res/translation/translation_pl_PL.qm | Bin 14697 -> 14621 bytes src/res/translation/translation_pl_PL.ts | 170 ++++++++++++----------- src/res/translation/translation_pt_BR.qm | Bin 109291 -> 109213 bytes src/res/translation/translation_pt_BR.ts | 170 ++++++++++++----------- src/res/translation/translation_pt_PT.qm | Bin 109159 -> 109081 bytes src/res/translation/translation_pt_PT.ts | 170 ++++++++++++----------- src/res/translation/translation_sv_SE.qm | Bin 103063 -> 102979 bytes src/res/translation/translation_sv_SE.ts | 170 ++++++++++++----------- 18 files changed, 783 insertions(+), 747 deletions(-) diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index 5361bc4167ac4eab5e258c970bfa051e6d6867f0..041c2ec56343dfb07058967195033733a7163f8e 100644 GIT binary patch delta 4021 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 AL;wH) delta 4036 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 diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index c88a87fdcb..94e22c5f1d 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -189,32 +189,32 @@ CAudioMixerBoard - + Personal Mix at the Server Eigener Mix am Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Wenn man mit einem Server verbunden ist, dann kann man hier den eigenen Mix verstellen ohne dass man etwas daran verändert, was die anderen von mir hören. Der Titel zeigt den Servernamen an und falls bekannt den Aufnahmestatus des Servers. - + Server - + T R Y I N G T O C O N N E C T V E R B I N D U N G S A U F B A U - + RECORDING ACTIVE AUFNAHME AKTIV - + Personal Mix at: Eigener Mix am Server: @@ -311,7 +311,7 @@ Mit der Kanalbeschriftung wird der verbundene Teilnehmen identifiziert. Der Name, ein Bild des Instruments und eine Flagge des eigenen Landes kann im eigenen Profil ausgewählt werden. - + Grp Grp @@ -321,15 +321,15 @@ Zeigt den Audiopegel vor dem Lautstärkeregler des Kanals. Allen verbundenen Musikern am Server wird ein Audiopegel zugewiesen. - + No grouping Keine Gruppierung - + Assign to group Zuweisung zur Gruppe @@ -389,100 +389,100 @@ Mixerkanal Landesflagge - + PAN - + MUTE - + SOLO - + GRP GRP - + M - + S - + G G - + Alias/Name - + Instrument - + Location Standort - - - + + + Skill Level Spielstärke - + Beginner Anfänger - + Intermediate Mittlere Spielstärke - + Expert Experte - + Musician Profile Profil des Musikers - + - + Mute - - - + + + Pan - + - + Solo @@ -1012,6 +1012,11 @@ R + + + &Mute Myself + + Settings @@ -1023,9 +1028,8 @@ Chat - Mute Myself - Stummschalten + Stummschalten @@ -2207,7 +2211,7 @@ - + None Kein @@ -2285,222 +2289,222 @@ Was man hier sieht wird auch am Fader im Mixer angezeigt, wenn du mit einem Server verbunden bist. Dieses Schild wird auch bei allen anderen Musikern, die mit dem gleichen Server verbunden sind, angezeigt. - + 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 - + Vocal Bass Gesang Bass - + Vocal Tenor Gesang Tenor - + Vocal Alto Gesang Alt - + Vocal Soprano Gesang Sopran - + Banjo Banjo - + Mandolin Mandoline - + Ukulele - + Bass Ukulele - + Vocal Baritone Gesang Bariton - + Vocal Lead Leadsänger @@ -3283,17 +3287,17 @@ QCoreApplication - + , Version , Version - + Internet Jam Session Software Internet Jam Session Software - + Released under the GNU General Public License (GPL) Unter der GNU General Public License (GPL) diff --git a/src/res/translation/translation_es_ES.qm b/src/res/translation/translation_es_ES.qm index 98795478663d95057eee236688e57205f8c82373..fa51fab8c9779d5965a79ac24a6d6f993b53dfa9 100644 GIT binary patch delta 4023 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 delta 4053 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 VVoIcGT%y&2cL{&KOJGG#{|8S>$NT^Q diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index b27d2cab03..1b5419e95a 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -201,32 +201,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mezcla personal en el Servidor - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Estando conectado a un servidor, estos controles te permiten hacer tu mezcla personal sin afectar lo que otros escuchan de tí. El título muestra el nombre del servidor y, cuando se conoce, si está activamente grabando. - + Server Servidor - + T R Y I N G T O C O N N E C T I N T E N T A N D O C O N E C T A R - + RECORDING ACTIVE GRABACIÓN ACTIVA - + Personal Mix at: Mezcla Personal en el Servidor: @@ -323,7 +323,7 @@ La etiqueta del fader identifica al cliente conectado. El nombre de la etiqueta, la imagen de tu instrumento y la bandera de tu país se pueden establecer en la ventana principal. - + Grp Grp @@ -333,15 +333,15 @@ Muestra el nivel de audio pre-fader de este canal. Todos los clientes conectados al servidor tienen un nivel de audio asignado, el mismo valor para cada cliente. - + No grouping Sin grupos - + Assign to group Asignar a grupo @@ -401,100 +401,100 @@ Bandera país mezclador canal - + PAN PAN - + MUTE MUTE - + SOLO SOLO - + GRP GRP - + M M - + S S - + G G - + Alias/Name Alias/Nombre - + Instrument Instrumento - + Location Ubicación - - - + + + Skill Level Nivel Habilidad - + Beginner Principiante - + Intermediate Intermedio - + Expert Experto - + Musician Profile Perfil Músico - + - + Mute Mute - - - + + + Pan Paneo - + - + Solo Solo @@ -1028,6 +1028,11 @@ R R + + + &Mute Myself + + Settings @@ -1039,9 +1044,8 @@ Chat - Mute Myself - Mutearme Yo + Mutearme Yo @@ -2231,7 +2235,7 @@ - + None Ninguno @@ -2309,222 +2313,222 @@ Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor Jamulus. Esta etiqueta también se mostrará en cada cliente conectado al mismo servidor que tú. - + 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 - + Vocal Bass Voz Bajo - + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Mandolina - + Ukulele Ukulele - + Bass Ukulele Ukulele Barítono - + Vocal Baritone Voz Barítono - + Vocal Lead Voz Principal @@ -3307,17 +3311,17 @@ QCoreApplication - + , Version , Versión - + Internet Jam Session Software Internet Jam Session Software - + Released under the GNU General Public License (GPL) Publicado bajo la GNU General Public License (GPL) diff --git a/src/res/translation/translation_fr_FR.qm b/src/res/translation/translation_fr_FR.qm index 8d6f58f9198ce4116c178021d3d74ae21471e0c4..164468bb60e1378336191c1b5b8f6bed3b45cbcd 100644 GIT binary patch delta 5108 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 b+U{RF{!ceGQQG99F7uhiu|4zIOrQS%?KSbw delta 4461 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 CAudioMixerBoard - + Personal Mix at the Server Mixage personnel au serveur - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Lorsque vous êtes connecté à un serveur, les contrôles vous permettent de régler votre mixage local sans affecter ce que les autres entendent de vous. Le titre indique le nom du serveur et, lorsqu'il est connu, s'il est en train d'enregistrer. - + Server Serveur - + T R Y I N G T O C O N N E C T T E N T A T I V E D E C O N N E X I O N - + RECORDING ACTIVE ENREGISTREMENT ACTIF - + Personal Mix at: Mixage personnel à : @@ -331,7 +331,7 @@ L'étiquette de chariot identifie le client connecté. Le nom du tag, la photo de votre instrument et un drapeau de votre pays peuvent être définis dans la fenêtre principale. - + Grp Grp @@ -341,15 +341,15 @@ Affiche le niveau audio pré-fader de ce canal. Tous les clients connectés au serveur se verront attribuer un niveau audio, la même valeur pour chaque client. - + No grouping Pas de regroupement - + Assign to group Affecter au groupe @@ -409,100 +409,100 @@ Drapeau de pays de canal de mixeur - + PAN PAN - + MUTE MUET - + SOLO SOLO - + GRP GRP - + M M - + S S - + G G - + Alias/Name Pseudo/nom - + Instrument Instrument - + Location Localisation - - - + + + Skill Level Niveau de compétence - + Beginner Débutant - + Intermediate Intermédiaire - + Expert Expert - + Musician Profile Profil de musicien - + - + Mute Muet - - - + + + Pan Pan - + - + Solo Solo @@ -1028,6 +1028,11 @@ R D + + + &Mute Myself + + Settings @@ -1039,9 +1044,8 @@ Tchate - Mute Myself - Me silencer + Me silencer @@ -2227,7 +2231,7 @@ - + None Aucune @@ -2301,222 +2305,222 @@ Ce que vous réglez ici apparaîtra au niveau de votre chariot sur la table de mixage lorsque vous serez connecté à un serveur Jamulus. Cette étiquette sera également affichée dans chaque client qui est connecté au même serveur que vous. - + 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 - + Vocal Bass Voix basse - + Vocal Tenor Voix ténor - + Vocal Alto Voix alto - + Vocal Soprano Voix soprano - + Banjo Banjo - + Mandolin Mandoline - + Ukulele Ukulélé - + Bass Ukulele Ukulélé basse - + Vocal Baritone Voix baryton - + Vocal Lead Voix principale @@ -3295,17 +3299,17 @@ QCoreApplication - + , Version , version - + Internet Jam Session Software Logiciel de bÅ“uf sur Internet - + Released under the GNU General Public License (GPL) Publié sous la licence publique générale GNU (GPL) diff --git a/src/res/translation/translation_it_IT.qm b/src/res/translation/translation_it_IT.qm index 9fc1fc675e59404393556f5e48b6b0db1e439048..aeb429afc1beccb7c49540046332f3e1dbfaed55 100644 GIT binary patch delta 3695 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 bSAeK9Z?UrdQLwllxz;uDq-!D@{g3|xWcF3m delta 3716 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 diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index 2f3ced9694..657dbd3aa4 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -193,32 +193,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mixer personale sul Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Quando connessi i fader permettono di regolare i volumi in locale senza influenzare l'ascolto degli altri utenti. L'intestazione mostra il nome de server, se valorizzato, e le informazioni sullo stato della sessione di registrazione se attiva. - + Server Server - + T R Y I N G T O C O N N E C T I N A T T E S A D I C O N N E S S I O N E - + RECORDING ACTIVE Sessione con Registrazione Attiva - + Personal Mix at: Mixer personale sul Server: @@ -226,41 +226,41 @@ CChannelFader - - - + + + Pan Bilanciamento - + - + Mute Mute - + - + Solo Solo - + No grouping - + Assign to group - + Grp Rag @@ -414,79 +414,79 @@ Bandiera del Paese - + PAN Bil. (L / R) - + MUTE MUTE - + SOLO SOLO - + GRP RAG - + M M - + S S - + G G - + Alias/Name Identificativo/Nome - + Instrument Strumento - + Location Località - - - + + + Skill Level Livello di Preparazione - + Beginner Principiante - + Intermediate Livello Intermedio - + Expert Esperto - + Musician Profile Profilo del Musicista @@ -1008,6 +1008,11 @@ R R + + + &Mute Myself + + Settings @@ -1019,9 +1024,8 @@ Chat - Mute Myself - Disattiva Input + Disattiva Input @@ -2194,7 +2198,7 @@ - + None None @@ -2261,222 +2265,222 @@ Livello di Abilità - + Drum Set Batteria - + Djembe Djembe - + Electric Guitar Chitarra elettrica - + Acoustic Guitar Chitarra Acustica - + Bass Guitar Basso Elettrico - + Keyboard Tastiera - + Synthesizer Sintetizzatore - + Grand Piano Grand Piano - + Accordion Fisarmonica - + Vocal Voce - + Microphone Microfono - + Harmonica Armonica - + Trumpet Tromba - + Trombone Trombone - + French Horn Corno Francese - + Tuba Tuba - + Saxophone Sassofono - + Clarinet Clarinet - + Flute Flauto - + Violin Violino - + Cello Cello - + Double Bass Contrabbasso - + Recorder Recorder - + Streamer Streamer - + Listener Ascoltatore - + Guitar+Vocal Chitarra+Voce - + Keyboard+Vocal Tastiera+Voce - + Bodhran Bodhran - + Bassoon Fagotto - + Oboe Oboe - + Harp Arpa - + Viola Viola - + Congas Congas - + Bongo Bongo - + Vocal Bass Voce Basso - + Vocal Tenor Voce Tenore - + Vocal Alto Voce Alto - + Vocal Soprano Voce Soprano - + Banjo Banjo - + Mandolin Mandolino - + Ukulele Uculele - + Bass Ukulele Uculele Basso - + Vocal Baritone Voce Baritono - + Vocal Lead @@ -3247,17 +3251,17 @@ QCoreApplication - + , Version Versione, Versione - + Internet Jam Session Software Programma per Jam Session su Internet - + Released under the GNU General Public License (GPL) Rilasciato sotto licensa GNU General Public License (GPL) diff --git a/src/res/translation/translation_nl_NL.qm b/src/res/translation/translation_nl_NL.qm index be73b28e0c4d2572d29cca146117db3c353d6c11..ab38de9af582325d005a77fa74062a210f1b778e 100644 GIT binary patch delta 3933 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 UVzxOq#(L$!m{SL1n1|#40qQs2PXGV_ diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index b7a6242a6b..6252d4e136 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -193,32 +193,32 @@ CAudioMixerBoard - + Personal Mix at the Server Eigen mix op de Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Indien verbonden met de server kan hier de lokale mix ingesteld worden zonder dat hetgeen anderen van je horen wordt beïnvloed. De titel toont de servernaam en indien bekend of er audio wordt opgenomen. - + Server Server - + T R Y I N G T O C O N N E C T A A N H E T V E R B I N D E N - + RECORDING ACTIVE GELUIDSOPNAME ACTIEF - + Personal Mix at: Eigen mix op: @@ -226,41 +226,41 @@ CChannelFader - - - + + + Pan Pan - + - + Mute Demp - + - + Solo Solo - + No grouping Geen groepering - + Assign to group Toewijzen aan groep - + Grp Grp @@ -406,79 +406,79 @@ Landvlag van het kanaal - + PAN PAN - + MUTE DEMP - + SOLO SOLO - + GRP GRP - + M M - + S S - + G G - + Alias/Name Alias/Naam - + Instrument Instrument - + Location Locatie - - - + + + Skill Level Vaardigheidssniveau - + Beginner Beginner - + Intermediate Gemiddeld - + Expert Gevorderd - + Musician Profile Muzikantenprofiel @@ -996,6 +996,11 @@ R R + + + &Mute Myself + + Settings @@ -1007,9 +1012,8 @@ Chat - Mute Myself - Demp Mijzelf + Demp Mijzelf @@ -2182,7 +2186,7 @@ - + None Geen @@ -2249,222 +2253,222 @@ 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 - + Vocal Bass Bas (stem) - + Vocal Tenor Tenor (stem) - + Vocal Alto Alt (stem) - + Vocal Soprano Sopraan (stem) - + Banjo Banjo - + Mandolin Mandoline - + Ukulele Ukelele - + Bass Ukulele Ukelele-bas - + Vocal Baritone Bariton (stem) - + Vocal Lead @@ -3247,17 +3251,17 @@ QCoreApplication - + , Version , Versie - + Internet Jam Session Software Internet Jamsessie Software - + Released under the GNU General Public License (GPL) Gereleased onder de GNU General Public License (GPL) diff --git a/src/res/translation/translation_pl_PL.qm b/src/res/translation/translation_pl_PL.qm index 779b38c15238b0e466d7a7797ddaffb7940c8da1..9ce3530516a41005b562fd7dd73553c5e5bd2b6f 100755 GIT binary patch delta 1380 zcmXApdr(wm7{(tC=iA-07w)hUa$5`*TyBz9h=4W-3pz3)rrHEXYc0VrG0=`a_{##XsZ3ILqA2I<8mjY4%uzn|?J*3h<6{xKR<{yFF z@(~cSVSk;u{wUvMpF9Egp@czs*uK?3Hau4+bu0SvU`bEfV z^aU)Vuy2_F7No-7mrRx+f5|~$krDa5y8*xFP%z}_L7f@TQ8qRq1P)C!wY9?Gxo>l$V;?=lJcTanIN%MupPU5LV-lw>{Q<-W;hVj7 znz*7emY=I> zXoZw@GmXg|kalAW4Gl}DJcgpjrNN#GKu(utcGU9xz}EjS5c;X)uB`!r;r+4mNjlGz zGdx|AcFCIx27%;wxu&X&iXb0!GnFu{%1DdcUeXKryr9xgBX=}>O969o=jvS);3c0P z<-z7%^4Y#duFK@nsy0BA?ID%LR>@=OEHM9?%82Fi_x+w$JLR8ToFRN5UytB?B{#^o zE{y@<6CyZ|4ifZYsfiA~c8d(hCqQb2$oyvwkk~KY*!C{hDWc`dtBmALm&w~)-zD1H zd5S!vGVFCRU}yirJH=S}90TeT-))Lv|I<_k+r{0_zF<&iH1irbAaQ!lg>|&8=~ijY z*4%0iX1nfa!}EA*N{4ps0$<{+%nRepJy1um+zxO6r5_X4_FT~ofBL3io)bn^X}W@W*P z>~CbZveL_+0-KeR2btWTRW|RR;RFsToA0uIe3MdDx|2ai)hT!j-MC<^nsW@v6Ir;s8;TZ+4$4jwnOuWaMStl@apG+X(SN~>h( z+_!>(9yjz12^I`644mP_1yveu6mnn8sf;;q_)ESASci<^bu?hSZ;aSSr;*RAOe#0p zY)(d5YRvEbg#(pmbXk2k!OM(2UXJaYglS%oVg1J6{-n~Nv&P%bXXwz|=yp(;^?)g^ zn3*PSFcmbjBKeCtaoQh>v!Tf40PjJ~@pyfxu{$<^floFvm9g{C)aE{$5&q qmk;ubjt%u)RYMv2KHq0Y7-+)vZ9v+lbDxXF{;qW<%ei86kmWxRTxoRx delta 1432 zcmXApc~I149L67(-@Et03d`cb0t*Ska+qm_C`h3kA$TjgO(U*HgVcy?0|Ts~U<4`5 zdd-AsBasRgj*ZzcQy!F{8JcD`Qz}8q;Y?#mwN^~e_WNV!^LuCC<9WW{=Y0=t8Q#(q zqB#QKDIlb}Ioz7Fl!L{9$t}~|E_3oBK&4y4A9 zfzX!bDy!!%q@gAtE({{!CSX=Tq_hII&mc0qz{GP9*)xIZFF-8M0^;i-RxKkxg?L|Z zvjT{&HvvZ(4AYMT6S`$u?jXKP;^9|h8j2AAFa?NGBBAdRV7P$=`?~>eaDdsf4cWCO zAUYU1>+S+EZsc4{CR>p^Yaj4*A#yL&13|AM@A5&KO+$X#2f)-p6t3VNL2X#FipD0^ zVCBD$sX>XNNC%5h1gA2J+HS(>|37gKTKCXH^e%iDcLN9njwL4n9`xhH`QLzPD{*~y z4iFq9Gjss=s1;!z{OU^utZ6cnMld#QfM)sw`j`9z#5O2`#x?+xDioHU1)M*qu>ZUT zu-7Tl2WGHyw-ohQN17BT{D$mSMQ@i2kWv+6TPt~f@Xh}}Fwv**Rh9#m7XweZpQrO0 zDa~Ic#SUprUN4ZmSt>7ig^D2U^RX+F^JGS>ms*N00LIs31}UZ1?cdUArqq_dg9m3x z9eq65dP(ZMSj%y%)K{_>P-gh)VJSPMYpL8Ie3DFCt#rHFUuw7Xqn8;%yY!Q76$Nxl z56)j>Jfejqn-1a^ikQXA8Jp>1wt-Fq>P4FK6UODZnERvvNK%WpHXY@7t7!bXhV!nA z14mVi#oyv!dnu_UUHq_(ik21%kj7+Az9M>ZSlaLrac%85d#4iLt%+uD-;il}M~t5R zoIO0L4BO7^#4c2Rv6K~2o{<^1Q~995!jLDa!m}wPWyo6n`kj=Scw5zfCY>x% z4M*5`l^p8ioxe~{uFQBzowwl|2BJy5@vAR+tQ-Ys_SxnZ1|}9?KZBD z?$gA)&N@dt(aaApQ%#?y=&!jzjoSXP08wNAo9F7T(Wtl25W{Z zcuuTY<7@SDeWEt{-DlXxBiigMH|RcBX5ODaJNN?LiLlLKBCbj7u4mS@ttk1nL$mgI@ z?~OAuuygcX0cC90b26u>_4j|L(2&RaA@|EP7^wF-{lSa7Wr$tIJ|(so@)}s#sF?;= z0hJn4Wty%URpWfflI9t+Y6o~VT{6S;#zps8(ZIXL(qrQk)@1Zr{LcG~e|CJt_odM^ zua{SPs?+pRIfZF2n$}-sCljJJ0W*#SGSXo CAudioMixerBoard - + Personal Mix at the Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. - + Server Serwer - + T R Y I N G T O C O N N E C T P R Ó B U J Ę S I Ę P O Å Ä„ C Z Y Ć - + RECORDING ACTIVE - + Personal Mix at: @@ -187,23 +187,23 @@ CChannelFader - - - + + + Pan Panorama - + - + Mute - + - + Solo @@ -278,15 +278,15 @@ - + No grouping - + Assign to group @@ -346,84 +346,84 @@ - + PAN - + MUTE - + SOLO - + GRP - + M - + S - + G - + Grp - + Alias/Name Nick/ImiÄ™ - + Instrument Instrument - + Location Lokalizacja - - - + + + Skill Level - + Beginner PoczÄ…tkujÄ…cy - + Intermediate Åšredniozaawansowany - + Expert Ekspert - + Musician Profile Profil muzyka @@ -851,6 +851,11 @@ nie jestem pewna R P + + + &Mute Myself + + Settings @@ -862,9 +867,8 @@ nie jestem pewna Czat - Mute Myself - Wycisz mnie + Wycisz mnie @@ -1890,7 +1894,7 @@ nie jestem pewna - + None *nie jestem pewna Å»aden @@ -1946,223 +1950,223 @@ nie jestem pewna - + Drum Set Zestaw perkusyjny - + Djembe Djembe - + Electric Guitar Gitara elektryczna - + Acoustic Guitar Gitara akustyczna - + Bass Guitar Gitara basowa - + Keyboard Keyboard - + Synthesizer Syntezator - + Grand Piano Fortepian - + Accordion Akordeon - + Vocal Wokal - + Microphone Mikrofon - + Harmonica Harmonijka ustna - + Trumpet TrÄ…bka - + Trombone Puzon - + French Horn Waltornia - + Tuba Tuba - + Saxophone Saksofon - + Clarinet Klarnet - + Flute Flet - + Violin Skrzypce - + Cello Wiolonczela - + Double Bass Kontrabas - + Recorder *nie wiem Flet prosty - + Streamer Streamer - + Listener SÅ‚uchacz - + Guitar+Vocal Gitara+Wokal - + Keyboard+Vocal Keyboard+Wokal - + Bodhran Bodhran - + Bassoon Fagot - + Oboe Obój - + Harp Harfa - + Viola Altówka - + Congas Kongi - + Bongo Bongo - + Vocal Bass Bas - + Vocal Tenor Tenor - + Vocal Alto Alt - + Vocal Soprano Sopran - + Banjo Banjo - + Mandolin Mandolina - + Ukulele Ukulele - + Bass Ukulele Ukulele basowe - + Vocal Baritone Baryton - + Vocal Lead @@ -2878,17 +2882,17 @@ nie jestem pewna QCoreApplication - + , Version - + Internet Jam Session Software - + Released under the GNU General Public License (GPL) diff --git a/src/res/translation/translation_pt_BR.qm b/src/res/translation/translation_pt_BR.qm index 305c45142e6eb33c8ec0e6e1da3507686674342d..ff71d57d8d72be3612d063386b4306efc4b2dbaa 100644 GIT binary patch delta 4049 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 Xa$?`)|N0nOhioogcd~RH>offSUS`{V delta 4044 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 CAudioMixerBoard - + Personal Mix at the Server Mixagem Pessoal no Servidor - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Quando conectado a um servidor, estes controles permite definir sua mixagem local sem afetar o que os outros ouvem de você. O título exibe o nome do servidor e, quando conhecido, se está ativamente gravando. - + Server Servidor - + T R Y I N G T O C O N N E C T T E N T A N D O C O N E C T A R - + RECORDING ACTIVE GRAVAÇÃO ATIVA - + Personal Mix at: Mixagem Pessoal em: @@ -332,7 +332,7 @@ O Identificador do fader identifica o cliente ligado. O nome no identificador, a imagem do instrumento e a bandeira do país podem ser definidos no Meu Perfil. - + Grp Grp @@ -342,15 +342,15 @@ Mostra o nível de áudio pré-fader deste canal. A todos os clientes conectados ao servidor será atribuído um nível de áudio, o mesmo valor para cada cliente. - + No grouping Sem grupo - + Assign to group Atribuir ao grupo @@ -410,100 +410,100 @@ Bandeira do país do canal do mixer - + PAN PAN - + MUTE MUTE - + SOLO SOLO - + GRP GRP - + M M - + S S - + G G - + Alias/Name Apelido/Nome - + Instrument Instrumento - + Location Localização - - - + + + Skill Level Nível de Habilidade - + Beginner Principiante - + Intermediate Intermediário - + Expert Avançado - + Musician Profile Perfil do músico - + - + Mute Mute - - - + + + Pan Pan - + - + Solo Solo @@ -1027,6 +1027,11 @@ R R + + + &Mute Myself + + Settings @@ -1038,9 +1043,8 @@ Mensagens - Mute Myself - Silenciar-me + Silenciar-me @@ -2214,7 +2218,7 @@ - + None Nenhum @@ -2288,222 +2292,222 @@ O que definir aqui aparecerá abaixo do seu fader no mixer quando estiver conectado a um servidor Jamulus. Esta etiqueta também será exibida em cada cliente que estiver conectado ao mesmo 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 - + Vocal Bass Voz Baixo - + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Bandolim - + Ukulele Ukulele - + Bass Ukulele Ukulele Baixo - + Vocal Baritone Voz Barítono - + Vocal Lead Voz Principal @@ -3286,17 +3290,17 @@ QCoreApplication - + , Version , Versão - + Internet Jam Session Software Programa de Jam Sessions pela Internet - + Released under the GNU General Public License (GPL) Lançado sob a Licença Pública Geral GNU (GPL) diff --git a/src/res/translation/translation_pt_PT.qm b/src/res/translation/translation_pt_PT.qm index 6e9d88c163b730c8965ed6c9db9c81d401ed0ceb..53036b670646942efacabf9f60744eb8899097a5 100644 GIT binary patch delta 4096 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 CAudioMixerBoard - + Personal Mix at the Server Mistura Pessoal no Servidor - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Quando ligado a um servidor, estes controles permitem que defina a sua mistura local sem afectar o que os outros ouvem. O título mostra o nome do servidor e, quando conhecido, se está gravando activamente. - + Server Servidor - + T R Y I N G T O C O N N E C T T E N T A N D O L I G A R - + RECORDING ACTIVE GRAVAÇÃO ACTIVA - + Personal Mix at: Mistura Pessoal no Servidor: @@ -331,7 +331,7 @@ O Identificador do fader identifica o cliente ligado. O nome no identificador, a imagem do instrumento e a bandeira do país podem ser definidos no Meu Perfil. - + Grp Grp @@ -341,15 +341,15 @@ Mostra o nível de áudio pré-fader deste canal. A todos os clientes ligados ao servidor será atribuído um nível de áudio, o mesmo valor para cada cliente. - + No grouping Sem grupo - + Assign to group Atribuir a grupo @@ -409,100 +409,100 @@ Bandeira do país do canal da mistura - + PAN PAN - + MUTE MUTE - + SOLO SOLO - + GRP GRP - + M M - + S S - + G G - + Alias/Name Nome/Alcunha - + Instrument Instrumento - + Location Localização - - - + + + Skill Level Nível de Habilidade - + Beginner Principiante - + Intermediate Intermediário - + Expert Avançado - + Musician Profile Perfil do músico - + - + Mute Mute - - - + + + Pan Pan - + - + Solo Solo @@ -1024,6 +1024,11 @@ R R + + + &Mute Myself + + Settings @@ -1035,9 +1040,8 @@ Mensagens - Mute Myself - Silenciar-me + Silenciar-me @@ -2211,7 +2215,7 @@ - + None Nenhum @@ -2285,222 +2289,222 @@ O que definir aqui aparecerá por baixo do seu fader na secção de mistura quando estiver ligado a um servidor Esta etiqueta também será exibida em cada cliente que estiver ligado ao mesmo 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 - + Vocal Bass Voz Baixo - + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Bandolim - + Ukulele Ukulele - + Bass Ukulele Ukulele Baixo - + Vocal Baritone Voz Barítono - + Vocal Lead Voz Principal @@ -3283,17 +3287,17 @@ QCoreApplication - + , Version , Versão - + Internet Jam Session Software Programa de Jam Sessions pela Internet - + Released under the GNU General Public License (GPL) Lançado sob a Licença Pública Geral GNU (GPL) diff --git a/src/res/translation/translation_sv_SE.qm b/src/res/translation/translation_sv_SE.qm index 4a6f788073286d2de5cbe8235f4aa3fac4bbae21..16385ae2d99113ca99a1eb3055c6067325a56f15 100644 GIT binary patch delta 3998 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 delta 4103 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 Pma7V43JPLaitYaaxC!Ee diff --git a/src/res/translation/translation_sv_SE.ts b/src/res/translation/translation_sv_SE.ts index 4f101435f2..9c84b60b68 100644 --- a/src/res/translation/translation_sv_SE.ts +++ b/src/res/translation/translation_sv_SE.ts @@ -154,32 +154,32 @@ CAudioMixerBoard - + Personal Mix at the Server Personlig mix pÃ¥ servern - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. När du är ansluten till en server lÃ¥ter kontrollerna här ställa in din lokala mix utan att pÃ¥verka vad andra hör frÃ¥n dig. Titeln visar servernamnet och, om det är känt, om den aktivt spelar in. - + Server Server - + T R Y I N G T O C O N N E C T F Ö R S Ö K E R A N S L U T A - + RECORDING ACTIVE INSPELNING AKTIV - + Personal Mix at: Personlig mix pÃ¥: @@ -187,36 +187,36 @@ CChannelFader - - - + + + Pan Panorera - + - + Mute Tyst - + - + Solo Solo - + No grouping Ingen gruppering - + Assign to group Tilldela grupp @@ -346,84 +346,84 @@ Mixerkanalens landsflagga - + PAN PANORERA - + MUTE TYST - + SOLO SOLO - + GRP GRUPP - + M T - + S S - + G G - + Grp Grp - + Alias/Name Alias/Namn - + Instrument Instrument - + Location Plats - - - + + + Skill Level SkicklighetsnivÃ¥ - + Beginner Nybörjare - + Intermediate MellannivÃ¥ - + Expert Expert - + Musician Profile Musikprofil @@ -849,6 +849,11 @@ R H + + + &Mute Myself + + Settings @@ -860,9 +865,8 @@ Chatt - Mute Myself - Tysta mig själv + Tysta mig själv @@ -1888,7 +1892,7 @@ - + None Ingen @@ -1943,222 +1947,222 @@ Kombinationsruta för färdighetsnivÃ¥ - + Drum Set Trumset - + Djembe Djembe - + Electric Guitar Elgitarr - + Acoustic Guitar Akustisk gitarr - + Bass Guitar Basgitarr - + Keyboard Klaviatur - + Synthesizer Synthesizer - + Grand Piano Flygel - + Accordion Dragspel - + Vocal SÃ¥ng - + Microphone Mikrofon - + Harmonica Munspel - + Trumpet Trumpet - + Trombone Trombon - + French Horn Valthorn - + Tuba Tuba - + Saxophone Saxofon - + Clarinet Klarinett - + Flute Flöjt - + Violin Fiol - + Cello Cello - + Double Bass Kontrabas - + Recorder Inspelningsapparat - + Streamer Streamer - + Listener Lyssnare - + Guitar+Vocal Gitarr+SÃ¥ng - + Keyboard+Vocal Klaviatur+SÃ¥ng - + Bodhran Klaviatur+SÃ¥ng - + Bassoon Fagott - + Oboe Oboe - + Harp Harpa - + Viola Altfiol - + Congas Congas - + Bongo Bongo - + Vocal Bass SÃ¥ng (bas) - + Vocal Tenor SÃ¥ng (tenor) - + Vocal Alto SÃ¥ng (alt) - + Vocal Soprano SÃ¥ng (sopran) - + Banjo Banjo - + Mandolin Mandolin - + Ukulele Ukulele - + Bass Ukulele Ukulele (bas) - + Vocal Baritone SÃ¥ng (baryton) - + Vocal Lead @@ -2884,17 +2888,17 @@ QCoreApplication - + , Version , Version - + Internet Jam Session Software Internet Jam Session Software - + Released under the GNU General Public License (GPL) Släppt under GNU General Public License (GPL) From d4906b22b6ef43e5382f164f28d7888a83898fa7 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 25 Jul 2020 06:51:21 +0200 Subject: [PATCH 425/936] update German translation --- src/res/translation/translation_de_DE.qm | Bin 109627 -> 109710 bytes src/res/translation/translation_de_DE.ts | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index 041c2ec56343dfb07058967195033733a7163f8e..8338092bd5d26f00415964634abbcc45d524417d 100644 GIT binary patch delta 4133 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 delta 4047 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 Mw&+;fBDT)y|K2as$p8QV diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index 94e22c5f1d..8b9be58305 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -1015,7 +1015,7 @@ &Mute Myself - + Stu&mmschalten From 7b84e2e1584e71a76bfdb49c9da6748556d5badd Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Fri, 31 Jul 2020 14:42:59 +0200 Subject: [PATCH 426/936] Fixed Alt-m for mute for all translations --- src/res/translation/translation_de_DE.ts | 4 ---- src/res/translation/translation_es_ES.qm | Bin 106435 -> 106514 bytes src/res/translation/translation_es_ES.ts | 6 +----- src/res/translation/translation_fr_FR.qm | Bin 113743 -> 113822 bytes src/res/translation/translation_fr_FR.ts | 6 +----- src/res/translation/translation_it_IT.qm | Bin 99355 -> 99442 bytes src/res/translation/translation_it_IT.ts | 6 +----- src/res/translation/translation_nl_NL.qm | Bin 105457 -> 105538 bytes src/res/translation/translation_nl_NL.ts | 6 +----- src/res/translation/translation_pl_PL.qm | Bin 14621 -> 14700 bytes src/res/translation/translation_pl_PL.ts | 6 +----- src/res/translation/translation_pt_BR.qm | Bin 109213 -> 109294 bytes src/res/translation/translation_pt_BR.ts | 6 +----- src/res/translation/translation_pt_PT.qm | Bin 109081 -> 109162 bytes src/res/translation/translation_pt_PT.ts | 6 +----- src/res/translation/translation_sv_SE.qm | Bin 102979 -> 103066 bytes src/res/translation/translation_sv_SE.ts | 6 +----- 17 files changed, 8 insertions(+), 44 deletions(-) diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index 8b9be58305..828a9522e6 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -1027,10 +1027,6 @@ Chat Chat - - Mute Myself - Stummschalten - C&onnect diff --git a/src/res/translation/translation_es_ES.qm b/src/res/translation/translation_es_ES.qm index fa51fab8c9779d5965a79ac24a6d6f993b53dfa9..2138be0c806e18d9ff64dc6d42b537632247096c 100644 GIT binary patch delta 4125 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 delta 4060 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 &Mute Myself - + &Mutearme Yo @@ -1043,10 +1043,6 @@ Chat Chat - - Mute Myself - Mutearme Yo - C&onnect diff --git a/src/res/translation/translation_fr_FR.qm b/src/res/translation/translation_fr_FR.qm index 164468bb60e1378336191c1b5b8f6bed3b45cbcd..b8347e17d1e2e1134a6765ccdc50666d7348a32b 100644 GIT binary patch delta 4159 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 L_E-Y@VeJ0_SnlsV delta 4068 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 &Mute Myself - + &Me silencer @@ -1043,10 +1043,6 @@ Chat Tchate - - Mute Myself - Me silencer - C&onnect diff --git a/src/res/translation/translation_it_IT.qm b/src/res/translation/translation_it_IT.qm index aeb429afc1beccb7c49540046332f3e1dbfaed55..082e50230e9e806e4c9886c43858518132759d4e 100644 GIT binary patch delta 3816 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 delta 3818 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 R+DWDx4=g`*U^%q diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index 657dbd3aa4..7a2f0f13b6 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -1011,7 +1011,7 @@ &Mute Myself - + &Disattiva Input @@ -1023,10 +1023,6 @@ Chat Chat - - Mute Myself - Disattiva Input - C&onnect diff --git a/src/res/translation/translation_nl_NL.qm b/src/res/translation/translation_nl_NL.qm index ab38de9af582325d005a77fa74062a210f1b778e..2ec621d076323454720246f28123a06cc4adbb7a 100644 GIT binary patch delta 4147 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 delta 4033 zcmX9>d0b8DAAa6*&vMVb=iVDL*A;EXAfcKjhL9yog^(6Xk*y?68T-=BC~G2j7)uyS zshBLYFw;zk$TF2B!Vjr2wx&iZVwm5z`lHWtPxqelzTfBjJkR$%1*gQ9C&kSl%T@ro z03|EaY)x`kx)=@ItWFzfvd*Rpf8aL#VFF;Y4iG|t1KZN(+OyEKjVAL7VB(K}&%eO( z_>`l-wKd@PBmvG9tvH3QzxxGDhy(w0GnniGzP21#5dgs{8EF46gdR76siPsd z9t2*5L2yq7^GJd)*aDQLK^QR>*tZdacW>onNjRT9xgOIlpOurCfcR%24JBUeBiHx?8E)@Xb zG0=TRG{k$fVrdzi@_3-TT?=aAat%(^uE5`mE#I?lW+O&Eq_6wew;*#G1@B}7nCb$2 zW;~?&+rnq-Y_O1@;B(G}u7|+4&sMOn&%<}oP%tMmd<%%>DL-S>JV2P(iR!(LF!~)c^uaXWD4=Q}mZuZZ;rozQum@PR7<(7d0@ECDa1-&%yWx=I z4M2X0EEi`$rA5x!Ixx*$9Q6tS^W26jCB-na3CXyY>H{ncY{hH&xZZ_`jaY=6d8xF} z52(0Ea=I}TkAoe7rO)wX`(UuIo}#wN1GsK%K^C+L4c)7Nnh8vJNtJQgOxw*F%-+Iu z54RI@>FlGwj)8T0#QM$M4|JNyyxpHFU|ssMupDw8>jrAbs@_8DgJ{{Xh! zo$Z}a3iO%G_T|}ujcjCDZKDC{2rCRGzC%Z|3tIw!%Ua2o#*!Z1ky%sa~Uf)Q$wQDxtwN+ zaTB?m{dR!mJ(p{61KJgExo^nfBj7x4i>qF`J}Y{OIxw5m}@kXG}q4JnwBpCO1-$IE1qWHG{?Pl zBuXx|hPp^ag&8JDFy=kzbs3hrC?IFNv8-ngqWjeLhfopI`1n zmfrp)zw%L6uz{!ftxdft29;K<*6`^elnrhtT5-xa{$S#DGI;}^vC2Lc>I$K>pln6dxQaDKY~pjBY3_Y3ue_z82N7(k~ZH@2r!Uk@9!0YETn`3p~BQyvS@O&5XB{d z1v&}Q1NDG|uP~>#4Ouix__8@G0`3V5T`AmDLxsh)mDGnx!qVHZz{L@~1#_D%q+I=)hC_+4dFpktPP(wI;sNF$uAlJj0f`#uCu~1V4`{!)6<=%; z($k4ArM?w!ClXeIwM!TFsn1Xt1PJ@qkf(b7BIFdECZ?=~qUH(qe6>(I?E{6PD3ncZ zX7=w^EKRc9m%2J#E)|9Se!#j_qWTfFr*?&??Q;|OELLovXrOFZB3hq%06cB9^itcK z+lUdyr)2OFaha&1$Ty1#AyobF_G0ol6HO?8aj)eK`7A-qI787>xlznarp*;bi8=ig zlKVaJNIcnL?tJlN_EainxOh5%RM_t87GxSlEXbJ+){J&+P4hk(FxYehm%z3boabp1|FOYL}$P6xMYu$h0Zy&&HnshMiZt<(rwni^&=7)P5%#Xoz-bK^FX49c)d;-utaO>OvuH_jL<0)mn8t-EYRQICcE&D@27s z9be{4ioUE~@-h{0a#64LZKBZ6Rj<#a{qpnGo9|G4ZN5-jPEY_eM5>QTDU>js)W1wm z02}SAK7EULXn$3GVJqFAxn6xS;UD1jSXqC%1~~63f7Ek6*Z>#Vx_ApP{FMA@+$zf0 z>J-^&ydMyKOzyYz5Q*TpJkW|N-myjY>_Eh=h?hsOHYCw{dDP5bfq%BjA#XfsL-*zB zX$^E7kmczw9#iGxwS49E1Di9TO5WUw7RE(6?d=m1-BvmK?jGv( z*YfdOwu^!Jjq-_WpOOf^kbk>M=Y;S(^64s_la6b+ zVLp@)J2Zy>sIGV6n$El20gtB|?<;h7WmPLyS80NF=Yvg~tC_{qI`_zS62aeS*`gkWj?UP z-V&ymy6@0jZ9{GH+pZ~FP1|vB(A+!Lyp7wMXRgG``01MGvP=W#oMpFSGJmE0V$4@S z#UI*{LlVK3^wLgf-;>t7s-5LF0E}g8<3G;_?&WCXo6m-QpK0SC76V>$w2PllpsB#L z8&*#P({0vnd`7YA^^^7+R}xkC6m9y5Z>V=ew7WC?fXIj1y@Tp0AcnRelS8$co9Ikw zR=(7J-(L?l&q|wjnTk=xY0nP%0G!&XE&Bcvopq0DuhtU#C0^RnXL{g~e+#mq-rBo| z|3`MJ(pHQbNhgG>+KO>QNxi8p$oLFxBVSEtz_m)-`kR#7Rm#UdaCC@0tk|v~8eF0j zyG;#bk7}Qm4{Ydu#jc4a^rJRP_nNj8oadCDJr_^~`xWouYGSuY@hzY>moHTOi%6YA z^h($^+PKv(N_3tz9qr1M=qhJ=6$w^iexvWlhbVE6X`ut>lzF#G!4~BzTdIh##mb;?yW z9mYKSS?20ZW?$v6S9DG&X;Pjp2&cI}OnDi9k_Kj`(iBDw(D>@~<%h_X$vT@u#P9C8 zEy#j*>beCQDV8#Hy{tcgxgXQ@d65gYG*UNeLn@gpLl=CQ8oYF7E8aM)n>m&m=(emC zr?k;Uo2U$Pg_mw#V+{~=NVmv~HZU_$w`j_dxTWZ8Yy{V)I*w$CyF_P>QYSG)MbAZM>ddGwW;5P@o zV|6;cU8U$5gQ0|42D^M6w+H& zhGBVGUpiov8d7#~l*=B5jZ!Qit}yH{h0|M{#!x_m1%rYN1!mIKfGdU@saa%%?+rJN z4=9dD8(zHjBi?p(Ff>|`;(KTfO?^U0>F*3pM`FR8=Tb1NKl6iIoBQFbCdQqd7{{LX F_&++L!g>Gz diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index 6252d4e136..5eecdd2de4 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -999,7 +999,7 @@ &Mute Myself - + Demp &Mijzelf @@ -1011,10 +1011,6 @@ Chat Chat - - Mute Myself - Demp Mijzelf - C&onnect diff --git a/src/res/translation/translation_pl_PL.qm b/src/res/translation/translation_pl_PL.qm index 9ce3530516a41005b562fd7dd73553c5e5bd2b6f..3d3d03e53cf596c281ee53bf6bf1b6df946405d6 100755 GIT binary patch delta 1475 zcmXApdr*{B7{(u#@9gfkR~A_=;sUaS2rFQAMH0(Y7Tm;pg4;ME3NxgRin$KDredOu z(5$yfQcCiE$#9&CCQ~R;QxR>N|_!yf9(9ebH4q~`@GNlzUTe}?`(={0gObs8fGFU16M>YWfF=}}ybRE7lC&)b%FBU% z?NF)?0pZ)BY+D7G3ME5UK&kr-@F!e{a;pYNiiSwJ1lZgV>GeR&7ZAe(KvWY%_Orm? zQ4o_y0?AbnQzwz1Lwq0@U_3-4#k&^4Ja`WfdQ#Hfj^sv#g3d^q^O1Zv9q6wj<@`y& zd=aBJH6suj6zcaOyTS@M!{MHJ6-ZbNcT*a<3pvki1fHINoD-Em$YJE3-opGd;mQ06 zNbE%3lxFVV!-T2KHL3!yKY2(AD)Qr8^u-IWwm+p^hPU_qpy8;mW(v-=*p+k<2nKei zrP2emWAE`lfPn?Lu-*;y=_485foqhC$QAg#I|GQwl1#mau7Nk0%gvzn36FsR>op-= zvw^-#HTIU#{C}q={`!0%zEYEQV+iYeMN^5HWT<9uZ$j~XHK!Vj03}1ywXmG=`&|D2 z0a1@N-Q_;OK05et*^A7)Ldm2_(5zIZ<(>l4<|)3?=~M(|V>gQu{hDNKiBg+?0GI2@8OYn1Ps zd#x^0ehRRyuuu6pW-0}oR638hvO5xmJ)0RMj}t@9%rK}@WO|RVOZJOl|BMAvjbcs7 z4zAx4Ro|{)S6vdDcj(v+|B5a9=8y)-nERr(*2}<37az#zbE3sfOC9$_>x>@O%pks- z=44HmNZM<}oln1H?G9)oms@H5IPI~CbV7SnGU**{=Q=z4eX!1vO(E%b0!xD<{1v)( zFJ%t;QP+Mni=3;w9UH@`a_N=vlgZ8cv{k=SR*qz{PMLy7SJq8{@ur2FCO?IjF1AWZG95Ac|DgLCUMEN7h|`^-g};gO8XHx#)! zQ;r5hab62u&odO?=6CUVhSGv7EbC&!Z>q|q9maL5XK(=CGj2$yO#So5+EFaGYlLxo z)=DV-Jtmi{i~&A0<(#<5OQG5nNV2eRUotfYEnxmbCHomo9e+}2*dx=evNzcH zmS9u2m&%f^mPl=dPo{{a-K_jipjchGa;XMc2bCF7;K*$ch`B&|=9*t7TjV zeGR^9nX|ix!fGr5dvE4#mPh*!@|LNxzI=+4ojBb(#z$d>ChM%TENDtX2{0sRN5dy# zt2HeWQ{Y1(O0WP+5Qjv(i8)*q>3c^_%bzLHQ?{@u&f{B9R5~kgAtJKDV{di-2T!Ga AbpQYW delta 1414 zcmXApdr(wW9LK+0?%CbD4;GLG33;x;@&+lJ0P)c%FCCdkQ*avxC9&BaqtXn`A{1gN zKFIYoib^A4zRJdODx6fH0>q#&ry3n4Dn*@XEGf5;`flg1&)u{4p8I|L&b_(!D$t0W_q0-~JHS%BmmKnVsGuLtzIC4({nw;PzU z59*c=fY2pS4{iX=DGa2X=`G7zLdWV8WM)ey5hK)4&C;Bg@1 zUx>wXfuy+*OBa!AA>I*ufeE7Hbs!}jmdv9-aJ{5$ACfv$3c4t1DMQlT3?QZx$pc>j zmLcTt?uIAWFSu?R3L33I+yDw!UI(UTqOdEST#lmYyMSqC6m@O_0$)IJpD(XmEXaKq zh;K#7v)x>8N9j^}4bQ`phxcir6J;?e%q0{~T`Z+F!|D4!#f!G>v|xV@a) zBhwXIPd@K&RpNeHLql_vnIl>3cZaeGD{1JWa?EEac1Y>%s07q(Wo(_B@1NBC{{_N7 zR=n;Szy|*htDmIvJT;dgL1|Ez754(^iE52&ITb-KfF-n&@n9U8QT#<~Lt$yF_i@I99 z>fu=7xOy#$BbQ#U-n=jfL|zxR0y;=CiX00a`fU=q&X0i1N|E>XLLjwUytVo;e`km- z{co_6tzyq%J*VLxvG@2(q){^Jh-hhX^2O>HFUW{DMNc6kjcgZ#6%*{NOMJJ?&PuW* zZH3~_C!e#sle)?EoS6ip?%Xp>LU%^eF-v!|$;Je4>mv&&B%{q!>mOE^ryq7wX6jD; z@R^yULq8fF#Z#4HNZ;@a9H1>7H)U>gJ6P8?R+L=M+h9^ud^Vody zxarW$`^@cCNrz%;-#&+h9x`?G32qo{>N&}Y3#l^QDB-%8khGsQ{i)ss9DU}Qw)94o^(<;m~REe_LUjt4!^aWg!_^a-R58apwf_2=3CXz z(V@TD>!dKp4oku!7MQxkQryJIWA0fh7gA_Iwxsn^fPR7>yVQpPa~ns1NwJb)J)T+- x7T*-`*NOM}b=hK_-OCdlA8wsrLm9>{>+_dbXwtRSK-RL;pNaj}(=E0^`+qU>Z&UyP diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index 6392fb0179..0db7c898b3 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -854,7 +854,7 @@ nie jestem pewna &Mute Myself - + Wycisz &mnie @@ -866,10 +866,6 @@ nie jestem pewna Chat Czat - - Mute Myself - Wycisz mnie - C&onnect diff --git a/src/res/translation/translation_pt_BR.qm b/src/res/translation/translation_pt_BR.qm index ff71d57d8d72be3612d063386b4306efc4b2dbaa..1ae71019487b7304cc86339e2a4825aa5292bd5e 100644 GIT binary patch delta 4139 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 iA7GA)wmB;VZ1`!)iQUfs^D$l|<_2T~k diff --git a/src/res/translation/translation_pt_BR.ts b/src/res/translation/translation_pt_BR.ts index 41b4f50f82..9008c333a7 100644 --- a/src/res/translation/translation_pt_BR.ts +++ b/src/res/translation/translation_pt_BR.ts @@ -1030,7 +1030,7 @@ &Mute Myself - + Silenciar-&me @@ -1042,10 +1042,6 @@ Chat Mensagens - - Mute Myself - Silenciar-me - C&onnect diff --git a/src/res/translation/translation_pt_PT.qm b/src/res/translation/translation_pt_PT.qm index 53036b670646942efacabf9f60744eb8899097a5..2b8ec475d184f82040e304493b44e6e93ee823ca 100644 GIT binary patch delta 4163 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 diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index d876c22863..2007b5a18a 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -1027,7 +1027,7 @@ &Mute Myself - + Silenciar-&me @@ -1039,10 +1039,6 @@ Chat Mensagens - - Mute Myself - Silenciar-me - C&onnect diff --git a/src/res/translation/translation_sv_SE.qm b/src/res/translation/translation_sv_SE.qm index 16385ae2d99113ca99a1eb3055c6067325a56f15..4c9a3cb8b28247e9c7577e3b042937596109d81b 100644 GIT binary patch delta 4171 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 delta 4099 zcmX9>c|c8h7(KuH?(*Kd@7-5OWhjQRG$y2Mk*sY>TF4SjWh~K@t!%xFGS+7DWJ0nQ zk}PA!U?wW2j3yxlGsx0n8Cgm)WInyWj+?uD-}%ltzwd3$5{veV-?!292Jjhh@u$=d z)*6K_#sHUFr4F&S-9Z-tz*RrOK%he`AWQ~!?o6F)&z7fdur|&DLXHDI`+;T4fQo$Z z>kk8e{s=xZ3Fx)SjA2pWcb)`31c0yo9!#YIUw4C^DTUyW4A?$|@OcIBr89)ydx7eG z5S)|2`sP7!H&Hn!A&ediWFCUx=>it86~dS-!1zf$gz=-mgklI2g9#fTBpImG%@B48 zRFFv63}pXk#)=UTvU>p?FG9$R0gJp0;q(eH^+(Dyk2 z#5$SrPX>q6JkaA|3${k@6>umg_IjUy!&73i_N?hA*3CE+9(UIKrSyw$oqOC_AMsX647<9 zF{xuuFmW$J#ZJ_B7DDMhrV$bDJrlUguq=ZJpY|s1uwz)3>+R21lGR-7cZ5;$i^^SPVoX331;&cjq zXeBC(NmiHUp=v^RU`aS?(%r$LmY}X_5KtD_f^4h{8hShc9wjs31$D-4VRAP|Fk3IC zze~(~NMNn2kAQtLiw&H+8~D_nc{2nt4Fm1QtL3C;FlTOBrK9 zg-v0p5_Ozi%}fE!VDlcc9f9S*fEc#xv>llHMz+7zY(Pq9=O@qv0xQ|?8-sx2x$O7D zd0@i}*!9=vz-&U;y});1+*(!@o(D8`Vl{!m`CyBj*o)N~;FCVA$-WV2=fz1LN zoOaw)V9o$eHoPT+37kd44B(0nXI0_>luzQ?DK@}D1NZ5DD*W9VZs>!)G;_i91#fL! z!!7(Pf!eX;j7#V(6)(BOMg@pk$gM#n@$onJ!}=*e)=O@;S1^6`1edjf92Z{7<&eVg z&W_93Z3k@hVM~fjXlCOEFh)r*lfnjuesMol4im&u4&m~pmaXhL~g>bcHGq6o6`ymJa_#ox7G#56`P_q{K)lH3 zULy9(uJcEVh#Xwyk2)k0-8uZxi;l!Q`!IuxB4_

#_Cx9#yOHZ zH<16wlt388-?k$b$93QM@cJeg^q~2;v{)uw}*wX%d{Tp}S(0;zbCk1fnE+`+! z*YU0`$U0^TR-V%-FV_ogKTE-6Oui@dvX3O&3=o`lk^IBj34@;J0o#%VSAAbVogxel zJq{LBBe=aCOM%fOc)X+B<6VUy1Nrsld||waWUzCF5Ef1TTzW^C$t96Y_M19L*2d|= zqTW=#YOoMrcb`}<7MA=K4V)VwB-LF5bM7Xrp0$Tec2HOoodVX=AgnL_hGOfy@O>EZ zTz*#ATzQAu>@WPVMUD4Ds@{P~!CtsJbDPhc{CW-Vm-$`N(698B33us-&*Q;#yJI?FXz*6V>-< zJdaO^a=!|o?*h>#(LkmT6m5T@x*i6IWBSs39h=38zGZ+uOANi1Liz76hFSKYkhm>= zX;n*}P8FAmD(bVfm@tXr(#=y$_P3_v%30iDdP8oj6tm7!+T58TW+$H|u@}aOIRkZ+ z+XuzmSaQYm4DrN)Fly9QJQG9$wO-bOOm#yn%$WroJYf1wZEYMUKI%xcZLJqyzNF6# zXf3`vJC(w*S$y5j8O$e8Y_unu-D<@T?P*xLrxII7$BV~(iL0S@lf5LX-{}67Fsc1m zQd7ikse>mCJz%KRuPL5FK9i2`_mZD|9=*R-3OGLi_@Y1xwxZ`8LgJ*5oFrNr zwo9Q78n8ZP(zGU`dD1u1{7~X=(a9EMZ5mC>HP%L3X=4eAcd157+u{xuoFt{+&8MVv zm$vBq==wj&Jk3&Rd$Aq4XOVO&otBhV&!vLD9clY0mr7RM0b2Kw?uAlPYEDb{ejZBL zS90@LHwT-F`+SYSk9U-GJ+B)xDCcK5h}YE&pJ`Xmy`)$AHlpYNtFZ zps`x*Goy@7w+gl2u?9L#-CL0P?@~{&CEI5dsb~Ivo(kz^#`i($*p}zVt7B(fB!0eC z$6oU$9Ijscg5==vO1;XviK70PdTllp)I3uC{mpV1(Q1a;bd2=#ytDdOvIAr{o}4;C7?cEsocTg_;Se8!b(e5Rl30z5gane>KkXg;cm zNNoUG(@(ZwNjJ%wuWTdS##i4Cds{@=IC|O!-BP%W0$*- z4&pSwmeO`G?KjPtP%4WJ*A&|mpU!tRWqqjJF`YG!mJpwujizZYrBRJR^WRWvYtr9Z zZlo8OUuUi11KrmUZ~9HPHXhP?UZl6xx@gC5&nNM`*GA5G2*f#QBO7Rp@e{Svy?F9) zrgo-(2}MzccIKlpQm4Om=9@+$agTP+6F#Q0x;-ErDey#?TDrS{kL z3n)xaYV$1|$-U>a=h{*#S&h(^9HK&1Uu#P(X=)zj+H0$*P}@q=cAd3xhRo-X*ZuQl zwaSOGFjuzd;z(`DaxWVyyHAwd-*-On&kosRSRz=AUJkVBN#!)lUpWm1{)>`h`{o0G zRm!m+cSomza_n7tZj_fC|2PoDro3)dIE^k$-tdT$ckl&yQ*RQRLx`L)dJ~k=%Ay)-#)_wW(AJnF5j$AOT8TjdnTyp3F?Zgk{ z(mH3tSh@U>LWf+}7G$o2-A)BSil|CM{LWIke{=>-?$IaLrC%@*O(oV<+=vviR zkXkKuZGPlv%XQIpSWYtP-BxG!9oefUxdoZ)Mx9+#Br#E?>+!4=rERgUXU~Nc(lI*E zQEFgukj}f1gix_W7f|8`HmIjAbTbvMU8$RW+Li{LqMQA|5ePb{oAWFEzqg|#1K@4+%8h;0{uX`veZ=q9v=(IkqxIc_tthTy^KJ>82x?j3;l~hew3@1^!3O6XuzMADpGSR8ic!Ied!sn zsg?4{402qMi_%`5L$MX7bWcbCPC6*vpJo6Z6O`Uoc3`2ml!5YE@_kRm?HM`MD?%BT zw3=488f8>64Jy9TjF&8xFGx)l5~Dg!9*b9& zub~&m-By-A&7#gDmBe|pD|V_;OjaK~lCJD}L!;<>&x`>VlmlCWNV@4t{*@G<>pkU$ zRevz62g-ekf^A^1@;HH*JJqN>T|*35Em7(_&>j;Ptu*H5k$3-9-Ugd?TC_2CGIXLJ z!%VC)xOGkh5?ULEU7+7bEZ#6?F-i7|*@kHp=ty)le7TNr-&n&}f1aoN=Ngt>8$b(7 zykY$|j)L66utACj#AL%3>#3xLLPH^)L>RW)P-rB@xzri1rtBvVE;LkF-J$%BF+6GX xBZa2VHoUeVFLX&YH1(SV1P?VdbyGW6d`0~d9%Ytbu!(&f`$Fc#P{s+Kb;3oh8 diff --git a/src/res/translation/translation_sv_SE.ts b/src/res/translation/translation_sv_SE.ts index 9c84b60b68..ab9745efc7 100644 --- a/src/res/translation/translation_sv_SE.ts +++ b/src/res/translation/translation_sv_SE.ts @@ -852,7 +852,7 @@ &Mute Myself - + Tysta &mig själv @@ -864,10 +864,6 @@ Chat Chatt - - Mute Myself - Tysta mig själv - C&onnect From 187041b933b8c1594a902ccb3fafede63ba290ea Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Fri, 31 Jul 2020 14:51:34 +0200 Subject: [PATCH 427/936] added Alt-s shortcut --- src/clientdlgbase.ui | 2 +- src/res/translation/translation_de_DE.ts | 4 ++-- src/res/translation/translation_es_ES.ts | 4 ++-- src/res/translation/translation_fr_FR.ts | 4 ++-- src/res/translation/translation_it_IT.ts | 4 ++-- src/res/translation/translation_nl_NL.ts | 4 ++-- src/res/translation/translation_pl_PL.ts | 4 ++-- src/res/translation/translation_pt_BR.ts | 4 ++-- src/res/translation/translation_pt_PT.ts | 4 ++-- src/res/translation/translation_sv_SE.ts | 4 ++-- 10 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/clientdlgbase.ui b/src/clientdlgbase.ui index e07fdf1312..20915ca356 100755 --- a/src/clientdlgbase.ui +++ b/src/clientdlgbase.ui @@ -327,7 +327,7 @@ - Settings + &Settings diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index 828a9522e6..98480b8227 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -1019,8 +1019,8 @@ - Settings - Einstellungen + &Settings + Ein&stellungen diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index ce5592cd12..3cc1fb1d8c 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -1035,8 +1035,8 @@ - Settings - Configuración + &Settings + C&onfiguración diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index 2b6a5e15eb..569a03f44e 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -1035,8 +1035,8 @@ - Settings - Paramètres + &Settings + Paramètre&s diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index 7a2f0f13b6..f1297ad3b9 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -1015,8 +1015,8 @@ - Settings - Settaggi + &Settings + &Settaggi diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index 5eecdd2de4..1c18c67156 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -1003,8 +1003,8 @@ - Settings - Instellingen + &Settings + In&stellingen diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index 0db7c898b3..6badb36699 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -858,8 +858,8 @@ nie jestem pewna - Settings - Ustawienia + &Settings + U&stawienia diff --git a/src/res/translation/translation_pt_BR.ts b/src/res/translation/translation_pt_BR.ts index 9008c333a7..56f029a17e 100644 --- a/src/res/translation/translation_pt_BR.ts +++ b/src/res/translation/translation_pt_BR.ts @@ -1034,8 +1034,8 @@ - Settings - Definições + &Settings + Definiçõe&s diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index 2007b5a18a..ff8fb8304e 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -1031,8 +1031,8 @@ - Settings - Definições + &Settings + Definiçõe&s diff --git a/src/res/translation/translation_sv_SE.ts b/src/res/translation/translation_sv_SE.ts index ab9745efc7..7a6b9f3030 100644 --- a/src/res/translation/translation_sv_SE.ts +++ b/src/res/translation/translation_sv_SE.ts @@ -856,8 +856,8 @@ - Settings - Inställningar + &Settings + In&ställningar From fefb5ade36fe66686110b7e28a63d9bf858fa40b Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Fri, 31 Jul 2020 14:54:30 +0200 Subject: [PATCH 428/936] added Alt-h shortcut --- src/clientdlgbase.ui | 2 +- src/res/translation/translation_de_DE.qm | Bin 109710 -> 109716 bytes src/res/translation/translation_de_DE.ts | 4 ++-- src/res/translation/translation_es_ES.qm | Bin 106514 -> 106520 bytes src/res/translation/translation_es_ES.ts | 4 ++-- src/res/translation/translation_fr_FR.qm | Bin 113822 -> 113828 bytes src/res/translation/translation_fr_FR.ts | 4 ++-- src/res/translation/translation_it_IT.qm | Bin 99442 -> 99448 bytes src/res/translation/translation_it_IT.ts | 4 ++-- src/res/translation/translation_nl_NL.qm | Bin 105538 -> 105544 bytes src/res/translation/translation_nl_NL.ts | 4 ++-- src/res/translation/translation_pl_PL.qm | Bin 14700 -> 14706 bytes src/res/translation/translation_pl_PL.ts | 4 ++-- src/res/translation/translation_pt_BR.qm | Bin 109294 -> 109300 bytes src/res/translation/translation_pt_BR.ts | 4 ++-- src/res/translation/translation_pt_PT.qm | Bin 109162 -> 109168 bytes src/res/translation/translation_pt_PT.ts | 4 ++-- src/res/translation/translation_sv_SE.qm | Bin 103066 -> 103072 bytes src/res/translation/translation_sv_SE.ts | 4 ++-- 19 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/clientdlgbase.ui b/src/clientdlgbase.ui index 20915ca356..803d94d301 100755 --- a/src/clientdlgbase.ui +++ b/src/clientdlgbase.ui @@ -334,7 +334,7 @@ - Chat + C&hat diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index 8338092bd5d26f00415964634abbcc45d524417d..aa7a6f1762a11cba2c0f7db370194281015eee21 100644 GIT binary patch delta 4083 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 diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index 98480b8227..1f62a51772 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -1024,8 +1024,8 @@ - Chat - Chat + C&hat + C&hat diff --git a/src/res/translation/translation_es_ES.qm b/src/res/translation/translation_es_ES.qm index 2138be0c806e18d9ff64dc6d42b537632247096c..59de9867dd09b469871f2d2f71e6cbb1c57cb489 100644 GIT binary patch delta 4039 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 - Chat - Chat + C&hat + C&hat diff --git a/src/res/translation/translation_fr_FR.qm b/src/res/translation/translation_fr_FR.qm index b8347e17d1e2e1134a6765ccdc50666d7348a32b..7c0685a867b27bab2a572a7874e928903d41e594 100644 GIT binary patch delta 4123 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 a?6Snh?3SE-xH37Jt;kOKIXi`M!~PF~wc4iu delta 4038 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 diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index 569a03f44e..9a983a8de7 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -1040,8 +1040,8 @@ - Chat - Tchate + C&hat + Tc&hate diff --git a/src/res/translation/translation_it_IT.qm b/src/res/translation/translation_it_IT.qm index 082e50230e9e806e4c9886c43858518132759d4e..8ebb90e0d6bbc55b781d0ef71b3b73817d527851 100644 GIT binary patch delta 3767 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 delta 3751 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 - Chat - Chat + C&hat + C&hat diff --git a/src/res/translation/translation_nl_NL.qm b/src/res/translation/translation_nl_NL.qm index 2ec621d076323454720246f28123a06cc4adbb7a..53651eddb45be6bb03cabd77af036b55faf6daaa 100644 GIT binary patch delta 4075 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 F{|D9V&#(Xh diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index 1c18c67156..39d7792745 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -1008,8 +1008,8 @@ - Chat - Chat + C&hat + C&hat diff --git a/src/res/translation/translation_pl_PL.qm b/src/res/translation/translation_pl_PL.qm index 3d3d03e53cf596c281ee53bf6bf1b6df946405d6..fcc84d7c2af907d3a1a354726359232803ef9e55 100755 GIT binary patch delta 1432 zcmXYxdr(wm7{(u#^DTS!!m{eJtlTdx2#D9T5HIOKEEi=$QNV3fL~(|}M!^{zE|zH` z2HHWgiHt@dQOU}3QYrMo0%=2aGw8>Q4b-w;|o$3q%A%L|p@tEL9Lw8-Rdzhy@B@?}SKv7MPX-kr59> zz6FuFj64hRf#Aj~AX;AqqDx?!)(nihq|(~I@4n4qM%0z>08=;OFSDvwhGKHFm6s!N zhZzXbtuOsC5MHD48d(oa+^(^9yvX(UH6b@Q z0U_0z`L|{O&)m>dU@hsRIWlG_BuLZQnhQv=nvud1)*pZUzXwdzXhutl0c)!JCq>WG zd8HIrONW~6(#qscV9FM$IDZutLE1mcA^0v;8MslZ%W4Na|EE`*)UfR;ohD07soPn2 zv2^ST3){M+kI(Jkdy8}>zXs4Q7-KnGc}nVvMh+Hn_nCQ^0Ld3Z~V=6us^Zs4}#8||x4Ttz%D)wA_jU%y(w-0$R zhX05IM+->3%79@}SLb43X@n1??={ikWJ~>rMAw?9oSB#Sab+ks*rw82EAD;qHD}kN z_1VVEgfG{gS;|gmPpXV~Q`=u@Wv*v?_$N}x)Ip`x-Dauu=yOr#?UrO`dG z+@wohf0<){N0;~QH#|3IRfhEHiU+FzU5RdI(kRC|tlQlbz;5=)VXv^8LGE&bn}xM| z##PAN zIsD{1TPYxXqCDE50D-ggq3_P*80+>|Al1e z^Rs{AILq{RWtnC}4V63BF!=R`nyD17n{B8|;FzPGhWF2L+-cG+7Tir-Mi}8;k3Z3x8c)RFj8gw^~x@zKh&D=1BFXOl- zH=2?w+4A6drrae|>KUujYnP|TQ(j>)NuKdLZt-LmsPwTarNZXu@%;1HN4!q?+z*ekAp>FJWY55V09C@piUYlLHYArai(R;VsiRXM~2LB6;FMPuQ delta 1425 zcmXApdr(w$9K{dI{jq!Z!LqQ+Ls*bUh=71;R)|6xj|E8-9|3OTh$hZ3>X?`~Af};$ zjM!W>r${YP!)FeTQ{rTT#lr`LHl~#dm}sDlCK;tp2k&2>d+*-;e$P4I@9#cZF|cA= zK-mWXrU7QXN=v9pzq#a0J}**fIjYis4ntE@BB1dE=Bx#@J5*X$10^LuKsThS zV}SQ=NV`4+jQJ`()Fze5EW#fm>Iz_SK*ZGnfu|vo6u_?;BJCAmYzoAj zWFWE%B4;*v3gUCY1~VZVDL#4?Ok?W-&lZ)oZbUXp6m(vtDHo9gaX_$)sE!uEbQ!5T z&QW+XQg2F7M!4w9ijh`s2132zSa_4#R>RR8OCCV_gzdn~*+_4y06dN(qkSiHNI+)7 zJ|MggS#w#+<36%;=-ICvZ$EoXDKc_LMl&BLoNmFCcooj!-^V1Ou9{XtD{&y=GT;h) z85_e4(2av<9|5ED@Z(ko;N_*#`wnhVGJMzL&!Kq0CsAe0eGHE7rKj62-PuopQCl@0 zgNuO?r5amnD&OzZg!HTcLMk+gz2ktFu4yW;ko43X95xg(Leti`2$146gDXqe-|Om& z3-~?N43!iEwp7>SMX%F&xs>oCtPRqjQGz%6N*WsI^x>WpUryIp1AX6fg1 z!%-JWzbafW9Fl$u%%Ol5sqbtjwjsI~|BIh|Np( z^8S5MbzwcX>x%ezua;Z!pV)b5DXCW(_(0UwI@wqnt5ARNA(Q{;$8~?2fqkt}`?G8E$80F$uSmDkCxd>M7J@0h+}=AtK1*R zG`r-mzNzsSKe zWpB_IWVNzjmcHN~{}+;_FU-5fajw??Az0-Oyar9FjvFh(f}P^Uc$WDMR0Ee)l2=8Wpw#7`M0Kl;|-lH*6D>6z`=|<>>;a%yXbOc8!?KW$}WZ&_@{{u(Dd9nZi diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index 6badb36699..8751ba791e 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -863,8 +863,8 @@ nie jestem pewna - Chat - Czat + C&hat + C&zat diff --git a/src/res/translation/translation_pt_BR.qm b/src/res/translation/translation_pt_BR.qm index 1ae71019487b7304cc86339e2a4825aa5292bd5e..3f8944baff05afb1bceb0d6f75de61cd6868521f 100644 GIT binary patch delta 4055 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 delta 3977 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 T&PqT`lO+WUj~6Ut?Ogs3wgAWl diff --git a/src/res/translation/translation_pt_BR.ts b/src/res/translation/translation_pt_BR.ts index 56f029a17e..84d160e5cb 100644 --- a/src/res/translation/translation_pt_BR.ts +++ b/src/res/translation/translation_pt_BR.ts @@ -1039,8 +1039,8 @@ - Chat - Mensagens + C&hat + Me&nsagens diff --git a/src/res/translation/translation_pt_PT.qm b/src/res/translation/translation_pt_PT.qm index 2b8ec475d184f82040e304493b44e6e93ee823ca..ad6bc7762daf10253c08a76de57d42f749c88401 100644 GIT binary patch delta 4066 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 iQ7wGiHGJA^vqQX+pYq^5S6t delta 3992 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 - Chat - Mensagens + C&hat + Me&nsagens diff --git a/src/res/translation/translation_sv_SE.qm b/src/res/translation/translation_sv_SE.qm index 4c9a3cb8b28247e9c7577e3b042937596109d81b..7e7aa400dfb4b1e58237695e0269eb81964e120d 100644 GIT binary patch delta 4065 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 X<{#tc|2jB+16$rE;aHmlmSXq+aInpt delta 4002 zcmX9>dq7S37XE(w?0wEY?=o_V9-bpEMG|?Wu18NvB}7SOgr-|f9u=Kj#dzhhX&8}0 zkz^Rx7)*%7AS8wvuaHWkJo3npyLA5gPMx!VzqP*geQT|~bC3MTJ@WO|jNf2ma18_C z2V9>?I3BP%MHmS9E;r%KCKKM+P8bB(BmlxRU}y7&Z|#hif#7h!`gb5CjqtMxXC4El z9HB$@0*e;|H?`o`90V#k@H;X9$4w@TI1Ya2ufXR#@b&A#WP#wDZv#uZK;`_^(4YJppY|R^+pHW4bdS;&kl%??8n*=mw!SewRxLLO&>uC?K zObX>w4ZNctQ0}AQy?G8;&`x-tr4T+R!pCJZSaLFa7XBNoXDEEiRss=?@cn%Yz`lcD z#y%i52jfTV0po^Zd^vFv5C#9$rGUo*BmA>Z0~QYvFqs0G*#|*WsR-9EW6Gx%AkrIC z>xtYKV-ec5A93>E~E>h=3w`_ zu|V5+6x!dQL>sWz(E*UjP;}-M7;kLE!O_8BLwn%T)k-kG09?=V1{MUHu+kG%y@=Gv z)2Kd?MHf}!VFjt{>KW8dwg*xUp>B&i*u0BqZXHId$!|wCAp>vvJO&!7nedVlnE8B#ef9JwFk_cv%=O!Rpu0Qsa;^unb7f)0U4i&MENW#U&?${A3i%)1 z*q3GbnNeW-*#-q=TsW9Xfo;UFE6WYK1`Lg7c_(ba+-un04s!v;7FIr)DiG|*&Tk9` zDo(QV2TQ<4o3UGO&w*JMvYMce_=<6NSZ!np@GhR!1(kv=SSsC<8C)$n)x>Zhb_J)_ ze;}6$oY|Y%K-G_&#RX5`+CHwc&Jvg(&UJr8VSc>Lje0x?j0H>md4usbH~)_`3f`PE zrqC%jJ-GCDI$+*8ZY83@(3ksR&2*r^gUk1x1a$s|+q0BB71f0+B0b^bw_H)aEwC|% zE73avhElHN14-R{0(Uf)k}^-@N}H#G4HLLi{~~gV|KiR#kS?7jau-j`BCn}OagPIu z-tqt8o<2_moA8-?lSI18tu*8eKav9fp$qhL9E%(8`2{?OPCjW^p zFfNhF%bQ8yg)*CeD4^+QW!;X=1xpz(a}IX{b37{xyt#w)St3gcaRx@Z%QBBgVGx=# zWGj6tiNBAs?EOE2&4KLDd{?k^N7-N9>7axwvX*<%6p*8=$dVap=5aH z5)(#b^1IWkNc?8}o~2&Et_Z$h{4!!cnlHLRo$J19JF*e0_~QN4S{F^?i?0&FZq>IV#tUV`VxUI0H_2-cH3@01B463JlaQ6VCZ+_<>E5W{7VOx{U03WN6%VZi_jUp7Km z)clC1K_?;Qk2v7m3L&HUCYbXA;rltesQY~oR>oz4^$Qo)T>dZhhK|De2;%v=UdVoU zpVC||Em0UI+6y^3M2_Z}32$5?d<14D33(#bwBW3ew;~Sg>l~rz0u8bQrNRa8k3>#y z;aX%HwYJ{E&FMs1f{O{SFsWA2yU!50knazC|3ogh=E$Ydo59O(H8ATo`PYb1P=k|j#y{Ee!<$F$3x43^) zUXV$#m7S6oxoUvs5Axy!lKHGgX}f4p_Li3w%>nkmmwpos#+~wpu9Wq*(ehWXzI4z? z`Rmi+)X3W8Z#z4K`R2>t*%3>lhR8o#6W7||3bvYNf#)LyS4SCSZc$kLM!(NGsIZ80?n+d=cyPvLJ@0_HkI5m-JH=zm5r$%3Aff|TY~Hi{Xo z#8v2Z#dl%E!a}hfnZ-D1iPA7IMzQe%$t`t?V)IsaQpF9$mItNOlh-M>YW%@Md=%{! zG4G<-USUhVD3{8Wc1D$==IAKm|G$dIAI^ex%uzJh*#h3nMLsZuM$B)b=3WzVGF3D? z;zr`XBRXc((ikspM<#3*2TnW;jLQ+7O6a!tgGJxjl_cUGqW|GHq>^>*$O2x7ldZ^= z+dGIc=gWZ(y-jHRv`b8AKOjU*m~)9_cuP#U=|i|dOn#X~gW$Ee+^3an&%{*)6j+-i zuD?TRc9<Ir*4IVbtn|iZ>HyW{UcVSy#QW0D0Qcr zfHRrOulgl{4c?)&s@zB}^GsLvj9&)S8bc^bpbVqskdQZ~PdF9E=G^!&s%2Qz!7Tch#up>U5A1EsaQn-FS zlnp7wCpTN!x|^CsUAXd}QIuBbUn*{lH<*8-O8=RD_ohPCW1BOzWT+fZ(mewntGq7J zxyJh+O&{trR3Y0-!KV4CqGvxL@hnwEzoEh|+N+x7%>%X1RWShRR7Dl1i8Hm5>**{NR!cavz`v*iBPqpC51h3 zo_fgm?|{2aYEO@Ju=wffAj^KVhK^T%<1_;J=eRmyP$_WRQJwH*w{!Ylo$!F38|$rJ z^ehNOuzL0KNHE1g_1XsNl_M?Hn+A~l`c6^jjN3#bQVdsbFYpIq>eacUT4-30Xh$YX zR~M|KrBEKPJ}_JdHg}-<#P5`*ELMHSqYXIPO?~0OMVh@%>dVbks7t5S*BW%dz4`6P zhOborx&JO1@QM1NuO|)tL+XbC|0bOuF=5+z^;`aL7#W|Z>CjS50*=sh{FwvmnW3>+ z@}=UPG`8!=adp-0$cEQwY+GsO-gDOUY3e{dvqICa-+a>PDUH`yk$B&w@hKxARA1Bt zUT~xBB2^QXO@XVbG;>c_(Q0;2GxxCry+!QT#Ga(@eU@nAYj;cs^15mgZ(Re6d#Bm> znC4~b6OCj~nJB$9+q#_wODol!pj8-=sV1xzHD||=v?mPFlu!8+up6zpc!(}=dan7M z5#vGDn#&?BQ$zBlwK{`wzvk)dJH%6prha}n8NpriGT|2*f)$$9Fe(5)TdTWWNa@#W ztqY0YAD^@%3)rmfJ;{O^*=cQmt2Qu)T&+uE30Ojk)^~LlwLv%S1FVE}j)6#%nlXdog=Kwxk({uwY zY{A0&=v>vS$oQ!`wSs{TM*0%{%+-X2JM`aNDJL(T)Gxj{l$MAJ{hDnY z4O27yT16Zn&(v=&s}^z$0H@W+Vld(^p&Erxtxm-}ug-6u0G9 z{aZ5~dF7$L)g=^|G)muE90z9KnOeY7kDmk0%_5|tgrQQW#0AnbcN=N!cO8FTlenHq V(X|7m?1YZXtdoARPGT9h{|6Np!kYj9 diff --git a/src/res/translation/translation_sv_SE.ts b/src/res/translation/translation_sv_SE.ts index 7a6b9f3030..6fd44c6be4 100644 --- a/src/res/translation/translation_sv_SE.ts +++ b/src/res/translation/translation_sv_SE.ts @@ -861,8 +861,8 @@ - Chat - Chatt + C&hat + C&hatt From e5174ef461dfe507efa0798fe7869f50106cded0 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Fri, 31 Jul 2020 16:32:04 +0200 Subject: [PATCH 429/936] support MIDI control faders in headless build (#483) --- ChangeLog | 3 ++- src/audiomixerboard.cpp | 21 ++------------------- src/audiomixerboard.h | 1 - src/client.cpp | 18 +++++++++++++++++- src/client.h | 5 +++-- src/util.h | 18 ++++++++++++++++++ 6 files changed, 42 insertions(+), 24 deletions(-) diff --git a/ChangeLog b/ChangeLog index 882a0389c2..cccb8a54ee 100644 --- a/ChangeLog +++ b/ChangeLog @@ -13,10 +13,11 @@ - improve server audio mix processing for better clipping behavior +- support MIDI control faders in headless build (#483) + - bug fix: --showallservers ping column sort is alphabetic (#201) -TODO If network configuration of client changes (e.g. Wifi to LAN) we may get audio issues for a period of time #426 diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index dbb3002071..93fc530323 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -470,7 +470,7 @@ void CChannelFader::SendFaderLevelToServer ( const double dLevel, ( !bOtherChannelIsSolo || IsSolo() ) ); // emit signal for new fader gain value - emit gainValueChanged ( CalcFaderGain ( dLevel ), + emit gainValueChanged ( MathUtils::CalcFaderGain ( dLevel ), bIsMyOwnFader, bIsGroupUpdate, bSuppressServerUpdate, @@ -569,7 +569,7 @@ void CChannelFader::SetMute ( const bool bState ) if ( !bOtherChannelIsSolo || IsSolo() ) { // mute was unchecked, get current fader value and apply - emit gainValueChanged ( CalcFaderGain ( GetFaderLevel() ), bIsMyOwnFader, false, false, -1 ); // set level ratio to in invalid value + emit gainValueChanged ( MathUtils::CalcFaderGain ( GetFaderLevel() ), bIsMyOwnFader, false, false, -1 ); // set level ratio to in invalid value } } } @@ -771,23 +771,6 @@ void CChannelFader::SetChannelInfos ( const CChannelInfo& cChanInfo ) plblLabel->setToolTip ( strToolTip ); } -double CChannelFader::CalcFaderGain ( const double dValue ) -{ - // convert actual slider range in gain values - // and normalize so that maximum gain is 1 - const double dInValueRange0_1 = dValue / AUD_MIX_FADER_MAX; - - // map range from 0..1 to range -35..0 dB and calculate linear gain - if ( dValue == 0 ) - { - return 0; // -infinity - } - else - { - return pow ( 10, ( dInValueRange0_1 * 35 - 35 ) / 20 ); - } -} - /******************************************************************************\ * CAudioMixerBoard * diff --git a/src/audiomixerboard.h b/src/audiomixerboard.h index 9819b5ada8..b650622e73 100755 --- a/src/audiomixerboard.h +++ b/src/audiomixerboard.h @@ -84,7 +84,6 @@ class CChannelFader : public QObject protected: void UpdateGroupIDDependencies(); - double CalcFaderGain ( const double dValue ); void SetMute ( const bool bState ); void SetupFaderTag ( const ESkillLevel eSkillLevel ); void SendPanValueToServer ( const int iPan ); diff --git a/src/client.cpp b/src/client.cpp index f6e3580e07..cfc395f32e 100755 --- a/src/client.cpp +++ b/src/client.cpp @@ -182,7 +182,7 @@ CClient::CClient ( const quint16 iPortNumber, this, &CClient::OnSndCrdReinitRequest ); QObject::connect ( &Sound, &CSound::ControllerInFaderLevel, - this, &CClient::ControllerInFaderLevel ); + this, &CClient::OnControllerInFaderLevel ); QObject::connect ( &Socket, &CHighPrioSocket::InvalidPacketReceived, this, &CClient::OnInvalidPacketReceived ); @@ -684,6 +684,22 @@ void CClient::OnHandledSignal ( int sigNum ) #endif } +void CClient::OnControllerInFaderLevel ( int iChannelIdx, + int iValue ) +{ + // in case of a headless client the faders cannot be moved so we need + // to send the controller information directly to the server +#ifdef HEADLESS + // only apply new fader level if channel index is valid + if ( ( iChannelIdx >= 0 ) && ( iChannelIdx < MAX_NUM_CHANNELS ) ) + { + SetRemoteChanGain ( iChannelIdx, MathUtils::CalcFaderGain ( iValue ), false ); + } +#endif + + emit ControllerInFaderLevel ( iChannelIdx, iValue ); +} + void CClient::Start() { // init object diff --git a/src/client.h b/src/client.h index 4ab5970d0e..0cd61e7bd2 100755 --- a/src/client.h +++ b/src/client.h @@ -245,7 +245,7 @@ class CClient : public QObject void SetRemoteChanGain ( const int iId, const double dGain, const bool bIsMyOwnFader ); - void SetRemoteChanPan ( const int iId, const double dPan ) + void SetRemoteChanPan ( const int iId, const double dPan ) { Channel.SetRemoteChanPan ( iId, dPan ); } void SetRemoteInfo() { Channel.SetRemoteInfo ( ChannelInfo ); } @@ -372,7 +372,7 @@ class CClient : public QObject CSignalHandler* pSignalHandler; -public slots: +protected slots: void OnHandledSignal ( int sigNum ); void OnSendProtMessage ( CVector vecMessage ); void OnInvalidPacketReceived ( CHostAddress RecHostAddr ); @@ -397,6 +397,7 @@ public slots: int iNumClients ); void OnSndCrdReinitRequest ( int iSndCrdResetType ); + void OnControllerInFaderLevel ( int iChannelIdx, int iValue ); signals: void ConClientListMesReceived ( CVector vecChanInfo ); diff --git a/src/util.h b/src/util.h index e64230104e..866036f352 100755 --- a/src/util.h +++ b/src/util.h @@ -1278,6 +1278,24 @@ class MathUtils { return bXFade ? dPan : std::min ( 0.5, dPan ) * 2; } + + // calculate linear gain from fader values which are in dB + static double CalcFaderGain ( const double dValue ) + { + // convert actual slider range in gain values + // and normalize so that maximum gain is 1 + const double dInValueRange0_1 = dValue / AUD_MIX_FADER_MAX; + + // map range from 0..1 to range -35..0 dB and calculate linear gain + if ( dValue == 0 ) + { + return 0; // -infinity + } + else + { + return pow ( 10, ( dInValueRange0_1 * 35 - 35 ) / 20 ); + } + } }; From df0ec35d050343d3af03425181ab820d985e4c18 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Fri, 31 Jul 2020 19:21:31 +0200 Subject: [PATCH 430/936] added more mutex in the server (may fix #480) --- ChangeLog | 2 + src/server.cpp | 129 +++++++++++++++++++++++++------------------------ src/server.h | 4 +- 3 files changed, 68 insertions(+), 67 deletions(-) diff --git a/ChangeLog b/ChangeLog index cccb8a54ee..ebaad6f63b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -15,6 +15,8 @@ - support MIDI control faders in headless build (#483) +- added more mutex in the server (may fix #480) + - bug fix: --showallservers ping column sort is alphabetic (#201) diff --git a/src/server.cpp b/src/server.cpp index 188d00930e..fe9b50a88b 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -599,6 +599,8 @@ void CServer::SendProtMessage ( int iChID, CVector vecMessage ) void CServer::OnNewConnection ( int iChID, CHostAddress RecHostAddr ) { + QMutexLocker locker ( &Mutex ); + // inform the client about its own ID at the server (note that this // must be the first message to be sent for a new connection) vecChannels[iChID].CreateClientIDMes ( iChID ); @@ -669,6 +671,8 @@ void CServer::OnNewConnection ( int iChID, void CServer::OnServerFull ( CHostAddress RecHostAddr ) { + // note: no mutex required here + // inform the calling client that no channel is free ConnLessProtocol.CreateCLServerFullMes ( RecHostAddr ); } @@ -681,16 +685,6 @@ void CServer::OnSendCLProtMessage ( CHostAddress InetAddr, Socket.SendPacket ( vecMessage, InetAddr ); } -void CServer::OnProtcolCLMessageReceived ( int iRecID, - CVector vecbyMesBodyData, - CHostAddress RecHostAddr ) -{ - // connection less messages are always processed - ConnLessProtocol.ParseConnectionLessMessageBody ( vecbyMesBodyData, - iRecID, - RecHostAddr ); -} - void CServer::OnCLDisconnection ( CHostAddress InetAddr ) { // check if the given address is actually a client which is connected to @@ -743,7 +737,6 @@ void CServer::OnHandledSignal ( int sigNum ) #else switch ( sigNum ) { - case SIGUSR1: RequestNewRecording(); break; @@ -1442,26 +1435,36 @@ int CServer::FindChannel ( const CHostAddress& CheckAddr ) return INVALID_CHANNEL_ID; } +void CServer::OnProtcolCLMessageReceived ( int iRecID, + CVector vecbyMesBodyData, + CHostAddress RecHostAddr ) +{ + QMutexLocker locker ( &Mutex ); + + // connection less messages are always processed + ConnLessProtocol.ParseConnectionLessMessageBody ( vecbyMesBodyData, + iRecID, + RecHostAddr ); +} + void CServer::OnProtcolMessageReceived ( int iRecCounter, int iRecID, CVector vecbyMesBodyData, CHostAddress RecHostAddr ) { - Mutex.lock(); - { - // find the channel with the received address - const int iCurChanID = FindChannel ( RecHostAddr ); + QMutexLocker locker ( &Mutex ); - // if the channel exists, apply the protocol message to the channel - if ( iCurChanID != INVALID_CHANNEL_ID ) - { - vecChannels[iCurChanID].PutProtcolData ( iRecCounter, - iRecID, - vecbyMesBodyData, - RecHostAddr ); - } + // find the channel with the received address + const int iCurChanID = FindChannel ( RecHostAddr ); + + // if the channel exists, apply the protocol message to the channel + if ( iCurChanID != INVALID_CHANNEL_ID ) + { + vecChannels[iCurChanID].PutProtcolData ( iRecCounter, + iRecID, + vecbyMesBodyData, + RecHostAddr ); } - Mutex.unlock(); } bool CServer::PutAudioData ( const CVector& vecbyRecBuf, @@ -1469,62 +1472,60 @@ bool CServer::PutAudioData ( const CVector& vecbyRecBuf, const CHostAddress& HostAdr, int& iCurChanID ) { + QMutexLocker locker ( &Mutex ); + bool bNewConnection = false; // init return value bool bChanOK = true; // init with ok, might be overwritten - Mutex.lock(); + // Get channel ID ------------------------------------------------------ + // check address + iCurChanID = FindChannel ( HostAdr ); + + if ( iCurChanID == INVALID_CHANNEL_ID ) { - // Get channel ID ------------------------------------------------------ - // check address - iCurChanID = FindChannel ( HostAdr ); + // a new client is calling, look for free channel + iCurChanID = GetFreeChan(); - if ( iCurChanID == INVALID_CHANNEL_ID ) + if ( iCurChanID != INVALID_CHANNEL_ID ) { - // a new client is calling, look for free channel - iCurChanID = GetFreeChan(); + // initialize current channel by storing the calling host + // address + vecChannels[iCurChanID].SetAddress ( HostAdr ); - if ( iCurChanID != INVALID_CHANNEL_ID ) - { - // initialize current channel by storing the calling host - // address - vecChannels[iCurChanID].SetAddress ( HostAdr ); - - // reset channel info - vecChannels[iCurChanID].ResetInfo(); + // reset channel info + vecChannels[iCurChanID].ResetInfo(); - // reset the channel gains of current channel, at the same - // time reset gains of this channel ID for all other channels - for ( int i = 0; i < iMaxNumChannels; i++ ) - { - vecChannels[iCurChanID].SetGain ( i, 1.0 ); - - // other channels (we do not distinguish the case if - // i == iCurChanID for simplicity) - vecChannels[i].SetGain ( iCurChanID, 1.0 ); - } - } - else + // reset the channel gains of current channel, at the same + // time reset gains of this channel ID for all other channels + for ( int i = 0; i < iMaxNumChannels; i++ ) { - // no free channel available - bChanOK = false; + vecChannels[iCurChanID].SetGain ( i, 1.0 ); + + // other channels (we do not distinguish the case if + // i == iCurChanID for simplicity) + vecChannels[i].SetGain ( iCurChanID, 1.0 ); } } + else + { + // no free channel available + bChanOK = false; + } + } - // Put received audio data in jitter buffer ---------------------------- - if ( bChanOK ) + // Put received audio data in jitter buffer ---------------------------- + if ( bChanOK ) + { + // put packet in socket buffer + if ( vecChannels[iCurChanID].PutAudioData ( vecbyRecBuf, + iNumBytesRead, + HostAdr ) == PS_NEW_CONNECTION ) { - // put packet in socket buffer - if ( vecChannels[iCurChanID].PutAudioData ( vecbyRecBuf, - iNumBytesRead, - HostAdr ) == PS_NEW_CONNECTION ) - { - // in case we have a new connection return this information - bNewConnection = true; - } + // in case we have a new connection return this information + bNewConnection = true; } } - Mutex.unlock(); // return the state if a new connection was happening return bNewConnection; diff --git a/src/server.h b/src/server.h index 37c0b21c21..2b75cf78fe 100755 --- a/src/server.h +++ b/src/server.h @@ -458,10 +458,8 @@ public slots: void OnCLReqVersionAndOS ( CHostAddress InetAddr ) { ConnLessProtocol.CreateCLVersionAndOSMes ( InetAddr ); } - // the CreateChannelList() function access vecChannels which as to be mutexed - // since the normal server thread my change that at a random time void OnCLReqConnClientsList ( CHostAddress InetAddr ) - { QMutexLocker locker ( &Mutex ); ConnLessProtocol.CreateCLConnClientsListMes ( InetAddr, CreateChannelList() ); } + { ConnLessProtocol.CreateCLConnClientsListMes ( InetAddr, CreateChannelList() ); } void OnCLRegisterServerReceived ( CHostAddress InetAddr, CHostAddress LInetAddr, From 01d13fe49bb848d0474c4a66c1f37fb7f645f7ca Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Fri, 31 Jul 2020 21:21:07 +0200 Subject: [PATCH 431/936] small update --- ChangeLog | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index ebaad6f63b..8d380e4d4c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -9,13 +9,13 @@ - if network name/address contains spaces, they are removed now, coded by dingodoppelt (#462) -- improve compact skin by using smaller font size if the name is too long +- improve compact skin by using smaller font size - improve server audio mix processing for better clipping behavior - support MIDI control faders in headless build (#483) -- added more mutex in the server (may fix #480) +- bug fix: added more mutex in the server (should fix #480) - bug fix: --showallservers ping column sort is alphabetic (#201) From f81cad14a1a4578550ca7f541a2e77c6410aa922 Mon Sep 17 00:00:00 2001 From: dzpex <65598812+dzpex@users.noreply.github.com> Date: Fri, 31 Jul 2020 20:30:42 +0200 Subject: [PATCH 432/936] Update IT translation --- src/res/translation/translation_it_IT.qm | Bin 99448 -> 108380 bytes src/res/translation/translation_it_IT.ts | 98 +++++++++++------------ 2 files changed, 49 insertions(+), 49 deletions(-) diff --git a/src/res/translation/translation_it_IT.qm b/src/res/translation/translation_it_IT.qm index 8ebb90e0d6bbc55b781d0ef71b3b73817d527851..c18889868a1f937a6fd8bda1c0a9460e8fec90c9 100644 GIT binary patch delta 10283 zcmcgx33!a>+J4^2e6uehA`3}ATLh6t2 z;Z*BrOKnGMIi;nxqN=K@D5^ylTYKz#&*8t{@5`e7o&WFk|JVOtb4}iFzU6(N<-YId zdB5D5ra5^)<9lM0J$&EgMX!F|tm(E9OFsIxFHwWuMAVAt&`FE~h#Gq^W)P)zS4R7r z%6O~*Vwaf#{p(Fy1Fxovw`EEFxi9 zB2lxeB&;bVHf}5ln@;{Xjfh533dkVn>GKc!B!64TzKH2Wz;%vV5ZuR4fH>6G?yB2LVt^scWG zdwB_^kLydU!#zshIUS*UoCfY&K*Wwy#uOOryF-~zEG1^Dq|Dt2rR^iinz5BAxhZAM z-;Uhwq(MVqh5sY*C3w?G|h;G#8UxoWFfPu zFnuJ^xxdoHMMzEI5_)Cl8$^E|LW{>?f#Rj~_H3j?H-_Gc`wE`s((*(AFK895+;NSV zwGX|UoJXwx4*Kki1H=l3(U-H*h{iWo#v`riP%ETDx<-dL&mte4Z%L;SNjkclei{-- zRDG4sE$B_GdNEzT3&bB8E01i%Ub@-l2cqj1CR~MQL7kbgbpo-L%bEGq0z~ct3px89 zvDW=rw=rNyi&-o+={&J^dRDMnB=YK6(R45=te8~}M#?CK&B_S&!7>|rMGKEt`6HBT!JGxD#KI0;Y6h+ zDx>utsJBEFd=oT0{=O=7?*O8&m#88w;Y3yOs^;H&h-vPqdi~Ium~pJ?>8S{z?T~8N z<48@~DOK68E@I8jsw%#&M(%%A`Nm`3lliJiw=G2OiK^*jCuZoa3e0?#Xw~zoH`DTA z$Y#}2-(>K$B2BfDgHAJ5wernqqWO8MHP%i<;hR)z?tw;4j;r2x!tBM zwXGdOxGrC{BLU#;Jw)~CW{Jr7mg_=SeoYyV=c;b`09Jp# z>h8oUqObm{^4Zv@R>^%r6js)N>6bR#xz zRnRxhF;B$@K{vj&Lubwe-S`gAz1`EN)?Qyj)W)R__o@(*aPj zSifEBSMPR#6jvzYm8I%M!yr6erzxY|7o>iB(jm~PrF!Y)RHEgj>SdXKLar*+E5Cw- zo*g5PY~Tj<>Q&I~iGq6d7q5aXM)i9iBb3Gz_1dLx|js?GUD&ysy>SMd0BdX8UC;f2H7sS-xMkC~fr`4xVv;a-MRG-@c^j~(We@?0< zHhZ4>#+}|o>&K~Y4xB~wm|CzrfG$kTl1CPQO$beuAkEoA<5svn{4F6d24HKOD|A`{ z_IO4M-LI@6T6{(5VeU+%J1jg=uz^?!2|e#+laDppA`JK^Bv$Pg@~q(dnOI@4AD~&f zT^Qj?AU4M)j8sh__FQ{m)RPvX=EcJ3E=|Gjvx1uo&G56r*beY0=(JFI`Fo^hqA>nz z7ty|_gejMgpvYVjra9gMZ8r$hU9*UF8!pV;{{jT4T$nTB5cq%0D9k_o9X!tx0&i)d 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 F{{WQ0AAJA- delta 4304 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 Polish - + Polacco Swedish - + Svedese @@ -249,7 +249,7 @@ No grouping - + Non Assegnato @@ -257,7 +257,7 @@ Assign to group - + Assegna al Gruppo @@ -531,12 +531,12 @@ &Edit - &Modifica + &Modifica Cl&ear Chat History - + Cance&lla Storico Chat @@ -549,7 +549,7 @@ &Send - + &Invia Cl&ear @@ -869,7 +869,7 @@ &File - + &File @@ -909,12 +909,12 @@ &Load Mixer Channels Setup... - + &Carica Setup Mixer... &Save Mixer Channels Setup... - + &Salva Setup Mixer... @@ -934,7 +934,7 @@ Sort Channel Users by &Group - + Ordina Canali per Nome &Utente &Sort Channel Users by Name @@ -963,7 +963,7 @@ Select Channel Setup File - + Selezione File di Setup dei Canali @@ -1794,7 +1794,7 @@ Language - + Lingua @@ -2042,12 +2042,12 @@ Restart Required - + Riavvio Richiesto Please restart the application for the language change to take effect. - + Perfavore Riavvia il programma oer rendere effettive le modifiche. @@ -2478,7 +2478,7 @@ Vocal Lead - + Vocal Lead @@ -2657,43 +2657,43 @@ Display dialog to select recording directory button - + Visualizza la finestra di dialogo per selezionare il pulsante della directory di registrazione Main Recording Directory - + Cartella Principale di Registrazione Click the button to open the dialog that allows the main recording directory to be selected.The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). - + Fare clic sul pulsante per aprire la finestra di dialogo che consente di selezionare la directory di registrazione principale. Il Percorso scelto deve esistere ed non essere protetto da scrittura (autorizzare l'utente Jamulus alla creazione di cartelle e sottocartelle). Main recording directory text box (read-only) - + Casella di testo della Cartella principale di registrazione (sola lettura) The current value of the main recording directory. The chosen value must exist and be writeable (allow creation of sub-directories by the user Jamulus is running as). Click the button to open the dialog that allows the main recording directory to be selected. - + Il valore corrente della directory di registrazione principale. Il percorso scelto deve esistere e non essere protetto da scrittura (autorizzare l'utente Jamulus alla creazine di cartelle e sottocartelle). Fare clic sul pulsante per aprire la finestra di dialogo che consente di selezionare la directory di registrazione principale. Clear the recording directory button - + Bottone per cancellare il contenuto della cartella di registrazione Clear Recording Directory - + Cancella cartella di Registrazione Click the button to clear the currently selected recording directory. This will prevent recording until a new value is selected. - + Premere il pulsante per eliminare la cartella di registrazione. Ciò impedirà la registrazione fino a quando non viene selezionato un nuovo percorso valido. @@ -2738,72 +2738,72 @@ Displays the current status of the recorder. The following values are possible: - + Visualizza lo stato della registrazione. Sono applicati i seguenti valori: No recording directory has been set or the value is not useable - + Cartella per la registrazione non settata o non utilizzabile Recording has been switched off - + La Registrazione è stata disattivata by the UI checkbox - + dalla Checkbok sull'UI , either by the UI checkbox or SIGUSR2 being received - + , dalla casella di controllo dell'interfaccia utente o dalla ricezione di SIGUSR2 There is no one connected to the server to record - + Non c'è nessuno collegato al server per registrare The performers are being recorded to the specified session directory - + Gli artisti vengono registrati nella directory della sessione specificata NOTE - + NOTE If the recording directory is not useable, the problem will be displayed in place of the directory. - + Se la directory di registrazione non è utilizzabile, il problema verrà visualizzato al posto della directory. Server welcome message edit box - + Casella di modifica del messaggio di benvenuto del server Server Welcome Message - + Messaggio di Benvenuto del Server A server welcome message text is displayed in the chat window if a musician enters the server. If no message is set, the server welcome is disabled. - + Un messaggio di benvenuto del server viene visualizzato nella finestra di chat se un musicista entra nel server. Se non viene impostato alcun messaggio, il benvenuto del server è disabilitato. Type a message here. If no message is set, the server welcome is disabled. - + Digita qui un messaggio. Se non viene impostato alcun messaggio, il benvenuto del server è disabilitato. ERROR - + ERRORE Displays the current status of the recorder. @@ -2864,7 +2864,7 @@ Select Main Recording Directory - + Seleziona la directory di registrazione principale Predefined Address @@ -2883,7 +2883,7 @@ Not initialised - + Non inizializato @@ -2928,12 +2928,12 @@ Your server version is too old - + La tua versione del server è troppo vecchia Requirements not fulfilled - + Requisiti non soddisfatti @@ -2962,17 +2962,17 @@ Server Setup - + Settaggi Server Chat Window Welcome (HTML/CSS Supported) - + Finesta Chat Messaggio di Benvenuto (Supporta HTML/CSS) Options - + Opzioni @@ -3008,22 +3008,22 @@ Recording Directory - + Directory di Registrazione Enable Jam Recorder - + Abilita Registrazione Jam New Recording - Nuova Registrazione + Nuova Registrazione Language - + Lingua Central Server Address: From f554303ce7f40ca9529a5a4bdbb1a2406411bd35 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 1 Aug 2020 08:39:38 +0200 Subject: [PATCH 433/936] update --- src/res/translation/translation_de_DE.ts | 12 ++++++------ src/res/translation/translation_es_ES.ts | 12 ++++++------ src/res/translation/translation_fr_FR.ts | 12 ++++++------ src/res/translation/translation_it_IT.ts | 12 ++++++------ src/res/translation/translation_nl_NL.ts | 12 ++++++------ src/res/translation/translation_pl_PL.ts | 12 ++++++------ src/res/translation/translation_pt_BR.ts | 12 ++++++------ src/res/translation/translation_pt_PT.ts | 12 ++++++------ src/res/translation/translation_sv_SE.ts | 12 ++++++------ 9 files changed, 54 insertions(+), 54 deletions(-) diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index 1f62a51772..b0a7dceef8 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -189,32 +189,32 @@ CAudioMixerBoard - + Personal Mix at the Server Eigener Mix am Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Wenn man mit einem Server verbunden ist, dann kann man hier den eigenen Mix verstellen ohne dass man etwas daran verändert, was die anderen von mir hören. Der Titel zeigt den Servernamen an und falls bekannt den Aufnahmestatus des Servers. - + Server - + T R Y I N G T O C O N N E C T V E R B I N D U N G S A U F B A U - + RECORDING ACTIVE AUFNAHME AKTIV - + Personal Mix at: Eigener Mix am Server: diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index 132a305fdb..4f33debe4c 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -201,32 +201,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mezcla personal en el Servidor - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Estando conectado a un servidor, estos controles te permiten hacer tu mezcla personal sin afectar lo que otros escuchan de tí. El título muestra el nombre del servidor y, cuando se conoce, si está activamente grabando. - + Server Servidor - + T R Y I N G T O C O N N E C T I N T E N T A N D O C O N E C T A R - + RECORDING ACTIVE GRABACIÓN ACTIVA - + Personal Mix at: Mezcla Personal en el Servidor: diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index 9a983a8de7..bbd9eba100 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -209,32 +209,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mixage personnel au serveur - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Lorsque vous êtes connecté à un serveur, les contrôles vous permettent de régler votre mixage local sans affecter ce que les autres entendent de vous. Le titre indique le nom du serveur et, lorsqu'il est connu, s'il est en train d'enregistrer. - + Server Serveur - + T R Y I N G T O C O N N E C T T E N T A T I V E D E C O N N E X I O N - + RECORDING ACTIVE ENREGISTREMENT ACTIF - + Personal Mix at: Mixage personnel à : diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index cbe13c405f..69ba353071 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -193,32 +193,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mixer personale sul Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Quando connessi i fader permettono di regolare i volumi in locale senza influenzare l'ascolto degli altri utenti. L'intestazione mostra il nome de server, se valorizzato, e le informazioni sullo stato della sessione di registrazione se attiva. - + Server Server - + T R Y I N G T O C O N N E C T I N A T T E S A D I C O N N E S S I O N E - + RECORDING ACTIVE Sessione con Registrazione Attiva - + Personal Mix at: Mixer personale sul Server: diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index 39d7792745..e0919de816 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -193,32 +193,32 @@ CAudioMixerBoard - + Personal Mix at the Server Eigen mix op de Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Indien verbonden met de server kan hier de lokale mix ingesteld worden zonder dat hetgeen anderen van je horen wordt beïnvloed. De titel toont de servernaam en indien bekend of er audio wordt opgenomen. - + Server Server - + T R Y I N G T O C O N N E C T A A N H E T V E R B I N D E N - + RECORDING ACTIVE GELUIDSOPNAME ACTIEF - + Personal Mix at: Eigen mix op: diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index 8751ba791e..82d1af2add 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -154,32 +154,32 @@ CAudioMixerBoard - + Personal Mix at the Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. - + Server Serwer - + T R Y I N G T O C O N N E C T P R Ó B U J Ę S I Ę P O Å Ä„ C Z Y Ć - + RECORDING ACTIVE - + Personal Mix at: diff --git a/src/res/translation/translation_pt_BR.ts b/src/res/translation/translation_pt_BR.ts index 84d160e5cb..bf30597bbb 100644 --- a/src/res/translation/translation_pt_BR.ts +++ b/src/res/translation/translation_pt_BR.ts @@ -210,32 +210,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mixagem Pessoal no Servidor - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Quando conectado a um servidor, estes controles permite definir sua mixagem local sem afetar o que os outros ouvem de você. O título exibe o nome do servidor e, quando conhecido, se está ativamente gravando. - + Server Servidor - + T R Y I N G T O C O N N E C T T E N T A N D O C O N E C T A R - + RECORDING ACTIVE GRAVAÇÃO ATIVA - + Personal Mix at: Mixagem Pessoal em: diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index 0a8d0c35be..47795e94a7 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -209,32 +209,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mistura Pessoal no Servidor - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Quando ligado a um servidor, estes controles permitem que defina a sua mistura local sem afectar o que os outros ouvem. O título mostra o nome do servidor e, quando conhecido, se está gravando activamente. - + Server Servidor - + T R Y I N G T O C O N N E C T T E N T A N D O L I G A R - + RECORDING ACTIVE GRAVAÇÃO ACTIVA - + Personal Mix at: Mistura Pessoal no Servidor: diff --git a/src/res/translation/translation_sv_SE.ts b/src/res/translation/translation_sv_SE.ts index 6fd44c6be4..d77fc42a50 100644 --- a/src/res/translation/translation_sv_SE.ts +++ b/src/res/translation/translation_sv_SE.ts @@ -154,32 +154,32 @@ CAudioMixerBoard - + Personal Mix at the Server Personlig mix pÃ¥ servern - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. När du är ansluten till en server lÃ¥ter kontrollerna här ställa in din lokala mix utan att pÃ¥verka vad andra hör frÃ¥n dig. Titeln visar servernamnet och, om det är känt, om den aktivt spelar in. - + Server Server - + T R Y I N G T O C O N N E C T F Ö R S Ö K E R A N S L U T A - + RECORDING ACTIVE INSPELNING AKTIV - + Personal Mix at: Personlig mix pÃ¥: From 5865702577fe78114701392db5053135f732a55d Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 1 Aug 2020 08:58:48 +0200 Subject: [PATCH 434/936] change git version numbering to avoid confusion (#475) --- ChangeLog | 2 +- Jamulus.pro | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8d380e4d4c..74a37ed6d2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,7 @@ -3.5.10git +3.5.9git <- NOTE: the release version number will be 3.5.10 - do not change the server list order if the mouse is over the table to avoid selecting an incorrect server on a mouse double click (#293) diff --git a/Jamulus.pro b/Jamulus.pro index 39b5b01b22..d7697e6641 100755 --- a/Jamulus.pro +++ b/Jamulus.pro @@ -1,4 +1,4 @@ -VERSION = 3.5.10git +VERSION = 3.5.9git # use target name which does not use a captital letter at the beginning contains(CONFIG, "noupcasename") { From f67dbd1290a579466ff1f315457ad9090b39747e Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 1 Aug 2020 09:23:54 +0200 Subject: [PATCH 435/936] clean up raspberry pi script --- distributions/raspijamulus.sh | 63 +++-------------------------------- 1 file changed, 5 insertions(+), 58 deletions(-) diff --git a/distributions/raspijamulus.sh b/distributions/raspijamulus.sh index 1a38d146e4..f4a1be07c0 100755 --- a/distributions/raspijamulus.sh +++ b/distributions/raspijamulus.sh @@ -77,26 +77,6 @@ else fi fi -# optional: FluidSynth synthesizer -if [ "$1" == "opt" ]; then - if [ -d "fluidsynth" ]; then - echo "The Fluidsynth directory is present, we assume it is compiled and ready to use. If not, delete the fluidsynth directory and call this script again." - else -#TODO if the normal jack package is not installed, fluidsynth compiles without jack support - wget https://github.com/FluidSynth/fluidsynth/archive/v2.0.6.tar.gz -O fluidsynth.tar.gz - tar -xzf fluidsynth.tar.gz - rm fluidsynth.tar.gz - mv fluidsynth-* fluidsynth - cd fluidsynth - mkdir build - cd build - cmake .. - make -j${NCORES} - wget https://data.musical-artifacts.com/hammersound/claudio_piano.sf2 - cd ../.. - fi -fi - # compile Jamulus with external Opus library cd .. qmake "CONFIG+=opus_shared_lib raspijamulus headless" "INCLUDEPATH+=distributions/${OPUS}/include" "QMAKE_LIBDIR+=distributions/${OPUS}/.libs" "INCLUDEPATH+=distributions/jack2/common" "QMAKE_LIBDIR+=distributions/jack2/build/common" Jamulus.pro @@ -127,42 +107,9 @@ fi # start Jack2 and Jamulus in headless mode export LD_LIBRARY_PATH="distributions/${OPUS}/.libs:distributions/jack2/build:distributions/jack2/build/common" +distributions/jack2/build/jackd -R -T --silent -P70 -p16 -t2000 -d alsa -dhw:${ADEVICE} -p 128 -n 3 -r 48000 -s & +./Jamulus -n -i ${JAMULUSINIFILE} -c jamulus.fischvolk.de & -if [ "$1" == "opt" ]; then - distributions/jack2/build/jackd -R -T --silent -P70 -p16 -t2000 -d alsa -dhw:${ADEVICE} -p 256 -n 3 -r 48000 -s & - ./Jamulus -n -i ${JAMULUSINIFILE} -j -c jamulus.fischvolk.de &>/dev/null & - sleep 1 - ./distributions/fluidsynth/build/src/fluidsynth -o synth.polyphony=25 -s -i -a jack -g 0.4 distributions/fluidsynth/build/claudio_piano.sf2 &>/dev/null & - sleep 3 - ./distributions/jack2/build/example-clients/jack_connect "Jamulus:output left" system:playback_1 - ./distributions/jack2/build/example-clients/jack_connect "Jamulus:output right" system:playback_2 - ./distributions/jack2/build/example-clients/jack_connect fluidsynth:left "Jamulus:input left" - ./distributions/jack2/build/example-clients/jack_connect fluidsynth:right "Jamulus:input right" - aconnect 'USB-MIDI' 128 - - # if hyperion is installed, set red color - if [ ! -z "$(command -v hyperion-remote)" ]; then - hyperion-remote -c red - fi - - # watchdog: if MIDI device is turned off, shutdown Jamulus - while [ ! -z "$(amidi -l|grep "USB-MIDI")" ]; do - sleep 1 - done - killall Jamulus - killall fluidsynth - echo "Cleaned up jackd, Jamulus and fluidsynth" - - # if hyperion is installed, reset color - if [ ! -z "$(command -v hyperion-remote)" ]; then - hyperion-remote --color black - hyperion-remote --clearall - fi -else - distributions/jack2/build/jackd -R -T --silent -P70 -p16 -t2000 -d alsa -dhw:${ADEVICE} -p 128 -n 3 -r 48000 -s & - ./Jamulus -n -i ${JAMULUSINIFILE} -c jamulus.fischvolk.de & - echo "###---------- PRESS ANY KEY TO TERMINATE THE JAMULUS SESSION ---------###" - read -n 1 -s -r -p "" - killall Jamulus -fi - +echo "###---------- PRESS ANY KEY TO TERMINATE THE JAMULUS SESSION ---------###" +read -n 1 -s -r -p "" +killall Jamulus From 73ad939352ae776a24de4575186f712edb5b7061 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 2 Aug 2020 11:07:46 +0200 Subject: [PATCH 436/936] remove the "multithreading" qmake CONFIG parameter since OMP does not work for the Jamulus server because of too much threading overhead --- Jamulus.pro | 11 ----------- src/server.cpp | 9 --------- 2 files changed, 20 deletions(-) diff --git a/Jamulus.pro b/Jamulus.pro index d7697e6641..3f3d550170 100755 --- a/Jamulus.pro +++ b/Jamulus.pro @@ -6,17 +6,6 @@ contains(CONFIG, "noupcasename") { TARGET = jamulus } -# support multi-threading with OMP if requested -contains(CONFIG, "multithreading") { - unix { - message(The OpenMP multithreading is enabled.) - message(NOTE THAT THE OpenMP IMPLEMENTATION IS STILL EXPERIMENTAL AND MAY NOT BE STABLE.) - DEFINES += USE_OMP - QMAKE_CXXFLAGS += -fopenmp - QMAKE_LFLAGS += -fopenmp - } -} - CONFIG += qt \ thread \ release diff --git a/src/server.cpp b/src/server.cpp index fe9b50a88b..b2bc22c7c3 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -992,15 +992,6 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE vecChannelLevels ); } -#ifdef USE_OMP -// TODO This does not work as expected, the CPU is at high levels even if not much work is to be done. So we -// have an issue using OMP in the OnTimer() function. Even if #pragma omp parallel for is used on a trivial -// for loop for testing, still the CPU usage goes to very high values -> What is the cause of this issue? -// NOTE Most probably it is the overhead of threads creation/destruction which causes this effect. -// See https://software.intel.com/content/www/us/en/develop/articles/performance-obstacles-for-threading-how-do-they-affect-openmp-code.html -// "[...] overhead numbers are high enough that it doesn’t make sense to thread that code. In those cases, we’re better off leaving the code in its original serial form." -# pragma omp parallel for -#endif for ( int i = 0; i < iNumClients; i++ ) { int iClientFrameSizeSamples = 0; // initialize to avoid a compiler warning From ac0eb73bc64329dc2e3a558821d40e40b9402bc0 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 2 Aug 2020 11:23:21 +0200 Subject: [PATCH 437/936] some small re-ordering of code in the server --- src/server.cpp | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/server.cpp b/src/server.cpp index b2bc22c7c3..a78b820e52 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -1003,16 +1003,6 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE // get number of audio channels of current channel const int iCurNumAudChan = vecNumAudioChannels[i]; - // export the audio data for recording purpose - if ( JamController.GetRecordingEnabled() ) - { - emit AudioFrame ( iCurChanID, - vecChannels[iCurChanID].GetName(), - vecChannels[iCurChanID].GetAddress(), - iCurNumAudChan, - vecvecsData[i] ); - } - // generate a separate mix for each channel // actual processing of audio data -> mix ProcessData ( vecvecsData, @@ -1096,17 +1086,27 @@ opus_custom_encoder_ctl ( CurOpusEncoder, vecvecbyCodedData[i], iCeltNumCodedBytes ); } + } - // update socket buffer size - vecChannels[iCurChanID].UpdateSocketBufferSize(); + // update socket buffer size + vecChannels[iCurChanID].UpdateSocketBufferSize(); - // send channel levels - if ( bSendChannelLevels && vecChannels[iCurChanID].ChannelLevelsRequired() ) - { - ConnLessProtocol.CreateCLChannelLevelListMes ( vecChannels[iCurChanID].GetAddress(), - vecChannelLevels, - iNumClients ); - } + // send channel levels + if ( bSendChannelLevels && vecChannels[iCurChanID].ChannelLevelsRequired() ) + { + ConnLessProtocol.CreateCLChannelLevelListMes ( vecChannels[iCurChanID].GetAddress(), + vecChannelLevels, + iNumClients ); + } + + // export the audio data for recording purpose + if ( JamController.GetRecordingEnabled() ) + { + emit AudioFrame ( iCurChanID, + vecChannels[iCurChanID].GetName(), + vecChannels[iCurChanID].GetAddress(), + iCurNumAudChan, + vecvecsData[i] ); } } } From ed38efa2c4518c59a190bf58a83288bfa75f05ea Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 2 Aug 2020 13:19:05 +0200 Subject: [PATCH 438/936] backup checkin -> does not compile --- src/server.cpp | 144 +++++++++++++++++++++++++++---------------------- src/server.h | 23 +++++--- 2 files changed, 95 insertions(+), 72 deletions(-) diff --git a/src/server.cpp b/src/server.cpp index a78b820e52..1634b33a4b 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -995,7 +995,7 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE for ( int i = 0; i < iNumClients; i++ ) { int iClientFrameSizeSamples = 0; // initialize to avoid a compiler warning - OpusCustomEncoder* CurOpusEncoder; + OpusCustomEncoder* pCurOpusEncoder; // get actual ID of current channel const int iCurChanID = vecChanIDsCurConChan[i]; @@ -1003,17 +1003,6 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE // get number of audio channels of current channel const int iCurNumAudChan = vecNumAudioChannels[i]; - // generate a separate mix for each channel - // actual processing of audio data -> mix - ProcessData ( vecvecsData, - vecvecdGains[i], - vecvecdPannings[i], - vecNumAudioChannels, - vecvecsIntermediateProcBuf[i], - vecvecsSendData[i], - iCurNumAudChan, - iNumClients ); - // get current number of CELT coded bytes const int iCeltNumCodedBytes = vecChannels[iCurChanID].GetNetwFrameSize(); @@ -1024,11 +1013,11 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE if ( vecNumAudioChannels[i] == 1 ) { - CurOpusEncoder = OpusEncoderMono[iCurChanID]; + pCurOpusEncoder = OpusEncoderMono[iCurChanID]; } else { - CurOpusEncoder = OpusEncoderStereo[iCurChanID]; + pCurOpusEncoder = OpusEncoderStereo[iCurChanID]; } } else if ( vecAudioComprType[i] == CT_OPUS64 ) @@ -1037,56 +1026,35 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE if ( vecNumAudioChannels[i] == 1 ) { - CurOpusEncoder = Opus64EncoderMono[iCurChanID]; + pCurOpusEncoder = Opus64EncoderMono[iCurChanID]; } else { - CurOpusEncoder = Opus64EncoderStereo[iCurChanID]; + pCurOpusEncoder = Opus64EncoderStereo[iCurChanID]; } } else { - CurOpusEncoder = nullptr; + pCurOpusEncoder = nullptr; } - // If the server frame size is smaller than the received OPUS frame size, we need a conversion - // buffer which stores the large buffer. - // Note that we have a shortcut here. If the conversion buffer is not needed, the boolean flag - // is false and the Get() function is not called at all. Therefore if the buffer is not needed - // we do not spend any time in the function but go directly inside the if condition. - if ( ( vecUseDoubleSysFraSizeConvBuf[i] == 0 ) || - DoubleFrameSizeConvBufOut[iCurChanID].Put ( vecvecsSendData[i], SYSTEM_FRAME_SIZE_SAMPLES * vecNumAudioChannels[i] ) ) - { - if ( vecUseDoubleSysFraSizeConvBuf[i] != 0 ) - { - // get the large frame from the conversion buffer - DoubleFrameSizeConvBufOut[iCurChanID].GetAll ( vecvecsSendData[i], DOUBLE_SYSTEM_FRAME_SIZE_SAMPLES * vecNumAudioChannels[i] ); - } - - for ( int iB = 0; iB < vecNumFrameSizeConvBlocks[i]; iB++ ) - { - // OPUS encoding - if ( CurOpusEncoder != nullptr ) - { -// TODO find a better place than this: the setting does not change all the time -// so for speed optimization it would be better to set it only if the network -// frame size is changed -opus_custom_encoder_ctl ( CurOpusEncoder, - OPUS_SET_BITRATE ( CalcBitRateBitsPerSecFromCodedBytes ( iCeltNumCodedBytes, iClientFrameSizeSamples ) ) ); - - iUnused = opus_custom_encode ( CurOpusEncoder, - &vecvecsSendData[i][iB * SYSTEM_FRAME_SIZE_SAMPLES * vecNumAudioChannels[i]], - iClientFrameSizeSamples, - &vecvecbyCodedData[i][0], - iCeltNumCodedBytes ); - } - - // send separate mix to current clients - vecChannels[iCurChanID].PrepAndSendPacket ( &Socket, - vecvecbyCodedData[i], - iCeltNumCodedBytes ); - } - } + // generate a separate mix for each channel + // actual processing of audio data -> mix + MixEncodeTransmitData ( vecvecsData, + vecvecdGains[i], + vecvecdPannings[i], + vecNumAudioChannels, + vecvecsIntermediateProcBuf[i], + vecvecbyCodedData[i], + DoubleFrameSizeConvBufOut[iCurChanID], + vecUseDoubleSysFraSizeConvBuf[i], + vecNumFrameSizeConvBlocks[i], + pCurOpusEncoder, + iCeltNumCodedBytes, + iClientFrameSizeSamples, + iCurNumAudChan, + iNumClients, + vecvecsSendData[i] ); // update socket buffer size vecChannels[iCurChanID].UpdateSocketBufferSize(); @@ -1121,16 +1089,23 @@ opus_custom_encoder_ctl ( CurOpusEncoder, } /// @brief Mix all audio data from all clients together. -void CServer::ProcessData ( const CVector >& vecvecsData, - const CVector& vecdGains, - const CVector& vecdPannings, - const CVector& vecNumAudioChannels, - CVector& vecdIntermProcBuf, - CVector& vecsOutData, - const int iCurNumAudChan, - const int iNumClients ) +void CServer::MixEncodeTransmitData ( const CVector >& vecvecsData, + const CVector& vecdGains, + const CVector& vecdPannings, + const CVector& vecNumAudioChannels, + CVector& vecdIntermProcBuf, + CVector& vecbyCodedData, + CConvBuf& DoubleFrameSizeConvBufOut, + const int iUseDoubleSysFraSizeConvBuf, + const int iNumFrameSizeConvBlocks, + OpusCustomEncoder* pCurOpusEncoder, + const int iCeltNumCodedBytes, + const int iClientFrameSizeSamples, + const int iCurNumAudChan, + const int iNumClients, + CVector& vecsOutData ) { - int i, j, k; + int i, j, k, iUnused; // init intermediate processing vector with zeros since we mix all channels on that vector vecdIntermProcBuf.Reset ( 0 ); @@ -1262,6 +1237,47 @@ void CServer::ProcessData ( const CVector >& vecvecsData, vecsOutData[i] = Double2Short ( vecdIntermProcBuf[i] ); } } + + // If the server frame size is smaller than the received OPUS frame size, we need a conversion + // buffer which stores the large buffer. + // Note that we have a shortcut here. If the conversion buffer is not needed, the boolean flag + // is false and the Get() function is not called at all. Therefore if the buffer is not needed + // we do not spend any time in the function but go directly inside the if condition. + if ( ( iUseDoubleSysFraSizeConvBuf == 0 ) || + DoubleFrameSizeConvBufOut.Put ( vecsOutData, SYSTEM_FRAME_SIZE_SAMPLES * iCurNumAudChan ) ) + { + if ( iUseDoubleSysFraSizeConvBuf != 0 ) + { + // get the large frame from the conversion buffer + DoubleFrameSizeConvBufOut.GetAll ( vecsOutData, DOUBLE_SYSTEM_FRAME_SIZE_SAMPLES * iCurNumAudChan ); + } + + for ( int iB = 0; iB < iNumFrameSizeConvBlocks; iB++ ) + { + // OPUS encoding + if ( pCurOpusEncoder != nullptr ) + { +// TODO find a better place than this: the setting does not change all the time +// so for speed optimization it would be better to set it only if the network +// frame size is changed +opus_custom_encoder_ctl ( pCurOpusEncoder, + OPUS_SET_BITRATE ( CalcBitRateBitsPerSecFromCodedBytes ( iCeltNumCodedBytes, iClientFrameSizeSamples ) ) ); + + iUnused = opus_custom_encode ( pCurOpusEncoder, + &vecsOutData[iB * SYSTEM_FRAME_SIZE_SAMPLES * iCurNumAudChan], + iClientFrameSizeSamples, + &vecbyCodedData[0], + iCeltNumCodedBytes ); + } + + // send separate mix to current clients + vecChannels[iCurChanID].PrepAndSendPacket ( &Socket, + vecbyCodedData, + iCeltNumCodedBytes ); + } + } + + Q_UNUSED ( iUnused ) } CVector CServer::CreateChannelList() diff --git a/src/server.h b/src/server.h index 2b75cf78fe..010cd5e182 100755 --- a/src/server.h +++ b/src/server.h @@ -301,14 +301,21 @@ class CServer : void WriteHTMLChannelList(); - void ProcessData ( const CVector >& vecvecsData, - const CVector& vecdGains, - const CVector& vecdPannings, - const CVector& vecNumAudioChannels, - CVector& vecdIntermProcBuf, - CVector& vecsOutData, - const int iCurNumAudChan, - const int iNumClients ); + void MixEncodeTransmitData ( const CVector >& vecvecsData, + const CVector& vecdGains, + const CVector& vecdPannings, + const CVector& vecNumAudioChannels, + CVector& vecdIntermProcBuf, + CVector& vecbyCodedData, + CConvBuf& DoubleFrameSizeConvBufOut, + const int iUseDoubleSysFraSizeConvBuf, + const int iNumFrameSizeConvBlocks, + OpusCustomEncoder* pCurOpusEncoder, + const int iCeltNumCodedBytes, + const int iClientFrameSizeSamples, + const int iCurNumAudChan, + const int iNumClients, + CVector& vecsOutData ); virtual void customEvent ( QEvent* pEvent ); From 3e21776fa506358d7b5254efc4d583e58e04c75a Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 2 Aug 2020 19:47:45 +0200 Subject: [PATCH 439/936] fix compilation errors --- src/server.cpp | 8 +++++--- src/server.h | 1 + 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/server.cpp b/src/server.cpp index 1634b33a4b..3060bad226 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -1046,6 +1046,7 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE vecNumAudioChannels, vecvecsIntermediateProcBuf[i], vecvecbyCodedData[i], + vecChannels[iCurChanID], DoubleFrameSizeConvBufOut[iCurChanID], vecUseDoubleSysFraSizeConvBuf[i], vecNumFrameSizeConvBlocks[i], @@ -1095,6 +1096,7 @@ void CServer::MixEncodeTransmitData ( const CVector >& vecvecsD const CVector& vecNumAudioChannels, CVector& vecdIntermProcBuf, CVector& vecbyCodedData, + CChannel& Channel, CConvBuf& DoubleFrameSizeConvBufOut, const int iUseDoubleSysFraSizeConvBuf, const int iNumFrameSizeConvBlocks, @@ -1271,9 +1273,9 @@ opus_custom_encoder_ctl ( pCurOpusEncoder, } // send separate mix to current clients - vecChannels[iCurChanID].PrepAndSendPacket ( &Socket, - vecbyCodedData, - iCeltNumCodedBytes ); + Channel.PrepAndSendPacket ( &Socket, + vecbyCodedData, + iCeltNumCodedBytes ); } } diff --git a/src/server.h b/src/server.h index 010cd5e182..3655b9f033 100755 --- a/src/server.h +++ b/src/server.h @@ -307,6 +307,7 @@ class CServer : const CVector& vecNumAudioChannels, CVector& vecdIntermProcBuf, CVector& vecbyCodedData, + CChannel& Channel, CConvBuf& DoubleFrameSizeConvBufOut, const int iUseDoubleSysFraSizeConvBuf, const int iNumFrameSizeConvBlocks, From 2888af4974f757f2bebab0b1cb12c2f39a9d25c7 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 2 Aug 2020 20:34:34 +0200 Subject: [PATCH 440/936] small fix --- src/server.cpp | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/server.cpp b/src/server.cpp index 3060bad226..bb3e73f1ef 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -995,7 +995,7 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE for ( int i = 0; i < iNumClients; i++ ) { int iClientFrameSizeSamples = 0; // initialize to avoid a compiler warning - OpusCustomEncoder* pCurOpusEncoder; + OpusCustomEncoder* pCurOpusEncoder = nullptr; // get actual ID of current channel const int iCurChanID = vecChanIDsCurConChan[i]; @@ -1033,13 +1033,9 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE pCurOpusEncoder = Opus64EncoderStereo[iCurChanID]; } } - else - { - pCurOpusEncoder = nullptr; - } - // generate a separate mix for each channel - // actual processing of audio data -> mix + // generate a separate mix for each channel, OPUS encode the + // audio data and transmit the network packet MixEncodeTransmitData ( vecvecsData, vecvecdGains[i], vecvecdPannings[i], From c22792495f95188080f94b7321696446d66b55c3 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 2 Aug 2020 21:09:31 +0200 Subject: [PATCH 441/936] rename a variable --- src/server.cpp | 26 ++++++++++++-------------- src/server.h | 4 ++-- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/src/server.cpp b/src/server.cpp index bb3e73f1ef..3de42c41af 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -1041,6 +1041,7 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE vecvecdPannings[i], vecNumAudioChannels, vecvecsIntermediateProcBuf[i], + vecvecsSendData[i], vecvecbyCodedData[i], vecChannels[iCurChanID], DoubleFrameSizeConvBufOut[iCurChanID], @@ -1050,8 +1051,7 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE iCeltNumCodedBytes, iClientFrameSizeSamples, iCurNumAudChan, - iNumClients, - vecvecsSendData[i] ); + iNumClients ); // update socket buffer size vecChannels[iCurChanID].UpdateSocketBufferSize(); @@ -1091,6 +1091,7 @@ void CServer::MixEncodeTransmitData ( const CVector >& vecvecsD const CVector& vecdPannings, const CVector& vecNumAudioChannels, CVector& vecdIntermProcBuf, + CVector& vecsSendData, CVector& vecbyCodedData, CChannel& Channel, CConvBuf& DoubleFrameSizeConvBufOut, @@ -1100,8 +1101,7 @@ void CServer::MixEncodeTransmitData ( const CVector >& vecvecsD const int iCeltNumCodedBytes, const int iClientFrameSizeSamples, const int iCurNumAudChan, - const int iNumClients, - CVector& vecsOutData ) + const int iNumClients ) { int i, j, k, iUnused; @@ -1164,7 +1164,7 @@ void CServer::MixEncodeTransmitData ( const CVector >& vecvecsD // convert from double to short with clipping for ( i = 0; i < iServerFrameSizeSamples; i++ ) { - vecsOutData[i] = Double2Short ( vecdIntermProcBuf[i] ); + vecsSendData[i] = Double2Short ( vecdIntermProcBuf[i] ); } } else @@ -1232,7 +1232,7 @@ void CServer::MixEncodeTransmitData ( const CVector >& vecvecsD // convert from double to short with clipping for ( i = 0; i < ( 2 * iServerFrameSizeSamples ); i++ ) { - vecsOutData[i] = Double2Short ( vecdIntermProcBuf[i] ); + vecsSendData[i] = Double2Short ( vecdIntermProcBuf[i] ); } } @@ -1242,12 +1242,12 @@ void CServer::MixEncodeTransmitData ( const CVector >& vecvecsD // is false and the Get() function is not called at all. Therefore if the buffer is not needed // we do not spend any time in the function but go directly inside the if condition. if ( ( iUseDoubleSysFraSizeConvBuf == 0 ) || - DoubleFrameSizeConvBufOut.Put ( vecsOutData, SYSTEM_FRAME_SIZE_SAMPLES * iCurNumAudChan ) ) + DoubleFrameSizeConvBufOut.Put ( vecsSendData, SYSTEM_FRAME_SIZE_SAMPLES * iCurNumAudChan ) ) { if ( iUseDoubleSysFraSizeConvBuf != 0 ) { // get the large frame from the conversion buffer - DoubleFrameSizeConvBufOut.GetAll ( vecsOutData, DOUBLE_SYSTEM_FRAME_SIZE_SAMPLES * iCurNumAudChan ); + DoubleFrameSizeConvBufOut.GetAll ( vecsSendData, DOUBLE_SYSTEM_FRAME_SIZE_SAMPLES * iCurNumAudChan ); } for ( int iB = 0; iB < iNumFrameSizeConvBlocks; iB++ ) @@ -1255,14 +1255,12 @@ void CServer::MixEncodeTransmitData ( const CVector >& vecvecsD // OPUS encoding if ( pCurOpusEncoder != nullptr ) { -// TODO find a better place than this: the setting does not change all the time -// so for speed optimization it would be better to set it only if the network -// frame size is changed -opus_custom_encoder_ctl ( pCurOpusEncoder, - OPUS_SET_BITRATE ( CalcBitRateBitsPerSecFromCodedBytes ( iCeltNumCodedBytes, iClientFrameSizeSamples ) ) ); +// TODO find a better place than this: the setting does not change all the time so for speed +// optimization it would be better to set it only if the network frame size is changed +opus_custom_encoder_ctl ( pCurOpusEncoder, OPUS_SET_BITRATE ( CalcBitRateBitsPerSecFromCodedBytes ( iCeltNumCodedBytes, iClientFrameSizeSamples ) ) ); iUnused = opus_custom_encode ( pCurOpusEncoder, - &vecsOutData[iB * SYSTEM_FRAME_SIZE_SAMPLES * iCurNumAudChan], + &vecsSendData[iB * SYSTEM_FRAME_SIZE_SAMPLES * iCurNumAudChan], iClientFrameSizeSamples, &vecbyCodedData[0], iCeltNumCodedBytes ); diff --git a/src/server.h b/src/server.h index 3655b9f033..f1d0b6d2cd 100755 --- a/src/server.h +++ b/src/server.h @@ -306,6 +306,7 @@ class CServer : const CVector& vecdPannings, const CVector& vecNumAudioChannels, CVector& vecdIntermProcBuf, + CVector& vecsSendData, CVector& vecbyCodedData, CChannel& Channel, CConvBuf& DoubleFrameSizeConvBufOut, @@ -315,8 +316,7 @@ class CServer : const int iCeltNumCodedBytes, const int iClientFrameSizeSamples, const int iCurNumAudChan, - const int iNumClients, - CVector& vecsOutData ); + const int iNumClients ); virtual void customEvent ( QEvent* pEvent ); From e72d1508ee9092ba50e0bf0fdcf3f1005488947d Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 3 Aug 2020 19:52:47 +0200 Subject: [PATCH 442/936] some re-ordering --- src/server.cpp | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/server.cpp b/src/server.cpp index 3de42c41af..99859fa105 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -1003,6 +1003,27 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE // get number of audio channels of current channel const int iCurNumAudChan = vecNumAudioChannels[i]; + // update socket buffer size + vecChannels[iCurChanID].UpdateSocketBufferSize(); + + // send channel levels + if ( bSendChannelLevels && vecChannels[iCurChanID].ChannelLevelsRequired() ) + { + ConnLessProtocol.CreateCLChannelLevelListMes ( vecChannels[iCurChanID].GetAddress(), + vecChannelLevels, + iNumClients ); + } + + // export the audio data for recording purpose + if ( JamController.GetRecordingEnabled() ) + { + emit AudioFrame ( iCurChanID, + vecChannels[iCurChanID].GetName(), + vecChannels[iCurChanID].GetAddress(), + iCurNumAudChan, + vecvecsData[i] ); + } + // get current number of CELT coded bytes const int iCeltNumCodedBytes = vecChannels[iCurChanID].GetNetwFrameSize(); @@ -1052,27 +1073,6 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE iClientFrameSizeSamples, iCurNumAudChan, iNumClients ); - - // update socket buffer size - vecChannels[iCurChanID].UpdateSocketBufferSize(); - - // send channel levels - if ( bSendChannelLevels && vecChannels[iCurChanID].ChannelLevelsRequired() ) - { - ConnLessProtocol.CreateCLChannelLevelListMes ( vecChannels[iCurChanID].GetAddress(), - vecChannelLevels, - iNumClients ); - } - - // export the audio data for recording purpose - if ( JamController.GetRecordingEnabled() ) - { - emit AudioFrame ( iCurChanID, - vecChannels[iCurChanID].GetName(), - vecChannels[iCurChanID].GetAddress(), - iCurNumAudChan, - vecvecsData[i] ); - } } } else @@ -1085,7 +1085,7 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE Q_UNUSED ( iUnused ) } -/// @brief Mix all audio data from all clients together. +/// @brief Mix all audio data from all clients together, encode and transmit void CServer::MixEncodeTransmitData ( const CVector >& vecvecsData, const CVector& vecdGains, const CVector& vecdPannings, From 0d5ce4b62b510c3bfdd74aefc6b0f0ff74e12849 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 3 Aug 2020 22:36:47 +0200 Subject: [PATCH 443/936] backup checking, compiles but not tested -> quick hack test --- ChangeLog | 1 + Jamulus.pro | 1 + src/server.cpp | 50 ++++++++++++++++++++++++++++++++------------------ src/server.h | 11 +++++++++++ 4 files changed, 45 insertions(+), 18 deletions(-) diff --git a/ChangeLog b/ChangeLog index 74a37ed6d2..7a515b2f0c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -20,6 +20,7 @@ - bug fix: --showallservers ping column sort is alphabetic (#201) +TODO QT += concurrent added -> Windows deployment must be adjusted! diff --git a/Jamulus.pro b/Jamulus.pro index 3f3d550170..2ae267dcd0 100755 --- a/Jamulus.pro +++ b/Jamulus.pro @@ -11,6 +11,7 @@ CONFIG += qt \ release QT += network \ + concurrent \ xml contains(CONFIG, "headless") { diff --git a/src/server.cpp b/src/server.cpp index 99859fa105..0ca900ba84 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -1055,8 +1055,18 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE } } +// TEST +QFuture future = QtConcurrent::run ( this, &CServer::MixEncodeTransmitData, + i, + iCurChanID, + pCurOpusEncoder, + iClientFrameSizeSamples, + iNumClients ); + + // generate a separate mix for each channel, OPUS encode the // audio data and transmit the network packet +/* MixEncodeTransmitData ( vecvecsData, vecvecdGains[i], vecvecdPannings[i], @@ -1073,6 +1083,7 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE iClientFrameSizeSamples, iCurNumAudChan, iNumClients ); +*/ } } else @@ -1086,23 +1097,26 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE } /// @brief Mix all audio data from all clients together, encode and transmit -void CServer::MixEncodeTransmitData ( const CVector >& vecvecsData, - const CVector& vecdGains, - const CVector& vecdPannings, - const CVector& vecNumAudioChannels, - CVector& vecdIntermProcBuf, - CVector& vecsSendData, - CVector& vecbyCodedData, - CChannel& Channel, - CConvBuf& DoubleFrameSizeConvBufOut, - const int iUseDoubleSysFraSizeConvBuf, - const int iNumFrameSizeConvBlocks, - OpusCustomEncoder* pCurOpusEncoder, - const int iCeltNumCodedBytes, - const int iClientFrameSizeSamples, - const int iCurNumAudChan, - const int iNumClients ) +void CServer::MixEncodeTransmitData ( const int iIdx, + const int iCurChanID, + OpusCustomEncoder* pCurOpusEncoder, + const int iClientFrameSizeSamples, + const int iNumClients ) { + +// TEST +const CVector& vecdGains = vecvecdGains[iIdx]; +const CVector& vecdPannings = vecvecdPannings[iIdx]; +CVector& vecdIntermProcBuf = vecvecsIntermediateProcBuf[iIdx]; +CVector& vecsSendData = vecvecsSendData[iIdx]; +CVector& vecbyCodedData = vecvecbyCodedData[iIdx]; +CChannel& Channel = vecChannels[iCurChanID]; +CConvBuf* pDoubleFrameSizeConvBufOut = &DoubleFrameSizeConvBufOut[iCurChanID]; +const int iUseDoubleSysFraSizeConvBuf = vecUseDoubleSysFraSizeConvBuf[iIdx]; +const int iNumFrameSizeConvBlocks = vecNumFrameSizeConvBlocks[iIdx]; +const int iCurNumAudChan = vecNumAudioChannels[iIdx]; +const int iCeltNumCodedBytes = vecChannels[iCurChanID].GetNetwFrameSize(); + int i, j, k, iUnused; // init intermediate processing vector with zeros since we mix all channels on that vector @@ -1242,12 +1256,12 @@ void CServer::MixEncodeTransmitData ( const CVector >& vecvecsD // is false and the Get() function is not called at all. Therefore if the buffer is not needed // we do not spend any time in the function but go directly inside the if condition. if ( ( iUseDoubleSysFraSizeConvBuf == 0 ) || - DoubleFrameSizeConvBufOut.Put ( vecsSendData, SYSTEM_FRAME_SIZE_SAMPLES * iCurNumAudChan ) ) + pDoubleFrameSizeConvBufOut->Put ( vecsSendData, SYSTEM_FRAME_SIZE_SAMPLES * iCurNumAudChan ) ) { if ( iUseDoubleSysFraSizeConvBuf != 0 ) { // get the large frame from the conversion buffer - DoubleFrameSizeConvBufOut.GetAll ( vecsSendData, DOUBLE_SYSTEM_FRAME_SIZE_SAMPLES * iCurNumAudChan ); + pDoubleFrameSizeConvBufOut->GetAll ( vecsSendData, DOUBLE_SYSTEM_FRAME_SIZE_SAMPLES * iCurNumAudChan ); } for ( int iB = 0; iB < iNumFrameSizeConvBlocks; iB++ ) diff --git a/src/server.h b/src/server.h index f1d0b6d2cd..c04e8f8ecd 100755 --- a/src/server.h +++ b/src/server.h @@ -29,6 +29,7 @@ #include #include #include +#include #include #ifdef USE_OPUS_SHARED_LIB # include "opus/opus_custom.h" @@ -301,6 +302,7 @@ class CServer : void WriteHTMLChannelList(); +/* void MixEncodeTransmitData ( const CVector >& vecvecsData, const CVector& vecdGains, const CVector& vecdPannings, @@ -317,6 +319,15 @@ class CServer : const int iClientFrameSizeSamples, const int iCurNumAudChan, const int iNumClients ); +*/ + +// TEST +void MixEncodeTransmitData ( const int iIdx, + const int iCurChanID, + OpusCustomEncoder* pCurOpusEncoder, + const int iClientFrameSizeSamples, + const int iNumClients ); + virtual void customEvent ( QEvent* pEvent ); From 30c8f462c35d8985f5d77bc1ccd103b07592b58c Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 4 Aug 2020 16:43:32 +0200 Subject: [PATCH 444/936] add multithreading CONFIG parameter and use thread synchronization --- Jamulus.pro | 8 +++++++- src/server.cpp | 45 ++++++++++++++++++++------------------------- src/server.h | 23 ++++------------------- 3 files changed, 31 insertions(+), 45 deletions(-) diff --git a/Jamulus.pro b/Jamulus.pro index 2ae267dcd0..7317fd9b25 100755 --- a/Jamulus.pro +++ b/Jamulus.pro @@ -6,12 +6,18 @@ contains(CONFIG, "noupcasename") { TARGET = jamulus } +# support multi-threading with OMP if requested +contains(CONFIG, "multithreading") { + message(Multithreading in the server is enabled.) + DEFINES += USE_MULTITHREADING + QT += concurrent +} + CONFIG += qt \ thread \ release QT += network \ - concurrent \ xml contains(CONFIG, "headless") { diff --git a/src/server.cpp b/src/server.cpp index 0ca900ba84..92ea936e3c 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -979,6 +979,10 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE // Process data ------------------------------------------------------------ +#ifdef USE_MULTITHREADING + QFutureSynchronizer FutureSynchronizer; +#endif + // Check if at least one client is connected. If not, stop server until // one client is connected. if ( iNumClients > 0 ) @@ -1055,35 +1059,26 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE } } -// TEST -QFuture future = QtConcurrent::run ( this, &CServer::MixEncodeTransmitData, - i, - iCurChanID, - pCurOpusEncoder, - iClientFrameSizeSamples, - iNumClients ); - - // generate a separate mix for each channel, OPUS encode the - // audio data and transmit the network packet -/* - MixEncodeTransmitData ( vecvecsData, - vecvecdGains[i], - vecvecdPannings[i], - vecNumAudioChannels, - vecvecsIntermediateProcBuf[i], - vecvecsSendData[i], - vecvecbyCodedData[i], - vecChannels[iCurChanID], - DoubleFrameSizeConvBufOut[iCurChanID], - vecUseDoubleSysFraSizeConvBuf[i], - vecNumFrameSizeConvBlocks[i], + // audio data and transmit the network packet (note that if + // multithreading is enabled, the work is distributed over + // all available processor cores) +#ifdef USE_MULTITHREADING + // by using the future synchronizer we make sure that all + // threads are done when we leave the timer callback function + FutureSynchronizer.addFuture ( QtConcurrent::run ( this, &CServer::MixEncodeTransmitData, + i, + iCurChanID, + pCurOpusEncoder, + iClientFrameSizeSamples, + iNumClients ) ); +#else + MixEncodeTransmitData ( i, + iCurChanID, pCurOpusEncoder, - iCeltNumCodedBytes, iClientFrameSizeSamples, - iCurNumAudChan, iNumClients ); -*/ +#endif } } else diff --git a/src/server.h b/src/server.h index c04e8f8ecd..56bd4443db 100755 --- a/src/server.h +++ b/src/server.h @@ -29,8 +29,11 @@ #include #include #include -#include #include +#ifdef USE_MULTITHREADING +# include +# include +#endif #ifdef USE_OPUS_SHARED_LIB # include "opus/opus_custom.h" #else @@ -302,24 +305,6 @@ class CServer : void WriteHTMLChannelList(); -/* - void MixEncodeTransmitData ( const CVector >& vecvecsData, - const CVector& vecdGains, - const CVector& vecdPannings, - const CVector& vecNumAudioChannels, - CVector& vecdIntermProcBuf, - CVector& vecsSendData, - CVector& vecbyCodedData, - CChannel& Channel, - CConvBuf& DoubleFrameSizeConvBufOut, - const int iUseDoubleSysFraSizeConvBuf, - const int iNumFrameSizeConvBlocks, - OpusCustomEncoder* pCurOpusEncoder, - const int iCeltNumCodedBytes, - const int iClientFrameSizeSamples, - const int iCurNumAudChan, - const int iNumClients ); -*/ // TEST void MixEncodeTransmitData ( const int iIdx, From 058fb0d794b106a585cebfac6cdcbaa3125ee4f1 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 4 Aug 2020 21:02:10 +0200 Subject: [PATCH 445/936] code clean up, some re-ordering of code --- ChangeLog | 1 - src/server.cpp | 145 +++++++++++++++++++++---------------------------- src/server.h | 11 +--- 3 files changed, 66 insertions(+), 91 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7a515b2f0c..74a37ed6d2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -20,7 +20,6 @@ - bug fix: --showallservers ping column sort is alphabetic (#201) -TODO QT += concurrent added -> Windows deployment must be adjusted! diff --git a/src/server.cpp b/src/server.cpp index 92ea936e3c..a2d4ee6a9d 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -996,16 +996,10 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE vecChannelLevels ); } - for ( int i = 0; i < iNumClients; i++ ) + for ( int iChanCnt = 0; iChanCnt < iNumClients; iChanCnt++ ) { - int iClientFrameSizeSamples = 0; // initialize to avoid a compiler warning - OpusCustomEncoder* pCurOpusEncoder = nullptr; - // get actual ID of current channel - const int iCurChanID = vecChanIDsCurConChan[i]; - - // get number of audio channels of current channel - const int iCurNumAudChan = vecNumAudioChannels[i]; + const int iCurChanID = vecChanIDsCurConChan[iChanCnt]; // update socket buffer size vecChannels[iCurChanID].UpdateSocketBufferSize(); @@ -1024,39 +1018,8 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE emit AudioFrame ( iCurChanID, vecChannels[iCurChanID].GetName(), vecChannels[iCurChanID].GetAddress(), - iCurNumAudChan, - vecvecsData[i] ); - } - - // get current number of CELT coded bytes - const int iCeltNumCodedBytes = vecChannels[iCurChanID].GetNetwFrameSize(); - - // select the opus encoder and raw audio frame length - if ( vecAudioComprType[i] == CT_OPUS ) - { - iClientFrameSizeSamples = DOUBLE_SYSTEM_FRAME_SIZE_SAMPLES; - - if ( vecNumAudioChannels[i] == 1 ) - { - pCurOpusEncoder = OpusEncoderMono[iCurChanID]; - } - else - { - pCurOpusEncoder = OpusEncoderStereo[iCurChanID]; - } - } - else if ( vecAudioComprType[i] == CT_OPUS64 ) - { - iClientFrameSizeSamples = SYSTEM_FRAME_SIZE_SAMPLES; - - if ( vecNumAudioChannels[i] == 1 ) - { - pCurOpusEncoder = Opus64EncoderMono[iCurChanID]; - } - else - { - pCurOpusEncoder = Opus64EncoderStereo[iCurChanID]; - } + vecNumAudioChannels[iChanCnt], + vecvecsData[iChanCnt] ); } // generate a separate mix for each channel, OPUS encode the @@ -1066,17 +1029,15 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE #ifdef USE_MULTITHREADING // by using the future synchronizer we make sure that all // threads are done when we leave the timer callback function - FutureSynchronizer.addFuture ( QtConcurrent::run ( this, &CServer::MixEncodeTransmitData, - i, + FutureSynchronizer.addFuture ( QtConcurrent::run ( this, + &CServer::MixEncodeTransmitData, + iChanCnt, iCurChanID, - pCurOpusEncoder, - iClientFrameSizeSamples, iNumClients ) ); #else - MixEncodeTransmitData ( i, + // process and transmit data single threaded + MixEncodeTransmitData ( iChanCnt, iCurChanID, - pCurOpusEncoder, - iClientFrameSizeSamples, iNumClients ); #endif } @@ -1092,40 +1053,26 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE } /// @brief Mix all audio data from all clients together, encode and transmit -void CServer::MixEncodeTransmitData ( const int iIdx, - const int iCurChanID, - OpusCustomEncoder* pCurOpusEncoder, - const int iClientFrameSizeSamples, - const int iNumClients ) +void CServer::MixEncodeTransmitData ( const int iChanCnt, + const int iCurChanID, + const int iNumClients ) { - -// TEST -const CVector& vecdGains = vecvecdGains[iIdx]; -const CVector& vecdPannings = vecvecdPannings[iIdx]; -CVector& vecdIntermProcBuf = vecvecsIntermediateProcBuf[iIdx]; -CVector& vecsSendData = vecvecsSendData[iIdx]; -CVector& vecbyCodedData = vecvecbyCodedData[iIdx]; -CChannel& Channel = vecChannels[iCurChanID]; -CConvBuf* pDoubleFrameSizeConvBufOut = &DoubleFrameSizeConvBufOut[iCurChanID]; -const int iUseDoubleSysFraSizeConvBuf = vecUseDoubleSysFraSizeConvBuf[iIdx]; -const int iNumFrameSizeConvBlocks = vecNumFrameSizeConvBlocks[iIdx]; -const int iCurNumAudChan = vecNumAudioChannels[iIdx]; -const int iCeltNumCodedBytes = vecChannels[iCurChanID].GetNetwFrameSize(); - - int i, j, k, iUnused; + int i, j, k, iUnused; + CVector& vecdIntermProcBuf = vecvecsIntermediateProcBuf[iChanCnt]; // use reference for faster access + CVector& vecsSendData = vecvecsSendData[iChanCnt]; // use reference for faster access // init intermediate processing vector with zeros since we mix all channels on that vector vecdIntermProcBuf.Reset ( 0 ); // distinguish between stereo and mono mode - if ( iCurNumAudChan == 1 ) + if ( vecNumAudioChannels[iChanCnt] == 1 ) { // Mono target channel ------------------------------------------------- for ( j = 0; j < iNumClients; j++ ) { // get a reference to the audio data and gain of the current client const CVector& vecsData = vecvecsData[j]; - const double dGain = vecdGains[j]; + const double dGain = vecvecdGains[iChanCnt][j]; // if channel gain is 1, avoid multiplication for speed optimization if ( dGain == static_cast ( 1.0 ) ) @@ -1183,8 +1130,8 @@ const int iCeltNumCodedBytes = vecChannels[iCurChanID].Get { // get a reference to the audio data and gain/pan of the current client const CVector& vecsData = vecvecsData[j]; - const double dGain = vecdGains[j]; - const double dPan = vecdPannings[j]; + const double dGain = vecvecdGains[iChanCnt][j]; + const double dPan = vecvecdPannings[iChanCnt][j]; // calculate combined gain/pan for each stereo channel where we define // the panning that center equals full gain for both channels @@ -1245,21 +1192,55 @@ const int iCeltNumCodedBytes = vecChannels[iCurChanID].Get } } + int iClientFrameSizeSamples = 0; // initialize to avoid a compiler warning + OpusCustomEncoder* pCurOpusEncoder = nullptr; + + // get current number of CELT coded bytes + const int iCeltNumCodedBytes = vecChannels[iCurChanID].GetNetwFrameSize(); + + // select the opus encoder and raw audio frame length + if ( vecAudioComprType[iChanCnt] == CT_OPUS ) + { + iClientFrameSizeSamples = DOUBLE_SYSTEM_FRAME_SIZE_SAMPLES; + + if ( vecNumAudioChannels[iChanCnt] == 1 ) + { + pCurOpusEncoder = OpusEncoderMono[iCurChanID]; + } + else + { + pCurOpusEncoder = OpusEncoderStereo[iCurChanID]; + } + } + else if ( vecAudioComprType[iChanCnt] == CT_OPUS64 ) + { + iClientFrameSizeSamples = SYSTEM_FRAME_SIZE_SAMPLES; + + if ( vecNumAudioChannels[iChanCnt] == 1 ) + { + pCurOpusEncoder = Opus64EncoderMono[iCurChanID]; + } + else + { + pCurOpusEncoder = Opus64EncoderStereo[iCurChanID]; + } + } + // If the server frame size is smaller than the received OPUS frame size, we need a conversion // buffer which stores the large buffer. // Note that we have a shortcut here. If the conversion buffer is not needed, the boolean flag // is false and the Get() function is not called at all. Therefore if the buffer is not needed // we do not spend any time in the function but go directly inside the if condition. - if ( ( iUseDoubleSysFraSizeConvBuf == 0 ) || - pDoubleFrameSizeConvBufOut->Put ( vecsSendData, SYSTEM_FRAME_SIZE_SAMPLES * iCurNumAudChan ) ) + if ( ( vecUseDoubleSysFraSizeConvBuf[iChanCnt] == 0 ) || + DoubleFrameSizeConvBufOut[iCurChanID].Put ( vecsSendData, SYSTEM_FRAME_SIZE_SAMPLES * vecNumAudioChannels[iChanCnt] ) ) { - if ( iUseDoubleSysFraSizeConvBuf != 0 ) + if ( vecUseDoubleSysFraSizeConvBuf[iChanCnt] != 0 ) { // get the large frame from the conversion buffer - pDoubleFrameSizeConvBufOut->GetAll ( vecsSendData, DOUBLE_SYSTEM_FRAME_SIZE_SAMPLES * iCurNumAudChan ); + DoubleFrameSizeConvBufOut[iCurChanID].GetAll ( vecsSendData, DOUBLE_SYSTEM_FRAME_SIZE_SAMPLES * vecNumAudioChannels[iChanCnt] ); } - for ( int iB = 0; iB < iNumFrameSizeConvBlocks; iB++ ) + for ( int iB = 0; iB < vecNumFrameSizeConvBlocks[iChanCnt]; iB++ ) { // OPUS encoding if ( pCurOpusEncoder != nullptr ) @@ -1269,16 +1250,16 @@ const int iCeltNumCodedBytes = vecChannels[iCurChanID].Get opus_custom_encoder_ctl ( pCurOpusEncoder, OPUS_SET_BITRATE ( CalcBitRateBitsPerSecFromCodedBytes ( iCeltNumCodedBytes, iClientFrameSizeSamples ) ) ); iUnused = opus_custom_encode ( pCurOpusEncoder, - &vecsSendData[iB * SYSTEM_FRAME_SIZE_SAMPLES * iCurNumAudChan], + &vecsSendData[iB * SYSTEM_FRAME_SIZE_SAMPLES * vecNumAudioChannels[iChanCnt]], iClientFrameSizeSamples, - &vecbyCodedData[0], + &vecvecbyCodedData[iChanCnt][0], iCeltNumCodedBytes ); } // send separate mix to current clients - Channel.PrepAndSendPacket ( &Socket, - vecbyCodedData, - iCeltNumCodedBytes ); + vecChannels[iCurChanID].PrepAndSendPacket ( &Socket, + vecvecbyCodedData[iChanCnt], + iCeltNumCodedBytes ); } } diff --git a/src/server.h b/src/server.h index 56bd4443db..d94993ab71 100755 --- a/src/server.h +++ b/src/server.h @@ -305,14 +305,9 @@ class CServer : void WriteHTMLChannelList(); - -// TEST -void MixEncodeTransmitData ( const int iIdx, - const int iCurChanID, - OpusCustomEncoder* pCurOpusEncoder, - const int iClientFrameSizeSamples, - const int iNumClients ); - + void MixEncodeTransmitData ( const int iChanCnt, + const int iCurChanID, + const int iNumClients ); virtual void customEvent ( QEvent* pEvent ); From f1abe1561623968c001943e6c519702796650ef6 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 4 Aug 2020 21:58:57 +0200 Subject: [PATCH 446/936] update the changelog --- ChangeLog | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ChangeLog b/ChangeLog index 74a37ed6d2..493fdaa49f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -15,6 +15,9 @@ - support MIDI control faders in headless build (#483) +- support multi-threading in the server to better support multi-core CPUs, + use qmake "CONFIG+=multithreading" to enable the new multi-threading (#339) + - bug fix: added more mutex in the server (should fix #480) - bug fix: --showallservers ping column sort is alphabetic (#201) From 91d99fbd8113296008b2ed1b87a3fff5177c0fff Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Wed, 5 Aug 2020 18:11:28 +0200 Subject: [PATCH 447/936] allow more max. number of clients to be connected to the server since with the new multithreaded implementation the capacity of the server should increase --- src/global.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/global.h b/src/global.h index 99c27370ff..b43875e108 100755 --- a/src/global.h +++ b/src/global.h @@ -180,7 +180,7 @@ LED bar: lbr #define YELLOW_BOUND_LED_BAR 5 // maximum number of connected clients at the server (must not be larger than 256) -#define MAX_NUM_CHANNELS 50 // max number channels for server +#define MAX_NUM_CHANNELS 100 // max number channels for server // actual number of used channels in the server // this parameter can safely be changed from 1 to MAX_NUM_CHANNELS From a3c53afdcb94e3f3ae2328978ca63d64335b2dbc Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Fri, 7 Aug 2020 16:59:46 +0200 Subject: [PATCH 448/936] option to set "Mute Myself" on with a command line argument (#495) --- ChangeLog | 2 ++ src/clientdlg.cpp | 7 +++++++ src/clientdlg.h | 1 + src/main.cpp | 16 ++++++++++++++++ 4 files changed, 26 insertions(+) diff --git a/ChangeLog b/ChangeLog index 493fdaa49f..5664158d8a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -18,6 +18,8 @@ - support multi-threading in the server to better support multi-core CPUs, use qmake "CONFIG+=multithreading" to enable the new multi-threading (#339) +- option to set "Mute Myself" on with a command line argument (#495) + - bug fix: added more mutex in the server (should fix #480) - bug fix: --showallservers ping column sort is alphabetic (#201) diff --git a/src/clientdlg.cpp b/src/clientdlg.cpp index 73b3c99ba1..6f103a02d8 100755 --- a/src/clientdlg.cpp +++ b/src/clientdlg.cpp @@ -32,6 +32,7 @@ CClientDlg::CClientDlg ( CClient* pNCliP, const int iCtrlMIDIChannel, const bool bNewShowComplRegConnList, const bool bShowAnalyzerConsole, + const bool bMuteStream, QWidget* parent, Qt::WindowFlags f ) : QDialog ( parent, f ), @@ -506,6 +507,12 @@ CClientDlg::CClientDlg ( CClient* pNCliP, { ShowConnectionSetupDialog(); } + + // mute stream on startup (must be done after the signal connections) + if ( bMuteStream ) + { + chbLocalMute->setCheckState ( Qt::Checked ); + } } void CClientDlg::closeEvent ( QCloseEvent* Event ) diff --git a/src/clientdlg.h b/src/clientdlg.h index 882a88cab3..54af92a049 100755 --- a/src/clientdlg.h +++ b/src/clientdlg.h @@ -79,6 +79,7 @@ class CClientDlg : public QDialog, private Ui_CClientDlgBase const int iCtrlMIDIChannel, const bool bNewShowComplRegConnList, const bool bShowAnalyzerConsole, + const bool bMuteStream, QWidget* parent = nullptr, Qt::WindowFlags f = nullptr ); diff --git a/src/main.cpp b/src/main.cpp index 1f3674d3d1..8cc8d15877 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -66,6 +66,7 @@ int main ( int argc, char** argv ) bool bDisconnectAllClientsOnQuit = false; bool bUseDoubleSystemFrameSize = true; // default is 128 samples frame size bool bShowAnalyzerConsole = false; + bool bMuteStream = false; bool bCentServPingServerInList = false; bool bNoAutoJackConnect = false; bool bUseTranslation = true; @@ -468,6 +469,18 @@ int main ( int argc, char** argv ) } + // Mute stream on startup ---------------------------------------------- + if ( GetFlagArgument ( argv, + i, + "-M", + "--mutestream" ) ) + { + bMuteStream = true; + tsConsole << "- mute stream activated" << endl; + continue; + } + + // Version number ------------------------------------------------------ if ( ( !strcmp ( argv[i], "--version" ) ) || ( !strcmp ( argv[i], "-v" ) ) ) @@ -509,6 +522,7 @@ int main ( int argc, char** argv ) Q_UNUSED ( bStartMinimized ) // avoid compiler warnings Q_UNUSED ( bShowComplRegConnList ) // avoid compiler warnings Q_UNUSED ( bShowAnalyzerConsole ) // avoid compiler warnings + Q_UNUSED ( bMuteStream ) // avoid compiler warnings #endif @@ -619,6 +633,7 @@ int main ( int argc, char** argv ) iCtrlMIDIChannel, bShowComplRegConnList, bShowAnalyzerConsole, + bMuteStream, nullptr, Qt::Window ); @@ -768,6 +783,7 @@ QString UsageArguments ( char **argv ) " -y, --history enable connection history and set file name\n" " -z, --startminimized start minimizied\n" "\nClient only:\n" + " -M, --mutestream starts the application in muted state\n" " -c, --connect connect to given server address on startup\n" " -j, --nojackconnect disable auto Jack connections\n" " --ctrlmidich MIDI controller channel to listen\n" From a386d388fa94d36e2f96bf6e64758be6d2c1b4e9 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 8 Aug 2020 08:17:43 +0200 Subject: [PATCH 449/936] replacing internal history graph functionality by external scripts/tools (#501) --- ChangeLog | 4 + Jamulus.pro | 4 +- src/global.h | 3 - src/historygraph.cpp | 513 ------------------------------------------ src/historygraph.h | 188 ---------------- src/main.cpp | 47 ---- src/server.cpp | 18 +- src/server.h | 2 - src/serverlogging.cpp | 93 -------- src/serverlogging.h | 17 +- 10 files changed, 9 insertions(+), 880 deletions(-) delete mode 100644 src/historygraph.cpp delete mode 100644 src/historygraph.h diff --git a/ChangeLog b/ChangeLog index 5664158d8a..ced1406b0d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -20,11 +20,15 @@ - option to set "Mute Myself" on with a command line argument (#495) +- replacing internal history graph functionality by external scripts/tools (#501) + - bug fix: added more mutex in the server (should fix #480) - bug fix: --showallservers ping column sort is alphabetic (#201) +TODO make clear that filter # filters musicians + diff --git a/Jamulus.pro b/Jamulus.pro index 7317fd9b25..b817095583 100755 --- a/Jamulus.pro +++ b/Jamulus.pro @@ -363,7 +363,6 @@ HEADERS += src/buffer.h \ src/recorder/jamrecorder.h \ src/recorder/creaperproject.h \ src/recorder/cwavestream.h \ - src/historygraph.h \ src/signalhandler.h HEADERS_GUI = src/audiomixerboard.h \ @@ -462,8 +461,7 @@ SOURCES += src/buffer.cpp \ src/util.cpp \ src/recorder/jamrecorder.cpp \ src/recorder/creaperproject.cpp \ - src/recorder/cwavestream.cpp \ - src/historygraph.cpp + src/recorder/cwavestream.cpp SOURCES_GUI = src/audiomixerboard.cpp \ src/chatdlg.cpp \ diff --git a/src/global.h b/src/global.h index b43875e108..170f769abd 100755 --- a/src/global.h +++ b/src/global.h @@ -92,9 +92,6 @@ LED bar: lbr // file name for logging file #define DEFAULT_LOG_FILE_NAME "Jamulussrvlog.txt" -// default oldest item to draw in history graph (days ago) -#define DEFAULT_DAYS_HISTORY 60 - // System block size, this is the block size on which the audio coder works. // All other block sizes must be a multiple of this size. // Note that the UpdateAutoSetting() function assumes a value of 128. diff --git a/src/historygraph.cpp b/src/historygraph.cpp deleted file mode 100644 index 9bd005c635..0000000000 --- a/src/historygraph.cpp +++ /dev/null @@ -1,513 +0,0 @@ -/******************************************************************************\ - * Copyright (c) 2004-2020 - * - * Author(s): - * Volker Fischer - * Peter L Jones - * - ****************************************************************************** - * - * This program is free software; you can redistribute it and/or modify it under - * the terms of the GNU General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) any later - * version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - * -\******************************************************************************/ - -#include "historygraph.h" - - -/* Abstract class *************************************************************/ -AHistoryGraph::AHistoryGraph ( const int iMaxDaysHistory ) : - sFileName ( "" ), - bDoHistory ( false ), - vHistoryDataFifo ( NUM_ITEMS_HISTORY ), - iNumTicksX ( 0 ), // number of days in history - iHistMaxDays ( iMaxDaysHistory ), - - BackgroundColor ( "white" ), // background - FrameColor ( "black" ), // frame - GridColor ( "gray" ), // grid - TextColor ( "black" ), // text - MarkerNewColor ( "darkCyan" ), // marker for new connection - MarkerNewLocalColor ( "blue" ), // marker for new local connection - MarkerStopColor ( "red" ), // marker for server stop - - canvasRectX ( 0 ), - canvasRectY ( 0 ), - canvasRectWidth ( 640 ), - canvasRectHeight ( 450 ), - - iGridFrameOffset ( 10 ), - iGridWidthWeekend ( 3 ), // should be an odd value - iXAxisTextHeight ( 22 ), - gridFrameX ( canvasRectX + iGridFrameOffset ), - gridFrameY ( canvasRectY + iGridFrameOffset ), - gridFrameWidth ( canvasRectWidth - 2 * iGridFrameOffset ), - gridFrameHeight ( canvasRectHeight - 2 * iGridFrameOffset - iXAxisTextHeight ), - gridFrameRight ( gridFrameX + gridFrameWidth - 1 ), - gridFrameBottom ( gridFrameY + gridFrameHeight - 1 ), - - axisFontFamily ( "Arial" ), - axisFontWeight ( "100" ), - axisFontSize ( 12 ), - - iYAxisStart ( 0 ), - iYAxisEnd ( 24 ), - iNumTicksY ( 5 ), - - iTextOffsetToGrid ( 3 ), - iTextOffsetX ( 18 ), - - iMarkerSizeNewCon ( 10 ), - iMarkerSizeServSt ( 6 ) -{ -} - -void AHistoryGraph::Start ( const QString& sNewFileName ) -{ - QTextStream& tsConsoleStream = *( ( new ConsoleWriterFactory() )->get() ); - tsConsoleStream << QString ( "AHistoryGraph::Start ( %1 )" ).arg ( sNewFileName ) << endl; // on console - - if ( !sNewFileName.isEmpty() ) - { - // save file name - sFileName = sNewFileName; - - // set enable flag - bDoHistory = true; - - // enable timer (update once a day) - TimerDailyUpdate.start ( 3600000 * 24 ); - - // initial update (empty graph) - Update(); - } -} - -void AHistoryGraph::Add ( const QDateTime& newDateTime, const EHistoryItemType curType ) -{ - if ( bDoHistory ) - { - // create and add new element in FIFO - SHistoryData curHistoryData; - curHistoryData.DateTime = newDateTime; - curHistoryData.Type = curType; - - vHistoryDataFifo.Add ( curHistoryData ); - } -} - -void AHistoryGraph::Add ( const QDateTime& newDateTime, const QHostAddress ClientInetAddr ) -{ - if ( bDoHistory ) - { - // add element to history, distinguish between a local connection - // and a remote connection - if ( ( ClientInetAddr == QHostAddress ( "127.0.0.1" ) ) || - ( ClientInetAddr.toString().left ( 7 ).compare ( "192.168" ) == 0 ) ) - { - // local connection - Add ( newDateTime, HIT_LOCAL_CONNECTION ); - } - else - { - // remote connection - Add ( newDateTime, HIT_REMOTE_CONNECTION ); - } - } -} - -void AHistoryGraph::Update ( ) -{ - if ( bDoHistory ) - { - int i; - - // store current date for reference - curDate = QDate::currentDate(); - - // set oldest date to draw - QDate minDate = curDate.addDays ( iHistMaxDays * -1 ); - - // get oldest date in history - QDate oldestDate = curDate.addDays ( 1 ); // one day in the future - const int iNumItemsForHistory = vHistoryDataFifo.Size(); - - for ( i = 0; i < iNumItemsForHistory; i++ ) - { - // only use valid dates - if ( vHistoryDataFifo[i].DateTime.date().isValid() ) - { - if ( vHistoryDataFifo[i].DateTime.date() < oldestDate ) - { - oldestDate = vHistoryDataFifo[i].DateTime.date(); - } - } - } - - if ( oldestDate < minDate ) - { - oldestDate = minDate; - } - - const int iNumDaysInHistory = -curDate.daysTo ( oldestDate ) + 1; - - // draw frame of the graph - DrawFrame ( iNumDaysInHistory ); - - // add markers - for ( i = 0; i < iNumItemsForHistory; i++ ) - { - // only use valid dates - if ( vHistoryDataFifo[i].DateTime.date().isValid() && ( oldestDate <= vHistoryDataFifo[i].DateTime.date() ) ) - { - AddMarker ( vHistoryDataFifo[i] ); - } - } - - // save graph as picture in file - Save ( sFileName ); - } -} - -void AHistoryGraph::DrawFrame ( const int iNewNumTicksX ) -{ - int i; - - // store number of x-axis ticks (number of days we want to draw - // the history for - iNumTicksX = iNewNumTicksX; - - - // Create actual plot region (grid frame) ---------------------------------- - rect( gridFrameX, gridFrameY, gridFrameWidth, gridFrameHeight ); - - // calculate step for x-axis ticks so that we get the desired number of - // ticks -> 5 ticks - -// TODO the following equation does not work as expected but results are acceptable - - // we want to have "floor ( iNumTicksX / 5 )" which is the same as - // "iNumTicksX / 5" since "iNumTicksX" is an integer variable - const int iXAxisTickStep = iNumTicksX / 5 + 1; - - // grid (ticks) for x-axis - dayXSpace = static_cast ( gridFrameWidth ) / ( iNumTicksX + 1 ); - - for ( i = 0; i < static_cast ( iNumTicksX ); i++ ) - { - int iBottomExtraTickLen = 0; - const int iCurX = gridFrameX + static_cast ( dayXSpace * ( i + 1 ) ); - const QDate curXAxisDate = curDate.addDays ( 0 - static_cast ( iNumTicksX ) + i + 1 ); - - // text (print only every "iXAxisTickStep" tick) - if ( !( i % iXAxisTickStep ) ) - { - text ( iCurX - iTextOffsetX, gridFrameBottom + iXAxisTextHeight + iTextOffsetToGrid, curXAxisDate.toString ( "dd.MM." ) ); - - iBottomExtraTickLen = 5; - } - - // regular grid - line ( iCurX, 1 + gridFrameY, iCurX, gridFrameBottom + iBottomExtraTickLen ); - - // different grid width for weekends (overwrite regular grid) - if ( ( curXAxisDate.dayOfWeek() == 6 ) || // check for Saturday - ( curXAxisDate.dayOfWeek() == 7 ) ) // check for Sunday - { - const int iGridWidthWeekendHalf = iGridWidthWeekend / 2; - - line ( iCurX, 1 + gridFrameY + iGridWidthWeekendHalf, iCurX, gridFrameBottom - iGridWidthWeekendHalf, iGridWidthWeekend ); - } - } - - // grid (ticks) for y-axis, draw iNumTicksY - 2 grid lines and - // iNumTicksY - 1 text labels (the lowest grid line is the grid frame) - iYSpace = gridFrameHeight / ( iNumTicksY - 1 ); - - for ( i = 0; i < ( static_cast ( iNumTicksY ) - 1 ); i++ ) - { - const int iCurY = gridFrameY + iYSpace * ( i + 1 ); - - // text - text ( gridFrameX + iTextOffsetToGrid, - iCurY - iTextOffsetToGrid, - QString ( "%1:00" ).arg ( ( iYAxisEnd - iYAxisStart ) / ( iNumTicksY - 1 ) * ( ( iNumTicksY - 2 ) - i ) ) ); - - // grid (do not overwrite frame) - if ( i < ( static_cast ( iNumTicksY ) - 2 ) ) - { - line ( gridFrameX, iCurY, gridFrameRight, iCurY ); - } - } -} - -void AHistoryGraph::AddMarker ( const SHistoryData& curHistoryData ) -{ - // calculate x-axis offset (difference of days compared to - // current date) - const int iXAxisOffs = - curDate.daysTo ( curHistoryData.DateTime.date() ); - - // check range, if out of range, do not plot anything - if ( -iXAxisOffs > ( static_cast ( iNumTicksX ) - 1 ) ) - { - return; - } - - // calculate y-axis offset (consider hours and minutes) - const double dYAxisOffs = 24 - curHistoryData.DateTime.time().hour() - - static_cast ( curHistoryData.DateTime.time().minute() ) / 60; - - // calculate the actual point in the graph (in pixels) - int curPointX = gridFrameX + static_cast ( dayXSpace * ( static_cast ( iNumTicksX ) + iXAxisOffs ) ); - int curPointY = gridFrameY + static_cast ( static_cast ( - gridFrameHeight ) / ( iYAxisEnd - iYAxisStart ) * dYAxisOffs ); - - QString curPointColour = MarkerNewColor; - int curPointSize = iMarkerSizeNewCon; - - // we use different markers for new connection and server stop items - switch ( curHistoryData.Type ) - { - case HIT_SERVER_STOP: - curPointColour = MarkerStopColor; - curPointSize = iMarkerSizeServSt; - break; - - case HIT_LOCAL_CONNECTION: - curPointColour = MarkerNewLocalColor; - break; - - case HIT_REMOTE_CONNECTION: - curPointColour = MarkerNewColor; - break; - } - - point ( curPointX - curPointSize / 2, curPointY - curPointSize / 2, curPointSize, curPointColour ); -} - - -/* JPEG History Graph implementation ******************************************/ -#ifndef HEADLESS -CJpegHistoryGraph::CJpegHistoryGraph ( const int iMaxDaysHistory ) : - AHistoryGraph ( iMaxDaysHistory ), - PlotPixmap ( 1, 1, QImage::Format_RGB32 ), - iAxisFontWeight ( -1 ) -{ - // scale pixmap to correct size - PlotPixmap = PlotPixmap.scaled ( canvasRectWidth, canvasRectHeight ); - - // axisFontWeight is a string matching the CSS2 font-weight definition - // Thin = 0, // 100 - // ExtraLight = 12, // 200 - // Light = 25, // 300 - // Normal = 50, // 400 - // Medium = 57, // 500 - // DemiBold = 63, // 600 - // Bold = 75, // 700 - // ExtraBold = 81, // 800 - // Black = 87 // 900 - bool ok; - int weight = axisFontWeight.toInt( &ok ); - - if ( !ok ) - { - if ( !QString ( "normal" ).compare ( axisFontWeight, Qt::CaseSensitivity::CaseInsensitive ) ) - { - iAxisFontWeight = 50; - } - else if ( !QString ( "bold" ).compare ( axisFontWeight, Qt::CaseSensitivity::CaseInsensitive ) ) - { - weight = 75; - } - } - else - { - if ( weight <= 100 ) { iAxisFontWeight = 0; } - else if ( weight <= 200 ) { iAxisFontWeight = 12; } - else if ( weight <= 300 ) { iAxisFontWeight = 25; } - else if ( weight <= 400 ) { iAxisFontWeight = 50; } - else if ( weight <= 500 ) { iAxisFontWeight = 57; } - else if ( weight <= 600 ) { iAxisFontWeight = 63; } - else if ( weight <= 700 ) { iAxisFontWeight = 75; } - else if ( weight <= 800 ) { iAxisFontWeight = 81; } - else if ( weight <= 900 ) { iAxisFontWeight = 87; } - } - // if all else fails, it's left at -1 - -// QTextStream& tsConsoleStream = *( ( new ConsoleWriterFactory() )->get() ); -// tsConsoleStream << "CJpegHistoryGraph" << endl; // on console - - - // Connections ------------------------------------------------------------- - QObject::connect ( &TimerDailyUpdate, &QTimer::timeout, - this, &CJpegHistoryGraph::OnTimerDailyUpdate ); -} - -// Override Update to blank out the plot area each time -void CJpegHistoryGraph::Update() -{ - if ( bDoHistory ) - { - // create JPEG image - PlotPixmap.fill ( BackgroundColor ); // fill background - - AHistoryGraph::Update(); - } -} - -void CJpegHistoryGraph::Save ( const QString sFileName ) -{ - // save plot as a file - PlotPixmap.save ( sFileName, "JPG", 90 ); -} - -void CJpegHistoryGraph::rect ( const unsigned int x, const unsigned int y, const unsigned int width, const unsigned int height ) -{ - QPainter PlotPainter ( &PlotPixmap ); - PlotPainter.setPen ( FrameColor ); - PlotPainter.drawRect ( x, y, width, height ); -} - -void CJpegHistoryGraph::text ( const unsigned int x, const unsigned int y, const QString& value ) -{ - QPainter PlotPainter ( &PlotPixmap ); - PlotPainter.setPen ( TextColor ); - // QFont(const QString &family, int pointSize = -1, int weight = -1, bool italic = false); - PlotPainter.setFont ( QFont( axisFontFamily, static_cast ( axisFontSize ), iAxisFontWeight ) ); - PlotPainter.drawText ( QPoint ( x, y ), value ); -} - -void CJpegHistoryGraph::line ( const unsigned int x1, const unsigned int y1, const unsigned int x2, const unsigned int y2, const unsigned int strokeWidth ) -{ - QPainter PlotPainter ( &PlotPixmap ); - PlotPainter.setPen ( QPen ( QBrush ( QColor ( GridColor ) ), strokeWidth ) ); - PlotPainter.drawLine ( x1, y1, x2, y2 ); -} - -void CJpegHistoryGraph::point ( const unsigned int x, const unsigned int y, const unsigned int size, const QString& colour ) -{ - QPainter PlotPainter ( &PlotPixmap ); - PlotPainter.setPen ( QPen ( QBrush( QColor ( colour ) ), size ) ); - PlotPainter.drawPoint ( x, y ); -} -#endif - - -/* SVG History Graph implementation *******************************************/ -CSvgHistoryGraph::CSvgHistoryGraph ( const int iMaxDaysHistory ) : - AHistoryGraph ( iMaxDaysHistory ), - svgImage ( "" ), - svgStreamWriter ( &svgImage ) -{ - // set SVG veiwBox to correct size to ensure correct scaling - svgRootAttributes.append ( "viewBox", - QString ( "%1, %2, %3, %4" ) - .arg ( canvasRectX ) - .arg ( canvasRectY ) - .arg ( canvasRectWidth ) - .arg ( canvasRectHeight ) - ); - - svgRootAttributes.append ( "xmlns", "http://www.w3.org/2000/svg" ); - svgRootAttributes.append ( "xmlns:xlink", "http://www.w3.org/1999/xlink" ); - -// QTextStream& tsConsoleStream = *( ( new ConsoleWriterFactory() )->get() ); -// tsConsoleStream << "CSvgHistoryGraph" << endl; // on console - - - // Connections ------------------------------------------------------------- - QObject::connect ( &TimerDailyUpdate, &QTimer::timeout, - this, &CSvgHistoryGraph::OnTimerDailyUpdate ); -} - -// Override Update to create the fresh SVG stream each time -void CSvgHistoryGraph::Update() -{ - if ( bDoHistory ) - { - // create SVG document - svgImage = ""; - - svgStreamWriter.setAutoFormatting ( true ); - svgStreamWriter.writeStartDocument(); - svgStreamWriter.writeStartElement ( "svg" ); - svgStreamWriter.writeAttributes ( svgRootAttributes ); - - AHistoryGraph::Update(); - } -} - -void CSvgHistoryGraph::Save ( const QString sFileName ) -{ - svgStreamWriter.writeEndDocument(); - - QFile outf ( sFileName ); - - if ( !outf.open ( QFile::WriteOnly ) ) - { - throw std::runtime_error ( ( sFileName + " could not be written. Aborting." ).toStdString() ); - } - QTextStream out ( &outf ); - - out << svgImage << endl; -} - -void CSvgHistoryGraph::rect ( const unsigned int x, const unsigned int y, const unsigned int width, const unsigned int height ) -{ - svgStreamWriter.writeEmptyElement ( "rect" ); - svgStreamWriter.writeAttribute ( "x", QString ( "%1" ).arg ( x ) ); - svgStreamWriter.writeAttribute ( "y", QString ( "%1" ).arg ( y ) ); - svgStreamWriter.writeAttribute ( "width", QString ( "%1" ).arg ( width ) ); - svgStreamWriter.writeAttribute ( "height", QString ( "%1" ).arg ( height ) ); - svgStreamWriter.writeAttribute ( "stroke", FrameColor ); - svgStreamWriter.writeAttribute ( "stroke-width", QString ( "1" ) ); - svgStreamWriter.writeAttribute ( "style", QString ( "fill: none;" ) ); -} - -void CSvgHistoryGraph::text ( const unsigned int x, const unsigned int y, const QString& value ) -{ - svgStreamWriter.writeStartElement ( "text" ); - svgStreamWriter.writeAttribute ( "x", QString ( "%1" ).arg ( x ) ); - svgStreamWriter.writeAttribute ( "y", QString ( "%1" ).arg ( y ) ); - svgStreamWriter.writeAttribute ( "stroke", TextColor ); - svgStreamWriter.writeAttribute ( "font-family", axisFontFamily ); - svgStreamWriter.writeAttribute ( "font-weight", axisFontWeight ); - svgStreamWriter.writeAttribute ( "font-size", QString ( "%1" ).arg ( axisFontSize ) ); - - svgStreamWriter.writeCharacters( value ); - svgStreamWriter.writeEndElement(); -} - -void CSvgHistoryGraph::line ( const unsigned int x1, const unsigned int y1, const unsigned int x2, const unsigned int y2, const unsigned int strokeWidth ) -{ - svgStreamWriter.writeEmptyElement ( "line" ); - svgStreamWriter.writeAttribute ( "x1", QString ( "%1" ).arg ( x1 ) ); - svgStreamWriter.writeAttribute ( "y1", QString ( "%1" ).arg ( y1 ) ); - svgStreamWriter.writeAttribute ( "x2", QString ( "%1" ).arg ( x2 ) ); - svgStreamWriter.writeAttribute ( "y2", QString ( "%1" ).arg ( y2 ) ); - svgStreamWriter.writeAttribute ( "stroke", GridColor ); - svgStreamWriter.writeAttribute ( "stroke-width", QString ( "%1" ).arg ( strokeWidth ) ); -} - -void CSvgHistoryGraph::point ( const unsigned int x, const unsigned int y, const unsigned int size, const QString& colour ) -{ - svgStreamWriter.writeEmptyElement ( "rect" ); - svgStreamWriter.writeAttribute ( "x", QString ( "%1" ).arg ( x ) ); - svgStreamWriter.writeAttribute ( "y", QString ( "%1" ).arg ( y ) ); - svgStreamWriter.writeAttribute ( "width", QString ( "%1" ).arg ( size ) ); - svgStreamWriter.writeAttribute ( "height", QString ( "%1" ).arg ( size ) ); - svgStreamWriter.writeAttribute ( "stroke-opacity", "0" ); - svgStreamWriter.writeAttribute ( "fill", colour ); -} diff --git a/src/historygraph.h b/src/historygraph.h deleted file mode 100644 index 4540418e71..0000000000 --- a/src/historygraph.h +++ /dev/null @@ -1,188 +0,0 @@ -/******************************************************************************\ - * Copyright (c) 2004-2020 - * - * Author(s): - * Volker Fischer - * Peter L Jones - * - ****************************************************************************** - * - * This program is free software; you can redistribute it and/or modify it under - * the terms of the GNU General Public License as published by the Free Software - * Foundation; either version 2 of the License, or (at your option) any later - * version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - * -\******************************************************************************/ - -#pragma once - -#include -#include -#include -#include -#include -#include "global.h" -#include "util.h" - -// for CJpegHistoryGraph -#ifndef HEADLESS -# include -# include -#endif - -// for CSvgHistoryGraph -#include -#include - - -/* Definitions ****************************************************************/ -// number of history items to store -#define NUM_ITEMS_HISTORY 20000 - - -/* Interface ******************************************************************/ -class AHistoryGraph -{ -public: - enum EHistoryItemType - { - HIT_LOCAL_CONNECTION, - HIT_REMOTE_CONNECTION, - HIT_SERVER_STOP - }; - - AHistoryGraph ( const int iMaxDaysHistory ); - virtual ~AHistoryGraph() { } - - void Start ( const QString& sNewFileName ); - void Add ( const QDateTime& newDateTime, const EHistoryItemType curType ); - void Add ( const QDateTime& newDateTime, const QHostAddress ClientInetAddr ); - virtual void Update ( ); - -protected: - struct SHistoryData - { - QDateTime DateTime; - EHistoryItemType Type; - }; - void DrawFrame ( const int iNewNumTicksX ); - void AddMarker ( const SHistoryData& curHistoryData ); - virtual void Save ( const QString sFileName ) = 0; - - virtual void rect ( const unsigned int x, const unsigned int y, const unsigned int width, const unsigned int height ) = 0; - virtual void text ( const unsigned int x, const unsigned int y, const QString& value ) = 0; - virtual void line ( const unsigned int x1, const unsigned int y1, const unsigned int x2, const unsigned int y2, const unsigned int strokeWidth = 1 ) = 0; - virtual void point ( const unsigned int x, const unsigned int y, const unsigned int size, const QString& colour ) = 0; - - // Constructor sets these - QString sFileName; - bool bDoHistory; - CFIFO vHistoryDataFifo; - unsigned int iNumTicksX; // Class global, not sure why - int iHistMaxDays; - - QString BackgroundColor; - QString FrameColor; - QString GridColor; - QString TextColor; - QString MarkerNewColor; - QString MarkerNewLocalColor; - QString MarkerStopColor; - - const unsigned int canvasRectX; - const unsigned int canvasRectY; - const unsigned int canvasRectWidth; - const unsigned int canvasRectHeight; - - const unsigned int iGridFrameOffset; - const unsigned int iGridWidthWeekend; - const unsigned int iXAxisTextHeight; - const unsigned int gridFrameX; - const unsigned int gridFrameY; - const unsigned int gridFrameWidth; - const unsigned int gridFrameHeight; - const unsigned int gridFrameRight; - const unsigned int gridFrameBottom; - - const QString axisFontFamily; - const QString axisFontWeight; - const unsigned int axisFontSize; - - const unsigned int iYAxisStart; - const unsigned int iYAxisEnd; - const unsigned int iNumTicksY; - - const unsigned int iTextOffsetToGrid; - const unsigned int iTextOffsetX; - - const unsigned int iMarkerSizeNewCon; - const unsigned int iMarkerSizeServSt; - - // others - double dayXSpace; - unsigned int iYSpace; - QDate curDate; - QTimer TimerDailyUpdate; -}; - - -/* Implementations ************************************************************/ -#ifndef HEADLESS -class CJpegHistoryGraph : public QObject, virtual public AHistoryGraph -{ - Q_OBJECT - -public: - CJpegHistoryGraph ( const int iMaxDaysHistory ); - virtual void Update ( ); - -protected: - virtual void Save ( const QString sFileName ); - - virtual void rect ( const unsigned int x, const unsigned int y, const unsigned int width, const unsigned int height ); - virtual void text ( const unsigned int x, const unsigned int y, const QString& value ); - virtual void line ( const unsigned int x1, const unsigned int y1, const unsigned int x2, const unsigned int y2, const unsigned int strokeWidth = 1 ); - virtual void point ( const unsigned int x, const unsigned int y, const unsigned int size, const QString& colour ); - -private: - QImage PlotPixmap; - int iAxisFontWeight; - -public slots: - void OnTimerDailyUpdate() { Update(); } -}; -#endif - -class CSvgHistoryGraph : public QObject, virtual public AHistoryGraph -{ - Q_OBJECT - -public: - CSvgHistoryGraph ( const int iMaxDaysHistory ); - virtual void Update(); - -protected: - virtual void Save ( const QString sFileName ); - - virtual void rect ( const unsigned int x, const unsigned int y, const unsigned int width, const unsigned int height ); - virtual void text ( const unsigned int x, const unsigned int y, const QString& value ); - virtual void line ( const unsigned int x1, const unsigned int y1, const unsigned int x2, const unsigned int y2, const unsigned int strokeWidth = 1 ); - virtual void point ( const unsigned int x, const unsigned int y, const unsigned int size, const QString& colour ); - -private: - QXmlStreamAttributes svgRootAttributes; - QString svgImage; - QXmlStreamWriter svgStreamWriter; - -public slots: - void OnTimerDailyUpdate() { Update(); } -}; diff --git a/src/main.cpp b/src/main.cpp index 8cc8d15877..8890ae49b3 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -72,7 +72,6 @@ int main ( int argc, char** argv ) bool bUseTranslation = true; bool bCustomPortNumberGiven = false; int iNumServerChannels = DEFAULT_USED_NUM_CHANNELS; - int iMaxDaysHistory = DEFAULT_DAYS_HISTORY; int iCtrlMIDIChannel = INVALID_MIDI_CH; quint16 iPortNumber = DEFAULT_PORT_NUMBER; ELicenceType eLicenceType = LT_NO_LICENCE; @@ -81,7 +80,6 @@ int main ( int argc, char** argv ) QString strHTMLStatusFileName = ""; QString strServerName = ""; QString strLoggingFileName = ""; - QString strHistoryFileName = ""; QString strRecordingDirName = ""; QString strCentralServer = ""; QString strServerInfo = ""; @@ -162,26 +160,6 @@ int main ( int argc, char** argv ) } - // Maximum days in history display ------------------------------------- - if ( GetNumericArgument ( tsConsole, - argc, - argv, - i, - "-D", - "--histdays", - 1, - 366, - rDbleArgument ) ) - { - iMaxDaysHistory = static_cast ( rDbleArgument ); - - tsConsole << "- maximum days in history display: " - << iMaxDaysHistory << endl; - - continue; - } - - // Start minimized ----------------------------------------------------- if ( GetFlagArgument ( argv, i, @@ -364,21 +342,6 @@ int main ( int argc, char** argv ) } - // Server history file name -------------------------------------------- - if ( GetStringArgument ( tsConsole, - argc, - argv, - i, - "-y", - "--history", - strArgument ) ) - { - strHistoryFileName = strArgument; - tsConsole << "- history file name: " << strHistoryFileName << endl; - continue; - } - - // Recording directory ------------------------------------------------- if ( GetStringArgument ( tsConsole, argc, @@ -541,12 +504,6 @@ int main ( int argc, char** argv ) iPortNumber += 10; // increment by 10 } - // display a warning if in server no GUI mode and a history file is requested - if ( !bIsClient && !bUseGUI && !strHistoryFileName.isEmpty() ) - { - tsConsole << "Qt5 requires a windowing system to paint a JPEG image; image will use SVG" << endl; - } - // Application/GUI setup --------------------------------------------------- // Application object @@ -655,11 +612,9 @@ int main ( int argc, char** argv ) // Server: // actual server object CServer Server ( iNumServerChannels, - iMaxDaysHistory, strLoggingFileName, iPortNumber, strHTMLStatusFileName, - strHistoryFileName, strServerName, strCentralServer, strServerInfo, @@ -760,7 +715,6 @@ QString UsageArguments ( char **argv ) "\nServer only:\n" " -a, --servername server name, required for HTML status\n" " -d, --discononquit disconnect all clients on quit\n" - " -D, --histdays number of days of history to display\n" " -e, --centralserver address of the central server\n" " -F, --fastupdate use 64 samples frame size mode\n" " -g, --pingservers ping servers in list to keep NAT port open\n" @@ -780,7 +734,6 @@ QString UsageArguments ( char **argv ) " -s, --server start server\n" " -u, --numchannels maximum number of channels\n" " -w, --welcomemessage welcome message on connect\n" - " -y, --history enable connection history and set file name\n" " -z, --startminimized start minimizied\n" "\nClient only:\n" " -M, --mutestream starts the application in muted state\n" diff --git a/src/server.cpp b/src/server.cpp index a2d4ee6a9d..9ff179a500 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -220,11 +220,9 @@ void CHighPrecisionTimer::run() // CServer implementation ****************************************************** CServer::CServer ( const int iNewMaxNumChan, - const int iMaxDaysHistory, const QString& strLoggingFileName, const quint16 iPortNumber, const QString& strHTMLStatusFileName, - const QString& strHistoryFileName, const QString& strServerNameForHTMLStatusFile, const QString& strCentralServer, const QString& strServerInfo, @@ -237,7 +235,7 @@ CServer::CServer ( const int iNewMaxNumChan, bUseDoubleSystemFrameSize ( bNUseDoubleSystemFrameSize ), iMaxNumChannels ( iNewMaxNumChan ), Socket ( this, iPortNumber ), - Logging ( iMaxDaysHistory ), + Logging ( ), iFrameCount ( 0 ), bWriteStatusHTMLFile ( false ), HighPrecisionTimer ( bNUseDoubleSystemFrameSize ), @@ -368,23 +366,9 @@ CServer::CServer ( const int iNewMaxNumChan, // allocate worst case memory for the channel levels vecChannelLevels.Init ( iMaxNumChannels ); - // enable history graph (if requested) - if ( !strHistoryFileName.isEmpty() ) - { - Logging.EnableHistory ( strHistoryFileName ); - } - // enable logging (if requested) if ( !strLoggingFileName.isEmpty() ) { - // in case the history is enabled and a logging file name is - // given, parse the logging file for old entries which are then - // added in the history on software startup - if ( !strHistoryFileName.isEmpty() ) - { - Logging.ParseLogFile ( strLoggingFileName ); - } - Logging.Start ( strLoggingFileName ); } diff --git a/src/server.h b/src/server.h index d94993ab71..6b47423811 100755 --- a/src/server.h +++ b/src/server.h @@ -172,11 +172,9 @@ class CServer : public: CServer ( const int iNewMaxNumChan, - const int iMaxDaysHistory, const QString& strLoggingFileName, const quint16 iPortNumber, const QString& strHTMLStatusFileName, - const QString& strHistoryFileName, const QString& strServerNameForHTMLStatusFile, const QString& strCentralServer, const QString& strServerInfo, diff --git a/src/serverlogging.cpp b/src/serverlogging.cpp index e9ba0b1b57..2c2ee4cdb0 100755 --- a/src/serverlogging.cpp +++ b/src/serverlogging.cpp @@ -45,20 +45,6 @@ void CServerLogging::Start ( const QString& strLoggingFileName ) } } -void CServerLogging::EnableHistory ( const QString& strHistoryFileName ) -{ -#ifndef HEADLESS - if ( strHistoryFileName.right ( 4 ).compare ( ".svg", Qt::CaseInsensitive ) != 0 ) - { - JpegHistoryGraph.Start ( strHistoryFileName ); - } - else -#endif - { - SvgHistoryGraph.Start ( strHistoryFileName ); - } -} - void CServerLogging::AddNewConnection ( const QHostAddress& ClientInetAddr, const int iNumberOfConnectedClients ) { @@ -69,12 +55,6 @@ void CServerLogging::AddNewConnection ( const QHostAddress& ClientInetAddr, QTextStream& tsConsoleStream = *( ( new ConsoleWriterFactory() )->get() ); tsConsoleStream << strLogStr << endl; // on console *this << strLogStr; // in log file - - // add element to history -#ifndef HEADLESS - JpegHistoryGraph.Add ( QDateTime::currentDateTime(), ClientInetAddr ); -#endif - SvgHistoryGraph.Add ( QDateTime::currentDateTime(), ClientInetAddr ); } void CServerLogging::AddServerStopped() @@ -85,17 +65,6 @@ void CServerLogging::AddServerStopped() QTextStream& tsConsoleStream = *( ( new ConsoleWriterFactory() )->get() ); tsConsoleStream << strLogStr << endl; // on console *this << strLogStr; // in log file - - // add element to history and update on server stop -#ifndef HEADLESS - JpegHistoryGraph.Add ( QDateTime::currentDateTime(), AHistoryGraph::HIT_SERVER_STOP ); -#endif - SvgHistoryGraph.Add ( QDateTime::currentDateTime(), AHistoryGraph::HIT_SERVER_STOP ); - -#ifndef HEADLESS - JpegHistoryGraph.Update(); -#endif - SvgHistoryGraph.Update(); } void CServerLogging::operator<< ( const QString& sNewStr ) @@ -109,68 +78,6 @@ void CServerLogging::operator<< ( const QString& sNewStr ) } } -void CServerLogging::ParseLogFile ( const QString& strFileName ) -{ - // open file for reading - QFile LogFile ( strFileName ); - LogFile.open ( QIODevice::ReadOnly | QIODevice::Text ); - - QTextStream inStream ( &LogFile ); - - // read all content from file - while ( !inStream.atEnd() ) - { - // get a new line from log file - QString strCurLine = inStream.readLine(); - - // parse log file line - QStringList strlistCurLine = strCurLine.split ( "," ); - - // check number of separated strings condition - if ( strlistCurLine.size() == 3 ) - { - // first entry - QDateTime curDateTime = - QDateTime::fromString ( strlistCurLine.at ( 0 ).trimmed(), - "yyyy-MM-dd HH:mm:ss" ); - - if ( curDateTime.isValid() ) - { - // check if server stop or new client connection - QString strAddress = strlistCurLine.at ( 1 ).trimmed(); - - if ( strAddress.isEmpty() ) - { - // server stop -#ifndef HEADLESS - JpegHistoryGraph.Add ( curDateTime, AHistoryGraph::HIT_SERVER_STOP ); -#endif - SvgHistoryGraph.Add ( curDateTime, CSvgHistoryGraph::HIT_SERVER_STOP ); - } - else - { - QHostAddress curAddress; - - // second entry is IP address - if ( curAddress.setAddress ( strlistCurLine.at ( 1 ).trimmed() ) ) - { - // new client connection -#ifndef HEADLESS - JpegHistoryGraph.Add ( curDateTime, curAddress ); -#endif - SvgHistoryGraph.Add ( curDateTime, curAddress ); - } - } - } - } - } - -#ifndef HEADLESS - JpegHistoryGraph.Update(); -#endif - SvgHistoryGraph.Update(); -} - QString CServerLogging::CurTimeDatetoLogString() { // time and date to string conversion diff --git a/src/serverlogging.h b/src/serverlogging.h index aeb46a1aec..749d0e848a 100755 --- a/src/serverlogging.h +++ b/src/serverlogging.h @@ -32,26 +32,19 @@ #include "global.h" #include "util.h" -#include "historygraph.h" /* Classes ********************************************************************/ class CServerLogging { public: - CServerLogging ( const int iMaxDaysHistory ) : -#ifndef HEADLESS - JpegHistoryGraph ( iMaxDaysHistory ), -#endif - SvgHistoryGraph ( iMaxDaysHistory ), + CServerLogging() : bDoLogging ( false ), File ( DEFAULT_LOG_FILE_NAME ) {} virtual ~CServerLogging(); void Start ( const QString& strLoggingFileName ); - void EnableHistory ( const QString& strHistoryFileName ); void AddServerStopped(); - void ParseLogFile ( const QString& strFileName ); void AddNewConnection ( const QHostAddress& ClientInetAddr, const int iNumberOfConnectedClients ); @@ -60,10 +53,6 @@ class CServerLogging void operator<< ( const QString& sNewStr ); QString CurTimeDatetoLogString(); -#ifndef HEADLESS - CJpegHistoryGraph JpegHistoryGraph; -#endif - CSvgHistoryGraph SvgHistoryGraph; - bool bDoLogging; - QFile File; + bool bDoLogging; + QFile File; }; From cba2b746c8af6f5bd9c045b1d1b7ede181a33e5c Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 8 Aug 2020 08:25:04 +0200 Subject: [PATCH 450/936] added the great Github repos jamulus-web and jamulus-php from softins as Git submodules in the tools directory --- .gitmodules | 6 ++++++ tools/jamulus-php | 1 + tools/jamulus-web | 1 + 3 files changed, 8 insertions(+) create mode 160000 tools/jamulus-php create mode 160000 tools/jamulus-web diff --git a/.gitmodules b/.gitmodules index 3f550c737e..919c7ff33e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,9 @@ [submodule "libs/oboe"] path = libs/oboe url = https://github.com/google/oboe.git +[submodule "tools/jamulus-php"] + path = tools/jamulus-php + url = https://github.com/softins/jamulus-php +[submodule "tools/jamulus-web"] + path = tools/jamulus-web + url = https://github.com/softins/jamulus-web diff --git a/tools/jamulus-php b/tools/jamulus-php new file mode 160000 index 0000000000..efc4302b31 --- /dev/null +++ b/tools/jamulus-php @@ -0,0 +1 @@ +Subproject commit efc4302b316e68af635c9c29ac2379fbadfc2cea diff --git a/tools/jamulus-web b/tools/jamulus-web new file mode 160000 index 0000000000..7b8b3c0a1c --- /dev/null +++ b/tools/jamulus-web @@ -0,0 +1 @@ +Subproject commit 7b8b3c0a1c87cdb66e7d8a3706667d49d3c37a0a From 0c85be411c255d2e536087569a86f8ea1825f4a1 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 8 Aug 2020 08:32:10 +0200 Subject: [PATCH 451/936] add softins/jamulus-wireshark as a submodule --- .gitmodules | 3 +++ tools/jamulus-wireshark | 1 + 2 files changed, 4 insertions(+) create mode 160000 tools/jamulus-wireshark diff --git a/.gitmodules b/.gitmodules index 919c7ff33e..2d9e5a766b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,3 +7,6 @@ [submodule "tools/jamulus-web"] path = tools/jamulus-web url = https://github.com/softins/jamulus-web +[submodule "tools/jamulus-wireshark"] + path = tools/jamulus-wireshark + url = https://github.com/softins/jamulus-wireshark diff --git a/tools/jamulus-wireshark b/tools/jamulus-wireshark new file mode 160000 index 0000000000..c982ac406e --- /dev/null +++ b/tools/jamulus-wireshark @@ -0,0 +1 @@ +Subproject commit c982ac406e5a5bfcb5b11b4db589bb9e00f75b38 From 4f4cc8db99febdf847324fdfb61840828d37f6d4 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 8 Aug 2020 08:43:05 +0200 Subject: [PATCH 452/936] set a placeholder text to explain how to filter occupied servers --- ChangeLog | 2 - src/connectdlg.cpp | 3 + src/res/translation/translation_de_DE.ts | 139 ++++++++++++----------- src/res/translation/translation_es_ES.ts | 139 ++++++++++++----------- src/res/translation/translation_fr_FR.ts | 139 ++++++++++++----------- src/res/translation/translation_it_IT.ts | 139 ++++++++++++----------- src/res/translation/translation_nl_NL.ts | 139 ++++++++++++----------- src/res/translation/translation_pl_PL.ts | 139 ++++++++++++----------- src/res/translation/translation_pt_BR.ts | 139 ++++++++++++----------- src/res/translation/translation_pt_PT.ts | 139 ++++++++++++----------- src/res/translation/translation_sv_SE.ts | 139 ++++++++++++----------- 11 files changed, 651 insertions(+), 605 deletions(-) diff --git a/ChangeLog b/ChangeLog index ced1406b0d..3bc88d2169 100644 --- a/ChangeLog +++ b/ChangeLog @@ -27,8 +27,6 @@ - bug fix: --showallservers ping column sort is alphabetic (#201) -TODO make clear that filter # filters musicians - diff --git a/src/connectdlg.cpp b/src/connectdlg.cpp index a348090a83..a39144c96b 100755 --- a/src/connectdlg.cpp +++ b/src/connectdlg.cpp @@ -143,6 +143,9 @@ CConnectDlg::CConnectDlg ( CClient* pNCliP, lvwServers->sortItems ( 0, Qt::AscendingOrder ); } + // set a placeholder text to explain how to filter occupied servers (#397) + edtFilter->setPlaceholderText ( tr ( "Type # for occupied servers" ) ); + #ifdef ANDROID // for the android version maximize the window setWindowState ( Qt::WindowMaximized ); diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index b0a7dceef8..c52b601c6c 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -559,7 +559,7 @@ CClientDlg - + Input Level Meter Eingangspegelanzeige @@ -568,7 +568,7 @@ Die Eingangspegelanzeige zeigt den Pegel der beiden Stereokanäle der selektierten Audiohardware an. - + Make sure not to clip the input signal to avoid distortions of the audio signal. Man sollte darauf achten, dass das Signal nicht zu stark ausgesteuert ist, um Verzerrungen des Signal zu vermeiden. @@ -593,17 +593,17 @@ Software nicht verbunden ist. Das kann man erreichen, indem man den Eingangskanal im Wiedergabemixer stumm schaltet. - + Input level meter Eingangspegelanzeige - + Simulates an analog LED level meter. Simuliert eine analoge LED-Signalpegelanzeige. - + Connect/Disconnect Button Verbinden-/Trennschalter @@ -612,7 +612,7 @@ Drücke diesen Knopf um sich mit dem Server zu verbinden. Es wird ein Fenster angezeigt, in dem man den Server auswählen kann. Wenn man gerade verbunden ist und den Knopf drückt, dann wird die Verbindung getrennt und die Session wird beendet. - + Connect and disconnect toggle button Schalter zum Verbinden und Trennen @@ -625,12 +625,12 @@ Software. - + Local Audio Input Fader Lokaler Eingangspegelregler - + Local audio input fader (left/right) Lokaler Eingangsregler @@ -651,62 +651,62 @@ Wenn diese LED rot leuchtet, dann wirst du keinen Spaß haben mit der - + This shows the level of the two stereo channels for your audio input. Die Eingangspegelanzeige zeigt den Pegel der beiden Stereokanäle der selektierten Audiohardware an. - + If the application is connected to a server and you play your instrument/sing into the microphone, the VU 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. Wenn die Software verbunden ist und du spielst dein Instrument, dann sollte die Eingangspegelanzeige flackern. Wenn das nicht der Fall ist, dann ist wahrscheinlich der falsche Eingangskanal ausgewählt (z.B. der Line-In-Kanal anstatt des Mikrofonkanals) oder der Eingangsregler im (Windows) Systemmixer ist zu niedrig eingestellt. - + For proper usage of the application, you should not hear your singing/instrument through the loudspeaker or your headphone when the software is not connected.This can be achieved by muting your input audio channel in the Playback mixer (not the Recording mixer!). Um die Software optimal zu nutzen, sollte man sein eigenes Instrument oder Gesang nicht im Lautsprecher oder Kopfhörer hören, wenn die Software nicht verbunden ist. Das kann man erreichen, indem man den Eingangskanal im Wiedergabemixer stumm schaltet. - + Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. Wenn man diesen Knopf drückt, dann wird die Beschriftung des Knopfes von Verbinden zu Trennen geändert, das heißt, dass er eine Umschaltfunktion hat zum Verbinden und Trennen der Applikation. - + Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows Mit diesem Einstellregler kann der relative Pegel vom linken und rechten Eingangskanal verändert werden. Für ein Mono-Signal verhält sich der Regler wie ein Pan-Regler. Wenn, z.B., ein Mikrofon am rechten Kanal angeschlossen ist und das Instrument am linken Eingangskanal ist viel lauter als das Mikrofon, dann kann man den Lautstärkeunterschied mit diesem Regler kompensieren indem man den Regler in eine Richtung verschiebt, so dass über dem Regler - + Reverb effect Halleffektregler - + Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. Der Halleffekt kann auf einen selektierten Mono-Audiokanal oder auf beide Stereoaudiokanäle angewendet werden. Die Mono-Kanalselektion und die Hallstärke können eingestellt werden. Wenn z.B. ein Mikrofonsignal auf dem rechten Kanal anliegt und ein Halleffekt soll auf das Mikrofonsignal angewendet werden, dann muss die Hallkanalselektion auf rechts eingestellt werden und der Hallregler muss erhöht werden, bis die gewünschte Stärke des Halleffekts erreicht ist. - + Reverb effect level setting Halleffekt Pegelregler - + Reverb Channel Selection Halleffekt Kanalselektion - + With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. Mit diesen Knöpfen kann ausgewählt werden, auf welches Eingangssignal der Halleffekt angewendet werden soll. Entweder der rechte oder linke Eingangskanal kann ausgewählt werden. - + Left channel selection for reverb Auswahl linker Kanal für Halleffekt - + Right channel selection for reverb Auswahl rechter Kanal für Halleffekt @@ -715,37 +715,37 @@ Die - + Green Grün - + The delay is perfect for a jam session. Die Verzögerung it gering genug für das Jammen. - + Yellow Gelb - + Red Rot - + Delay status LED indicator LED Stautuslampe für die Verzögerung - + Opens a dialog where you can select a server to connect to. If you are connected, pressing this button will end the session. Wenn man diesen Knopf drückt, dann wird die Beschriftung des Knopfes von Verbinden zu Trennen geändert, das heißt, dass er eine Umschaltfunktion hat zum Verbinden und Trennen der Software. - + Shows the current audio delay status: Die Status-LED für die Verzögerung zeigt eine Bewertung der Gesamtverzögerung des Audiosignals: @@ -754,88 +754,88 @@ Die Verzögerung ist gering genug für das Jammen. - + A session is still possible but it may be harder to play. Man kann noch spielen aber es wird schwieriger Lieder mit hohem Tempo zu spielen. - + The delay is too large for jamming. Die Verzögerung ist zu hoch zum Jammen. - + If this LED indicator turns red, you will not have much fun using the application. Wenn diese LED rot leuchtet, dann wirst du keinen Spaß haben mit der Software. - + The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: Die Status-LED für den Netzwerkpuffer zeigt den aktuellen Status des Netzwerkstroms. Wenn die LED grün ist, dann gibt es keine Pufferprobleme. Wenn die LED rot anzeigt, dann ist der Netzwerkstrom kurz unterbrochen. Dies kann folgende Ursachen haben: - + The sound card's buffer delay (buffer size) is too small (see Settings window). Der Soundkartenpuffer ist zu klein eingestellt. - + The upload or download stream rate is too high for your internet bandwidth. Die Upload-Rate der Internetverbindung ist zu klein für den Netzwerkdatenstrom. - + Buffers status LED indicator LED Statuslampe für den Netzwerkpuffer - - + + C&onnect &Verbinden - + &File &Datei - + &View &Ansicht - + &Connection Setup... &Verbinden... - + My &Profile... Mein &Profil... - + C&hat... C&hat... - + &Settings... &Einstellungen... - + &Analyzer Console... - + E&xit &Beenden - + &Edit B&earbeiten @@ -848,18 +848,18 @@ Keine - + Center Mitte - + R - - + + L @@ -868,12 +868,12 @@ Mit diesem Einstellregler kann der relative Pegel vom linken und rechten Eingangskanal verändert werden. Für ein Mono-Signal verhält sich der Regler wie ein Pan-Regler. Wenn, z.B., ein Mikrofon am rechten Kanal angeschlossen ist und das Instrument am linken Eingangskanal ist viel lauter als das Mikrofon, dann kann man den Lautstärkeunterschied mit diesem Regler kompensieren indem man den Regler in eine Richtung verschiebt, so dass über dem Regler - + , where angezeigt wird, wobei - + is the current attenuation indicator. die aktuelle Dämpfung anzeigt. @@ -898,7 +898,7 @@ Mit diesen Knöpfen kann ausgewählt werden, auf welches Eingangssignal der Halleffekt angewendet werden soll. Entweder der rechte oder linke Eingangskanal kann ausgewählt werden. - + Delay Status LED Status LED für die Verzögerung @@ -907,7 +907,7 @@ Die Status-LED für die Verzögerung zeigt eine Bewertung der Gesamtverzögerung des Audiosignals. Wenn die LED grün leuchtet, dann ist die Verzögerung gering genug für das Jammen. Wenn die LED gelb anzeigt kann man noch spielen aber es wird schwieriger Lieder mit hohem Tempo zu spielen. Wenn die LED rot anzeigt, dann ist die Verzögerung zu hoch zum Jammen. - + Buffers Status LED Status LED für den Netzwerkpuffer @@ -916,7 +916,7 @@ Die Status-LED für den Netzwerkpuffer zeigt den aktuellen Status des Netzwerkstroms. Wenn die LED grün ist, dann gibt es keine Pufferprobleme. Wenn die LED rot anzeigt, dann ist der Netzwerkstrom kurz unterbrochen. Dies kann folgende Ursachen haben: - + The network jitter buffer is not large enough for the current network/audio interface jitter. Der Netzwerkpuffer ist nicht groß genug eingestellt für die aktuellen Netzwerkbedingungen. @@ -929,58 +929,58 @@ Die Upload-Rate der Internetverbindung ist zu klein für den Netzwerkdatenstrom. - + The CPU of the client or server is at 100%. Die CPU des Computers ist voll ausgelastet. - + &Load Mixer Channels Setup... &Laden der Konfiguration der Mixerkanäle... - + &Save Mixer Channels Setup... &Speichern der Konfiguration der Mixerkanäle... - + Sort Channel Users by &Name Sortiere die Kanäle nach dem &Namen - + Sort Channel Users by &Instrument Sortiere die Kanäle nach dem &Instrument - + Sort Channel Users by &Group Sortiere die Kanäle nach der &Gruppe - + Central Server Zentralserver - - + + Select Channel Setup File Auswählen der Datei für die Konfiguration der Mixerkanäle - + user Musiker - + users Musiker - + D&isconnect &Trennen @@ -1969,6 +1969,11 @@ Show all musicians check box Zeige alle Musiker Schalter + + + Type # for occupied servers + + CConnectDlgBase @@ -3301,7 +3306,7 @@ 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.ts b/src/res/translation/translation_es_ES.ts index 4f33debe4c..ef09d9baa9 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -571,7 +571,7 @@ CClientDlg - + Input Level Meter Indicador nivel entrada @@ -580,7 +580,7 @@ Los indicadores de nivel de entrada muestran el nivel de entrada de los dos canales estéreo de la entrada de audio actualmente seleccionada. - + Make sure not to clip the input signal to avoid distortions of the audio signal. Asegúrate de no clipear la señal de entrada para evitar distorsiones de la señal de audio. @@ -605,17 +605,17 @@ no está conectado. Esto se puede hacer muteando tu entrada de audio en el mezclador de Reproducción (¡y no en el de Grabación!). - + Input level meter Indicador nivel entrada - + Simulates an analog LED level meter. Simula un indicador analógico de LEDs. - + Connect/Disconnect Button Botón Conexión/Desconexión @@ -624,7 +624,7 @@ Pulsa este botón para conectar con un servidor. Se abrirá una ventana donde puedes seleccionar un servidor. Si estás conectado, este botón finalizará la sesión. - + Connect and disconnect toggle button Botón de conexión y desconexión @@ -637,12 +637,12 @@ . - + Local Audio Input Fader Fader Entrada Audio Local - + Local audio input fader (left/right) Fader entrada audio local (izq/dcho) @@ -663,37 +663,37 @@ Si este indicador LED se vuelve rojo, no te divertirás demasiado utilizando el - + This shows the level of the two stereo channels for your audio input. Esto muestra los niveles de los dos canales estéreo de tu entrada de audio. - + If the application is connected to a server and you play your instrument/sing into the microphone, the VU 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. Si la aplicación está conectada a un servidor y tocas tu instrumento/cantas por el micrófono, el vúmetro debería parpadear. Si no es así, seguramente has seleccionado el canal de entrada equivocado (por ej. line in en lugar de la entrada del micrófono) o está muy bajo el gain de entrada en el mezclador de audio (Windows). - + For proper usage of the application, you should not hear your singing/instrument through the loudspeaker or your headphone when the software is not connected.This can be achieved by muting your input audio channel in the Playback mixer (not the Recording mixer!). Para un uso adecuado de la aplicación, no deberías oír tu voz/instrumento por el altavoz o los auriculares cuando el software no está conectado. Esto se puede realizar muteando tu canal de entrada de audio en el mezclador de Reproducción (¡no el de Grabación!). - + Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. Pulsando este botón cambia el texto del mismo de Conectar a Desconectar; esto es, tiene la función de conmutador para conectar y desconectar el software. - + Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows Controla los niveles relativos de los canales locales de audio derecho e izquierdo. Para una señal mono actúa como paneo entre los dos canales. Por ej., si se conecta un miocrófono al canal derecho y un instrumento al izquierdo que suena mucho más alto que el micrófono, mueve el fader en una dirección donde la etiqueta sobre el fader muestra - + Reverb effect Efecto reverb - + Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. Se puede aplicar un efecto de reverb a un canal local de audio mono o a ambos canales en modo estéreo. Se puede modificar la selección de canales en modo mono y el nivel de reverb. Por ej., si la señal del micrófono va por el canal derecho de la tarjeta de sonido y se desea aplicar reverb, cambia el selector de canal a derecho y sube el fader hasta alcanzar el nivel de reverb deseado. @@ -702,27 +702,27 @@ El efecto de reverb requiere un esfuerzo importante del procesador, por lo que solo debería usarse en ordenadores potentes. Si se deja el fader de reverb al mínimo (la configuración por defecto), el efecto estará desactivado y no significará ninguna carga adicional para el procesador. - + Reverb effect level setting Nivel efecto reverb - + Reverb Channel Selection Selección Canal Reverb - + With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. Con estos botones se puede escoger el canal de entrada de audio al que se aplica el efecto de reverb. Se pueden elegir los canales de entrada izquierdo o derecho. - + Left channel selection for reverb Selección canal izq para reverb - + Right channel selection for reverb Selección canal dcho para reverb @@ -731,22 +731,22 @@ El software - + Green Verde - + The delay is perfect for a jam session. El retardo es perfecto para una jam session. - + Yellow Amarillo - + Red Rojo @@ -755,17 +755,17 @@ Si este indicador LED se vuelve rojo, no te divertirás demasiado utilizando la aplicación - + Delay status LED indicator Indicador LED estado retardo - + Opens a dialog where you can select a server to connect to. If you are connected, pressing this button will end the session. Abre un diálogo donde puedes escoger un servidor al cual conectarte. Si estás conectado, pulsar este botón finalizará la sesión. - + Shows the current audio delay status: Muestra el estado actual del retardo de audio: @@ -774,93 +774,93 @@ El retardo es perfecto para una jam session - + A session is still possible but it may be harder to play. Una sesión aún es posible pero quizá sea más difícil tocar. - + The delay is too large for jamming. El retardo es demasiado grande para tocar. - + If this LED indicator turns red, you will not have much fun using the application. Si este indicador LED se vuelve rojo, no te divertirás demasiado utilizando la aplicación. - + The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: El LED de estado de buffers muestra el estado actual del flujo de audio. Si está rojo, hay interrupciones en el flujo de audio. Esto puede ser causado por alguno de los siguientes problemas: - + The sound card's buffer delay (buffer size) is too small (see Settings window). El retardo de buffer de la tarjeta de audio (tamaño buffer) tiene un valor demasiado bajo (ver ventana de Configuración). - + The upload or download stream rate is too high for your internet bandwidth. La tasa de subida o bajada es demasiado alta para tu ancho de banda de Internet. - + Buffers status LED indicator Indicador LED estado buffers - - + + C&onnect C&onectar - + &File &Archivo - + &View &Ver - + &Connection Setup... &Configuración de Conexión... - + My &Profile... Mi &Perfil... - + C&hat... C&hat... - + &Settings... &Configuración... - + &Analyzer Console... &Analyzer Console... - + E&xit S&alir - + &Edit &Editar - + Sort Channel Users by &Group Ordenar Usuarios de Canal por &Grupo @@ -869,18 +869,18 @@ Ninguno - + Center Centro - + R R - - + + L L @@ -889,12 +889,12 @@ Con el fader de audio, los niveles relativos de los canales locales de audio derecho e izquierdo pueden cambiarse. Para una señal mono actúa como paneo entre los dos canales. Por ej., si se conecta un miocrófono al canal derecho y un instrumento al izquierdo que suena mucho más alto que el micrófono, mueve el fader en una dirección donde la etiqueta sobre el fader muestra - + , where , donde - + is the current attenuation indicator. es el indicador actual de atenuación. @@ -919,7 +919,7 @@ Con estos botones se puede escoger el canal de entrada de audio al que se aplica el efecto de reverberación. Se pueden elegir los canales de entrada izquierdo o derecho. - + Delay Status LED LED Estado Retardo @@ -928,7 +928,7 @@ El indicador LED del estado del retardo muestra el estado actual del retardo del audio. Si está en verde, el retardo es perfecto para una jam session. Si está en amarillo, la sesión aún es posible, pero quizá sea más difícil tocar. Si está en rojo, el retardo es demasiado alto para tocar. - + Buffers Status LED LED Estado Buffers @@ -937,7 +937,7 @@ El indicador LED del estado de buffers muestra el estado actual del flujo de audio. Si está verde, no hay problemas de buffer y no se interrumpe el flujo de audio. Si está rojo, el flujo de audio se interrumpe, a causa de uno de los siguientes problemas: - + The network jitter buffer is not large enough for the current network/audio interface jitter. El jitter buffer de red no es lo suficientemente grande para el jitter actual de la red/interfaz de audio. @@ -950,53 +950,53 @@ La tasa de subida o bajada is demasiado alta para el ancho de banda disponible de internet. - + The CPU of the client or server is at 100%. El procesador del cliente o del servidor está al 100%. - + &Load Mixer Channels Setup... &Cargar Configuración Canales Mezclador... - + &Save Mixer Channels Setup... &Guardar Configuración Canales Mezclador... - + Sort Channel Users by &Name Ordenar Canales por &Nombre - + Sort Channel Users by &Instrument Ordenar Canales por &Instrumento - + Central Server Servidor Central - - + + Select Channel Setup File Seleccionar Archivo Configuración Canales - + user usuario - + users usuarios - + D&isconnect D&esconectar @@ -1993,6 +1993,11 @@ Show all musicians check box Selección Mostrar todos los músicos + + + Type # for occupied servers + + CConnectDlgBase @@ -3325,7 +3330,7 @@ global - + For more information use the What's This help (help menu, right mouse button or Shift+F1) Para más información utiliza ¿Qué es Esto? (menú de ayuda, botón derecho del ratón o Shift+F1) diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index bbd9eba100..d88e0e8823 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -579,7 +579,7 @@ CClientDlg - + Input Level Meter Indicateur de niveau d'entrée @@ -588,7 +588,7 @@ Les indicateurs de niveau d'entrée indiquent le niveau d'entrée des deux canaux stéréo de l'entrée audio actuellement sélectionnée. - + Make sure not to clip the input signal to avoid distortions of the audio signal. Veillez à ne pas clipper le signal d'entrée afin d'éviter les distorsions du signal audio. @@ -613,17 +613,17 @@ n'est pas connecté. Vous pouvez y parvenir en mettant en sourdine votre canal audio d'entrée dans le mixeur de lecture (et pas dans le mixeur d'enregistrement !). - + Input level meter Indicateur de niveau d'entrée - + Simulates an analog LED level meter. Indicateur de niveau simulant un voyant analogique - + Connect/Disconnect Button Bouton connecter/déconnecter @@ -632,7 +632,7 @@ Appuyez sur ce bouton pour vous connecter à un serveur. Une boîte de dialogue vous permettant de sélectionner un serveur s'ouvrira. Si vous êtes connecté, l'appui sur ce bouton mettra fin à la session. - + Connect and disconnect toggle button Bouton-bascule de connection/déconnexion @@ -645,12 +645,12 @@ . - + Local Audio Input Fader Chariot d'entrée audio locale - + Local audio input fader (left/right) Chariot d'entrée audio locale (gauche/droite) @@ -671,62 +671,62 @@ Si ce voyant devient rouge, vous n'aurez pas beaucoup de plaisir à utiliser le logiciel - + This shows the level of the two stereo channels for your audio input. Ceci indique le niveau des deux canaux stéréo pour votre entrée audio. - + If the application is connected to a server and you play your instrument/sing into the microphone, the VU 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. Si l'application est connectée à un serveur et que vous jouez votre instrument/chantez dans le microphone, le VU-mètre 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 mélangeur audio (Windows). - + For proper usage of the application, you should not hear your singing/instrument through the loudspeaker or your headphone when the software is not connected.This can be achieved by muting your input audio channel in the Playback mixer (not the Recording mixer!). Pour une bonne utilisation de l'application, vous ne devez pas entendre votre chant/instrument par le haut-parleur ou votre casque lorsque le logiciel n'est pas connecté. Ceci peut être réalisé en coupant votre canal audio d'entrée dans le mixeur de lecture (pas dans le mixeur d'enregistrement !). - + Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. En cliquant sur ce bouton, la légende du bouton passe de Connecter à Déconnecter, c'est-à-dire qu'il s'agit d'une fonctionnalité de basculement pour connecter et déconnecter l'application. - + Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows Contrôle les niveaux relatifs des canaux audio locaux gauche et droit. Pour un signal mono, il agit comme un pan entre les deux canaux. Par exemple, si un microphone est connecté au canal d'entrée droit et qu'un instrument est connecté au canal d'entrée gauche qui est beaucoup plus fort que le microphone, déplacez le curseur audio dans une direction où l'étiquette au-dessus du curseur indique - + Reverb effect Effet Réverb - + Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. La réverbération peut être appliquée à un canal audio mono local ou aux deux canaux en mode stéréo. La sélection du canal mono et le niveau de réverbération peuvent être modifiés. Par exemple, si un signal de microphone est envoyé sur le canal audio droit de la carte son et qu'un effet de réverbération doit être appliqué, réglez le sélecteur de canal à droite et déplacez le chariot vers le haut jusqu'à ce que le niveau de réverbération souhaité soit atteint. - + Reverb effect level setting Réglage du niveau de l'effet de réverbération - + Reverb Channel Selection Sélection du canal de réverbération - + With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. Ces boutons radio permettent de choisir le canal d'entrée audio sur lequel l'effet de réverbération est appliqué. Il est possible de sélectionner le canal d'entrée gauche ou droit. - + Left channel selection for reverb Sélection du canal gauche pour la réverbération - + Right channel selection for reverb Sélection du canal droit pour la réverbération @@ -735,123 +735,123 @@ Le logiciel - + Green Vert - + The delay is perfect for a jam session. Le délai est parfait pour une séance de bÅ“ufs. - + Yellow Jaune - + Red Rouge - + Delay status LED indicator Indicateur LED d'état de délai - + Opens a dialog where you can select a server to connect to. If you are connected, pressing this button will end the session. Ouvre un dialogue dans lequel vous pouvez sélectionner un serveur auquel vous connecter. Si vous êtes connecté, le fait d'appuyer sur ce bouton mettra fin à la session. - + Shows the current audio delay status: Indique l'état actuel du retard audio : - + A session is still possible but it may be harder to play. Une session est toujours possible mais il sera probablement plus difficile de jouer. - + The delay is too large for jamming. Le délai est trop important pour bÅ“uffer. - + If this LED indicator turns red, you will not have much fun using the application. Si ce voyant LED devient rouge, vous n'aurez pas beaucoup de plaisir à utiliser l'application. - + The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: La LED d'état des tampons indique l'état actuel de l'audio/streaming. Si le voyant est rouge, le flux audio est interrompu. Cela est dû à l'un des problèmes suivants : - + The sound card's buffer delay (buffer size) is too small (see Settings window). Le délai du tampon de la carte son (taille du tampon) est trop petit (voir la fenêtre des paramètres). - + The upload or download stream rate is too high for your internet bandwidth. Le taux de flux montant ou descendant est trop élevé pour votre bande passante Internet. - + Buffers status LED indicator Indicateur LED d'état de tampon - - + + C&onnect Se c&onnecter - + &File &Fichier - + &View &Vue - + &Connection Setup... Paramètres de &connexion... - + My &Profile... Mon &profil - + C&hat... Tc&hate... - + &Settings... Paramètre&s... - + &Analyzer Console... Console d'&analyse - + E&xit &Quitter - + &Edit Édit&er @@ -864,18 +864,18 @@ Aucun - + Center Centre - + R D - - + + L G @@ -884,12 +884,12 @@ Avec le chariot audio, les niveaux relatifs des canaux audio locaux gauche et droit peuvent être modifiés. Pour un signal mono, il agit comme un panoramique entre les deux canaux. Si, par exemple, un microphone est connecté au canal d'entrée droit et qu'un instrument est connecté au canal d'entrée gauche qui est beaucoup plus fort que le microphone, déplacez le fader audio dans une direction où l'étiquette au-dessus du chariot indique - + , where , où - + is the current attenuation indicator. est l'indicateur d'atténuation actuel. @@ -914,7 +914,7 @@ Ces boutons radio permettent de choisir le canal d'entrée audio sur lequel l'effet de réverbération est appliqué. Il est possible de sélectionner le canal d'entrée gauche ou droit. - + Delay Status LED Voyant d'état de délai @@ -923,7 +923,7 @@ Le voyant d'état de délai indique l'état actuel du délai audio. Si le voyant est vert, le délai est parfait pour une session de bÅ“uf. Si le voyant est jaune, une session est toujours possible mais elle peut être plus difficile à jouer. Si le voyant est rouge, le délai est trop important pour un bÅ“uf. - + Buffers Status LED Voyant d'état de tampon @@ -932,7 +932,7 @@ Le voyant d'état des tampons indique l'état actuel de l'audio/du streaming. Si le voyant est vert, il n'y a pas de dépassement de mémoire tampon ni de sous-dépassement et le flux audio n'est pas interrompu. Si le voyant est rouge, le flux audio est interrompu en raison de l'un des problèmes suivants : - + The network jitter buffer is not large enough for the current network/audio interface jitter. Le tampon de jitter réseau n'est pas assez grand pour le jitter actuel de l'interface réseau/audio. @@ -945,58 +945,58 @@ Le taux de flux montant ou descendant est trop élevé pour la bande passante Internet actuellement disponible. - + The CPU of the client or server is at 100%. Le processeur du client ou du serveur est à 100%. - + &Load Mixer Channels Setup... &Charger la configuration des canaux du mixeur... - + &Save Mixer Channels Setup... &Sauvegarder la configuration des canaux du mixeur... - + Sort Channel Users by &Name Trier les utilisateurs du canal par &nom - + Sort Channel Users by &Instrument Trier les utilisateurs du canal par &instrument - + Sort Channel Users by &Group Trier les utilisateurs des canaux par &groupe - + Central Server Serveur central - - + + Select Channel Setup File Sélectionnez le fichier de configuration des canaux - + user utilisateur - + users utilisateurs - + D&isconnect Dé&connecter @@ -1989,6 +1989,11 @@ Show all musicians check box Case-à-cocher pour afficher tous les musiciens + + + Type # for occupied servers + + CConnectDlgBase @@ -3313,7 +3318,7 @@ global - + For more information use the What's This help (help menu, right mouse button or Shift+F1) Pour plus d'informations, utilisez l'aide Qu'est-ce que c'est (menu d'aide, bouton droit de la souris ou Maj+F1) diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index 69ba353071..014d84baf7 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -563,7 +563,7 @@ CClientDlg - + Input Level Meter Livello Segnale d'ingresso @@ -572,7 +572,7 @@ L'idicatore del segnale in ingresso mostra il livello dei due canali stereo scelti come input. - + Make sure not to clip the input signal to avoid distortions of the audio signal. Controllare di non saturare il livello di input per evitare distorsioni nel segnale audio. @@ -597,17 +597,17 @@ il programma non è connesso. Basta disattivare il canale audio in ingresso nel mixer di riproduzione (non nel mixer di registrazione!). - + Input level meter Indicatore del Segnale in ingresso - + Simulates an analog LED level meter. Simula un indicatore a LED analogico. - + Connect/Disconnect Button Pulsante: Connetti-Disconnetti @@ -616,7 +616,7 @@ Cliccare il pulsante per connettersi ad un server. Si aprirà una finestra da dove poter scegliere a quale server connettersi. Se si è già connessi cliccando questo pulsante la connessione verrà interrotta. - + Connect and disconnect toggle button Pulsante di connessione e disconnessione @@ -629,7 +629,7 @@ programma. - + Local Audio Input Fader Fader per l'input audio locale @@ -638,23 +638,23 @@ Con questo fader, è possibile modificare i livelli relativi dei canali audio sinistro e destro. Per un segnale mono si comporta come un mix tra i due canali. Se, ad esempio, un microfono è collegato al canale di ingresso destro e uno strumento è collegato al canale di ingresso sinistro che è molto più forte del microfono, spostare il fader audio nella direzione opposta a L (Sinistra) per bilanciare i volumi - - + + L L - + , where , dove - + is the current attenuation indicator. si trova l'attuale indicatore di attenuazione. - + Local audio input fader (left/right) Fader di input locale (Sinistro/Destro) @@ -691,7 +691,7 @@ Canale Destro per il Riverbero - + Delay Status LED LED di Stato del Delay @@ -704,12 +704,12 @@ Se il LED diventa rosso avrete difficoltà nel suonare con - + Delay status LED indicator LED di stato del Delay - + Buffers Status LED LED di Stato del Buffer @@ -718,7 +718,7 @@ Il LED di stato del buffer indica la qualità dello straming. Se verde non sono presenti anomalie nel buffer e lo stream audio non subirà interruzioni. Se rosso lo stream audio subirà interruzioni per causa di uno dei seguenti motivi: - + The network jitter buffer is not large enough for the current network/audio interface jitter. Il Jitter Buffer non è grande abbastanza per la tipologia di rete/interfaccia audio usate. @@ -731,208 +731,208 @@ La quantià di dati in upload o in download è eccessiva rispetto alla banda internet disponibile. - + This shows the level of the two stereo channels for your audio input. Visualizza il livello di input dei due canali stereo. - + If the application is connected to a server and you play your instrument/sing into the microphone, the VU 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. Se il programma è connesso ad un server e voi state suonando o cantando, il VU-Meter sarà in funzione. Se ciò non accade probabilemnte avete settato un ingresso errato oppure il livello di input è troppo basso. - + For proper usage of the application, you should not hear your singing/instrument through the loudspeaker or your headphone when the software is not connected.This can be achieved by muting your input audio channel in the Playback mixer (not the Recording mixer!). Per un corretto utilizzo dell'applicazione, non è possibile ascoltare il canto o lo strumento attraverso l'altoparlante o le cuffie quando il programma non è collegato. Basta disattivare l'audio del canale di ingresso nel mixer di riproduzione (non nel mixer di registrazione!). - + Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. Cliccando su questo pulsante il stato passa da Connesso a Disconnesso, implementa infatti la funzionalità di connessione-disconnessione del programma. - + Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows Controlla i livelli relativi dei canali audio locali sinistro e destro. Per un segnale mono funge da pan tra i due canali. Ad esempio, se un microfono è collegato al canale di ingresso destro e uno strumento è collegato al canale di ingresso sinistro che è molto più forte del microfono, spostare il cursore audio in una direzione in cui viene mostrata l'etichetta sopra il fader - + Reverb effect Effetto Reverbero - + Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. Il Reverbero può essere applicato sia in modalità mono che stereo. La selezione del canale mono e il livello di riverbero possono essere modificati. Ad esempio, se un segnale del microfono viene immesso nel canale audio destro della scheda audio e deve essere applicato un effetto di riverbero, impostare il selettore di canale su destra e spostare il fader verso l'alto fino a raggiungere il livello di riverbero desiderato. - + Reverb effect level setting Livello dell'effetto di Reverbero - + Reverb Channel Selection Selezione Canale Reverbero - + With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. Con questi pulsanti di opzione è possibile scegliere il canale di ingresso audio su cui viene applicato l'effetto riverbero. È possibile selezionare il canale di input sinistro o destro. - + Left channel selection for reverb Canale Sinistro per il Reverbero - + Right channel selection for reverb Canale Destro per il Reverbero - + Green Verde - + The delay is perfect for a jam session. Il delay è perfetto per una live session. - + Yellow Giallo - + Red Rosso - + Opens a dialog where you can select a server to connect to. If you are connected, pressing this button will end the session. Apre una finestra di dialogo in cui è possibile selezionare un server a cui connettersi. Se si è connessi, premere questo pulsante per terminare la sessione. - + Shows the current audio delay status: Visualizza lo stato corrente del delay: - + A session is still possible but it may be harder to play. Una sessione è ancora possibile ma potrebbe essere più difficile suonare. - + The delay is too large for jamming. Il delay è eccessivo per una live session. - + If this LED indicator turns red, you will not have much fun using the application. Se il LED diventa rosso non si avrà una buona esperinza di utilizzo dell'applicazione. - + The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: Il LED di stato del buffer mostra lo stato audio dello streaming corrente. Se la luce è rossa, il flusso audio viene interrotto. Ciò è causato da uno dei seguenti problemi: - + The sound card's buffer delay (buffer size) is too small (see Settings window). Il ritardo della scheda audio(ovvero il buffer size) è troppo basso (vedere i Settaggi della Scheda). - + The upload or download stream rate is too high for your internet bandwidth. La banda passante per lo stream (upload e download) è troppo rispetto alla qualità della connessione internet. - + The CPU of the client or server is at 100%. La CPU del client è satura al 100%. - + Buffers status LED indicator Led di stato del Buffer - - + + C&onnect C&onnetti - + &File &File - + &View &Vista - + &Connection Setup... Setup &Connessione... - + My &Profile... &Profilo Personale... - + C&hat... C&hat... - + &Settings... &Settaggi... - + &Analyzer Console... &Analizzatore... - + E&xit &Uscita - + &Load Mixer Channels Setup... &Carica Setup Mixer... - + &Save Mixer Channels Setup... &Salva Setup Mixer... - + &Edit &Modifica - + Sort Channel Users by &Name Ordina canali per &Nome - + Sort Channel Users by &Instrument Ordina canali per &Strumento - + Sort Channel Users by &Group Ordina Canali per Nome &Utente @@ -945,38 +945,38 @@ Nullo - + Center Centro - + R R - + Central Server Server Centrale - - + + Select Channel Setup File Selezione File di Setup dei Canali - + user utente - + users utenti - + D&isconnect D&isconnetti @@ -1949,6 +1949,11 @@ Show all musicians check box Box di Visualizzazione dei Musicisti + + + Type # for occupied servers + + CConnectDlgBase @@ -3265,7 +3270,7 @@ global - + For more information use the What's This help (help menu, right mouse button or Shift+F1) Per maggiori informazioni usare il comando "Cos'è Questo" (Menù Aiuto, Tasto destro del mouse oppure Shift+F1) diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index e0919de816..b42ccdcb14 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -555,7 +555,7 @@ CClientDlg - + Input Level Meter Ingangsniveaumeter @@ -564,7 +564,7 @@ De indicatoren voor het ingangsniveau geven het ingangsniveau van de twee stereokanalen van de huidige geselecteerde audio-ingang weer. - + Make sure not to clip the input signal to avoid distortions of the audio signal. Zorg ervoor dat u het ingangssignaal niet clipt om vervorming van het audiosignaal te voorkomen. @@ -589,17 +589,17 @@ software niet is verbonden. Dit kan worden bereikt door het geluidskanaal in de afspeelmixer (niet de opnamemixer!) te dempen. - + Input level meter Ingangsniveaumeter - + Simulates an analog LED level meter. Simuleert een analoge LED-niveaumeter. - + Connect/Disconnect Button Verbinden/Verbreken-knop @@ -608,7 +608,7 @@ Druk op deze knop om verbinding te maken met een server. In het daaropvolgende dialoogvenster kunt u een server kunt selecteren. Als u verbonden bent, wordt de sessie beëindigd door weer op deze knop te drukken. - + Connect and disconnect toggle button Knop voor het opzetten en verbreken van de verbinding @@ -621,7 +621,7 @@ software. - + Local Audio Input Fader Lokale audio-ingangsfader @@ -630,23 +630,23 @@ Met de audiofader kunnen de relatieve niveaus van de linker en rechter lokale audiokanalen worden gewijzigd. Voor een monosignaal werkt het als een panning tussen de twee kanalen. Als bijvoorbeeld een microfoon is verbonden op het rechter ingangskanaal en een veel luider instrument is verbonden op het linker ingangskanaal, beweeg dan de audiofader in de richting: - - + + L L - + , where , waar - + is the current attenuation indicator. is de huidige dempingsindicator. - + Local audio input fader (left/right) Lokale audio-ingangsfader (links/rechts) @@ -683,7 +683,7 @@ Rechter kanaalselectie voor galm - + Delay Status LED Vertragingsstatus LED @@ -696,12 +696,12 @@ Als deze LED-indicator rood wordt, zult u niet veel plezier beleven aan het gebruik van de - + Delay status LED indicator Vertragingsstatus LED-indicator - + Buffers Status LED Buffers Status LED @@ -710,7 +710,7 @@ De indicator voor de status van de buffers geeft de huidige status van de audio/streaming aan. Als het lampje groen is, zijn er geen bufferoverschrijdingen/onderschrijdingen en wordt de audiostream niet onderbroken. Als het lampje rood is, wordt de audiostream onderbroken door een van de volgende problemen: - + The network jitter buffer is not large enough for the current network/audio interface jitter. De buffer voor de netwerkjitter is niet groot genoeg voor de huidige netwerk-/audio-interfacejitter. @@ -723,208 +723,208 @@ De upload- of downloadstroomsnelheid is te hoog voor de huidige beschikbare internetbandbreedte. - + This shows the level of the two stereo channels for your audio input. Dit toont het nivo van de twee stereokanalen voor je audio-invoer. - + If the application is connected to a server and you play your instrument/sing into the microphone, the VU 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. Indien de applicatie verbonden is met een server en in de microfoon wordt gespeeld of gezongen, dan zou de LED-niveaumeter moeten flikkeren. Als dit niet het geval is, dan heeft u waarschijnlijk het verkeerde ingangskanaal gekozen (bijv. line in i.p.v. de microfooningang) of heeft u de ingangsversterking te laag ingesteld in de (Windows) audiomixer. - + For proper usage of the application, you should not hear your singing/instrument through the loudspeaker or your headphone when the software is not connected.This can be achieved by muting your input audio channel in the Playback mixer (not the Recording mixer!). Voor goed gebruik moet u de zang of het instrument niet via de luidspreker of koptelefoon moeten horen als de software niet verbonden is. Dit kan worden bereikt door het dempen van je audiokanaal in de Playback mixer (niet de opnamemixer!). - + Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. Door op deze knop te klikken verandert het onderschrift van de knop van Verbinden naar Verbreken, d.w.z. dat het een toggle-functie heeft voor verbinden/verbreken. - + Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows Met de audiofader kunnen de relatieve niveaus van de linker en rechter lokale audiokanalen worden gewijzigd. Voor een monosignaal werkt het als een panning tussen de twee kanalen. Als bijvoorbeeld een microfoon is verbonden op het rechter ingangskanaal en een veel luider instrument is verbonden op het linker ingangskanaal, beweeg dan de audiofader in de richting van het label - + Reverb effect Galm-effect - + Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. Een galmeffect kan worden toegepast op één lokaal mono-audiokanaal of op beide kanalen in de stereomodus. De monokanaalselectie en het galmniveau kunnen worden aangepast. Als bijvoorbeeld het microfoonsignaal in het juiste audiokanaal van de geluidskaart binnenkomt en er een galmeffect wordt toegepast, zet u de kanaalkeuzeschakelaar naar rechts en beweegt u de fader omhoog tot het gewenste galmniveau is bereikt. - + Reverb effect level setting Instelling van het niveau van het galmeffect - + Reverb Channel Selection Selectie van het galmkanaal - + With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. Met deze radioknoppen kan het audio-invoerkanaal worden gekozen waarop het galmeffect wordt toegepast. Het linker of rechter ingangskanaal kan worden gekozen. - + Left channel selection for reverb Linker kanaalselectie voor galm - + Right channel selection for reverb Rechter kanaalselectie voor galm - + Green Groen - + The delay is perfect for a jam session. De vertraging is prima voor een jamsessie. - + Yellow Geel - + Red Rood - + Opens a dialog where you can select a server to connect to. If you are connected, pressing this button will end the session. Laat een dialoog zien waarin je een server kan selecteren om mee te verbinden. Indien reeds verbonden verbreekt deze knop de verbinding. - + Shows the current audio delay status: Toont de huidige geluidsvertragingsstatus: - + A session is still possible but it may be harder to play. Een sessie is nog mogelijk maar zal moeilijk gaan. - + The delay is too large for jamming. De vertraging is te groot voor een jamsessie. - + If this LED indicator turns red, you will not have much fun using the application. Als deze LED-indicator rood wordt, zult u niet veel plezier eraan beleven. - + The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: De bufferstatus-LED toont de huidige audio/streaming status. Indien rood dan wordt de audio-stream onderbroken. Dit kan veroorzaakt worden door de volgende problemen: - + The sound card's buffer delay (buffer size) is too small (see Settings window). De buffer vertraging van de geluidskaart (buffergrootte) is op een te kleine waarde ingesteld. - + The upload or download stream rate is too high for your internet bandwidth. De upload- of downloadstroomsnelheid is te hoog voor de huidige beschikbare internetbandbreedte. - + The CPU of the client or server is at 100%. De CPU van de client of server staat op 100%. - + Buffers status LED indicator Status van de buffers LED-indicator - - + + C&onnect C&onnect - + &File - + &View &Bekijken - + &Connection Setup... &Verbindingsinstellingen... - + My &Profile... Mijn &Profiel... - + C&hat... C&hat... - + &Settings... &Settings... - + &Analyzer Console... &Analyzer Console... - + E&xit E&xit - + &Load Mixer Channels Setup... - + &Save Mixer Channels Setup... - + &Edit &Bewerken - + Sort Channel Users by &Name Sorteer muzikanten op &Naam - + Sort Channel Users by &Instrument Sorteer muzikanten op &Instrument - + Sort Channel Users by &Group Sorteer muzikanten op &Groep @@ -933,38 +933,38 @@ Geen - + Center Centrum - + R R - + Central Server Centrale Server - - + + Select Channel Setup File - + user gebruiker - + users gebruikers - + D&isconnect &Afmelden @@ -1937,6 +1937,11 @@ Show all musicians check box Toon alle muzikanten checkbox + + + Type # for occupied servers + + CConnectDlgBase @@ -3265,7 +3270,7 @@ 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_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index 82d1af2add..a43484e104 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -500,284 +500,284 @@ CClientDlg - + Input Level Meter - + Make sure not to clip the input signal to avoid distortions of the audio signal. - + Input level meter - + Simulates an analog LED level meter. - + Connect/Disconnect Button - + Connect and disconnect toggle button - + Local Audio Input Fader - - + + L L - + , where - + is the current attenuation indicator. - + Local audio input fader (left/right) - + Delay Status LED - + Delay status LED indicator - + Buffers Status LED - + The network jitter buffer is not large enough for the current network/audio interface jitter. - + This shows the level of the two stereo channels for your audio input. - + If the application is connected to a server and you play your instrument/sing into the microphone, the VU 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. - + For proper usage of the application, you should not hear your singing/instrument through the loudspeaker or your headphone when the software is not connected.This can be achieved by muting your input audio channel in the Playback mixer (not the Recording mixer!). - + Opens a dialog where you can select a server to connect to. If you are connected, pressing this button will end the session. - + Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. - + Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows - + Reverb effect - + Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. - + Reverb effect level setting - + Reverb Channel Selection - + With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. - + Left channel selection for reverb - + Right channel selection for reverb - + Shows the current audio delay status: - + Green - + The delay is perfect for a jam session. - + Yellow - + A session is still possible but it may be harder to play. - + Red - + The delay is too large for jamming. - + If this LED indicator turns red, you will not have much fun using the application. - + The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: - + The sound card's buffer delay (buffer size) is too small (see Settings window). - + The upload or download stream rate is too high for your internet bandwidth. - + The CPU of the client or server is at 100%. - + Buffers status LED indicator - - + + C&onnect &Połącz - + &File - + &View &Widok - + &Connection Setup... &Konfiguracja połączenia... - + My &Profile... Mój &profil... - + C&hat... &Czat... - + &Settings... &Ustawienia... - + &Analyzer Console... &Konsola analizatora... - + E&xit &Wyjdź - + &Load Mixer Channels Setup... - + &Save Mixer Channels Setup... - + &Edit &Edytuj - + Sort Channel Users by &Name - + Sort Channel Users by &Instrument - + Sort Channel Users by &Group @@ -786,38 +786,38 @@ Å»aden - + Center Åšrodek - + R P - + Central Server - - + + Select Channel Setup File - + user - + users - + D&isconnect &Rozłącz @@ -1645,6 +1645,11 @@ nie jestem pewna Show all musicians check box + + + Type # for occupied servers + + CConnectDlgBase @@ -2896,7 +2901,7 @@ nie jestem pewna global - + For more information use the What's This help (help menu, right mouse button or Shift+F1) Aby uzyskać wiÄ™cej informacji użyj "Co to" (Pomoc, prawy przycisk myszy lub Shift+F1) diff --git a/src/res/translation/translation_pt_BR.ts b/src/res/translation/translation_pt_BR.ts index bf30597bbb..d59d5439e6 100644 --- a/src/res/translation/translation_pt_BR.ts +++ b/src/res/translation/translation_pt_BR.ts @@ -581,7 +581,7 @@ CClientDlg - + Input Level Meter Medidor do Nível de Entrada @@ -590,7 +590,7 @@ Os indicadores do nível de entrada mostram o nível dos dois canais stereo da entrada de áudio selecionada. - + Make sure not to clip the input signal to avoid distortions of the audio signal. Certifique-se de não clipar o sinal de entrada para evitar distorções no sinal de áudio. @@ -615,17 +615,17 @@ não estiver ligado a um servidor. Isso pode ser feito silenciando (mute) o canal da entrada de áudio no dispositivo de reprodução (não no dispositivo de captura!) - + Input level meter Medidor do nível de entrada - + Simulates an analog LED level meter. Simula um medidor de nível analógico LED. - + Connect/Disconnect Button Botão de Conectar/Desconectar @@ -634,7 +634,7 @@ Pressione este botão para se ligar a um servidor. Uma janela será aberta onde pode selecionar um servidor. Se já estiver ligado a um servidor, pressionar este botão encerrará a sessão. - + Connect and disconnect toggle button Botão de alternação entre ligar e desligar @@ -647,12 +647,12 @@ . - + Local Audio Input Fader Fader da Entrada Local de Ãudio - + Local audio input fader (left/right) Fader de entrada local de áudio (esquerdo/direito) @@ -673,183 +673,183 @@ Se este indicador LED ficar vermelho, não se vai divertir muito ao usar o - + This shows the level of the two stereo channels for your audio input. Isto mostra o nível dos dois canais estéreo para a sua entrada de áudio. - + If the application is connected to a server and you play your instrument/sing into the microphone, the VU 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. Se a aplicação estiver conectada a um servidor e você tocar o seu instrumento/cantar no microfone, os LEDs do medidor do nível de entrada devem piscar. Se isso não acontecer, você provavelmente selecionou o canal de entrada errado (Ex.: entrada de linha em vez da entrada do microfone) ou ajustou o ganho da entrada muito baixo no mixer de áudio (Windows) ou na placa de som. - + For proper usage of the application, you should not hear your singing/instrument through the loudspeaker or your headphone when the software is not connected.This can be achieved by muting your input audio channel in the Playback mixer (not the Recording mixer!). Para um uso adequado da aplicação, não deve ouvir a sua voz/instrumento diretamente nos alto-falantes ou nos fones enquanto a aplicação não estiver conectada a um servidor. Isso pode ser feito silenciando (mute) o canal da entrada de áudio no dispositivo de reprodução (não no dispositivo de captura!). - + Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. Clicar nesse botão altera a legenda do botão de Conectar para Desconectar, ou seja, implementa uma funcionalidade de alternação para conectar e desconectar a aplicação. - + Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows Controla os níveis relativos dos canais locais esquerdo e direito. Para um sinal mono, atua como uma panorâmica entre os dois canais. Por exemplo, se um microfone estiver ligado no canal direito e um instrumento estiver ligado no canal esquerdo, mais alto que o microfone, mova o fader de áudio numa direção em que a etiqueta acima do fader mostre - + Reverb effect Efeito de Reverberação - + Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. O efeito de reverberação pode ser aplicado a um canal local de áudio mono ou a ambos os canais no modo estéreo. A seleção do canal mono e o nível de reverberação podem ser modificados. Por exemplo, se o sinal do microfone for alimentado no canal de áudio direito da placa de som, e for necessário aplicar um efeito de reverberação, ajuste o seletor de canal para a direita e mova o fader para cima até que o nível de reverberação desejado seja atingido. - + Reverb effect level setting Ajuste do nível do efeito de reverberação - + Reverb Channel Selection Seleção do Canal de Reverberação - + With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. Com estes botões de seleção, pode ser escolhido o canal de entrada de áudio no qual o efeito de reverberação é aplicado. Pode ser selecionado o canal de entrada esquerdo ou direito. - + Left channel selection for reverb Seleção do canal esquerdo para reverberação - + Right channel selection for reverb Seleção do canal direito para reverberação - + Green Verde - + The delay is perfect for a jam session. A latência é perfeita para uma jam session. - + Yellow Amarelo - + Red Vermelho - + Delay status LED indicator Indicador LED do estado de latência - + Opens a dialog where you can select a server to connect to. If you are connected, pressing this button will end the session. Abre uma caixa de diálogo onde pode selecionar a que servidor conectar-se. Se estiver conectado, pressionar este botão vai terminar a sessão. - + Shows the current audio delay status: Mostra o estado atual da latência de áudio: - + A session is still possible but it may be harder to play. Ainda é possível fazer uma sessão, mas poderá ser mais difícil tocar no tempo. - + The delay is too large for jamming. A latência é demasiada para tocar no tempo. - + If this LED indicator turns red, you will not have much fun using the application. Se este indicador LED ficar vermelho, você não vai divertir-se muito ao usar a aplicação. - + The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: O indicador LED do estado dos buffers mostra o estado atual do áudio/transmissão. Se a luz estiver vermelha, o fluxo de áudio é interrompido. Isto é causado por um dos seguintes problemas: - + The sound card's buffer delay (buffer size) is too small (see Settings window). O buffer (tamanho do buffer) da placa de som é demasiado pequeno (verificar janela das Definições). - + The upload or download stream rate is too high for your internet bandwidth. A taxa de upload ou download é muito elevada para a sua largura de banda da Internet. - + Buffers status LED indicator Indicador LED do estado dos buffers - - + + C&onnect C&onectar - + &File &Arquivo - + &View &Ver - + &Connection Setup... &Conectar a Servidor... - + My &Profile... Meu &Perfil... - + C&hat... &Mensagens... - + &Settings... &Definições... - + &Analyzer Console... Console de &Análise... - + E&xit &Sair - + &Edit &Editar @@ -862,18 +862,18 @@ Nenhum - + Center Centro - + R R - - + + L L @@ -882,12 +882,12 @@ Com o fader de áudio, os níveis relativos dos canais locais esquerdo e direito podem ser alterados. Para um sinal mono, atua como uma panorâmica entre os dois canais. Se, por exemplo, um microfone estiver ligado no canal direito e um instrumento estiver ligado no canal esquerdo, mais alto que o microfone, mova o fader de áudio numa direção em que a etiqueta acima do fader mostre - + , where , onde - + is the current attenuation indicator. é o indicador de atenuação atual. @@ -912,7 +912,7 @@ Com estes botões de seleção, pode ser escolhido o canal de entrada de áudio no qual o efeito de reverberação é aplicado. Pode ser selecionado o canal de entrada esquerdo ou direito. - + Delay Status LED LED do Estado da Latência @@ -921,7 +921,7 @@ O indicador LED do estado da latência mostra o estado atual do atraso do áudio. Se a luz estiver verde, o atraso é perfeito para uma jam session. Se a luz estiver amarela, uma sessão ainda é possível, mas pode ser mais difícil tocar sincronizado. Se a luz estiver vermelha, o atraso é demasiado grande para uma sessão de jamming. - + Buffers Status LED LED do Estado dos Buffers @@ -930,7 +930,7 @@ O indicador LED do estado dos buffers mostra o estado atual do áudio/transmissão. Se a luz estiver verde, não haverá buffer em excesso/déficit e o fluxo de áudio não será interrompido. Se a luz estiver vermelha, o fluxo de áudio é interrompido devido a um dos seguintes problemas: - + The network jitter buffer is not large enough for the current network/audio interface jitter. O jitter buffer da rede não é grande o suficiente para o jitter atual da interface de rede/áudio. @@ -943,58 +943,58 @@ A taxa de upload ou download é muito alta para a largura de banda disponível na ligação à Internet. - + The CPU of the client or server is at 100%. O CPU do cliente ou servidor está em 100%. - + &Load Mixer Channels Setup... &Carregar Configuração de Canais do Mixer... - + &Save Mixer Channels Setup... &Salvar Configuração de Canais do Mixer... - + Sort Channel Users by &Name Ordenar os Canais por &Nome - + Sort Channel Users by &Instrument Ordenar os Canais por &Instrumento - + Sort Channel Users by &Group Ordenar os Canais por &Grupo - + Central Server Servidor Central - - + + Select Channel Setup File Selecione Arquivo de Configuraçao de Canal - + user usuário - + users usuários - + D&isconnect Opted by Desligar instead of Desconectar to keep same keyboard shortcut Desl&igar @@ -1976,6 +1976,11 @@ Show all musicians check box Caixa de seleção para mostrar músicos + + + Type # for occupied servers + + CConnectDlgBase @@ -3304,7 +3309,7 @@ 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 mouse ou Shift + F1) diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index 47795e94a7..e9c8b5df67 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -579,7 +579,7 @@ CClientDlg - + Input Level Meter Medidor do Nível de Entrada @@ -588,7 +588,7 @@ Os indicadores do nível de entrada mostram o nível dos dois canais stereo da entrada de áudio selecionada. - + Make sure not to clip the input signal to avoid distortions of the audio signal. Certifique-se de não clipar o sinal de entrada para evitar distorções no sinal de áudio. @@ -613,17 +613,17 @@ não estiver ligado a um servidor. Isso pode ser feito silenciando (mute) o canal da entrada de áudio no dispositivo de reprodução (não no dispositivo de captura!) - + Input level meter Medidor do nível de entrada - + Simulates an analog LED level meter. Simula um medidor de nível analógico LED. - + Connect/Disconnect Button Botão de Ligar/Desligar @@ -632,7 +632,7 @@ Pressione este botão para se ligar a um servidor. Uma janela será aberta onde pode selecionar um servidor. Se já estiver ligado a um servidor, pressionar este botão encerrará a sessão. - + Connect and disconnect toggle button Botão de alternação entre ligar e desligar @@ -645,12 +645,12 @@ . - + Local Audio Input Fader Fader da Entrada Local de Ãudio - + Local audio input fader (left/right) Fader de entrada local de áudio (esquerdo/direito) @@ -671,183 +671,183 @@ Se este indicador LED ficar vermelho, não se vai divertir muito ao usar o - + This shows the level of the two stereo channels for your audio input. Isto mostra o nível dos dois canais estéreo para a sua entrada de áudio. - + If the application is connected to a server and you play your instrument/sing into the microphone, the VU 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. Se a aplicação estiver ligada a um servidor e tocar o seu instrumento/cantar no microfone, os LEDs do medidor do nível de entrada devem piscar. Se tal não acontecer, provavelmente selecionou o canal de entrada errado (por exemplo, entrada de linha em vez da entrada do microfone) ou ajustou o ganho da entrada muito baixo no misturador de áudio (Windows) ou na placa de som. - + For proper usage of the application, you should not hear your singing/instrument through the loudspeaker or your headphone when the software is not connected.This can be achieved by muting your input audio channel in the Playback mixer (not the Recording mixer!). Para um uso adequado da aplicação, não deve ouvir a sua voz/instrumento diretamente nas colunas ou nos headphones enquanto a aplicação não estiver ligada a um servidor. Isso pode ser feito silenciando (mute) o canal da entrada de áudio no dispositivo de reprodução (não no dispositivo de captura!). - + Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. Clicar nesse botão altera a legenda do botão de Ligar para Desligar, ou seja, implementa uma funcionalidade de alternação para conectar e desconectar a aplicação. - + Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows Controla os níveis relativos dos canais esquerdo e direito. Para um sinal mono, actua como uma panorâmica entre os dois canais. Por exemplo, se um microfone estiver ligado no canal direito e um instrumento estiver ligado no canal esquerdo, mais alto que o microfone, mova o fader de áudio numa direção em que a etiqueta acima do fader mostre - + Reverb effect Efeito de Reverberação - + Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. O efeito de reverberação pode ser aplicado a um canal local de áudio mono ou a ambos os canais no modo estéreo. A seleção do canal mono e o nível de reverberação podem ser modificados. Por exemplo, se o sinal do microfone for alimentado no canal de áudio direito da placa de som, e for necessário aplicar um efeito de reverberação, ajuste o seletor de canal para a direita e mova o fader para cima até que o nível de reverberação desejado seja atingido. - + Reverb effect level setting Ajuste do nível do efeito de reverberação - + Reverb Channel Selection Seleção do Canal de Reverberação - + With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. Com estes botões de seleção, pode ser escolhido o canal de entrada de áudio no qual o efeito de reverberação é aplicado. Pode ser selecionado o canal de entrada esquerdo ou direito. - + Left channel selection for reverb Seleção do canal esquerdo para reverberação - + Right channel selection for reverb Seleção do canal direito para reverberação - + Green Verde - + The delay is perfect for a jam session. A latência é perfeita para uma jam session. - + Yellow Amarelo - + Red Vermelho - + Delay status LED indicator Indicador LED do estado de latência - + Opens a dialog where you can select a server to connect to. If you are connected, pressing this button will end the session. Abre uma caixa de diálogo onde pode seleccionar a que servidor se ligar. Se estiver ligado, pressionar este botão vai terminar a sessão. - + Shows the current audio delay status: Mostra o estado actual da latência de áudio: - + A session is still possible but it may be harder to play. Ainda é possível fazer uma sessão, mas poderá ser mais difícil tocar a tempo. - + The delay is too large for jamming. A latência é demasiada para tocar a tempo. - + If this LED indicator turns red, you will not have much fun using the application. Se este indicador LED ficar vermelho, não se vai divertir muito ao usar a aplicação. - + The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: O indicador LED do estado dos buffers mostra o estado atual do áudio/transmissão. Se a luz estiver vermelha, o fluxo de áudio é interrompido. Isto é causado por um dos seguintes problemas: - + The sound card's buffer delay (buffer size) is too small (see Settings window). O buffer (tamanho do buffer) da placa de som é demasiado pequeno (verificar janela das Definições). - + The upload or download stream rate is too high for your internet bandwidth. A taxa de upload ou download é muito elevada para a sua largura de banda da Internet. - + Buffers status LED indicator Indicador LED do estado dos buffers - - + + C&onnect &Ligar - + &File &Ficheiro - + &View &Ver - + &Connection Setup... &Ligar a Servidor... - + My &Profile... Meu &Perfil... - + C&hat... &Mensagens... - + &Settings... &Definições... - + &Analyzer Console... Consola de &Análise... - + E&xit &Sair - + &Edit &Editar @@ -860,18 +860,18 @@ Nenhum - + Center Centro - + R R - - + + L L @@ -880,12 +880,12 @@ Com o fader de áudio, os níveis relativos dos canais locais esquerdo e direito podem ser alterados. Para um sinal mono, atua como uma panorâmica entre os dois canais. Se, por exemplo, um microfone estiver ligado no canal direito e um instrumento estiver ligado no canal esquerdo, mais alto que o microfone, mova o fader de áudio numa direção em que a etiqueta acima do fader mostre - + , where , onde - + is the current attenuation indicator. é o indicador de atenuação atual. @@ -910,7 +910,7 @@ Com estes botões de seleção, pode ser escolhido o canal de entrada de áudio no qual o efeito de reverberação é aplicado. Pode ser selecionado o canal de entrada esquerdo ou direito. - + Delay Status LED LED do Estado da Latência @@ -919,7 +919,7 @@ O indicador LED do estado da latência mostra o estado atual do atraso do áudio. Se a luz estiver verde, o atraso é perfeito para uma jam session. Se a luz estiver amarela, uma sessão ainda é possível, mas pode ser mais difícil tocar sincronizado. Se a luz estiver vermelha, o atraso é demasiado grande para uma sessão de jamming. - + Buffers Status LED LED do Estado dos Buffers @@ -928,7 +928,7 @@ O indicador LED do estado dos buffers mostra o estado atual do áudio/transmissão. Se a luz estiver verde, não haverá buffer em excesso/déficit e o fluxo de áudio não será interrompido. Se a luz estiver vermelha, o fluxo de áudio é interrompido devido a um dos seguintes problemas: - + The network jitter buffer is not large enough for the current network/audio interface jitter. O jitter buffer da rede não é grande o suficiente para o jitter atual da interface de rede/áudio. @@ -941,58 +941,58 @@ A taxa de upload ou download é muito alta para a largura de banda disponível na ligação à Internet. - + The CPU of the client or server is at 100%. O CPU do cliente ou servidor está a 100%. - + &Load Mixer Channels Setup... A&brir configuração da mistura... - + &Save Mixer Channels Setup... Salvar &configuração da mistura... - + Sort Channel Users by &Name Ordenar Utilizadores por &Nome - + Sort Channel Users by &Instrument Ordenar canais por &Instrumento - + Sort Channel Users by &Group Ordenar canais por &Grupo - + Central Server Servidor Central - - + + Select Channel Setup File Selecione o ficheiro de configuração da mistura - + user utilizador - + users utilizadores - + D&isconnect Desl&igar @@ -1973,6 +1973,11 @@ Show all musicians check box Caixa de seleção para mostrar músicos + + + Type # for occupied servers + + CConnectDlgBase @@ -3301,7 +3306,7 @@ 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/res/translation/translation_sv_SE.ts b/src/res/translation/translation_sv_SE.ts index d77fc42a50..585d1a58bb 100644 --- a/src/res/translation/translation_sv_SE.ts +++ b/src/res/translation/translation_sv_SE.ts @@ -500,284 +500,284 @@ CClientDlg - + Input Level Meter IngÃ¥ngsnivÃ¥ - + This shows the level of the two stereo channels for your audio input. Detta visar nivÃ¥n pÃ¥ de tvÃ¥ stereokanalerna för din ljudingÃ¥ng. - + Make sure not to clip the input signal to avoid distortions of the audio signal. Se till att inte klippa insignalen för att undvika en snedvridning av ljudsignalen. - + If the application is connected to a server and you play your instrument/sing into the microphone, the VU 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. Om applikationen är ansluten till en server och du spelar ditt instrument/sjunger in i mikrofonen, bör VU-mätaren röra sig. Om detta inte sker har du antagligen valt fel inmatningskanal (t.ex. 'line in' i stället för mikrofoningÃ¥ngen) eller ställt in ingÃ¥ngsförstärkningen för (Windows) för lÃ¥gt. - + For proper usage of the application, you should not hear your singing/instrument through the loudspeaker or your headphone when the software is not connected.This can be achieved by muting your input audio channel in the Playback mixer (not the Recording mixer!). För korrekt användning av applikationen, bör du inte höra din sÃ¥ng/instrument via högtalaren eller hörlurarna när programvaran inte är ansluten. Det kan uppnÃ¥s genom att stänga av din ingÃ¥ende ljudkanal i uppspelningsblandaren (inte inspelningsblandaren!). - + Input level meter IngÃ¥ngsnivÃ¥mätare - + Simulates an analog LED level meter. Simulerar en analog LED-nivÃ¥mätare. - + Connect/Disconnect Button Knapp för att anslut eller koppla ifrÃ¥n - + Opens a dialog where you can select a server to connect to. If you are connected, pressing this button will end the session. Öppnar en dialogruta där du kan välja en server att ansluta till. Om du är ansluten avslutar du sessionen genom att trycka pÃ¥ den här knappen. - + Connect and disconnect toggle button Knapp för att anslut och koppla bort - + Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. Om du klickar pÃ¥ den här knappen ändras bildtexten pÃ¥ knappen frÃ¥n Ansluten till Nedkopplad, dvs. den implementerar en växelfunktion för att ansluta och koppla bort applikationen. - + Local Audio Input Fader Lokal ljudingÃ¥ngsfader - + Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows Kontrollerar de relativa nivÃ¥erna för vänster och höger lokala ljudkanal. För en monosignal fungerar den som en panorering mellan de tvÃ¥ kanalerna. Om exempelvis en mikrofon är ansluten till den högra ingÃ¥ngskanalen och ett instrument är anslutet till den vänstra ingÃ¥ngskanalen som är mycket högre än mikrofonen, flytta ljudfadern i en riktning som etiketten ovanför fadern visar - - + + L V - + , where , där - + is the current attenuation indicator. är den aktuella dämpningsindikatorn. - + Local audio input fader (left/right) Lokal ljudingÃ¥ngsfader (vänster/höger) - + Reverb effect Reverb effekt - + Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. Reverb kan tillämpas pÃ¥ en lokal monoljudkanal eller pÃ¥ bÃ¥da kanalerna i stereoläge. Valet av monokanal och reverbnivÃ¥n kan ändras. Om till exempel en mikrofonsignal matas in till höger ljudkanal pÃ¥ ljudkortet och en reverb-effekt mÃ¥ste appliceras, ställ in kanalväljaren till höger och flytta fadern uppÃ¥t tills önskad reverbnivÃ¥ har uppnÃ¥tts. - + Reverb effect level setting ReverbeffektnivÃ¥inställning - + Reverb Channel Selection Reverbkanalval - + With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. Med dessa tryckknappar kan du välja ljudingÃ¥ngskanalen pÃ¥ vilken reverbeffekten används. Antingen kan vänster eller höger ingÃ¥ngskanal väljas. - + Left channel selection for reverb Vänster kanal för reverb - + Right channel selection for reverb Höger kanal för reverb - + Delay Status LED Fördröjningsstatus-LED - + Shows the current audio delay status: Visar aktuell ljudfördröjningsstatus: - + Green Grön - + The delay is perfect for a jam session. Fördröjningen är perfekt för en jam-session. - + Yellow Gul - + A session is still possible but it may be harder to play. En session är fortfarande möjlig men det kan vara svÃ¥rare att spela. - + Red Röd - + The delay is too large for jamming. Fördröjningen är troligtvis för stor för en jam-session. - + If this LED indicator turns red, you will not have much fun using the application. Om den här LED-indikatorn blir röd kommer du inte ha sÃ¥ kul med applikationen. - + Delay status LED indicator LED-indikator för fördröjningsstatus - + Buffers Status LED Buffertstatus-LED - + The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: Statuslampan för buffertar visar aktuell ljud-/strömningsstatus. Om lampan är röd avbryts ljudströmmen. Detta orsakas av ett av följande problem: - + The network jitter buffer is not large enough for the current network/audio interface jitter. Nätverksjitterbufferten är inte tillräckligt stor för det nuvarande nätverks-/ljudgränssnittsjitteret. - + The sound card's buffer delay (buffer size) is too small (see Settings window). Ljudkortets buffertfördröjning (buffertstorlek) är för liten (se Inställningsfönstret). - + The upload or download stream rate is too high for your internet bandwidth. Uppladdnings- eller nedladdningsströmmen är för hög för din internethastighet. - + The CPU of the client or server is at 100%. Klientens eller serverns CPU är 100%. - + Buffers status LED indicator LED-indikator för buffertstatus - - + + C&onnect &Anslut - + &File &Fil - + &View &Vy - + &Connection Setup... Anslutnings&inställningar... - + My &Profile... Min &profil... - + C&hat... &Chatt... - + &Settings... &Inställningar... - + &Analyzer Console... &Analyskonsol... - + E&xit &Avsluta - + &Load Mixer Channels Setup... &Ladda in mixerkanalinställningarna... - + &Save Mixer Channels Setup... &Spara mixerkanalinställningarna... - + &Edit &Redigera - + Sort Channel Users by &Name Sortera kanalanvändare efter &Namn - + Sort Channel Users by &Instrument Sortera kanalanvändare efter &Instrument - + Sort Channel Users by &Group Sortera kanalanvändare efter &Grupp @@ -786,38 +786,38 @@ Ingen - + Center Mitten - + R H - + Central Server Central server - - + + Select Channel Setup File Välj kanalinställningsfil - + user användare - + users användare - + D&isconnect Koppla &ner @@ -1638,6 +1638,11 @@ Show all musicians check box Klickruta för att visa alla musiker + + + Type # for occupied servers + + CConnectDlgBase @@ -2902,7 +2907,7 @@ global - + For more information use the What's This help (help menu, right mouse button or Shift+F1) För mer information använd hjälpen (hjälpmeny, höger musknapp eller Shift + F1) From e4bdbee96640067531f97649ba6886ffc8c8f114 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 8 Aug 2020 08:45:09 +0200 Subject: [PATCH 453/936] only a single # in the filter edit box should filter for occupied servers --- src/connectdlg.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/connectdlg.cpp b/src/connectdlg.cpp index a39144c96b..4fa9182801 100755 --- a/src/connectdlg.cpp +++ b/src/connectdlg.cpp @@ -575,7 +575,8 @@ void CConnectDlg::UpdateListFilter() // special case: filter for occupied servers // DEFINITION: if "#" is set at the beginning of the filter text, we show // occupied servers (#397) - if ( ( sFilterText.indexOf ( "#" ) == 0 ) && ( pCurListViewItem->childCount() > 0 ) ) + if ( ( sFilterText.indexOf ( "#" ) == 0 ) && ( sFilterText.length() == 1 ) && + ( pCurListViewItem->childCount() > 0 ) ) { bFilterFound = true; } From d77655e98ab7924d4629e9cee4be9e01ca46e3a2 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 9 Aug 2020 09:02:45 +0200 Subject: [PATCH 454/936] update German translation --- src/res/translation/translation_de_DE.qm | Bin 109716 -> 109841 bytes src/res/translation/translation_de_DE.ts | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index aa7a6f1762a11cba2c0f7db370194281015eee21..d7ce1dd7b363e3bee625f5614a46c10ae7061164 100644 GIT binary patch delta 3082 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 diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index c52b601c6c..b67d99babb 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -1972,7 +1972,7 @@ Type # for occupied servers - + # eingeben für belegte Server From d390e7ec89dd0f6fcd3ecbe2e09f290d624c083b Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 9 Aug 2020 10:34:45 +0200 Subject: [PATCH 455/936] adding repos for #501 --- .gitmodules | 6 ++++++ ChangeLog | 4 ++-- tools/jamulus-historytool | 1 + tools/jamulus-jamexporter | 1 + 4 files changed, 10 insertions(+), 2 deletions(-) create mode 160000 tools/jamulus-historytool create mode 160000 tools/jamulus-jamexporter diff --git a/.gitmodules b/.gitmodules index 2d9e5a766b..349ea21ccc 100644 --- a/.gitmodules +++ b/.gitmodules @@ -10,3 +10,9 @@ [submodule "tools/jamulus-wireshark"] path = tools/jamulus-wireshark url = https://github.com/softins/jamulus-wireshark +[submodule "tools/jamulus-historytool"] + path = tools/jamulus-historytool + url = https://github.com/pljones/jamulus-historytool +[submodule "tools/jamulus-jamexporter"] + path = tools/jamulus-jamexporter + url = https://github.com/pljones/jamulus-jamexporter diff --git a/ChangeLog b/ChangeLog index 3bc88d2169..15f12bd7f1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -15,8 +15,8 @@ - support MIDI control faders in headless build (#483) -- support multi-threading in the server to better support multi-core CPUs, - use qmake "CONFIG+=multithreading" to enable the new multi-threading (#339) +- support multithreading in the server to better support multi-core CPUs, + use qmake "CONFIG+=multithreading" to enable the new multithreading (#339) - option to set "Mute Myself" on with a command line argument (#495) diff --git a/tools/jamulus-historytool b/tools/jamulus-historytool new file mode 160000 index 0000000000..c60686c3a4 --- /dev/null +++ b/tools/jamulus-historytool @@ -0,0 +1 @@ +Subproject commit c60686c3a4b9341d01584058ffb7f89ca3638c73 diff --git a/tools/jamulus-jamexporter b/tools/jamulus-jamexporter new file mode 160000 index 0000000000..9b13a5985f --- /dev/null +++ b/tools/jamulus-jamexporter @@ -0,0 +1 @@ +Subproject commit 9b13a5985fb8b6312a0b320919f00cb868e5b94e From 43a5dd821e81eb6c74a7a2277545a7c69e9fce5b Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 9 Aug 2020 15:20:56 +0200 Subject: [PATCH 456/936] added a red message to indicate that Mute Myself is activated (#476) --- ChangeLog | 4 +- src/clientdlg.cpp | 14 ++++++ src/clientdlgbase.ui | 33 ++++++++++---- src/res/translation/translation_de_DE.qm | Bin 109841 -> 110023 bytes src/res/translation/translation_de_DE.ts | 53 +++++++++++++---------- src/res/translation/translation_es_ES.ts | 53 +++++++++++++---------- src/res/translation/translation_fr_FR.ts | 53 +++++++++++++---------- src/res/translation/translation_it_IT.ts | 53 +++++++++++++---------- src/res/translation/translation_nl_NL.ts | 53 +++++++++++++---------- src/res/translation/translation_pl_PL.ts | 53 +++++++++++++---------- src/res/translation/translation_pt_BR.ts | 53 +++++++++++++---------- src/res/translation/translation_pt_PT.ts | 53 +++++++++++++---------- src/res/translation/translation_sv_SE.ts | 53 +++++++++++++---------- 13 files changed, 303 insertions(+), 225 deletions(-) diff --git a/ChangeLog b/ChangeLog index 15f12bd7f1..4e9d9f9cee 100644 --- a/ChangeLog +++ b/ChangeLog @@ -18,7 +18,9 @@ - support multithreading in the server to better support multi-core CPUs, use qmake "CONFIG+=multithreading" to enable the new multithreading (#339) -- option to set "Mute Myself" on with a command line argument (#495) +- option to set Mute Myself on with a command line argument (#495) + +- added a red message to indicate that Mute Myself is activated (#476) - replacing internal history graph functionality by external scripts/tools (#501) diff --git a/src/clientdlg.cpp b/src/clientdlg.cpp index 6f103a02d8..8528df8c1e 100755 --- a/src/clientdlg.cpp +++ b/src/clientdlg.cpp @@ -226,6 +226,10 @@ CClientDlg::CClientDlg ( CClient* pNCliP, // set window title (with no clients connected -> "0") SetMyWindowTitle ( 0 ); + // prepare Mute Myself info label (invisible by default) + lblGlobalInfoLabel->setStyleSheet ( ".QLabel { background: red; }" ); + lblGlobalInfoLabel->hide(); + // Connect on startup ------------------------------------------------------ if ( !strConnOnStartupAddress.isEmpty() ) @@ -934,6 +938,16 @@ void CClientDlg::OnChatStateChanged ( int value ) void CClientDlg::OnLocalMuteStateChanged ( int value ) { pClient->SetMuteOutStream ( value == Qt::Checked ); + + // show/hide info label + if ( value == Qt::Checked ) + { + lblGlobalInfoLabel->show(); + } + else + { + lblGlobalInfoLabel->hide(); + } } void CClientDlg::OnTimerSigMet() diff --git a/src/clientdlgbase.ui b/src/clientdlgbase.ui index 803d94d301..bbd87b9cd4 100755 --- a/src/clientdlgbase.ui +++ b/src/clientdlgbase.ui @@ -541,14 +541,31 @@ - - - - 0 - 0 - - - + + + + + MUTED (You are not sending any audio to the server) + + + Qt::AlignCenter + + + 6 + + + + + + + + 0 + 0 + + + + + diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index d7ce1dd7b363e3bee625f5614a46c10ae7061164..2393973256aa686981cf54046222e6dccbc9a043 100644 GIT binary patch delta 4304 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 - + C&onnect &Verbinden - + &File &Datei - + &View &Ansicht - + &Connection Setup... &Verbinden... - + My &Profile... Mein &Profil... - + C&hat... C&hat... - + &Settings... &Einstellungen... - + &Analyzer Console... - + E&xit &Beenden - + &Edit B&earbeiten @@ -848,18 +848,18 @@ Keine - + Center Mitte - + R - + L @@ -934,53 +934,53 @@ Die CPU des Computers ist voll ausgelastet. - + &Load Mixer Channels Setup... &Laden der Konfiguration der Mixerkanäle... - + &Save Mixer Channels Setup... &Speichern der Konfiguration der Mixerkanäle... - + Sort Channel Users by &Name Sortiere die Kanäle nach dem &Namen - + Sort Channel Users by &Instrument Sortiere die Kanäle nach dem &Instrument - + Sort Channel Users by &Group Sortiere die Kanäle nach der &Gruppe - + Central Server Zentralserver - - + + Select Channel Setup File Auswählen der Datei für die Konfiguration der Mixerkanäle - + user Musiker - + users Musiker - + D&isconnect &Trennen @@ -1057,6 +1057,11 @@ Right Rechts + + + MUTED (You are not sending any audio to the server) + Stumm (Es wird kein Ton zum Server gesendet) + CClientSettingsDlg diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index ef09d9baa9..029b408f5b 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -810,57 +810,57 @@ - + C&onnect C&onectar - + &File &Archivo - + &View &Ver - + &Connection Setup... &Configuración de Conexión... - + My &Profile... Mi &Perfil... - + C&hat... C&hat... - + &Settings... &Configuración... - + &Analyzer Console... &Analyzer Console... - + E&xit S&alir - + &Edit &Editar - + Sort Channel Users by &Group Ordenar Usuarios de Canal por &Grupo @@ -869,18 +869,18 @@ Ninguno - + Center Centro - + R R - + L L @@ -955,48 +955,48 @@ El procesador del cliente o del servidor está al 100%. - + &Load Mixer Channels Setup... &Cargar Configuración Canales Mezclador... - + &Save Mixer Channels Setup... &Guardar Configuración Canales Mezclador... - + Sort Channel Users by &Name Ordenar Canales por &Nombre - + Sort Channel Users by &Instrument Ordenar Canales por &Instrumento - + Central Server Servidor Central - - + + Select Channel Setup File Seleccionar Archivo Configuración Canales - + user usuario - + users usuarios - + D&isconnect D&esconectar @@ -1073,6 +1073,11 @@ Right Dcho + + + MUTED (You are not sending any audio to the server) + + CClientSettingsDlg diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index d88e0e8823..7d6abb10b4 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -806,52 +806,52 @@ - + C&onnect Se c&onnecter - + &File &Fichier - + &View &Vue - + &Connection Setup... Paramètres de &connexion... - + My &Profile... Mon &profil - + C&hat... Tc&hate... - + &Settings... Paramètre&s... - + &Analyzer Console... Console d'&analyse - + E&xit &Quitter - + &Edit Édit&er @@ -864,18 +864,18 @@ Aucun - + Center Centre - + R D - + L G @@ -950,53 +950,53 @@ Le processeur du client ou du serveur est à 100%. - + &Load Mixer Channels Setup... &Charger la configuration des canaux du mixeur... - + &Save Mixer Channels Setup... &Sauvegarder la configuration des canaux du mixeur... - + Sort Channel Users by &Name Trier les utilisateurs du canal par &nom - + Sort Channel Users by &Instrument Trier les utilisateurs du canal par &instrument - + Sort Channel Users by &Group Trier les utilisateurs des canaux par &groupe - + Central Server Serveur central - - + + Select Channel Setup File Sélectionnez le fichier de configuration des canaux - + user utilisateur - + users utilisateurs - + D&isconnect Dé&connecter @@ -1073,6 +1073,11 @@ Right Droite + + + MUTED (You are not sending any audio to the server) + + CClientSettingsDlg diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index 014d84baf7..83d69ecb2a 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -639,7 +639,7 @@ - + L L @@ -862,77 +862,77 @@ - + C&onnect C&onnetti - + &File &File - + &View &Vista - + &Connection Setup... Setup &Connessione... - + My &Profile... &Profilo Personale... - + C&hat... C&hat... - + &Settings... &Settaggi... - + &Analyzer Console... &Analizzatore... - + E&xit &Uscita - + &Load Mixer Channels Setup... &Carica Setup Mixer... - + &Save Mixer Channels Setup... &Salva Setup Mixer... - + &Edit &Modifica - + Sort Channel Users by &Name Ordina canali per &Nome - + Sort Channel Users by &Instrument Ordina canali per &Strumento - + Sort Channel Users by &Group Ordina Canali per Nome &Utente @@ -945,38 +945,38 @@ Nullo - + Center Centro - + R R - + Central Server Server Centrale - - + + Select Channel Setup File Selezione File di Setup dei Canali - + user utente - + users utenti - + D&isconnect D&isconnetti @@ -1053,6 +1053,11 @@ Right Right (Destra) + + + MUTED (You are not sending any audio to the server) + + CClientSettingsDlg diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index b42ccdcb14..971a5bb812 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -631,7 +631,7 @@ - + L L @@ -854,77 +854,77 @@ - + C&onnect C&onnect - + &File - + &View &Bekijken - + &Connection Setup... &Verbindingsinstellingen... - + My &Profile... Mijn &Profiel... - + C&hat... C&hat... - + &Settings... &Settings... - + &Analyzer Console... &Analyzer Console... - + E&xit E&xit - + &Load Mixer Channels Setup... - + &Save Mixer Channels Setup... - + &Edit &Bewerken - + Sort Channel Users by &Name Sorteer muzikanten op &Naam - + Sort Channel Users by &Instrument Sorteer muzikanten op &Instrument - + Sort Channel Users by &Group Sorteer muzikanten op &Groep @@ -933,38 +933,38 @@ Geen - + Center Centrum - + R R - + Central Server Centrale Server - - + + Select Channel Setup File - + user gebruiker - + users gebruikers - + D&isconnect &Afmelden @@ -1041,6 +1041,11 @@ Right Rechts + + + MUTED (You are not sending any audio to the server) + + CClientSettingsDlg diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index a43484e104..5260ac5adb 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -536,7 +536,7 @@ - + L L @@ -707,77 +707,77 @@ - + C&onnect &Połącz - + &File - + &View &Widok - + &Connection Setup... &Konfiguracja połączenia... - + My &Profile... Mój &profil... - + C&hat... &Czat... - + &Settings... &Ustawienia... - + &Analyzer Console... &Konsola analizatora... - + E&xit &Wyjdź - + &Load Mixer Channels Setup... - + &Save Mixer Channels Setup... - + &Edit &Edytuj - + Sort Channel Users by &Name - + Sort Channel Users by &Instrument - + Sort Channel Users by &Group @@ -786,38 +786,38 @@ Å»aden - + Center Åšrodek - + R P - + Central Server - - + + Select Channel Setup File - + user - + users - + D&isconnect &Rozłącz @@ -896,6 +896,11 @@ nie jestem pewna Right Prawy + + + MUTED (You are not sending any audio to the server) + + CClientSettingsDlg diff --git a/src/res/translation/translation_pt_BR.ts b/src/res/translation/translation_pt_BR.ts index d59d5439e6..79576140de 100644 --- a/src/res/translation/translation_pt_BR.ts +++ b/src/res/translation/translation_pt_BR.ts @@ -804,52 +804,52 @@ - + C&onnect C&onectar - + &File &Arquivo - + &View &Ver - + &Connection Setup... &Conectar a Servidor... - + My &Profile... Meu &Perfil... - + C&hat... &Mensagens... - + &Settings... &Definições... - + &Analyzer Console... Console de &Análise... - + E&xit &Sair - + &Edit &Editar @@ -862,18 +862,18 @@ Nenhum - + Center Centro - + R R - + L L @@ -948,53 +948,53 @@ O CPU do cliente ou servidor está em 100%. - + &Load Mixer Channels Setup... &Carregar Configuração de Canais do Mixer... - + &Save Mixer Channels Setup... &Salvar Configuração de Canais do Mixer... - + Sort Channel Users by &Name Ordenar os Canais por &Nome - + Sort Channel Users by &Instrument Ordenar os Canais por &Instrumento - + Sort Channel Users by &Group Ordenar os Canais por &Grupo - + Central Server Servidor Central - - + + Select Channel Setup File Selecione Arquivo de Configuraçao de Canal - + user usuário - + users usuários - + D&isconnect Opted by Desligar instead of Desconectar to keep same keyboard shortcut Desl&igar @@ -1072,6 +1072,11 @@ Right Direito + + + MUTED (You are not sending any audio to the server) + + CClientSettingsDlg diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index e9c8b5df67..35c1db009c 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -802,52 +802,52 @@ - + C&onnect &Ligar - + &File &Ficheiro - + &View &Ver - + &Connection Setup... &Ligar a Servidor... - + My &Profile... Meu &Perfil... - + C&hat... &Mensagens... - + &Settings... &Definições... - + &Analyzer Console... Consola de &Análise... - + E&xit &Sair - + &Edit &Editar @@ -860,18 +860,18 @@ Nenhum - + Center Centro - + R R - + L L @@ -946,53 +946,53 @@ O CPU do cliente ou servidor está a 100%. - + &Load Mixer Channels Setup... A&brir configuração da mistura... - + &Save Mixer Channels Setup... Salvar &configuração da mistura... - + Sort Channel Users by &Name Ordenar Utilizadores por &Nome - + Sort Channel Users by &Instrument Ordenar canais por &Instrumento - + Sort Channel Users by &Group Ordenar canais por &Grupo - + Central Server Servidor Central - - + + Select Channel Setup File Selecione o ficheiro de configuração da mistura - + user utilizador - + users utilizadores - + D&isconnect Desl&igar @@ -1069,6 +1069,11 @@ Right Direito + + + MUTED (You are not sending any audio to the server) + + CClientSettingsDlg diff --git a/src/res/translation/translation_sv_SE.ts b/src/res/translation/translation_sv_SE.ts index 585d1a58bb..6e1f62202a 100644 --- a/src/res/translation/translation_sv_SE.ts +++ b/src/res/translation/translation_sv_SE.ts @@ -566,7 +566,7 @@ - + L V @@ -707,77 +707,77 @@ - + C&onnect &Anslut - + &File &Fil - + &View &Vy - + &Connection Setup... Anslutnings&inställningar... - + My &Profile... Min &profil... - + C&hat... &Chatt... - + &Settings... &Inställningar... - + &Analyzer Console... &Analyskonsol... - + E&xit &Avsluta - + &Load Mixer Channels Setup... &Ladda in mixerkanalinställningarna... - + &Save Mixer Channels Setup... &Spara mixerkanalinställningarna... - + &Edit &Redigera - + Sort Channel Users by &Name Sortera kanalanvändare efter &Namn - + Sort Channel Users by &Instrument Sortera kanalanvändare efter &Instrument - + Sort Channel Users by &Group Sortera kanalanvändare efter &Grupp @@ -786,38 +786,38 @@ Ingen - + Center Mitten - + R H - + Central Server Central server - - + + Select Channel Setup File Välj kanalinställningsfil - + user användare - + users användare - + D&isconnect Koppla &ner @@ -894,6 +894,11 @@ Right Höger + + + MUTED (You are not sending any audio to the server) + + CClientSettingsDlg From ed8e6fb0a5aa370acb7e0550be4d8076ed7588a9 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 9 Aug 2020 15:54:13 +0200 Subject: [PATCH 457/936] added jamulus-docker repo as a submodule --- .gitmodules | 3 +++ tools/jamulus-docker | 1 + 2 files changed, 4 insertions(+) create mode 160000 tools/jamulus-docker diff --git a/.gitmodules b/.gitmodules index 349ea21ccc..279ef8e356 100644 --- a/.gitmodules +++ b/.gitmodules @@ -16,3 +16,6 @@ [submodule "tools/jamulus-jamexporter"] path = tools/jamulus-jamexporter url = https://github.com/pljones/jamulus-jamexporter +[submodule "tools/jamulus-docker"] + path = tools/jamulus-docker + url = https://github.com/grundic/jamulus-docker diff --git a/tools/jamulus-docker b/tools/jamulus-docker new file mode 160000 index 0000000000..4d803fab62 --- /dev/null +++ b/tools/jamulus-docker @@ -0,0 +1 @@ +Subproject commit 4d803fab62d0a01eea69796c46f1c96ffda0e284 From bea06a75f78eb461fe9a6bce5bff6c0da9b48861 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 9 Aug 2020 16:44:41 +0200 Subject: [PATCH 458/936] manual clip LED reset by mouse click on the level meter (#421) --- ChangeLog | 2 ++ src/levelmeter.h | 2 ++ 2 files changed, 4 insertions(+) diff --git a/ChangeLog b/ChangeLog index 4e9d9f9cee..07a0485abc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -22,6 +22,8 @@ - added a red message to indicate that Mute Myself is activated (#476) +- manual clip LED reset by mouse click on the level meter (#421) + - replacing internal history graph functionality by external scripts/tools (#501) - bug fix: added more mutex in the server (should fix #480) diff --git a/src/levelmeter.h b/src/levelmeter.h index 5c745a04fd..303d8bd86b 100755 --- a/src/levelmeter.h +++ b/src/levelmeter.h @@ -87,6 +87,8 @@ class CLevelMeter : public QWidget QLabel* pLEDLabel; }; + virtual void mousePressEvent ( QMouseEvent* ) override { ClipReset(); } + void SetBarMeterStyleAndClipStatus ( const ELevelMeterType eNType, const bool bIsClip ); From 945cab76c3d70f21f6ecd6f1ba1075c13acd37a8 Mon Sep 17 00:00:00 2001 From: Olivier Humbert Date: Sun, 9 Aug 2020 16:56:09 +0200 Subject: [PATCH 459/936] French translation update for 3.5.10 (see #77) --- src/res/translation/translation_fr_FR.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index 7d6abb10b4..6a30a90e46 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -1076,7 +1076,7 @@ MUTED (You are not sending any audio to the server) - + SILENCÉ (vous n'envoyez aucun son au serveur) @@ -1997,7 +1997,7 @@ Type # for occupied servers - + Tapez # pour les serveurs occupés From f08d9db91b8d17ffb554a5884214a8402d9f8eca Mon Sep 17 00:00:00 2001 From: jerogee Date: Sun, 9 Aug 2020 18:01:45 +0200 Subject: [PATCH 460/936] Update Dutch translation for 3.5.10 (see #77) --- src/res/translation/translation_nl_NL.qm | Bin 105544 -> 106389 bytes src/res/translation/translation_nl_NL.ts | 14 +++++++------- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/res/translation/translation_nl_NL.qm b/src/res/translation/translation_nl_NL.qm index 53651eddb45be6bb03cabd77af036b55faf6daaa..7410a8e01dccbba373e62e82316f96095dd48c10 100644 GIT binary patch delta 5011 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 CEjh>l diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index 971a5bb812..2f88708b2e 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -861,7 +861,7 @@ &File - + &Bestand @@ -901,12 +901,12 @@ &Load Mixer Channels Setup... - + &Laad Mengkanaalinstellingen... &Save Mixer Channels Setup... - + Mixerkanaalinstellingen &Opslaan... @@ -951,7 +951,7 @@ Select Channel Setup File - + Selecteer bestand met Kanaalinstellingen @@ -1044,7 +1044,7 @@ MUTED (You are not sending any audio to the server) - + GEDEMPT (Je stuurt geen audio naar de server) @@ -1945,7 +1945,7 @@ Type # for occupied servers - + Typ # voor bezette servers @@ -2476,7 +2476,7 @@ Vocal Lead - + Leadzanger From fa09c5fdf77d49ac9cbf9e63fab42f8502c4bab7 Mon Sep 17 00:00:00 2001 From: Peter L Jones Date: Sun, 9 Aug 2020 23:41:00 +0100 Subject: [PATCH 461/936] Initial working version --- tools/jamulus-historytool | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/jamulus-historytool b/tools/jamulus-historytool index c60686c3a4..b265072232 160000 --- a/tools/jamulus-historytool +++ b/tools/jamulus-historytool @@ -1 +1 @@ -Subproject commit c60686c3a4b9341d01584058ffb7f89ca3638c73 +Subproject commit b265072232c33c377a8912262d7395a06ffd8927 From d630cfb1bc80456c02f415a56a5b43e00259c123 Mon Sep 17 00:00:00 2001 From: genesisproject2020 <7592139+genesisproject2020@users.noreply.github.com> Date: Mon, 10 Aug 2020 02:32:10 +0200 Subject: [PATCH 462/936] Update translation_sv_SE.ts --- src/res/translation/translation_sv_SE.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/res/translation/translation_sv_SE.ts b/src/res/translation/translation_sv_SE.ts index 6e1f62202a..d46ccba229 100644 --- a/src/res/translation/translation_sv_SE.ts +++ b/src/res/translation/translation_sv_SE.ts @@ -897,7 +897,7 @@ MUTED (You are not sending any audio to the server) - + TYSTAD (Du skickar inget ljud till servern) @@ -905,7 +905,7 @@ Jitter Buffer Size - Jitterbufferstorlek + Jitterbuffertstorlek @@ -965,7 +965,7 @@ 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. - under Microsoft Windows. Under MacOS/Linux är inget ljudkortsval möjligt. Om den valda ASIO-drivrutinen inte är giltig visas ett felmeddelande och den tidigare giltiga drivrutinen väljs. + under Windows. Under MacOS/Linux är inget ljudkortsval möjligt. Om den valda ASIO-drivrutinen inte är giltig visas ett felmeddelande och den tidigare giltiga drivrutinen väljs. @@ -1100,7 +1100,7 @@ If the buffer delay settings are disabled, it is prohibited by the audio driver to modify this setting from within the software. On Windows, press the ASIO Setup button to open the driver settings panel. On Linux, use the Jack configuration tool to change the buffer size. - Om buffertfördröjningsinställningarna är inaktiverade är det ljuddrivrutinen som begränsar och det är inte möjligt att ändra denna inställning frÃ¥n applikationen. I Microsoft Windows trycker du pÃ¥ ASIO-inställningsknappen för att öppna drivrutinsinställningspanelen. I Linux använder du Jack-konfigurationsverktyget för att ändra buffertstorleken. + Om buffertfördröjningsinställningarna är inaktiverade är det ljuddrivrutinen som begränsar och det är inte möjligt att ändra denna inställning frÃ¥n applikationen. I Windows trycker du pÃ¥ ASIO-inställningsknappen för att öppna drivrutinsinställningspanelen. I Linux använder du Jack-konfigurationsverktyget för att ändra buffertstorleken. @@ -1646,7 +1646,7 @@ Type # for occupied servers - + Skriv # för upptagna servrar @@ -2170,7 +2170,7 @@ Vocal Lead - + SÃ¥ng (Solist) From 698adb8892017dc7b10a2d1936237ab66b8a5463 Mon Sep 17 00:00:00 2001 From: ignotus666 Date: Mon, 10 Aug 2020 09:33:05 +0200 Subject: [PATCH 463/936] Updated Spanish translation --- src/res/translation/translation_es_ES.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index 029b408f5b..432fabc29a 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -1076,7 +1076,7 @@ MUTED (You are not sending any audio to the server) - + MUTEADO (No estás enviando audio al servidor) @@ -2001,7 +2001,7 @@ Type # for occupied servers - + Escribe # para servidores ocupados From 429cbcc00f669bfee7478eb0a8fe03814b2f8749 Mon Sep 17 00:00:00 2001 From: Peter L Jones Date: Mon, 10 Aug 2020 10:00:15 +0100 Subject: [PATCH 464/936] Jam Exporter --- tools/jamulus-jamexporter | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/jamulus-jamexporter b/tools/jamulus-jamexporter index 9b13a5985f..7f66fe6815 160000 --- a/tools/jamulus-jamexporter +++ b/tools/jamulus-jamexporter @@ -1 +1 @@ -Subproject commit 9b13a5985fb8b6312a0b320919f00cb868e5b94e +Subproject commit 7f66fe6815854baab3bc0bf2264d67102e8ee46a From ad5537f8876582f6a67a169853bbece2277d97d7 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 10 Aug 2020 16:48:37 +0200 Subject: [PATCH 465/936] disable signal level meter in headless mode since it is not used anyway in that mode --- src/client.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/client.cpp b/src/client.cpp index cfc395f32e..0031d64719 100755 --- a/src/client.cpp +++ b/src/client.cpp @@ -987,10 +987,12 @@ void CClient::ProcessAudioDataIntern ( CVector& vecsStereoSndCrd ) // Transmit signal --------------------------------------------------------- - // update stereo signal level meter + // update stereo signal level meter (not needed in headless mode) +#ifndef HEADLESS SignalLevelMeter.Update ( vecsStereoSndCrd, iMonoBlockSizeSam, true ); +#endif // add reverberation effect if activated if ( iReverbLevel != 0 ) From a708a53cd0229c3b7fb0a667c5ad07264f167612 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 10 Aug 2020 22:12:46 +0200 Subject: [PATCH 466/936] accessibility improvements (#499) --- ChangeLog | 2 ++ src/multicolorled.cpp | 3 +++ 2 files changed, 5 insertions(+) diff --git a/ChangeLog b/ChangeLog index 07a0485abc..5049eae9e7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -26,6 +26,8 @@ - replacing internal history graph functionality by external scripts/tools (#501) +- accessibility improvements (#499) + - bug fix: added more mutex in the server (should fix #480) - bug fix: --showallservers ping column sort is alphabetic (#201) diff --git a/src/multicolorled.cpp b/src/multicolorled.cpp index b9134a4c63..c7dfbad40e 100755 --- a/src/multicolorled.cpp +++ b/src/multicolorled.cpp @@ -72,6 +72,7 @@ void CMultiColorLED::SetColor ( const ELightColor eNewColorFlag ) if ( eColorFlag != RL_RED ) { setPixmap ( BitmCubeRed ); + setAccessibleDescription ( tr ( "Red" ) ); eColorFlag = RL_RED; } break; @@ -81,6 +82,7 @@ void CMultiColorLED::SetColor ( const ELightColor eNewColorFlag ) if ( eColorFlag != RL_YELLOW ) { setPixmap ( BitmCubeYellow ); + setAccessibleDescription ( tr ( "Yellow" ) ); eColorFlag = RL_YELLOW; } break; @@ -90,6 +92,7 @@ void CMultiColorLED::SetColor ( const ELightColor eNewColorFlag ) if ( eColorFlag != RL_GREEN ) { setPixmap ( BitmCubeGreen ); + setAccessibleDescription ( tr ( "Green" ) ); eColorFlag = RL_GREEN; } break; From 844f9e04f5c3cdcc3985732fc548bed226e5d47d Mon Sep 17 00:00:00 2001 From: chigkim Date: Mon, 10 Aug 2020 19:13:20 -0400 Subject: [PATCH 467/936] Accessibility fix for screen readers to access pan value. --- src/audiomixerboard.cpp | 7 +++++++ src/audiomixerboard.h | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 93fc530323..2b75600e9b 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -432,6 +432,7 @@ void CChannelFader::SetPanValue ( const int iPan ) // we set the new fader level in the GUI (slider control) which then // emits to signal to tell the server about the change (implicitly) pPan->setValue ( iPan ); + pPan->setAccessibleName( QString::number( iPan ) ); } } @@ -490,6 +491,12 @@ void CChannelFader::SendPanValueToServer ( const int iPan ) emit panValueChanged ( static_cast ( iPan ) / AUD_MIX_PAN_MAX ); } +void CChannelFader::OnPanValueChanged ( int value ) +{ + pPan->setAccessibleName( QString::number(value) ); + SendPanValueToServer ( value ); +} + void CChannelFader::OnMuteStateChanged ( int value ) { // call muting function diff --git a/src/audiomixerboard.h b/src/audiomixerboard.h index b650622e73..37bdad54d4 100755 --- a/src/audiomixerboard.h +++ b/src/audiomixerboard.h @@ -124,7 +124,7 @@ class CChannelFader : public QObject public slots: void OnLevelValueChanged ( int value ) { SendFaderLevelToServer ( value, false ); } - void OnPanValueChanged ( int value ) { SendPanValueToServer ( value ); } + void OnPanValueChanged ( int value ); void OnMuteStateChanged ( int value ); void OnGroupStateChanged ( int ); From 5ac48585301abb95765743339724343a148003de Mon Sep 17 00:00:00 2001 From: chigkim Date: Mon, 10 Aug 2020 18:02:40 -0400 Subject: [PATCH 468/936] Accessibility fix for screen readers to access currently connected server name --- src/audiomixerboard.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 93fc530323..cbe29d8c6e 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -1018,6 +1018,7 @@ void CAudioMixerBoard::UpdateTitle() } setTitle ( strTitlePrefix + tr ( "Personal Mix at: " ) + strServerName ); + setAccessibleName(title()); } void CAudioMixerBoard::SetRecorderState ( const ERecorderState newRecorderState ) From 1be3102fad0aaaae5d5f37821f20f6861aa5de9e Mon Sep 17 00:00:00 2001 From: chigkim Date: Mon, 10 Aug 2020 20:05:51 -0400 Subject: [PATCH 469/936] Accessibility fix for screen readers to read only relevant information for alias, instrument, and location without html tags. --- src/audiomixerboard.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 93fc530323..4edbcba09c 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -706,19 +706,24 @@ void CChannelFader::SetChannelInfos ( const CChannelInfo& cChanInfo ) QString strToolTip = ""; // alias/name + QString accessibleAlias = ""; if ( !cChanInfo.strName.isEmpty() ) { strToolTip += "

" + tr ( "Alias/Name" ) + "

" + cChanInfo.strName; + accessibleAlias += cChanInfo.strName; } // instrument + QString accessibleInstrument = ""; if ( !CInstPictures::IsNotUsedInstrument ( iTTInstrument ) ) { strToolTip += "

" + tr ( "Instrument" ) + "

" + CInstPictures::GetName ( iTTInstrument ); + accessibleInstrument += CInstPictures::GetName ( iTTInstrument ); } // location + QString accessibleLocation = ""; if ( ( eTTCountry != QLocale::AnyCountry ) || ( !cChanInfo.strCity.isEmpty() ) ) { @@ -727,16 +732,19 @@ void CChannelFader::SetChannelInfos ( const CChannelInfo& cChanInfo ) if ( !cChanInfo.strCity.isEmpty() ) { strToolTip += cChanInfo.strCity; + accessibleLocation += cChanInfo.strCity; if ( eTTCountry != QLocale::AnyCountry ) { strToolTip += ", "; + accessibleLocation += ", "; } } if ( eTTCountry != QLocale::AnyCountry ) { strToolTip += QLocale::countryToString ( eTTCountry ); + accessibleLocation += QLocale::countryToString ( eTTCountry ); } } @@ -745,14 +753,17 @@ void CChannelFader::SetChannelInfos ( const CChannelInfo& cChanInfo ) { case SL_BEGINNER: strToolTip += "

" + tr ( "Skill Level" ) + "

" + tr ( "Beginner" ); + accessibleInstrument += ", Beginner"; break; case SL_INTERMEDIATE: strToolTip += "

" + tr ( "Skill Level" ) + "

" + tr ( "Intermediate" ); + accessibleInstrument += ", Intermediate"; break; case SL_PROFESSIONAL: strToolTip += "

" + tr ( "Skill Level" ) + "

" + tr ( "Expert" ); + accessibleInstrument += ", Expert"; break; case SL_NOT_SET: @@ -767,8 +778,12 @@ void CChannelFader::SetChannelInfos ( const CChannelInfo& cChanInfo ) } plblCountryFlag->setToolTip ( strToolTip ); + plblCountryFlag->setAccessibleDescription(accessibleLocation); plblInstrument->setToolTip ( strToolTip ); +plblInstrument->setAccessibleDescription ( accessibleInstrument ); plblLabel->setToolTip ( strToolTip ); + plblLabel->setAccessibleName(accessibleAlias); + plblLabel->setAccessibleDescription("Alias"); } From 0c928c0a305a84e5538108f865d8d363613005a6 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 11 Aug 2020 17:56:36 +0200 Subject: [PATCH 470/936] merge fixes --- ChangeLog | 2 +- src/audiomixerboard.cpp | 2 +- src/util.cpp | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5049eae9e7..60a85d85ad 100644 --- a/ChangeLog +++ b/ChangeLog @@ -26,7 +26,7 @@ - replacing internal history graph functionality by external scripts/tools (#501) -- accessibility improvements (#499) +- accessibility improvements, coded by chigkim (#499, #510) - bug fix: added more mutex in the server (should fix #480) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index cbe29d8c6e..3f0205b943 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -1018,7 +1018,7 @@ void CAudioMixerBoard::UpdateTitle() } setTitle ( strTitlePrefix + tr ( "Personal Mix at: " ) + strServerName ); - setAccessibleName(title()); + setAccessibleName ( title() ); } void CAudioMixerBoard::SetRecorderState ( const ERecorderState newRecorderState ) diff --git a/src/util.cpp b/src/util.cpp index 0ee137ede4..919fc79c2d 100755 --- a/src/util.cpp +++ b/src/util.cpp @@ -463,6 +463,7 @@ CAboutDlg::CAboutDlg ( QWidget* parent ) : QDialog ( parent ) "

Nils Brederlow (dingodoppelt)

" "

Sebastian Krzyszkowiak (dos1)

" "

dszgit (dszgit)

" + "

chigkim (chigkim)

" "

Bodo (bomm)

" "

jp8 (jp8)

" "

bspeer (bspeer)

" From 8f9f6fa5dc7efae575baff09d6b0b8e30d9680fb Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 11 Aug 2020 19:20:30 +0200 Subject: [PATCH 471/936] Adjust Mute Myself warning label text (#476) --- src/clientdlgbase.ui | 2 +- src/res/translation/translation_de_DE.qm | Bin 110023 -> 110156 bytes src/res/translation/translation_de_DE.ts | 238 +++++++++++++---------- src/res/translation/translation_es_ES.qm | Bin 106520 -> 106832 bytes src/res/translation/translation_es_ES.ts | 238 +++++++++++++---------- src/res/translation/translation_fr_FR.qm | Bin 113828 -> 114132 bytes src/res/translation/translation_fr_FR.ts | 238 +++++++++++++---------- src/res/translation/translation_it_IT.qm | Bin 108380 -> 108555 bytes src/res/translation/translation_it_IT.ts | 234 ++++++++++++---------- src/res/translation/translation_nl_NL.qm | Bin 106389 -> 106374 bytes src/res/translation/translation_nl_NL.ts | 238 +++++++++++++---------- src/res/translation/translation_pl_PL.ts | 234 ++++++++++++---------- src/res/translation/translation_pt_BR.qm | Bin 109300 -> 109483 bytes src/res/translation/translation_pt_BR.ts | 234 ++++++++++++---------- src/res/translation/translation_pt_PT.qm | Bin 109168 -> 109351 bytes src/res/translation/translation_pt_PT.ts | 234 ++++++++++++---------- src/res/translation/translation_sv_SE.qm | Bin 103072 -> 103396 bytes src/res/translation/translation_sv_SE.ts | 238 +++++++++++++---------- 18 files changed, 1155 insertions(+), 973 deletions(-) diff --git a/src/clientdlgbase.ui b/src/clientdlgbase.ui index bbd87b9cd4..48b7fdb029 100755 --- a/src/clientdlgbase.ui +++ b/src/clientdlgbase.ui @@ -545,7 +545,7 @@ - MUTED (You are not sending any audio to the server) + MUTED (Other people won't hear you) Qt::AlignCenter diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index 2393973256aa686981cf54046222e6dccbc9a043..0721ee11eeb5717f88f10ac1f5d602153fe73827 100644 GIT binary patch delta 4236 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 delta 4214 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 MIVT?3u(%cf2ku7yi2wiq diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index a69e952a1f..2950cdfd0c 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -67,57 +67,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 Holländisch - + Italian Italienisch - + German Deutsch - + Polish Polnisch - + Swedish Schwedisch - + About Über @@ -1059,8 +1059,12 @@ + MUTED (Other people won't hear you) + Stumm (Die anderen hören dich nicht) + + MUTED (You are not sending any audio to the server) - Stumm (Es wird kein Ton zum Server gesendet) + Stumm (Es wird kein Ton zum Server gesendet)
@@ -2041,28 +2045,28 @@ CHelpMenu - + &Help &Hilfe - - + + Getting &Started... &Erste Schritte... - + Software &Manual... Software&handbuch... - + What's &This Konte&xthilfe - + &About... Ü&ber... @@ -2070,12 +2074,12 @@ CLanguageComboBox - + Restart Required Neustart erforderlich - + Please restart the application for the language change to take effect. Bitte starte die Applikation neu um die Änderung der Spracheinstellung anzuwenden. @@ -2083,106 +2087,124 @@ 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 Sie stimmen zu, dass alle Daten, Klänge oder andere Arbeiten, die zum Server gesendet werden, Ihnen gehören oder von Ihnen selbst oder einem Lizenzgeber erstellt wurden und dass Sie diese Daten, Klänge oder andere Arbeiten unter die folgende Creative Commons Lizenz stellen (Für weitere Informationen über die Lizenz, siehe - + You are free to: Sie dürfen: - + Share Teilen - + copy and redistribute the material in any medium or format das Material in jedwedem Format oder Medium vervielfältigen und weiterverbreiten - + Adapt Bearbeiten - + remix, transform, and build upon the material das Material remixen, verändern und darauf aufbauen - + The licensor cannot revoke these freedoms as long as you follow the license terms. Der Lizenzgeber kann diese Freiheiten nicht widerrufen solange Sie sich an die Lizenzbedingungen halten. - + Under the following terms: Unter folgenden Bedingungen: - + Attribution Namensnennung - + 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. Sie müssen angemessene Urheber- und Rechteangaben machen, einen Link zur Lizenz beifügen und angeben, ob Änderungen vorgenommen wurden. Diese Angaben dürfen in jeder angemessenen Art und Weise gemacht werden, allerdings nicht so, dass der Eindruck entsteht, der Lizenzgeber unterstütze gerade Sie oder Ihre Nutzung besonders. - + NonCommercial Nicht kommerziell - + You may not use the material for commercial purposes. Sie dürfen das Material nicht für kommerzielle Zwecke nutzen. - + ShareAlike Weitergabe unter gleichen Bedingungen - + If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. Wenn Sie das Material remixen, verändern oder anderweitig direkt darauf aufbauen, dürfen Sie Ihre Beiträge nur unter derselben Lizenz wie das Original verbreiten. - + No additional restrictions Keine weiteren Einschränkungen - + You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. Sie dürfen keine zusätzlichen Klauseln oder technische Verfahren einsetzen, die anderen rechtlich irgendetwas untersagen, was die Lizenz erlaubt. + + CMultiColorLED + + + Red + Rot + + + + Yellow + Gelb + + + + Green + Grün + + CMusProfDlg @@ -2190,85 +2212,85 @@ 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 @@ -2281,7 +2303,7 @@ Was man hier sieht wird auch am Fader im Mixer angezeigt, wenn du mit einem - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level 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. @@ -2290,227 +2312,227 @@ Was man hier sieht wird auch am Fader im Mixer angezeigt, wenn du mit einem Server verbunden bist. Dieses Schild wird auch bei allen anderen Musikern, die mit dem gleichen Server verbunden sind, angezeigt. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Was man hier sieht wird auch am Fader im Mixer angezeigt, wenn du mit einem Server verbunden bist. Dieses Schild wird auch bei allen anderen Musikern, die mit dem gleichen Server verbunden sind, angezeigt. - + 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 - + Vocal Bass Gesang Bass - + Vocal Tenor Gesang Tenor - + Vocal Alto Gesang Alt - + Vocal Soprano Gesang Sopran - + Banjo Banjo - + Mandolin Mandoline - + Ukulele - + Bass Ukulele - + Vocal Baritone Gesang Bariton - + Vocal Lead Leadsänger @@ -3293,17 +3315,17 @@ QCoreApplication - + , Version , Version - + Internet Jam Session Software Internet Jam Session Software - + Released under the GNU General Public License (GPL) Unter der GNU General Public License (GPL) diff --git a/src/res/translation/translation_es_ES.qm b/src/res/translation/translation_es_ES.qm index 59de9867dd09b469871f2d2f71e6cbb1c57cb489..c1989022e26a2f0211a00dd50ef9147f2d4be5f4 100644 GIT binary patch delta 3528 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 diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index 432fabc29a..fda04f1260 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -71,57 +71,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 - + Italian Italiano - + German Alemán - + Polish Polaco - + Swedish Sueco - + About Acerca de @@ -1075,8 +1075,12 @@ + MUTED (Other people won't hear you) + + + MUTED (You are not sending any audio to the server) - MUTEADO (No estás enviando audio al servidor) + MUTEADO (No estás enviando audio al servidor) @@ -2065,28 +2069,28 @@ CHelpMenu - + &Help &Ayuda - - + + Getting &Started... Cómo &Empezar... - + Software &Manual... Manual del &Software... - + What's &This Qué es &Esto - + &About... &Acerca de... @@ -2094,12 +2098,12 @@ CLanguageComboBox - + Restart Required Reinicio Necesario - + Please restart the application for the language change to take effect. Por favor reinicia la aplicación para que el cambio de idioma surta efecto. @@ -2107,106 +2111,124 @@ 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. + + CMultiColorLED + + + Red + Rojo + + + + Yellow + Amarillo + + + + Green + Verde + + CMusProfDlg @@ -2214,85 +2236,85 @@ 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 @@ -2305,7 +2327,7 @@ Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Escribe tu nombre o alias aquí para que otros 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. @@ -2314,227 +2336,227 @@ Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor. Esta etiqueta también se mostrará en cada cliente conectado al mismo servidor que tú. Si se deja el nombre vacío, se muestra la dirección IP en su lugar. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor Jamulus. Esta etiqueta también se mostrará en cada cliente conectado al mismo servidor que tú. - + 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 - + Vocal Bass Voz Bajo - + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Mandolina - + Ukulele Ukulele - + Bass Ukulele Ukulele Barítono - + Vocal Baritone Voz Barítono - + Vocal Lead Voz Principal @@ -3317,17 +3339,17 @@ QCoreApplication - + , Version , Versión - + Internet Jam Session Software Internet Jam Session Software - + Released under the GNU General Public License (GPL) Publicado bajo la GNU General Public License (GPL) diff --git a/src/res/translation/translation_fr_FR.qm b/src/res/translation/translation_fr_FR.qm index 7c0685a867b27bab2a572a7874e928903d41e594..f98c3ee1b8f088ca991b0edd87d57fcdf24c6344 100644 GIT binary patch delta 3404 zcmZWrd0bT289m>d_h#nJ@aU${T%*l;m4erJD2uon1@Xxx;IE%T>b?-@5CG|&^FV3>q+VNr7Eee) z3qj)!KpLU~cXvS=J_e|n8+ zpz=D5oD&KPd#!p3R(H=#j6TYH%X@>UB?p1w?Hx$%&#I#ZUw3&RV!eBSI!;5p)`$0y zhWJVI7*DE81>f#&@%WJ!BDnRZlp#({w4k5zlrE$RD{e>+N;{cD| z!nOr0mc{FYs<(Y`NfxTMSbEBQ%qHRc1Id6<6>dc{IoWl>-ACEn!6m};+<8E)Un|~i6kgc5v)fOrk3?&9 zRis9H^a=O>H;w1-{M=+&krzYQ{$x&`|KaY_^ppY9}f`!5_A~&UO;)exZs8_Xi_h6byFYUez#U^IV-M@{SN4Ny%lF|5Vsbc1-ZG3 z+ZKcayYGq>qd#U^3&g5(?6qf~I?zs20>tVa@xVtn#Ol+lfm?ILU3FZx#}ILM_aauo z6>;}T8<1Zio=#f@wD0La@(dBr4B!VgrnX}9J@L|!HGohi{;YCeg&)MLR;GVWXYu-# zPQZsG-usrt*1S+`3@QX|dnP`6HN*}aTp&J=Tn6-ylav;A_s6~tq`}RSb9gelI8tig zg}+a7ll;9{7=wCC0h_I$MITB7eyIhv$4T#+0|B|cG%%jC<--|L$m=m6Uq~bV=)(N% zmBw1wG*1Rd<5lkO&hFCGbQ`GRhLj@Mi$OVKq|`wQ&?!XvOCJw*$v!FLt@&~kX?8EJ zNK-B4Ke-7kS|%0zI~};#C>1}s02)6~`s=K6wuwP1NnZvU^;9Z7^%2L`Eou4Gv%sCb zlG=?6db3FS?D~IzfEpuj77FS~KJAo0c)s`t?kud15Qx-@$kj)U%7U zS$~)<@KV~mC>=C>u~c>95Hl7oorw5@sT?VtNo?jYDU&Y5y`}j5R=m+)`Xg{ATdt=A z$t6I2r1Nvyp*03`s`f3_x)yQJdEQmK=zZOTUu&m1-v^4I{ZOmnyql^mjOFU5)u_pO zKcC;U)mb5+r6t-gw@(F3>$Hc)vg}-UIgq>-sx^9B$JlV~Z-*0rF233q?m?i;$J&=( zOiAKQZHotU-EENiMsMx7;MqK!Gl=D}Oex(9IcL4>(D>Vod^Q$YR~f6D+Myl60%fhOh$O z=+<022%@LDGE)?2-g;dtpAEVV$F1yvpVV(;tG!Es?#4d`GkvdgH=A#Ry8Kgj>vbKd z_gP(omlYT@QZGi22U4c#O;;a-N?Y`8_JsfsHG2QzJAB;4Igq?x>U;lr4@b@~`hZ$~ zY+I{7a%Mfq+pdq=^PG>Xz7C|>pXn#Ku@$TK>r;*$g%R!C9B;^Vhnj4##k!U2mtW>G z+D+1{dpP0bEd4HBDQIG@{;TPQpjl@9p^FJ1|8o7Y)ysfAoAt*Fe*qbn$jYI|z`31r zyB@iq3G-yP`jx$1uTPz0+8)S<;(5NuUirA!9t5JllU(1M_Zb}~Hxw{Go}1*Rt?Z8$ zRsMZ2*OS;{5Z;Sm-`zG?T9|K3s``!5YtoN~@f!}Z7%B`&GjDTFX$(ov`P(fI4apIF zem9GTl=n}7Zw`i(242;r%#iZxCA0R>kT&@;H@n)9etSD;u%99G%_7#dXvhxd-2Ng~ z?PKaox780!R=Zbw!zm}GHm%NZ;S*lGpP%8UU2hkiVrb~aHO6)`JdkA$vw23b$_1Ek z!l>6oa<;e|+jO>pifWDiuJu5lVaC3rbAYG67)J~(0+k&z#<=zXs^2lr2p9-z?_$gf zJP16RV$6DbxrljT%(_;O7>t}`%zqHWY3pQM@<}2$!_&C5fwO7K&&E}~nm99Zjq8W6 z;_`AH!Oz%-nGPiDC1b^>d@J#}Ypi)!0j*Tkc(cu(K*lROeg*}27_Uc; z;KOl|@%sCrEU{V#lG{b&3-KZMoJ?(>ooDHUnEtd^0KM1UT3!grU!~MOe4SJCN+FziarqnJH^$Q;y>g4_!gT| z54iEoqsEka%Lc?PHKl#c;>##AW!~Wj?ObWfzIX<-ri*FiEvBI&+oX0?Saj!2>wFIL zAzW(O|AdK6sWcrR#`_OUb?>pba<`j~PP_v6m`&gB=Jm(UH~ovi4Lf5xr4JPOoUB!s zDz?x;^G!|h%%9guvvTPRF7%k$;|mF>jCLT+_BZ>DbLI>PGWT?A2923u4sNUktqUx&E+ZSKyazKGK~8;u%CJ7v~i$>L*_$IxvZ>Y2U5{ObKT*3pl+D? z_>Ad%a~)@{Pvp;2Mw?H&b^>WTnC~^(I8yZH2UB@GUu*t#Kom#LQuDKYQJ~NgMc3Sx zX&a`voPG>!UZixGxd?$&uu}2RSFz{YDP0Q-fq(s~bbYuU=$Nhaa<+nse^mM#7qfTT zC?Sto_34%BBa6R%zmi_r%O zJ1EaQZ?abhD=({S0d-v)SNExL7N5vUz6!6kgmfwbN{(2De$RJZk4E)}HdcE_U(37; z{rJ$EY$;tQ0Hfwvmg>?0T{}yeO9FS|vgJEYRSXZcd}rr-<;3=ubIU6EBBQsQcm5B@ z*=$SW%P62iXL->^VF?#onu242`2Lor>U2=}K=xbpWDSd>Ee^vQnaD;4zh)o@-uk_% zPC0KpLopW9cq|zOJfo9iRtEBTrZ>_)?>(8^0x~e2fAe@!19DjMfR_I{jGddA?A^(G zMn<-G#`NiVnX{6UymOMXXD4UpeBN6m=P$1+RPU;$P4KWNVWacXa%Y8Qq-A7}8up&r VnCSC=V}<#h|99-m3O{OI^F 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ô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 - + Italian Italien - + German Allemand - + Polish Polonais - + Swedish Suédois - + About À propos @@ -1075,8 +1075,12 @@ + MUTED (Other people won't hear you) + + + MUTED (You are not sending any audio to the server) - SILENCÉ (vous n'envoyez aucun son au serveur) + SILENCÉ (vous n'envoyez aucun son au serveur) @@ -2061,28 +2065,28 @@ CHelpMenu - + &Help &Aide - - + + Getting &Started... Premier pa&s... - + Software &Manual... &Manuel du logiciel... - + What's &This Qu'est-ce que c'est ? - + &About... À &propos @@ -2090,12 +2094,12 @@ CLanguageComboBox - + Restart Required Redémarrage nécessaire - + Please restart the application for the language change to take effect. Veuillez relancer l'application pour que le changement de langue prenne effet. @@ -2103,106 +2107,124 @@ 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. + + CMultiColorLED + + + Red + Rouge + + + + Yellow + Jaune + + + + Green + Vert + + CMusProfDlg @@ -2210,85 +2232,85 @@ . 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 Dialogue d'édition de pseudo ou de nom - + Instrument picture button Bouton d'image d'instrument - + Country flag button Bouton de drapeau de pays - + City edit box Dialogue d'édition de ville - + Skill level combo box Choix déroulant de niveau de compétence - - - + + + 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 @@ -2301,232 +2323,232 @@ Ce que vous réglez ici apparaîtra au niveau de votre fader sur la table de mixage lorsque vous serez connecté à un serveur - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Écrivez votre nom ou un pseudonyme ici pour que les autres musiciens avec lesquels vous voulez jouer sachent qui vous êtes. Vous pouvez également ajouter une photo de l'instrument dont vous jouez et un drapeau du pays dans lequel vous vous trouvez. Vous pouvez également ajouter votre ville et votre niveau de compétence pour jouer de votre instrument. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Ce que vous réglez ici apparaîtra au niveau de votre chariot sur la table de mixage lorsque vous serez connecté à un serveur Jamulus. Cette étiquette sera également affichée dans chaque client qui est connecté au même serveur que vous. - + 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 - + Vocal Bass Voix basse - + Vocal Tenor Voix ténor - + Vocal Alto Voix alto - + Vocal Soprano Voix soprano - + Banjo Banjo - + Mandolin Mandoline - + Ukulele Ukulélé - + Bass Ukulele Ukulélé basse - + Vocal Baritone Voix baryton - + Vocal Lead Voix principale @@ -3305,17 +3327,17 @@ QCoreApplication - + , Version , version - + Internet Jam Session Software Logiciel de bÅ“uf sur Internet - + Released under the GNU General Public License (GPL) Publié sous la licence publique générale GNU (GPL) diff --git a/src/res/translation/translation_it_IT.qm b/src/res/translation/translation_it_IT.qm index c18889868a1f937a6fd8bda1c0a9460e8fec90c9..b3e8764a42ab52087284efdd55b73d1912646a1b 100644 GIT binary patch delta 2606 zcmZWrdt6lI7G3)=XU@!d4Pb;QPajA=1_i{l5E11eLL`uYp#g%(MMTsjuY#8NxGFx5 z_$a$xH5IKeO|v3FQ|wJvVrrQ$)KmmDLDAB?o&LM`pILLh^PBzcz1P}n&#w*UrN_-H zpQ6-NZf}}X_kqj@R=w{n%VS{reI-bbUe)Ly6lsAt%m7ZCAx6CbY^{bEGZ2*11LEjy zfR_yMrI8>PKZt25jPXW4vdbkJ#G3h_PFY3{EeslvjhJ#9$g&Kv6VHLHcM)4TnWJ1l z?2$l_+#RDrD?t^{V$`hRpaH84FTuNuWXA+tlKuo~U()3)KBq*wnp6u~+Qm5Q6xB^yA%tHF2C15mTAl!8{wSnB`)?rj zoG|TSA*kD2W2DKa>}O%!vX_B(=L%b5Q-H2D!nXNL<;?TKt|#r4JcV6byn(gJLbWXj z==`xz{h$csStNW^z{z>;6lz=3K(WJxx<31Xy(z+BJJU3*Mfj>F2T-;Om&S1I6M73* zZWesy)DJSVS*eD8#5PJSQfgH~9a zLdFjTgW)_2ZJhy8yVtIIlG4`^?7Wp<}ujDcn!{!B6Zmu1f~oj=nZnDK+@>S3m&wZL>E zq!hHWkLm9HVZev8Ol@%$z#x;TKW2%~NpK+bTOzu}HL&TH_?#9DSWbw~XYlw;S|<*D@B+v!NsRupCyWQ?E-&5}^MnQ5u%lvr zm=1Ky75_2NlSOkyocctI6XuGq_FvB;J1>^BUIgaN5oiBg2z>pbxS+KW6j?4Vp1hS+ z6DKYytN;yeGjgP8mnw0yCfOvJjqv$HYrrl78(64 zy*!SXGu?g%UR!Ver`d^zZl}34oi9(wH>OwuJx-br?0f}K*O}{*2eKw|9Z0s$#(s;v zTXd!Qk3-{u9$Du0E+ITMVdi^2oXHEG=Et6PQ0M-JX!Y^iCwawi=@aXv(2f!o+IcC$ zhvhkcpOoNJ4T?!NMp}I`w@4E@9)SuTNz*e<0JHZxkbEylGXwZp`%sz{-vGD-N(-FE zgX}hG^_NUs*S5 zKyqGY8Svs>Ao`dksJa#;bhX4yYG7GBZAsYM2Ao>zK+3vl8SBBy+&s^ccdVX$$MuHe z3t1A3DY9L#jxyes-CZ_VKFKZxrTALvPI7JD7NcJFp-skRIq;c-)+lme$JMQIIiCV; zQP%YPL)j(ktl6vDK(6L$2%tit>;P#+~LSN63XuJ3)P`<)Xh9f#MI##W6h7 ztEL%Y>e#g1^0zKrUg{aSaUn!^`R$@L_5te(o! zg<0I85@q={p0m+)%9{QiK;JIP#;7&C8UmHKw^AcvcStb|fDTv} zt8e)oVzXVRe%i{t%Jx-ji18Os^~eYoMy9h`pLz!H%~8MF!|@|NQ@ZazoLu7w5IgqjzYrRt3c%W8j{X8Clo?obi-lztZ z&o}jvWAFTWfcsxKK+QQ0B zzht!8qSHF`xy{=+?GSxl@tdGPFWqo^BBc-X&G)$rk->jsPLjTJLo&$ARj>WA0tncl zpK==n^4qUplzOnW{j6Uv<+2YQ)ti@a`hJN umY9v%$=)_SGJa;kjLDHx3#Jy29y!9;Io|L8&K?x||L@s>-`uHm#eV?}e+eM~ delta 2560 zcmXArd0bRg8^?doow;-G%)K)M7%wishzk2!H`OUfWx#v93`F+pt%#u@v3-yMT zFHqEn?jQRW6aW`|pkKNNIDHTLPm6(|O6dPx1u|Ace{&_sy!XS4zQF_XAVz6Gg8^df z>%f)@i1A^dtYr`fZv(tc5QoQrToywdna28+7Djf{teFt2=Y!mS)TYp)%swX(Ut$GG ztw_jf+l1RH5z*c4gjp{~lXW2LC_^M&RPp9bko(j;=y>#}`F;MrTbUF2ZY(o$=W%6?xLN`)t zK#Lb@cXhGd3~fUHt05p|rtoG-3NZFpA^nw4frLgO?`bZ`=em}rw-rSRA1!?g*gaR+ zoR9`|sTQ`)XK!aD2)q8?Z$pW&YqK}7c9>9M4F)=XEmS<23hL4ze3iq+dAbQTEh9nk zyM;q9eF;>i35V_MThs{Q`|4~!*&|FcQ@^_&QRCFKL4WgddlmL&eQpPJqfftPZydI35rP4B1B))oI>3fGx~y7@7AV> zk*3ULddJpgQ0_GCOVKXG9MhV_UOqka+vdjuJErQ(lNW+a`TAYIodd2WM!M7;$lK#^9?!fe4^fwN(B`rDnJE4W36|40R+oFJdv-GV=%Ym2mqUAX= zUy$Nd3V0y8$7eI!uZ#cc$-if85d&>mApcY`xQs2GHd*Xs>`!Mjj zOJaV@6<}V0IQu`jzz=VT#Vuz*1DeGT-rmC0>=#ROmxKCdXfvcZS68u2t_40*#IpC< z{E&R@C&`0GX-$%kW|6}L^_~_Z_v#d280&r$cyFCyjzPzhxETu5dC}zGv=TY6Q-8yO zonrv?Bg3I#Va&pKr;=s9_LFSy7W>TbXKe=1Bh&Dxb13Moa>HXASCCR-cy4nlwzv@#eJ(ejJC0gG`js6C})E7uH!T?yV9xD zHBp-3$7Az8X;yMQ;2J0u>oP#S^QBcM*s!8XY0dg5-q;n=y2cvd!I#o{H3c-$SK6@Q z3S+xX+V~wCV)|XXXk_@M%U|{97&s_hd3KF$D3q=~ISR6Em2TM>z9d1`4;>C<{vxXv zn?bYo$S(UMf&Y>mSlk47RydWct#Z&Cl|bBaIk=(*By^FJCe(9&6v-)-t-!e@PNmG@ z@`z4MWZ67<;_*7p8@D^oFC-n%N=$Ztd7r$pfxGAsA#0Uufc6S`ue1~tBgj?b3PHn4 z6Jv`k-bY`G)b8xhfZrQ$eA<6G z;Bc6PK?zJ{t#(GS56!u4%9?Num=j^jYUPbtdfb$qpa+`onTW;w_%WP-U9f z_Lv)3V9FWQz}vpdlzVL_D8R!s^{@AtD}U3pcs|`L&ueMw2-l9Lldjy}n*&W}7V)e- z^R#bOkD_ozzsmzi4NzoV5};2}Tzc3+lbe;mj*LLaDCOnkcY$lCmAL46poNQ-)Q$nb z=0;_F@M|FPypk8fC^Tj(d4Jz1QRPZrBfl3LqvYRCid2C%6sol5de<&pjmkfmL9dw3c&@R<6-J^>WuuX@e>6bKGh zy;m?a_pUjW5?fX8_AH>uUwyIJ4G7z#1_aDtV;`&WF)}cBy_$H0z4-l%I`l*&iYOsj zb*$xj+y|(Wsyp#Dvq_zF)eemCP;(A48Ka`rsZG34xvx6y>?zQKKy?-0UbIqHH9rer z{6PK0rNhRCvE#a`)x`R{r+Rb{Gc)ErweHRHK-X;b`!9I@=$`5i1R$+eJt>Fi z`MONhKDXHW`EOL)9lU{-!)D95?Vv%!&7Rvu4ne(BY3zM-uQYc)eQoC6ot}YSZ83-6 zsQ?w<*4(YJ!t}G6!|L&Ng!#||E-c{Q$T^G7U`KAZw^^Jer^WVEwOZ&z$A_j z)h=4S-QIa@>8mUTo(EYXn;F#f!J646Ze*rq?jPHL&``^~X&-~^i!7QuBjeV|Qr5q^;%1FJgHdn^7Am^S=< diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index 83d69ecb2a..7fd67b63f6 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -67,57 +67,57 @@ Le icone delle bandiere sono state realizzate da Marl James - + For details on the contributions check out the Per maggiori informazioni su chi ha contribuito, visitare - + Github Contributors list Lista dei collaboratori su Github - + Spanish Spagnolo - + French Francese - + Portuguese Portoghese - + Dutch Olandese - + Italian Italiano - + German Tedesco - + Polish Polacco - + Swedish Svedese - + About Informazioni su @@ -1055,7 +1055,7 @@ - MUTED (You are not sending any audio to the server) + MUTED (Other people won't hear you) @@ -2021,28 +2021,28 @@ CHelpMenu - + &Help &Aiuto - - + + Getting &Started... &Introduzione... - + Software &Manual... &Manuale Software... - + What's &This &Cos'è Questo - + &About... I&nformazioni su... @@ -2050,12 +2050,12 @@ CLanguageComboBox - + Restart Required Riavvio Richiesto - + Please restart the application for the language change to take effect. Perfavore Riavvia il programma oer rendere effettive le modifiche. @@ -2063,163 +2063,181 @@ CLicenceDlg - + I &agree to the above licence terms &Accetto i termini di licenza - + Accept Accetto - + Decline Declino - + By connecting to this server and agreeing to this notice, you agree to the following: Collegandosi a questo server e accettando questo avviso, si accetta quanto segue: - + 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 Dichiari che tutti i dati, audio o altre opere trasmessi a questo server sono di tua proprietà e creati da te o dai tuoi licenziatari e che rendi questi dati, audio o altre opere disponibili a terzi mediante la seguente Licenza Creative Commons (per ulteriori informazioni su questa licenza, vedere - + You are free to: Sei libero di: - + Share Condividere - + copy and redistribute the material in any medium or format copiare e ridistribuire il materiale in qualsiasi supporto o formato - + Adapt Adattare - + remix, transform, and build upon the material remixare, trasformare e modificare il materiale - + The licensor cannot revoke these freedoms as long as you follow the license terms. Il licenziante non può revocare queste libertà fintanto che segui i termini della licenza. - + Under the following terms: Sotto i seguenti requisiti: - + Attribution Attribuzione - + 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. È necessario accreditare in modo appropriato, fornire un collegamento alla licenza e indicare se sono state apportate modifiche. Puoi farlo in modo ragionevole, ma non in modo tale da suggerire a te o al tuo utilizzo il supporto del licenziante. - + NonCommercial Non Commerciale - + You may not use the material for commercial purposes. Non è possibile utilizzare il materiale a fini commerciali. - + ShareAlike Condividere allo stesso modo - + If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. Se remixate, trasformate o sviluppate il materiale, dovete distribuire i vostri contributi con la stessa licenza dell'originale. - + No additional restrictions Nessuna restrizione aggiuntiva - + You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. Non è possibile applicare termini legali o misure tecnologiche che impediscono legalmente ad altre persone di fare qualsiasi cosa consentita dalla licenza. + + CMultiColorLED + + + Red + Rosso + + + + Yellow + Giallo + + + + Green + Verde + + CMusProfDlg - - + + Musician Profile Profilo del Musicista - + Alias/Name Nome/Alias - + Instrument Strumento - + Country Paese - + City Città - + Skill Livello - + &Close &Chiudi - - - + + + None None - + Beginner Principiante - + Intermediate Intermedio - + Expert Esperto @@ -2236,257 +2254,257 @@ questo tag verrà mostrato anche a ciascun client connesso allo stesso server. Se viene lasciato vuoto, verrà visualizzato l'indirizzo IP. - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Scrivi qui il tuo nome o un alias in modo che gli altri musicisti con cui vuoi suonare sappiano chi sei. Puoi anche aggiungere una foto dello strumento che suoni e una bandiera del paese in cui ti trovi. Puoi anche aggiungere la tua città e il tuo livello di abilità nel suonare il tuo strumento. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Ciò che hai impostato apparirà sul tuo fader sulla scheda del mixer quando sei collegato a un server Jamulus. Questo tag verrà mostrato anche su ogni client collegato allo stesso server. - + Alias or name edit box Box di modifica Nome o Alias - + Instrument picture button Immagine dello strumento - + Country flag button Pulsante bandiera del paese - + City edit box Box di modifica Città - + Skill level combo box Livello di Abilità - + Drum Set Batteria - + Djembe Djembe - + Electric Guitar Chitarra elettrica - + Acoustic Guitar Chitarra Acustica - + Bass Guitar Basso Elettrico - + Keyboard Tastiera - + Synthesizer Sintetizzatore - + Grand Piano Grand Piano - + Accordion Fisarmonica - + Vocal Voce - + Microphone Microfono - + Harmonica Armonica - + Trumpet Tromba - + Trombone Trombone - + French Horn Corno Francese - + Tuba Tuba - + Saxophone Sassofono - + Clarinet Clarinet - + Flute Flauto - + Violin Violino - + Cello Cello - + Double Bass Contrabbasso - + Recorder Recorder - + Streamer Streamer - + Listener Ascoltatore - + Guitar+Vocal Chitarra+Voce - + Keyboard+Vocal Tastiera+Voce - + Bodhran Bodhran - + Bassoon Fagotto - + Oboe Oboe - + Harp Arpa - + Viola Viola - + Congas Congas - + Bongo Bongo - + Vocal Bass Voce Basso - + Vocal Tenor Voce Tenore - + Vocal Alto Voce Alto - + Vocal Soprano Voce Soprano - + Banjo Banjo - + Mandolin Mandolino - + Ukulele Uculele - + Bass Ukulele Uculele Basso - + Vocal Baritone Voce Baritono - + Vocal Lead Vocal Lead @@ -3257,17 +3275,17 @@ QCoreApplication - + , Version Versione, Versione - + Internet Jam Session Software Programma per Jam Session su Internet - + Released under the GNU General Public License (GPL) Rilasciato sotto licensa GNU General Public License (GPL) diff --git a/src/res/translation/translation_nl_NL.qm b/src/res/translation/translation_nl_NL.qm index 7410a8e01dccbba373e62e82316f96095dd48c10..51efa310c4e6e7a2ca8564ff1b1bb25644354c90 100644 GIT binary patch delta 4150 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 delta 4212 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 ARsaA1 diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index 2f88708b2e..08b88ec26e 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -67,57 +67,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 - + Italian Italiaans - + German Duits - + Polish Pools - + Swedish Zweeds - + About Over @@ -1043,8 +1043,12 @@ + MUTED (Other people won't hear you) + + + MUTED (You are not sending any audio to the server) - GEDEMPT (Je stuurt geen audio naar de server) + GEDEMPT (Je stuurt geen audio naar de server) @@ -2009,28 +2013,28 @@ CHelpMenu - + &Help &Hulp - - + + Getting &Started... &Aan de slag... - + Software &Manual... Software&handleiding... - + What's &This Wat Is &Dit - + &About... &Over... @@ -2038,12 +2042,12 @@ CLanguageComboBox - + Restart Required Herstart noodzakelijk - + Please restart the application for the language change to take effect. Start de applicatie opnieuw om de taalwijziging door te voeren. @@ -2051,163 +2055,181 @@ 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. + + CMultiColorLED + + + Red + Rood + + + + Yellow + Geel + + + + Green + Groen + + 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 @@ -2224,257 +2246,257 @@ 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. - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level 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 je vaardigheidsniveau kunnen ook worden toegevoegd. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Wat u hier instelt verschijnt bij uw fader op het mengpaneel indien verbonden met een Jamulus-server. Deze tag zal ook worden getoond aan andere muzikanten die met deze server verbonden zijn. - + 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 - + Vocal Bass Bas (stem) - + Vocal Tenor Tenor (stem) - + Vocal Alto Alt (stem) - + Vocal Soprano Sopraan (stem) - + Banjo Banjo - + Mandolin Mandoline - + Ukulele Ukelele - + Bass Ukulele Ukelele-bas - + Vocal Baritone Bariton (stem) - + Vocal Lead Leadzanger @@ -3257,17 +3279,17 @@ QCoreApplication - + , Version , Versie - + Internet Jam Session Software Internet Jamsessie Software - + Released under the GNU General Public License (GPL) Gereleased onder de GNU General Public License (GPL) diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index 5260ac5adb..d45d13e19e 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -39,57 +39,57 @@ - + For details on the contributions check out the - + Github Contributors list - + Spanish hiszpaÅ„ski - + French francuski - + Portuguese portugalski - + Dutch holenderski - + Italian wÅ‚oski - + German niemiecki - + Polish - + Swedish - + About O programie @@ -898,7 +898,7 @@ nie jestem pewna - MUTED (You are not sending any audio to the server) + MUTED (Other people won't hear you) @@ -1717,28 +1717,28 @@ nie jestem pewna CHelpMenu - + &Help &Pomoc - - + + Getting &Started... &Zaczynajmy... - + Software &Manual... &Instrukcja programu... - + What's &This &Co to - + &About... &O programie... @@ -1746,12 +1746,12 @@ nie jestem pewna CLanguageComboBox - + Restart Required - + Please restart the application for the language change to take effect. @@ -1759,420 +1759,438 @@ nie jestem pewna CLicenceDlg - + I &agree to the above licence terms - + Accept - + Decline - + By connecting to this server and agreeing to this notice, you agree to the following: - + 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. + + CMultiColorLED + + + Red + + + + + Yellow + + + + + Green + + + CMusProfDlg - - + + Musician Profile Profil muzyka - + Alias/Name Nick/ImiÄ™ - + Instrument Instrument - + Country Kraj - + City Miasto - + Skill UmiejÄ™tnoÅ›ci - + &Close &Zamknij - - - + + + None *nie jestem pewna Å»aden - + Beginner PoczÄ…tkujÄ…cy - + Intermediate Åšredniozaawansowany - + Expert Ekspert - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. - + Alias or name edit box - + Instrument picture button - + Country flag button - + City edit box - + Skill level combo box - + Drum Set Zestaw perkusyjny - + Djembe Djembe - + Electric Guitar Gitara elektryczna - + Acoustic Guitar Gitara akustyczna - + Bass Guitar Gitara basowa - + Keyboard Keyboard - + Synthesizer Syntezator - + Grand Piano Fortepian - + Accordion Akordeon - + Vocal Wokal - + Microphone Mikrofon - + Harmonica Harmonijka ustna - + Trumpet TrÄ…bka - + Trombone Puzon - + French Horn Waltornia - + Tuba Tuba - + Saxophone Saksofon - + Clarinet Klarnet - + Flute Flet - + Violin Skrzypce - + Cello Wiolonczela - + Double Bass Kontrabas - + Recorder *nie wiem Flet prosty - + Streamer Streamer - + Listener SÅ‚uchacz - + Guitar+Vocal Gitara+Wokal - + Keyboard+Vocal Keyboard+Wokal - + Bodhran Bodhran - + Bassoon Fagot - + Oboe Obój - + Harp Harfa - + Viola Altówka - + Congas Kongi - + Bongo Bongo - + Vocal Bass Bas - + Vocal Tenor Tenor - + Vocal Alto Alt - + Vocal Soprano Sopran - + Banjo Banjo - + Mandolin Mandolina - + Ukulele Ukulele - + Bass Ukulele Ukulele basowe - + Vocal Baritone Baryton - + Vocal Lead @@ -2888,17 +2906,17 @@ nie jestem pewna QCoreApplication - + , Version - + Internet Jam Session Software - + Released under the GNU General Public License (GPL) diff --git a/src/res/translation/translation_pt_BR.qm b/src/res/translation/translation_pt_BR.qm index 3f8944baff05afb1bceb0d6f75de61cd6868521f..9ea1abecd2187e3490250e4345e09247f8926534 100644 GIT binary patch delta 2540 zcmZWrd0bRw7k_ugTV23dwk1lIvYP%$A~SVWLiQqWOWSwiJ=X+_ANTUx02 z>L<9=Ps0rp%W^3bG{vQi{H180m6)grsI&-zp?i!pH+5FgYM2+P>-2q4FN(-R@q}q&m$1W?*M$#AigpdWC?+o zlFTua4WuCBQHVzugL`u0c?-kI8 zlP&-wcGI?_R#37h?RL!v44}Fx0Oj|f)9WS!7sKiF{%X*a61v=R3e@jB{W_@|V$fwC)w_60>iRquaLzSbyol<@Iv{D$4rSzjoh z>ZGr0<3oJW$>(pLH#5Y^??^sBUw0ZZBLXxkpA8fPjZIFUE*uW3keOYKG=8JASKbHB zt7SVxn=r0~HHd+J4Z0nRV}X6;x}6D2KrVfCRTqB*?!M|kN{V7WdJDC&P`xiTvt)gM zkmJV|=`HC`bq_jU0*=(_+T&LP!-_@iDFaIGIFLdTMEBTiu7qy!x!(Nqj7TxaHwzSe zK^(k|59_r9V)*aXz>XSmgc`z!)-Aqh=R5G~P%+}s1dtbF?RsCo7BN>?3d+nC^G9mH z3zx)KL%jk2QR3WZ`pWcUp^~plgZOUVM_l5K;>tOzK@nG2wiMI%iMY*h9QZU!+_qv4 zXtUL~H5>jv7L#0wcuxRi&m2FXwA4$0vg*v{IeFu|>Y4KxIJ_Ak+=yWatd zy7h1Cop}5>eQ_$!I`IuQ+hFr7D$pO^lLjcq^tF>i`Ov33klaVHg9ckk{6_s>$7gV^ zNAw+@LqKVt=^y%Xc9T5xPrYp*Yq3P{?E%IoNy2Z5KlrIo#wzK{^6`M%cIm`VHXtciI=lQDKi`vnwexlHa+7{N6v^Akq#I9e z^790#>Cs70fSo-yT2g*DIDZ}iG_@Lnmfqq{ra6$F``9q(c%U7)=H)<|#SBw=a-Hsa-jI8`4sbo^K+>|tRRsD_e*tU=Z$fF(@@}_BM!hE2m z-V_t{4(Q$f?4IIF`<`$YhjC{Z~ z@99A5QEJ+`hQB73HKu(dG|=J~S+;7+pCFsA?){mIV6W+Vd<^%&>89&Rqqu0&97yIR zrVia*kb8~d`rr~M_Mp<^GXXTzOYvF6O9`f6W&s+U0Fb@ztZ=p zS1RlH^F!-jS6CknFdkAi`yJ;dyOP;8i{BxoZt7Lw`NPV&PkFRxf8`qj->*^1c>@>x zxMsFNvxN`xR=VuGGw$!I+K;;i( zxspBBqD$WNQ$Na`1B6zqyGPgX$1F_UpPmewa7wNHlXIUt(t%WHRZkwT2aYAHXJ%z` zHjmW$41TsRQ@{7<1$3`de{1E#ecPzEr1ATOW7I#w6M@8;>VwY{L7|nJ^u(2~zC z{e56-qvn;f0wI(?U-LFpfhbt(Q(O$38mRTTyM_qir# zaAP*dqC(8+^5=}iphNNYqgpmRs(&F z+K=u-L491b8 z|F3W@XARE2v(A`{8isLe3OB#MSpedr&85;DK;LYxu<*rL6=43Fn+V4IZvMK2PbzMi z`Qqx`Ts61Nm)x%bj~<#^A0`6Zmzg`9HLkYV=B}_*U|Nj1>*G0~@V$AUO@o)Dx*Se* up)!R%|BBVDjZRotupn>r+=99D#*ZDt)}#mi-`#=N`uy+R;oCl>mHro#toptH delta 2436 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 XiJ&cFQNGvFd@ow7AKmFk)>Z!pJ*V1q diff --git a/src/res/translation/translation_pt_BR.ts b/src/res/translation/translation_pt_BR.ts index 79576140de..e6a2ea91b0 100644 --- a/src/res/translation/translation_pt_BR.ts +++ b/src/res/translation/translation_pt_BR.ts @@ -71,57 +71,57 @@ Ãcones das bandeiras dos países por 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 - + Italian Italiano - + German Alemão - + Polish Polonês - + Swedish Suíço - + About Sobre o @@ -1074,7 +1074,7 @@ - MUTED (You are not sending any audio to the server) + MUTED (Other people won't hear you) @@ -2048,28 +2048,28 @@ CHelpMenu - + &Help &Ajuda - - + + Getting &Started... Como Começa&r... - + Software &Manual... &Manual do Programa... - + What's &This O que é &isto - + &About... &Sobre... @@ -2077,12 +2077,12 @@ CLanguageComboBox - + Restart Required É necessário reiniciar - + Please restart the application for the language change to take effect. Reinicie a aplicação para que a alteração de idioma entre em vigor. @@ -2090,106 +2090,124 @@ 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 conectar-se a este servidor e concordar com este aviso, você concorda 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 remixar, 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ê remixar, transformar, ou criar a partir do material, deve distribuir as suas contribuições sob a mesma licença que do 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. + + CMultiColorLED + + + Red + Vermelho + + + + Yellow + Amarelo + + + + Green + Verde + + CMusProfDlg @@ -2197,85 +2215,85 @@ . 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 apelido - + 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 Seletor do nível de habilidade - - - + + + None Nenhum - - + + Musician Profile Perfil do músico - + Alias/Name Apelido/Nome - + Instrument Instrumento - + Country País - + City Cidade - + Skill Habilidade - + &Close &Fechar - + Beginner Principiante - + Intermediate Intermediário - + Expert Avançado @@ -2288,232 +2306,232 @@ O que definir aqui aparecerá por baixo do seu fader na secção de mistura quando estiver ligado a um servidor - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Escreva o seu nome ou um apelido aqui para que os outros músicos com quem quer tocar saibam quem você é. Além disso, pode também definir uma imagem do instrumento que toca e uma bandeira do país onde vive. A cidade onde 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 Jamulus server. This tag will also be shown at each client which is connected to the same server as you. O que definir aqui aparecerá abaixo do seu fader no mixer quando estiver conectado a um servidor Jamulus. Esta etiqueta também será exibida em cada cliente que estiver conectado ao mesmo 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 - + Vocal Bass Voz Baixo - + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Bandolim - + Ukulele Ukulele - + Bass Ukulele Ukulele Baixo - + Vocal Baritone Voz Barítono - + Vocal Lead Voz Principal @@ -3296,17 +3314,17 @@ QCoreApplication - + , Version , Versão - + Internet Jam Session Software Programa de Jam Sessions pela Internet - + Released under the GNU General Public License (GPL) Lançado sob a Licença Pública Geral GNU (GPL) diff --git a/src/res/translation/translation_pt_PT.qm b/src/res/translation/translation_pt_PT.qm index ad6bc7762daf10253c08a76de57d42f749c88401..b4124412b826658eab4dd66c77fabd635239d746 100644 GIT binary patch delta 2685 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 M?@n|Npp3150`Af|j{pDw delta 2619 zcmXAre_T!XAID$sbMLw5-h0luw;M_M(K2M2u9C=)#FBm}Kg+LOBT{^6${JcK6#0?i zu=z1I4Jj06Y;0xBR_0rKSPWl{`JG>lMETLa@3p^PkIy-e^ZC5r@7MGF{+xmfhQF!} zYg<$BI+rb7)6;=#&!Jyk0$iE`{q}6YZzuF$d<(K%g8uGWkn_cLHD11xAO>qdO%cS< z5x|}W5W{+d5>`PRz65Kq$YmeI2{Ei!wBF=nPFo4__+n67lQxHz#r3{|upBE$ z^+5Rat9(Q zj-auDw8wcCVC+Vx$8lzf59z1%V}Wzg^ixSOD0T~7c=jXctrGfk%qw@3#D}vK*N27vhH64N1B8meAv;DIYPzpctE}?+!)P8nOY^> zewe~eEfpF*VCV{S{?(cW;aMg-_(`GmTJPc6M`t))2U=&+b$H3g#?|ONznR7B{W|~2 zL7>5z+CZ_ZIpcutU}_-f(^_qg7-Wtw(K~iN0wr(Iz7~Ci@O15#=rti)ziV+Au&+_S zJ8CIsny)YV?ILi0UW?L*k@|gm9YCgseqYr_;Bub+z$p&IDN%pWJBw4hu0Qw-Lz0@U zubRC9Xd|{L+2XW#gIA_Of9>*{!2G@XJ3p|iPyO`w{WC!8|Ij~e3632@cXH?qTPdius;_4b}$vGIby%Rih*72#r|q9z|>hB z;5ZDLR^xgWeJD;z@&RcTVxo`@ic8RXNUpw} z#1DIN-{`iB3+k=|OV^5Nzb64zQ^oAM^PtePV(!c@8NP4C6-jGA1FvYQQmFSE3&kDA z6TpFW;*RA^QQw|oQF$3~v{@_ZK$!UyLX&ns>@v< zJHH)KrY&Kk8<%Q4#B0u4tCrvS<=L)qBg4AZg}rB=ta{~CQdMdTamPcWmM zn+?z0{Xy^DG(7j&dLE^YgneR9%iHKvY!Zn@H*M+Sl1jMDYy zo2)-dH(s0qb@7vGJ(%C9a-)89EHJ}vRB9f9(#o_RX4k=8jJ~4|0TFYJe#NCADasg` zP|0)XpfUPT1JBs*ElTkz#&K?p@a`;Q;!mdm=Y|#~rAEs!`*^Dr#5`D^30rZ%v9$1fD`|p>1Pj)y>B~HrSBtP zMnGF9)pwrkpnmA>qv76YacgALV48o^TV$m|&jXz;#$FnB&9s z4AS@J#F6EID3}v#c^CONb7JFjPTh zMj2-dHJ`O{f|F{@=a=!W-DhgwE3TRE%K9Q#Al4!qb&-JHC_8obVHDhDdt0{L|0B6i z)I6ZJS{^ny3$(0J9@F-1prAmW;Wq$ezAGp9V(V}E%E|xSO(CUn@>TvW?6JJy-WVPX zF7m2naa<@5Ij@#GZNwk)hMrA853~GP=mx$HT+hkdc1Hv6calFJ^pr6VX;ErrkavH~ zms%U6yuZH%lx5NusrFIrU!>t(<+(!+# zUku8P)m*Hhne(5hUnV92y}wZRyu()YZ>^S0jR8gfu9iLFY?A6)l#=SzQzt5c?<&-v zXH4T@n$*fTUORl%sEURQf0;#UcIIkD zT3o9h0o!6M?GlzlM>B_OHC7LsizQHA3DPgL1U+I(9i^J;6gu(aO_oIuc5!q`maLR5 zJX`fmp5#%3kYek}OtvFzi8j#I(KR63+7vL6F{rmT?Mng$ Y9%Jw~TbHKTj;7e?OZn*G4m2Ãcones das bandeiras dos países por 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 - + Italian Italiano - + German Alemão - + Polish Polaco - + Swedish Sueco - + About Sobre o @@ -1071,7 +1071,7 @@ - MUTED (You are not sending any audio to the server) + MUTED (Other people won't hear you) @@ -2045,28 +2045,28 @@ CHelpMenu - + &Help &Ajuda - - + + Getting &Started... Como Começa&r... - + Software &Manual... &Manual do Programa... - + What's &This O que é &isto - + &About... &Sobre... @@ -2074,12 +2074,12 @@ CLanguageComboBox - + Restart Required Reinicio necessário - + Please restart the application for the language change to take effect. Por favor reinicie a aplicação para a alteração de linguagem ter efeito. @@ -2087,106 +2087,124 @@ 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. + + CMultiColorLED + + + Red + Vermelho + + + + Yellow + Amarelo + + + + Green + Verde + + CMusProfDlg @@ -2194,85 +2212,85 @@ . 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 @@ -2285,232 +2303,232 @@ O que definir aqui aparecerá por baixo do seu fader na secção de mistura quando estiver ligado a um servidor - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Escreva 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 também definir uma imagem do instrumento que toca e uma bandeira do país onde vive. A cidade onde 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 Jamulus server. This tag will also be shown at each client which is connected to the same server as you. O que definir aqui aparecerá por baixo do seu fader na secção de mistura quando estiver ligado a um servidor Esta etiqueta também será exibida em cada cliente que estiver ligado ao mesmo 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 - + Vocal Bass Voz Baixo - + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Bandolim - + Ukulele Ukulele - + Bass Ukulele Ukulele Baixo - + Vocal Baritone Voz Barítono - + Vocal Lead Voz Principal @@ -3293,17 +3311,17 @@ QCoreApplication - + , Version , Versão - + Internet Jam Session Software Programa de Jam Sessions pela Internet - + Released under the GNU General Public License (GPL) Lançado sob a Licença Pública Geral GNU (GPL) diff --git a/src/res/translation/translation_sv_SE.qm b/src/res/translation/translation_sv_SE.qm index 7e7aa400dfb4b1e58237695e0269eb81964e120d..307738e2c623dd5c963c0341c4d50756238abe65 100644 GIT binary patch delta 4405 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 G=l=jDgfc7u delta 4240 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 Qi7PUz(w+Ed#%f~z2Vv(4?*IS* diff --git a/src/res/translation/translation_sv_SE.ts b/src/res/translation/translation_sv_SE.ts index d46ccba229..c2c6cede7e 100644 --- a/src/res/translation/translation_sv_SE.ts +++ b/src/res/translation/translation_sv_SE.ts @@ -39,57 +39,57 @@ Landsflaggsymboler gjorda av Mark James - + For details on the contributions check out the För detaljer om bidrag, kolla in - + Github Contributors list Github's bidragsgivarlista - + Spanish Spanska - + French Franska - + Portuguese Portugisiska - + Dutch Holländska - + Italian Italienska - + German Tyska - + Polish Polska - + Swedish Svenska - + About Om @@ -896,8 +896,12 @@ + MUTED (Other people won't hear you) + + + MUTED (You are not sending any audio to the server) - TYSTAD (Du skickar inget ljud till servern) + TYSTAD (Du skickar inget ljud till servern) @@ -1710,28 +1714,28 @@ CHelpMenu - + &Help &Hjälp - - + + Getting &Started... Komma &igÃ¥ng ... - + Software &Manual... &Manual... - + What's &This &Var är detta - + &About... &Om... @@ -1739,12 +1743,12 @@ CLanguageComboBox - + Restart Required Omstart krävs - + Please restart the application for the language change to take effect. Starta om applikationen för att sprÃ¥kändringen ska träda i kraft. @@ -1752,106 +1756,124 @@ CLicenceDlg - + I &agree to the above licence terms Jag &accepterar ovanstÃ¥ende licensvillkor - + Accept Acceptera - + Decline Neka - + By connecting to this server and agreeing to this notice, you agree to the following: Genom att ansluta till denna server och godkänna detta meddelande, samtycker du till följande: - + 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 Du accepterar att all data, ljud eller andra verk som överförs till denna server ägs och skapas av dig eller dina licensgivare, och att du gör dessa data, ljud eller andra verk tillgängliga via följande Creative Commons-licens (för mer information om detta licens, se - + You are free to: Du är fri att: - + Share Dela - + copy and redistribute the material in any medium or format kopiera och omfördela materialet i vilket medium eller format som helst - + Adapt Anpssa - + remix, transform, and build upon the material remixa, transformera och bygga vidare pÃ¥ materialet - + The licensor cannot revoke these freedoms as long as you follow the license terms. Licensgivaren kan inte Ã¥terkalla dessa friheter sÃ¥ länge du följer licensvillkoren. - + Under the following terms: Under följande villkor: - + Attribution Erkännande - + 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. Du mÃ¥ste ge lämplig kredit, ange en länk till licensen och ange om ändringar gjordes. Du kan göra det pÃ¥ nÃ¥got rimligt sätt, men inte pÃ¥ nÃ¥got sätt som antyder att licensgivaren godkänner dig eller din användning. - + NonCommercial Ickekommersiell - + You may not use the material for commercial purposes. Du fÃ¥r inte använda materialet för kommersiella ändamÃ¥l. - + ShareAlike Dela lika - + If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. Om du remixar, omvandlar eller bygger pÃ¥ materialet mÃ¥ste du distribuera dina bidrag under samma licens som originalet. - + No additional restrictions Inga ytterligare begränsningar - + You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. Du fÃ¥r inte tillämpa juridiska villkor eller tekniska Ã¥tgärder som lagligen begränsar andra frÃ¥n att göra nÃ¥got som licensen tillÃ¥ter. + + CMultiColorLED + + + Red + Röd + + + + Yellow + Gul + + + + Green + Grön + + CMusProfDlg @@ -1860,315 +1882,315 @@ Inget namn - - + + Musician Profile Musikprofil - + Alias/Name Alias/Namn - + Instrument Instrument - + Country Land - + City Stad - + Skill FärdighetsnivÃ¥ - + &Close &Stäng - - - + + + None Ingen - + Beginner Nybörjare - + Intermediate MellannivÃ¥ - + Expert Expert - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Skriv ditt namn eller ett alias här sÃ¥ att de andra musikerna du vill spela med vet vem du är. Du kan ocksÃ¥ lägga till en bild av instrumentet du spelar och en flagga för det land du befinner dig i. Din stad och din färdighetsnivÃ¥ som spelar ditt instrument kan ocksÃ¥ läggas till. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Det du ställer in här visas pÃ¥ din fader pÃ¥ mixerkortet när du är ansluten till en Jamulus-server. Den här taggen kommer ocksÃ¥ att visas vid varje klient som är ansluten till samma server som du. - + Alias or name edit box Redigeringsruta för alias eller namn - + Instrument picture button Knapp för instrumentbild - + Country flag button Knapp för landsflagga - + City edit box Redigeringsruta för stad - + Skill level combo box Kombinationsruta för färdighetsnivÃ¥ - + Drum Set Trumset - + Djembe Djembe - + Electric Guitar Elgitarr - + Acoustic Guitar Akustisk gitarr - + Bass Guitar Basgitarr - + Keyboard Klaviatur - + Synthesizer Synthesizer - + Grand Piano Flygel - + Accordion Dragspel - + Vocal SÃ¥ng - + Microphone Mikrofon - + Harmonica Munspel - + Trumpet Trumpet - + Trombone Trombon - + French Horn Valthorn - + Tuba Tuba - + Saxophone Saxofon - + Clarinet Klarinett - + Flute Flöjt - + Violin Fiol - + Cello Cello - + Double Bass Kontrabas - + Recorder Inspelningsapparat - + Streamer Streamer - + Listener Lyssnare - + Guitar+Vocal Gitarr+SÃ¥ng - + Keyboard+Vocal Klaviatur+SÃ¥ng - + Bodhran Klaviatur+SÃ¥ng - + Bassoon Fagott - + Oboe Oboe - + Harp Harpa - + Viola Altfiol - + Congas Congas - + Bongo Bongo - + Vocal Bass SÃ¥ng (bas) - + Vocal Tenor SÃ¥ng (tenor) - + Vocal Alto SÃ¥ng (alt) - + Vocal Soprano SÃ¥ng (sopran) - + Banjo Banjo - + Mandolin Mandolin - + Ukulele Ukulele - + Bass Ukulele Ukulele (bas) - + Vocal Baritone SÃ¥ng (baryton) - + Vocal Lead SÃ¥ng (Solist) @@ -2894,17 +2916,17 @@ QCoreApplication - + , Version , Version - + Internet Jam Session Software Internet Jam Session Software - + Released under the GNU General Public License (GPL) Släppt under GNU General Public License (GPL) From 0153582c221541c61e861912490579b12efc0068 Mon Sep 17 00:00:00 2001 From: chigkim Date: Tue, 11 Aug 2020 20:38:01 -0400 Subject: [PATCH 472/936] Accessibility fix for connect/disconnect button to be less verbose. --- src/clientdlg.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/clientdlg.cpp b/src/clientdlg.cpp index 8528df8c1e..1db4c4bc40 100755 --- a/src/clientdlg.cpp +++ b/src/clientdlg.cpp @@ -90,12 +90,7 @@ CClientDlg::CClientDlg ( CClient* pNCliP, "If you are connected, pressing this button will end the session." ) ); butConnect->setAccessibleName ( - tr ( "Connect and disconnect toggle button" ) ); - - butConnect->setAccessibleDescription ( tr ( "Clicking on this " - "button changes the caption of the button from Connect to " - "Disconnect, i.e., it implements a toggle functionality for connecting " - "and disconnecting the application." ) ); + tr ( "Connect and disconnect toggle" ) ); // local audio input fader QString strAudFader = "" + tr ( "Local Audio Input Fader" ) + ": " + From 907734784550cd91476abb5c6128a0b547ef34b1 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Wed, 12 Aug 2020 17:01:37 +0200 Subject: [PATCH 473/936] merge fix: the original text should not be changed, otherwise all translation files would have to be changed --- ChangeLog | 2 +- src/clientdlg.cpp | 2 +- src/res/translation/translation_de_DE.ts | 113 +++++++++++----------- src/res/translation/translation_es_ES.ts | 113 +++++++++++----------- src/res/translation/translation_fr_FR.ts | 113 +++++++++++----------- src/res/translation/translation_it_IT.ts | 113 +++++++++++----------- src/res/translation/translation_nl_NL.ts | 113 +++++++++++----------- src/res/translation/translation_pl_PL.ts | 115 +++++++++++------------ src/res/translation/translation_pt_BR.ts | 113 +++++++++++----------- src/res/translation/translation_pt_PT.ts | 113 +++++++++++----------- src/res/translation/translation_sv_SE.ts | 113 +++++++++++----------- 11 files changed, 505 insertions(+), 518 deletions(-) diff --git a/ChangeLog b/ChangeLog index 60a85d85ad..546f9ba5b4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -26,7 +26,7 @@ - replacing internal history graph functionality by external scripts/tools (#501) -- accessibility improvements, coded by chigkim (#499, #510) +- accessibility improvements, coded by chigkim (#499, #510, #514) - bug fix: added more mutex in the server (should fix #480) diff --git a/src/clientdlg.cpp b/src/clientdlg.cpp index 1db4c4bc40..5142d519e7 100755 --- a/src/clientdlg.cpp +++ b/src/clientdlg.cpp @@ -90,7 +90,7 @@ CClientDlg::CClientDlg ( CClient* pNCliP, "If you are connected, pressing this button will end the session." ) ); butConnect->setAccessibleName ( - tr ( "Connect and disconnect toggle" ) ); + tr ( "Connect and disconnect toggle button" ) ); // local audio input fader QString strAudFader = "" + tr ( "Local Audio Input Fader" ) + ": " + diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index 2950cdfd0c..b6ffa64838 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -625,12 +625,12 @@ Software. - + Local Audio Input Fader Lokaler Eingangspegelregler - + Local audio input fader (left/right) Lokaler Eingangsregler @@ -666,47 +666,46 @@ Um die Software optimal zu nutzen, sollte man sein eigenes Instrument oder Gesang nicht im Lautsprecher oder Kopfhörer hören, wenn die Software nicht verbunden ist. Das kann man erreichen, indem man den Eingangskanal im Wiedergabemixer stumm schaltet. - Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. - Wenn man diesen Knopf drückt, dann wird die Beschriftung des Knopfes von Verbinden zu Trennen geändert, das heißt, dass er eine Umschaltfunktion hat zum Verbinden und Trennen der Applikation. + Wenn man diesen Knopf drückt, dann wird die Beschriftung des Knopfes von Verbinden zu Trennen geändert, das heißt, dass er eine Umschaltfunktion hat zum Verbinden und Trennen der Applikation. - + Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows Mit diesem Einstellregler kann der relative Pegel vom linken und rechten Eingangskanal verändert werden. Für ein Mono-Signal verhält sich der Regler wie ein Pan-Regler. Wenn, z.B., ein Mikrofon am rechten Kanal angeschlossen ist und das Instrument am linken Eingangskanal ist viel lauter als das Mikrofon, dann kann man den Lautstärkeunterschied mit diesem Regler kompensieren indem man den Regler in eine Richtung verschiebt, so dass über dem Regler - + Reverb effect Halleffektregler - + Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. Der Halleffekt kann auf einen selektierten Mono-Audiokanal oder auf beide Stereoaudiokanäle angewendet werden. Die Mono-Kanalselektion und die Hallstärke können eingestellt werden. Wenn z.B. ein Mikrofonsignal auf dem rechten Kanal anliegt und ein Halleffekt soll auf das Mikrofonsignal angewendet werden, dann muss die Hallkanalselektion auf rechts eingestellt werden und der Hallregler muss erhöht werden, bis die gewünschte Stärke des Halleffekts erreicht ist. - + Reverb effect level setting Halleffekt Pegelregler - + Reverb Channel Selection Halleffekt Kanalselektion - + With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. Mit diesen Knöpfen kann ausgewählt werden, auf welches Eingangssignal der Halleffekt angewendet werden soll. Entweder der rechte oder linke Eingangskanal kann ausgewählt werden. - + Left channel selection for reverb Auswahl linker Kanal für Halleffekt - + Right channel selection for reverb Auswahl rechter Kanal für Halleffekt @@ -715,27 +714,27 @@ Die - + Green Grün - + The delay is perfect for a jam session. Die Verzögerung it gering genug für das Jammen. - + Yellow Gelb - + Red Rot - + Delay status LED indicator LED Stautuslampe für die Verzögerung @@ -745,7 +744,7 @@ Wenn man diesen Knopf drückt, dann wird die Beschriftung des Knopfes von Verbinden zu Trennen geändert, das heißt, dass er eine Umschaltfunktion hat zum Verbinden und Trennen der Software. - + Shows the current audio delay status: Die Status-LED für die Verzögerung zeigt eine Bewertung der Gesamtverzögerung des Audiosignals: @@ -754,88 +753,88 @@ Die Verzögerung ist gering genug für das Jammen. - + A session is still possible but it may be harder to play. Man kann noch spielen aber es wird schwieriger Lieder mit hohem Tempo zu spielen. - + The delay is too large for jamming. Die Verzögerung ist zu hoch zum Jammen. - + If this LED indicator turns red, you will not have much fun using the application. Wenn diese LED rot leuchtet, dann wirst du keinen Spaß haben mit der Software. - + The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: Die Status-LED für den Netzwerkpuffer zeigt den aktuellen Status des Netzwerkstroms. Wenn die LED grün ist, dann gibt es keine Pufferprobleme. Wenn die LED rot anzeigt, dann ist der Netzwerkstrom kurz unterbrochen. Dies kann folgende Ursachen haben: - + The sound card's buffer delay (buffer size) is too small (see Settings window). Der Soundkartenpuffer ist zu klein eingestellt. - + The upload or download stream rate is too high for your internet bandwidth. Die Upload-Rate der Internetverbindung ist zu klein für den Netzwerkdatenstrom. - + Buffers status LED indicator LED Statuslampe für den Netzwerkpuffer - - + + C&onnect &Verbinden - + &File &Datei - + &View &Ansicht - + &Connection Setup... &Verbinden... - + My &Profile... Mein &Profil... - + C&hat... C&hat... - + &Settings... &Einstellungen... - + &Analyzer Console... - + E&xit &Beenden - + &Edit B&earbeiten @@ -848,18 +847,18 @@ Keine - + Center Mitte - + R - - + + L @@ -868,12 +867,12 @@ Mit diesem Einstellregler kann der relative Pegel vom linken und rechten Eingangskanal verändert werden. Für ein Mono-Signal verhält sich der Regler wie ein Pan-Regler. Wenn, z.B., ein Mikrofon am rechten Kanal angeschlossen ist und das Instrument am linken Eingangskanal ist viel lauter als das Mikrofon, dann kann man den Lautstärkeunterschied mit diesem Regler kompensieren indem man den Regler in eine Richtung verschiebt, so dass über dem Regler - + , where angezeigt wird, wobei - + is the current attenuation indicator. die aktuelle Dämpfung anzeigt. @@ -898,7 +897,7 @@ Mit diesen Knöpfen kann ausgewählt werden, auf welches Eingangssignal der Halleffekt angewendet werden soll. Entweder der rechte oder linke Eingangskanal kann ausgewählt werden. - + Delay Status LED Status LED für die Verzögerung @@ -907,7 +906,7 @@ Die Status-LED für die Verzögerung zeigt eine Bewertung der Gesamtverzögerung des Audiosignals. Wenn die LED grün leuchtet, dann ist die Verzögerung gering genug für das Jammen. Wenn die LED gelb anzeigt kann man noch spielen aber es wird schwieriger Lieder mit hohem Tempo zu spielen. Wenn die LED rot anzeigt, dann ist die Verzögerung zu hoch zum Jammen. - + Buffers Status LED Status LED für den Netzwerkpuffer @@ -916,7 +915,7 @@ Die Status-LED für den Netzwerkpuffer zeigt den aktuellen Status des Netzwerkstroms. Wenn die LED grün ist, dann gibt es keine Pufferprobleme. Wenn die LED rot anzeigt, dann ist der Netzwerkstrom kurz unterbrochen. Dies kann folgende Ursachen haben: - + The network jitter buffer is not large enough for the current network/audio interface jitter. Der Netzwerkpuffer ist nicht groß genug eingestellt für die aktuellen Netzwerkbedingungen. @@ -929,58 +928,58 @@ Die Upload-Rate der Internetverbindung ist zu klein für den Netzwerkdatenstrom. - + The CPU of the client or server is at 100%. Die CPU des Computers ist voll ausgelastet. - + &Load Mixer Channels Setup... &Laden der Konfiguration der Mixerkanäle... - + &Save Mixer Channels Setup... &Speichern der Konfiguration der Mixerkanäle... - + Sort Channel Users by &Name Sortiere die Kanäle nach dem &Namen - + Sort Channel Users by &Instrument Sortiere die Kanäle nach dem &Instrument - + Sort Channel Users by &Group Sortiere die Kanäle nach der &Gruppe - + Central Server Zentralserver - - + + Select Channel Setup File Auswählen der Datei für die Konfiguration der Mixerkanäle - + user Musiker - + users Musiker - + D&isconnect &Trennen diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index fda04f1260..d43d09365f 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -637,12 +637,12 @@ . - + Local Audio Input Fader Fader Entrada Audio Local - + Local audio input fader (left/right) Fader entrada audio local (izq/dcho) @@ -678,22 +678,21 @@ Para un uso adecuado de la aplicación, no deberías oír tu voz/instrumento por el altavoz o los auriculares cuando el software no está conectado. Esto se puede realizar muteando tu canal de entrada de audio en el mezclador de Reproducción (¡no el de Grabación!). - Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. - Pulsando este botón cambia el texto del mismo de Conectar a Desconectar; esto es, tiene la función de conmutador para conectar y desconectar el software. + Pulsando este botón cambia el texto del mismo de Conectar a Desconectar; esto es, tiene la función de conmutador para conectar y desconectar el software. - + Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows Controla los niveles relativos de los canales locales de audio derecho e izquierdo. Para una señal mono actúa como paneo entre los dos canales. Por ej., si se conecta un miocrófono al canal derecho y un instrumento al izquierdo que suena mucho más alto que el micrófono, mueve el fader en una dirección donde la etiqueta sobre el fader muestra - + Reverb effect Efecto reverb - + Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. Se puede aplicar un efecto de reverb a un canal local de audio mono o a ambos canales en modo estéreo. Se puede modificar la selección de canales en modo mono y el nivel de reverb. Por ej., si la señal del micrófono va por el canal derecho de la tarjeta de sonido y se desea aplicar reverb, cambia el selector de canal a derecho y sube el fader hasta alcanzar el nivel de reverb deseado. @@ -702,27 +701,27 @@ El efecto de reverb requiere un esfuerzo importante del procesador, por lo que solo debería usarse en ordenadores potentes. Si se deja el fader de reverb al mínimo (la configuración por defecto), el efecto estará desactivado y no significará ninguna carga adicional para el procesador. - + Reverb effect level setting Nivel efecto reverb - + Reverb Channel Selection Selección Canal Reverb - + With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. Con estos botones se puede escoger el canal de entrada de audio al que se aplica el efecto de reverb. Se pueden elegir los canales de entrada izquierdo o derecho. - + Left channel selection for reverb Selección canal izq para reverb - + Right channel selection for reverb Selección canal dcho para reverb @@ -731,22 +730,22 @@ El software - + Green Verde - + The delay is perfect for a jam session. El retardo es perfecto para una jam session. - + Yellow Amarillo - + Red Rojo @@ -755,7 +754,7 @@ Si este indicador LED se vuelve rojo, no te divertirás demasiado utilizando la aplicación - + Delay status LED indicator Indicador LED estado retardo @@ -765,7 +764,7 @@ Abre un diálogo donde puedes escoger un servidor al cual conectarte. Si estás conectado, pulsar este botón finalizará la sesión. - + Shows the current audio delay status: Muestra el estado actual del retardo de audio: @@ -774,93 +773,93 @@ El retardo es perfecto para una jam session - + A session is still possible but it may be harder to play. Una sesión aún es posible pero quizá sea más difícil tocar. - + The delay is too large for jamming. El retardo es demasiado grande para tocar. - + If this LED indicator turns red, you will not have much fun using the application. Si este indicador LED se vuelve rojo, no te divertirás demasiado utilizando la aplicación. - + The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: El LED de estado de buffers muestra el estado actual del flujo de audio. Si está rojo, hay interrupciones en el flujo de audio. Esto puede ser causado por alguno de los siguientes problemas: - + The sound card's buffer delay (buffer size) is too small (see Settings window). El retardo de buffer de la tarjeta de audio (tamaño buffer) tiene un valor demasiado bajo (ver ventana de Configuración). - + The upload or download stream rate is too high for your internet bandwidth. La tasa de subida o bajada es demasiado alta para tu ancho de banda de Internet. - + Buffers status LED indicator Indicador LED estado buffers - - + + C&onnect C&onectar - + &File &Archivo - + &View &Ver - + &Connection Setup... &Configuración de Conexión... - + My &Profile... Mi &Perfil... - + C&hat... C&hat... - + &Settings... &Configuración... - + &Analyzer Console... &Analyzer Console... - + E&xit S&alir - + &Edit &Editar - + Sort Channel Users by &Group Ordenar Usuarios de Canal por &Grupo @@ -869,18 +868,18 @@ Ninguno - + Center Centro - + R R - - + + L L @@ -889,12 +888,12 @@ Con el fader de audio, los niveles relativos de los canales locales de audio derecho e izquierdo pueden cambiarse. Para una señal mono actúa como paneo entre los dos canales. Por ej., si se conecta un miocrófono al canal derecho y un instrumento al izquierdo que suena mucho más alto que el micrófono, mueve el fader en una dirección donde la etiqueta sobre el fader muestra - + , where , donde - + is the current attenuation indicator. es el indicador actual de atenuación. @@ -919,7 +918,7 @@ Con estos botones se puede escoger el canal de entrada de audio al que se aplica el efecto de reverberación. Se pueden elegir los canales de entrada izquierdo o derecho. - + Delay Status LED LED Estado Retardo @@ -928,7 +927,7 @@ El indicador LED del estado del retardo muestra el estado actual del retardo del audio. Si está en verde, el retardo es perfecto para una jam session. Si está en amarillo, la sesión aún es posible, pero quizá sea más difícil tocar. Si está en rojo, el retardo es demasiado alto para tocar. - + Buffers Status LED LED Estado Buffers @@ -937,7 +936,7 @@ El indicador LED del estado de buffers muestra el estado actual del flujo de audio. Si está verde, no hay problemas de buffer y no se interrumpe el flujo de audio. Si está rojo, el flujo de audio se interrumpe, a causa de uno de los siguientes problemas: - + The network jitter buffer is not large enough for the current network/audio interface jitter. El jitter buffer de red no es lo suficientemente grande para el jitter actual de la red/interfaz de audio. @@ -950,53 +949,53 @@ La tasa de subida o bajada is demasiado alta para el ancho de banda disponible de internet. - + The CPU of the client or server is at 100%. El procesador del cliente o del servidor está al 100%. - + &Load Mixer Channels Setup... &Cargar Configuración Canales Mezclador... - + &Save Mixer Channels Setup... &Guardar Configuración Canales Mezclador... - + Sort Channel Users by &Name Ordenar Canales por &Nombre - + Sort Channel Users by &Instrument Ordenar Canales por &Instrumento - + Central Server Servidor Central - - + + Select Channel Setup File Seleccionar Archivo Configuración Canales - + user usuario - + users usuarios - + D&isconnect D&esconectar diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index 159f8d7d4d..611d414c4a 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -645,12 +645,12 @@ . - + Local Audio Input Fader Chariot d'entrée audio locale - + Local audio input fader (left/right) Chariot d'entrée audio locale (gauche/droite) @@ -686,47 +686,46 @@ Pour une bonne utilisation de l'application, vous ne devez pas entendre votre chant/instrument par le haut-parleur ou votre casque lorsque le logiciel n'est pas connecté. Ceci peut être réalisé en coupant votre canal audio d'entrée dans le mixeur de lecture (pas dans le mixeur d'enregistrement !). - Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. - En cliquant sur ce bouton, la légende du bouton passe de Connecter à Déconnecter, c'est-à-dire qu'il s'agit d'une fonctionnalité de basculement pour connecter et déconnecter l'application. + En cliquant sur ce bouton, la légende du bouton passe de Connecter à Déconnecter, c'est-à-dire qu'il s'agit d'une fonctionnalité de basculement pour connecter et déconnecter l'application. - + Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows Contrôle les niveaux relatifs des canaux audio locaux gauche et droit. Pour un signal mono, il agit comme un pan entre les deux canaux. Par exemple, si un microphone est connecté au canal d'entrée droit et qu'un instrument est connecté au canal d'entrée gauche qui est beaucoup plus fort que le microphone, déplacez le curseur audio dans une direction où l'étiquette au-dessus du curseur indique - + Reverb effect Effet Réverb - + Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. La réverbération peut être appliquée à un canal audio mono local ou aux deux canaux en mode stéréo. La sélection du canal mono et le niveau de réverbération peuvent être modifiés. Par exemple, si un signal de microphone est envoyé sur le canal audio droit de la carte son et qu'un effet de réverbération doit être appliqué, réglez le sélecteur de canal à droite et déplacez le chariot vers le haut jusqu'à ce que le niveau de réverbération souhaité soit atteint. - + Reverb effect level setting Réglage du niveau de l'effet de réverbération - + Reverb Channel Selection Sélection du canal de réverbération - + With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. Ces boutons radio permettent de choisir le canal d'entrée audio sur lequel l'effet de réverbération est appliqué. Il est possible de sélectionner le canal d'entrée gauche ou droit. - + Left channel selection for reverb Sélection du canal gauche pour la réverbération - + Right channel selection for reverb Sélection du canal droit pour la réverbération @@ -735,27 +734,27 @@ Le logiciel - + Green Vert - + The delay is perfect for a jam session. Le délai est parfait pour une séance de bÅ“ufs. - + Yellow Jaune - + Red Rouge - + Delay status LED indicator Indicateur LED d'état de délai @@ -765,93 +764,93 @@ Ouvre un dialogue dans lequel vous pouvez sélectionner un serveur auquel vous connecter. Si vous êtes connecté, le fait d'appuyer sur ce bouton mettra fin à la session. - + Shows the current audio delay status: Indique l'état actuel du retard audio : - + A session is still possible but it may be harder to play. Une session est toujours possible mais il sera probablement plus difficile de jouer. - + The delay is too large for jamming. Le délai est trop important pour bÅ“uffer. - + If this LED indicator turns red, you will not have much fun using the application. Si ce voyant LED devient rouge, vous n'aurez pas beaucoup de plaisir à utiliser l'application. - + The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: La LED d'état des tampons indique l'état actuel de l'audio/streaming. Si le voyant est rouge, le flux audio est interrompu. Cela est dû à l'un des problèmes suivants : - + The sound card's buffer delay (buffer size) is too small (see Settings window). Le délai du tampon de la carte son (taille du tampon) est trop petit (voir la fenêtre des paramètres). - + The upload or download stream rate is too high for your internet bandwidth. Le taux de flux montant ou descendant est trop élevé pour votre bande passante Internet. - + Buffers status LED indicator Indicateur LED d'état de tampon - - + + C&onnect Se c&onnecter - + &File &Fichier - + &View &Vue - + &Connection Setup... Paramètres de &connexion... - + My &Profile... Mon &profil - + C&hat... Tc&hate... - + &Settings... Paramètre&s... - + &Analyzer Console... Console d'&analyse - + E&xit &Quitter - + &Edit Édit&er @@ -864,18 +863,18 @@ Aucun - + Center Centre - + R D - - + + L G @@ -884,12 +883,12 @@ Avec le chariot audio, les niveaux relatifs des canaux audio locaux gauche et droit peuvent être modifiés. Pour un signal mono, il agit comme un panoramique entre les deux canaux. Si, par exemple, un microphone est connecté au canal d'entrée droit et qu'un instrument est connecté au canal d'entrée gauche qui est beaucoup plus fort que le microphone, déplacez le fader audio dans une direction où l'étiquette au-dessus du chariot indique - + , where , où - + is the current attenuation indicator. est l'indicateur d'atténuation actuel. @@ -914,7 +913,7 @@ Ces boutons radio permettent de choisir le canal d'entrée audio sur lequel l'effet de réverbération est appliqué. Il est possible de sélectionner le canal d'entrée gauche ou droit. - + Delay Status LED Voyant d'état de délai @@ -923,7 +922,7 @@ Le voyant d'état de délai indique l'état actuel du délai audio. Si le voyant est vert, le délai est parfait pour une session de bÅ“uf. Si le voyant est jaune, une session est toujours possible mais elle peut être plus difficile à jouer. Si le voyant est rouge, le délai est trop important pour un bÅ“uf. - + Buffers Status LED Voyant d'état de tampon @@ -932,7 +931,7 @@ Le voyant d'état des tampons indique l'état actuel de l'audio/du streaming. Si le voyant est vert, il n'y a pas de dépassement de mémoire tampon ni de sous-dépassement et le flux audio n'est pas interrompu. Si le voyant est rouge, le flux audio est interrompu en raison de l'un des problèmes suivants : - + The network jitter buffer is not large enough for the current network/audio interface jitter. Le tampon de jitter réseau n'est pas assez grand pour le jitter actuel de l'interface réseau/audio. @@ -945,58 +944,58 @@ Le taux de flux montant ou descendant est trop élevé pour la bande passante Internet actuellement disponible. - + The CPU of the client or server is at 100%. Le processeur du client ou du serveur est à 100%. - + &Load Mixer Channels Setup... &Charger la configuration des canaux du mixeur... - + &Save Mixer Channels Setup... &Sauvegarder la configuration des canaux du mixeur... - + Sort Channel Users by &Name Trier les utilisateurs du canal par &nom - + Sort Channel Users by &Instrument Trier les utilisateurs du canal par &instrument - + Sort Channel Users by &Group Trier les utilisateurs des canaux par &groupe - + Central Server Serveur central - - + + Select Channel Setup File Sélectionnez le fichier de configuration des canaux - + user utilisateur - + users utilisateurs - + D&isconnect Dé&connecter diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index 7fd67b63f6..58ecfd28f0 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -629,7 +629,7 @@ programma. - + Local Audio Input Fader Fader per l'input audio locale @@ -638,23 +638,23 @@ Con questo fader, è possibile modificare i livelli relativi dei canali audio sinistro e destro. Per un segnale mono si comporta come un mix tra i due canali. Se, ad esempio, un microfono è collegato al canale di ingresso destro e uno strumento è collegato al canale di ingresso sinistro che è molto più forte del microfono, spostare il fader audio nella direzione opposta a L (Sinistra) per bilanciare i volumi - - + + L L - + , where , dove - + is the current attenuation indicator. si trova l'attuale indicatore di attenuazione. - + Local audio input fader (left/right) Fader di input locale (Sinistro/Destro) @@ -691,7 +691,7 @@ Canale Destro per il Riverbero - + Delay Status LED LED di Stato del Delay @@ -704,12 +704,12 @@ Se il LED diventa rosso avrete difficoltà nel suonare con - + Delay status LED indicator LED di stato del Delay - + Buffers Status LED LED di Stato del Buffer @@ -718,7 +718,7 @@ Il LED di stato del buffer indica la qualità dello straming. Se verde non sono presenti anomalie nel buffer e lo stream audio non subirà interruzioni. Se rosso lo stream audio subirà interruzioni per causa di uno dei seguenti motivi: - + The network jitter buffer is not large enough for the current network/audio interface jitter. Il Jitter Buffer non è grande abbastanza per la tipologia di rete/interfaccia audio usate. @@ -746,67 +746,66 @@ Per un corretto utilizzo dell'applicazione, non è possibile ascoltare il canto o lo strumento attraverso l'altoparlante o le cuffie quando il programma non è collegato. Basta disattivare l'audio del canale di ingresso nel mixer di riproduzione (non nel mixer di registrazione!). - Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. - Cliccando su questo pulsante il stato passa da Connesso a Disconnesso, implementa infatti la funzionalità di connessione-disconnessione del programma. + Cliccando su questo pulsante il stato passa da Connesso a Disconnesso, implementa infatti la funzionalità di connessione-disconnessione del programma. - + Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows Controlla i livelli relativi dei canali audio locali sinistro e destro. Per un segnale mono funge da pan tra i due canali. Ad esempio, se un microfono è collegato al canale di ingresso destro e uno strumento è collegato al canale di ingresso sinistro che è molto più forte del microfono, spostare il cursore audio in una direzione in cui viene mostrata l'etichetta sopra il fader - + Reverb effect Effetto Reverbero - + Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. Il Reverbero può essere applicato sia in modalità mono che stereo. La selezione del canale mono e il livello di riverbero possono essere modificati. Ad esempio, se un segnale del microfono viene immesso nel canale audio destro della scheda audio e deve essere applicato un effetto di riverbero, impostare il selettore di canale su destra e spostare il fader verso l'alto fino a raggiungere il livello di riverbero desiderato. - + Reverb effect level setting Livello dell'effetto di Reverbero - + Reverb Channel Selection Selezione Canale Reverbero - + With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. Con questi pulsanti di opzione è possibile scegliere il canale di ingresso audio su cui viene applicato l'effetto riverbero. È possibile selezionare il canale di input sinistro o destro. - + Left channel selection for reverb Canale Sinistro per il Reverbero - + Right channel selection for reverb Canale Destro per il Reverbero - + Green Verde - + The delay is perfect for a jam session. Il delay è perfetto per una live session. - + Yellow Giallo - + Red Rosso @@ -816,123 +815,123 @@ Apre una finestra di dialogo in cui è possibile selezionare un server a cui connettersi. Se si è connessi, premere questo pulsante per terminare la sessione. - + Shows the current audio delay status: Visualizza lo stato corrente del delay: - + A session is still possible but it may be harder to play. Una sessione è ancora possibile ma potrebbe essere più difficile suonare. - + The delay is too large for jamming. Il delay è eccessivo per una live session. - + If this LED indicator turns red, you will not have much fun using the application. Se il LED diventa rosso non si avrà una buona esperinza di utilizzo dell'applicazione. - + The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: Il LED di stato del buffer mostra lo stato audio dello streaming corrente. Se la luce è rossa, il flusso audio viene interrotto. Ciò è causato da uno dei seguenti problemi: - + The sound card's buffer delay (buffer size) is too small (see Settings window). Il ritardo della scheda audio(ovvero il buffer size) è troppo basso (vedere i Settaggi della Scheda). - + The upload or download stream rate is too high for your internet bandwidth. La banda passante per lo stream (upload e download) è troppo rispetto alla qualità della connessione internet. - + The CPU of the client or server is at 100%. La CPU del client è satura al 100%. - + Buffers status LED indicator Led di stato del Buffer - - + + C&onnect C&onnetti - + &File &File - + &View &Vista - + &Connection Setup... Setup &Connessione... - + My &Profile... &Profilo Personale... - + C&hat... C&hat... - + &Settings... &Settaggi... - + &Analyzer Console... &Analizzatore... - + E&xit &Uscita - + &Load Mixer Channels Setup... &Carica Setup Mixer... - + &Save Mixer Channels Setup... &Salva Setup Mixer... - + &Edit &Modifica - + Sort Channel Users by &Name Ordina canali per &Nome - + Sort Channel Users by &Instrument Ordina canali per &Strumento - + Sort Channel Users by &Group Ordina Canali per Nome &Utente @@ -945,38 +944,38 @@ Nullo - + Center Centro - + R R - + Central Server Server Centrale - - + + Select Channel Setup File Selezione File di Setup dei Canali - + user utente - + users utenti - + D&isconnect D&isconnetti diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index 08b88ec26e..c6e14d7b83 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -621,7 +621,7 @@ software. - + Local Audio Input Fader Lokale audio-ingangsfader @@ -630,23 +630,23 @@ Met de audiofader kunnen de relatieve niveaus van de linker en rechter lokale audiokanalen worden gewijzigd. Voor een monosignaal werkt het als een panning tussen de twee kanalen. Als bijvoorbeeld een microfoon is verbonden op het rechter ingangskanaal en een veel luider instrument is verbonden op het linker ingangskanaal, beweeg dan de audiofader in de richting: - - + + L L - + , where , waar - + is the current attenuation indicator. is de huidige dempingsindicator. - + Local audio input fader (left/right) Lokale audio-ingangsfader (links/rechts) @@ -683,7 +683,7 @@ Rechter kanaalselectie voor galm - + Delay Status LED Vertragingsstatus LED @@ -696,12 +696,12 @@ Als deze LED-indicator rood wordt, zult u niet veel plezier beleven aan het gebruik van de - + Delay status LED indicator Vertragingsstatus LED-indicator - + Buffers Status LED Buffers Status LED @@ -710,7 +710,7 @@ De indicator voor de status van de buffers geeft de huidige status van de audio/streaming aan. Als het lampje groen is, zijn er geen bufferoverschrijdingen/onderschrijdingen en wordt de audiostream niet onderbroken. Als het lampje rood is, wordt de audiostream onderbroken door een van de volgende problemen: - + The network jitter buffer is not large enough for the current network/audio interface jitter. De buffer voor de netwerkjitter is niet groot genoeg voor de huidige netwerk-/audio-interfacejitter. @@ -738,67 +738,66 @@ Voor goed gebruik moet u de zang of het instrument niet via de luidspreker of koptelefoon moeten horen als de software niet verbonden is. Dit kan worden bereikt door het dempen van je audiokanaal in de Playback mixer (niet de opnamemixer!). - Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. - Door op deze knop te klikken verandert het onderschrift van de knop van Verbinden naar Verbreken, d.w.z. dat het een toggle-functie heeft voor verbinden/verbreken. + Door op deze knop te klikken verandert het onderschrift van de knop van Verbinden naar Verbreken, d.w.z. dat het een toggle-functie heeft voor verbinden/verbreken. - + Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows Met de audiofader kunnen de relatieve niveaus van de linker en rechter lokale audiokanalen worden gewijzigd. Voor een monosignaal werkt het als een panning tussen de twee kanalen. Als bijvoorbeeld een microfoon is verbonden op het rechter ingangskanaal en een veel luider instrument is verbonden op het linker ingangskanaal, beweeg dan de audiofader in de richting van het label - + Reverb effect Galm-effect - + Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. Een galmeffect kan worden toegepast op één lokaal mono-audiokanaal of op beide kanalen in de stereomodus. De monokanaalselectie en het galmniveau kunnen worden aangepast. Als bijvoorbeeld het microfoonsignaal in het juiste audiokanaal van de geluidskaart binnenkomt en er een galmeffect wordt toegepast, zet u de kanaalkeuzeschakelaar naar rechts en beweegt u de fader omhoog tot het gewenste galmniveau is bereikt. - + Reverb effect level setting Instelling van het niveau van het galmeffect - + Reverb Channel Selection Selectie van het galmkanaal - + With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. Met deze radioknoppen kan het audio-invoerkanaal worden gekozen waarop het galmeffect wordt toegepast. Het linker of rechter ingangskanaal kan worden gekozen. - + Left channel selection for reverb Linker kanaalselectie voor galm - + Right channel selection for reverb Rechter kanaalselectie voor galm - + Green Groen - + The delay is perfect for a jam session. De vertraging is prima voor een jamsessie. - + Yellow Geel - + Red Rood @@ -808,123 +807,123 @@ Laat een dialoog zien waarin je een server kan selecteren om mee te verbinden. Indien reeds verbonden verbreekt deze knop de verbinding. - + Shows the current audio delay status: Toont de huidige geluidsvertragingsstatus: - + A session is still possible but it may be harder to play. Een sessie is nog mogelijk maar zal moeilijk gaan. - + The delay is too large for jamming. De vertraging is te groot voor een jamsessie. - + If this LED indicator turns red, you will not have much fun using the application. Als deze LED-indicator rood wordt, zult u niet veel plezier eraan beleven. - + The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: De bufferstatus-LED toont de huidige audio/streaming status. Indien rood dan wordt de audio-stream onderbroken. Dit kan veroorzaakt worden door de volgende problemen: - + The sound card's buffer delay (buffer size) is too small (see Settings window). De buffer vertraging van de geluidskaart (buffergrootte) is op een te kleine waarde ingesteld. - + The upload or download stream rate is too high for your internet bandwidth. De upload- of downloadstroomsnelheid is te hoog voor de huidige beschikbare internetbandbreedte. - + The CPU of the client or server is at 100%. De CPU van de client of server staat op 100%. - + Buffers status LED indicator Status van de buffers LED-indicator - - + + C&onnect C&onnect - + &File &Bestand - + &View &Bekijken - + &Connection Setup... &Verbindingsinstellingen... - + My &Profile... Mijn &Profiel... - + C&hat... C&hat... - + &Settings... &Settings... - + &Analyzer Console... &Analyzer Console... - + E&xit E&xit - + &Load Mixer Channels Setup... &Laad Mengkanaalinstellingen... - + &Save Mixer Channels Setup... Mixerkanaalinstellingen &Opslaan... - + &Edit &Bewerken - + Sort Channel Users by &Name Sorteer muzikanten op &Naam - + Sort Channel Users by &Instrument Sorteer muzikanten op &Instrument - + Sort Channel Users by &Group Sorteer muzikanten op &Groep @@ -933,38 +932,38 @@ Geen - + Center Centrum - + R R - + Central Server Centrale Server - - + + Select Channel Setup File Selecteer bestand met Kanaalinstellingen - + user gebruiker - + users gebruikers - + D&isconnect &Afmelden diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index d45d13e19e..43101b5b7e 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -530,48 +530,48 @@ - + Local Audio Input Fader - - + + L L - + , where - + is the current attenuation indicator. - + Local audio input fader (left/right) - + Delay Status LED - + Delay status LED indicator - + Buffers Status LED - + The network jitter buffer is not large enough for the current network/audio interface jitter. @@ -596,188 +596,183 @@ - - Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. - - - - + Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows - + Reverb effect - + Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. - + Reverb effect level setting - + Reverb Channel Selection - + With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. - + Left channel selection for reverb - + Right channel selection for reverb - + Shows the current audio delay status: - + Green - + The delay is perfect for a jam session. - + Yellow - + A session is still possible but it may be harder to play. - + Red - + The delay is too large for jamming. - + If this LED indicator turns red, you will not have much fun using the application. - + The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: - + The sound card's buffer delay (buffer size) is too small (see Settings window). - + The upload or download stream rate is too high for your internet bandwidth. - + The CPU of the client or server is at 100%. - + Buffers status LED indicator - - + + C&onnect &Połącz - + &File - + &View &Widok - + &Connection Setup... &Konfiguracja połączenia... - + My &Profile... Mój &profil... - + C&hat... &Czat... - + &Settings... &Ustawienia... - + &Analyzer Console... &Konsola analizatora... - + E&xit &Wyjdź - + &Load Mixer Channels Setup... - + &Save Mixer Channels Setup... - + &Edit &Edytuj - + Sort Channel Users by &Name - + Sort Channel Users by &Instrument - + Sort Channel Users by &Group @@ -786,38 +781,38 @@ Å»aden - + Center Åšrodek - + R P - + Central Server - - + + Select Channel Setup File - + user - + users - + D&isconnect &Rozłącz diff --git a/src/res/translation/translation_pt_BR.ts b/src/res/translation/translation_pt_BR.ts index e6a2ea91b0..3d97b12592 100644 --- a/src/res/translation/translation_pt_BR.ts +++ b/src/res/translation/translation_pt_BR.ts @@ -647,12 +647,12 @@ . - + Local Audio Input Fader Fader da Entrada Local de Ãudio - + Local audio input fader (left/right) Fader de entrada local de áudio (esquerdo/direito) @@ -688,72 +688,71 @@ Para um uso adequado da aplicação, não deve ouvir a sua voz/instrumento diretamente nos alto-falantes ou nos fones enquanto a aplicação não estiver conectada a um servidor. Isso pode ser feito silenciando (mute) o canal da entrada de áudio no dispositivo de reprodução (não no dispositivo de captura!). - Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. - Clicar nesse botão altera a legenda do botão de Conectar para Desconectar, ou seja, implementa uma funcionalidade de alternação para conectar e desconectar a aplicação. + Clicar nesse botão altera a legenda do botão de Conectar para Desconectar, ou seja, implementa uma funcionalidade de alternação para conectar e desconectar a aplicação. - + Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows Controla os níveis relativos dos canais locais esquerdo e direito. Para um sinal mono, atua como uma panorâmica entre os dois canais. Por exemplo, se um microfone estiver ligado no canal direito e um instrumento estiver ligado no canal esquerdo, mais alto que o microfone, mova o fader de áudio numa direção em que a etiqueta acima do fader mostre - + Reverb effect Efeito de Reverberação - + Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. O efeito de reverberação pode ser aplicado a um canal local de áudio mono ou a ambos os canais no modo estéreo. A seleção do canal mono e o nível de reverberação podem ser modificados. Por exemplo, se o sinal do microfone for alimentado no canal de áudio direito da placa de som, e for necessário aplicar um efeito de reverberação, ajuste o seletor de canal para a direita e mova o fader para cima até que o nível de reverberação desejado seja atingido. - + Reverb effect level setting Ajuste do nível do efeito de reverberação - + Reverb Channel Selection Seleção do Canal de Reverberação - + With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. Com estes botões de seleção, pode ser escolhido o canal de entrada de áudio no qual o efeito de reverberação é aplicado. Pode ser selecionado o canal de entrada esquerdo ou direito. - + Left channel selection for reverb Seleção do canal esquerdo para reverberação - + Right channel selection for reverb Seleção do canal direito para reverberação - + Green Verde - + The delay is perfect for a jam session. A latência é perfeita para uma jam session. - + Yellow Amarelo - + Red Vermelho - + Delay status LED indicator Indicador LED do estado de latência @@ -763,93 +762,93 @@ Abre uma caixa de diálogo onde pode selecionar a que servidor conectar-se. Se estiver conectado, pressionar este botão vai terminar a sessão. - + Shows the current audio delay status: Mostra o estado atual da latência de áudio: - + A session is still possible but it may be harder to play. Ainda é possível fazer uma sessão, mas poderá ser mais difícil tocar no tempo. - + The delay is too large for jamming. A latência é demasiada para tocar no tempo. - + If this LED indicator turns red, you will not have much fun using the application. Se este indicador LED ficar vermelho, você não vai divertir-se muito ao usar a aplicação. - + The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: O indicador LED do estado dos buffers mostra o estado atual do áudio/transmissão. Se a luz estiver vermelha, o fluxo de áudio é interrompido. Isto é causado por um dos seguintes problemas: - + The sound card's buffer delay (buffer size) is too small (see Settings window). O buffer (tamanho do buffer) da placa de som é demasiado pequeno (verificar janela das Definições). - + The upload or download stream rate is too high for your internet bandwidth. A taxa de upload ou download é muito elevada para a sua largura de banda da Internet. - + Buffers status LED indicator Indicador LED do estado dos buffers - - + + C&onnect C&onectar - + &File &Arquivo - + &View &Ver - + &Connection Setup... &Conectar a Servidor... - + My &Profile... Meu &Perfil... - + C&hat... &Mensagens... - + &Settings... &Definições... - + &Analyzer Console... Console de &Análise... - + E&xit &Sair - + &Edit &Editar @@ -862,18 +861,18 @@ Nenhum - + Center Centro - + R R - - + + L L @@ -882,12 +881,12 @@ Com o fader de áudio, os níveis relativos dos canais locais esquerdo e direito podem ser alterados. Para um sinal mono, atua como uma panorâmica entre os dois canais. Se, por exemplo, um microfone estiver ligado no canal direito e um instrumento estiver ligado no canal esquerdo, mais alto que o microfone, mova o fader de áudio numa direção em que a etiqueta acima do fader mostre - + , where , onde - + is the current attenuation indicator. é o indicador de atenuação atual. @@ -912,7 +911,7 @@ Com estes botões de seleção, pode ser escolhido o canal de entrada de áudio no qual o efeito de reverberação é aplicado. Pode ser selecionado o canal de entrada esquerdo ou direito. - + Delay Status LED LED do Estado da Latência @@ -921,7 +920,7 @@ O indicador LED do estado da latência mostra o estado atual do atraso do áudio. Se a luz estiver verde, o atraso é perfeito para uma jam session. Se a luz estiver amarela, uma sessão ainda é possível, mas pode ser mais difícil tocar sincronizado. Se a luz estiver vermelha, o atraso é demasiado grande para uma sessão de jamming. - + Buffers Status LED LED do Estado dos Buffers @@ -930,7 +929,7 @@ O indicador LED do estado dos buffers mostra o estado atual do áudio/transmissão. Se a luz estiver verde, não haverá buffer em excesso/déficit e o fluxo de áudio não será interrompido. Se a luz estiver vermelha, o fluxo de áudio é interrompido devido a um dos seguintes problemas: - + The network jitter buffer is not large enough for the current network/audio interface jitter. O jitter buffer da rede não é grande o suficiente para o jitter atual da interface de rede/áudio. @@ -943,58 +942,58 @@ A taxa de upload ou download é muito alta para a largura de banda disponível na ligação à Internet. - + The CPU of the client or server is at 100%. O CPU do cliente ou servidor está em 100%. - + &Load Mixer Channels Setup... &Carregar Configuração de Canais do Mixer... - + &Save Mixer Channels Setup... &Salvar Configuração de Canais do Mixer... - + Sort Channel Users by &Name Ordenar os Canais por &Nome - + Sort Channel Users by &Instrument Ordenar os Canais por &Instrumento - + Sort Channel Users by &Group Ordenar os Canais por &Grupo - + Central Server Servidor Central - - + + Select Channel Setup File Selecione Arquivo de Configuraçao de Canal - + user usuário - + users usuários - + D&isconnect Opted by Desligar instead of Desconectar to keep same keyboard shortcut Desl&igar diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index 82e2dcc85f..1212f98e86 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -645,12 +645,12 @@ . - + Local Audio Input Fader Fader da Entrada Local de Ãudio - + Local audio input fader (left/right) Fader de entrada local de áudio (esquerdo/direito) @@ -686,72 +686,71 @@ Para um uso adequado da aplicação, não deve ouvir a sua voz/instrumento diretamente nas colunas ou nos headphones enquanto a aplicação não estiver ligada a um servidor. Isso pode ser feito silenciando (mute) o canal da entrada de áudio no dispositivo de reprodução (não no dispositivo de captura!). - Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. - Clicar nesse botão altera a legenda do botão de Ligar para Desligar, ou seja, implementa uma funcionalidade de alternação para conectar e desconectar a aplicação. + Clicar nesse botão altera a legenda do botão de Ligar para Desligar, ou seja, implementa uma funcionalidade de alternação para conectar e desconectar a aplicação. - + Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows Controla os níveis relativos dos canais esquerdo e direito. Para um sinal mono, actua como uma panorâmica entre os dois canais. Por exemplo, se um microfone estiver ligado no canal direito e um instrumento estiver ligado no canal esquerdo, mais alto que o microfone, mova o fader de áudio numa direção em que a etiqueta acima do fader mostre - + Reverb effect Efeito de Reverberação - + Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. O efeito de reverberação pode ser aplicado a um canal local de áudio mono ou a ambos os canais no modo estéreo. A seleção do canal mono e o nível de reverberação podem ser modificados. Por exemplo, se o sinal do microfone for alimentado no canal de áudio direito da placa de som, e for necessário aplicar um efeito de reverberação, ajuste o seletor de canal para a direita e mova o fader para cima até que o nível de reverberação desejado seja atingido. - + Reverb effect level setting Ajuste do nível do efeito de reverberação - + Reverb Channel Selection Seleção do Canal de Reverberação - + With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. Com estes botões de seleção, pode ser escolhido o canal de entrada de áudio no qual o efeito de reverberação é aplicado. Pode ser selecionado o canal de entrada esquerdo ou direito. - + Left channel selection for reverb Seleção do canal esquerdo para reverberação - + Right channel selection for reverb Seleção do canal direito para reverberação - + Green Verde - + The delay is perfect for a jam session. A latência é perfeita para uma jam session. - + Yellow Amarelo - + Red Vermelho - + Delay status LED indicator Indicador LED do estado de latência @@ -761,93 +760,93 @@ Abre uma caixa de diálogo onde pode seleccionar a que servidor se ligar. Se estiver ligado, pressionar este botão vai terminar a sessão. - + Shows the current audio delay status: Mostra o estado actual da latência de áudio: - + A session is still possible but it may be harder to play. Ainda é possível fazer uma sessão, mas poderá ser mais difícil tocar a tempo. - + The delay is too large for jamming. A latência é demasiada para tocar a tempo. - + If this LED indicator turns red, you will not have much fun using the application. Se este indicador LED ficar vermelho, não se vai divertir muito ao usar a aplicação. - + The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: O indicador LED do estado dos buffers mostra o estado atual do áudio/transmissão. Se a luz estiver vermelha, o fluxo de áudio é interrompido. Isto é causado por um dos seguintes problemas: - + The sound card's buffer delay (buffer size) is too small (see Settings window). O buffer (tamanho do buffer) da placa de som é demasiado pequeno (verificar janela das Definições). - + The upload or download stream rate is too high for your internet bandwidth. A taxa de upload ou download é muito elevada para a sua largura de banda da Internet. - + Buffers status LED indicator Indicador LED do estado dos buffers - - + + C&onnect &Ligar - + &File &Ficheiro - + &View &Ver - + &Connection Setup... &Ligar a Servidor... - + My &Profile... Meu &Perfil... - + C&hat... &Mensagens... - + &Settings... &Definições... - + &Analyzer Console... Consola de &Análise... - + E&xit &Sair - + &Edit &Editar @@ -860,18 +859,18 @@ Nenhum - + Center Centro - + R R - - + + L L @@ -880,12 +879,12 @@ Com o fader de áudio, os níveis relativos dos canais locais esquerdo e direito podem ser alterados. Para um sinal mono, atua como uma panorâmica entre os dois canais. Se, por exemplo, um microfone estiver ligado no canal direito e um instrumento estiver ligado no canal esquerdo, mais alto que o microfone, mova o fader de áudio numa direção em que a etiqueta acima do fader mostre - + , where , onde - + is the current attenuation indicator. é o indicador de atenuação atual. @@ -910,7 +909,7 @@ Com estes botões de seleção, pode ser escolhido o canal de entrada de áudio no qual o efeito de reverberação é aplicado. Pode ser selecionado o canal de entrada esquerdo ou direito. - + Delay Status LED LED do Estado da Latência @@ -919,7 +918,7 @@ O indicador LED do estado da latência mostra o estado atual do atraso do áudio. Se a luz estiver verde, o atraso é perfeito para uma jam session. Se a luz estiver amarela, uma sessão ainda é possível, mas pode ser mais difícil tocar sincronizado. Se a luz estiver vermelha, o atraso é demasiado grande para uma sessão de jamming. - + Buffers Status LED LED do Estado dos Buffers @@ -928,7 +927,7 @@ O indicador LED do estado dos buffers mostra o estado atual do áudio/transmissão. Se a luz estiver verde, não haverá buffer em excesso/déficit e o fluxo de áudio não será interrompido. Se a luz estiver vermelha, o fluxo de áudio é interrompido devido a um dos seguintes problemas: - + The network jitter buffer is not large enough for the current network/audio interface jitter. O jitter buffer da rede não é grande o suficiente para o jitter atual da interface de rede/áudio. @@ -941,58 +940,58 @@ A taxa de upload ou download é muito alta para a largura de banda disponível na ligação à Internet. - + The CPU of the client or server is at 100%. O CPU do cliente ou servidor está a 100%. - + &Load Mixer Channels Setup... A&brir configuração da mistura... - + &Save Mixer Channels Setup... Salvar &configuração da mistura... - + Sort Channel Users by &Name Ordenar Utilizadores por &Nome - + Sort Channel Users by &Instrument Ordenar canais por &Instrumento - + Sort Channel Users by &Group Ordenar canais por &Grupo - + Central Server Servidor Central - - + + Select Channel Setup File Selecione o ficheiro de configuração da mistura - + user utilizador - + users utilizadores - + D&isconnect Desl&igar diff --git a/src/res/translation/translation_sv_SE.ts b/src/res/translation/translation_sv_SE.ts index c2c6cede7e..c6448653eb 100644 --- a/src/res/translation/translation_sv_SE.ts +++ b/src/res/translation/translation_sv_SE.ts @@ -550,234 +550,233 @@ Knapp för att anslut och koppla bort - Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. - Om du klickar pÃ¥ den här knappen ändras bildtexten pÃ¥ knappen frÃ¥n Ansluten till Nedkopplad, dvs. den implementerar en växelfunktion för att ansluta och koppla bort applikationen. + Om du klickar pÃ¥ den här knappen ändras bildtexten pÃ¥ knappen frÃ¥n Ansluten till Nedkopplad, dvs. den implementerar en växelfunktion för att ansluta och koppla bort applikationen. - + Local Audio Input Fader Lokal ljudingÃ¥ngsfader - + Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows Kontrollerar de relativa nivÃ¥erna för vänster och höger lokala ljudkanal. För en monosignal fungerar den som en panorering mellan de tvÃ¥ kanalerna. Om exempelvis en mikrofon är ansluten till den högra ingÃ¥ngskanalen och ett instrument är anslutet till den vänstra ingÃ¥ngskanalen som är mycket högre än mikrofonen, flytta ljudfadern i en riktning som etiketten ovanför fadern visar - - + + L V - + , where , där - + is the current attenuation indicator. är den aktuella dämpningsindikatorn. - + Local audio input fader (left/right) Lokal ljudingÃ¥ngsfader (vänster/höger) - + Reverb effect Reverb effekt - + Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. Reverb kan tillämpas pÃ¥ en lokal monoljudkanal eller pÃ¥ bÃ¥da kanalerna i stereoläge. Valet av monokanal och reverbnivÃ¥n kan ändras. Om till exempel en mikrofonsignal matas in till höger ljudkanal pÃ¥ ljudkortet och en reverb-effekt mÃ¥ste appliceras, ställ in kanalväljaren till höger och flytta fadern uppÃ¥t tills önskad reverbnivÃ¥ har uppnÃ¥tts. - + Reverb effect level setting ReverbeffektnivÃ¥inställning - + Reverb Channel Selection Reverbkanalval - + With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. Med dessa tryckknappar kan du välja ljudingÃ¥ngskanalen pÃ¥ vilken reverbeffekten används. Antingen kan vänster eller höger ingÃ¥ngskanal väljas. - + Left channel selection for reverb Vänster kanal för reverb - + Right channel selection for reverb Höger kanal för reverb - + Delay Status LED Fördröjningsstatus-LED - + Shows the current audio delay status: Visar aktuell ljudfördröjningsstatus: - + Green Grön - + The delay is perfect for a jam session. Fördröjningen är perfekt för en jam-session. - + Yellow Gul - + A session is still possible but it may be harder to play. En session är fortfarande möjlig men det kan vara svÃ¥rare att spela. - + Red Röd - + The delay is too large for jamming. Fördröjningen är troligtvis för stor för en jam-session. - + If this LED indicator turns red, you will not have much fun using the application. Om den här LED-indikatorn blir röd kommer du inte ha sÃ¥ kul med applikationen. - + Delay status LED indicator LED-indikator för fördröjningsstatus - + Buffers Status LED Buffertstatus-LED - + The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: Statuslampan för buffertar visar aktuell ljud-/strömningsstatus. Om lampan är röd avbryts ljudströmmen. Detta orsakas av ett av följande problem: - + The network jitter buffer is not large enough for the current network/audio interface jitter. Nätverksjitterbufferten är inte tillräckligt stor för det nuvarande nätverks-/ljudgränssnittsjitteret. - + The sound card's buffer delay (buffer size) is too small (see Settings window). Ljudkortets buffertfördröjning (buffertstorlek) är för liten (se Inställningsfönstret). - + The upload or download stream rate is too high for your internet bandwidth. Uppladdnings- eller nedladdningsströmmen är för hög för din internethastighet. - + The CPU of the client or server is at 100%. Klientens eller serverns CPU är 100%. - + Buffers status LED indicator LED-indikator för buffertstatus - - + + C&onnect &Anslut - + &File &Fil - + &View &Vy - + &Connection Setup... Anslutnings&inställningar... - + My &Profile... Min &profil... - + C&hat... &Chatt... - + &Settings... &Inställningar... - + &Analyzer Console... &Analyskonsol... - + E&xit &Avsluta - + &Load Mixer Channels Setup... &Ladda in mixerkanalinställningarna... - + &Save Mixer Channels Setup... &Spara mixerkanalinställningarna... - + &Edit &Redigera - + Sort Channel Users by &Name Sortera kanalanvändare efter &Namn - + Sort Channel Users by &Instrument Sortera kanalanvändare efter &Instrument - + Sort Channel Users by &Group Sortera kanalanvändare efter &Grupp @@ -786,38 +785,38 @@ Ingen - + Center Mitten - + R H - + Central Server Central server - - + + Select Channel Setup File Välj kanalinställningsfil - + user användare - + users användare - + D&isconnect Koppla &ner From 5005483c0a12027dfb724a828e2474f1a1042ec0 Mon Sep 17 00:00:00 2001 From: ignotus666 Date: Wed, 12 Aug 2020 17:10:47 +0200 Subject: [PATCH 474/936] Updated Spanish translation --- src/res/translation/translation_es_ES.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index d43d09365f..7ef46912a6 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -1075,7 +1075,7 @@ MUTED (Other people won't hear you) - + MUTEADO (Otras personas no te escucharán) MUTED (You are not sending any audio to the server) @@ -2215,17 +2215,17 @@ Red - Rojo + Rojo Yellow - Amarillo + Amarillo Green - Verde + Verde From 7038d87aa76df07a5652c128c1b15d7b7fd95208 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Wed, 12 Aug 2020 17:13:18 +0200 Subject: [PATCH 475/936] prevent [enter] from disconnecting you from a server (#515) --- src/clientdlg.cpp | 11 ----------- src/clientdlgbase.ui | 5 ++++- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/src/clientdlg.cpp b/src/clientdlg.cpp index 5142d519e7..f6db5002d7 100755 --- a/src/clientdlg.cpp +++ b/src/clientdlg.cpp @@ -235,17 +235,6 @@ CClientDlg::CClientDlg ( CClient* pNCliP, } - // Mac Workaround: - // If the connect button is the default button, on Mac it is highlighted - // by fading in and out a blue background color. This operation consumes so - // much CPU that we get audio interruptions. - // Better solution: increase thread priority of worker thread (since the - // user can always highlight the button manually, too) -> TODO -#if defined ( __APPLE__ ) || defined ( __MACOSX ) - butConnect->setDefault ( false ); -#endif - - // File menu -------------------------------------------------------------- QMenu* pFileMenu = new QMenu ( tr ( "&File" ), this ); diff --git a/src/clientdlgbase.ui b/src/clientdlgbase.ui index 48b7fdb029..a5da122601 100755 --- a/src/clientdlgbase.ui +++ b/src/clientdlgbase.ui @@ -343,8 +343,11 @@ C&onnect + + false + - true + false From db94ca6d33b813ec0abe206f3b64d355f5974d91 Mon Sep 17 00:00:00 2001 From: Olivier Humbert Date: Wed, 12 Aug 2020 23:55:22 +0200 Subject: [PATCH 476/936] Update French translation --- src/res/translation/translation_fr_FR.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index 611d414c4a..d55e8050b8 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -1075,7 +1075,7 @@ MUTED (Other people won't hear you) - + SILENCÉ (les autres personnes ne vous entendent pas) MUTED (You are not sending any audio to the server) @@ -2211,17 +2211,17 @@ Red - Rouge + Rouge Yellow - Jaune + Jaune Green - Vert + Vert From 8111867401f524d54b6e971e1b872a49ece567d8 Mon Sep 17 00:00:00 2001 From: jerogee Date: Thu, 13 Aug 2020 09:57:12 +0200 Subject: [PATCH 477/936] Update Dutch translation update for 3.5.10 (see #77) --- src/res/translation/translation_nl_NL.qm | Bin 106374 -> 105971 bytes src/res/translation/translation_nl_NL.ts | 8 ++++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/res/translation/translation_nl_NL.qm b/src/res/translation/translation_nl_NL.qm index 51efa310c4e6e7a2ca8564ff1b1bb25644354c90..44bcea5a89050a40caf4ae4979cf3551189a9a54 100644 GIT binary patch delta 4596 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 MUTED (Other people won't hear you) - + GEDEMPT (Anderen horen je niet) MUTED (You are not sending any audio to the server) @@ -2159,17 +2159,17 @@ Red - Rood + Rood Yellow - Geel + Geel Green - Groen + Groen From 6cc699ac260f0b538f92386accde33f730bff918 Mon Sep 17 00:00:00 2001 From: dzpex <65598812+dzpex@users.noreply.github.com> Date: Thu, 13 Aug 2020 19:53:32 +0200 Subject: [PATCH 478/936] Update it translation --- src/res/translation/translation_it_IT.qm | Bin 108555 -> 108380 bytes src/res/translation/translation_it_IT.ts | 361 +++++++++++------------ 2 files changed, 167 insertions(+), 194 deletions(-) diff --git a/src/res/translation/translation_it_IT.qm b/src/res/translation/translation_it_IT.qm index b3e8764a42ab52087284efdd55b73d1912646a1b..c18889868a1f937a6fd8bda1c0a9460e8fec90c9 100644 GIT binary patch delta 2560 zcmXArd0bRg8^?doow;-G%)K)M7%wishzk2!H`OUfWx#v93`F+pt%#u@v3-yMT zFHqEn?jQRW6aW`|pkKNNIDHTLPm6(|O6dPx1u|Ace{&_sy!XS4zQF_XAVz6Gg8^df z>%f)@i1A^dtYr`fZv(tc5QoQrToywdna28+7Djf{teFt2=Y!mS)TYp)%swX(Ut$GG ztw_jf+l1RH5z*c4gjp{~lXW2LC_^M&RPp9bko(j;=y>#}`F;MrTbUF2ZY(o$=W%6?xLN`)t zK#Lb@cXhGd3~fUHt05p|rtoG-3NZFpA^nw4frLgO?`bZ`=em}rw-rSRA1!?g*gaR+ zoR9`|sTQ`)XK!aD2)q8?Z$pW&YqK}7c9>9M4F)=XEmS<23hL4ze3iq+dAbQTEh9nk zyM;q9eF;>i35V_MThs{Q`|4~!*&|FcQ@^_&QRCFKL4WgddlmL&eQpPJqfftPZydI35rP4B1B))oI>3fGx~y7@7AV> zk*3ULddJpgQ0_GCOVKXG9MhV_UOqka+vdjuJErQ(lNW+a`TAYIodd2WM!M7;$lK#^9?!fe4^fwN(B`rDnJE4W36|40R+oFJdv-GV=%Ym2mqUAX= zUy$Nd3V0y8$7eI!uZ#cc$-if85d&>mApcY`xQs2GHd*Xs>`!Mjj zOJaV@6<}V0IQu`jzz=VT#Vuz*1DeGT-rmC0>=#ROmxKCdXfvcZS68u2t_40*#IpC< z{E&R@C&`0GX-$%kW|6}L^_~_Z_v#d280&r$cyFCyjzPzhxETu5dC}zGv=TY6Q-8yO zonrv?Bg3I#Va&pKr;=s9_LFSy7W>TbXKe=1Bh&Dxb13Moa>HXASCCR-cy4nlwzv@#eJ(ejJC0gG`js6C})E7uH!T?yV9xD zHBp-3$7Az8X;yMQ;2J0u>oP#S^QBcM*s!8XY0dg5-q;n=y2cvd!I#o{H3c-$SK6@Q z3S+xX+V~wCV)|XXXk_@M%U|{97&s_hd3KF$D3q=~ISR6Em2TM>z9d1`4;>C<{vxXv zn?bYo$S(UMf&Y>mSlk47RydWct#Z&Cl|bBaIk=(*By^FJCe(9&6v-)-t-!e@PNmG@ z@`z4MWZ67<;_*7p8@D^oFC-n%N=$Ztd7r$pfxGAsA#0Uufc6S`ue1~tBgj?b3PHn4 z6Jv`k-bY`G)b8xhfZrQ$eA<6G z;Bc6PK?zJ{t#(GS56!u4%9?Num=j^jYUPbtdfb$qpa+`onTW;w_%WP-U9f z_Lv)3V9FWQz}vpdlzVL_D8R!s^{@AtD}U3pcs|`L&ueMw2-l9Lldjy}n*&W}7V)e- z^R#bOkD_ozzsmzi4NzoV5};2}Tzc3+lbe;mj*LLaDCOnkcY$lCmAL46poNQ-)Q$nb z=0;_F@M|FPypk8fC^Tj(d4Jz1QRPZrBfl3LqvYRCid2C%6sol5de<&pjmkfmL9dw3c&@R<6-J^>WuuX@e>6bKGh zy;m?a_pUjW5?fX8_AH>uUwyIJ4G7z#1_aDtV;`&WF)}cBy_$H0z4-l%I`l*&iYOsj zb*$xj+y|(Wsyp#Dvq_zF)eemCP;(A48Ka`rsZG34xvx6y>?zQKKy?-0UbIqHH9rer z{6PK0rNhRCvE#a`)x`R{r+Rb{Gc)ErweHRHK-X;b`!9I@=$`5i1R$+eJt>Fi z`MONhKDXHW`EOL)9lU{-!)D95?Vv%!&7Rvu4ne(BY3zM-uQYc)eQoC6ot}YSZ83-6 zsQ?w<*4(YJ!t}G6!|L&Ng!#||E-c{Q$T^G7U`KAZw^^Jer^WVEwOZ&z$A_j z)h=4S-QIa@>8mUTo(EYXn;F#f!J646Ze*rq?jPHL&``^~X&-~^i!7QuBjeV|Qr5q^;%1FJgHdn^7Am^S=< delta 2606 zcmZWrdt6lI7G3)=XU@!d4Pb;QPajA=1_i{l5E11eLL`uYp#g%(MMTsjuY#8NxGFx5 z_$a$xH5IKeO|v3FQ|wJvVrrQ$)KmmDLDAB?o&LM`pILLh^PBzcz1P}n&#w*UrN_-H zpQ6-NZf}}X_kqj@R=w{n%VS{reI-bbUe)Ly6lsAt%m7ZCAx6CbY^{bEGZ2*11LEjy zfR_yMrI8>PKZt25jPXW4vdbkJ#G3h_PFY3{EeslvjhJ#9$g&Kv6VHLHcM)4TnWJ1l z?2$l_+#RDrD?t^{V$`hRpaH84FTuNuWXA+tlKuo~U()3)KBq*wnp6u~+Qm5Q6xB^yA%tHF2C15mTAl!8{wSnB`)?rj zoG|TSA*kD2W2DKa>}O%!vX_B(=L%b5Q-H2D!nXNL<;?TKt|#r4JcV6byn(gJLbWXj z==`xz{h$csStNW^z{z>;6lz=3K(WJxx<31Xy(z+BJJU3*Mfj>F2T-;Om&S1I6M73* zZWesy)DJSVS*eD8#5PJSQfgH~9a zLdFjTgW)_2ZJhy8yVtIIlG4`^?7Wp<}ujDcn!{!B6Zmu1f~oj=nZnDK+@>S3m&wZL>E zq!hHWkLm9HVZev8Ol@%$z#x;TKW2%~NpK+bTOzu}HL&TH_?#9DSWbw~XYlw;S|<*D@B+v!NsRupCyWQ?E-&5}^MnQ5u%lvr zm=1Ky75_2NlSOkyocctI6XuGq_FvB;J1>^BUIgaN5oiBg2z>pbxS+KW6j?4Vp1hS+ z6DKYytN;yeGjgP8mnw0yCfOvJjqv$HYrrl78(64 zy*!SXGu?g%UR!Ver`d^zZl}34oi9(wH>OwuJx-br?0f}K*O}{*2eKw|9Z0s$#(s;v zTXd!Qk3-{u9$Du0E+ITMVdi^2oXHEG=Et6PQ0M-JX!Y^iCwawi=@aXv(2f!o+IcC$ zhvhkcpOoNJ4T?!NMp}I`w@4E@9)SuTNz*e<0JHZxkbEylGXwZp`%sz{-vGD-N(-FE zgX}hG^_NUs*S5 zKyqGY8Svs>Ao`dksJa#;bhX4yYG7GBZAsYM2Ao>zK+3vl8SBBy+&s^ccdVX$$MuHe z3t1A3DY9L#jxyes-CZ_VKFKZxrTALvPI7JD7NcJFp-skRIq;c-)+lme$JMQIIiCV; zQP%YPL)j(ktl6vDK(6L$2%tit>;P#+~LSN63XuJ3)P`<)Xh9f#MI##W6h7 ztEL%Y>e#g1^0zKrUg{aSaUn!^`R$@L_5te(o! zg<0I85@q={p0m+)%9{QiK;JIP#;7&C8UmHKw^AcvcStb|fDTv} zt8e)oVzXVRe%i{t%Jx-ji18Os^~eYoMy9h`pLz!H%~8MF!|@|NQ@ZazoLu7w5IgqjzYrRt3c%W8j{X8Clo?obi-lztZ z&o}jvWAFTWfcsxKK+QQ0B zzht!8qSHF`xy{=+?GSxl@tdGPFWqo^BBc-X&G)$rk->jsPLjTJLo&$ARj>WA0tncl zpK==n^4qUplzOnW{j6Uv<+2YQ)ti@a`hJN umY9v%$=)_SGJa;kjLDHx3#Jy29y!9;Io|L8&K?x||L@s>-`uHm#eV?}e+eM~ diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index 58ecfd28f0..cbe13c405f 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -67,57 +67,57 @@ Le icone delle bandiere sono state realizzate da Marl James - + For details on the contributions check out the Per maggiori informazioni su chi ha contribuito, visitare - + Github Contributors list Lista dei collaboratori su Github - + Spanish Spagnolo - + French Francese - + Portuguese Portoghese - + Dutch Olandese - + Italian Italiano - + German Tedesco - + Polish Polacco - + Swedish Svedese - + About Informazioni su @@ -193,32 +193,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mixer personale sul Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Quando connessi i fader permettono di regolare i volumi in locale senza influenzare l'ascolto degli altri utenti. L'intestazione mostra il nome de server, se valorizzato, e le informazioni sullo stato della sessione di registrazione se attiva. - + Server Server - + T R Y I N G T O C O N N E C T I N A T T E S A D I C O N N E S S I O N E - + RECORDING ACTIVE Sessione con Registrazione Attiva - + Personal Mix at: Mixer personale sul Server: @@ -563,7 +563,7 @@ CClientDlg - + Input Level Meter Livello Segnale d'ingresso @@ -572,7 +572,7 @@ L'idicatore del segnale in ingresso mostra il livello dei due canali stereo scelti come input. - + Make sure not to clip the input signal to avoid distortions of the audio signal. Controllare di non saturare il livello di input per evitare distorsioni nel segnale audio. @@ -597,17 +597,17 @@ il programma non è connesso. Basta disattivare il canale audio in ingresso nel mixer di riproduzione (non nel mixer di registrazione!). - + Input level meter Indicatore del Segnale in ingresso - + Simulates an analog LED level meter. Simula un indicatore a LED analogico. - + Connect/Disconnect Button Pulsante: Connetti-Disconnetti @@ -616,7 +616,7 @@ Cliccare il pulsante per connettersi ad un server. Si aprirà una finestra da dove poter scegliere a quale server connettersi. Se si è già connessi cliccando questo pulsante la connessione verrà interrotta. - + Connect and disconnect toggle button Pulsante di connessione e disconnessione @@ -629,7 +629,7 @@ programma. - + Local Audio Input Fader Fader per l'input audio locale @@ -638,23 +638,23 @@ Con questo fader, è possibile modificare i livelli relativi dei canali audio sinistro e destro. Per un segnale mono si comporta come un mix tra i due canali. Se, ad esempio, un microfono è collegato al canale di ingresso destro e uno strumento è collegato al canale di ingresso sinistro che è molto più forte del microfono, spostare il fader audio nella direzione opposta a L (Sinistra) per bilanciare i volumi - - + + L L - + , where , dove - + is the current attenuation indicator. si trova l'attuale indicatore di attenuazione. - + Local audio input fader (left/right) Fader di input locale (Sinistro/Destro) @@ -691,7 +691,7 @@ Canale Destro per il Riverbero - + Delay Status LED LED di Stato del Delay @@ -704,12 +704,12 @@ Se il LED diventa rosso avrete difficoltà nel suonare con - + Delay status LED indicator LED di stato del Delay - + Buffers Status LED LED di Stato del Buffer @@ -718,7 +718,7 @@ Il LED di stato del buffer indica la qualità dello straming. Se verde non sono presenti anomalie nel buffer e lo stream audio non subirà interruzioni. Se rosso lo stream audio subirà interruzioni per causa di uno dei seguenti motivi: - + The network jitter buffer is not large enough for the current network/audio interface jitter. Il Jitter Buffer non è grande abbastanza per la tipologia di rete/interfaccia audio usate. @@ -731,137 +731,138 @@ La quantià di dati in upload o in download è eccessiva rispetto alla banda internet disponibile. - + This shows the level of the two stereo channels for your audio input. Visualizza il livello di input dei due canali stereo. - + If the application is connected to a server and you play your instrument/sing into the microphone, the VU 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. Se il programma è connesso ad un server e voi state suonando o cantando, il VU-Meter sarà in funzione. Se ciò non accade probabilemnte avete settato un ingresso errato oppure il livello di input è troppo basso. - + For proper usage of the application, you should not hear your singing/instrument through the loudspeaker or your headphone when the software is not connected.This can be achieved by muting your input audio channel in the Playback mixer (not the Recording mixer!). Per un corretto utilizzo dell'applicazione, non è possibile ascoltare il canto o lo strumento attraverso l'altoparlante o le cuffie quando il programma non è collegato. Basta disattivare l'audio del canale di ingresso nel mixer di riproduzione (non nel mixer di registrazione!). + Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. - Cliccando su questo pulsante il stato passa da Connesso a Disconnesso, implementa infatti la funzionalità di connessione-disconnessione del programma. + Cliccando su questo pulsante il stato passa da Connesso a Disconnesso, implementa infatti la funzionalità di connessione-disconnessione del programma. - + Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows Controlla i livelli relativi dei canali audio locali sinistro e destro. Per un segnale mono funge da pan tra i due canali. Ad esempio, se un microfono è collegato al canale di ingresso destro e uno strumento è collegato al canale di ingresso sinistro che è molto più forte del microfono, spostare il cursore audio in una direzione in cui viene mostrata l'etichetta sopra il fader - + Reverb effect Effetto Reverbero - + Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. Il Reverbero può essere applicato sia in modalità mono che stereo. La selezione del canale mono e il livello di riverbero possono essere modificati. Ad esempio, se un segnale del microfono viene immesso nel canale audio destro della scheda audio e deve essere applicato un effetto di riverbero, impostare il selettore di canale su destra e spostare il fader verso l'alto fino a raggiungere il livello di riverbero desiderato. - + Reverb effect level setting Livello dell'effetto di Reverbero - + Reverb Channel Selection Selezione Canale Reverbero - + With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. Con questi pulsanti di opzione è possibile scegliere il canale di ingresso audio su cui viene applicato l'effetto riverbero. È possibile selezionare il canale di input sinistro o destro. - + Left channel selection for reverb Canale Sinistro per il Reverbero - + Right channel selection for reverb Canale Destro per il Reverbero - + Green Verde - + The delay is perfect for a jam session. Il delay è perfetto per una live session. - + Yellow Giallo - + Red Rosso - + Opens a dialog where you can select a server to connect to. If you are connected, pressing this button will end the session. Apre una finestra di dialogo in cui è possibile selezionare un server a cui connettersi. Se si è connessi, premere questo pulsante per terminare la sessione. - + Shows the current audio delay status: Visualizza lo stato corrente del delay: - + A session is still possible but it may be harder to play. Una sessione è ancora possibile ma potrebbe essere più difficile suonare. - + The delay is too large for jamming. Il delay è eccessivo per una live session. - + If this LED indicator turns red, you will not have much fun using the application. Se il LED diventa rosso non si avrà una buona esperinza di utilizzo dell'applicazione. - + The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: Il LED di stato del buffer mostra lo stato audio dello streaming corrente. Se la luce è rossa, il flusso audio viene interrotto. Ciò è causato da uno dei seguenti problemi: - + The sound card's buffer delay (buffer size) is too small (see Settings window). Il ritardo della scheda audio(ovvero il buffer size) è troppo basso (vedere i Settaggi della Scheda). - + The upload or download stream rate is too high for your internet bandwidth. La banda passante per lo stream (upload e download) è troppo rispetto alla qualità della connessione internet. - + The CPU of the client or server is at 100%. La CPU del client è satura al 100%. - + Buffers status LED indicator Led di stato del Buffer - - + + C&onnect C&onnetti @@ -944,38 +945,38 @@ Nullo - + Center Centro - + R R - + Central Server Server Centrale - - + + Select Channel Setup File Selezione File di Setup dei Canali - + user utente - + users utenti - + D&isconnect D&isconnetti @@ -1052,11 +1053,6 @@ Right Right (Destra) - - - MUTED (Other people won't hear you) - - CClientSettingsDlg @@ -1953,11 +1949,6 @@ Show all musicians check box Box di Visualizzazione dei Musicisti - - - Type # for occupied servers - - CConnectDlgBase @@ -2020,28 +2011,28 @@ CHelpMenu - + &Help &Aiuto - - + + Getting &Started... &Introduzione... - + Software &Manual... &Manuale Software... - + What's &This &Cos'è Questo - + &About... I&nformazioni su... @@ -2049,12 +2040,12 @@ CLanguageComboBox - + Restart Required Riavvio Richiesto - + Please restart the application for the language change to take effect. Perfavore Riavvia il programma oer rendere effettive le modifiche. @@ -2062,181 +2053,163 @@ CLicenceDlg - + I &agree to the above licence terms &Accetto i termini di licenza - + Accept Accetto - + Decline Declino - + By connecting to this server and agreeing to this notice, you agree to the following: Collegandosi a questo server e accettando questo avviso, si accetta quanto segue: - + 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 Dichiari che tutti i dati, audio o altre opere trasmessi a questo server sono di tua proprietà e creati da te o dai tuoi licenziatari e che rendi questi dati, audio o altre opere disponibili a terzi mediante la seguente Licenza Creative Commons (per ulteriori informazioni su questa licenza, vedere - + You are free to: Sei libero di: - + Share Condividere - + copy and redistribute the material in any medium or format copiare e ridistribuire il materiale in qualsiasi supporto o formato - + Adapt Adattare - + remix, transform, and build upon the material remixare, trasformare e modificare il materiale - + The licensor cannot revoke these freedoms as long as you follow the license terms. Il licenziante non può revocare queste libertà fintanto che segui i termini della licenza. - + Under the following terms: Sotto i seguenti requisiti: - + Attribution Attribuzione - + 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. È necessario accreditare in modo appropriato, fornire un collegamento alla licenza e indicare se sono state apportate modifiche. Puoi farlo in modo ragionevole, ma non in modo tale da suggerire a te o al tuo utilizzo il supporto del licenziante. - + NonCommercial Non Commerciale - + You may not use the material for commercial purposes. Non è possibile utilizzare il materiale a fini commerciali. - + ShareAlike Condividere allo stesso modo - + If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. Se remixate, trasformate o sviluppate il materiale, dovete distribuire i vostri contributi con la stessa licenza dell'originale. - + No additional restrictions Nessuna restrizione aggiuntiva - + You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. Non è possibile applicare termini legali o misure tecnologiche che impediscono legalmente ad altre persone di fare qualsiasi cosa consentita dalla licenza. - - CMultiColorLED - - - Red - Rosso - - - - Yellow - Giallo - - - - Green - Verde - - CMusProfDlg - - + + Musician Profile Profilo del Musicista - + Alias/Name Nome/Alias - + Instrument Strumento - + Country Paese - + City Città - + Skill Livello - + &Close &Chiudi - - - + + + None None - + Beginner Principiante - + Intermediate Intermedio - + Expert Esperto @@ -2253,257 +2226,257 @@ questo tag verrà mostrato anche a ciascun client connesso allo stesso server. Se viene lasciato vuoto, verrà visualizzato l'indirizzo IP. - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Scrivi qui il tuo nome o un alias in modo che gli altri musicisti con cui vuoi suonare sappiano chi sei. Puoi anche aggiungere una foto dello strumento che suoni e una bandiera del paese in cui ti trovi. Puoi anche aggiungere la tua città e il tuo livello di abilità nel suonare il tuo strumento. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Ciò che hai impostato apparirà sul tuo fader sulla scheda del mixer quando sei collegato a un server Jamulus. Questo tag verrà mostrato anche su ogni client collegato allo stesso server. - + Alias or name edit box Box di modifica Nome o Alias - + Instrument picture button Immagine dello strumento - + Country flag button Pulsante bandiera del paese - + City edit box Box di modifica Città - + Skill level combo box Livello di Abilità - + Drum Set Batteria - + Djembe Djembe - + Electric Guitar Chitarra elettrica - + Acoustic Guitar Chitarra Acustica - + Bass Guitar Basso Elettrico - + Keyboard Tastiera - + Synthesizer Sintetizzatore - + Grand Piano Grand Piano - + Accordion Fisarmonica - + Vocal Voce - + Microphone Microfono - + Harmonica Armonica - + Trumpet Tromba - + Trombone Trombone - + French Horn Corno Francese - + Tuba Tuba - + Saxophone Sassofono - + Clarinet Clarinet - + Flute Flauto - + Violin Violino - + Cello Cello - + Double Bass Contrabbasso - + Recorder Recorder - + Streamer Streamer - + Listener Ascoltatore - + Guitar+Vocal Chitarra+Voce - + Keyboard+Vocal Tastiera+Voce - + Bodhran Bodhran - + Bassoon Fagotto - + Oboe Oboe - + Harp Arpa - + Viola Viola - + Congas Congas - + Bongo Bongo - + Vocal Bass Voce Basso - + Vocal Tenor Voce Tenore - + Vocal Alto Voce Alto - + Vocal Soprano Voce Soprano - + Banjo Banjo - + Mandolin Mandolino - + Ukulele Uculele - + Bass Ukulele Uculele Basso - + Vocal Baritone Voce Baritono - + Vocal Lead Vocal Lead @@ -3274,17 +3247,17 @@ QCoreApplication - + , Version Versione, Versione - + Internet Jam Session Software Programma per Jam Session su Internet - + Released under the GNU General Public License (GPL) Rilasciato sotto licensa GNU General Public License (GPL) @@ -3292,7 +3265,7 @@ global - + For more information use the What's This help (help menu, right mouse button or Shift+F1) Per maggiori informazioni usare il comando "Cos'è Questo" (Menù Aiuto, Tasto destro del mouse oppure Shift+F1) From d0050e30c763606401d46f143e419860a6c6ae5b Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 13 Aug 2020 22:39:34 +0200 Subject: [PATCH 479/936] update translations --- src/res/translation/translation_de_DE.qm | Bin 110156 -> 109557 bytes src/res/translation/translation_de_DE.ts | 60 ++-- src/res/translation/translation_es_ES.qm | Bin 106832 -> 106469 bytes src/res/translation/translation_es_ES.ts | 60 ++-- src/res/translation/translation_fr_FR.qm | Bin 114132 -> 113721 bytes src/res/translation/translation_fr_FR.ts | 60 ++-- src/res/translation/translation_it_IT.qm | Bin 108380 -> 108038 bytes src/res/translation/translation_it_IT.ts | 399 ++++++++++++----------- src/res/translation/translation_nl_NL.ts | 60 ++-- src/res/translation/translation_pl_PL.ts | 60 ++-- src/res/translation/translation_pt_BR.qm | Bin 109483 -> 108930 bytes src/res/translation/translation_pt_BR.ts | 60 ++-- src/res/translation/translation_pt_PT.qm | Bin 109351 -> 108810 bytes src/res/translation/translation_pt_PT.ts | 60 ++-- src/res/translation/translation_sv_SE.qm | Bin 103396 -> 102821 bytes src/res/translation/translation_sv_SE.ts | 60 ++-- 16 files changed, 453 insertions(+), 426 deletions(-) diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index 0721ee11eeb5717f88f10ac1f5d602153fe73827..fcc488f6bb65dc434d2b64b80134317082263063 100644 GIT binary patch delta 4485 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 diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index b6ffa64838..12ad2c4d4a 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -789,52 +789,52 @@ - + C&onnect &Verbinden - + &File &Datei - + &View &Ansicht - + &Connection Setup... &Verbinden... - + My &Profile... Mein &Profil... - + C&hat... C&hat... - + &Settings... &Einstellungen... - + &Analyzer Console... - + E&xit &Beenden - + &Edit B&earbeiten @@ -847,18 +847,18 @@ Keine - + Center Mitte - + R - + L @@ -933,53 +933,53 @@ Die CPU des Computers ist voll ausgelastet. - + &Load Mixer Channels Setup... &Laden der Konfiguration der Mixerkanäle... - + &Save Mixer Channels Setup... &Speichern der Konfiguration der Mixerkanäle... - + Sort Channel Users by &Name Sortiere die Kanäle nach dem &Namen - + Sort Channel Users by &Instrument Sortiere die Kanäle nach dem &Instrument - + Sort Channel Users by &Group Sortiere die Kanäle nach der &Gruppe - + Central Server Zentralserver - - + + Select Channel Setup File Auswählen der Datei für die Konfiguration der Mixerkanäle - + user Musiker - + users Musiker - + D&isconnect &Trennen @@ -1032,32 +1032,32 @@ &Verbinden - + Pan - + Center Mitte - + Reverb Halleffekt - + Left Links - + Right Rechts - + MUTED (Other people won't hear you) Stumm (Die anderen hören dich nicht) diff --git a/src/res/translation/translation_es_ES.qm b/src/res/translation/translation_es_ES.qm index c1989022e26a2f0211a00dd50ef9147f2d4be5f4..01560b7260e687b0057391cda99a30c9ab62ab7b 100644 GIT binary patch delta 4593 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 VC)OdQG{$<_-q<61V_9~${|C-yQBME> delta 4867 zcmX|Fc|c8h|9-yro^$u5m?%pwW8O)cWPO=Q)~F==Qe@gUxm33yLpL)q5)B&L$i56Q zS;jjIGa-WvZ$c5-m$7H;!tg%b=J)$U&pGFw@Av!Jp6By9ZtYiwS!zV2_oep)`po2Y9px zZ43I+;{dchc@*f_51sx00~iOuzl@QHI)eU-e+P8F=)cJZJc&pDE8Nd7&Vk~S`3RV4 zhER1!V9XT=^#%kkvM18xG6WuK#|IS%>aqypn;i(6+#BMP0|+X~Vd#=D;E$z%_z}U` zG&C~_1AR9@=$2yOVTN*SJVJ7dfnG-(C?sEmEIt4<1_qC!LD8!*ER?A`I|ZZveg?$s zLg*c)=A{q9>=rKw^B{z)T0%H`Ae=7>=Nv=@B>*=UVp>5yLv&0huVK|>9u%8~ z_1`izs-N(K#~FH@j!o^n0c8dX4?ck~4#BoQ!y$S*yW(_EX@DmjlI^WIS(k1Ndu+kRQ`C zr4ag$y&+n~3FDQeEW#e5;h)F7kq%Xjz6>pr*%#DI$O9JBX|+V%4y6pj#8MW}iF6fDEyzK@y;WI6R7(h=>~#Suai8-=xSv3?no} zv1IO8U~{ZuZQuyfw3$}1VFr0S@jr^fy5f^66@_cvfkmqoMdl8GYmK7lHRwaoyh;SS0(k+BA|_@3v2jzNUClfu{6KqUMnjqgNyWv-Q`Y&uW9*ezuwN3fV6Wfau$zOytfkb1E!S(hML#a)Yc6eqnH#emn$Gw4+2<1B&`Ppz_%4XZDYD(~^&p4_JLUdwDYeoTdAON;zdTqTna`qG?;%H6 z$?rKSa)Kh8MRiV2>TaUOuaw7kZbp7r$P?>?CUl|vg%3Sa7Rgf{U1w_kl&7Av0;MD5 z>_?SsHd*rQ#C4=?2RX-@2hqhzo_pde3Xt6{&yP4wn*Ac@x1mS(tL4R4FEavN>Tb>RIBn|k>CGS zZ8$*5yKzFbaV9-HGD=n0jWffG`>L%eq+#kZ)$Yv^fT2>ge>kh$b*lq~VTr1wFcH|6 zr8;tf2Db`Vm8N*Jtrw_n=elry=&8DEIZghrj8r{&Qr9d(R8J3#16up3UNq?hF)CU0 zvITP$I79Wm8Ee2LS1oec{Q~x?6}P$J>{PYOZ+w5j3U#wVEYeB2>gEBgrEw+dF11sr zl=_heF!ff(?gjyZ$sfGCLxcc*2<|yv5 zIxUZMnTsp(zS z%M2mBU#WJ~hFgw$#ZhTBWD^ah>O*M9E7 zBH5+B{_ZC4t?C=E4?#3mueXLh8m|`e<ord{?ehPIUh zh4GE1{g9m;5Ql3z6w#pf6`BF@Wo*kcH6c5na}Ma{Kr!}}W|ZBHg0nhIlW^oPEoU>FC)}9Uo*J|%hWr%ghw6*K0BM+;!Z+g(vv1fFOzJU;7lXT|yeDCiN-G|FNu~|jv z+WpFN+S||R0*-Uzo8I;K$gCT=q8K9Hri+Qc2}}*t#XM)OXI1H910@Pcm@Z*(DfPff zmvEN{%358*tCwst3SIJ;^XwTnb=I4kA=(VmP5S#A(%Da!8o;hO=brA%KpGHtTeo5! zYh~zh-NxarOzG;oy26+$7Exc_)~EEy?W}J1$UVS@C%U~pGVruU_v>66wf=#w*vXr^ z@J{!8BPwH~L|y5RG}Pd&JK@aS4(q0?oJB)hz0_52uQRZZ?ye6#9QIsyPfK=%SLmfe z>dKINdW~`brQTKV)Y=<%5tpfN=UN7Ih}ZvnU>b0(O5eX%7R2;D`eCkKz?#YWxDLJ$ zO1nO#V=-{?7k$d2L=GHL`jjhN=YL8+<=!xMKR12utSAn%SM>AlvRCvUuK&)5McOu1 zU(oM6*1~-Kij5(__y+n_J)TjhlIqaT;;GSZ{FdXk>9YRE&rA@Lo9p-eLC=+!^#^;s z1Aa-@m;QK+9}dO(6OWj?@?d@WT@!FU-GRdYp#H*^i==6i{_24K5KX%4uMX}_HWWEf zsD1P=qz5cQqoKjG3Ksb^!v{YpINsM7noqaa6@g@M|CYS033Z_8*T&#p%L(PWr=d+v z18Vy*gO^u2J$Pye@YnD&Y`Gz*gtc+rZWvn1YVT_|gfFJy4LcZ;_PKG|y=_Rk;Z0$C zX-NK+zmIHVm~@Nhtj{x~o-K!%HpsB>1_L(7%aCvPpeNd24a-{|;K_WcJKh-YQrA_{BF!PoX}9XdTlkFSdhx9es1`0dw(AM zjp0mr6Y~79;m@a>kWLv4chbj^Exv}wDZ4oroHNvhGbM&|M!Tu%2MUG3*z5;}d?g$x z#x6I0Ji>)aSY!Oe?Hxqd?#3?niy$&z8wcd(k;k`T)1B(EqRJRMh&kWdm6be?f?9~zLb&A5E=Qx3cRjO!At{Dj+RH*V@v%5 z$N2cu5K8qnURw&<Z%i+@7Lm@irq?5ASl3U?&Y_%`3}NQxhdoHkB6G_Dn@H1HX1@=! z*#BoVGWR<6gwpA34$fdzd)v&PvsvKlVdltOV&PtM+&P`5C~v8WHPt-Oln(nzH8dEJ7(`B#HK z7>v&xYwPy^zmvT9#Kuix9g8fqrSA1OT4m)HiT|8lzjd@@>k0g=ZfjbbAM~*$0?YkX`PpT%0DBPZDs z`D|jG<#DMDJK{{WCrnC?oe*oarCB2R zQha=JtR*hp8eO+vWOAa#mSKsTm}>cFVVxb3))-67|8JEaIMU;%P5s}t{o2>I+t(&G GxBVY^`>dh> diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index 7ef46912a6..2781b1ce61 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -809,57 +809,57 @@ - + C&onnect C&onectar - + &File &Archivo - + &View &Ver - + &Connection Setup... &Configuración de Conexión... - + My &Profile... Mi &Perfil... - + C&hat... C&hat... - + &Settings... &Configuración... - + &Analyzer Console... &Analyzer Console... - + E&xit S&alir - + &Edit &Editar - + Sort Channel Users by &Group Ordenar Usuarios de Canal por &Grupo @@ -868,18 +868,18 @@ Ninguno - + Center Centro - + R R - + L L @@ -954,48 +954,48 @@ El procesador del cliente o del servidor está al 100%. - + &Load Mixer Channels Setup... &Cargar Configuración Canales Mezclador... - + &Save Mixer Channels Setup... &Guardar Configuración Canales Mezclador... - + Sort Channel Users by &Name Ordenar Canales por &Nombre - + Sort Channel Users by &Instrument Ordenar Canales por &Instrumento - + Central Server Servidor Central - - + + Select Channel Setup File Seleccionar Archivo Configuración Canales - + user usuario - + users usuarios - + D&isconnect D&esconectar @@ -1048,32 +1048,32 @@ C&onectar - + Pan Paneo - + Center Centro - + Reverb Reverb - + Left Izq - + Right Dcho - + MUTED (Other people won't hear you) MUTEADO (Otras personas no te escucharán) diff --git a/src/res/translation/translation_fr_FR.qm b/src/res/translation/translation_fr_FR.qm index f98c3ee1b8f088ca991b0edd87d57fcdf24c6344..a763b9041c03a55179f95b0fa6916b3b9a574977 100644 GIT binary patch delta 4601 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 delta 4908 zcmX|F30zKT`@Wv{J?GsQjV~2#c0yUQ4p~AQ*|$_mrA68!Szbmlkt|^t+t`vM>t|-{ zW6dDO_E}~|cF8byG4j89o8SMZ&UK#WJj=aa_nn_VsIGoeEp9Nhye|MBpx!>>0R9Bk zVqBM6e554~1R5BLLxCX~wHSA}7N5)@4g*{q0C_C1Giu2sXG`%@V0b9toCS=WN!(eB zaZ7;FylKeyRupy$VET06sUA`;*WB}hw2pf^42JZ>&k*%@Kzgzm!np|2iyOeViy*sY zQ=0aWTU`a>LLs-^4195d?3oQQ;vnQ+`LN*8F39}{0Xv)_`*wuLxCwc{7Qkr_j1N%GGVnsaU0uP|k8OS9`5V@t056*^YqKB$wAaH3S zR9Rubooi5^Jq|=agR$K<3ovbM%?ogMKHLsUKS~7 zMc$#syy3Up5(_bPCHzi!a3Tf%ot8svIsyMFeIUF)!vA;<55A0mUsnQR0|sPK(7Bs2 zu=^GWrz8wKMN_7KM&N=YK>vDH6!k76aK$mePQu_(6ev!@urYMqqsbWk`3*499%G(x zpSC-KEUv8~8igZ7)sUu&M+g^+Cg(8TKL&WG!SprxKul9CIlc~9)Bx+J@S=$iv3U_) z;}C+aEv``G929!E1Ino=`sEdbs}FX14~Gb{!MTfN5XnXOEzb{_wX7EJrQ>o_x@6)2 zSgsz-<3&H9oEF7{o_IK_1(3ZBk5~4BSQda6RoxhDH>@bq-r;S_`w)sjLViijltSp6 zyF+x&62?0#X~El~F5^jbYbLr*+6XiW6TY5LAiR_!q}Ub6^bip_DYVQkkuj34Lnn*K z8&HRmy%tN<)Of!|yY7{+@`L#H`bU1J; zNu1tU0uikc*WaCl=;R~r4*Q2$&`LZU&v_d^@p#w~h#$_1m)~ju$HSt^16JXN4t`=RWPJnDyQSq%MK!@^7o{lL=nSmSQ?}+e=;*Gl8QK zQgFaoh{+eEkj?bjoNm%Y&tpu(ds0T>O`y#wX=;2Jg9*~qH8pu}l&1T&1vVu}v+p*8 z7}Hi-UeytJ(y|u6T$a`Zk$}3C6D@p+T`O&#b(!g8FKwCa3+#R*6%3q1Uu8-~S4gFA z7Fkh@YcCaV4*|ZpD-~Z{4&0w2?K(kII`)!wyUn6+Zb`e(xdRym(#7~?EEH|5D4e{c zOWk-+Wn3**KbCHsB%df&Nxxh2siES6^oKJ|KBb9NeycG}B&5f`F#4;rrAp745L@0z zZ$9(_j?9+c2IK)@I&ByNPM5lXDXCAO^gWbI*T6X1s5a7l&PDn(dYITT-LX^W+uff08I>%HM5L z)3bF{TbU35iewP)6OSbBGQ7mxqsp|AC z3f$RQR)ykt%c0xryf^D-^^~TP7R?+ zX9rnPw9izhx8T^gL_MX(ls2+DOBo8$YrcAEDYIj4qXmnnus?XEUS$Y` zn7&3`8xs}kwP&1}#<$f6R8{) zzE}N#5~18pNpS zT8FZw^l^P{lO!@9;=!N-F9mogXD&G_w@{xMOnM&wQM; zRp)z-=f1W4V0{tzO*eAw5e8v_E;9N7IbNxYe9Mg+pXs9fBoc_Eiy2%>K5)~;RPaK( zRl1lD?`i61y7;j-8Dzz}ga_LodN$W3eV)g3mUJn;td?7YbkqDOX#8v4+J%gj(N(&F z;r77xWL;6@4Jul>Mpyir8aX`C{W$U`79V%rfwnS){6KdoH;o*BKzF2$JKOGf-N|}n z#CqYn(j64krJnA*O(;bC3Ej216tqio-R)g90*=#Fw55hYEp<<|TGo{5dZ~!KGOARs zQ3jCW>+9<@afg^yqW7>bWBu>gPv3c9D)8!Wy-)915UWn>huOCVid*R?wC@g4&rYA* z;Rx{8IDPW+Sf=Ycee#_$z<-QBzB1|6@|lf{X6Ly zgHRa0dUKUQ?q>UIj#7H-pm*TBySfgYzN_qZKZEA%;#hI9EmTf~eP);_lN`!3z!Xhxk2l zl_BXNFWR}(kaGPJ#LA|IrT1yDf)qo33o4?$YFKS)c#OSRuHnE7x*(>|a8MARJT;u? z%V(S) zY{`J0#x@Ss5Q9b;J5`oItoAYnEXZRXZ!(VBPM>Ex*W!cC#;8H`X_xi27(3b+XGhIm z4L7E|dk&0yVVvSk0TP9A^@`VQa$6WT#U!xp&ovf$A7Ojn#bVqUK7yt{YCQVNok0?1 zMKLSec;Z+YaH5~_%!CO3wK~FBHlE{g1C1B$8$+lX7#~-bxdB*na>G@rrufKvVG1o^~#@%AtQB^YNN$I=Y_uN?swmW{vr(?Vqd-lg*Xy1Azjy`CT0o(=W?h z)hP%F>1wVjP9Q`1b|$Ur|Nz!edQM=X+&j&P3C@(+)5>fM_2@f_DY zD-ew+eu?DMmCtlO$0L!L#%Ik5NnDxAf3@Fhp5FPt?W;SsoNs-(Kf<~$f!`yzCkiR3 zIX?o;`JT#|HYn$BB&A5Po>3!9bB^MIpJWv{CI7-cJ8jgzM^)rs+-H~X7SzbH$2&eYVq$DUv}BotTgi6_Mtemgw3y zHZ`Jl)Y>)HJ<6TWG}qWkN%2vWq7u?lUBkI3IyyeebwYYVM9q2O@v*LHQ(Y${rnvsQ iu||&Ygh2~@gQ~p% diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index d55e8050b8..6e83b11879 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -805,52 +805,52 @@ - + C&onnect Se c&onnecter - + &File &Fichier - + &View &Vue - + &Connection Setup... Paramètres de &connexion... - + My &Profile... Mon &profil - + C&hat... Tc&hate... - + &Settings... Paramètre&s... - + &Analyzer Console... Console d'&analyse - + E&xit &Quitter - + &Edit Édit&er @@ -863,18 +863,18 @@ Aucun - + Center Centre - + R D - + L G @@ -949,53 +949,53 @@ Le processeur du client ou du serveur est à 100%. - + &Load Mixer Channels Setup... &Charger la configuration des canaux du mixeur... - + &Save Mixer Channels Setup... &Sauvegarder la configuration des canaux du mixeur... - + Sort Channel Users by &Name Trier les utilisateurs du canal par &nom - + Sort Channel Users by &Instrument Trier les utilisateurs du canal par &instrument - + Sort Channel Users by &Group Trier les utilisateurs des canaux par &groupe - + Central Server Serveur central - - + + Select Channel Setup File Sélectionnez le fichier de configuration des canaux - + user utilisateur - + users utilisateurs - + D&isconnect Dé&connecter @@ -1048,32 +1048,32 @@ Se c&onnecter - + Pan Pan - + Center Centre - + Reverb Réverb - + Left Gauche - + Right Droite - + MUTED (Other people won't hear you) SILENCÉ (les autres personnes ne vous entendent pas) diff --git a/src/res/translation/translation_it_IT.qm b/src/res/translation/translation_it_IT.qm index c18889868a1f937a6fd8bda1c0a9460e8fec90c9..eb83054b7d7e91c7030a8e9649484108ecd6328b 100644 GIT binary patch delta 4480 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 icone delle bandiere sono state realizzate da Marl James - + For details on the contributions check out the Per maggiori informazioni su chi ha contribuito, visitare - + Github Contributors list Lista dei collaboratori su Github - + Spanish Spagnolo - + French Francese - + Portuguese Portoghese - + Dutch Olandese - + Italian Italiano - + German Tedesco - + Polish Polacco - + Swedish Svedese - + About Informazioni su @@ -193,32 +193,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mixer personale sul Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Quando connessi i fader permettono di regolare i volumi in locale senza influenzare l'ascolto degli altri utenti. L'intestazione mostra il nome de server, se valorizzato, e le informazioni sullo stato della sessione di registrazione se attiva. - + Server Server - + T R Y I N G T O C O N N E C T I N A T T E S A D I C O N N E S S I O N E - + RECORDING ACTIVE Sessione con Registrazione Attiva - + Personal Mix at: Mixer personale sul Server: @@ -563,7 +563,7 @@ CClientDlg - + Input Level Meter Livello Segnale d'ingresso @@ -572,7 +572,7 @@ L'idicatore del segnale in ingresso mostra il livello dei due canali stereo scelti come input. - + Make sure not to clip the input signal to avoid distortions of the audio signal. Controllare di non saturare il livello di input per evitare distorsioni nel segnale audio. @@ -597,17 +597,17 @@ il programma non è connesso. Basta disattivare il canale audio in ingresso nel mixer di riproduzione (non nel mixer di registrazione!). - + Input level meter Indicatore del Segnale in ingresso - + Simulates an analog LED level meter. Simula un indicatore a LED analogico. - + Connect/Disconnect Button Pulsante: Connetti-Disconnetti @@ -616,7 +616,7 @@ Cliccare il pulsante per connettersi ad un server. Si aprirà una finestra da dove poter scegliere a quale server connettersi. Se si è già connessi cliccando questo pulsante la connessione verrà interrotta. - + Connect and disconnect toggle button Pulsante di connessione e disconnessione @@ -629,7 +629,7 @@ programma. - + Local Audio Input Fader Fader per l'input audio locale @@ -638,23 +638,23 @@ Con questo fader, è possibile modificare i livelli relativi dei canali audio sinistro e destro. Per un segnale mono si comporta come un mix tra i due canali. Se, ad esempio, un microfono è collegato al canale di ingresso destro e uno strumento è collegato al canale di ingresso sinistro che è molto più forte del microfono, spostare il fader audio nella direzione opposta a L (Sinistra) per bilanciare i volumi - - + + L L - + , where , dove - + is the current attenuation indicator. si trova l'attuale indicatore di attenuazione. - + Local audio input fader (left/right) Fader di input locale (Sinistro/Destro) @@ -691,7 +691,7 @@ Canale Destro per il Riverbero - + Delay Status LED LED di Stato del Delay @@ -704,12 +704,12 @@ Se il LED diventa rosso avrete difficoltà nel suonare con - + Delay status LED indicator LED di stato del Delay - + Buffers Status LED LED di Stato del Buffer @@ -718,7 +718,7 @@ Il LED di stato del buffer indica la qualità dello straming. Se verde non sono presenti anomalie nel buffer e lo stream audio non subirà interruzioni. Se rosso lo stream audio subirà interruzioni per causa di uno dei seguenti motivi: - + The network jitter buffer is not large enough for the current network/audio interface jitter. Il Jitter Buffer non è grande abbastanza per la tipologia di rete/interfaccia audio usate. @@ -731,208 +731,207 @@ La quantià di dati in upload o in download è eccessiva rispetto alla banda internet disponibile. - + This shows the level of the two stereo channels for your audio input. Visualizza il livello di input dei due canali stereo. - + If the application is connected to a server and you play your instrument/sing into the microphone, the VU 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. Se il programma è connesso ad un server e voi state suonando o cantando, il VU-Meter sarà in funzione. Se ciò non accade probabilemnte avete settato un ingresso errato oppure il livello di input è troppo basso. - + For proper usage of the application, you should not hear your singing/instrument through the loudspeaker or your headphone when the software is not connected.This can be achieved by muting your input audio channel in the Playback mixer (not the Recording mixer!). Per un corretto utilizzo dell'applicazione, non è possibile ascoltare il canto o lo strumento attraverso l'altoparlante o le cuffie quando il programma non è collegato. Basta disattivare l'audio del canale di ingresso nel mixer di riproduzione (non nel mixer di registrazione!). - Clicking on this button changes the caption of the button from Connect to Disconnect, i.e., it implements a toggle functionality for connecting and disconnecting the application. - Cliccando su questo pulsante il stato passa da Connesso a Disconnesso, implementa infatti la funzionalità di connessione-disconnessione del programma. + Cliccando su questo pulsante il stato passa da Connesso a Disconnesso, implementa infatti la funzionalità di connessione-disconnessione del programma. - + Controls the relative levels of the left and right local audio channels. For a mono signal it acts as a pan between the two channels.For example, if a microphone is connected to the right input channel and an instrument is connected to the left input channel which is much louder than the microphone, move the audio fader in a direction where the label above the fader shows Controlla i livelli relativi dei canali audio locali sinistro e destro. Per un segnale mono funge da pan tra i due canali. Ad esempio, se un microfono è collegato al canale di ingresso destro e uno strumento è collegato al canale di ingresso sinistro che è molto più forte del microfono, spostare il cursore audio in una direzione in cui viene mostrata l'etichetta sopra il fader - + Reverb effect Effetto Reverbero - + Reverb can be applied to one local mono audio channel or to both channels in stereo mode. The mono channel selection and the reverb level can be modified. For example, if a microphone signal is fed in to the right audio channel of the sound card and a reverb effect needs to be applied, set the channel selector to right and move the fader upwards until the desired reverb level is reached. Il Reverbero può essere applicato sia in modalità mono che stereo. La selezione del canale mono e il livello di riverbero possono essere modificati. Ad esempio, se un segnale del microfono viene immesso nel canale audio destro della scheda audio e deve essere applicato un effetto di riverbero, impostare il selettore di canale su destra e spostare il fader verso l'alto fino a raggiungere il livello di riverbero desiderato. - + Reverb effect level setting Livello dell'effetto di Reverbero - + Reverb Channel Selection Selezione Canale Reverbero - + With these radio buttons the audio input channel on which the reverb effect is applied can be chosen. Either the left or right input channel can be selected. Con questi pulsanti di opzione è possibile scegliere il canale di ingresso audio su cui viene applicato l'effetto riverbero. È possibile selezionare il canale di input sinistro o destro. - + Left channel selection for reverb Canale Sinistro per il Reverbero - + Right channel selection for reverb Canale Destro per il Reverbero - + Green Verde - + The delay is perfect for a jam session. Il delay è perfetto per una live session. - + Yellow Giallo - + Red Rosso - + Opens a dialog where you can select a server to connect to. If you are connected, pressing this button will end the session. Apre una finestra di dialogo in cui è possibile selezionare un server a cui connettersi. Se si è connessi, premere questo pulsante per terminare la sessione. - + Shows the current audio delay status: Visualizza lo stato corrente del delay: - + A session is still possible but it may be harder to play. Una sessione è ancora possibile ma potrebbe essere più difficile suonare. - + The delay is too large for jamming. Il delay è eccessivo per una live session. - + If this LED indicator turns red, you will not have much fun using the application. Se il LED diventa rosso non si avrà una buona esperinza di utilizzo dell'applicazione. - + The buffers status LED shows the current audio/streaming status. If the light is red, the audio stream is interrupted. This is caused by one of the following problems: Il LED di stato del buffer mostra lo stato audio dello streaming corrente. Se la luce è rossa, il flusso audio viene interrotto. Ciò è causato da uno dei seguenti problemi: - + The sound card's buffer delay (buffer size) is too small (see Settings window). Il ritardo della scheda audio(ovvero il buffer size) è troppo basso (vedere i Settaggi della Scheda). - + The upload or download stream rate is too high for your internet bandwidth. La banda passante per lo stream (upload e download) è troppo rispetto alla qualità della connessione internet. - + The CPU of the client or server is at 100%. La CPU del client è satura al 100%. - + Buffers status LED indicator Led di stato del Buffer - - + + C&onnect C&onnetti - + &File &File - + &View &Vista - + &Connection Setup... Setup &Connessione... - + My &Profile... &Profilo Personale... - + C&hat... C&hat... - + &Settings... &Settaggi... - + &Analyzer Console... &Analizzatore... - + E&xit &Uscita - + &Load Mixer Channels Setup... &Carica Setup Mixer... - + &Save Mixer Channels Setup... &Salva Setup Mixer... - + &Edit &Modifica - + Sort Channel Users by &Name Ordina canali per &Nome - + Sort Channel Users by &Instrument Ordina canali per &Strumento - + Sort Channel Users by &Group Ordina Canali per Nome &Utente @@ -945,38 +944,38 @@ Nullo - + Center Centro - + R R - + Central Server Server Centrale - - + + Select Channel Setup File Selezione File di Setup dei Canali - + user utente - + users utenti - + D&isconnect D&isconnetti @@ -1029,30 +1028,35 @@ C&onnetti - + Pan Bilanciamento - + Center Centro - + Reverb Riverbero - + Left Left (Sinistra) - + Right Right (Destra) + + + MUTED (Other people won't hear you) + + CClientSettingsDlg @@ -1949,6 +1953,11 @@ Show all musicians check box Box di Visualizzazione dei Musicisti + + + Type # for occupied servers + + CConnectDlgBase @@ -2011,28 +2020,28 @@ CHelpMenu - + &Help &Aiuto - - + + Getting &Started... &Introduzione... - + Software &Manual... &Manuale Software... - + What's &This &Cos'è Questo - + &About... I&nformazioni su... @@ -2040,12 +2049,12 @@ CLanguageComboBox - + Restart Required Riavvio Richiesto - + Please restart the application for the language change to take effect. Perfavore Riavvia il programma oer rendere effettive le modifiche. @@ -2053,163 +2062,181 @@ CLicenceDlg - + I &agree to the above licence terms &Accetto i termini di licenza - + Accept Accetto - + Decline Declino - + By connecting to this server and agreeing to this notice, you agree to the following: Collegandosi a questo server e accettando questo avviso, si accetta quanto segue: - + 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 Dichiari che tutti i dati, audio o altre opere trasmessi a questo server sono di tua proprietà e creati da te o dai tuoi licenziatari e che rendi questi dati, audio o altre opere disponibili a terzi mediante la seguente Licenza Creative Commons (per ulteriori informazioni su questa licenza, vedere - + You are free to: Sei libero di: - + Share Condividere - + copy and redistribute the material in any medium or format copiare e ridistribuire il materiale in qualsiasi supporto o formato - + Adapt Adattare - + remix, transform, and build upon the material remixare, trasformare e modificare il materiale - + The licensor cannot revoke these freedoms as long as you follow the license terms. Il licenziante non può revocare queste libertà fintanto che segui i termini della licenza. - + Under the following terms: Sotto i seguenti requisiti: - + Attribution Attribuzione - + 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. È necessario accreditare in modo appropriato, fornire un collegamento alla licenza e indicare se sono state apportate modifiche. Puoi farlo in modo ragionevole, ma non in modo tale da suggerire a te o al tuo utilizzo il supporto del licenziante. - + NonCommercial Non Commerciale - + You may not use the material for commercial purposes. Non è possibile utilizzare il materiale a fini commerciali. - + ShareAlike Condividere allo stesso modo - + If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. Se remixate, trasformate o sviluppate il materiale, dovete distribuire i vostri contributi con la stessa licenza dell'originale. - + No additional restrictions Nessuna restrizione aggiuntiva - + You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. Non è possibile applicare termini legali o misure tecnologiche che impediscono legalmente ad altre persone di fare qualsiasi cosa consentita dalla licenza. + + CMultiColorLED + + + Red + Rosso + + + + Yellow + Giallo + + + + Green + Verde + + CMusProfDlg - - + + Musician Profile Profilo del Musicista - + Alias/Name Nome/Alias - + Instrument Strumento - + Country Paese - + City Città - + Skill Livello - + &Close &Chiudi - - - + + + None None - + Beginner Principiante - + Intermediate Intermedio - + Expert Esperto @@ -2226,257 +2253,257 @@ questo tag verrà mostrato anche a ciascun client connesso allo stesso server. Se viene lasciato vuoto, verrà visualizzato l'indirizzo IP. - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Scrivi qui il tuo nome o un alias in modo che gli altri musicisti con cui vuoi suonare sappiano chi sei. Puoi anche aggiungere una foto dello strumento che suoni e una bandiera del paese in cui ti trovi. Puoi anche aggiungere la tua città e il tuo livello di abilità nel suonare il tuo strumento. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Ciò che hai impostato apparirà sul tuo fader sulla scheda del mixer quando sei collegato a un server Jamulus. Questo tag verrà mostrato anche su ogni client collegato allo stesso server. - + Alias or name edit box Box di modifica Nome o Alias - + Instrument picture button Immagine dello strumento - + Country flag button Pulsante bandiera del paese - + City edit box Box di modifica Città - + Skill level combo box Livello di Abilità - + Drum Set Batteria - + Djembe Djembe - + Electric Guitar Chitarra elettrica - + Acoustic Guitar Chitarra Acustica - + Bass Guitar Basso Elettrico - + Keyboard Tastiera - + Synthesizer Sintetizzatore - + Grand Piano Grand Piano - + Accordion Fisarmonica - + Vocal Voce - + Microphone Microfono - + Harmonica Armonica - + Trumpet Tromba - + Trombone Trombone - + French Horn Corno Francese - + Tuba Tuba - + Saxophone Sassofono - + Clarinet Clarinet - + Flute Flauto - + Violin Violino - + Cello Cello - + Double Bass Contrabbasso - + Recorder Recorder - + Streamer Streamer - + Listener Ascoltatore - + Guitar+Vocal Chitarra+Voce - + Keyboard+Vocal Tastiera+Voce - + Bodhran Bodhran - + Bassoon Fagotto - + Oboe Oboe - + Harp Arpa - + Viola Viola - + Congas Congas - + Bongo Bongo - + Vocal Bass Voce Basso - + Vocal Tenor Voce Tenore - + Vocal Alto Voce Alto - + Vocal Soprano Voce Soprano - + Banjo Banjo - + Mandolin Mandolino - + Ukulele Uculele - + Bass Ukulele Uculele Basso - + Vocal Baritone Voce Baritono - + Vocal Lead Vocal Lead @@ -3247,17 +3274,17 @@ QCoreApplication - + , Version Versione, Versione - + Internet Jam Session Software Programma per Jam Session su Internet - + Released under the GNU General Public License (GPL) Rilasciato sotto licensa GNU General Public License (GPL) @@ -3265,7 +3292,7 @@ global - + For more information use the What's This help (help menu, right mouse button or Shift+F1) Per maggiori informazioni usare il comando "Cos'è Questo" (Menù Aiuto, Tasto destro del mouse oppure Shift+F1) diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index b733eaecdc..2a79227fc0 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -631,7 +631,7 @@ - + L L @@ -853,77 +853,77 @@ - + C&onnect C&onnect - + &File &Bestand - + &View &Bekijken - + &Connection Setup... &Verbindingsinstellingen... - + My &Profile... Mijn &Profiel... - + C&hat... C&hat... - + &Settings... &Settings... - + &Analyzer Console... &Analyzer Console... - + E&xit E&xit - + &Load Mixer Channels Setup... &Laad Mengkanaalinstellingen... - + &Save Mixer Channels Setup... Mixerkanaalinstellingen &Opslaan... - + &Edit &Bewerken - + Sort Channel Users by &Name Sorteer muzikanten op &Naam - + Sort Channel Users by &Instrument Sorteer muzikanten op &Instrument - + Sort Channel Users by &Group Sorteer muzikanten op &Groep @@ -932,38 +932,38 @@ Geen - + Center Centrum - + R R - + Central Server Centrale Server - - + + Select Channel Setup File Selecteer bestand met Kanaalinstellingen - + user gebruiker - + users gebruikers - + D&isconnect &Afmelden @@ -1016,32 +1016,32 @@ &Verbinden - + Pan Pan - + Center Centrum - + Reverb Galm - + Left Links - + Right Rechts - + MUTED (Other people won't hear you) GEDEMPT (Anderen horen je niet) diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index 43101b5b7e..a20bafb4df 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -536,7 +536,7 @@ - + L L @@ -702,77 +702,77 @@ - + C&onnect &Połącz - + &File - + &View &Widok - + &Connection Setup... &Konfiguracja połączenia... - + My &Profile... Mój &profil... - + C&hat... &Czat... - + &Settings... &Ustawienia... - + &Analyzer Console... &Konsola analizatora... - + E&xit &Wyjdź - + &Load Mixer Channels Setup... - + &Save Mixer Channels Setup... - + &Edit &Edytuj - + Sort Channel Users by &Name - + Sort Channel Users by &Instrument - + Sort Channel Users by &Group @@ -781,38 +781,38 @@ Å»aden - + Center Åšrodek - + R P - + Central Server - - + + Select Channel Setup File - + user - + users - + D&isconnect &Rozłącz @@ -867,32 +867,32 @@ nie jestem pewna &Połącz - + Pan Panorama - + Center Åšrodek - + Reverb PogÅ‚os - + Left Lewy - + Right Prawy - + MUTED (Other people won't hear you) diff --git a/src/res/translation/translation_pt_BR.qm b/src/res/translation/translation_pt_BR.qm index 9ea1abecd2187e3490250e4345e09247f8926534..1ab5d4f8c693e347a2ec3337044e1f0e0101ce03 100644 GIT binary patch delta 4469 zcmX9>c|c9+8-BiX&pG$rbI(1uBFa)(C-JK&ONJuTw2Gm!mS|CyC|eBO8fApZlEO$P zOOk{cgOMrAAj@RWE<4FEDpEs!Z{?roJ2&V1zW05f=Xu|==cf3>HE~VraU%hA1Ih(L zPoT|gLO;M;)q;_ITk!5h!r?%>1B9b!S<`}%#Vz>2hj27tl>-P9fZg_MXIdF^PXPfT z^s52{B@nu_VB|Vr>_NcaycwC44J=*^RGbIDY9DZ`C;04SpwDvfzx)BFxPgDU2F%PA z{M%c=QVj&V6uM10gr3)d$O#Y}cK|hqAvmXic?^RvBppWFn*-t75kPJo1h2keksBcR z?F2f8LJ0BzGdF`UE|Ab2Lb8D_cm_farJ{nO$Y})jO=`i4!4PsCfX)#R3TJ~Y{24+~ z5?I?g5PSFoXTu>ThXOa&Lw)Wf5cUrG-n)&!{6$R*;N}F_74bl?$QE=m!tQc6!07<& zUONKs8_+ZB8;UppJujUF`i?|jkKX}(dw7&lCL%21nfVtW*}*e!F7RTXnEocbGmOz-Q$yf=%7IcS!lz#b*y<|yEN};NE`!g>RND9~e9vzL z*gp6r(?yfqFnrKXFq1|MKTW9&dj|iN#ejQGGcsug{4pehH8v(ka^&RBag8%XuR z)&+FX)Th|7no1*AVwdeTig*I@9P9yAH1bbWgSC2ueZvC4yj^hNQW@AJcU(#H2ELDO z!CO;swHuXW>IfLG7o`EOzrsVxDDIfx*%(_O(H$=~4gpKNfVcGniEMu~Bb)LX?|VD} zKHOx&JBo~}VY;vE!FrT2eZ@w~;4Iea`F^mTADPR{Z9tb-%***Dn8QpKTwnvtGhtz= zaX{Np79T{VgR_yP`I*qojv4j=l`I{K#^OtiVRqvplnDfClXJ z7^=k78g^z~0C2^Uo!M6i78t_HKl}w|yN5j*{Rzypggu)=zY7uU#pq(NRsXSf%e6p< zU{-Hk2eco~sXgBSb;kCb^j!!L>(1#64M1QuXYzh3aK8&@Ug}91Y2?}|7QmutuJhwK zFkL+7_QZ*54{mG#;2T%{VxWr`yp=L%>=6bJI=U>_N{2-66+LT_82Y| z;gq2=Zo{gHK;e9Dn|B~!Z2vd6Gl_J&Aezf>BA-sjibej|82qANIq*k8PEU_8fg)+j^B}ZmE?4g-{-C)4qpmp(D3=! z$Vy-NG$Zr3;S2Tz14|P5f=d~|?Xmp+Qx{>2Gme~mR?<(vSv z_5ok}aR_i|hoF2RKUi|M8CmaMg1J`&SnIn&n{H`9sFmPgO(e75C-li7)y!Qh4E&ce zyM2rBwcd%;^GO&Kd=Mi{-Zq0S40f)6YUsdJ|dR3!yRgVC&8a zQCu?EWKUt*V1>N>x-h+O2cWCFFssR6CPSF-NRgH~vS(G~cj23(lPxu(j`o55(IZl3IBjo%@vg_9%FEhN6X1?@vJWW8w0YMsm_t z!i|ZP(fMDs;7wkrI#Nt3k%doAB=a!ifaV30t_z>-(}3V|QRvx7tu0CvQV6dUh{861 zV0DtHc|T@_`Rs2jM$0^<0*s2kz>S^k!`81hKpO%Ka!rGiaU>!#l5;I=B7}D z7oLmxE;7liy;u-SvRmXU9^M@a$bX6@0mN#HiOtAbbrMhJM*|0w#4~s3!kyE_(pYWvk})QlFXH_85B(_Gcf+^|Ve zZ#ip4vW!+A-AHpHXcWfY%mH zpTc4=(MIDtwTxuhR^$Kcdt!M*GqUhF%@|AammOa;QD;sAX6H0fMp`g=m?pM)gZ`S> z=nKFPe`;cH(6snNoMz#>G;+9=nq@xqT5I>6KQQZz)@9Kyitv(lun9$+{aowXj#9iLP5Uh~r6E(L^^G_R)SGL^ ze{`h_ZPSLWeNO`nuMMkuMv;%u&X|xuBijjWYGh{`aIa`r3?>88dTQ5nqJuS0v}+q) z5Lv$%wY%?R6G`4^50u9P3qNUpz0#G~d0u<$B26~okF+Jh^n%Gy?OAI|@qpgivfdPd zf3dc55vADFL0i9r9I>{i_CGg@bdn@--*}TTJ(mn$sAQ@Jp?wcvZ>1Sx1sG1#njQaFuOSbS6pe@`#2ZY@Q4^JFADq^OalbBvW{fBq3{M6nd-MO`v|i1fWTT{PN6+VT@|B`{LT4X^-q zu9xz|ZxM&0rGgp?$Y_}<9S%AI7$NjKV}7kvkG*G2Xj1g0(0#X1!OPk3Ey zMl=l=X}Z`7deO7BF8UQS3mCL4pwMo_eR7pL;|7YELM9*wh z12aeHwz}1lQMGGEW;R2YyPBqJ^BCRUuNBh2vAwS7JVma$tUEEZ5h$LmE8TmJzPFro z7vECtZk*Cxu2g`^fM#TVmAX57?vYGa=pOodf_3^@_i&^;sUfr(nSP4y1OJ+);4QLQ z?R8@Ldb#y)9F6l0a>pf29I%qDR+B7iw-XwPwZq5BR`ua@fJ*N1#ti5$$h~^aqX@Rj zULG2%k%jDYlDJWkAde~~w)<|9gEJNKi)wjVktNmMAWwT@PoHVa}Pb) z?g?^S`DL)=rSiHbl(2O{a=I-AqCF&U?sS|+uqgSc@$DR9`Bu4z5kB}sKJ^W;eM*LW zdh8v*=CFM303Gm+NM2OVr7U%T9nbbeWWUPBX6 z`2zXnybuaxnfxyHFwF!1$@Rfhl2%jo%B@}G6E^w|yC~z^HtUT|3l^@|e-&s>PFSG- zpJgMMo2kBERUz1qQF`B%X=JfI^keo=&5cDZcxR42Vg%K+|JfFd2-Ht&OOd@4^l=~F zkk>=MU>IFsI`o?}YiPKIetT35eXR*M@?{m87-wpJq&v93M?LmJq zr=^Oz(Tqy-yVCa38(?#>(taw*GHR64L6c7oXi#hu5`dGkV*5Iax}?!eaWuCAi?dc- zbSua({1n$Wr00oo%FyKHGzmp09w}73ggq^Id#mENi4N|5K>67)R4^pA|~Fd6Q~RC^;Xg6h@DjmPO

E*d4I5O|0<8wOwk1PqZRq5iM+aIMT)QL!$u5SW=c>t37a05&J|+D- zb~a3+W`SjE43k$9?yEOM{!LBEJlC-J#sDxIOT((o9QBB9hM&|ifLLkR)HVccxnMX+ zT@LP-3@435O3!e^wX{4^(P_hV^9M93l^d$+{DEJ>4IfMtu)cnV`hMeqaor8|1u1MYd^MO(*FTuO*irY delta 4873 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 P%y=HO`+1O9Hv0bnK!l@F diff --git a/src/res/translation/translation_pt_BR.ts b/src/res/translation/translation_pt_BR.ts index 3d97b12592..9808155595 100644 --- a/src/res/translation/translation_pt_BR.ts +++ b/src/res/translation/translation_pt_BR.ts @@ -803,52 +803,52 @@ - + C&onnect C&onectar - + &File &Arquivo - + &View &Ver - + &Connection Setup... &Conectar a Servidor... - + My &Profile... Meu &Perfil... - + C&hat... &Mensagens... - + &Settings... &Definições... - + &Analyzer Console... Console de &Análise... - + E&xit &Sair - + &Edit &Editar @@ -861,18 +861,18 @@ Nenhum - + Center Centro - + R R - + L L @@ -947,53 +947,53 @@ O CPU do cliente ou servidor está em 100%. - + &Load Mixer Channels Setup... &Carregar Configuração de Canais do Mixer... - + &Save Mixer Channels Setup... &Salvar Configuração de Canais do Mixer... - + Sort Channel Users by &Name Ordenar os Canais por &Nome - + Sort Channel Users by &Instrument Ordenar os Canais por &Instrumento - + Sort Channel Users by &Group Ordenar os Canais por &Grupo - + Central Server Servidor Central - - + + Select Channel Setup File Selecione Arquivo de Configuraçao de Canal - + user usuário - + users usuários - + D&isconnect Opted by Desligar instead of Desconectar to keep same keyboard shortcut Desl&igar @@ -1047,32 +1047,32 @@ C&onectar - + Pan Pan - + Center Centro - + Reverb Reverb - + Left Esquerdo - + Right Direito - + MUTED (Other people won't hear you) diff --git a/src/res/translation/translation_pt_PT.qm b/src/res/translation/translation_pt_PT.qm index b4124412b826658eab4dd66c77fabd635239d746..480a2865a5dc41dc4466081852286467b07f7597 100644 GIT binary patch delta 4469 zcmX9>d0bBU7k<9?z014Y_r4V=CS}Q3CsDEt*|iF#tR?NXrm}CnmNJ$ml(O>^DKS}w zVK6PSgeDELuZ4uks4QXfJJlb3o_p`x{eHjaIp=xKxf!>_wb#WB%_oco&;cl=Kezxb zHW7LPuK7(ETGNF0UJ{N3T9p%e(`7~zhAnBrhcgL%0BibPm;_{Q+c?YGxW79vHh`Ye zE`G6ui<>Zv?#CaeRW3Io)0_pC&`OWWz$Y9AZhL^=6$kX(2mXJ5fa!z5zuW+38U+6B z9bm;;2wmcV@6-^w-UPy0La^TlRG)z07!Nk=IfOyUFyej+gb|~F{lO4idx3?SL-0%o zTBkwq8xGdo3Bm+l!Y~MN2Ec|E+#}FI+7Z?R*=L&Y(G&;`!L&OHAv+3eVRHy)mV>oO zhS=E)xL5`;E)ckR9Ma`;KyU{1Jq{Rwc}@)%z^%pTa)t-GB{ZQ!3c8dK=MI<9<&8a1 z`w3ll45Nsn(Dm9Spw|%e8h!%M`(k)8F%j|*E~)1Mtv6gU=Kvqm;qsW)b1rB^<`@Ro zcmtU30Ng?zgUMgumSUVn5kG)iL3g6C3*4Pjz}5%Def|(I$4ziQw+0A}hsTvI06PrN zI6COEe2na$4rbC0BQFq@!NKramjeu$(TGg57G9}&R4C6ddK?`n^iTLqpw!);gz^8? zQYvm^!b?ic*9DkpY|{^fJq8qTNrU`Ga z!1WH4l5jnYH_s#juLs}>F^aqPcs{NZV7!8gErY<84aM8KepGCC8<7Rg!~4!uzVAz! z@QxzmYM8F09a!f8rhmMJ7))l(UK|1IdW`j*l?K?_Ggrr#VBH;<|DiU(oFW#yCI+xr z%NF=i>fmT(iJm6F;t_14L=k6Kv1IRhu+;@@w@(SsHhqOSQ_h|T(Q|$&tMJJIOPI~xt=0fm+gY8> zM^eQ~PI9RNJ{Vha+A#q@G&r5%GvIrKGkG5lJQ&WI7rFrVT5+uuOJHFQ*RCuEOqJHuMB6i@EI2Bqy7v-0x%{ ztW7sA=j{YA_cL5>SEBIvGcMnbig?IJ?(&&XK=+s{_ofsCPT*erLkAAlbMNO+@nu9c z;r%Dv2O|}2iUU`-WFhIlw4AHE>I|IU$9?WZloZWXiAQLIlzf$V;Vr2lS=IUr9VoC+ z)%MhMunoOcjsebKgET7d(p^-=-&Aw_9DxDls`%5vz?Vy^HSWd4=tfoQ!EInm`>Br3 z?F*JVTXnx3turrCRr@f6{3caZ`^b^>pP}NVnrxtp%v;XkC^t@g|3)2K^UjsA!0)yE zWRJ^WA$@uOeN|vl*8B{|JYczsUyykh_+bjaaAqJC6ZnNY8gw7cFL5Kk*y+zNfBHSC zK;%>EdI1m3ny@B>-!YL4sP`*EBVB}!=JzeTPR4MDPhai|WR>&#N3H}@y75^z$Vw{% z8j+2>#~(WA4=mO4hpwdncNXwR3W!Rjnm^iQ8Re#oKYG;;nEexfZRRG@ztD)x@P;qx zNBcY()r8eX{?2*w6K*5_z?e)Cas~WDYoa`41OMb+dth!VUy)DMU)`F2?HCKTF@mrC zG>Dk66_jt}2TR8^BI^Oc+%=T+{!M7nArY8zQ|N9(MP|2H=(&efGshtG`-y@7Qkj|f(3x3H|ESXbkzXtk_WVq;b2=?#73KmbDuqI~ufV$}LP=0PIjMtCI=O+- z@+Q1xE4)6HLn?6;zB-W1gN#*;7fe$v{AZU4_$P=$*LrHuVWJRESW+YkXihe}-N~OQ0&g)rk1Ve8A8~&?MR+wt%<3zX z%pAl+(ImTt1>(sAfq?v6%pFTrZMmuunb~mhT-G$;w};}zdvxG-kHx}hJ8I)4V#PXh z>aMrN$~HuKTBKNAO&hy)6KnDUNdLC=;)hm_U;&ZhM;pq~=zQ^;73KcBr4n05-OlYF ziL0Om*Y%Lh{|o?9k|e89RFw1okXpM^5rv+Toaz>kaaBlzZFbS%@u%cvlT91kmb@?Y z0qoaHzUK7aWG`uaRva+SOY-lcA;a1$O{uFlf<>B3v;B$E#k(7k*-n?{cA|TIxir6l zN|V=8oGJjU#|9~>kW{g3wv@7!n$xr%(w4_L)QlELTV*f0&ykvH;}2=)C2Nx9FVg8P zG^aHylJf5p6C=M!g{vL`%`K#-{$$~nX42E&jRUDjlBBZwXY{~JD*s#n*8Z$iX=4p| z{HEr;{b;agrIsI75%q3rljF{$<1%&kxaUOe=tgAC4y${NIYtBFBz4d195A7e+9SM} zWcj1o>)3nh`z;!g1%FkKYf1jHZ-zSJ;swC$y*k237fctfj&4}M<-Iz3+Et=(pgOwL zo#a%jUidDN9PX%km3tjEr5yFz{S=w(quy|rm}u5loqUXn?&}Hl5h(%8B|!a0a4gt3 zQ+4jG0I;?{t1qU|`v>Q!FU9@~)Te8d+$!LTm8My@Ibb8AG{%<2NtEM-8r!IqK+V6J zE@QlapW-xq7iCaUnra4^P{g|eG|sJv;d+W0b*CeCnz`b2S z53T0ttp(I(S80y@ZA--yt2tXllTApvCfA={FobF@*$_j0zS9)GJ`jLXxu-|k4wDMQ=+EbZg)pVsv%t^3Ni32TiL zw0=8ts0g=dL&BfYh&@aj@}6EyOwfk9@nj^K+KADGITJdeA-9Oe6NQX8n2TYeZ(cLAQTBP1ntnbie+nkp5$nb!Vv_{@{Ax&njKvub1h2%STuAmU4Hq zTvt-5058KDk$I-;?j3vpW-IHSc({PIiPk+CJ%rS-wh@`UO80?(17?;lo7LW=Dz}%L z|HjccpC`9o+E4@iWb5@L%bGoeMylG87P566O(ZYP<<3=R}{vOb# zPQHAUHW*qUUtyr!K9!5qL$Oap^2z;v;1;y z08KdaP#uvJg=9_tdxVms=`9i*HaU7GN2vOaVa<+S(7CJb$zut+oSZ-fKiQYpK2+f7j28top0I_P7_AgPS7N zn~{~5Di+tOfbD~n@4`uz;kOhkbrv~bN2OD2ERere>GWm?bxC7@VsCB@7QI{Pt6NKk z5u!L(k)9{JDud%z({TE?GCZD=7u%}|@8l|;TWRC(-zj5WJf}fol`^9t($7#LGwZ4U z-&dkk$4Pd3l%;EE-Nbgv(l_Z8d8D!|hNj`3fl9J@gKC~Cdp=PrjKfWuF2W`&2eyu- zYED;jt|tPWyDN9hdxLd|QOYE8M0aoHRV-0gFjslAh8XA|DYdQ3$gox@9}i`dp1&xc zed%C*A`GSzXkwD146QG8B3YIh+InQthW!oB?Uw;7PZ$PYt|mv_Ztz_AjP!5sY?wmL z0;@#B)OCc1eGOrMQB!Ju#jvEb4~<#_4GG&h>TczRU!+JtGBs?q2mt$eso@-TISkoq zIA^4ybde1=5;I9fcMUhqAJL?A$ME{27qGk7@WDg@>!ld#oF&-=XhbFaVqepg)=3oFHSoq}co z=nwoclF$?Ayn)aU@Ts(5wA_MsKM+m=y44T{0FzHzFgnkI)yoK{0e19U_#7xcm^a_f zR5Tt4458I2z>EySbPGlsfLTXK%6&63)$hQPCBTDb@M{hNx8{Q1kp&Fd4gR~I!E|Zh zpREJyxDfoyDj;ho1cz*(yBxxxn?SS^1ee`F!(|Ar*k+p(Ft; zeISGr%fM`lAP)2g%9^niLArDnFr0*D@IDie=G%S&RIP)<2_A4Ro_l4F+u|Zw*PnpsN>wVV_~xgnt8?>6lPXo``%6&rQDo$^dv4r2wtR;aN@c z##EV+xuwG^TL-2og?B_XdCUsl8%;4}@hfZag*`80XdV{>P zJAhRc*tw7niaCniUsGtbeNbqBgDhT-B4;N+7K7q5ufc4(;o!JHFkcbBUM&X;9gN>| zy@9223*Op{>-{MtF@0dVc_J71D*zA3qqs8xk7wEg%c}8o%NVdPXW?ZlrTwiJW@Hho z(KwLOx4Di9ugEg)4O0zp0vnXfG}T+kgGH?4lS5!1Uu5p{cLDuen3wA_u)$s|_<$Z* z@Q{VCOai*BVrerdbZ|AXTt6$)>~oeUk;R8)EI*(PY*iK8Iqe$o$zoP;!VWC3iWPN; z1?2YZ{7i~O%o=uKeIRh%pItau0yfi~RW|(s=HSmBPJ2(GX-o=z(T%gtf0 zauh(1ZLGCdGgZZMPV#&Kw3wVY<ba1GXh_CAuMiZ8=x+ zmddGj6ZcabS>9(XSNbvt%(QH31ZYFeCTmFH+dh zhigosA1z$#uO7gKpSid8@z!AK*bK=pH8xr8Lq(S7FqW3aNxsT*-D>s^5|aK zrv2Z5nI_8)r@Dh}$&uaZLvqr-mo?mrAimizYq;-9^}o-Sm)?{B4r<;ug`?QG@uSRj zY{z@lW&l4c_%D1ffkpcB!Mk68B@N~0xl(y8x8>7{ZUG<9;TOftrDOuXXnT9zui%$> z6JP91;+H-A2+XHDzp-@~P(8qcjf?p0vx$I)*AbfNBFez;&b&^<@E5;lnHO-Nh2J}A zImK!$Uwnh8^m(!w+2oh}f&IZ0vtImxs~dsaYxzUx$d%R-f7l_DV)KYU{Hqg?n#Es@ z+d%a%n2~j0{I!vE&Z7tmHf-Rlejz^L^7y-^e6o-`$KSIfmq+g5AKdN>EZomOJww^w zFob{ZngN!-ly7Jm0~~Yb8+~(u5z&J7AL0d5q#4;z8^OlQKos3c=-i*4ht>+ty(rmS z)(JxjsCpLk6Gr}B0_^D_e4-f&DEbMbf{%d39u!O-ZzqFwD-=B66V>tsLZFW7{fUDx zBcGC{c!4n2=mfSQT8QSdz`{i#_ERm;S1-&P)`RLhM~H7Hny@p%0vEDKwnIpJ`G`WZ zPFVbh5x5#EWWB5a^PDH-#C%U>J5yL`%mwpE7uH<)l9=$QNmw`cI+fXeVbg>AWVx%b z`Fn|az)4}teiG2_dkZ$a7q)LF7ix+uSbdQ25mkk)P#`}|O(;(&_=?JJ#8siV>=bac zO(^qz54>p%WJwH`=J$;42bXT&Fq#dJ|d)e(I{%$Q9s3>Yb9Pw7Jaf3LVRzlAJ_ z68D@Ys;lS3z1d{pZ;QlYcQrK)FY!Pkm0x<5cy!-fK>b)e6-e1_yTXjD(`@l1rG5vh`xEo;<#Lx%m2ZAWY16toY`12*t8ZZ0hC;Hg~z$ z+>2rqP$~Y?gJR!vy~I{i*Yo2f?kNdeJ5jRv5AEMvDD{|3$+@Up>gh!}6!n|r)|y5H z_Ffv>YX=P=*Cqd6CDerKrGWDz0GF?&={EFUNVqhsI1300mx3J>Cb03xq&ck=qXY*j zIhb6!^oSYRMw57U~n$lWn ztJ(F%-&3SwCTcmphKfP znviLh$P>*1l=8%wU&)1m^27=sLWO+Mt6XBb!}1kAt<;=u$XD$p%e2w*b+^b99o^;m zKT^`QU6vn`)_{2@%YP2f01Ns^eyTDAtnYUDg^l$74=d#tGyVp{afSBO3*gFNg{h-s z3Yb^6qHFnjz&BUXFJU>*Bq$uF`U8nu74C}*DJiWLpIVW{-z6(Nx{-_5bXQDd)--I6 zQurE<18*G_vs*k!p*xE3yhfV&+!f)^ACu)dinz}+NZw7w%E&%6*nXo}^=Uf+#VgkJ zrgN26CPm)cr_{v~6#H)P00t`+hbz;7^lgeCfA2@hldm{=g(jTHFa z;t|~y<%7wBDPJjS7n6%SL@Qc%6C*ZyDBg`GOXpT7x$)jaSb0j_KNK>)LfLnlD>bQ; zO6QYw&d?7^uU|=Sy(!jm(PUK4__mai@Srjx>Q5jeNEy*cFRm+48oYTTlK&{9r<4&N zaLVXfI#8XYjBaTrSJx=xKEFjtmaH`XxesiJpEBXYS71{Mlu2IHEjLsv)4fU2*c#=x zYbjS|IxF`E+5&|(%HoJBqVPwXln36BMO{xTkIpzo%_l;6+(iK1O;w&;lR_KXl%-Zq zG>$H&Sm))d<>mMAM$kfM%q<()(A3JzD+x{!slLX~w21@)A7 zD!!O_WrkKIm-!OK%T-qWoWSCLRyo_2Q~!5OR}G((4AkCKd5+Bl`)adlnyn*gSg48| zGKymKOqDpa6!>$nDsf{B4I06!#OiXu>y;|4ZW?tx8`bI+VKl^+s@B$0kC?JlwZVmw z^kb!J`@{{D3yG?4_xc0zeN;O~HxN;cHzVt~N459s-87pi{vL<^Q#q&jh#ESHt5 z&WvpXPRmqfKU|{ku4vVjmlV6o7S**{El`(kM&^H9b$kC^u#bAH9{76FWVAx{V9IAy z4Xez^wA)lod_7pFN_B^Zo0Q}e)Sdpt(O6%h?zyx*2S%#xzBW-^HvU8xl(mx`)po5k znbbL`2fpY)+}@~mbW9}+ZmPW|$brnGYM--|8xQuY1Ij4dC&j9RH<9Aq2dHCDbfqb` zP90lAp_)BY9e0wR&k0Z`Jf?$+@2Zn3uYs+wQm?Nehvhe_^XYDwzj zFDV3(Y3dVF}c#jB?V%b|K4Z9W_Z!FM#0RGz-U(0&zDq+cv$SAvaI+eY6o6_MN6^Tq%wB zolKg8q0`Cr3pA%*I|0U*W@Pc}HRn#311B$OE=GofP28d>52O3w!J4bK)W_fDXr4Z& zEMB}&Q#Y5^Q<^ldM*0K()|!SR{$RsGv{G9KqVhUzm#Z&;Z>MX!M^RbEJlFP+7ZU@H z(%NTa0Ow3Qwf6PfsZEAxU2N>Yl8J0Y8bm+51{ z+c&j-Tj}7BUTLR3c}#=E3hlghOW)gQjYVzL|L0 z%p{tMT~oFBHdHmHE=}5k7K(*ue+xz@YWHmoq-;K}Exn!#40P63*$f98@RjzFM2zSc zrLD^#*PUObtzStV7|=u8(DM-y)@E()-97FfMx7k!BZ*;8(jKokQgNRkOmi#N$dftctHXh>;hZuw-6iLv- z2m_Mo&p_8jJ1Y}X^y7@?2&Us3s=1lcdI M^gdeY&0OdF4_aQYD*ylh diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index 1212f98e86..a279d21c15 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -801,52 +801,52 @@ - + C&onnect &Ligar - + &File &Ficheiro - + &View &Ver - + &Connection Setup... &Ligar a Servidor... - + My &Profile... Meu &Perfil... - + C&hat... &Mensagens... - + &Settings... &Definições... - + &Analyzer Console... Consola de &Análise... - + E&xit &Sair - + &Edit &Editar @@ -859,18 +859,18 @@ Nenhum - + Center Centro - + R R - + L L @@ -945,53 +945,53 @@ O CPU do cliente ou servidor está a 100%. - + &Load Mixer Channels Setup... A&brir configuração da mistura... - + &Save Mixer Channels Setup... Salvar &configuração da mistura... - + Sort Channel Users by &Name Ordenar Utilizadores por &Nome - + Sort Channel Users by &Instrument Ordenar canais por &Instrumento - + Sort Channel Users by &Group Ordenar canais por &Grupo - + Central Server Servidor Central - - + + Select Channel Setup File Selecione o ficheiro de configuração da mistura - + user utilizador - + users utilizadores - + D&isconnect Desl&igar @@ -1044,32 +1044,32 @@ &Ligar - + Pan Pan - + Center Centro - + Reverb Reverb - + Left Esquerdo - + Right Direito - + MUTED (Other people won't hear you) diff --git a/src/res/translation/translation_sv_SE.qm b/src/res/translation/translation_sv_SE.qm index 307738e2c623dd5c963c0341c4d50756238abe65..518ca32fb1b820d76b348384b04aefffc77eda33 100644 GIT binary patch delta 4477 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 delta 4858 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 HX#D;U)%K(7 diff --git a/src/res/translation/translation_sv_SE.ts b/src/res/translation/translation_sv_SE.ts index c6448653eb..8be0d662a2 100644 --- a/src/res/translation/translation_sv_SE.ts +++ b/src/res/translation/translation_sv_SE.ts @@ -565,7 +565,7 @@ - + L V @@ -706,77 +706,77 @@ - + C&onnect &Anslut - + &File &Fil - + &View &Vy - + &Connection Setup... Anslutnings&inställningar... - + My &Profile... Min &profil... - + C&hat... &Chatt... - + &Settings... &Inställningar... - + &Analyzer Console... &Analyskonsol... - + E&xit &Avsluta - + &Load Mixer Channels Setup... &Ladda in mixerkanalinställningarna... - + &Save Mixer Channels Setup... &Spara mixerkanalinställningarna... - + &Edit &Redigera - + Sort Channel Users by &Name Sortera kanalanvändare efter &Namn - + Sort Channel Users by &Instrument Sortera kanalanvändare efter &Instrument - + Sort Channel Users by &Group Sortera kanalanvändare efter &Grupp @@ -785,38 +785,38 @@ Ingen - + Center Mitten - + R H - + Central Server Central server - - + + Select Channel Setup File Välj kanalinställningsfil - + user användare - + users användare - + D&isconnect Koppla &ner @@ -869,32 +869,32 @@ &Koppla upp - + Pan Panorera - + Center Mitten - + Reverb Reverb - + Left Vänster - + Right Höger - + MUTED (Other people won't hear you) From 97f54a33991da25f4b6821b85ce49e3accf33314 Mon Sep 17 00:00:00 2001 From: Melcon Moraes Date: Thu, 13 Aug 2020 19:00:09 -0300 Subject: [PATCH 480/936] Update translation_pt_BR.ts --- src/res/translation/translation_pt_BR.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/res/translation/translation_pt_BR.ts b/src/res/translation/translation_pt_BR.ts index 9808155595..ff240fd661 100644 --- a/src/res/translation/translation_pt_BR.ts +++ b/src/res/translation/translation_pt_BR.ts @@ -1074,7 +1074,7 @@ MUTED (Other people won't hear you) - + SILENCIADO (As pessoas não te ouvirão) @@ -1983,7 +1983,7 @@ Type # for occupied servers - + Digite # para servidores ocupados @@ -2194,17 +2194,17 @@ Red - Vermelho + Vermelho Yellow - Amarelo + Amarelo Green - Verde + Verde From 2fcfc5e3966bcd4c9ac9059261a1b0e7092ea4bd Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Fri, 14 Aug 2020 16:59:37 +0200 Subject: [PATCH 481/936] multithreading is not yet ready... --- ChangeLog | 3 --- Jamulus.pro | 1 + 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 546f9ba5b4..3ecdcac878 100644 --- a/ChangeLog +++ b/ChangeLog @@ -15,9 +15,6 @@ - support MIDI control faders in headless build (#483) -- support multithreading in the server to better support multi-core CPUs, - use qmake "CONFIG+=multithreading" to enable the new multithreading (#339) - - option to set Mute Myself on with a command line argument (#495) - added a red message to indicate that Mute Myself is activated (#476) diff --git a/Jamulus.pro b/Jamulus.pro index b817095583..9a3b5c762d 100755 --- a/Jamulus.pro +++ b/Jamulus.pro @@ -9,6 +9,7 @@ contains(CONFIG, "noupcasename") { # support multi-threading with OMP if requested contains(CONFIG, "multithreading") { message(Multithreading in the server is enabled.) + message(NOTE THAT THE MULTITHREADING IMPLEMENTATION IS STILL EXPERIMENTAL AND MAY NOT BE STABLE.) DEFINES += USE_MULTITHREADING QT += concurrent } From d27e53bd89c179076bf4f1afcc03b0b2908e95e7 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Fri, 14 Aug 2020 17:11:20 +0200 Subject: [PATCH 482/936] update --- ChangeLog | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 3ecdcac878..cbbcf9e891 100644 --- a/ChangeLog +++ b/ChangeLog @@ -31,7 +31,8 @@ - +TODO improve multithreading +TODO use command line argument to enable multithreading instead of qmake CONFIG From b657615aa72530666818513045c9b1816779dd72 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Fri, 14 Aug 2020 17:26:31 +0200 Subject: [PATCH 483/936] tune auto jitter buffer to get less drop outs (#417) --- src/buffer.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/buffer.h b/src/buffer.h index 6f135dcb7b..3caeb18b9e 100755 --- a/src/buffer.h +++ b/src/buffer.h @@ -37,7 +37,7 @@ #define FILTER_DECISION_HYSTERESIS 0.1 // definition of the upper error bound of the jitter buffers -#define ERROR_RATE_BOUND_DOUBLE_FRAME_SIZE 0.001 +#define ERROR_RATE_BOUND_DOUBLE_FRAME_SIZE 0.0005 #define ERROR_RATE_BOUND ( ERROR_RATE_BOUND_DOUBLE_FRAME_SIZE / 2 ) // definition of the upper jitter buffer error bound, if that one is reached we From 4beeee6fcd33b63b1635ec71622e4bac793ddbac Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Fri, 14 Aug 2020 17:30:54 +0200 Subject: [PATCH 484/936] update translation --- src/res/translation/translation_pt_BR.qm | Bin 108930 -> 109217 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/res/translation/translation_pt_BR.qm b/src/res/translation/translation_pt_BR.qm index 1ab5d4f8c693e347a2ec3337044e1f0e0101ce03..ecd37d37b803f4b7ea824fd781960dc178377d71 100644 GIT binary patch delta 4599 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 C(<2!G From 34e596fe61faa56ef7cbbc224790382993cc2f35 Mon Sep 17 00:00:00 2001 From: Miguel de Matos <11491485+Snayler@users.noreply.github.com> Date: Sat, 15 Aug 2020 22:50:52 +0100 Subject: [PATCH 485/936] Update to pt_PT translation --- src/res/translation/translation_pt_PT.qm | Bin 108810 -> 109097 bytes src/res/translation/translation_pt_PT.ts | 10 +++++----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/res/translation/translation_pt_PT.qm b/src/res/translation/translation_pt_PT.qm index 480a2865a5dc41dc4466081852286467b07f7597..fdff9ede8cb6ff5242a2a44c8cd000275711c730 100644 GIT binary patch delta 4578 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 MUTED (Other people won't hear you) - + MUDO (Outras pessoas não o vão ouvir) @@ -1980,7 +1980,7 @@ Type # for occupied servers - + Escreve # para servidores ocupados @@ -2191,17 +2191,17 @@ Red - Vermelho + Vermelho Yellow - Amarelo + Amarelo Green - Verde + Verde From c301929e21b9b147e0b3a4d08d1637e96aca1159 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 16 Aug 2020 09:16:39 +0200 Subject: [PATCH 486/936] r3_5_10 --- ChangeLog | 18 ++++++++++-------- Jamulus.pro | 2 +- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index cbbcf9e891..9f4447b948 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,16 @@ -3.5.9git <- NOTE: the release version number will be 3.5.10 +3.5.10git <- NOTE: the release version number will be 3.5.11 + +TODO improve multithreading +TODO use command line argument to enable multithreading instead of qmake CONFIG + + + + + +3.5.10 (2020-08-16) - do not change the server list order if the mouse is over the table to avoid selecting an incorrect server on a mouse double click (#293) @@ -30,13 +39,6 @@ - bug fix: --showallservers ping column sort is alphabetic (#201) - -TODO improve multithreading -TODO use command line argument to enable multithreading instead of qmake CONFIG - - - - 3.5.9 (2020-07-19) - new app icon for Jamulus, created by geheimerEichkater (#410) diff --git a/Jamulus.pro b/Jamulus.pro index 9a3b5c762d..c270756644 100755 --- a/Jamulus.pro +++ b/Jamulus.pro @@ -1,4 +1,4 @@ -VERSION = 3.5.9git +VERSION = 3.5.10 # use target name which does not use a captital letter at the beginning contains(CONFIG, "noupcasename") { From 364170670b9b83ea53e6067fe7db75fc6584501a Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 16 Aug 2020 10:12:35 +0200 Subject: [PATCH 487/936] change to git version number --- Jamulus.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jamulus.pro b/Jamulus.pro index c270756644..bf350a6468 100755 --- a/Jamulus.pro +++ b/Jamulus.pro @@ -1,4 +1,4 @@ -VERSION = 3.5.10 +VERSION = 3.5.10git # use target name which does not use a captital letter at the beginning contains(CONFIG, "noupcasename") { From 79e7d0d5d339a444e13ad5732ea12817d1df593f Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 16 Aug 2020 13:00:37 +0200 Subject: [PATCH 488/936] update --- ChangeLog | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ChangeLog b/ChangeLog index 9f4447b948..c0cb5832d9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,8 @@ 3.5.10git <- NOTE: the release version number will be 3.5.11 + +TODO ability to remove servers from a central server you manage #413 TODO improve multithreading TODO use command line argument to enable multithreading instead of qmake CONFIG From 7cf1a407b0db55abdc75962f220d5ef505ea5ce8 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 16 Aug 2020 13:41:57 +0200 Subject: [PATCH 489/936] update --- ChangeLog | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index c0cb5832d9..aee5a108d2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,7 +4,10 @@ 3.5.10git <- NOTE: the release version number will be 3.5.11 +TODO store recorder settings, coded by pljones (#313) + TODO ability to remove servers from a central server you manage #413 + TODO improve multithreading TODO use command line argument to enable multithreading instead of qmake CONFIG @@ -36,7 +39,7 @@ TODO use command line argument to enable multithreading instead of qmake CONFIG - accessibility improvements, coded by chigkim (#499, #510, #514) -- bug fix: added more mutex in the server (should fix #480) +- bug fix: fixed a stability issue in the server (should fix #480) - bug fix: --showallservers ping column sort is alphabetic (#201) From d0f8784fc286613582a07a97115fbe5a176124ba Mon Sep 17 00:00:00 2001 From: Peter L Jones Date: Tue, 11 Aug 2020 18:24:28 +0100 Subject: [PATCH 490/936] Store recording directory --- src/settings.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/settings.cpp b/src/settings.cpp index 1a23331d5c..7ea4ba6daa 100755 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -867,6 +867,12 @@ if ( GetFlagIniSet ( IniXMLDocument, "server", "defcentservaddr", bValue ) ) // window position of the main window vecWindowPosMain = FromBase64ToByteArray ( GetIniSetting ( IniXMLDocument, "server", "winposmain_base64" ) ); + + // base recording directory (command line overwrites setting file) + if ( pServer->GetRecordingDir().isEmpty() ) + { + pServer->SetRecordingDir ( FromBase64ToString ( GetIniSetting ( IniXMLDocument, "server", "recording_dir" ) ) ); + } } void CServerSettings::WriteSettingsToXML ( QDomDocument& IniXMLDocument ) @@ -914,4 +920,8 @@ void CServerSettings::WriteSettingsToXML ( QDomDocument& IniXMLDocument ) // window position of the main window PutIniSetting ( IniXMLDocument, "server", "winposmain_base64", ToBase64 ( vecWindowPosMain ) ); + + // base recording directory + PutIniSetting ( IniXMLDocument, "server", "recording_dir", + ToBase64 ( pServer->GetRecordingDir() ) ); } From a0784626788b11076166bac0c90e79c05af761e6 Mon Sep 17 00:00:00 2001 From: Peter L Jones Date: Tue, 11 Aug 2020 21:42:49 +0100 Subject: [PATCH 491/936] Use explicit _base64 suffix on new setting name --- src/settings.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/settings.cpp b/src/settings.cpp index 7ea4ba6daa..a00b6d349b 100755 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -871,7 +871,7 @@ if ( GetFlagIniSet ( IniXMLDocument, "server", "defcentservaddr", bValue ) ) // base recording directory (command line overwrites setting file) if ( pServer->GetRecordingDir().isEmpty() ) { - pServer->SetRecordingDir ( FromBase64ToString ( GetIniSetting ( IniXMLDocument, "server", "recording_dir" ) ) ); + pServer->SetRecordingDir ( FromBase64ToString ( GetIniSetting ( IniXMLDocument, "server", "recordingdir_base64" ) ) ); } } @@ -922,6 +922,6 @@ void CServerSettings::WriteSettingsToXML ( QDomDocument& IniXMLDocument ) ToBase64 ( vecWindowPosMain ) ); // base recording directory - PutIniSetting ( IniXMLDocument, "server", "recording_dir", + PutIniSetting ( IniXMLDocument, "server", "recordingdir_base64", ToBase64 ( pServer->GetRecordingDir() ) ); } From c8580fc8e3f735070f041fa525154210030a9a12 Mon Sep 17 00:00:00 2001 From: Peter L Jones Date: Tue, 11 Aug 2020 22:33:32 +0100 Subject: [PATCH 492/936] Initial commit for alternate command line overrides approach --- src/main.cpp | 36 +++++++++++++++++++++++++++++++----- src/settings.cpp | 41 +++++++++++++++++++++++++++-------------- src/settings.h | 9 +++++---- 3 files changed, 63 insertions(+), 23 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 8890ae49b3..e859bb5ad9 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -48,9 +48,10 @@ int main ( int argc, char** argv ) { - QTextStream& tsConsole = *( ( new ConsoleWriterFactory() )->get() ); - QString strArgument; - double rDbleArgument; + QTextStream& tsConsole = *( ( new ConsoleWriterFactory() )->get() ); + QString strArgument; + double rDbleArgument; + QList CommandLineOptions; // initialize all flags and string which might be changed by command line // arguments @@ -99,6 +100,7 @@ int main ( int argc, char** argv ) { bIsClient = false; tsConsole << "- server mode chosen" << endl; + CommandLineOptions += "--server"; continue; } @@ -111,6 +113,7 @@ int main ( int argc, char** argv ) { bUseGUI = false; tsConsole << "- no GUI mode chosen" << endl; + CommandLineOptions += "--nogui"; continue; } @@ -124,6 +127,7 @@ int main ( int argc, char** argv ) // right now only the creative commons licence is supported eLicenceType = LT_CREATIVECOMMONS; tsConsole << "- licence required" << endl; + CommandLineOptions += "--licence"; continue; } @@ -136,6 +140,7 @@ int main ( int argc, char** argv ) { bUseDoubleSystemFrameSize = false; // 64 samples frame size tsConsole << "- using " << SYSTEM_FRAME_SIZE_SAMPLES << " samples frame size mode" << endl; + CommandLineOptions += "--fastupdate"; continue; } @@ -156,6 +161,7 @@ int main ( int argc, char** argv ) tsConsole << "- maximum number of channels: " << iNumServerChannels << endl; + CommandLineOptions += "--numchannels"; continue; } @@ -168,6 +174,7 @@ int main ( int argc, char** argv ) { bStartMinimized = true; tsConsole << "- start minimized enabled" << endl; + CommandLineOptions += "--startminimized"; continue; } @@ -180,6 +187,7 @@ int main ( int argc, char** argv ) { bCentServPingServerInList = true; tsConsole << "- ping servers in slave server list" << endl; + CommandLineOptions += "--pingservers"; continue; } @@ -192,6 +200,7 @@ int main ( int argc, char** argv ) { bDisconnectAllClientsOnQuit = true; tsConsole << "- disconnect all clients on quit" << endl; + CommandLineOptions += "--discononquit"; continue; } @@ -204,6 +213,7 @@ int main ( int argc, char** argv ) { bNoAutoJackConnect = true; tsConsole << "- disable auto Jack connections" << endl; + CommandLineOptions += "--nojackconnect"; continue; } @@ -216,6 +226,7 @@ int main ( int argc, char** argv ) { bUseTranslation = false; tsConsole << "- translations disabled" << endl; + CommandLineOptions += "--notranslation"; continue; } @@ -231,6 +242,7 @@ int main ( int argc, char** argv ) { bShowComplRegConnList = true; tsConsole << "- show all registered servers in server list" << endl; + CommandLineOptions += "--showallservers"; continue; } @@ -245,6 +257,7 @@ int main ( int argc, char** argv ) { bShowAnalyzerConsole = true; tsConsole << "- show analyzer console" << endl; + CommandLineOptions += "--showanalyzerconsole"; continue; } @@ -262,6 +275,7 @@ int main ( int argc, char** argv ) { iCtrlMIDIChannel = static_cast ( rDbleArgument ); tsConsole << "- selected controller MIDI channel: " << iCtrlMIDIChannel << endl; + CommandLineOptions += "--ctrlmidich"; continue; } @@ -277,6 +291,7 @@ int main ( int argc, char** argv ) { strLoggingFileName = strArgument; tsConsole << "- logging file name: " << strLoggingFileName << endl; + CommandLineOptions += "--log"; continue; } @@ -295,6 +310,7 @@ int main ( int argc, char** argv ) iPortNumber = static_cast ( rDbleArgument ); bCustomPortNumberGiven = true; tsConsole << "- selected port number: " << iPortNumber << endl; + CommandLineOptions += "--port"; continue; } @@ -310,6 +326,7 @@ int main ( int argc, char** argv ) { strHTMLStatusFileName = strArgument; tsConsole << "- HTML status file name: " << strHTMLStatusFileName << endl; + CommandLineOptions += "--htmlstatus"; continue; } @@ -323,6 +340,7 @@ int main ( int argc, char** argv ) { strServerName = strArgument; tsConsole << "- server name for HTML status file: " << strServerName << endl; + CommandLineOptions += "--servername"; continue; } @@ -338,6 +356,7 @@ int main ( int argc, char** argv ) { strClientName = QString ( APP_NAME ) + " " + strArgument; tsConsole << "- client name: " << strClientName << endl; + CommandLineOptions += "--clientname"; continue; } @@ -353,6 +372,7 @@ int main ( int argc, char** argv ) { strRecordingDirName = strArgument; tsConsole << "- recording directory name: " << strRecordingDirName << endl; + CommandLineOptions += "--recording"; continue; } @@ -368,6 +388,7 @@ int main ( int argc, char** argv ) { strCentralServer = strArgument; tsConsole << "- central server: " << strCentralServer << endl; + CommandLineOptions += "--centralserver"; continue; } @@ -383,6 +404,7 @@ int main ( int argc, char** argv ) { strServerInfo = strArgument; tsConsole << "- server info: " << strServerInfo << endl; + CommandLineOptions += "--serverinfo"; continue; } @@ -398,6 +420,7 @@ int main ( int argc, char** argv ) { strWelcomeMessage = strArgument; tsConsole << "- welcome message: " << strWelcomeMessage << endl; + CommandLineOptions += "--welcomemessage"; continue; } @@ -413,6 +436,7 @@ int main ( int argc, char** argv ) { strIniFileName = strArgument; tsConsole << "- initialization file name: " << strIniFileName << endl; + CommandLineOptions += "--inifile"; continue; } @@ -428,6 +452,7 @@ int main ( int argc, char** argv ) { strConnOnStartupAddress = NetworkUtil::FixAddress ( strArgument ); tsConsole << "- connect on startup to address: " << strConnOnStartupAddress << endl; + CommandLineOptions += "--connect"; continue; } @@ -440,6 +465,7 @@ int main ( int argc, char** argv ) { bMuteStream = true; tsConsole << "- mute stream activated" << endl; + CommandLineOptions += "--mutestream"; continue; } @@ -571,7 +597,7 @@ int main ( int argc, char** argv ) // load settings from init-file CClientSettings Settings ( &Client, strIniFileName ); - Settings.Load(); + Settings.Load ( CommandLineOptions ); // load translation if ( bUseGUI && bUseTranslation ) @@ -630,7 +656,7 @@ int main ( int argc, char** argv ) { // load settings from init-file CServerSettings Settings ( &Server, strIniFileName ); - Settings.Load(); + Settings.Load ( CommandLineOptions ); // load translation if ( bUseGUI && bUseTranslation ) diff --git a/src/settings.cpp b/src/settings.cpp index a00b6d349b..9b17edb417 100755 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -26,7 +26,7 @@ /* Implementation *************************************************************/ -void CSettings::Load() +void CSettings::Load ( const QList CommandLineOptions ) { // prepare file name for loading initialization data from XML file and read // data from file if possible @@ -34,7 +34,7 @@ void CSettings::Load() ReadFromFile ( strFileName, IniXMLDocument ); // read the settings from the given XML file - ReadSettingsFromXML ( IniXMLDocument ); + ReadSettingsFromXML ( IniXMLDocument, CommandLineOptions ); } void CSettings::Save() @@ -248,7 +248,8 @@ void CClientSettings::SaveFaderSettings ( const QString& strCurFileName ) WriteToFile ( strCurFileName, IniXMLDocument ); } -void CClientSettings::ReadSettingsFromXML ( const QDomDocument& IniXMLDocument ) +void CClientSettings::ReadSettingsFromXML ( const QDomDocument& IniXMLDocument, + const QList ) { int iIdx; int iValue; @@ -780,7 +781,8 @@ void CClientSettings::WriteFaderSettingsToXML ( QDomDocument& IniXMLDocument ) // Server settings ------------------------------------------------------------- -void CServerSettings::ReadSettingsFromXML ( const QDomDocument& IniXMLDocument ) +void CServerSettings::ReadSettingsFromXML ( const QDomDocument& IniXMLDocument, + const QList CommandLineOptions ) { int iValue; bool bValue; @@ -808,10 +810,13 @@ if ( GetFlagIniSet ( IniXMLDocument, "server", "defcentservaddr", bValue ) ) } } - // central server address (to be set after the "use default central - // server address) - pServer->SetServerListCentralServerAddress ( - GetIniSetting ( IniXMLDocument, "server", "centralservaddr" ) ); + if ( !CommandLineOptions.contains( "--centralserver" )) + { + // central server address (to be set after the "use default central + // server address) + pServer->SetServerListCentralServerAddress ( + GetIniSetting ( IniXMLDocument, "server", "centralservaddr" ) ); + } // server list enabled flag if ( GetFlagIniSet ( IniXMLDocument, "server", "servlistenabled", bValue ) ) @@ -826,7 +831,8 @@ if ( GetFlagIniSet ( IniXMLDocument, "server", "defcentservaddr", bValue ) ) // name/city/country (command line overwrites setting file, note that // name/city/country are set by one single command line argument so we // can treat them combined here and it is sufficient to just check the name) - if ( pServer->GetServerName().isEmpty() ) + //if ( pServer->GetServerName().isEmpty() ) + if ( !CommandLineOptions.contains( "--serverinfo" )) { // name pServer->SetServerName ( GetIniSetting ( IniXMLDocument, "server", "name" ) ); @@ -843,13 +849,18 @@ if ( GetFlagIniSet ( IniXMLDocument, "server", "defcentservaddr", bValue ) ) } // start minimized on OS start - if ( GetFlagIniSet ( IniXMLDocument, "server", "autostartmin", bValue ) ) + if ( !CommandLineOptions.contains( "--startminimized" ) ) { - pServer->SetAutoRunMinimized ( bValue ); + if ( GetFlagIniSet ( IniXMLDocument, "server", "autostartmin", bValue ) ) + { + pServer->SetAutoRunMinimized ( bValue ); + } } // licence type (command line overwrites setting file) - if ( pServer->GetLicenceType() == LT_NO_LICENCE ) + //if ( pServer->GetLicenceType() == LT_NO_LICENCE ) + // TODO: command line needs to become boolean, at least... + if ( !CommandLineOptions.contains( "--licence" ) ) { if ( GetNumericIniSet ( IniXMLDocument, "server", "licencetype", 0, 1 /* LT_CREATIVECOMMONS */, iValue ) ) @@ -859,7 +870,8 @@ if ( GetFlagIniSet ( IniXMLDocument, "server", "defcentservaddr", bValue ) ) } // welcome message (command line overwrites setting file) - if ( pServer->GetWelcomeMessage().isEmpty() ) + //if ( pServer->GetWelcomeMessage().isEmpty() ) + if ( !CommandLineOptions.contains( "--welcomemessage" ) ) { pServer->SetWelcomeMessage ( FromBase64ToString ( GetIniSetting ( IniXMLDocument, "server", "welcome" ) ) ); } @@ -869,7 +881,8 @@ if ( GetFlagIniSet ( IniXMLDocument, "server", "defcentservaddr", bValue ) ) GetIniSetting ( IniXMLDocument, "server", "winposmain_base64" ) ); // base recording directory (command line overwrites setting file) - if ( pServer->GetRecordingDir().isEmpty() ) + //if ( pServer->GetRecordingDir().isEmpty() ) + if ( !CommandLineOptions.contains( "--recording" ) ) { pServer->SetRecordingDir ( FromBase64ToString ( GetIniSetting ( IniXMLDocument, "server", "recordingdir_base64" ) ) ); } diff --git a/src/settings.h b/src/settings.h index d3bd13914d..752f3a649b 100755 --- a/src/settings.h +++ b/src/settings.h @@ -44,7 +44,7 @@ class CSettings strLanguage ( "" ), strFileName ( "" ) {} - void Load(); + void Load ( const QList CommandLineOptions ); void Save(); // common settings @@ -52,7 +52,7 @@ class CSettings QString strLanguage; protected: - virtual void ReadSettingsFromXML ( const QDomDocument& IniXMLDocument ) = 0; + virtual void ReadSettingsFromXML ( const QDomDocument& IniXMLDocument, const QList CommandLineOptions ) = 0; virtual void WriteSettingsToXML ( QDomDocument& IniXMLDocument ) = 0; void ReadFromFile ( const QString& strCurFileName, @@ -170,7 +170,8 @@ class CClientSettings : public CSettings bool bWindowWasShownConnect; protected: - virtual void ReadSettingsFromXML ( const QDomDocument& IniXMLDocument ) override; + // No CommandLineOptions used when reading Client inifile + virtual void ReadSettingsFromXML (const QDomDocument& IniXMLDocument, const QList ) override; virtual void WriteSettingsToXML ( QDomDocument& IniXMLDocument ) override; void ReadFaderSettingsFromXML ( const QDomDocument& IniXMLDocument ); @@ -189,7 +190,7 @@ class CServerSettings : public CSettings { SetFileName ( sNFiName, DEFAULT_INI_FILE_NAME_SERVER); } protected: - virtual void ReadSettingsFromXML ( const QDomDocument& IniXMLDocument ) override; + virtual void ReadSettingsFromXML ( const QDomDocument& IniXMLDocument, const QList CommandLineOptions ) override; virtual void WriteSettingsToXML ( QDomDocument& IniXMLDocument ) override; CServer* pServer; From 9d75e479245b9338f7843b0cf80a6d74e8f20ac7 Mon Sep 17 00:00:00 2001 From: Peter L Jones Date: Sun, 16 Aug 2020 18:39:57 +0100 Subject: [PATCH 493/936] Amend append --- src/main.cpp | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index e859bb5ad9..02b226758d 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -100,7 +100,7 @@ int main ( int argc, char** argv ) { bIsClient = false; tsConsole << "- server mode chosen" << endl; - CommandLineOptions += "--server"; + CommandLineOptions << "--server"; continue; } @@ -113,7 +113,7 @@ int main ( int argc, char** argv ) { bUseGUI = false; tsConsole << "- no GUI mode chosen" << endl; - CommandLineOptions += "--nogui"; + CommandLineOptions << "--nogui"; continue; } @@ -127,7 +127,7 @@ int main ( int argc, char** argv ) // right now only the creative commons licence is supported eLicenceType = LT_CREATIVECOMMONS; tsConsole << "- licence required" << endl; - CommandLineOptions += "--licence"; + CommandLineOptions << "--licence"; continue; } @@ -140,7 +140,7 @@ int main ( int argc, char** argv ) { bUseDoubleSystemFrameSize = false; // 64 samples frame size tsConsole << "- using " << SYSTEM_FRAME_SIZE_SAMPLES << " samples frame size mode" << endl; - CommandLineOptions += "--fastupdate"; + CommandLineOptions << "--fastupdate"; continue; } @@ -161,7 +161,7 @@ int main ( int argc, char** argv ) tsConsole << "- maximum number of channels: " << iNumServerChannels << endl; - CommandLineOptions += "--numchannels"; + CommandLineOptions << "--numchannels"; continue; } @@ -174,7 +174,7 @@ int main ( int argc, char** argv ) { bStartMinimized = true; tsConsole << "- start minimized enabled" << endl; - CommandLineOptions += "--startminimized"; + CommandLineOptions << "--startminimized"; continue; } @@ -187,7 +187,7 @@ int main ( int argc, char** argv ) { bCentServPingServerInList = true; tsConsole << "- ping servers in slave server list" << endl; - CommandLineOptions += "--pingservers"; + CommandLineOptions << "--pingservers"; continue; } @@ -200,7 +200,7 @@ int main ( int argc, char** argv ) { bDisconnectAllClientsOnQuit = true; tsConsole << "- disconnect all clients on quit" << endl; - CommandLineOptions += "--discononquit"; + CommandLineOptions << "--discononquit"; continue; } @@ -213,7 +213,7 @@ int main ( int argc, char** argv ) { bNoAutoJackConnect = true; tsConsole << "- disable auto Jack connections" << endl; - CommandLineOptions += "--nojackconnect"; + CommandLineOptions << "--nojackconnect"; continue; } @@ -226,7 +226,7 @@ int main ( int argc, char** argv ) { bUseTranslation = false; tsConsole << "- translations disabled" << endl; - CommandLineOptions += "--notranslation"; + CommandLineOptions << "--notranslation"; continue; } @@ -242,7 +242,7 @@ int main ( int argc, char** argv ) { bShowComplRegConnList = true; tsConsole << "- show all registered servers in server list" << endl; - CommandLineOptions += "--showallservers"; + CommandLineOptions << "--showallservers"; continue; } @@ -257,7 +257,7 @@ int main ( int argc, char** argv ) { bShowAnalyzerConsole = true; tsConsole << "- show analyzer console" << endl; - CommandLineOptions += "--showanalyzerconsole"; + CommandLineOptions << "--showanalyzerconsole"; continue; } @@ -275,7 +275,7 @@ int main ( int argc, char** argv ) { iCtrlMIDIChannel = static_cast ( rDbleArgument ); tsConsole << "- selected controller MIDI channel: " << iCtrlMIDIChannel << endl; - CommandLineOptions += "--ctrlmidich"; + CommandLineOptions << "--ctrlmidich"; continue; } @@ -291,7 +291,7 @@ int main ( int argc, char** argv ) { strLoggingFileName = strArgument; tsConsole << "- logging file name: " << strLoggingFileName << endl; - CommandLineOptions += "--log"; + CommandLineOptions << "--log"; continue; } @@ -310,7 +310,7 @@ int main ( int argc, char** argv ) iPortNumber = static_cast ( rDbleArgument ); bCustomPortNumberGiven = true; tsConsole << "- selected port number: " << iPortNumber << endl; - CommandLineOptions += "--port"; + CommandLineOptions << "--port"; continue; } @@ -326,7 +326,7 @@ int main ( int argc, char** argv ) { strHTMLStatusFileName = strArgument; tsConsole << "- HTML status file name: " << strHTMLStatusFileName << endl; - CommandLineOptions += "--htmlstatus"; + CommandLineOptions << "--htmlstatus"; continue; } @@ -340,7 +340,7 @@ int main ( int argc, char** argv ) { strServerName = strArgument; tsConsole << "- server name for HTML status file: " << strServerName << endl; - CommandLineOptions += "--servername"; + CommandLineOptions << "--servername"; continue; } @@ -356,7 +356,7 @@ int main ( int argc, char** argv ) { strClientName = QString ( APP_NAME ) + " " + strArgument; tsConsole << "- client name: " << strClientName << endl; - CommandLineOptions += "--clientname"; + CommandLineOptions << "--clientname"; continue; } @@ -372,7 +372,7 @@ int main ( int argc, char** argv ) { strRecordingDirName = strArgument; tsConsole << "- recording directory name: " << strRecordingDirName << endl; - CommandLineOptions += "--recording"; + CommandLineOptions << "--recording"; continue; } @@ -388,7 +388,7 @@ int main ( int argc, char** argv ) { strCentralServer = strArgument; tsConsole << "- central server: " << strCentralServer << endl; - CommandLineOptions += "--centralserver"; + CommandLineOptions << "--centralserver"; continue; } @@ -404,7 +404,7 @@ int main ( int argc, char** argv ) { strServerInfo = strArgument; tsConsole << "- server info: " << strServerInfo << endl; - CommandLineOptions += "--serverinfo"; + CommandLineOptions << "--serverinfo"; continue; } @@ -420,7 +420,7 @@ int main ( int argc, char** argv ) { strWelcomeMessage = strArgument; tsConsole << "- welcome message: " << strWelcomeMessage << endl; - CommandLineOptions += "--welcomemessage"; + CommandLineOptions << "--welcomemessage"; continue; } @@ -436,7 +436,7 @@ int main ( int argc, char** argv ) { strIniFileName = strArgument; tsConsole << "- initialization file name: " << strIniFileName << endl; - CommandLineOptions += "--inifile"; + CommandLineOptions << "--inifile"; continue; } @@ -452,7 +452,7 @@ int main ( int argc, char** argv ) { strConnOnStartupAddress = NetworkUtil::FixAddress ( strArgument ); tsConsole << "- connect on startup to address: " << strConnOnStartupAddress << endl; - CommandLineOptions += "--connect"; + CommandLineOptions << "--connect"; continue; } @@ -465,7 +465,7 @@ int main ( int argc, char** argv ) { bMuteStream = true; tsConsole << "- mute stream activated" << endl; - CommandLineOptions += "--mutestream"; + CommandLineOptions << "--mutestream"; continue; } From 428cc839e48ba58d30c2eafcd09b720a3b53c203 Mon Sep 17 00:00:00 2001 From: Peter L Jones Date: Sun, 16 Aug 2020 18:40:35 +0100 Subject: [PATCH 494/936] Move override comment --- src/main.cpp | 4 ++-- src/settings.cpp | 11 +++-------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 02b226758d..f095da1ef8 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -595,7 +595,7 @@ int main ( int argc, char** argv ) bNoAutoJackConnect, strClientName ); - // load settings from init-file + // load settings from init-file (command line options override) CClientSettings Settings ( &Client, strIniFileName ); Settings.Load ( CommandLineOptions ); @@ -654,7 +654,7 @@ int main ( int argc, char** argv ) #ifndef HEADLESS if ( bUseGUI ) { - // load settings from init-file + // load settings from init-file (command line options override) CServerSettings Settings ( &Server, strIniFileName ); Settings.Load ( CommandLineOptions ); diff --git a/src/settings.cpp b/src/settings.cpp index 9b17edb417..183e5e9f33 100755 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -828,10 +828,7 @@ if ( GetFlagIniSet ( IniXMLDocument, "server", "defcentservaddr", bValue ) ) strLanguage = GetIniSetting ( IniXMLDocument, "server", "language", CLocale::FindSysLangTransFileName ( CLocale::GetAvailableTranslations() ).first ); - // name/city/country (command line overwrites setting file, note that - // name/city/country are set by one single command line argument so we - // can treat them combined here and it is sufficient to just check the name) - //if ( pServer->GetServerName().isEmpty() ) + // name/city/country if ( !CommandLineOptions.contains( "--serverinfo" )) { // name @@ -869,8 +866,7 @@ if ( GetFlagIniSet ( IniXMLDocument, "server", "defcentservaddr", bValue ) ) } } - // welcome message (command line overwrites setting file) - //if ( pServer->GetWelcomeMessage().isEmpty() ) + // welcome message if ( !CommandLineOptions.contains( "--welcomemessage" ) ) { pServer->SetWelcomeMessage ( FromBase64ToString ( GetIniSetting ( IniXMLDocument, "server", "welcome" ) ) ); @@ -880,8 +876,7 @@ if ( GetFlagIniSet ( IniXMLDocument, "server", "defcentservaddr", bValue ) ) vecWindowPosMain = FromBase64ToByteArray ( GetIniSetting ( IniXMLDocument, "server", "winposmain_base64" ) ); - // base recording directory (command line overwrites setting file) - //if ( pServer->GetRecordingDir().isEmpty() ) + // base recording directory if ( !CommandLineOptions.contains( "--recording" ) ) { pServer->SetRecordingDir ( FromBase64ToString ( GetIniSetting ( IniXMLDocument, "server", "recordingdir_base64" ) ) ); From bdd225f0d2a66bb98743cb7c41daf2d500283d87 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 17 Aug 2020 17:43:59 +0200 Subject: [PATCH 495/936] update --- ChangeLog | 2 ++ tools/jamulus-docker | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index aee5a108d2..420fe23ee4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -8,6 +8,8 @@ TODO store recorder settings, coded by pljones (#313) TODO ability to remove servers from a central server you manage #413 +TODO fix Alt+h issue (see https://sourceforge.net/p/llcon/discussion/software/thread/1856e44ffd/?limit=25#74bb/5686) -> Alt+c + TODO improve multithreading TODO use command line argument to enable multithreading instead of qmake CONFIG diff --git a/tools/jamulus-docker b/tools/jamulus-docker index 4d803fab62..d4eeccf561 160000 --- a/tools/jamulus-docker +++ b/tools/jamulus-docker @@ -1 +1 @@ -Subproject commit 4d803fab62d0a01eea69796c46f1c96ffda0e284 +Subproject commit d4eeccf5611eb36adec32c770bf3c4756ee226f8 From cf63bbef940a193dfb9731e56fcfbf9789064b87 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 17 Aug 2020 20:57:45 +0200 Subject: [PATCH 496/936] merge fixes --- ChangeLog | 2 +- src/settings.cpp | 16 +++++++--------- src/settings.h | 17 ++++++++++------- 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/ChangeLog b/ChangeLog index 420fe23ee4..42b7b84a50 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,8 +3,8 @@ 3.5.10git <- NOTE: the release version number will be 3.5.11 +- store recorder settings, coded by pljones (#313) -TODO store recorder settings, coded by pljones (#313) TODO ability to remove servers from a central server you manage #413 diff --git a/src/settings.cpp b/src/settings.cpp index 183e5e9f33..818258a47b 100755 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -810,7 +810,7 @@ if ( GetFlagIniSet ( IniXMLDocument, "server", "defcentservaddr", bValue ) ) } } - if ( !CommandLineOptions.contains( "--centralserver" )) + if ( !CommandLineOptions.contains ( "--centralserver" ) ) { // central server address (to be set after the "use default central // server address) @@ -829,7 +829,7 @@ if ( GetFlagIniSet ( IniXMLDocument, "server", "defcentservaddr", bValue ) ) CLocale::FindSysLangTransFileName ( CLocale::GetAvailableTranslations() ).first ); // name/city/country - if ( !CommandLineOptions.contains( "--serverinfo" )) + if ( !CommandLineOptions.contains ( "--serverinfo" ) ) { // name pServer->SetServerName ( GetIniSetting ( IniXMLDocument, "server", "name" ) ); @@ -846,7 +846,7 @@ if ( GetFlagIniSet ( IniXMLDocument, "server", "defcentservaddr", bValue ) ) } // start minimized on OS start - if ( !CommandLineOptions.contains( "--startminimized" ) ) + if ( !CommandLineOptions.contains ( "--startminimized" ) ) { if ( GetFlagIniSet ( IniXMLDocument, "server", "autostartmin", bValue ) ) { @@ -854,10 +854,8 @@ if ( GetFlagIniSet ( IniXMLDocument, "server", "defcentservaddr", bValue ) ) } } - // licence type (command line overwrites setting file) - //if ( pServer->GetLicenceType() == LT_NO_LICENCE ) - // TODO: command line needs to become boolean, at least... - if ( !CommandLineOptions.contains( "--licence" ) ) + // licence type + if ( !CommandLineOptions.contains ( "--licence" ) ) { if ( GetNumericIniSet ( IniXMLDocument, "server", "licencetype", 0, 1 /* LT_CREATIVECOMMONS */, iValue ) ) @@ -867,7 +865,7 @@ if ( GetFlagIniSet ( IniXMLDocument, "server", "defcentservaddr", bValue ) ) } // welcome message - if ( !CommandLineOptions.contains( "--welcomemessage" ) ) + if ( !CommandLineOptions.contains ( "--welcomemessage" ) ) { pServer->SetWelcomeMessage ( FromBase64ToString ( GetIniSetting ( IniXMLDocument, "server", "welcome" ) ) ); } @@ -877,7 +875,7 @@ if ( GetFlagIniSet ( IniXMLDocument, "server", "defcentservaddr", bValue ) ) GetIniSetting ( IniXMLDocument, "server", "winposmain_base64" ) ); // base recording directory - if ( !CommandLineOptions.contains( "--recording" ) ) + if ( !CommandLineOptions.contains ( "--recording" ) ) { pServer->SetRecordingDir ( FromBase64ToString ( GetIniSetting ( IniXMLDocument, "server", "recordingdir_base64" ) ) ); } diff --git a/src/settings.h b/src/settings.h index 752f3a649b..455de2d46a 100755 --- a/src/settings.h +++ b/src/settings.h @@ -52,8 +52,9 @@ class CSettings QString strLanguage; protected: - virtual void ReadSettingsFromXML ( const QDomDocument& IniXMLDocument, const QList CommandLineOptions ) = 0; - virtual void WriteSettingsToXML ( QDomDocument& IniXMLDocument ) = 0; + virtual void WriteSettingsToXML ( QDomDocument& IniXMLDocument ) = 0; + virtual void ReadSettingsFromXML ( const QDomDocument& IniXMLDocument, + const QList CommandLineOptions ) = 0; void ReadFromFile ( const QString& strCurFileName, QDomDocument& XMLDocument ); @@ -171,11 +172,12 @@ class CClientSettings : public CSettings protected: // No CommandLineOptions used when reading Client inifile - virtual void ReadSettingsFromXML (const QDomDocument& IniXMLDocument, const QList ) override; - virtual void WriteSettingsToXML ( QDomDocument& IniXMLDocument ) override; + virtual void WriteSettingsToXML ( QDomDocument& IniXMLDocument ) override; + virtual void ReadSettingsFromXML ( const QDomDocument& IniXMLDocument, + const QList ) override; void ReadFaderSettingsFromXML ( const QDomDocument& IniXMLDocument ); - void WriteFaderSettingsToXML ( QDomDocument& IniXMLDocument ); + void WriteFaderSettingsToXML ( QDomDocument& IniXMLDocument ); CClient* pClient; }; @@ -190,8 +192,9 @@ class CServerSettings : public CSettings { SetFileName ( sNFiName, DEFAULT_INI_FILE_NAME_SERVER); } protected: - virtual void ReadSettingsFromXML ( const QDomDocument& IniXMLDocument, const QList CommandLineOptions ) override; - virtual void WriteSettingsToXML ( QDomDocument& IniXMLDocument ) override; + virtual void WriteSettingsToXML ( QDomDocument& IniXMLDocument ) override; + virtual void ReadSettingsFromXML ( const QDomDocument& IniXMLDocument, + const QList CommandLineOptions ) override; CServer* pServer; }; From 58ec3877a6864a5da2e6760c3c3eb618a8253633 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 20 Aug 2020 10:39:54 +0200 Subject: [PATCH 497/936] merge fixes --- ChangeLog | 5 +++- src/audiomixerboard.cpp | 58 +++++++++++++++++++++++------------------ 2 files changed, 36 insertions(+), 27 deletions(-) diff --git a/ChangeLog b/ChangeLog index 42b7b84a50..91c5420854 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,12 +5,15 @@ - store recorder settings, coded by pljones (#313) +- accessibility improvements, coded by chigkim (#512) + + TODO ability to remove servers from a central server you manage #413 TODO fix Alt+h issue (see https://sourceforge.net/p/llcon/discussion/software/thread/1856e44ffd/?limit=25#74bb/5686) -> Alt+c -TODO improve multithreading +TODO improve multithreading -> merge branch into master TODO use command line argument to enable multithreading instead of qmake CONFIG diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 66eedeaef0..dc1fb3a3a4 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -703,27 +703,28 @@ void CChannelFader::SetChannelInfos ( const CChannelInfo& cChanInfo ) // Tool tip ---------------------------------------------------------------- // complete musician profile in the tool tip - QString strToolTip = ""; + QString strToolTip = ""; + QString strAliasAccessible = ""; + QString strInstrumentAccessible = ""; + QString strLocationAccessible = ""; // alias/name - QString accessibleAlias = ""; if ( !cChanInfo.strName.isEmpty() ) { - strToolTip += "

" + tr ( "Alias/Name" ) + "

" + cChanInfo.strName; - accessibleAlias += cChanInfo.strName; + strToolTip += "

" + tr ( "Alias/Name" ) + "

" + cChanInfo.strName; + strAliasAccessible += cChanInfo.strName; } // instrument - QString accessibleInstrument = ""; if ( !CInstPictures::IsNotUsedInstrument ( iTTInstrument ) ) { strToolTip += "

" + tr ( "Instrument" ) + "

" + CInstPictures::GetName ( iTTInstrument ); - accessibleInstrument += CInstPictures::GetName ( iTTInstrument ); + + strInstrumentAccessible += CInstPictures::GetName ( iTTInstrument ); } // location - QString accessibleLocation = ""; if ( ( eTTCountry != QLocale::AnyCountry ) || ( !cChanInfo.strCity.isEmpty() ) ) { @@ -731,39 +732,44 @@ void CChannelFader::SetChannelInfos ( const CChannelInfo& cChanInfo ) if ( !cChanInfo.strCity.isEmpty() ) { - strToolTip += cChanInfo.strCity; - accessibleLocation += cChanInfo.strCity; + strToolTip += cChanInfo.strCity; + strLocationAccessible += cChanInfo.strCity; if ( eTTCountry != QLocale::AnyCountry ) { - strToolTip += ", "; - accessibleLocation += ", "; + strToolTip += ", "; + strLocationAccessible += ", "; } } if ( eTTCountry != QLocale::AnyCountry ) { - strToolTip += QLocale::countryToString ( eTTCountry ); - accessibleLocation += QLocale::countryToString ( eTTCountry ); + strToolTip += QLocale::countryToString ( eTTCountry ); + strLocationAccessible += QLocale::countryToString ( eTTCountry ); } } // skill level + QString strSkillLevel; + switch ( cChanInfo.eSkillLevel ) { case SL_BEGINNER: - strToolTip += "

" + tr ( "Skill Level" ) + "

" + tr ( "Beginner" ); - accessibleInstrument += ", Beginner"; + strSkillLevel = tr ( "Beginner" ); + strToolTip += "

" + tr ( "Skill Level" ) + "

" + strSkillLevel; + strInstrumentAccessible += ", " + strSkillLevel; break; case SL_INTERMEDIATE: - strToolTip += "

" + tr ( "Skill Level" ) + "

" + tr ( "Intermediate" ); - accessibleInstrument += ", Intermediate"; + strSkillLevel = tr ( "Intermediate" ); + strToolTip += "

" + tr ( "Skill Level" ) + "

" + strSkillLevel; + strInstrumentAccessible += ", " + strSkillLevel; break; case SL_PROFESSIONAL: - strToolTip += "

" + tr ( "Skill Level" ) + "

" + tr ( "Expert" ); - accessibleInstrument += ", Expert"; + strSkillLevel = tr ( "Expert" ); + strToolTip += "

" + tr ( "Skill Level" ) + "

" + strSkillLevel; + strInstrumentAccessible += ", " + strSkillLevel; break; case SL_NOT_SET: @@ -777,13 +783,13 @@ void CChannelFader::SetChannelInfos ( const CChannelInfo& cChanInfo ) strToolTip.prepend ( "

" + tr ( "Musician Profile" ) + "

" ); } - plblCountryFlag->setToolTip ( strToolTip ); - plblCountryFlag->setAccessibleDescription(accessibleLocation); - plblInstrument->setToolTip ( strToolTip ); -plblInstrument->setAccessibleDescription ( accessibleInstrument ); - plblLabel->setToolTip ( strToolTip ); - plblLabel->setAccessibleName(accessibleAlias); - plblLabel->setAccessibleDescription("Alias"); + plblCountryFlag->setToolTip ( strToolTip ); + plblCountryFlag->setAccessibleDescription ( strLocationAccessible ); + plblInstrument->setToolTip ( strToolTip ); + plblInstrument->setAccessibleDescription ( strInstrumentAccessible ); + plblLabel->setToolTip ( strToolTip ); + plblLabel->setAccessibleName ( strAliasAccessible ); + plblLabel->setAccessibleDescription ( tr ( "Alias" ) ); } From 40935d9df7a98e6da9024056dbfcdb16aa889fb5 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 20 Aug 2020 10:46:19 +0200 Subject: [PATCH 498/936] merge fixes --- ChangeLog | 2 +- src/audiomixerboard.cpp | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 91c5420854..2118489d7a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,7 +5,7 @@ - store recorder settings, coded by pljones (#313) -- accessibility improvements, coded by chigkim (#512) +- accessibility improvements, coded by chigkim (#511, #512) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index 74493a07ff..eb1a2c34d8 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -376,10 +376,10 @@ void CChannelFader::Reset() plbrChannelLevel->ClipReset(); // clear instrument picture, country flag, tool tips and label text - plblLabel->setText ( "" ); - plblLabel->setToolTip ( "" ); - plblInstrument->setVisible ( false ); - plblInstrument->setToolTip ( "" ); + plblLabel->setText ( "" ); + plblLabel->setToolTip ( "" ); + plblInstrument->setVisible ( false ); + plblInstrument->setToolTip ( "" ); plblCountryFlag->setVisible ( false ); plblCountryFlag->setToolTip ( "" ); cReceivedChanInfo = CChannelInfo(); @@ -432,7 +432,7 @@ void CChannelFader::SetPanValue ( const int iPan ) // we set the new fader level in the GUI (slider control) which then // emits to signal to tell the server about the change (implicitly) pPan->setValue ( iPan ); - pPan->setAccessibleName( QString::number( iPan ) ); + pPan->setAccessibleName ( QString::number ( iPan ) ); } } @@ -493,7 +493,7 @@ void CChannelFader::SendPanValueToServer ( const int iPan ) void CChannelFader::OnPanValueChanged ( int value ) { - pPan->setAccessibleName( QString::number(value) ); + pPan->setAccessibleName ( QString::number ( value ) ); SendPanValueToServer ( value ); } From 1fa0ff6f2c92e882104311f73ff724cef23835fe Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 20 Aug 2020 14:02:16 +0200 Subject: [PATCH 499/936] added an optional server list whitelist filter (#413) --- ChangeLog | 4 +++- src/main.cpp | 20 ++++++++++++++++++++ src/server.cpp | 2 ++ src/server.h | 1 + src/serverlist.cpp | 31 +++++++++++++++++++++++++++++++ src/serverlist.h | 3 +++ 6 files changed, 60 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 2118489d7a..846f421b10 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,9 +3,11 @@ 3.5.10git <- NOTE: the release version number will be 3.5.11 +- added an optional server list whitelist filter (#413) + - store recorder settings, coded by pljones (#313) -- accessibility improvements, coded by chigkim (#511, #512) +- accessibility improvements, coded by chigkim (#498, #512) diff --git a/src/main.cpp b/src/main.cpp index f095da1ef8..e81e2cfbb0 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -84,6 +84,7 @@ int main ( int argc, char** argv ) QString strRecordingDirName = ""; QString strCentralServer = ""; QString strServerInfo = ""; + QString strServerListFilter = ""; QString strWelcomeMessage = ""; QString strClientName = APP_NAME; @@ -409,6 +410,22 @@ int main ( int argc, char** argv ) } + // Server list filter -------------------------------------------------- + if ( GetStringArgument ( tsConsole, + argc, + argv, + i, + "-f", + "--listfilter", + strArgument ) ) + { + strServerListFilter = strArgument; + tsConsole << "- server list filter: " << strServerListFilter << endl; + CommandLineOptions << "--listfilter"; + continue; + } + + // Server welcome message ---------------------------------------------- if ( GetStringArgument ( tsConsole, argc, @@ -644,6 +661,7 @@ int main ( int argc, char** argv ) strServerName, strCentralServer, strServerInfo, + strServerListFilter, strWelcomeMessage, strRecordingDirName, bCentServPingServerInList, @@ -742,6 +760,8 @@ QString UsageArguments ( char **argv ) " -a, --servername server name, required for HTML status\n" " -d, --discononquit disconnect all clients on quit\n" " -e, --centralserver address of the central server\n" + " -f, --listfilter server list whitelist filter in the format:\n" + " [IP address 1];[IP address 2];[IP address 3]; ..." " -F, --fastupdate use 64 samples frame size mode\n" " -g, --pingservers ping servers in list to keep NAT port open\n" " (central server only)\n" diff --git a/src/server.cpp b/src/server.cpp index 9ff179a500..20001f724d 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -226,6 +226,7 @@ CServer::CServer ( const int iNewMaxNumChan, const QString& strServerNameForHTMLStatusFile, const QString& strCentralServer, const QString& strServerInfo, + const QString& strServerListFilter, const QString& strNewWelcomeMessage, const QString& strRecordingDirName, const bool bNCentServPingServerInList, @@ -242,6 +243,7 @@ CServer::CServer ( const int iNewMaxNumChan, ServerListManager ( iPortNumber, strCentralServer, strServerInfo, + strServerListFilter, iNewMaxNumChan, bNCentServPingServerInList, &ConnLessProtocol ), diff --git a/src/server.h b/src/server.h index 6b47423811..80cff077ef 100755 --- a/src/server.h +++ b/src/server.h @@ -178,6 +178,7 @@ class CServer : const QString& strServerNameForHTMLStatusFile, const QString& strCentralServer, const QString& strServerInfo, + const QString& strServerListFilter, const QString& strNewWelcomeMessage, const QString& strRecordingDirName, const bool bNCentServPingServerInList, diff --git a/src/serverlist.cpp b/src/serverlist.cpp index e215835c2e..74c1b37fc7 100755 --- a/src/serverlist.cpp +++ b/src/serverlist.cpp @@ -28,6 +28,7 @@ CServerListManager::CServerListManager ( const quint16 iNPortNum, const QString& sNCentServAddr, const QString& strServerInfo, + const QString& strServerListFilter, const int iNumChannels, const bool bNCentServPingServerInList, CProtocol* pNConLProt ) @@ -158,6 +159,23 @@ CServerListManager::CServerListManager ( const quint16 iNPortNum, iNumPredefinedServers++; } + // whitelist parsing + if ( !strServerListFilter.isEmpty() ) + { + // split the different parameter strings + QStringList slWhitelistAddresses = strServerListFilter.split ( ";" ); + QHostAddress CurWhiteListAddress; + + for ( int iIdx = 0; iIdx < slWhitelistAddresses.size(); iIdx++ ) + { + if ( CurWhiteListAddress.setAddress ( slWhitelistAddresses.at ( iIdx ) ) ) + { + vWhiteList << CurWhiteListAddress; + tsConsoleStream << "Whitelist entry added: " << CurWhiteListAddress.toString() << endl; + } + } + } + // for slave servers start the one shot timer for determining if it is a // permanent server if ( !GetIsCentralServer() ) @@ -360,6 +378,18 @@ void CServerListManager::CentralServerRegisterServer ( const CHostAddress& In << InetAddr.toString() << " (" << LInetAddr.toString() << ")" << ": " << ServerInfo.strName << endl; + // check for whitelist (it is enabled if it is not empty per definition) + if ( !vWhiteList.empty() ) + { + // if the server is not listed, refuse registration and send registration response + if ( !vWhiteList.contains ( InetAddr.InetAddr ) ) + { + pConnLessProtocol->CreateCLRegisterServerResp ( InetAddr, SRR_NOT_FULFILL_REQIREMENTS ); + return; // leave function early, i.e., we do not register this server + } + } + + // access/modifications to the server list needs to be mutexed QMutexLocker locker ( &Mutex ); const int iCurServerListSize = ServerList.size(); @@ -368,6 +398,7 @@ void CServerListManager::CentralServerRegisterServer ( const CHostAddress& In // The very first list entry must not be checked since // this is per definition the central server (i.e., this server) int iSelIdx = INVALID_INDEX; // initialize with an illegal value + for ( int iIdx = 1; iIdx < iCurServerListSize; iIdx++ ) { if ( ServerList[iIdx].HostAddr == InetAddr ) diff --git a/src/serverlist.h b/src/serverlist.h index e2f0ff8563..3e099aa32f 100755 --- a/src/serverlist.h +++ b/src/serverlist.h @@ -124,6 +124,7 @@ class CServerListManager : public QObject CServerListManager ( const quint16 iNPortNum, const QString& sNCentServAddr, const QString& strServerInfo, + const QString& strServerListFilter, const int iNumChannels, const bool bNCentServPingServerInList, CProtocol* pNConLProt ); @@ -206,6 +207,8 @@ class CServerListManager : public QObject CHostAddress SlaveCurCentServerHostAddress; CHostAddress SlaveCurLocalHostAddress; + QList vWhiteList; + CProtocol* pConnLessProtocol; // server registration status From 1f3dd8c9b824a059fc5196e35648cfb3cbdbdf1b Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 20 Aug 2020 14:05:29 +0200 Subject: [PATCH 500/936] update --- ChangeLog | 3 --- 1 file changed, 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 846f421b10..055e514518 100644 --- a/ChangeLog +++ b/ChangeLog @@ -10,9 +10,6 @@ - accessibility improvements, coded by chigkim (#498, #512) - -TODO ability to remove servers from a central server you manage #413 - TODO fix Alt+h issue (see https://sourceforge.net/p/llcon/discussion/software/thread/1856e44ffd/?limit=25#74bb/5686) -> Alt+c TODO improve multithreading -> merge branch into master From 2885f2b943599d6a624dad2c9ccf116b7140eb55 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 20 Aug 2020 16:40:56 +0200 Subject: [PATCH 501/936] update translation --- src/res/translation/translation_de_DE.ts | 39 +++++++++++++----------- src/res/translation/translation_es_ES.ts | 39 +++++++++++++----------- src/res/translation/translation_fr_FR.ts | 39 +++++++++++++----------- src/res/translation/translation_it_IT.ts | 39 +++++++++++++----------- src/res/translation/translation_nl_NL.ts | 39 +++++++++++++----------- src/res/translation/translation_pl_PL.ts | 39 +++++++++++++----------- src/res/translation/translation_pt_BR.ts | 39 +++++++++++++----------- src/res/translation/translation_pt_PT.ts | 39 +++++++++++++----------- src/res/translation/translation_sv_SE.ts | 39 +++++++++++++----------- 9 files changed, 198 insertions(+), 153 deletions(-) diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index 12ad2c4d4a..fae9c78383 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -189,32 +189,32 @@ CAudioMixerBoard - + Personal Mix at the Server Eigener Mix am Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Wenn man mit einem Server verbunden ist, dann kann man hier den eigenen Mix verstellen ohne dass man etwas daran verändert, was die anderen von mir hören. Der Titel zeigt den Servernamen an und falls bekannt den Aufnahmestatus des Servers. - + Server - + T R Y I N G T O C O N N E C T V E R B I N D U N G S A U F B A U - + RECORDING ACTIVE AUFNAHME AKTIV - + Personal Mix at: Eigener Mix am Server: @@ -424,44 +424,49 @@ G - + Alias/Name - + Instrument - + Location Standort - - - + + + Skill Level Spielstärke - + + Alias + + + + Beginner Anfänger - + Intermediate Mittlere Spielstärke - + Expert Experte - + Musician Profile Profil des Musikers @@ -2536,7 +2541,7 @@ Leadsänger - + No Name Kein Name diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index 2781b1ce61..fd5fa12f61 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -201,32 +201,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mezcla personal en el Servidor - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Estando conectado a un servidor, estos controles te permiten hacer tu mezcla personal sin afectar lo que otros escuchan de tí. El título muestra el nombre del servidor y, cuando se conoce, si está activamente grabando. - + Server Servidor - + T R Y I N G T O C O N N E C T I N T E N T A N D O C O N E C T A R - + RECORDING ACTIVE GRABACIÓN ACTIVA - + Personal Mix at: Mezcla Personal en el Servidor: @@ -436,44 +436,49 @@ G - + Alias/Name Alias/Nombre - + Instrument Instrumento - + Location Ubicación - - - + + + Skill Level Nivel Habilidad - + + Alias + + + + Beginner Principiante - + Intermediate Intermedio - + Expert Experto - + Musician Profile Perfil Músico @@ -2560,7 +2565,7 @@ Voz Principal - + No Name Sin Nombre diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index 6e83b11879..a10a0726f7 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -209,32 +209,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mixage personnel au serveur - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Lorsque vous êtes connecté à un serveur, les contrôles vous permettent de régler votre mixage local sans affecter ce que les autres entendent de vous. Le titre indique le nom du serveur et, lorsqu'il est connu, s'il est en train d'enregistrer. - + Server Serveur - + T R Y I N G T O C O N N E C T T E N T A T I V E D E C O N N E X I O N - + RECORDING ACTIVE ENREGISTREMENT ACTIF - + Personal Mix at: Mixage personnel à : @@ -444,44 +444,49 @@ G - + Alias/Name Pseudo/nom - + Instrument Instrument - + Location Localisation - - - + + + Skill Level Niveau de compétence - + + Alias + + + + Beginner Débutant - + Intermediate Intermédiaire - + Expert Expert - + Musician Profile Profil de musicien @@ -2552,7 +2557,7 @@ Voix principale - + No Name Sans nom diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index e30ea57a21..def51e7236 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -193,32 +193,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mixer personale sul Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Quando connessi i fader permettono di regolare i volumi in locale senza influenzare l'ascolto degli altri utenti. L'intestazione mostra il nome de server, se valorizzato, e le informazioni sullo stato della sessione di registrazione se attiva. - + Server Server - + T R Y I N G T O C O N N E C T I N A T T E S A D I C O N N E S S I O N E - + RECORDING ACTIVE Sessione con Registrazione Attiva - + Personal Mix at: Mixer personale sul Server: @@ -449,44 +449,49 @@ G - + Alias/Name Identificativo/Nome - + Instrument Strumento - + Location Località - - - + + + Skill Level Livello di Preparazione - + + Alias + + + + Beginner Principiante - + Intermediate Livello Intermedio - + Expert Esperto - + Musician Profile Profilo del Musicista @@ -2508,7 +2513,7 @@ Vocal Lead - + No Name Senza Nome diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index 2a79227fc0..84a250e55b 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -193,32 +193,32 @@ CAudioMixerBoard - + Personal Mix at the Server Eigen mix op de Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Indien verbonden met de server kan hier de lokale mix ingesteld worden zonder dat hetgeen anderen van je horen wordt beïnvloed. De titel toont de servernaam en indien bekend of er audio wordt opgenomen. - + Server Server - + T R Y I N G T O C O N N E C T A A N H E T V E R B I N D E N - + RECORDING ACTIVE GELUIDSOPNAME ACTIEF - + Personal Mix at: Eigen mix op: @@ -441,44 +441,49 @@ G - + Alias/Name Alias/Naam - + Instrument Instrument - + Location Locatie - - - + + + Skill Level Vaardigheidssniveau - + + Alias + + + + Beginner Beginner - + Intermediate Gemiddeld - + Expert Gevorderd - + Musician Profile Muzikantenprofiel @@ -2500,7 +2505,7 @@ Leadzanger - + No Name Geen naam diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index a20bafb4df..6cfa5958cb 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -154,32 +154,32 @@ CAudioMixerBoard - + Personal Mix at the Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. - + Server Serwer - + T R Y I N G T O C O N N E C T P R Ó B U J Ę S I Ę P O ŠĄ C Z Y Ć - + RECORDING ACTIVE - + Personal Mix at: @@ -386,44 +386,49 @@ - + Alias/Name Nick/Imię - + Instrument Instrument - + Location Lokalizacja - - - + + + Skill Level - + + Alias + + + + Beginner Początkujący - + Intermediate Średniozaawansowany - + Expert Ekspert - + Musician Profile Profil muzyka @@ -2190,7 +2195,7 @@ nie jestem pewna - + No Name Brak nazwy diff --git a/src/res/translation/translation_pt_BR.ts b/src/res/translation/translation_pt_BR.ts index ff240fd661..abeaad9910 100644 --- a/src/res/translation/translation_pt_BR.ts +++ b/src/res/translation/translation_pt_BR.ts @@ -210,32 +210,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mixagem Pessoal no Servidor - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Quando conectado a um servidor, estes controles permite definir sua mixagem local sem afetar o que os outros ouvem de você. O título exibe o nome do servidor e, quando conhecido, se está ativamente gravando. - + Server Servidor - + T R Y I N G T O C O N N E C T T E N T A N D O C O N E C T A R - + RECORDING ACTIVE GRAVAÇÃO ATIVA - + Personal Mix at: Mixagem Pessoal em: @@ -445,44 +445,49 @@ G - + Alias/Name Apelido/Nome - + Instrument Instrumento - + Location Localização - - - + + + Skill Level Nível de Habilidade - + + Alias + + + + Beginner Principiante - + Intermediate Intermediário - + Expert Avançado - + Musician Profile Perfil do músico @@ -2535,7 +2540,7 @@ Voz Principal - + No Name Sem Nome diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index e9666780cf..ad918145a0 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -209,32 +209,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mistura Pessoal no Servidor - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Quando ligado a um servidor, estes controles permitem que defina a sua mistura local sem afectar o que os outros ouvem. O título mostra o nome do servidor e, quando conhecido, se está gravando activamente. - + Server Servidor - + T R Y I N G T O C O N N E C T T E N T A N D O L I G A R - + RECORDING ACTIVE GRAVAÇÃO ACTIVA - + Personal Mix at: Mistura Pessoal no Servidor: @@ -444,44 +444,49 @@ G - + Alias/Name Nome/Alcunha - + Instrument Instrumento - + Location Localização - - - + + + Skill Level Nível de Habilidade - + + Alias + + + + Beginner Principiante - + Intermediate Intermediário - + Expert Avançado - + Musician Profile Perfil do músico @@ -2532,7 +2537,7 @@ Voz Principal - + No Name Sem Nome diff --git a/src/res/translation/translation_sv_SE.ts b/src/res/translation/translation_sv_SE.ts index 8be0d662a2..a6d9cbbd14 100644 --- a/src/res/translation/translation_sv_SE.ts +++ b/src/res/translation/translation_sv_SE.ts @@ -154,32 +154,32 @@ CAudioMixerBoard - + Personal Mix at the Server Personlig mix på servern - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. När du är ansluten till en server låter kontrollerna här ställa in din lokala mix utan att påverka vad andra hör från dig. Titeln visar servernamnet och, om det är känt, om den aktivt spelar in. - + Server Server - + T R Y I N G T O C O N N E C T F Ö R S Ö K E R A N S L U T A - + RECORDING ACTIVE INSPELNING AKTIV - + Personal Mix at: Personlig mix på: @@ -386,44 +386,49 @@ Grp - + Alias/Name Alias/Namn - + Instrument Instrument - + Location Plats - - - + + + Skill Level Skicklighetsnivå - + + Alias + + + + Beginner Nybörjare - + Intermediate Mellannivå - + Expert Expert - + Musician Profile Musikprofil @@ -1876,7 +1881,7 @@ CMusProfDlg - + No Name Inget namn From b7887581b8cd772ca26aa72db5f9f01c4863e528 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 20 Aug 2020 16:53:59 +0200 Subject: [PATCH 502/936] bug fix: Alt+h shortcut to open the Chat dialog did not work, use Alt+c instead --- ChangeLog | 2 +- src/clientdlgbase.ui | 2 +- src/res/translation/translation_de_DE.qm | Bin 109557 -> 109557 bytes src/res/translation/translation_de_DE.ts | 4 ++-- src/res/translation/translation_es_ES.qm | Bin 106469 -> 106469 bytes src/res/translation/translation_es_ES.ts | 4 ++-- src/res/translation/translation_fr_FR.qm | Bin 113721 -> 113721 bytes src/res/translation/translation_fr_FR.ts | 4 ++-- src/res/translation/translation_it_IT.qm | Bin 108038 -> 108038 bytes src/res/translation/translation_it_IT.ts | 4 ++-- src/res/translation/translation_nl_NL.qm | Bin 105971 -> 105971 bytes src/res/translation/translation_nl_NL.ts | 4 ++-- src/res/translation/translation_pl_PL.qm | Bin 14706 -> 14706 bytes src/res/translation/translation_pl_PL.ts | 4 ++-- src/res/translation/translation_pt_BR.qm | Bin 109217 -> 109217 bytes src/res/translation/translation_pt_BR.ts | 2 +- src/res/translation/translation_pt_PT.qm | Bin 109097 -> 109097 bytes src/res/translation/translation_pt_PT.ts | 2 +- src/res/translation/translation_sv_SE.qm | Bin 102821 -> 102821 bytes src/res/translation/translation_sv_SE.ts | 4 ++-- 20 files changed, 18 insertions(+), 18 deletions(-) diff --git a/ChangeLog b/ChangeLog index 055e514518..ce388c97df 100644 --- a/ChangeLog +++ b/ChangeLog @@ -9,8 +9,8 @@ - accessibility improvements, coded by chigkim (#498, #512) +- bug fix: Alt+h shortcut to open the Chat dialog did not work, use Alt+c instead -TODO fix Alt+h issue (see https://sourceforge.net/p/llcon/discussion/software/thread/1856e44ffd/?limit=25#74bb/5686) -> Alt+c TODO improve multithreading -> merge branch into master TODO use command line argument to enable multithreading instead of qmake CONFIG diff --git a/src/clientdlgbase.ui b/src/clientdlgbase.ui index a5da122601..063416452f 100755 --- a/src/clientdlgbase.ui +++ b/src/clientdlgbase.ui @@ -334,7 +334,7 @@ - C&hat + &Chat diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index fcc488f6bb65dc434d2b64b80134317082263063..b0297d24d49511fa197a1961f0b36478ff842ee9 100644 GIT binary patch delta 89 zcmex*o$c#&whhx6+2*w{FeI~0p2}#s`5I#w2cyMiU9NIQ#?zaZa^GiSY~I|;_divV si$RUSnIVHAk)ecx0SMTDm{rX=BXRP=GRes;B`2HfOSjjTGM1SE07j=Al>h($ delta 90 zcmex*o$c#&whhx6C(mazXLmif!1^~wf9e4l$ diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index fae9c78383..7c94cd8046 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -1028,8 +1028,8 @@ - C&hat - C&hat + &Chat + &Chat diff --git a/src/res/translation/translation_es_ES.qm b/src/res/translation/translation_es_ES.qm index 01560b7260e687b0057391cda99a30c9ab62ab7b..46feaa3ac27f8ced635fb6ee7ac8aa17c1a2299c 100644 GIT binary patch delta 91 zcmaF5pY7>>whhx6+2*w{FvS0vJeARM^EJj$4yFXX&AMFWjEs9XFXg_^#8|qymG5hk u6c>XUgEK=0Ln1>72LlkW0WqtZb4Fsx>whhx6C(mazXLmi - C&hat - C&hat + &Chat + &Chat diff --git a/src/res/translation/translation_fr_FR.qm b/src/res/translation/translation_fr_FR.qm index a763b9041c03a55179f95b0fa6916b3b9a574977..d234bcd6f60204adebf60b5476cde5a2941498e4 100644 GIT binary patch delta 93 zcmdn_gKg&zwhhx6+2*w{Fr-OLp2}#s`5L1i2czF+RjzVI#_OBsa^GiSoVvM|PcT!K wk0FFXjUkyKgCUWjgdvrK0SMTDm{rX=BXRP^3dzZRgfG3?&Sy91K9f2E?q+Y8i=>H&#eCw^nR#tzg{Z3;+cb9mW6v diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index a10a0726f7..f0faf8fce5 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -1044,8 +1044,8 @@ - C&hat - Tc&hate + &Chat + T&chate diff --git a/src/res/translation/translation_it_IT.qm b/src/res/translation/translation_it_IT.qm index eb83054b7d7e91c7030a8e9649484108ecd6328b..d1a14fccf0690959dbab7c807fb4de1b0e3ff1f9 100644 GIT binary patch delta 91 zcmZoW!`60&ZNqd%ws|cK3<*~zPi3^+e2vkSgDH`1vn*FRBje=FQ@QUmF@|m~fQ}63ynt+s%s^&l>>%m?s=| diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index def51e7236..89d915d872 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -1024,8 +1024,8 @@ - C&hat - C&hat + &Chat + &Chat diff --git a/src/res/translation/translation_nl_NL.qm b/src/res/translation/translation_nl_NL.qm index 44bcea5a89050a40caf4ae4979cf3551189a9a54..f70a366292ff6ea295932810a919f55099866345 100644 GIT binary patch delta 93 zcmeyoo9**%whhx6+2*w{FvL|&p2}#s`5I#w2jiN}x?JUqjMkf%a^GiS{JOc7uQ*YX wi$RUSnIVHAk)ecx0SMTDm{rX=BXM#-vE<|*`Nt=pk>YCpU9kOk0pkxH0Lb7UkN^Mx delta 92 zcmeyoo9**%whhx6C(mazXLmi72LlkW0Wqty+GPF$>B(oLxSD?#Z2w)r_(KN(qRJg+ diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index 84a250e55b..acd686a60d 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -1012,8 +1012,8 @@ - C&hat - C&hat + &Chat + &Chat diff --git a/src/res/translation/translation_pl_PL.qm b/src/res/translation/translation_pl_PL.qm index fcc84d7c2af907d3a1a354726359232803ef9e55..f12db90194a9f1d3fabb8d6b64dab843d7e3d4db 100755 GIT binary patch delta 81 zcmexV^r>jVbGCUc3=I6!Cq7l&%*VKliSgv*t<3F=L6dD+o-qjsY*uA85Rl?xP-Adr jsA5QDDB)lL0yZFKRddcrESbDtTw-#l=>E-aVmitIMzj|v delta 79 zcmexV^r>jV^NH`}*b?{Muo|?EYFzu?`>9PH4vEGF1lZw hi@}*ejiHJmk)ecx0SMTDnAKTra*n9 - C&hat - C&zat + &Chat + &Czat diff --git a/src/res/translation/translation_pt_BR.qm b/src/res/translation/translation_pt_BR.qm index ecd37d37b803f4b7ea824fd781960dc178377d71..74df111f38d7973ccae4520fb4a551b018a3d81c 100644 GIT binary patch delta 87 zcmV-d0I2_=)dr!}2C$a_2A+ff0AyB^l>s@k)&W)s0g|&V3U&bkWgWAn3*Q0(+p~oZ tPiF@d08Id8049@xJ{JZBCPQdpbd$k%7?ad>!;?ixDTDlWxBPYir87T(AJG5+ delta 79 zcmV-V0I>g|)dr!}2C$a_lb-=M2Sv_=003nfv(*7t2mw~JEedu40%YN{r3>Ez0iUyl l4o_#35O%|p)O8;PLndfpbdy1L7?VXwDTDlWxBPYir8B9A9 - C&hat + &Chat Me&nsagens diff --git a/src/res/translation/translation_pt_PT.qm b/src/res/translation/translation_pt_PT.qm index fdff9ede8cb6ff5242a2a44c8cd000275711c730..adae22e3c0fe98feb1adef22b8d0e33990d92b25 100644 GIT binary patch delta 70 zcmV-M0J;CE)CQ^42C$a_2A+ff0Aw1Il>s@k)&W)s0amju3U>hk;j^U+-vR-jvxN>5 cXOmlY9|9&rlYDj?lbChGgO_% - C&hat + &Chat Me&nsagens diff --git a/src/res/translation/translation_sv_SE.qm b/src/res/translation/translation_sv_SE.qm index 518ca32fb1b820d76b348384b04aefffc77eda33..1be7a1de154d57f10b9534159394475d16c2c87b 100644 GIT binary patch delta 93 zcmZ3wm~H7|whhx6+2*w{FvPY^p2}#s`5L1i2ji~Is$AuajDefya^GWOisRf|%U7Qu w!^5D);LMQ0kjPNNP{P3g1Z+Ues^*-LSTZ@GP-60*yz|Zf^SA%cXI!QT09PR$djJ3c delta 94 zcmZ3wm~H7|whhx6C(mazXLmiv0oMn>7qbGh#^F~wfpT+3IV xFxepgybKS6GlLpK216o42}2170}!wQF{`s$Mq - C&hat - C&hatt + &Chat + &Chatt From 12c026096531d604a7b4b859f3efe7d784aba163 Mon Sep 17 00:00:00 2001 From: Hans Petter Selasky Date: Tue, 18 Aug 2020 20:40:24 +0200 Subject: [PATCH 503/936] OnDataReceived() is not a slot, only a public class member. Signed-off-by: Hans Petter Selasky --- src/socket.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/socket.h b/src/socket.h index adc9c67f6f..bc5c51c477 100755 --- a/src/socket.h +++ b/src/socket.h @@ -99,7 +99,7 @@ class CSocket : public QObject bool bJitterBufferOK; -public slots: +public: void OnDataReceived(); signals: From 09f017b2ae68ba9bd572a7507226766807db1b59 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Fri, 21 Aug 2020 15:13:22 +0200 Subject: [PATCH 504/936] cherry-pick commit 20fd2a0bbb45223d9f62b1d8c2be66e265aa3e9e --- src/util.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/util.cpp b/src/util.cpp index 919fc79c2d..7397313feb 100755 --- a/src/util.cpp +++ b/src/util.cpp @@ -456,6 +456,7 @@ CAboutDlg::CAboutDlg ( QWidget* parent ) : QDialog ( parent ) "
" "

Alberstein8 (Alberstein8)

" "

Gauthier Fleutot Östervall (fleutot)

" + "

HPS (hselasky)

" "

Stanislas Michalak (stanislas-m)

" "

JP Cimalando (jpcima)

" "

Adam Sampson (atsampson)

" From 49e7715d50b368b5aadce07eba856f53489cba17 Mon Sep 17 00:00:00 2001 From: Bryan Flamig Date: Tue, 25 Aug 2020 03:42:05 -0700 Subject: [PATCH 505/936] Added code to get jack latency --- linux/sound.cpp | 38 ++++++++++++++++++++++++++++++++++++++ linux/sound.h | 4 ++++ 2 files changed, 42 insertions(+) diff --git a/linux/sound.cpp b/linux/sound.cpp index e7239d417e..6db8e582a5 100755 --- a/linux/sound.cpp +++ b/linux/sound.cpp @@ -25,6 +25,7 @@ \******************************************************************************/ #include "sound.h" +//#include // For debugging total latency #ifdef WITH_SOUND void CSound::OpenJack ( const bool bNoAutoJackConnect, @@ -151,6 +152,43 @@ void CSound::OpenJack ( const bool bNoAutoJackConnect, jack_free ( ports ); } + + // Compute latency: + // We'l just use the first input and first output ports + // in determining latency. We'll also use the most + // optimistic values. + + jack_latency_callback_mode_t cbmode; + jack_latency_range_t latrange; + + // input latency + + cbmode = JackCaptureLatency; + latrange.min = 0; + latrange.max = 0 ; + + jack_port_get_latency_range(input_port_left, cbmode, &latrange); + int inLatency = latrange.min; // be optimistic + + // output latency + + cbmode = JackPlaybackLatency; + latrange.min = 0; + latrange.max = 0 ; + + jack_port_get_latency_range(output_port_left, cbmode, &latrange); + int outLatency = latrange.min; // be optimistic + + int totalLatency = inLatency + outLatency; + + dInOutLatencyMs = double(totalLatency) * 1000.0 / double(SYSTEM_SAMPLE_RATE_HZ); + + // For debugging + //std::cout << "------------------------------------------------" << std::endl; + //std::cout << "frame delay = " << inLatency << " in + " << outLatency << " out " << std::endl; + //std::cout << "total latency = " << totalLatency << " frames, " << dInOutLatencyMs << " ms " << std::endl; + //std::cout << "------------------------------------------------" << std::endl; + } } diff --git a/linux/sound.h b/linux/sound.h index 149becfa12..66fbad257f 100755 --- a/linux/sound.h +++ b/linux/sound.h @@ -74,6 +74,8 @@ class CSound : public CSoundBase virtual void Start(); virtual void Stop(); + virtual double GetInOutLatencyMs() { return dInOutLatencyMs; } + // these variables should be protected but cannot since we want // to access them from the callback function CVector vecsTmpAudioSndCrdStereo; @@ -98,6 +100,8 @@ class CSound : public CSoundBase static int bufferSizeCallback ( jack_nframes_t, void *arg ); static void shutdownCallback ( void* ); jack_client_t* pJackClient; + + double dInOutLatencyMs; }; #else // no sound -> dummy class definition From 354c2c996ab0cad0793c81c954789e002c43ba4c Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 25 Aug 2020 20:10:56 +0200 Subject: [PATCH 506/936] merge fixes --- ChangeLog | 2 ++ linux/sound.cpp | 37 ++++++++++--------------------------- src/util.cpp | 1 + 3 files changed, 13 insertions(+), 27 deletions(-) diff --git a/ChangeLog b/ChangeLog index ce388c97df..c9014d8122 100644 --- a/ChangeLog +++ b/ChangeLog @@ -9,6 +9,8 @@ - accessibility improvements, coded by chigkim (#498, #512) +- added Jack audio audio latency calculation, coded by bflamig (#437) + - bug fix: Alt+h shortcut to open the Chat dialog did not work, use Alt+c instead diff --git a/linux/sound.cpp b/linux/sound.cpp index 6db8e582a5..eeacf468ca 100755 --- a/linux/sound.cpp +++ b/linux/sound.cpp @@ -25,7 +25,6 @@ \******************************************************************************/ #include "sound.h" -//#include // For debugging total latency #ifdef WITH_SOUND void CSound::OpenJack ( const bool bNoAutoJackConnect, @@ -153,42 +152,26 @@ void CSound::OpenJack ( const bool bNoAutoJackConnect, jack_free ( ports ); } - // Compute latency: - // We'l just use the first input and first output ports - // in determining latency. We'll also use the most - // optimistic values. - - jack_latency_callback_mode_t cbmode; - jack_latency_range_t latrange; - // input latency + jack_latency_range_t latrange; + jack_latency_callback_mode_t cbmode = JackCaptureLatency; + latrange.min = 0; + latrange.max = 0 ; - cbmode = JackCaptureLatency; - latrange.min = 0; - latrange.max = 0 ; - - jack_port_get_latency_range(input_port_left, cbmode, &latrange); + jack_port_get_latency_range ( input_port_left, cbmode, &latrange ); int inLatency = latrange.min; // be optimistic // output latency - - cbmode = JackPlaybackLatency; + cbmode = JackPlaybackLatency; latrange.min = 0; latrange.max = 0 ; - jack_port_get_latency_range(output_port_left, cbmode, &latrange); + jack_port_get_latency_range ( output_port_left, cbmode, &latrange ); int outLatency = latrange.min; // be optimistic - int totalLatency = inLatency + outLatency; - - dInOutLatencyMs = double(totalLatency) * 1000.0 / double(SYSTEM_SAMPLE_RATE_HZ); - - // For debugging - //std::cout << "------------------------------------------------" << std::endl; - //std::cout << "frame delay = " << inLatency << " in + " << outLatency << " out " << std::endl; - //std::cout << "total latency = " << totalLatency << " frames, " << dInOutLatencyMs << " ms " << std::endl; - //std::cout << "------------------------------------------------" << std::endl; - + // compute latency by using the first input and first output + // ports and using the most optimistic values + dInOutLatencyMs = static_cast ( inLatency + outLatency ) * 1000 / SYSTEM_SAMPLE_RATE_HZ; } } diff --git a/src/util.cpp b/src/util.cpp index 7397313feb..a214a76116 100755 --- a/src/util.cpp +++ b/src/util.cpp @@ -463,6 +463,7 @@ CAboutDlg::CAboutDlg ( QWidget* parent ) : QDialog ( parent ) "

Stefan Weil (stweil)

" "

Nils Brederlow (dingodoppelt)

" "

Sebastian Krzyszkowiak (dos1)

" + "

Bryan Flamig (bflamig)

" "

dszgit (dszgit)

" "

chigkim (chigkim)

" "

Bodo (bomm)

" From 2cef6bccb2ef7b1f63c3def212832927cdab6baf Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 25 Aug 2020 20:19:41 +0200 Subject: [PATCH 507/936] some small code cleanup --- linux/sound.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/linux/sound.cpp b/linux/sound.cpp index eeacf468ca..3db291f7a9 100755 --- a/linux/sound.cpp +++ b/linux/sound.cpp @@ -153,20 +153,18 @@ void CSound::OpenJack ( const bool bNoAutoJackConnect, } // input latency - jack_latency_range_t latrange; - jack_latency_callback_mode_t cbmode = JackCaptureLatency; - latrange.min = 0; - latrange.max = 0 ; + jack_latency_range_t latrange; + latrange.min = 0; + latrange.max = 0 ; - jack_port_get_latency_range ( input_port_left, cbmode, &latrange ); + jack_port_get_latency_range ( input_port_left, JackCaptureLatency, &latrange ); int inLatency = latrange.min; // be optimistic // output latency - cbmode = JackPlaybackLatency; latrange.min = 0; latrange.max = 0 ; - jack_port_get_latency_range ( output_port_left, cbmode, &latrange ); + jack_port_get_latency_range ( output_port_left, JackPlaybackLatency, &latrange ); int outLatency = latrange.min; // be optimistic // compute latency by using the first input and first output From ecff80fcd1607ea1b84bd15cfcd1c33c0c5f1a87 Mon Sep 17 00:00:00 2001 From: Hans Petter Selasky Date: Tue, 18 Aug 2020 20:51:08 +0200 Subject: [PATCH 508/936] Fix for crash when using the JACK backend and quickly reconfiguring. Need to ensure that JACK callbacks see the running flag as false after being stopped. Use a QMutex for this. Signed-off-by: Hans Petter Selasky --- linux/sound.cpp | 3 +++ src/soundbase.cpp | 10 +++++----- src/soundbase.h | 2 ++ 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/linux/sound.cpp b/linux/sound.cpp index 3db291f7a9..7ea475a91a 100755 --- a/linux/sound.cpp +++ b/linux/sound.cpp @@ -240,6 +240,9 @@ int CSound::process ( jack_nframes_t nframes, void* arg ) CSound* pSound = static_cast ( arg ); int i; + // make sure we are locked during execution + QMutexLocker locker(&pSound->MutexAudioProcessCb); + if ( pSound->IsRunning() && ( nframes == static_cast ( pSound->iJACKBufferSizeMono ) ) ) { // get input data pointer diff --git a/src/soundbase.cpp b/src/soundbase.cpp index 5807479c37..18b2870f5d 100755 --- a/src/soundbase.cpp +++ b/src/soundbase.cpp @@ -75,15 +75,15 @@ void CSoundBase::Stop() // set flag so that thread can leave the main loop bRun = false; - // give thread some time to terminate - if ( !bIsCallbackAudioInterface ) - { - wait ( 5000 ); - } + // drain the audio process callback + QMutexLocker locker(&MutexAudioProcessCb); } void CSoundBase::run() { + // make sure we are locked during execution + QMutexLocker locker(&MutexAudioProcessCb); + // main loop of working thread while ( bRun ) { diff --git a/src/soundbase.h b/src/soundbase.h index ab588a4678..562482a238 100755 --- a/src/soundbase.h +++ b/src/soundbase.h @@ -26,6 +26,7 @@ #include #include +#include #ifndef HEADLESS # include #endif @@ -137,6 +138,7 @@ class CSoundBase : public QThread void run(); bool bRun; + QMutex MutexAudioProcessCb; void ParseMIDIMessage ( const CVector& vMIDIPaketBytes ); From a4b695ba9b1d37dfd14ce21ed796809f9dc3fdf8 Mon Sep 17 00:00:00 2001 From: Hans Petter Selasky Date: Tue, 18 Aug 2020 20:37:38 +0200 Subject: [PATCH 509/936] Replace CPreciseTime class with QElapsedTimer class. Signed-off-by: Hans Petter Selasky --- src/client.cpp | 2 ++ src/client.h | 2 +- src/util.h | 28 ---------------------------- 3 files changed, 3 insertions(+), 29 deletions(-) diff --git a/src/client.cpp b/src/client.cpp index 0031d64719..0acb719ab1 100755 --- a/src/client.cpp +++ b/src/client.cpp @@ -190,6 +190,8 @@ CClient::CClient ( const quint16 iPortNumber, QObject::connect ( pSignalHandler, &CSignalHandler::HandledSignal, this, &CClient::OnHandledSignal ); + // start timer so that elapsed time works + PreciseTime.start(); // start the socket (it is important to start the socket after all // initializations and connections) diff --git a/src/client.h b/src/client.h index 0cd61e7bd2..b5c5597b53 100755 --- a/src/client.h +++ b/src/client.h @@ -368,7 +368,7 @@ class CClient : public QObject int iServerSockBufNumFrames; // for ping measurement - CPreciseTime PreciseTime; + QElapsedTimer PreciseTime; CSignalHandler* pSignalHandler; diff --git a/src/util.h b/src/util.h index 866036f352..a8d7b3b356 100755 --- a/src/util.h +++ b/src/util.h @@ -1299,34 +1299,6 @@ class MathUtils }; -// Precise time ---------------------------------------------------------------- -// required for ping measurement -class CPreciseTime -{ -public: -#ifdef _WIN32 - // for the Windows version we have to define a minimum timer precision - // -> set it to 1 ms - CPreciseTime() { timeBeginPeriod ( 1 ); } - virtual ~CPreciseTime() { timeEndPeriod ( 1 ); } -#endif - - // precise time (on Windows the QTime is not precise enough) - int elapsed() - { -#ifdef _WIN32 - return timeGetTime(); -#elif defined ( __APPLE__ ) || defined ( __MACOSX ) - return mach_absolute_time() / 1000000; // convert ns in ms -#else - timespec tp; - clock_gettime ( CLOCK_MONOTONIC, &tp ); - return tp.tv_sec * 1000 + tp.tv_nsec / 1000000; // convert ns in ms and add the seconds part -#endif - } -}; - - // Timing measurement ---------------------------------------------------------- // intended for debugging the timing jitter of the sound card or server timer class CTimingMeas From 66e062b4ed38e394aef2323a020fc8a931f6a14d Mon Sep 17 00:00:00 2001 From: Hans Petter Selasky Date: Wed, 26 Aug 2020 12:02:15 +0200 Subject: [PATCH 510/936] Use magic value for length when storing WAV files above 4GBytes. Signed-off-by: Hans Petter Selasky --- src/recorder/cwavestream.cpp | 42 ++++++++++++++++++++---------------- src/recorder/cwavestream.h | 4 ++-- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/src/recorder/cwavestream.cpp b/src/recorder/cwavestream.cpp index 7351eb316e..048483caee 100644 --- a/src/recorder/cwavestream.cpp +++ b/src/recorder/cwavestream.cpp @@ -123,26 +123,32 @@ void CWaveStream::waveStreamHeaders() void CWaveStream::finalise() { - static const uint32_t hdrRiffChunkSize = sizeof(uint32_t) + sizeof(uint32_t) + sizeof(uint32_t); - static const uint32_t fmtSubChunkSize = sizeof(uint32_t) + sizeof(uint32_t) + sizeof(uint16_t) + sizeof(uint16_t) + sizeof(uint32_t) + sizeof(uint32_t) + sizeof(uint16_t) + sizeof(uint16_t); + static const uint64_t hdrRiffChunkSize = sizeof(uint32_t) + sizeof(uint32_t) + sizeof(uint32_t); + static const uint64_t fmtSubChunkSize = sizeof(uint32_t) + sizeof(uint32_t) + sizeof(uint16_t) + sizeof(uint16_t) + sizeof(uint32_t) + sizeof(uint32_t) + sizeof(uint16_t) + sizeof(uint16_t); - static const uint32_t hdrRiffChunkSizeOffset = sizeof(uint32_t); - static const uint32_t dataSubChunkHdrChunkSizeOffset = hdrRiffChunkSize + fmtSubChunkSize + sizeof (uint32_t); + static const uint64_t hdrRiffChunkSizeOffset = sizeof(uint32_t); + static const uint64_t dataSubChunkHdrChunkSizeOffset = hdrRiffChunkSize + fmtSubChunkSize + sizeof (uint32_t); const int64_t currentPos = this->device()->pos(); - const uint32_t fileLength = static_cast(currentPos - initialPos); - - QDataStream& out = static_cast(*this); - - // Overwrite hdr_riff.chunkSize - this->device()->seek(initialPos + hdrRiffChunkSizeOffset); - out << static_cast(fileLength - (hdrRiffChunkSizeOffset + sizeof (uint32_t))); - - // Overwrite dataSubChunkHdr.chunkSize - this->device()->seek(initialPos + dataSubChunkHdrChunkSizeOffset); - out << static_cast(fileLength - (dataSubChunkHdrChunkSizeOffset + sizeof (uint32_t))); - - // and then restore the position and byte order - this->device()->seek(currentPos); + const uint64_t fileLengthRiff = static_cast(currentPos - initialPos - (hdrRiffChunkSizeOffset + sizeof (uint32_t))); + const uint64_t fileLengthData = static_cast(currentPos - initialPos - (dataSubChunkHdrChunkSizeOffset + sizeof (uint32_t))); + + // check if lengths are within the range of the WAV file format + if (fileLengthRiff < 0x100000000ULL && fileLengthData < 0x100000000ULL) + { + QDataStream& out = static_cast(*this); + + // Overwrite hdr_riff.chunkSize + this->device()->seek(initialPos + hdrRiffChunkSizeOffset); + out << static_cast(fileLengthRiff); + + // Overwrite dataSubChunkHdr.chunkSize + this->device()->seek(initialPos + dataSubChunkHdrChunkSizeOffset); + out << static_cast(fileLengthData); + + // And restore the position + this->device()->seek(currentPos); + } + // restore the byte order setByteOrder(initialByteOrder); } diff --git a/src/recorder/cwavestream.h b/src/recorder/cwavestream.h index 4c9a89cfa4..54b91633c6 100644 --- a/src/recorder/cwavestream.h +++ b/src/recorder/cwavestream.h @@ -59,7 +59,7 @@ class HdrRiff HdrRiff() {} static const uint32_t chunkId = 0x46464952; // RIFF - static const uint32_t chunkSize = 0xffffffff; // (will be overwritten) Size of file in bytes - 8 = size of data + 36 + static const uint32_t chunkSize = 0x00000000; // unknown static const uint32_t format = 0x45564157; // WAVE }; @@ -88,7 +88,7 @@ class DataSubChunkHdr DataSubChunkHdr() {} static const uint32_t chunkId = 0x61746164; // "data" - static const uint32_t chunkSize = 0xffffffff; // (will be overwritten) Size of data + static const uint32_t chunkSize = 0x7ffff000; // magic for unspecified length }; class CWaveStream : public QDataStream From 25f1357517794c16dadd175cad1c23ecc0d9f602 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 27 Aug 2020 16:56:46 +0200 Subject: [PATCH 511/936] update --- ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index c9014d8122..4b61c9ab12 100644 --- a/ChangeLog +++ b/ChangeLog @@ -14,6 +14,7 @@ - bug fix: Alt+h shortcut to open the Chat dialog did not work, use Alt+c instead +TODO at about 70 client connections the client/server do not show/list all clients anymore (#547) TODO improve multithreading -> merge branch into master TODO use command line argument to enable multithreading instead of qmake CONFIG From f18c00c41a469b43dbb9974d124aa34268834e9c Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Fri, 14 Aug 2020 20:39:49 +0200 Subject: [PATCH 512/936] do not create a new thread on each client but on blocks of clients -> that should lower the thread overhead --- src/server.cpp | 56 ++++++++++++++++++++++++++++++++++++-------------- src/server.h | 7 ++++++- 2 files changed, 47 insertions(+), 16 deletions(-) diff --git a/src/server.cpp b/src/server.cpp index 20001f724d..d41c393cf9 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -1008,25 +1008,36 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE vecvecsData[iChanCnt] ); } +#ifndef USE_MULTITHREADING // generate a separate mix for each channel, OPUS encode the - // audio data and transmit the network packet (note that if - // multithreading is enabled, the work is distributed over - // all available processor cores) -#ifdef USE_MULTITHREADING - // by using the future synchronizer we make sure that all - // threads are done when we leave the timer callback function - FutureSynchronizer.addFuture ( QtConcurrent::run ( this, - &CServer::MixEncodeTransmitData, - iChanCnt, - iCurChanID, - iNumClients ) ); -#else - // process and transmit data single threaded + // audio data and transmit the network packet MixEncodeTransmitData ( iChanCnt, - iCurChanID, iNumClients ); #endif } + +#ifdef USE_MULTITHREADING +// TODO optimization of the MTBlockSize value + const int iMTBlockSize = 20; // every 20 users a new thread is created + const int iNumBlocks = static_cast ( std::ceil ( static_cast ( iNumClients ) / iMTBlockSize ) ); + + for ( int iBlockCnt = 0; iBlockCnt < iNumBlocks; iBlockCnt++ ) + { + // Generate a separate mix for each channel, OPUS encode the + // audio data and transmit the network packet. The work is + // distributed over all available processor cores. + // By using the future synchronizer we make sure that all + // threads are done when we leave the timer callback function. + const int iStartChanCnt = iBlockCnt * iNumBlocks; + const int iStopChanCnt = std::min ( ( iBlockCnt + 1 ) * iNumBlocks - 1, iNumClients - 1 ); + + FutureSynchronizer.addFuture ( QtConcurrent::run ( this, + &CServer::MixEncodeTransmitDataBlocks, + iStartChanCnt, + iStopChanCnt, + iNumClients ) ); + } +#endif } else { @@ -1038,15 +1049,30 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE Q_UNUSED ( iUnused ) } +#ifdef USE_MULTITHREADING +void CServer::MixEncodeTransmitDataBlocks ( const int iStartChanCnt, + const int iStopChanCnt, + const int iNumClients ) +{ + // loop over all channels in the current block + for ( int iChanCnt = iStartChanCnt; iChanCnt <= iStopChanCnt; iChanCnt++ ) + { + MixEncodeTransmitData ( iChanCnt, iNumClients ); + } +} +#endif + /// @brief Mix all audio data from all clients together, encode and transmit void CServer::MixEncodeTransmitData ( const int iChanCnt, - const int iCurChanID, const int iNumClients ) { int i, j, k, iUnused; CVector& vecdIntermProcBuf = vecvecsIntermediateProcBuf[iChanCnt]; // use reference for faster access CVector& vecsSendData = vecvecsSendData[iChanCnt]; // use reference for faster access + // get actual ID of current channel + const int iCurChanID = vecChanIDsCurConChan[iChanCnt]; + // init intermediate processing vector with zeros since we mix all channels on that vector vecdIntermProcBuf.Reset ( 0 ); diff --git a/src/server.h b/src/server.h index 80cff077ef..3282674562 100755 --- a/src/server.h +++ b/src/server.h @@ -304,8 +304,13 @@ class CServer : void WriteHTMLChannelList(); +#ifdef USE_MULTITHREADING + void MixEncodeTransmitDataBlocks ( const int iStartChanCnt, + const int iStopChanCnt, + const int iNumClients ); +#endif + void MixEncodeTransmitData ( const int iChanCnt, - const int iCurChanID, const int iNumClients ); virtual void customEvent ( QEvent* pEvent ); From fafc258b98e1428b92f2fc4348c8b1e130c9daf1 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 24 Aug 2020 11:30:34 +0200 Subject: [PATCH 513/936] bug fix --- src/server.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/server.cpp b/src/server.cpp index d41c393cf9..e0a0dccf16 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -1028,8 +1028,8 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE // distributed over all available processor cores. // By using the future synchronizer we make sure that all // threads are done when we leave the timer callback function. - const int iStartChanCnt = iBlockCnt * iNumBlocks; - const int iStopChanCnt = std::min ( ( iBlockCnt + 1 ) * iNumBlocks - 1, iNumClients - 1 ); + const int iStartChanCnt = iBlockCnt * iMTBlockSize; + const int iStopChanCnt = std::min ( ( iBlockCnt + 1 ) * iMTBlockSize - 1, iNumClients - 1 ); FutureSynchronizer.addFuture ( QtConcurrent::run ( this, &CServer::MixEncodeTransmitDataBlocks, From 8c347a21e3bd1b627f96bb567a030985993a6c9e Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Fri, 28 Aug 2020 23:05:38 +0200 Subject: [PATCH 514/936] Change stop server message when idling #551 --- src/serverlogging.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/serverlogging.cpp b/src/serverlogging.cpp index 2c2ee4cdb0..6ed905b1e6 100755 --- a/src/serverlogging.cpp +++ b/src/serverlogging.cpp @@ -59,7 +59,7 @@ void CServerLogging::AddNewConnection ( const QHostAddress& ClientInetAddr, void CServerLogging::AddServerStopped() { - const QString strLogStr = CurTimeDatetoLogString() + ",, server stopped " + const QString strLogStr = CurTimeDatetoLogString() + ",, server idling " "-------------------------------------"; QTextStream& tsConsoleStream = *( ( new ConsoleWriterFactory() )->get() ); From 8e02c2764ddd37b815f231686f6e78f69411f159 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 29 Aug 2020 08:48:56 +0200 Subject: [PATCH 515/936] merge fixes --- ChangeLog | 4 +++- linux/sound.cpp | 2 +- src/soundbase.cpp | 6 +++--- src/soundbase.h | 6 +++--- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4b61c9ab12..b1e9125655 100644 --- a/ChangeLog +++ b/ChangeLog @@ -11,6 +11,8 @@ - added Jack audio audio latency calculation, coded by bflamig (#437) +- bug fix: crash when using the Jack backend and quickly reconfiguring, coded by hselasky (#543) + - bug fix: Alt+h shortcut to open the Chat dialog did not work, use Alt+c instead @@ -195,7 +197,7 @@ TODO use command line argument to enable multithreading instead of qmake CONFIG - new command line option -d to disconnect all clients on shutdown of the server (#161) -- bug fix: for mono capture jack audio interface Jamulus complains it +- bug fix: for mono capture Jack audio interface Jamulus complains it cannot make connections (#137) - bug fix: fixed that Jamulus segfaults when jackd is restarted (#122, #127) diff --git a/linux/sound.cpp b/linux/sound.cpp index 7ea475a91a..2e54fe2c24 100755 --- a/linux/sound.cpp +++ b/linux/sound.cpp @@ -241,7 +241,7 @@ int CSound::process ( jack_nframes_t nframes, void* arg ) int i; // make sure we are locked during execution - QMutexLocker locker(&pSound->MutexAudioProcessCb); + QMutexLocker locker ( &pSound->MutexAudioProcessCallback ); if ( pSound->IsRunning() && ( nframes == static_cast ( pSound->iJACKBufferSizeMono ) ) ) { diff --git a/src/soundbase.cpp b/src/soundbase.cpp index 18b2870f5d..75e1c0f126 100755 --- a/src/soundbase.cpp +++ b/src/soundbase.cpp @@ -75,14 +75,14 @@ void CSoundBase::Stop() // set flag so that thread can leave the main loop bRun = false; - // drain the audio process callback - QMutexLocker locker(&MutexAudioProcessCb); + // wait for draining the audio process callback + QMutexLocker locker ( &MutexAudioProcessCallback ); } void CSoundBase::run() { // make sure we are locked during execution - QMutexLocker locker(&MutexAudioProcessCb); + QMutexLocker locker ( &MutexAudioProcessCallback ); // main loop of working thread while ( bRun ) diff --git a/src/soundbase.h b/src/soundbase.h index 562482a238..311f52b82a 100755 --- a/src/soundbase.h +++ b/src/soundbase.h @@ -136,9 +136,9 @@ class CSoundBase : public QThread virtual bool Read ( CVector& ) { printf ( "no sound!" ); return false; } virtual bool Write ( CVector& ) { printf ( "no sound!" ); return false; } - void run(); - bool bRun; - QMutex MutexAudioProcessCb; + void run(); + bool bRun; + QMutex MutexAudioProcessCallback; void ParseMIDIMessage ( const CVector& vMIDIPaketBytes ); From 4c747f844241e1064c64c97247b8dd936f30b7b5 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 29 Aug 2020 09:05:58 +0200 Subject: [PATCH 516/936] took some changes from the multithreading branch --- src/recorder/jamcontroller.cpp | 5 +++-- src/socket.h | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/recorder/jamcontroller.cpp b/src/recorder/jamcontroller.cpp index e0b439f86c..6faef5cdf5 100755 --- a/src/recorder/jamcontroller.cpp +++ b/src/recorder/jamcontroller.cpp @@ -114,8 +114,9 @@ void CJamController::SetRecordingDir ( QString newRecordingDir, strRecordingDir = newRecordingDir; pthJamRecorder = new QThread(); + pthJamRecorder->setObjectName ( "JamRecorder" ); + pJamRecorder->moveToThread ( pthJamRecorder ); - pthJamRecorder->setObjectName ( "Jamulus::JamRecorder" ); // QT signals QObject::connect ( pthJamRecorder, &QThread::finished, @@ -151,7 +152,7 @@ void CJamController::SetRecordingDir ( QString newRecordingDir, QObject::connect ( pJamRecorder, &CJamRecorder::RecordingSessionStarted, this, &CJamController::RecordingSessionStarted ); - pthJamRecorder->start(); + pthJamRecorder->start ( QThread::NormalPriority ); } else diff --git a/src/socket.h b/src/socket.h index bc5c51c477..ddb5099bb3 100755 --- a/src/socket.h +++ b/src/socket.h @@ -169,7 +169,7 @@ class CHighPrioSocket : public QObject { public: CSocketThread ( CSocket* pNewSocket = nullptr, QObject* parent = nullptr ) : - QThread ( parent ), pSocket ( pNewSocket ), bRun ( true ) {} + QThread ( parent ), pSocket ( pNewSocket ), bRun ( true ) { setObjectName ( "CSocketThread" ); } void Stop() { From 7ca52e3adfcf555f82f3003252d25c21713c5102 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 29 Aug 2020 13:03:13 +0200 Subject: [PATCH 517/936] added a command line argument to enable multithreading in the server --- ChangeLog | 5 ++-- Jamulus.pro | 11 ++----- src/main.cpp | 19 +++++++++++- src/server.cpp | 68 +++++++++++++++++++++++-------------------- src/server.h | 13 +++++---- windows/installer.nsi | 3 ++ 6 files changed, 69 insertions(+), 50 deletions(-) diff --git a/ChangeLog b/ChangeLog index b1e9125655..ec361ae1ed 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,8 @@ - added an optional server list whitelist filter (#413) +- added a command line argument to enable multithreading in the server + - store recorder settings, coded by pljones (#313) - accessibility improvements, coded by chigkim (#498, #512) @@ -17,8 +19,7 @@ TODO at about 70 client connections the client/server do not show/list all clients anymore (#547) -TODO improve multithreading -> merge branch into master -TODO use command line argument to enable multithreading instead of qmake CONFIG + diff --git a/Jamulus.pro b/Jamulus.pro index bf350a6468..30a79282d3 100755 --- a/Jamulus.pro +++ b/Jamulus.pro @@ -6,20 +6,13 @@ contains(CONFIG, "noupcasename") { TARGET = jamulus } -# support multi-threading with OMP if requested -contains(CONFIG, "multithreading") { - message(Multithreading in the server is enabled.) - message(NOTE THAT THE MULTITHREADING IMPLEMENTATION IS STILL EXPERIMENTAL AND MAY NOT BE STABLE.) - DEFINES += USE_MULTITHREADING - QT += concurrent -} - CONFIG += qt \ thread \ release QT += network \ - xml + xml \ + concurrent contains(CONFIG, "headless") { message(Headless mode activated.) diff --git a/src/main.cpp b/src/main.cpp index e81e2cfbb0..2f1ea56746 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -66,6 +66,7 @@ int main ( int argc, char** argv ) bool bShowComplRegConnList = false; bool bDisconnectAllClientsOnQuit = false; bool bUseDoubleSystemFrameSize = true; // default is 128 samples frame size + bool bUseMultithreading = false; bool bShowAnalyzerConsole = false; bool bMuteStream = false; bool bCentServPingServerInList = false; @@ -133,7 +134,7 @@ int main ( int argc, char** argv ) } - // Use 64 samples frame size mode ---------------------------------------------------- + // Use 64 samples frame size mode -------------------------------------- if ( GetFlagArgument ( argv, i, "-F", @@ -146,6 +147,19 @@ int main ( int argc, char** argv ) } + // Use multithreading -------------------------------------------------- + if ( GetFlagArgument ( argv, + i, + "-T", + "--multithreading" ) ) + { + bUseMultithreading = true; + tsConsole << "- using multithreading" << endl; + CommandLineOptions << "--multithreading"; + continue; + } + + // Maximum number of channels ------------------------------------------ if ( GetNumericArgument ( tsConsole, argc, @@ -667,6 +681,7 @@ int main ( int argc, char** argv ) bCentServPingServerInList, bDisconnectAllClientsOnQuit, bUseDoubleSystemFrameSize, + bUseMultithreading, eLicenceType ); #ifndef HEADLESS @@ -778,6 +793,8 @@ QString UsageArguments ( char **argv ) " -R, --recording enables recording and sets directory to contain\n" " recorded jams\n" " -s, --server start server\n" + " -T, --multithreading use multithreading to make better use of\n" + " multi-core CPUs and support more clients" " -u, --numchannels maximum number of channels\n" " -w, --welcomemessage welcome message on connect\n" " -z, --startminimized start minimizied\n" diff --git a/src/server.cpp b/src/server.cpp index e0a0dccf16..6e348dc15e 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -232,8 +232,10 @@ CServer::CServer ( const int iNewMaxNumChan, const bool bNCentServPingServerInList, const bool bNDisconnectAllClientsOnQuit, const bool bNUseDoubleSystemFrameSize, + const bool bNUseMultithreading, const ELicenceType eNLicenceType ) : bUseDoubleSystemFrameSize ( bNUseDoubleSystemFrameSize ), + bUseMultithreading ( bNUseMultithreading ), iMaxNumChannels ( iNewMaxNumChan ), Socket ( this, iPortNumber ), Logging ( ), @@ -965,10 +967,6 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE // Process data ------------------------------------------------------------ -#ifdef USE_MULTITHREADING - QFutureSynchronizer FutureSynchronizer; -#endif - // Check if at least one client is connected. If not, stop server until // one client is connected. if ( iNumClients > 0 ) @@ -1008,36 +1006,44 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE vecvecsData[iChanCnt] ); } -#ifndef USE_MULTITHREADING - // generate a separate mix for each channel, OPUS encode the - // audio data and transmit the network packet - MixEncodeTransmitData ( iChanCnt, - iNumClients ); -#endif + // processing without multithreading + if ( !bUseMultithreading ) + { + // generate a separate mix for each channel, OPUS encode the + // audio data and transmit the network packet + MixEncodeTransmitData ( iChanCnt, + iNumClients ); + } } -#ifdef USE_MULTITHREADING + // processing with multithreading + if ( bUseMultithreading ) + { // TODO optimization of the MTBlockSize value - const int iMTBlockSize = 20; // every 20 users a new thread is created - const int iNumBlocks = static_cast ( std::ceil ( static_cast ( iNumClients ) / iMTBlockSize ) ); + const int iMTBlockSize = 20; // every 20 users a new thread is created + const int iNumBlocks = static_cast ( std::ceil ( static_cast ( iNumClients ) / iMTBlockSize ) ); - for ( int iBlockCnt = 0; iBlockCnt < iNumBlocks; iBlockCnt++ ) - { - // Generate a separate mix for each channel, OPUS encode the - // audio data and transmit the network packet. The work is - // distributed over all available processor cores. - // By using the future synchronizer we make sure that all - // threads are done when we leave the timer callback function. - const int iStartChanCnt = iBlockCnt * iMTBlockSize; - const int iStopChanCnt = std::min ( ( iBlockCnt + 1 ) * iMTBlockSize - 1, iNumClients - 1 ); - - FutureSynchronizer.addFuture ( QtConcurrent::run ( this, - &CServer::MixEncodeTransmitDataBlocks, - iStartChanCnt, - iStopChanCnt, - iNumClients ) ); + for ( int iBlockCnt = 0; iBlockCnt < iNumBlocks; iBlockCnt++ ) + { + // Generate a separate mix for each channel, OPUS encode the + // audio data and transmit the network packet. The work is + // distributed over all available processor cores. + // By using the future synchronizer we make sure that all + // threads are done when we leave the timer callback function. + const int iStartChanCnt = iBlockCnt * iMTBlockSize; + const int iStopChanCnt = std::min ( ( iBlockCnt + 1 ) * iMTBlockSize - 1, iNumClients - 1 ); + + FutureSynchronizer.addFuture ( QtConcurrent::run ( this, + &CServer::MixEncodeTransmitDataBlocks, + iStartChanCnt, + iStopChanCnt, + iNumClients ) ); + } + + // make sure all concurrent run threads have finished when we leave this function + FutureSynchronizer.waitForFinished(); + FutureSynchronizer.clearFutures(); } -#endif } else { @@ -1049,18 +1055,16 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE Q_UNUSED ( iUnused ) } -#ifdef USE_MULTITHREADING void CServer::MixEncodeTransmitDataBlocks ( const int iStartChanCnt, const int iStopChanCnt, const int iNumClients ) { - // loop over all channels in the current block + // loop over all channels in the current block, needed for multithreading support for ( int iChanCnt = iStartChanCnt; iChanCnt <= iStopChanCnt; iChanCnt++ ) { MixEncodeTransmitData ( iChanCnt, iNumClients ); } } -#endif /// @brief Mix all audio data from all clients together, encode and transmit void CServer::MixEncodeTransmitData ( const int iChanCnt, diff --git a/src/server.h b/src/server.h index 3282674562..3ed2edaa6f 100755 --- a/src/server.h +++ b/src/server.h @@ -29,11 +29,9 @@ #include #include #include +#include +#include #include -#ifdef USE_MULTITHREADING -# include -# include -#endif #ifdef USE_OPUS_SHARED_LIB # include "opus/opus_custom.h" #else @@ -184,6 +182,7 @@ class CServer : const bool bNCentServPingServerInList, const bool bNDisconnectAllClientsOnQuit, const bool bNUseDoubleSystemFrameSize, + const bool bNUseMultithreading, const ELicenceType eNLicenceType ); virtual ~CServer(); @@ -304,11 +303,9 @@ class CServer : void WriteHTMLChannelList(); -#ifdef USE_MULTITHREADING void MixEncodeTransmitDataBlocks ( const int iStartChanCnt, const int iStopChanCnt, const int iNumClients ); -#endif void MixEncodeTransmitData ( const int iChanCnt, const int iNumClients ); @@ -319,6 +316,10 @@ class CServer : bool bUseDoubleSystemFrameSize; int iServerFrameSizeSamples; + // variables needed for multithreading support + bool bUseMultithreading; + QFutureSynchronizer FutureSynchronizer; + bool CreateLevelsForAllConChannels ( const int iNumClients, const CVector& vecNumAudioChannels, const CVector > vecvecsData, diff --git a/windows/installer.nsi b/windows/installer.nsi index 7ae68103ee..7040e06659 100755 --- a/windows/installer.nsi +++ b/windows/installer.nsi @@ -82,6 +82,7 @@ Section File "$%QTDIR64%\bin\Qt5Widgets.dll" File "$%QTDIR64%\bin\Qt5Network.dll" File "$%QTDIR64%\bin\Qt5Svg.dll" + File "$%QTDIR64%\bin\Qt5Concurrent.dll" File "$%QTDIR64%\bin\Qt5Xml.dll" ${Else} File "$%QTDIR32%\bin\Qt5Core.dll" @@ -89,6 +90,7 @@ Section File "$%QTDIR32%\bin\Qt5Widgets.dll" File "$%QTDIR32%\bin\Qt5Network.dll" File "$%QTDIR32%\bin\Qt5Svg.dll" + File "$%QTDIR32%\bin\Qt5Concurrent.dll" File "$%QTDIR32%\bin\Qt5Xml.dll" ${EndIf} @@ -185,6 +187,7 @@ Delete $INSTDIR\Qt5Gui.dll Delete $INSTDIR\Qt5Widgets.dll Delete $INSTDIR\Qt5Network.dll Delete $INSTDIR\Qt5Svg.dll +Delete $INSTDIR\Qt5Concurrent.dll Delete $INSTDIR\Qt5Xml.dll Delete $INSTDIR\COPYING Delete $INSTDIR\platforms\qwindows.dll From 963b03deb9520f4ce990c8caeb37728adab0a8a7 Mon Sep 17 00:00:00 2001 From: Peter L Jones Date: Fri, 28 Aug 2020 23:40:22 +0100 Subject: [PATCH 518/936] Mention use of "-e localhost" --- src/main.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main.cpp b/src/main.cpp index 2f1ea56746..ce59ccefaf 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -775,6 +775,7 @@ QString UsageArguments ( char **argv ) " -a, --servername server name, required for HTML status\n" " -d, --discononquit disconnect all clients on quit\n" " -e, --centralserver address of the central server\n" + " (or 'localhost' to be a central server)\n" " -f, --listfilter server list whitelist filter in the format:\n" " [IP address 1];[IP address 2];[IP address 3]; ..." " -F, --fastupdate use 64 samples frame size mode\n" From c84517a25f49aed97e6cd4c0ee15b4ac10e05304 Mon Sep 17 00:00:00 2001 From: Peter L Jones Date: Fri, 28 Aug 2020 23:46:05 +0100 Subject: [PATCH 519/936] Move saving settings to CSettings --- src/clientdlg.cpp | 3 --- src/clientdlg.h | 2 -- src/serverdlg.cpp | 3 --- src/serverdlg.h | 2 -- src/settings.cpp | 8 ++++---- src/settings.h | 26 ++++++++++++++++++-------- 6 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/clientdlg.cpp b/src/clientdlg.cpp index f6db5002d7..c8b5f3f1e8 100755 --- a/src/clientdlg.cpp +++ b/src/clientdlg.cpp @@ -442,9 +442,6 @@ CClientDlg::CClientDlg ( CClient* pNCliP, this, &CClientDlg::OnCLVersionAndOSReceived ); #endif - QObject::connect ( QCoreApplication::instance(), &QCoreApplication::aboutToQuit, - this, &CClientDlg::OnAboutToQuit ); - QObject::connect ( &ClientSettingsDlg, &CClientSettingsDlg::GUIDesignChanged, this, &CClientDlg::OnGUIDesignChanged ); diff --git a/src/clientdlg.h b/src/clientdlg.h index 54af92a049..11f1aa0658 100755 --- a/src/clientdlg.h +++ b/src/clientdlg.h @@ -121,8 +121,6 @@ class CClientDlg : public QDialog, private Ui_CClientDlgBase CMusProfDlg MusicianProfileDlg; public slots: - void OnAboutToQuit() { pSettings->Save(); } - void OnConnectDisconBut(); void OnTimerSigMet(); void OnTimerBuffersLED(); diff --git a/src/serverdlg.cpp b/src/serverdlg.cpp index 83241bcb35..ecb4d6e6ee 100755 --- a/src/serverdlg.cpp +++ b/src/serverdlg.cpp @@ -448,9 +448,6 @@ lvwClients->setMinimumHeight ( 140 ); QObject::connect ( pServer, &CServer::StopRecorder, this, &CServerDlg::OnStopRecorder ); - QObject::connect ( QCoreApplication::instance(), &QCoreApplication::aboutToQuit, - this, &CServerDlg::OnAboutToQuit ); - QObject::connect ( &SystemTrayIcon, &QSystemTrayIcon::activated, this, &CServerDlg::OnSysTrayActivated ); diff --git a/src/serverdlg.h b/src/serverdlg.h index f9fcb9800c..22624c292e 100755 --- a/src/serverdlg.h +++ b/src/serverdlg.h @@ -91,8 +91,6 @@ class CServerDlg : public QDialog, private Ui_CServerDlgBase QMenu* pSystemTrayIconMenu; public slots: - void OnAboutToQuit() { pSettings->Save(); } - void OnRegisterServerStateChanged ( int value ); void OnStartOnOSStartStateChanged ( int value ); void OnUseCCLicenceStateChanged ( int value ); diff --git a/src/settings.cpp b/src/settings.cpp index 818258a47b..b470961e42 100755 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -248,8 +248,8 @@ void CClientSettings::SaveFaderSettings ( const QString& strCurFileName ) WriteToFile ( strCurFileName, IniXMLDocument ); } -void CClientSettings::ReadSettingsFromXML ( const QDomDocument& IniXMLDocument, - const QList ) +void CClientSettings::ReadSettingsFromXML ( const QDomDocument& IniXMLDocument, + const QList& CommandLineOptions ) { int iIdx; int iValue; @@ -781,8 +781,8 @@ void CClientSettings::WriteFaderSettingsToXML ( QDomDocument& IniXMLDocument ) // Server settings ------------------------------------------------------------- -void CServerSettings::ReadSettingsFromXML ( const QDomDocument& IniXMLDocument, - const QList CommandLineOptions ) +void CServerSettings::ReadSettingsFromXML ( const QDomDocument& IniXMLDocument, + const QList& CommandLineOptions ) { int iValue; bool bValue; diff --git a/src/settings.h b/src/settings.h index 455de2d46a..dc10ce3d96 100755 --- a/src/settings.h +++ b/src/settings.h @@ -36,13 +36,19 @@ /* Classes ********************************************************************/ -class CSettings +class CSettings : public QObject { + Q_OBJECT + public: CSettings() : vecWindowPosMain ( ), // empty array strLanguage ( "" ), - strFileName ( "" ) {} + strFileName ( "" ) + { + QObject::connect ( QCoreApplication::instance(), &QCoreApplication::aboutToQuit, + this, &CSettings::OnAboutToQuit ); + } void Load ( const QList CommandLineOptions ); void Save(); @@ -53,8 +59,8 @@ class CSettings protected: virtual void WriteSettingsToXML ( QDomDocument& IniXMLDocument ) = 0; - virtual void ReadSettingsFromXML ( const QDomDocument& IniXMLDocument, - const QList CommandLineOptions ) = 0; + virtual void ReadSettingsFromXML ( const QDomDocument& IniXMLDocument, + const QList& CommandLineOptions ) = 0; void ReadFromFile ( const QString& strCurFileName, QDomDocument& XMLDocument ); @@ -118,6 +124,10 @@ class CSettings const QString& sValue = "" ); QString strFileName; + +public slots: + void OnAboutToQuit() { Save(); } + }; @@ -173,8 +183,8 @@ class CClientSettings : public CSettings protected: // No CommandLineOptions used when reading Client inifile virtual void WriteSettingsToXML ( QDomDocument& IniXMLDocument ) override; - virtual void ReadSettingsFromXML ( const QDomDocument& IniXMLDocument, - const QList ) override; + virtual void ReadSettingsFromXML ( const QDomDocument& IniXMLDocument, + const QList& CommandLineOptions) override; void ReadFaderSettingsFromXML ( const QDomDocument& IniXMLDocument ); void WriteFaderSettingsToXML ( QDomDocument& IniXMLDocument ); @@ -193,8 +203,8 @@ class CServerSettings : public CSettings protected: virtual void WriteSettingsToXML ( QDomDocument& IniXMLDocument ) override; - virtual void ReadSettingsFromXML ( const QDomDocument& IniXMLDocument, - const QList CommandLineOptions ) override; + virtual void ReadSettingsFromXML ( const QDomDocument& IniXMLDocument, + const QList& CommandLineOptions ) override; CServer* pServer; }; From 964e986098c1a38b49b0839fb37de9271f960763 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 29 Aug 2020 19:55:59 +0200 Subject: [PATCH 520/936] small fix --- src/settings.h | 1 - 1 file changed, 1 deletion(-) diff --git a/src/settings.h b/src/settings.h index dc10ce3d96..d0dd26a06e 100755 --- a/src/settings.h +++ b/src/settings.h @@ -127,7 +127,6 @@ class CSettings : public QObject public slots: void OnAboutToQuit() { Save(); } - }; From 9fccc7a182d06c9049d84041961ec4830a7a172e Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 30 Aug 2020 10:52:48 +0200 Subject: [PATCH 521/936] preparation work for simple update check (#370) --- ChangeLog | 2 +- src/client.cpp | 2 -- src/client.h | 2 -- src/clientdlg.cpp | 13 +++++++++++-- src/clientdlg.h | 12 ++++++++++-- 5 files changed, 22 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index ec361ae1ed..a89020dfee 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,7 @@ + 3.5.10git <- NOTE: the release version number will be 3.5.11 - added an optional server list whitelist filter (#413) @@ -18,7 +19,6 @@ - bug fix: Alt+h shortcut to open the Chat dialog did not work, use Alt+c instead -TODO at about 70 client connections the client/server do not show/list all clients anymore (#547) diff --git a/src/client.cpp b/src/client.cpp index 0acb719ab1..4dd9d58216 100755 --- a/src/client.cpp +++ b/src/client.cpp @@ -169,10 +169,8 @@ CClient::CClient ( const quint16 iPortNumber, QObject::connect ( &ConnLessProtocol, &CProtocol::CLDisconnection , this, &CClient::OnCLDisconnection ); -#ifdef ENABLE_CLIENT_VERSION_AND_OS_DEBUGGING QObject::connect ( &ConnLessProtocol, &CProtocol::CLVersionAndOSReceived, this, &CClient::CLVersionAndOSReceived ); -#endif QObject::connect ( &ConnLessProtocol, &CProtocol::CLChannelLevelListReceived, this, &CClient::CLChannelLevelListReceived ); diff --git a/src/client.h b/src/client.h index b5c5597b53..d7d470dfb5 100755 --- a/src/client.h +++ b/src/client.h @@ -419,11 +419,9 @@ protected slots: int iPingTime, int iNumClients ); -#ifdef ENABLE_CLIENT_VERSION_AND_OS_DEBUGGING void CLVersionAndOSReceived ( CHostAddress InetAddr, COSUtil::EOpSystemType eOSType, QString strVersion ); -#endif void CLChannelLevelListReceived ( CHostAddress InetAddr, CVector vecLevelList ); diff --git a/src/clientdlg.cpp b/src/clientdlg.cpp index c8b5f3f1e8..37c74f59b2 100755 --- a/src/clientdlg.cpp +++ b/src/clientdlg.cpp @@ -437,10 +437,8 @@ CClientDlg::CClientDlg ( CClient* pNCliP, QObject::connect ( pClient, &CClient::VersionAndOSReceived, this, &CClientDlg::OnVersionAndOSReceived ); -#ifdef ENABLE_CLIENT_VERSION_AND_OS_DEBUGGING QObject::connect ( pClient, &CClient::CLVersionAndOSReceived, this, &CClientDlg::OnCLVersionAndOSReceived ); -#endif QObject::connect ( &ClientSettingsDlg, &CClientSettingsDlg::GUIDesignChanged, this, &CClientDlg::OnGUIDesignChanged ); @@ -498,6 +496,17 @@ CClientDlg::CClientDlg ( CClient* pNCliP, { chbLocalMute->setCheckState ( Qt::Checked ); } + + // query the central server version number needed for update check (note + // that the connection less message respond may not make it back but that + // is not critical since the next time Jamulus is started we have another + // chance and the update check is not time-critical at all) + CHostAddress CentServerHostAddress; + + NetworkUtil().ParseNetworkAddress ( DEFAULT_SERVER_ADDRESS, + CentServerHostAddress ); + + pClient->CreateCLServerListReqVerAndOSMes ( CentServerHostAddress ); } void CClientDlg::closeEvent ( QCloseEvent* Event ) diff --git a/src/clientdlg.h b/src/clientdlg.h index 11f1aa0658..f61fd8e29e 100755 --- a/src/clientdlg.h +++ b/src/clientdlg.h @@ -140,12 +140,20 @@ public slots: void OnVersionAndOSReceived ( COSUtil::EOpSystemType , QString strVersion ); -#ifdef ENABLE_CLIENT_VERSION_AND_OS_DEBUGGING void OnCLVersionAndOSReceived ( CHostAddress InetAddr, COSUtil::EOpSystemType eOSType, QString strVersion ) - { ConnectDlg.SetVersionAndOSType ( InetAddr, eOSType, strVersion ); } + { + +/* +// TODO update check: check the received version if it is newer than ours and show a label if it is newer on the main dialog +qDebug() << strVersion; +*/ + +#ifdef ENABLE_CLIENT_VERSION_AND_OS_DEBUGGING + ConnectDlg.SetVersionAndOSType ( InetAddr, eOSType, strVersion ); #endif + } void OnLoadChannelSetup(); void OnSaveChannelSetup(); From 00ac4c642f1de25511cd7d159c48fe2e1bbad65a Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 30 Aug 2020 11:20:33 +0200 Subject: [PATCH 522/936] some more work for simple update check (#370) --- src/clientdlg.cpp | 23 +++++++++++++++++++++++ src/clientdlg.h | 13 +------------ 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/src/clientdlg.cpp b/src/clientdlg.cpp index 37c74f59b2..3c2f9a8d21 100755 --- a/src/clientdlg.cpp +++ b/src/clientdlg.cpp @@ -741,6 +741,29 @@ void CClientDlg::OnVersionAndOSReceived ( COSUtil::EOpSystemType , #endif } +void CClientDlg::OnCLVersionAndOSReceived ( CHostAddress InetAddr, + COSUtil::EOpSystemType eOSType, + QString strVersion ) +{ + // update check +#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0) + if ( QVersionNumber::compare ( QVersionNumber::fromString ( strVersion ), QVersionNumber::fromString ( VERSION ) ) > 0 ) + { + +// TODO set update check label +qDebug() << "newer version detected, my version: " << VERSION << " central server version: " << strVersion; + + } +#endif + +#ifdef ENABLE_CLIENT_VERSION_AND_OS_DEBUGGING + ConnectDlg.SetVersionAndOSType ( InetAddr, eOSType, strVersion ); +#else + Q_UNUSED ( InetAddr ) // avoid compiler warnings + Q_UNUSED ( eOSType ) // avoid compiler warnings +#endif +} + void CClientDlg::OnChatTextReceived ( QString strChatText ) { ChatDlg.AddChatText ( strChatText ); diff --git a/src/clientdlg.h b/src/clientdlg.h index f61fd8e29e..ff7c498f66 100755 --- a/src/clientdlg.h +++ b/src/clientdlg.h @@ -142,18 +142,7 @@ public slots: void OnCLVersionAndOSReceived ( CHostAddress InetAddr, COSUtil::EOpSystemType eOSType, - QString strVersion ) - { - -/* -// TODO update check: check the received version if it is newer than ours and show a label if it is newer on the main dialog -qDebug() << strVersion; -*/ - -#ifdef ENABLE_CLIENT_VERSION_AND_OS_DEBUGGING - ConnectDlg.SetVersionAndOSType ( InetAddr, eOSType, strVersion ); -#endif - } + QString strVersion ); void OnLoadChannelSetup(); void OnSaveChannelSetup(); From bcdb11ae97fe32f65f2065691ab53d00b06d9a91 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 30 Aug 2020 11:45:25 +0200 Subject: [PATCH 523/936] support a check for updates (#370) -> client GUI --- ChangeLog | 4 +++- src/clientdlg.cpp | 10 ++++++---- src/clientdlgbase.ui | 9 ++++++++- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index a89020dfee..ca3b94cd3c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,8 @@ 3.5.10git <- NOTE: the release version number will be 3.5.11 +- support a check for updates (#370) + - added an optional server list whitelist filter (#413) - added a command line argument to enable multithreading in the server @@ -19,7 +21,7 @@ - bug fix: Alt+h shortcut to open the Chat dialog did not work, use Alt+c instead - +TODO implement "support a check for updates" for the server GUI, too diff --git a/src/clientdlg.cpp b/src/clientdlg.cpp index 3c2f9a8d21..bd84be89fa 100755 --- a/src/clientdlg.cpp +++ b/src/clientdlg.cpp @@ -225,6 +225,11 @@ CClientDlg::CClientDlg ( CClient* pNCliP, lblGlobalInfoLabel->setStyleSheet ( ".QLabel { background: red; }" ); lblGlobalInfoLabel->hide(); + // prepare update check info label (invisible by default) + lblUpdateCheck->setText ( "" + QString ( APP_NAME ) + " " + + tr ( "software upgrade available" ) + "" ); + lblUpdateCheck->hide(); + // Connect on startup ------------------------------------------------------ if ( !strConnOnStartupAddress.isEmpty() ) @@ -749,10 +754,7 @@ void CClientDlg::OnCLVersionAndOSReceived ( CHostAddress InetAddr, #if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0) if ( QVersionNumber::compare ( QVersionNumber::fromString ( strVersion ), QVersionNumber::fromString ( VERSION ) ) > 0 ) { - -// TODO set update check label -qDebug() << "newer version detected, my version: " << VERSION << " central server version: " << strVersion; - + lblUpdateCheck->show(); } #endif diff --git a/src/clientdlgbase.ui b/src/clientdlgbase.ui index 063416452f..30f359d8f1 100755 --- a/src/clientdlgbase.ui +++ b/src/clientdlgbase.ui @@ -6,7 +6,7 @@ 0 0 - 345 + 425 490 @@ -568,6 +568,13 @@ + + + + Update check + + + From 18d06b961ddf45829bfb4d187112eac87290c983 Mon Sep 17 00:00:00 2001 From: Tormod Volden Date: Wed, 26 Aug 2020 19:28:12 +0200 Subject: [PATCH 524/936] debian: Add headless package Only the new jamulus-headless package will include a systemd service, which is called "jamulus-headless.service". The regular jamulus package can be installed in parallel. Signed-off-by: Tormod Volden --- distributions/debian/changelog | 2 +- distributions/debian/control | 18 +++++++++++++++++- distributions/debian/jamulus-headless.install | 2 ++ .../{postinst => jamulus-headless.postinst} | 0 distributions/debian/jamulus-headless.service | 14 ++++++++++++++ distributions/debian/jamulus.install | 4 +++- distributions/debian/rules | 15 +++++++++++++-- 7 files changed, 50 insertions(+), 5 deletions(-) create mode 100644 distributions/debian/jamulus-headless.install rename distributions/debian/{postinst => jamulus-headless.postinst} (100%) create mode 100644 distributions/debian/jamulus-headless.service diff --git a/distributions/debian/changelog b/distributions/debian/changelog index 00cd2ce256..1d240b8cb7 100644 --- a/distributions/debian/changelog +++ b/distributions/debian/changelog @@ -1,4 +1,4 @@ -jamulus (3.5.6~git-0) UNRELEASED; urgency=medium +jamulus (3.5.10~git-0) UNRELEASED; urgency=medium * Initial release. diff --git a/distributions/debian/control b/distributions/debian/control index 77bd912b12..8bf56366c5 100644 --- a/distributions/debian/control +++ b/distributions/debian/control @@ -17,7 +17,6 @@ Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - adduser, Description: Low latency Audio Server/Client The Jamulus software enables musicians to perform real-time jam sessions over the internet. There is one server running the Jamulus server software which @@ -25,3 +24,20 @@ Description: Low latency Audio Server/Client sends the mix back to each client. . It runs on Windows / OSX / Linux. + +Package: jamulus-headless +Architecture: any +Depends: + ${shlibs:Depends}, + ${misc:Depends}, + adduser, +Description: Low latency Audio Server (headless) + The Jamulus software enables musicians to perform real-time jam sessions over + the internet. There is one server running the Jamulus server software which + collects the audio data from each Jamulus client, mixes the audio data and + sends the mix back to each client. + . + It runs on Windows / OSX / Linux. + . + This package contains a Jamulus binary built for headless operation + (without GUI library dependencies) and a jamulus-headless systemd service. diff --git a/distributions/debian/jamulus-headless.install b/distributions/debian/jamulus-headless.install new file mode 100644 index 0000000000..525a2a0c1b --- /dev/null +++ b/distributions/debian/jamulus-headless.install @@ -0,0 +1,2 @@ +usr/bin/jamulus-headless +debian/jamulus-headless.service lib/systemd/system diff --git a/distributions/debian/postinst b/distributions/debian/jamulus-headless.postinst similarity index 100% rename from distributions/debian/postinst rename to distributions/debian/jamulus-headless.postinst diff --git a/distributions/debian/jamulus-headless.service b/distributions/debian/jamulus-headless.service new file mode 100644 index 0000000000..919be42b17 --- /dev/null +++ b/distributions/debian/jamulus-headless.service @@ -0,0 +1,14 @@ +[Unit] +Description=Jamulus headless server +After=network.target +StartLimitIntervalSec=0 + +[Service] +Type=simple +Restart=always +RestartSec=1 +User=jamulus +ExecStart=/bin/sh -c '/usr/bin/jamulus-headless -s -n --servername $(uname -n) -l /var/log/jamulus -e jamulus.fischvolk.de -g -o "$(uname -n);;"' + +[Install] +WantedBy=multi-user.target diff --git a/distributions/debian/jamulus.install b/distributions/debian/jamulus.install index 918bab6fec..548d05342f 100644 --- a/distributions/debian/jamulus.install +++ b/distributions/debian/jamulus.install @@ -1 +1,3 @@ -distributions/jamulus-server.service lib/systemd/system +usr/bin/jamulus +usr/share/applications/jamulus.desktop +usr/share/icons/hicolor/512x512/apps/jamulus.png diff --git a/distributions/debian/rules b/distributions/debian/rules index 03a8bdb8e1..53e0ac0a8b 100755 --- a/distributions/debian/rules +++ b/distributions/debian/rules @@ -6,8 +6,19 @@ export QT_SELECT=qt5 dh $@ override_dh_auto_configure: - qmake CONFIG+=noupcasename PREFIX=/usr Jamulus.pro + mkdir -p build-gui && cd build-gui && qmake TARGET=jamulus PREFIX=/usr ../Jamulus.pro + mkdir -p build-nox && cd build-nox && qmake "CONFIG+=nosound headless" TARGET=jamulus-headless PREFIX=/usr ../Jamulus.pro override_dh_auto_build: cd src/res/translation && lrelease *.ts - dh_auto_build + cd build-gui && make + cd build-nox && make + +override_dh_auto_install: + cd build-gui && make install INSTALL_ROOT=../debian/tmp + cd build-nox && make install INSTALL_ROOT=../debian/tmp + +override_dh_auto_clean: + rm -rf build-gui + rm -rf build-nox + dh_clean From e9cdf8309dd662fd8eb90a378c2a70bd6139ce32 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 30 Aug 2020 14:07:37 +0200 Subject: [PATCH 525/936] implement "support a check for updates" for the server GUI, too --- ChangeLog | 1 - src/clientdlg.cpp | 8 ++++---- src/server.cpp | 3 +++ src/server.h | 9 ++++++++- src/serverdlg.cpp | 34 +++++++++++++++++++++++++++++++++- src/serverdlg.h | 4 ++++ src/serverdlgbase.ui | 7 +++++++ src/settings.cpp | 2 +- src/settings.h | 2 +- 9 files changed, 61 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index ca3b94cd3c..ad2b0c67bb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -21,7 +21,6 @@ - bug fix: Alt+h shortcut to open the Chat dialog did not work, use Alt+c instead -TODO implement "support a check for updates" for the server GUI, too diff --git a/src/clientdlg.cpp b/src/clientdlg.cpp index bd84be89fa..583c0f9d1e 100755 --- a/src/clientdlg.cpp +++ b/src/clientdlg.cpp @@ -508,10 +508,10 @@ CClientDlg::CClientDlg ( CClient* pNCliP, // chance and the update check is not time-critical at all) CHostAddress CentServerHostAddress; - NetworkUtil().ParseNetworkAddress ( DEFAULT_SERVER_ADDRESS, - CentServerHostAddress ); - - pClient->CreateCLServerListReqVerAndOSMes ( CentServerHostAddress ); + if ( NetworkUtil().ParseNetworkAddress ( DEFAULT_SERVER_ADDRESS, CentServerHostAddress ) ) + { + pClient->CreateCLServerListReqVerAndOSMes ( CentServerHostAddress ); + } } void CClientDlg::closeEvent ( QCloseEvent* Event ) diff --git a/src/server.cpp b/src/server.cpp index 6e348dc15e..897ef92c66 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -460,6 +460,9 @@ CServer::CServer ( const int iNewMaxNumChan, QObject::connect ( &ConnLessProtocol, &CProtocol::CLReqVersionAndOS, this, &CServer::OnCLReqVersionAndOS ); + QObject::connect ( &ConnLessProtocol, &CProtocol::CLVersionAndOSReceived, + this, &CServer::CLVersionAndOSReceived ); + QObject::connect ( &ConnLessProtocol, &CProtocol::CLReqConnClientsList, this, &CServer::OnCLReqConnClientsList ); diff --git a/src/server.h b/src/server.h index 3ed2edaa6f..6c64a5eeb9 100755 --- a/src/server.h +++ b/src/server.h @@ -201,6 +201,9 @@ class CServer : CVector& veciJitBufNumFrames, CVector& veciNetwFrameSizeFact ); + void CreateCLServerListReqVerAndOSMes ( const CHostAddress& InetAddr ) + { ConnLessProtocol.CreateCLReqVersionAndOSMes ( InetAddr ); } + // Jam recorder ------------------------------------------------------------ bool GetRecorderInitialised() { return JamController.GetRecorderInitialised(); } @@ -215,7 +218,7 @@ class CServer : void SetRecordingDir( QString newRecordingDir ) { JamController.SetRecordingDir ( newRecordingDir, iServerFrameSizeSamples ); } - virtual void CreateAndSendRecorderStateForAllConChannels(); + void CreateAndSendRecorderStateForAllConChannels(); // Server list management -------------------------------------------------- @@ -407,6 +410,10 @@ class CServer : const int iNumAudChan, const CVector vecsData ); + void CLVersionAndOSReceived ( CHostAddress InetAddr, + COSUtil::EOpSystemType eOSType, + QString strVersion ); + // pass through from jam controller void RestartRecorder(); void StopRecorder(); diff --git a/src/serverdlg.cpp b/src/serverdlg.cpp index ecb4d6e6ee..843e8a7bcc 100755 --- a/src/serverdlg.cpp +++ b/src/serverdlg.cpp @@ -348,6 +348,11 @@ lvwClients->setMinimumHeight ( 140 ); tedWelcomeMessage->setText ( pServer->GetWelcomeMessage() ); + // prepare update check info label (invisible by default) + lblUpdateCheck->setText ( "" + QString ( APP_NAME ) + " " + + tr ( "software upgrade available" ) + "" ); + lblUpdateCheck->hide(); + // update GUI dependencies UpdateGUIDependencies(); @@ -448,13 +453,27 @@ lvwClients->setMinimumHeight ( 140 ); QObject::connect ( pServer, &CServer::StopRecorder, this, &CServerDlg::OnStopRecorder ); + QObject::connect ( pServer, &CServer::CLVersionAndOSReceived, + this, &CServerDlg::OnCLVersionAndOSReceived ); + QObject::connect ( &SystemTrayIcon, &QSystemTrayIcon::activated, this, &CServerDlg::OnSysTrayActivated ); - // Timers ------------------------------------------------------------------ + // Initializations which have to be done after the signals are connected --- // start timer for GUI controls Timer.start ( GUI_CONTRL_UPDATE_TIME ); + + // query the central server version number needed for update check (note + // that the connection less message respond may not make it back but that + // is not critical since the next time Jamulus is started we have another + // chance and the update check is not time-critical at all) + CHostAddress CentServerHostAddress; + + if ( NetworkUtil().ParseNetworkAddress ( DEFAULT_SERVER_ADDRESS, CentServerHostAddress ) ) + { + pServer->CreateCLServerListReqVerAndOSMes ( CentServerHostAddress ); + } } void CServerDlg::closeEvent ( QCloseEvent* Event ) @@ -623,6 +642,19 @@ void CServerDlg::OnSysTrayActivated ( QSystemTrayIcon::ActivationReason ActReaso } } +void CServerDlg::OnCLVersionAndOSReceived ( CHostAddress , + COSUtil::EOpSystemType , + QString strVersion ) +{ + // update check +#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0) + if ( QVersionNumber::compare ( QVersionNumber::fromString ( strVersion ), QVersionNumber::fromString ( VERSION ) ) > 0 ) + { + lblUpdateCheck->show(); + } +#endif +} + void CServerDlg::OnTimer() { CVector vecHostAddresses; diff --git a/src/serverdlg.h b/src/serverdlg.h index 22624c292e..065463cb30 100755 --- a/src/serverdlg.h +++ b/src/serverdlg.h @@ -122,4 +122,8 @@ public slots: void OnClearRecordingDirClicked(); void OnRecordingSessionStarted ( QString sessionDir ) { UpdateRecorderStatus ( sessionDir ); } + + void OnCLVersionAndOSReceived ( CHostAddress , + COSUtil::EOpSystemType , + QString strVersion ); }; diff --git a/src/serverdlgbase.ui b/src/serverdlgbase.ui index 7520967c86..fe2cba0ad0 100755 --- a/src/serverdlgbase.ui +++ b/src/serverdlgbase.ui @@ -289,6 +289,13 @@ + + + + Update check + + + diff --git a/src/settings.cpp b/src/settings.cpp index b470961e42..1a3f8fbf73 100755 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -249,7 +249,7 @@ void CClientSettings::SaveFaderSettings ( const QString& strCurFileName ) } void CClientSettings::ReadSettingsFromXML ( const QDomDocument& IniXMLDocument, - const QList& CommandLineOptions ) + const QList& ) { int iIdx; int iValue; diff --git a/src/settings.h b/src/settings.h index d0dd26a06e..a14ce18b4d 100755 --- a/src/settings.h +++ b/src/settings.h @@ -183,7 +183,7 @@ class CClientSettings : public CSettings // No CommandLineOptions used when reading Client inifile virtual void WriteSettingsToXML ( QDomDocument& IniXMLDocument ) override; virtual void ReadSettingsFromXML ( const QDomDocument& IniXMLDocument, - const QList& CommandLineOptions) override; + const QList& ) override; void ReadFaderSettingsFromXML ( const QDomDocument& IniXMLDocument ); void WriteFaderSettingsToXML ( QDomDocument& IniXMLDocument ); From b3030b72ff9ee2f2a0e20a0a3ee42f2195636138 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 30 Aug 2020 14:14:51 +0200 Subject: [PATCH 526/936] update translation files --- src/res/translation/translation_de_DE.ts | 294 ++++++++++++----------- src/res/translation/translation_es_ES.ts | 294 ++++++++++++----------- src/res/translation/translation_fr_FR.ts | 294 ++++++++++++----------- src/res/translation/translation_it_IT.ts | 294 ++++++++++++----------- src/res/translation/translation_nl_NL.ts | 294 ++++++++++++----------- src/res/translation/translation_pl_PL.ts | 294 ++++++++++++----------- src/res/translation/translation_pt_BR.ts | 294 ++++++++++++----------- src/res/translation/translation_pt_PT.ts | 294 ++++++++++++----------- src/res/translation/translation_sv_SE.ts | 294 ++++++++++++----------- 9 files changed, 1413 insertions(+), 1233 deletions(-) diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index 7c94cd8046..1e599a280d 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -67,57 +67,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 Holländisch - + Italian Italienisch - + German Deutsch - + Polish Polnisch - + Swedish Schwedisch - + About Über @@ -794,52 +794,57 @@ - + C&onnect &Verbinden - + + software upgrade available + + + + &File &Datei - + &View &Ansicht - + &Connection Setup... &Verbinden... - + My &Profile... Mein &Profil... - + C&hat... C&hat... - + &Settings... &Einstellungen... - + &Analyzer Console... - + E&xit &Beenden - + &Edit B&earbeiten @@ -852,18 +857,18 @@ Keine - + Center Mitte - + R - + L @@ -938,53 +943,53 @@ Die CPU des Computers ist voll ausgelastet. - + &Load Mixer Channels Setup... &Laden der Konfiguration der Mixerkanäle... - + &Save Mixer Channels Setup... &Speichern der Konfiguration der Mixerkanäle... - + Sort Channel Users by &Name Sortiere die Kanäle nach dem &Namen - + Sort Channel Users by &Instrument Sortiere die Kanäle nach dem &Instrument - + Sort Channel Users by &Group Sortiere die Kanäle nach der &Gruppe - + Central Server Zentralserver - - + + Select Channel Setup File Auswählen der Datei für die Konfiguration der Mixerkanäle - + user Musiker - + users Musiker - + D&isconnect &Trennen @@ -1066,6 +1071,11 @@ MUTED (Other people won't hear you) Stumm (Die anderen hören dich nicht) + + + Update check + + MUTED (You are not sending any audio to the server) Stumm (Es wird kein Ton zum Server gesendet) @@ -2049,28 +2059,28 @@ CHelpMenu - + &Help &Hilfe - - + + Getting &Started... &Erste Schritte... - + Software &Manual... Software&handbuch... - + What's &This Konte&xthilfe - + &About... Ü&ber... @@ -2078,12 +2088,12 @@ CLanguageComboBox - + Restart Required Neustart erforderlich - + Please restart the application for the language change to take effect. Bitte starte die Applikation neu um die Änderung der Spracheinstellung anzuwenden. @@ -2091,102 +2101,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 Sie stimmen zu, dass alle Daten, Klänge oder andere Arbeiten, die zum Server gesendet werden, Ihnen gehören oder von Ihnen selbst oder einem Lizenzgeber erstellt wurden und dass Sie diese Daten, Klänge oder andere Arbeiten unter die folgende Creative Commons Lizenz stellen (Für weitere Informationen über die Lizenz, siehe - + You are free to: Sie dürfen: - + Share Teilen - + copy and redistribute the material in any medium or format das Material in jedwedem Format oder Medium vervielfältigen und weiterverbreiten - + Adapt Bearbeiten - + remix, transform, and build upon the material das Material remixen, verändern und darauf aufbauen - + The licensor cannot revoke these freedoms as long as you follow the license terms. Der Lizenzgeber kann diese Freiheiten nicht widerrufen solange Sie sich an die Lizenzbedingungen halten. - + Under the following terms: Unter folgenden Bedingungen: - + Attribution Namensnennung - + 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. Sie müssen angemessene Urheber- und Rechteangaben machen, einen Link zur Lizenz beifügen und angeben, ob Änderungen vorgenommen wurden. Diese Angaben dürfen in jeder angemessenen Art und Weise gemacht werden, allerdings nicht so, dass der Eindruck entsteht, der Lizenzgeber unterstütze gerade Sie oder Ihre Nutzung besonders. - + NonCommercial Nicht kommerziell - + You may not use the material for commercial purposes. Sie dürfen das Material nicht für kommerzielle Zwecke nutzen. - + ShareAlike Weitergabe unter gleichen Bedingungen - + If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. Wenn Sie das Material remixen, verändern oder anderweitig direkt darauf aufbauen, dürfen Sie Ihre Beiträge nur unter derselben Lizenz wie das Original verbreiten. - + No additional restrictions Keine weiteren Einschränkungen - + You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. Sie dürfen keine zusätzlichen Klauseln oder technische Verfahren einsetzen, die anderen rechtlich irgendetwas untersagen, was die Lizenz erlaubt. @@ -2216,85 +2226,85 @@ 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 @@ -2307,7 +2317,7 @@ Was man hier sieht wird auch am Fader im Mixer angezeigt, wenn du mit einem - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level 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. @@ -2316,227 +2326,227 @@ Was man hier sieht wird auch am Fader im Mixer angezeigt, wenn du mit einem Server verbunden bist. Dieses Schild wird auch bei allen anderen Musikern, die mit dem gleichen Server verbunden sind, angezeigt. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Was man hier sieht wird auch am Fader im Mixer angezeigt, wenn du mit einem Server verbunden bist. Dieses Schild wird auch bei allen anderen Musikern, die mit dem gleichen Server verbunden sind, angezeigt. - + 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 - + Vocal Bass Gesang Bass - + Vocal Tenor Gesang Tenor - + Vocal Alto Gesang Alt - + Vocal Soprano Gesang Sopran - + Banjo Banjo - + Mandolin Mandoline - + Ukulele - + Bass Ukulele - + Vocal Baritone Gesang Bariton - + Vocal Lead Leadsänger @@ -2865,7 +2875,12 @@ Willkommensnachricht eingeben. Ist kein Text gesetzt, dann ist die Willkommensnachricht deaktiviert. - + + software upgrade available + + + + ERROR FEHLER @@ -2890,7 +2905,7 @@ - + E&xit &Beenden @@ -2916,7 +2931,7 @@ Server - + Select Main Recording Directory Wähle das Aufnahmehauptverzeichnis aus @@ -2957,12 +2972,12 @@ Standard (Nordamerika) - + Server - + &Window &Fenster @@ -3060,6 +3075,11 @@ Show Creative Commons BY-NC-SA 4.0 Licence Dialog Zeige den Creative Commons BY-NC-SA 4.0 Lizenzdialog + + + Update check + + Make My Server Public (Register My Server in the Server List) @@ -3172,7 +3192,7 @@ Der Jack-Client kann nicht aktiviert werden. - + The Jack server was shut down. This software requires a Jack server to run. Try to restart the software to solve the issue. Der Jack-Server wurde gestoppt. Diese Software benötigt aber einen aktiven Jack-Server um zu funktionieren. Versuche die Software neu zu starten um das Problem zu lösen. @@ -3319,17 +3339,17 @@ QCoreApplication - + , Version , Version - + Internet Jam Session Software Internet Jam Session Software - + Released under the GNU General Public License (GPL) Unter der GNU General Public License (GPL) diff --git a/src/res/translation/translation_es_ES.ts b/src/res/translation/translation_es_ES.ts index 3529b798e3..72d774c96f 100644 --- a/src/res/translation/translation_es_ES.ts +++ b/src/res/translation/translation_es_ES.ts @@ -71,57 +71,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 - + Italian Italiano - + German Alemán - + Polish Polaco - + Swedish Sueco - + About Acerca de @@ -814,57 +814,62 @@ - + C&onnect C&onectar - + + software upgrade available + + + + &File &Archivo - + &View &Ver - + &Connection Setup... &Configuración de Conexión... - + My &Profile... Mi &Perfil... - + C&hat... C&hat... - + &Settings... &Configuración... - + &Analyzer Console... &Analyzer Console... - + E&xit S&alir - + &Edit &Editar - + Sort Channel Users by &Group Ordenar Usuarios de Canal por &Grupo @@ -873,18 +878,18 @@ Ninguno - + Center Centro - + R R - + L L @@ -959,48 +964,48 @@ El procesador del cliente o del servidor está al 100%. - + &Load Mixer Channels Setup... &Cargar Configuración Canales Mezclador... - + &Save Mixer Channels Setup... &Guardar Configuración Canales Mezclador... - + Sort Channel Users by &Name Ordenar Canales por &Nombre - + Sort Channel Users by &Instrument Ordenar Canales por &Instrumento - + Central Server Servidor Central - - + + Select Channel Setup File Seleccionar Archivo Configuración Canales - + user usuario - + users usuarios - + D&isconnect D&esconectar @@ -1082,6 +1087,11 @@ MUTED (Other people won't hear you) MUTEADO (Otras personas no te escucharán) + + + Update check + + MUTED (You are not sending any audio to the server) MUTEADO (No estás enviando audio al servidor) @@ -2073,28 +2083,28 @@ CHelpMenu - + &Help &Ayuda - - + + Getting &Started... Cómo &Empezar... - + Software &Manual... Manual del &Software... - + What's &This Qué es &Esto - + &About... &Acerca de... @@ -2102,12 +2112,12 @@ CLanguageComboBox - + Restart Required Reinicio Necesario - + Please restart the application for the language change to take effect. Por favor reinicia la aplicación para que el cambio de idioma surta efecto. @@ -2115,102 +2125,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. @@ -2240,85 +2250,85 @@ 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 @@ -2331,7 +2341,7 @@ Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Escribe tu nombre o alias aquí para que otros 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. @@ -2340,227 +2350,227 @@ Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor. Esta etiqueta también se mostrará en cada cliente conectado al mismo servidor que tú. Si se deja el nombre vacío, se muestra la dirección IP en su lugar. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Lo que introduzcas aquí aparecerá en tu fader del mezclador cuando te conectes a un servidor Jamulus. Esta etiqueta también se mostrará en cada cliente conectado al mismo servidor que tú. - + 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 - + Vocal Bass Voz Bajo - + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Mandolina - + Ukulele Ukulele - + Bass Ukulele Ukulele Barítono - + Vocal Baritone Voz Barítono - + Vocal Lead Voz Principal @@ -2885,7 +2895,12 @@ Escribe un mensaje aquí. Si se deja vacío, el mensaje de bienvenida del servidor se deshabilita. - + + software upgrade available + + + + ERROR ERROR @@ -2910,7 +2925,7 @@ - + E&xit S&alir @@ -2936,7 +2951,7 @@ - + Select Main Recording Directory Seleccionar Directorio Principal de Grabación @@ -2977,12 +2992,12 @@ Por defecto (Norteamérica) - + Server : Servidor - + &Window &Ventana @@ -3080,6 +3095,11 @@ Show Creative Commons BY-NC-SA 4.0 Licence Dialog Mostrar Diálogo de Licencia Creative Commons BY-NC-SA 4.0 + + + Update check + + Make My Server Public (Register My Server in the Server List) @@ -3196,7 +3216,7 @@ No se puede activar el cliente Jack. - + The Jack server was shut down. This software requires a Jack server to run. Try to restart the software to solve the issue. El servidor Jack se ha cerrado. Este software necesita el servidor Jack para funcionar. Intenta reiniciar el software para solucionar este problema. @@ -3343,17 +3363,17 @@ QCoreApplication - + , Version , Versión - + Internet Jam Session Software Internet Jam Session Software - + Released under the GNU General Public License (GPL) Publicado bajo la GNU General Public License (GPL) diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index f0faf8fce5..1679606d2f 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -71,57 +71,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 - + Italian Italien - + German Allemand - + Polish Polonais - + Swedish Suédois - + About À propos @@ -810,52 +810,57 @@ - + C&onnect Se c&onnecter - + + software upgrade available + + + + &File &Fichier - + &View &Vue - + &Connection Setup... Paramètres de &connexion... - + My &Profile... Mon &profil - + C&hat... Tc&hate... - + &Settings... Paramètre&s... - + &Analyzer Console... Console d'&analyse - + E&xit &Quitter - + &Edit Édit&er @@ -868,18 +873,18 @@ Aucun - + Center Centre - + R D - + L G @@ -954,53 +959,53 @@ Le processeur du client ou du serveur est à 100%. - + &Load Mixer Channels Setup... &Charger la configuration des canaux du mixeur... - + &Save Mixer Channels Setup... &Sauvegarder la configuration des canaux du mixeur... - + Sort Channel Users by &Name Trier les utilisateurs du canal par &nom - + Sort Channel Users by &Instrument Trier les utilisateurs du canal par &instrument - + Sort Channel Users by &Group Trier les utilisateurs des canaux par &groupe - + Central Server Serveur central - - + + Select Channel Setup File Sélectionnez le fichier de configuration des canaux - + user utilisateur - + users utilisateurs - + D&isconnect Dé&connecter @@ -1082,6 +1087,11 @@ MUTED (Other people won't hear you) SILENCÉ (les autres personnes ne vous entendent pas) + + + Update check + + MUTED (You are not sending any audio to the server) SILENCÉ (vous n'envoyez aucun son au serveur) @@ -2069,28 +2079,28 @@ CHelpMenu - + &Help &Aide - - + + Getting &Started... Premier pa&s... - + Software &Manual... &Manuel du logiciel... - + What's &This Qu'est-ce que c'est ? - + &About... À &propos @@ -2098,12 +2108,12 @@ CLanguageComboBox - + Restart Required Redémarrage nécessaire - + Please restart the application for the language change to take effect. Veuillez relancer l'application pour que le changement de langue prenne effet. @@ -2111,102 +2121,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. @@ -2236,85 +2246,85 @@ . 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 Dialogue d'édition de pseudo ou de nom - + Instrument picture button Bouton d'image d'instrument - + Country flag button Bouton de drapeau de pays - + City edit box Dialogue d'édition de ville - + Skill level combo box Choix déroulant de niveau de compétence - - - + + + 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 @@ -2327,232 +2337,232 @@ Ce que vous réglez ici apparaîtra au niveau de votre fader sur la table de mixage lorsque vous serez connecté à un serveur - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Écrivez votre nom ou un pseudonyme ici pour que les autres musiciens avec lesquels vous voulez jouer sachent qui vous êtes. Vous pouvez également ajouter une photo de l'instrument dont vous jouez et un drapeau du pays dans lequel vous vous trouvez. Vous pouvez également ajouter votre ville et votre niveau de compétence pour jouer de votre instrument. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Ce que vous réglez ici apparaîtra au niveau de votre chariot sur la table de mixage lorsque vous serez connecté à un serveur Jamulus. Cette étiquette sera également affichée dans chaque client qui est connecté au même serveur que vous. - + 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 - + Vocal Bass Voix basse - + Vocal Tenor Voix ténor - + Vocal Alto Voix alto - + Vocal Soprano Voix soprano - + Banjo Banjo - + Mandolin Mandoline - + Ukulele Ukulélé - + Bass Ukulele Ukulélé basse - + Vocal Baritone Voix baryton - + Vocal Lead Voix principale @@ -2877,7 +2887,12 @@ Tapez un message ici. Si aucun message n'est défini, l'accueil du serveur est désactivé. - + + software upgrade available + + + + ERROR ERREUR @@ -2902,7 +2917,7 @@ - + E&xit &Quitter @@ -2928,7 +2943,7 @@ serveur - + Select Main Recording Directory Sélectionner le répertoire principal des enregistrements @@ -2969,12 +2984,12 @@ Défaut (Amérique du nord) - + Server serveur - + &Window &Fenêtre @@ -3072,6 +3087,11 @@ Show Creative Commons BY-NC-SA 4.0 Licence Dialog Afficher le dialogue de la licence Creative Commons BY-NC-SA 4.0 + + + Update check + + Make My Server Public (Register My Server in the Server List) @@ -3184,7 +3204,7 @@ Impossible d'activer le client Jack. - + The Jack server was shut down. This software requires a Jack server to run. Try to restart the software to solve the issue. Le serveur Jack a été fermé. Ce logiciel nécessite un serveur Jack pour fonctionner. Essayez de redémarrer le logiciel pour résoudre le problème. @@ -3331,17 +3351,17 @@ QCoreApplication - + , Version , version - + Internet Jam Session Software Logiciel de bÅ“uf sur Internet - + Released under the GNU General Public License (GPL) Publié sous la licence publique générale GNU (GPL) diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index 89d915d872..76d0755a1b 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -67,57 +67,57 @@ Le icone delle bandiere sono state realizzate da Marl James - + For details on the contributions check out the Per maggiori informazioni su chi ha contribuito, visitare - + Github Contributors list Lista dei collaboratori su Github - + Spanish Spagnolo - + French Francese - + Portuguese Portoghese - + Dutch Olandese - + Italian Italiano - + German Tedesco - + Polish Polacco - + Swedish Svedese - + About Informazioni su @@ -644,7 +644,7 @@ - + L L @@ -866,77 +866,82 @@ - + C&onnect C&onnetti - + + software upgrade available + + + + &File &File - + &View &Vista - + &Connection Setup... Setup &Connessione... - + My &Profile... &Profilo Personale... - + C&hat... C&hat... - + &Settings... &Settaggi... - + &Analyzer Console... &Analizzatore... - + E&xit &Uscita - + &Load Mixer Channels Setup... &Carica Setup Mixer... - + &Save Mixer Channels Setup... &Salva Setup Mixer... - + &Edit &Modifica - + Sort Channel Users by &Name Ordina canali per &Nome - + Sort Channel Users by &Instrument Ordina canali per &Strumento - + Sort Channel Users by &Group Ordina Canali per Nome &Utente @@ -949,38 +954,38 @@ Nullo - + Center Centro - + R R - + Central Server Server Centrale - - + + Select Channel Setup File Selezione File di Setup dei Canali - + user utente - + users utenti - + D&isconnect D&isconnetti @@ -1062,6 +1067,11 @@ MUTED (Other people won't hear you) + + + Update check + + CClientSettingsDlg @@ -2025,28 +2035,28 @@ CHelpMenu - + &Help &Aiuto - - + + Getting &Started... &Introduzione... - + Software &Manual... &Manuale Software... - + What's &This &Cos'è Questo - + &About... I&nformazioni su... @@ -2054,12 +2064,12 @@ CLanguageComboBox - + Restart Required Riavvio Richiesto - + Please restart the application for the language change to take effect. Perfavore Riavvia il programma oer rendere effettive le modifiche. @@ -2067,102 +2077,102 @@ CLicenceDlg - + I &agree to the above licence terms &Accetto i termini di licenza - + Accept Accetto - + Decline Declino - + By connecting to this server and agreeing to this notice, you agree to the following: Collegandosi a questo server e accettando questo avviso, si accetta quanto segue: - + 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 Dichiari che tutti i dati, audio o altre opere trasmessi a questo server sono di tua proprietà e creati da te o dai tuoi licenziatari e che rendi questi dati, audio o altre opere disponibili a terzi mediante la seguente Licenza Creative Commons (per ulteriori informazioni su questa licenza, vedere - + You are free to: Sei libero di: - + Share Condividere - + copy and redistribute the material in any medium or format copiare e ridistribuire il materiale in qualsiasi supporto o formato - + Adapt Adattare - + remix, transform, and build upon the material remixare, trasformare e modificare il materiale - + The licensor cannot revoke these freedoms as long as you follow the license terms. Il licenziante non può revocare queste libertà fintanto che segui i termini della licenza. - + Under the following terms: Sotto i seguenti requisiti: - + Attribution Attribuzione - + 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. È necessario accreditare in modo appropriato, fornire un collegamento alla licenza e indicare se sono state apportate modifiche. Puoi farlo in modo ragionevole, ma non in modo tale da suggerire a te o al tuo utilizzo il supporto del licenziante. - + NonCommercial Non Commerciale - + You may not use the material for commercial purposes. Non è possibile utilizzare il materiale a fini commerciali. - + ShareAlike Condividere allo stesso modo - + If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. Se remixate, trasformate o sviluppate il materiale, dovete distribuire i vostri contributi con la stessa licenza dell'originale. - + No additional restrictions Nessuna restrizione aggiuntiva - + You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. Non è possibile applicare termini legali o misure tecnologiche che impediscono legalmente ad altre persone di fare qualsiasi cosa consentita dalla licenza. @@ -2188,60 +2198,60 @@ CMusProfDlg - - + + Musician Profile Profilo del Musicista - + Alias/Name Nome/Alias - + Instrument Strumento - + Country Paese - + City Città - + Skill Livello - + &Close &Chiudi - - - + + + None None - + Beginner Principiante - + Intermediate Intermedio - + Expert Esperto @@ -2258,257 +2268,257 @@ questo tag verrà mostrato anche a ciascun client connesso allo stesso server. Se viene lasciato vuoto, verrà visualizzato l'indirizzo IP. - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Scrivi qui il tuo nome o un alias in modo che gli altri musicisti con cui vuoi suonare sappiano chi sei. Puoi anche aggiungere una foto dello strumento che suoni e una bandiera del paese in cui ti trovi. Puoi anche aggiungere la tua città e il tuo livello di abilità nel suonare il tuo strumento. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Ciò che hai impostato apparirà sul tuo fader sulla scheda del mixer quando sei collegato a un server Jamulus. Questo tag verrà mostrato anche su ogni client collegato allo stesso server. - + Alias or name edit box Box di modifica Nome o Alias - + Instrument picture button Immagine dello strumento - + Country flag button Pulsante bandiera del paese - + City edit box Box di modifica Città - + Skill level combo box Livello di Abilità - + Drum Set Batteria - + Djembe Djembe - + Electric Guitar Chitarra elettrica - + Acoustic Guitar Chitarra Acustica - + Bass Guitar Basso Elettrico - + Keyboard Tastiera - + Synthesizer Sintetizzatore - + Grand Piano Grand Piano - + Accordion Fisarmonica - + Vocal Voce - + Microphone Microfono - + Harmonica Armonica - + Trumpet Tromba - + Trombone Trombone - + French Horn Corno Francese - + Tuba Tuba - + Saxophone Sassofono - + Clarinet Clarinet - + Flute Flauto - + Violin Violino - + Cello Cello - + Double Bass Contrabbasso - + Recorder Recorder - + Streamer Streamer - + Listener Ascoltatore - + Guitar+Vocal Chitarra+Voce - + Keyboard+Vocal Tastiera+Voce - + Bodhran Bodhran - + Bassoon Fagotto - + Oboe Oboe - + Harp Arpa - + Viola Viola - + Congas Congas - + Bongo Bongo - + Vocal Bass Voce Basso - + Vocal Tenor Voce Tenore - + Vocal Alto Voce Alto - + Vocal Soprano Voce Soprano - + Banjo Banjo - + Mandolin Mandolino - + Ukulele Uculele - + Bass Ukulele Uculele Basso - + Vocal Baritone Voce Baritono - + Vocal Lead Vocal Lead @@ -2833,7 +2843,12 @@ Digita qui un messaggio. Se non viene impostato alcun messaggio, il benvenuto del server è disabilitato. - + + software upgrade available + + + + ERROR ERRORE @@ -2858,7 +2873,7 @@ - + E&xit &Esci @@ -2884,17 +2899,17 @@ server - + Server Server - + &Window &Finestra - + Select Main Recording Directory Seleziona la directory di registrazione principale @@ -3016,6 +3031,11 @@ Show Creative Commons BY-NC-SA 4.0 Licence Dialog Visualizza la finestra Creative Commons BY-NC-SA 4.0 Licence + + + Update check + + Make My Server Public (Register My Server in the Server List) @@ -3137,7 +3157,7 @@ Jack client non può essere attivato. - + The Jack server was shut down. This software requires a Jack server to run. Try to restart the software to solve the issue. Il server Jack non è attivo. Questo software necessita del server Jack per funzionare. Prova a riavviare il software per risolvere questo problema. @@ -3279,17 +3299,17 @@ QCoreApplication - + , Version Versione, Versione - + Internet Jam Session Software Programma per Jam Session su Internet - + Released under the GNU General Public License (GPL) Rilasciato sotto licensa GNU General Public License (GPL) diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index acd686a60d..e41bd2d652 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -67,57 +67,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 - + Italian Italiaans - + German Duits - + Polish Pools - + Swedish Zweeds - + About Over @@ -636,7 +636,7 @@ - + L L @@ -858,77 +858,82 @@ - + C&onnect C&onnect - + + software upgrade available + + + + &File &Bestand - + &View &Bekijken - + &Connection Setup... &Verbindingsinstellingen... - + My &Profile... Mijn &Profiel... - + C&hat... C&hat... - + &Settings... &Settings... - + &Analyzer Console... &Analyzer Console... - + E&xit E&xit - + &Load Mixer Channels Setup... &Laad Mengkanaalinstellingen... - + &Save Mixer Channels Setup... Mixerkanaalinstellingen &Opslaan... - + &Edit &Bewerken - + Sort Channel Users by &Name Sorteer muzikanten op &Naam - + Sort Channel Users by &Instrument Sorteer muzikanten op &Instrument - + Sort Channel Users by &Group Sorteer muzikanten op &Groep @@ -937,38 +942,38 @@ Geen - + Center Centrum - + R R - + Central Server Centrale Server - - + + Select Channel Setup File Selecteer bestand met Kanaalinstellingen - + user gebruiker - + users gebruikers - + D&isconnect &Afmelden @@ -1050,6 +1055,11 @@ MUTED (Other people won't hear you) GEDEMPT (Anderen horen je niet) + + + Update check + + MUTED (You are not sending any audio to the server) GEDEMPT (Je stuurt geen audio naar de server) @@ -2017,28 +2027,28 @@ CHelpMenu - + &Help &Hulp - - + + Getting &Started... &Aan de slag... - + Software &Manual... Software&handleiding... - + What's &This Wat Is &Dit - + &About... &Over... @@ -2046,12 +2056,12 @@ CLanguageComboBox - + Restart Required Herstart noodzakelijk - + Please restart the application for the language change to take effect. Start de applicatie opnieuw om de taalwijziging door te voeren. @@ -2059,102 +2069,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. @@ -2180,60 +2190,60 @@ 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 @@ -2250,257 +2260,257 @@ 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. - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level 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 je vaardigheidsniveau kunnen ook worden toegevoegd. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Wat u hier instelt verschijnt bij uw fader op het mengpaneel indien verbonden met een Jamulus-server. Deze tag zal ook worden getoond aan andere muzikanten die met deze server verbonden zijn. - + 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 - + Vocal Bass Bas (stem) - + Vocal Tenor Tenor (stem) - + Vocal Alto Alt (stem) - + Vocal Soprano Sopraan (stem) - + Banjo Banjo - + Mandolin Mandoline - + Ukulele Ukelele - + Bass Ukulele Ukelele-bas - + Vocal Baritone Bariton (stem) - + Vocal Lead Leadzanger @@ -2825,7 +2835,12 @@ Typ hier een bericht. Indien niets ingesteld wordt geen welkomsbericht getoond. - + + software upgrade available + + + + ERROR FOUT @@ -2850,7 +2865,7 @@ - + E&xit &Sluiten @@ -2876,7 +2891,7 @@ server - + Select Main Recording Directory Selecteer hoofdgeluidsopnamedirectory @@ -2917,12 +2932,12 @@ Standaard (Noord-Amerika) - + Server Server - + &Window &Window @@ -3020,6 +3035,11 @@ Show Creative Commons BY-NC-SA 4.0 Licence Dialog Toon Creative Commons BY-NC-SA 4.0 Licentie Dialoog + + + Update check + + Make My Server Public (Register My Server in the Server List) @@ -3141,7 +3161,7 @@ Kan de Jack-client niet activeren. - + The Jack server was shut down. This software requires a Jack server to run. Try to restart the software to solve the issue. De Jack-server werd afgesloten. Voor deze software is een Jack-server nodig om te kunnen draaien. Probeer de software te herstarten om het probleem op te lossen. @@ -3283,17 +3303,17 @@ QCoreApplication - + , Version , Versie - + Internet Jam Session Software Internet Jamsessie Software - + Released under the GNU General Public License (GPL) Gereleased onder de GNU General Public License (GPL) diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index b46bab5a24..916cf17ad0 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -39,57 +39,57 @@ - + For details on the contributions check out the - + Github Contributors list - + Spanish hiszpaÅ„ski - + French francuski - + Portuguese portugalski - + Dutch holenderski - + Italian wÅ‚oski - + German niemiecki - + Polish - + Swedish - + About O programie @@ -541,7 +541,7 @@ - + L L @@ -707,77 +707,82 @@ - + C&onnect &Połącz - + + software upgrade available + + + + &File - + &View &Widok - + &Connection Setup... &Konfiguracja połączenia... - + My &Profile... Mój &profil... - + C&hat... &Czat... - + &Settings... &Ustawienia... - + &Analyzer Console... &Konsola analizatora... - + E&xit &Wyjdź - + &Load Mixer Channels Setup... - + &Save Mixer Channels Setup... - + &Edit &Edytuj - + Sort Channel Users by &Name - + Sort Channel Users by &Instrument - + Sort Channel Users by &Group @@ -786,38 +791,38 @@ Å»aden - + Center Åšrodek - + R P - + Central Server - - + + Select Channel Setup File - + user - + users - + D&isconnect &Rozłącz @@ -901,6 +906,11 @@ nie jestem pewna MUTED (Other people won't hear you) + + + Update check + + CClientSettingsDlg @@ -1717,28 +1727,28 @@ nie jestem pewna CHelpMenu - + &Help &Pomoc - - + + Getting &Started... &Zaczynajmy... - + Software &Manual... &Instrukcja programu... - + What's &This &Co to - + &About... &O programie... @@ -1746,12 +1756,12 @@ nie jestem pewna CLanguageComboBox - + Restart Required - + Please restart the application for the language change to take effect. @@ -1759,102 +1769,102 @@ nie jestem pewna CLicenceDlg - + I &agree to the above licence terms - + Accept - + Decline - + By connecting to this server and agreeing to this notice, you agree to the following: - + 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. @@ -1880,317 +1890,317 @@ nie jestem pewna CMusProfDlg - - + + Musician Profile Profil muzyka - + Alias/Name Nick/ImiÄ™ - + Instrument Instrument - + Country Kraj - + City Miasto - + Skill UmiejÄ™tnoÅ›ci - + &Close &Zamknij - - - + + + None *nie jestem pewna Å»aden - + Beginner PoczÄ…tkujÄ…cy - + Intermediate Åšredniozaawansowany - + Expert Ekspert - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. - + Alias or name edit box - + Instrument picture button - + Country flag button - + City edit box - + Skill level combo box - + Drum Set Zestaw perkusyjny - + Djembe Djembe - + Electric Guitar Gitara elektryczna - + Acoustic Guitar Gitara akustyczna - + Bass Guitar Gitara basowa - + Keyboard Keyboard - + Synthesizer Syntezator - + Grand Piano Fortepian - + Accordion Akordeon - + Vocal Wokal - + Microphone Mikrofon - + Harmonica Harmonijka ustna - + Trumpet TrÄ…bka - + Trombone Puzon - + French Horn Waltornia - + Tuba Tuba - + Saxophone Saksofon - + Clarinet Klarnet - + Flute Flet - + Violin Skrzypce - + Cello Wiolonczela - + Double Bass Kontrabas - + Recorder *nie wiem Flet prosty - + Streamer Streamer - + Listener SÅ‚uchacz - + Guitar+Vocal Gitara+Wokal - + Keyboard+Vocal Keyboard+Wokal - + Bodhran Bodhran - + Bassoon Fagot - + Oboe Obój - + Harp Harfa - + Viola Altówka - + Congas Kongi - + Bongo Bongo - + Vocal Bass Bas - + Vocal Tenor Tenor - + Vocal Alto Alt - + Vocal Soprano Sopran - + Banjo Banjo - + Mandolin Mandolina - + Ukulele Ukulele - + Bass Ukulele Ukulele basowe - + Vocal Baritone Baryton - + Vocal Lead @@ -2419,7 +2429,12 @@ nie jestem pewna - + + software upgrade available + + + + ERROR @@ -2440,7 +2455,7 @@ nie jestem pewna - + E&xit &Wyjdź @@ -2462,12 +2477,12 @@ nie jestem pewna - + Select Main Recording Directory - + Server @@ -2532,7 +2547,7 @@ nie jestem pewna - + &Window @@ -2651,6 +2666,11 @@ nie jestem pewna Show Creative Commons BY-NC-SA 4.0 Licence Dialog + + + Update check + + Make My Server Public (Register My Server in the Server List) @@ -2764,7 +2784,7 @@ nie jestem pewna - + The Jack server was shut down. This software requires a Jack server to run. Try to restart the software to solve the issue. @@ -2906,17 +2926,17 @@ nie jestem pewna QCoreApplication - + , Version - + Internet Jam Session Software - + Released under the GNU General Public License (GPL) diff --git a/src/res/translation/translation_pt_BR.ts b/src/res/translation/translation_pt_BR.ts index ee5ebe7c44..8585e28168 100644 --- a/src/res/translation/translation_pt_BR.ts +++ b/src/res/translation/translation_pt_BR.ts @@ -71,57 +71,57 @@ Ãcones das bandeiras dos países por 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 - + Italian Italiano - + German Alemão - + Polish Polonês - + Swedish Suíço - + About Sobre o @@ -808,52 +808,57 @@ - + C&onnect C&onectar - + + software upgrade available + + + + &File &Arquivo - + &View &Ver - + &Connection Setup... &Conectar a Servidor... - + My &Profile... Meu &Perfil... - + C&hat... &Mensagens... - + &Settings... &Definições... - + &Analyzer Console... Console de &Análise... - + E&xit &Sair - + &Edit &Editar @@ -866,18 +871,18 @@ Nenhum - + Center Centro - + R R - + L L @@ -952,53 +957,53 @@ O CPU do cliente ou servidor está em 100%. - + &Load Mixer Channels Setup... &Carregar Configuração de Canais do Mixer... - + &Save Mixer Channels Setup... &Salvar Configuração de Canais do Mixer... - + Sort Channel Users by &Name Ordenar os Canais por &Nome - + Sort Channel Users by &Instrument Ordenar os Canais por &Instrumento - + Sort Channel Users by &Group Ordenar os Canais por &Grupo - + Central Server Servidor Central - - + + Select Channel Setup File Selecione Arquivo de Configuraçao de Canal - + user usuário - + users usuários - + D&isconnect Opted by Desligar instead of Desconectar to keep same keyboard shortcut Desl&igar @@ -1081,6 +1086,11 @@ MUTED (Other people won't hear you) SILENCIADO (As pessoas não te ouvirão) + + + Update check + + CClientSettingsDlg @@ -2052,28 +2062,28 @@ CHelpMenu - + &Help &Ajuda - - + + Getting &Started... Como Começa&r... - + Software &Manual... &Manual do Programa... - + What's &This O que é &isto - + &About... &Sobre... @@ -2081,12 +2091,12 @@ CLanguageComboBox - + Restart Required É necessário reiniciar - + Please restart the application for the language change to take effect. Reinicie a aplicação para que a alteração de idioma entre em vigor. @@ -2094,102 +2104,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 conectar-se a este servidor e concordar com este aviso, você concorda 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 remixar, 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ê remixar, transformar, ou criar a partir do material, deve distribuir as suas contribuições sob a mesma licença que do 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. @@ -2219,85 +2229,85 @@ . 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 apelido - + 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 Seletor do nível de habilidade - - - + + + None Nenhum - - + + Musician Profile Perfil do músico - + Alias/Name Apelido/Nome - + Instrument Instrumento - + Country País - + City Cidade - + Skill Habilidade - + &Close &Fechar - + Beginner Principiante - + Intermediate Intermediário - + Expert Avançado @@ -2310,232 +2320,232 @@ O que definir aqui aparecerá por baixo do seu fader na secção de mistura quando estiver ligado a um servidor - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Escreva o seu nome ou um apelido aqui para que os outros músicos com quem quer tocar saibam quem você é. Além disso, pode também definir uma imagem do instrumento que toca e uma bandeira do país onde vive. A cidade onde 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 Jamulus server. This tag will also be shown at each client which is connected to the same server as you. O que definir aqui aparecerá abaixo do seu fader no mixer quando estiver conectado a um servidor Jamulus. Esta etiqueta também será exibida em cada cliente que estiver conectado ao mesmo 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 - + Vocal Bass Voz Baixo - + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Bandolim - + Ukulele Ukulele - + Bass Ukulele Ukulele Baixo - + Vocal Baritone Voz Barítono - + Vocal Lead Voz Principal @@ -2860,7 +2870,12 @@ Digite uma mensagem de boas-vindas aqui. Se nenhuma mensagem for definida, a mensagem de boas-vindas do servidor será desativada. - + + software upgrade available + + + + ERROR ERRO @@ -2885,7 +2900,7 @@ - + E&xit &Sair @@ -2911,7 +2926,7 @@ - + Select Main Recording Directory Selecione Diretório Principal de Gravação @@ -2952,12 +2967,12 @@ Servidor Padrão (America do Norte) - + Server - Servidor - + &Window &Janela @@ -3055,6 +3070,11 @@ Show Creative Commons BY-NC-SA 4.0 Licence Dialog Mostrar Diálogo da Licença Creative Commons BY-NC-SA 4.0 + + + Update check + + Make My Server Public (Register My Server in the Server List) @@ -3171,7 +3191,7 @@ Não é possível ativar o cliente Jack. - + The Jack server was shut down. This software requires a Jack server to run. Try to restart the software to solve the issue. O servidor Jack foi desligado. Este programa requer um servidor Jack para ser executado. Tente reiniciar o programa para resolver o problema. @@ -3318,17 +3338,17 @@ QCoreApplication - + , Version , Versão - + Internet Jam Session Software Programa de Jam Sessions pela Internet - + Released under the GNU General Public License (GPL) Lançado sob a Licença Pública Geral GNU (GPL) diff --git a/src/res/translation/translation_pt_PT.ts b/src/res/translation/translation_pt_PT.ts index d434c95239..0d48a871a5 100644 --- a/src/res/translation/translation_pt_PT.ts +++ b/src/res/translation/translation_pt_PT.ts @@ -71,57 +71,57 @@ Ãcones das bandeiras dos países por 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 - + Italian Italiano - + German Alemão - + Polish Polaco - + Swedish Sueco - + About Sobre o @@ -806,52 +806,57 @@ - + C&onnect &Ligar - + + software upgrade available + + + + &File &Ficheiro - + &View &Ver - + &Connection Setup... &Ligar a Servidor... - + My &Profile... Meu &Perfil... - + C&hat... &Mensagens... - + &Settings... &Definições... - + &Analyzer Console... Consola de &Análise... - + E&xit &Sair - + &Edit &Editar @@ -864,18 +869,18 @@ Nenhum - + Center Centro - + R R - + L L @@ -950,53 +955,53 @@ O CPU do cliente ou servidor está a 100%. - + &Load Mixer Channels Setup... A&brir configuração da mistura... - + &Save Mixer Channels Setup... Salvar &configuração da mistura... - + Sort Channel Users by &Name Ordenar Utilizadores por &Nome - + Sort Channel Users by &Instrument Ordenar canais por &Instrumento - + Sort Channel Users by &Group Ordenar canais por &Grupo - + Central Server Servidor Central - - + + Select Channel Setup File Selecione o ficheiro de configuração da mistura - + user utilizador - + users utilizadores - + D&isconnect Desl&igar @@ -1078,6 +1083,11 @@ MUTED (Other people won't hear you) MUDO (Outras pessoas não o vão ouvir) + + + Update check + + CClientSettingsDlg @@ -2049,28 +2059,28 @@ CHelpMenu - + &Help &Ajuda - - + + Getting &Started... Como Começa&r... - + Software &Manual... &Manual do Programa... - + What's &This O que é &isto - + &About... &Sobre... @@ -2078,12 +2088,12 @@ CLanguageComboBox - + Restart Required Reinicio necessário - + Please restart the application for the language change to take effect. Por favor reinicie a aplicação para a alteração de linguagem ter efeito. @@ -2091,102 +2101,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. @@ -2216,85 +2226,85 @@ . 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 @@ -2307,232 +2317,232 @@ O que definir aqui aparecerá por baixo do seu fader na secção de mistura quando estiver ligado a um servidor - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Escreva 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 também definir uma imagem do instrumento que toca e uma bandeira do país onde vive. A cidade onde 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 Jamulus server. This tag will also be shown at each client which is connected to the same server as you. O que definir aqui aparecerá por baixo do seu fader na secção de mistura quando estiver ligado a um servidor Esta etiqueta também será exibida em cada cliente que estiver ligado ao mesmo 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 - + Vocal Bass Voz Baixo - + Vocal Tenor Voz Tenor - + Vocal Alto Voz Alto - + Vocal Soprano Voz Soprano - + Banjo Banjo - + Mandolin Bandolim - + Ukulele Ukulele - + Bass Ukulele Ukulele Baixo - + Vocal Baritone Voz Barítono - + Vocal Lead Voz Principal @@ -2857,7 +2867,12 @@ Insira uma mensagem aqui. Se não houver nenhuma mensagem definida, a mensagem do servidor ficará inactiva. - + + software upgrade available + + + + ERROR ERRO @@ -2882,7 +2897,7 @@ - + E&xit &Sair @@ -2908,7 +2923,7 @@ - + Select Main Recording Directory Seleciona o directório principal das gravações @@ -2949,12 +2964,12 @@ Servidor Padrão (America do Norte) - + Server - Servidor - + &Window &Janela @@ -3052,6 +3067,11 @@ Show Creative Commons BY-NC-SA 4.0 Licence Dialog Mostrar Diálogo da Licença Creative Commons BY-NC-SA 4.0 + + + Update check + + Make My Server Public (Register My Server in the Server List) @@ -3168,7 +3188,7 @@ Não é possível ativar o cliente Jack. - + The Jack server was shut down. This software requires a Jack server to run. Try to restart the software to solve the issue. O servidor Jack foi desligado. Este programa requer um servidor Jack para ser executado. Tente reiniciar o programa para resolver o problema. @@ -3315,17 +3335,17 @@ QCoreApplication - + , Version , Versão - + Internet Jam Session Software Programa de Jam Sessions pela Internet - + Released under the GNU General Public License (GPL) Lançado sob a Licença Pública Geral GNU (GPL) diff --git a/src/res/translation/translation_sv_SE.ts b/src/res/translation/translation_sv_SE.ts index a26676575c..fbd6decbc4 100644 --- a/src/res/translation/translation_sv_SE.ts +++ b/src/res/translation/translation_sv_SE.ts @@ -39,57 +39,57 @@ Landsflaggsymboler gjorda av Mark James - + For details on the contributions check out the För detaljer om bidrag, kolla in - + Github Contributors list Github's bidragsgivarlista - + Spanish Spanska - + French Franska - + Portuguese Portugisiska - + Dutch Holländska - + Italian Italienska - + German Tyska - + Polish Polska - + Swedish Svenska - + About Om @@ -570,7 +570,7 @@ - + L V @@ -711,77 +711,82 @@ - + C&onnect &Anslut - + + software upgrade available + + + + &File &Fil - + &View &Vy - + &Connection Setup... Anslutnings&inställningar... - + My &Profile... Min &profil... - + C&hat... &Chatt... - + &Settings... &Inställningar... - + &Analyzer Console... &Analyskonsol... - + E&xit &Avsluta - + &Load Mixer Channels Setup... &Ladda in mixerkanalinställningarna... - + &Save Mixer Channels Setup... &Spara mixerkanalinställningarna... - + &Edit &Redigera - + Sort Channel Users by &Name Sortera kanalanvändare efter &Namn - + Sort Channel Users by &Instrument Sortera kanalanvändare efter &Instrument - + Sort Channel Users by &Group Sortera kanalanvändare efter &Grupp @@ -790,38 +795,38 @@ Ingen - + Center Mitten - + R H - + Central Server Central server - - + + Select Channel Setup File Välj kanalinställningsfil - + user användare - + users användare - + D&isconnect Koppla &ner @@ -903,6 +908,11 @@ MUTED (Other people won't hear you) + + + Update check + + MUTED (You are not sending any audio to the server) TYSTAD (Du skickar inget ljud till servern) @@ -1718,28 +1728,28 @@ CHelpMenu - + &Help &Hjälp - - + + Getting &Started... Komma &igÃ¥ng ... - + Software &Manual... &Manual... - + What's &This &Var är detta - + &About... &Om... @@ -1747,12 +1757,12 @@ CLanguageComboBox - + Restart Required Omstart krävs - + Please restart the application for the language change to take effect. Starta om applikationen för att sprÃ¥kändringen ska träda i kraft. @@ -1760,102 +1770,102 @@ CLicenceDlg - + I &agree to the above licence terms Jag &accepterar ovanstÃ¥ende licensvillkor - + Accept Acceptera - + Decline Neka - + By connecting to this server and agreeing to this notice, you agree to the following: Genom att ansluta till denna server och godkänna detta meddelande, samtycker du till följande: - + 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 Du accepterar att all data, ljud eller andra verk som överförs till denna server ägs och skapas av dig eller dina licensgivare, och att du gör dessa data, ljud eller andra verk tillgängliga via följande Creative Commons-licens (för mer information om detta licens, se - + You are free to: Du är fri att: - + Share Dela - + copy and redistribute the material in any medium or format kopiera och omfördela materialet i vilket medium eller format som helst - + Adapt Anpssa - + remix, transform, and build upon the material remixa, transformera och bygga vidare pÃ¥ materialet - + The licensor cannot revoke these freedoms as long as you follow the license terms. Licensgivaren kan inte Ã¥terkalla dessa friheter sÃ¥ länge du följer licensvillkoren. - + Under the following terms: Under följande villkor: - + Attribution Erkännande - + 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. Du mÃ¥ste ge lämplig kredit, ange en länk till licensen och ange om ändringar gjordes. Du kan göra det pÃ¥ nÃ¥got rimligt sätt, men inte pÃ¥ nÃ¥got sätt som antyder att licensgivaren godkänner dig eller din användning. - + NonCommercial Ickekommersiell - + You may not use the material for commercial purposes. Du fÃ¥r inte använda materialet för kommersiella ändamÃ¥l. - + ShareAlike Dela lika - + If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. Om du remixar, omvandlar eller bygger pÃ¥ materialet mÃ¥ste du distribuera dina bidrag under samma licens som originalet. - + No additional restrictions Inga ytterligare begränsningar - + You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. Du fÃ¥r inte tillämpa juridiska villkor eller tekniska Ã¥tgärder som lagligen begränsar andra frÃ¥n att göra nÃ¥got som licensen tillÃ¥ter. @@ -1886,315 +1896,315 @@ Inget namn - - + + Musician Profile Musikprofil - + Alias/Name Alias/Namn - + Instrument Instrument - + Country Land - + City Stad - + Skill FärdighetsnivÃ¥ - + &Close &Stäng - - - + + + None Ingen - + Beginner Nybörjare - + Intermediate MellannivÃ¥ - + Expert Expert - + Write your name or an alias here so the other musicians you want to play with know who you are. You may also add a picture of the instrument you play and a flag of the country you are located in. Your city and skill level playing your instrument may also be added. Skriv ditt namn eller ett alias här sÃ¥ att de andra musikerna du vill spela med vet vem du är. Du kan ocksÃ¥ lägga till en bild av instrumentet du spelar och en flagga för det land du befinner dig i. Din stad och din färdighetsnivÃ¥ som spelar ditt instrument kan ocksÃ¥ läggas till. - + What you set here will appear at your fader on the mixer board when you are connected to a Jamulus server. This tag will also be shown at each client which is connected to the same server as you. Det du ställer in här visas pÃ¥ din fader pÃ¥ mixerkortet när du är ansluten till en Jamulus-server. Den här taggen kommer ocksÃ¥ att visas vid varje klient som är ansluten till samma server som du. - + Alias or name edit box Redigeringsruta för alias eller namn - + Instrument picture button Knapp för instrumentbild - + Country flag button Knapp för landsflagga - + City edit box Redigeringsruta för stad - + Skill level combo box Kombinationsruta för färdighetsnivÃ¥ - + Drum Set Trumset - + Djembe Djembe - + Electric Guitar Elgitarr - + Acoustic Guitar Akustisk gitarr - + Bass Guitar Basgitarr - + Keyboard Klaviatur - + Synthesizer Synthesizer - + Grand Piano Flygel - + Accordion Dragspel - + Vocal SÃ¥ng - + Microphone Mikrofon - + Harmonica Munspel - + Trumpet Trumpet - + Trombone Trombon - + French Horn Valthorn - + Tuba Tuba - + Saxophone Saxofon - + Clarinet Klarinett - + Flute Flöjt - + Violin Fiol - + Cello Cello - + Double Bass Kontrabas - + Recorder Inspelningsapparat - + Streamer Streamer - + Listener Lyssnare - + Guitar+Vocal Gitarr+SÃ¥ng - + Keyboard+Vocal Klaviatur+SÃ¥ng - + Bodhran Klaviatur+SÃ¥ng - + Bassoon Fagott - + Oboe Oboe - + Harp Harpa - + Viola Altfiol - + Congas Congas - + Bongo Bongo - + Vocal Bass SÃ¥ng (bas) - + Vocal Tenor SÃ¥ng (tenor) - + Vocal Alto SÃ¥ng (alt) - + Vocal Soprano SÃ¥ng (sopran) - + Banjo Banjo - + Mandolin Mandolin - + Ukulele Ukulele - + Bass Ukulele Ukulele (bas) - + Vocal Baritone SÃ¥ng (baryton) - + Vocal Lead SÃ¥ng (Solist) @@ -2478,7 +2488,12 @@ Skriv ett meddelande här. Om inget meddelande är inställt är serverns välkomst inaktiverad. - + + software upgrade available + + + + ERROR FEL @@ -2503,7 +2518,7 @@ - + E&xit &Avbryt @@ -2529,17 +2544,17 @@ server - + Server Server - + &Window &Fönster - + Select Main Recording Directory Välj huvudinspelningskatalog @@ -2681,6 +2696,11 @@ Show Creative Commons BY-NC-SA 4.0 Licence Dialog Visa Creative Commons BY-NC-SA 4.0 licensdialog + + + Update check + + Make My Server Public (Register My Server in the Server List) @@ -2778,7 +2798,7 @@ Kan inte aktivera Jack-klienten. - + The Jack server was shut down. This software requires a Jack server to run. Try to restart the software to solve the issue. Jack-servern stängdes av. Denna programvara kräver att en Jack-server körs. Försök starta om programvaran för att lösa problemet. @@ -2920,17 +2940,17 @@ QCoreApplication - + , Version , Version - + Internet Jam Session Software Internet Jam Session Software - + Released under the GNU General Public License (GPL) Släppt under GNU General Public License (GPL) From f4c27446b12c0896fb22afad2fc620181d5efcf3 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 30 Aug 2020 14:17:03 +0200 Subject: [PATCH 527/936] update German translation --- src/res/translation/translation_de_DE.qm | Bin 109557 -> 109998 bytes src/res/translation/translation_de_DE.ts | 10 +++++----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index b0297d24d49511fa197a1961f0b36478ff842ee9..6224cae91fa2d3ade00fd9fd35c0380ec1daf612 100644 GIT binary patch delta 4879 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 delta 4538 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 Alias - + Alias @@ -801,7 +801,7 @@ software upgrade available - + Softwareupdate verfügbar @@ -1074,7 +1074,7 @@ Update check - + Update check MUTED (You are not sending any audio to the server) @@ -2877,7 +2877,7 @@ software upgrade available - + Softwareupdate verfügbar @@ -3078,7 +3078,7 @@ Update check - + Update check From f590185e699a1e83dcf61886e9691769dffe1670 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 30 Aug 2020 16:26:02 +0200 Subject: [PATCH 528/936] small fixes --- src/server.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/server.cpp b/src/server.cpp index 897ef92c66..4995b17d22 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -840,8 +840,8 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE // update conversion buffer size (nothing will happen if the size stays the same) if ( vecUseDoubleSysFraSizeConvBuf[i] ) { - DoubleFrameSizeConvBufIn[iCurChanID].SetBufferSize ( DOUBLE_SYSTEM_FRAME_SIZE_SAMPLES * vecNumAudioChannels[i] ); - DoubleFrameSizeConvBufOut[iCurChanID].SetBufferSize ( DOUBLE_SYSTEM_FRAME_SIZE_SAMPLES * vecNumAudioChannels[i] ); + DoubleFrameSizeConvBufIn[iCurChanID].SetBufferSize ( DOUBLE_SYSTEM_FRAME_SIZE_SAMPLES * vecNumAudioChannels[i] ); + DoubleFrameSizeConvBufOut[iCurChanID].SetBufferSize ( DOUBLE_SYSTEM_FRAME_SIZE_SAMPLES * vecNumAudioChannels[i] ); } // select the opus decoder and raw audio frame length @@ -1014,8 +1014,7 @@ static CTimingMeas JitterMeas ( 1000, "test2.dat" ); JitterMeas.Measure(); // TE { // generate a separate mix for each channel, OPUS encode the // audio data and transmit the network packet - MixEncodeTransmitData ( iChanCnt, - iNumClients ); + MixEncodeTransmitData ( iChanCnt, iNumClients ); } } From d9d4dfdbf8e97567414bfd287329881715268218 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 31 Aug 2020 18:49:13 +0200 Subject: [PATCH 529/936] add usleep() to nosound case --- linux/sound.h | 1 + src/soundbase.h | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/linux/sound.h b/linux/sound.h index 66fbad257f..874d4e0e37 100755 --- a/linux/sound.h +++ b/linux/sound.h @@ -115,5 +115,6 @@ class CSound : public CSoundBase const QString& ) : CSoundBase ( "nosound", false, fpNewProcessCallback, pParg, iCtrlMIDIChannel ) {} virtual ~CSound() {} + virtual bool Read ( CVector& ) override { usleep ( 1e6 * DOUBLE_SYSTEM_FRAME_SIZE_SAMPLES / SYSTEM_SAMPLE_RATE_HZ ); return false; } }; #endif // WITH_SOUND diff --git a/src/soundbase.h b/src/soundbase.h index 311f52b82a..ced083ef8f 100755 --- a/src/soundbase.h +++ b/src/soundbase.h @@ -133,8 +133,8 @@ class CSoundBase : public QThread // these functions should be overwritten by derived class for // non callback based audio interfaces - virtual bool Read ( CVector& ) { printf ( "no sound!" ); return false; } - virtual bool Write ( CVector& ) { printf ( "no sound!" ); return false; } + virtual bool Read ( CVector& ) { return false; } + virtual bool Write ( CVector& ) { return false; } void run(); bool bRun; From 455f7910fa8157a0bad581ab5b8837d1b73c5601 Mon Sep 17 00:00:00 2001 From: Peter L Jones Date: Mon, 31 Aug 2020 21:57:04 +0100 Subject: [PATCH 530/936] Couple of minor updates to historytool --- tools/jamulus-historytool | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/jamulus-historytool b/tools/jamulus-historytool index b265072232..4d974e871a 160000 --- a/tools/jamulus-historytool +++ b/tools/jamulus-historytool @@ -1 +1 @@ -Subproject commit b265072232c33c377a8912262d7395a06ffd8927 +Subproject commit 4d974e871a0059089881453bbac42b4f64f8bd48 From 6070677b42f843e30e70986e30a75959a962cefd Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 1 Sep 2020 17:15:32 +0200 Subject: [PATCH 531/936] added some test code --- linux/sound.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/linux/sound.h b/linux/sound.h index 874d4e0e37..21be226faa 100755 --- a/linux/sound.h +++ b/linux/sound.h @@ -105,6 +105,7 @@ class CSound : public CSoundBase }; #else // no sound -> dummy class definition +#include class CSound : public CSoundBase { public: @@ -116,5 +117,6 @@ class CSound : public CSoundBase CSoundBase ( "nosound", false, fpNewProcessCallback, pParg, iCtrlMIDIChannel ) {} virtual ~CSound() {} virtual bool Read ( CVector& ) override { usleep ( 1e6 * DOUBLE_SYSTEM_FRAME_SIZE_SAMPLES / SYSTEM_SAMPLE_RATE_HZ ); return false; } + //virtual bool Read ( CVector& ) override { nanosleep ( (const struct timespec[]) { { 0, 1000000000000L * DOUBLE_SYSTEM_FRAME_SIZE_SAMPLES / SYSTEM_SAMPLE_RATE_HZ } }, NULL); return false; } }; #endif // WITH_SOUND From d8b5133736851c15503069378e4f5516c5f6154d Mon Sep 17 00:00:00 2001 From: ann0see <20726856+ann0see@users.noreply.github.com> Date: Tue, 1 Sep 2020 17:30:36 +0200 Subject: [PATCH 532/936] Added missing newlines --- src/main.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index ce59ccefaf..aadaa76aa7 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -777,7 +777,7 @@ QString UsageArguments ( char **argv ) " -e, --centralserver address of the central server\n" " (or 'localhost' to be a central server)\n" " -f, --listfilter server list whitelist filter in the format:\n" - " [IP address 1];[IP address 2];[IP address 3]; ..." + " [IP address 1];[IP address 2];[IP address 3]; ...\n" " -F, --fastupdate use 64 samples frame size mode\n" " -g, --pingservers ping servers in list to keep NAT port open\n" " (central server only)\n" @@ -795,7 +795,7 @@ QString UsageArguments ( char **argv ) " recorded jams\n" " -s, --server start server\n" " -T, --multithreading use multithreading to make better use of\n" - " multi-core CPUs and support more clients" + " multi-core CPUs and support more clients\n" " -u, --numchannels maximum number of channels\n" " -w, --welcomemessage welcome message on connect\n" " -z, --startminimized start minimizied\n" From c04c7f720257873ea0327cb3c6de21420497a111 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 1 Sep 2020 17:43:44 +0200 Subject: [PATCH 533/936] remove test code since it did not work as expected --- linux/sound.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/linux/sound.h b/linux/sound.h index 21be226faa..874d4e0e37 100755 --- a/linux/sound.h +++ b/linux/sound.h @@ -105,7 +105,6 @@ class CSound : public CSoundBase }; #else // no sound -> dummy class definition -#include class CSound : public CSoundBase { public: @@ -117,6 +116,5 @@ class CSound : public CSoundBase CSoundBase ( "nosound", false, fpNewProcessCallback, pParg, iCtrlMIDIChannel ) {} virtual ~CSound() {} virtual bool Read ( CVector& ) override { usleep ( 1e6 * DOUBLE_SYSTEM_FRAME_SIZE_SAMPLES / SYSTEM_SAMPLE_RATE_HZ ); return false; } - //virtual bool Read ( CVector& ) override { nanosleep ( (const struct timespec[]) { { 0, 1000000000000L * DOUBLE_SYSTEM_FRAME_SIZE_SAMPLES / SYSTEM_SAMPLE_RATE_HZ } }, NULL); return false; } }; #endif // WITH_SOUND From f69dd2114a70710c33eb5b61dfe461a1ae5adabb Mon Sep 17 00:00:00 2001 From: Olivier Humbert Date: Tue, 1 Sep 2020 18:38:12 +0200 Subject: [PATCH 534/936] update d/rules (workaround issue in desktop file) --- distributions/debian/rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/distributions/debian/rules b/distributions/debian/rules index 53e0ac0a8b..16a8428706 100755 --- a/distributions/debian/rules +++ b/distributions/debian/rules @@ -15,8 +15,8 @@ override_dh_auto_build: cd build-nox && make override_dh_auto_install: - cd build-gui && make install INSTALL_ROOT=../debian/tmp cd build-nox && make install INSTALL_ROOT=../debian/tmp + cd build-gui && make install INSTALL_ROOT=../debian/tmp override_dh_auto_clean: rm -rf build-gui From 2fa33808e3de29b39d59f72550d0ffe5d46ccea4 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 1 Sep 2020 18:42:06 +0200 Subject: [PATCH 535/936] increase the number of trys for the client socket port number --- src/socket.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/socket.h b/src/socket.h index ddb5099bb3..ba07613c33 100755 --- a/src/socket.h +++ b/src/socket.h @@ -46,7 +46,7 @@ class CChannel; // forward declaration of CChannel /* Definitions ****************************************************************/ // number of ports we try to bind until we give up -#define NUM_SOCKET_PORTS_TO_TRY 50 +#define NUM_SOCKET_PORTS_TO_TRY 100 /* Classes ********************************************************************/ From 0c3ca89a2ce05835a7e62114bf3fdc711e8f8672 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Wed, 2 Sep 2020 16:49:31 +0200 Subject: [PATCH 536/936] make the nosound mode a meaningful mode for the client to test multi-threading servers --- ChangeLog | 2 ++ Jamulus.pro | 5 +++-- linux/sound.h | 17 +++++++++++++++-- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index ad2b0c67bb..063ee0546e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -21,6 +21,8 @@ - bug fix: Alt+h shortcut to open the Chat dialog did not work, use Alt+c instead +TODO remove the bIsCallbackAudioInterface from the soundbase (because not interface is using it now) + diff --git a/Jamulus.pro b/Jamulus.pro index 30a79282d3..6d82107023 100755 --- a/Jamulus.pro +++ b/Jamulus.pro @@ -277,6 +277,9 @@ win32 { # we want to compile with C++11 CONFIG += c++11 + HEADERS += linux/sound.h + SOURCES += linux/sound.cpp + # we assume to have lrintf() one moderately modern linux distributions # would be better to have that tested, though DEFINES += HAVE_LRINTF @@ -296,8 +299,6 @@ win32 { PKGCONFIG += jack } - HEADERS += linux/sound.h - SOURCES += linux/sound.cpp DEFINES += WITH_SOUND } diff --git a/linux/sound.h b/linux/sound.h index 874d4e0e37..e44a415aa3 100755 --- a/linux/sound.h +++ b/linux/sound.h @@ -105,16 +105,29 @@ class CSound : public CSoundBase }; #else // no sound -> dummy class definition +#include "server.h" class CSound : public CSoundBase { + Q_OBJECT + public: CSound ( void (*fpNewProcessCallback) ( CVector& psData, void* pParg ), void* pParg, const int iCtrlMIDIChannel, const bool , const QString& ) : - CSoundBase ( "nosound", false, fpNewProcessCallback, pParg, iCtrlMIDIChannel ) {} + CSoundBase ( "nosound", true, fpNewProcessCallback, pParg, iCtrlMIDIChannel ), + HighPrecisionTimer ( true ) { HighPrecisionTimer.Start(); + QObject::connect ( &HighPrecisionTimer, &CHighPrecisionTimer::timeout, + this, &CSound::OnTimer ); } virtual ~CSound() {} - virtual bool Read ( CVector& ) override { usleep ( 1e6 * DOUBLE_SYSTEM_FRAME_SIZE_SAMPLES / SYSTEM_SAMPLE_RATE_HZ ); return false; } + virtual int Init ( const int iNewPrefMonoBufferSize ) { CSoundBase::Init ( iNewPrefMonoBufferSize ); + vecsTemp.Init ( 2 * iNewPrefMonoBufferSize ); + return iNewPrefMonoBufferSize; } + CHighPrecisionTimer HighPrecisionTimer; + CVector vecsTemp; + +public slots: + void OnTimer() { vecsTemp.Reset ( 0 ); if ( IsRunning() ) { ProcessCallback ( vecsTemp ); } } }; #endif // WITH_SOUND From 85f9c830996f26aa550947800fe3b35e9eddd60e Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Wed, 2 Sep 2020 21:43:05 +0200 Subject: [PATCH 537/936] remove the bIsCallbackAudioInterface from the soundbase (because no interface is using it now) --- android/sound.cpp | 2 +- linux/sound.h | 4 ++-- mac/sound.cpp | 2 +- src/soundbase.cpp | 47 ----------------------------------------------- src/soundbase.h | 30 ++++++++++-------------------- windows/sound.cpp | 2 +- 6 files changed, 15 insertions(+), 72 deletions(-) diff --git a/android/sound.cpp b/android/sound.cpp index 00c65f8060..a402433f96 100644 --- a/android/sound.cpp +++ b/android/sound.cpp @@ -32,7 +32,7 @@ CSound::CSound ( void (*fpNewProcessCallback) ( CVector& psData const int iCtrlMIDIChannel, const bool , const QString& ) : - CSoundBase ( "OpenSL", true, fpNewProcessCallback, arg, iCtrlMIDIChannel ) + CSoundBase ( "OpenSL", fpNewProcessCallback, arg, iCtrlMIDIChannel ) { pSound = this; diff --git a/linux/sound.h b/linux/sound.h index e44a415aa3..c64397e2c9 100755 --- a/linux/sound.h +++ b/linux/sound.h @@ -65,7 +65,7 @@ class CSound : public CSoundBase const int iCtrlMIDIChannel, const bool bNoAutoJackConnect, const QString& strJackClientName ) : - CSoundBase ( "Jack", true, fpNewProcessCallback, arg, iCtrlMIDIChannel ), + CSoundBase ( "Jack", fpNewProcessCallback, arg, iCtrlMIDIChannel ), iJACKBufferSizeMono ( 0 ), bJackWasShutDown ( false ) { OpenJack ( bNoAutoJackConnect, strJackClientName.toLocal8Bit().data() ); } virtual ~CSound() { CloseJack(); } @@ -116,7 +116,7 @@ class CSound : public CSoundBase const int iCtrlMIDIChannel, const bool , const QString& ) : - CSoundBase ( "nosound", true, fpNewProcessCallback, pParg, iCtrlMIDIChannel ), + CSoundBase ( "nosound", fpNewProcessCallback, pParg, iCtrlMIDIChannel ), HighPrecisionTimer ( true ) { HighPrecisionTimer.Start(); QObject::connect ( &HighPrecisionTimer, &CHighPrecisionTimer::timeout, this, &CSound::OnTimer ); } diff --git a/mac/sound.cpp b/mac/sound.cpp index 998686993b..1d92e8f056 100755 --- a/mac/sound.cpp +++ b/mac/sound.cpp @@ -31,7 +31,7 @@ CSound::CSound ( void (*fpNewProcessCallback) ( CVector& psData const int iCtrlMIDIChannel, const bool , const QString& ) : - CSoundBase ( "CoreAudio", true, fpNewProcessCallback, arg, iCtrlMIDIChannel ), + CSoundBase ( "CoreAudio", fpNewProcessCallback, arg, iCtrlMIDIChannel ), midiInPortRef ( static_cast ( NULL ) ) { // Apple Mailing Lists: Subject: GUI Apps should set kAudioHardwarePropertyRunLoop diff --git a/src/soundbase.cpp b/src/soundbase.cpp index 75e1c0f126..51382dea2a 100755 --- a/src/soundbase.cpp +++ b/src/soundbase.cpp @@ -27,13 +27,11 @@ /* Implementation *************************************************************/ CSoundBase::CSoundBase ( const QString& strNewSystemDriverTechniqueName, - const bool bNewIsCallbackAudioInterface, void (*fpNewProcessCallback) ( CVector& psData, void* pParg ), void* pParg, const int iNewCtrlMIDIChannel ) : fpProcessCallback ( fpNewProcessCallback ), pProcessCallbackArg ( pParg ), bRun ( false ), - bIsCallbackAudioInterface ( bNewIsCallbackAudioInterface ), strSystemDriverTechniqueName ( strNewSystemDriverTechniqueName ), iCtrlMIDIChannel ( iNewCtrlMIDIChannel ) { @@ -45,31 +43,6 @@ CSoundBase::CSoundBase ( const QString& strNewSystemDriverTechniqueName, lCurDev = 0; // default device } -int CSoundBase::Init ( const int iNewPrefMonoBufferSize ) -{ - // init audio sound card buffer - if ( !bIsCallbackAudioInterface ) - { - vecsAudioSndCrdStereo.Init ( 2 * iNewPrefMonoBufferSize /* stereo */ ); - } - - return iNewPrefMonoBufferSize; -} - -void CSoundBase::Start() -{ - bRun = true; - -// TODO start audio interface - - // start the audio thread in case we do not have an callback - // based audio interface - if ( !bIsCallbackAudioInterface ) - { - start(); - } -} - void CSoundBase::Stop() { // set flag so that thread can leave the main loop @@ -79,26 +52,6 @@ void CSoundBase::Stop() QMutexLocker locker ( &MutexAudioProcessCallback ); } -void CSoundBase::run() -{ - // make sure we are locked during execution - QMutexLocker locker ( &MutexAudioProcessCallback ); - - // main loop of working thread - while ( bRun ) - { - // get audio from sound card (blocking function) - Read ( vecsAudioSndCrdStereo ); - - // process audio data - (*fpProcessCallback) ( vecsAudioSndCrdStereo, pProcessCallbackArg ); - - // play the new block - Write ( vecsAudioSndCrdStereo ); - } -} - - /******************************************************************************\ * Device handling * diff --git a/src/soundbase.h b/src/soundbase.h index ced083ef8f..8182a37239 100755 --- a/src/soundbase.h +++ b/src/soundbase.h @@ -51,13 +51,12 @@ class CSoundBase : public QThread public: CSoundBase ( const QString& strNewSystemDriverTechniqueName, - const bool bNewIsCallbackAudioInterface, void (*fpNewProcessCallback) ( CVector& psData, void* pParg ), void* pParg, const int iNewCtrlMIDIChannel ); - virtual int Init ( const int iNewPrefMonoBufferSize ); - virtual void Start(); + virtual int Init ( const int iNewPrefMonoBufferSize ) { return iNewPrefMonoBufferSize; } + virtual void Start() { bRun = true; } virtual void Stop(); // device selection @@ -131,26 +130,17 @@ class CSoundBase : public QThread (*fpProcessCallback) ( psData, pProcessCallbackArg ); } - // these functions should be overwritten by derived class for - // non callback based audio interfaces - virtual bool Read ( CVector& ) { return false; } - virtual bool Write ( CVector& ) { return false; } + void ParseMIDIMessage ( const CVector& vMIDIPaketBytes ); - void run(); - bool bRun; - QMutex MutexAudioProcessCallback; + bool bRun; + QMutex MutexAudioProcessCallback; - void ParseMIDIMessage ( const CVector& vMIDIPaketBytes ); + QString strSystemDriverTechniqueName; + int iCtrlMIDIChannel; - bool bIsCallbackAudioInterface; - QString strSystemDriverTechniqueName; - int iCtrlMIDIChannel; - - CVector vecsAudioSndCrdStereo; - - long lNumDevs; - long lCurDev; - QString strDriverNames[MAX_NUMBER_SOUND_CARDS]; + long lNumDevs; + long lCurDev; + QString strDriverNames[MAX_NUMBER_SOUND_CARDS]; signals: void ReinitRequest ( int iSndCrdResetType ); diff --git a/windows/sound.cpp b/windows/sound.cpp index 097cd655f1..f660afd63f 100755 --- a/windows/sound.cpp +++ b/windows/sound.cpp @@ -488,7 +488,7 @@ CSound::CSound ( void (*fpNewCallback) ( CVector& psData, voi const int iCtrlMIDIChannel, const bool , const QString& ) : - CSoundBase ( "ASIO", true, fpNewCallback, arg, iCtrlMIDIChannel ), + CSoundBase ( "ASIO", fpNewCallback, arg, iCtrlMIDIChannel ), lNumInChan ( 0 ), lNumInChanPlusAddChan ( 0 ), lNumOutChan ( 0 ), From 2d4683bd48e85323c4d0c2d7e876a368e4c19d41 Mon Sep 17 00:00:00 2001 From: Tormod Volden Date: Wed, 2 Sep 2020 23:34:16 +0200 Subject: [PATCH 538/936] Do not install desktop file and icons if headless Signed-off-by: Tormod Volden --- Jamulus.pro | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/Jamulus.pro b/Jamulus.pro index 6d82107023..debe40adba 100755 --- a/Jamulus.pro +++ b/Jamulus.pro @@ -312,22 +312,26 @@ win32 { BINDIR = $$absolute_path($$BINDIR, $$PREFIX) target.path = $$BINDIR - isEmpty(APPSDIR) { - APPSDIR = share/applications - } - APPSDIR = $$absolute_path($$APPSDIR, $$PREFIX) - desktop.path = $$APPSDIR - QMAKE_SUBSTITUTES += distributions/jamulus.desktop.in - desktop.files = distributions/jamulus.desktop + contains(CONFIG, "headless") { + INSTALLS += target + } else { + isEmpty(APPSDIR) { + APPSDIR = share/applications + } + APPSDIR = $$absolute_path($$APPSDIR, $$PREFIX) + desktop.path = $$APPSDIR + QMAKE_SUBSTITUTES += distributions/jamulus.desktop.in + desktop.files = distributions/jamulus.desktop - isEmpty(ICONSDIR) { - ICONSDIR = share/icons/hicolor/512x512/apps - } - ICONSDIR = $$absolute_path($$ICONSDIR, $$PREFIX) - icons.path = $$ICONSDIR - icons.files = distributions/jamulus.png + isEmpty(ICONSDIR) { + ICONSDIR = share/icons/hicolor/512x512/apps + } + ICONSDIR = $$absolute_path($$ICONSDIR, $$PREFIX) + icons.path = $$ICONSDIR + icons.files = distributions/jamulus.png - INSTALLS += target desktop icons + INSTALLS += target desktop icons + } } RCC_DIR = src/res From c9c5e41456609bb7573d0d6577bf21c7ea4b72d7 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Fri, 4 Sep 2020 16:50:16 +0200 Subject: [PATCH 539/936] hopefully solves #547 (issue with protocol gets stuck on heavy load) --- src/protocol.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/protocol.cpp b/src/protocol.cpp index e54a4272ce..5ab9b925f2 100755 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -467,8 +467,19 @@ void CProtocol::SendMessage() vecMessage.Init ( SendMessQueue.front().vecMessage.Size() ); vecMessage = SendMessQueue.front().vecMessage; + // start time-out timer if not active + if ( !TimerSendMess.isActive() ) + { + TimerSendMess.start ( SEND_MESS_TIMEOUT_MS ); + } + bSendMess = true; } + else + { + // no message to send, stop timer + TimerSendMess.stop(); + } } Mutex.unlock(); @@ -476,17 +487,6 @@ void CProtocol::SendMessage() { // send message emit MessReadyForSending ( vecMessage ); - - // start time-out timer if not active - if ( !TimerSendMess.isActive() ) - { - TimerSendMess.start ( SEND_MESS_TIMEOUT_MS ); - } - } - else - { - // no message to send, stop timer - TimerSendMess.stop(); } } From bdd2c09b6e1dfa48210c8ad165d60272c0ac2ae9 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Fri, 4 Sep 2020 22:16:38 +0200 Subject: [PATCH 540/936] make the protocol load lower if the number of clients changes at the server by only sending mute/solo gain updates to the server if necessary --- src/audiomixerboard.cpp | 12 +++++++++--- src/audiomixerboard.h | 1 + 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index eb1a2c34d8..c7d4bbb994 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -393,6 +393,7 @@ void CChannelFader::Reset() bOtherChannelIsSolo = false; bIsMyOwnFader = false; + bIsMutedAtServer = false; iGroupID = INVALID_INDEX; UpdateGroupIDDependencies(); @@ -567,16 +568,21 @@ void CChannelFader::SetMute ( const bool bState ) { if ( bState ) { - // mute channel -> send gain of 0 - emit gainValueChanged ( 0, bIsMyOwnFader, false, false, -1 ); // set level ratio to in invalid value + if ( !bIsMutedAtServer ) + { + // mute channel -> send gain of 0 + emit gainValueChanged ( 0, bIsMyOwnFader, false, false, -1 ); // set level ratio to in invalid value + bIsMutedAtServer = true; + } } else { // only unmute if we are not solot but an other channel is on solo - if ( !bOtherChannelIsSolo || IsSolo() ) + if ( ( !bOtherChannelIsSolo || IsSolo() ) && bIsMutedAtServer ) { // mute was unchecked, get current fader value and apply emit gainValueChanged ( MathUtils::CalcFaderGain ( GetFaderLevel() ), bIsMyOwnFader, false, false, -1 ); // set level ratio to in invalid value + bIsMutedAtServer = false; } } } diff --git a/src/audiomixerboard.h b/src/audiomixerboard.h index 37bdad54d4..77225aa9ea 100755 --- a/src/audiomixerboard.h +++ b/src/audiomixerboard.h @@ -116,6 +116,7 @@ class CChannelFader : public QObject bool bOtherChannelIsSolo; bool bIsMyOwnFader; + bool bIsMutedAtServer; double dPreviousFaderLevel; int iGroupID; QString strGroupBaseText; From ef0c5d7a90aecb01530616277cb07e88556df971 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Fri, 4 Sep 2020 22:37:41 +0200 Subject: [PATCH 541/936] cleanup --- ChangeLog | 1 - 1 file changed, 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 063ee0546e..d1ee020d80 100644 --- a/ChangeLog +++ b/ChangeLog @@ -21,7 +21,6 @@ - bug fix: Alt+h shortcut to open the Chat dialog did not work, use Alt+c instead -TODO remove the bIsCallbackAudioInterface from the soundbase (because not interface is using it now) From 56b92e51b476821d362843b0b3e0fb36a459f638 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 5 Sep 2020 19:29:59 +0200 Subject: [PATCH 542/936] show the server name in the title bar (#559) --- ChangeLog | 4 +++- src/audiomixerboard.h | 41 +++++++++++++++++++++-------------------- src/clientdlg.cpp | 16 ++++++++++------ 3 files changed, 34 insertions(+), 27 deletions(-) diff --git a/ChangeLog b/ChangeLog index d1ee020d80..66706fcbea 100644 --- a/ChangeLog +++ b/ChangeLog @@ -8,7 +8,7 @@ - added an optional server list whitelist filter (#413) -- added a command line argument to enable multithreading in the server +- added a command line argument to enable multithreading in the server (#339) - store recorder settings, coded by pljones (#313) @@ -16,6 +16,8 @@ - added Jack audio audio latency calculation, coded by bflamig (#437) +- show the server name in the title bar (#559) + - bug fix: crash when using the Jack backend and quickly reconfiguring, coded by hselasky (#543) - bug fix: Alt+h shortcut to open the Chat dialog did not work, use Alt+c instead diff --git a/src/audiomixerboard.h b/src/audiomixerboard.h index 77225aa9ea..256de9d381 100755 --- a/src/audiomixerboard.h +++ b/src/audiomixerboard.h @@ -191,26 +191,27 @@ class CAudioMixerBoard : virtual ~CAudioMixerBoard(); - void SetSettingsPointer ( CClientSettings* pNSet ) { pSettings = pNSet; } - void HideAll(); - void ApplyNewConClientList ( CVector& vecChanInfo ); - void SetServerName ( const QString& strNewServerName ); - void SetGUIDesign ( const EGUIDesign eNewDesign ); - void SetDisplayChannelLevels ( const bool eNDCL ); - void SetDisplayPans ( const bool eNDP ); - void SetPanIsSupported(); - void SetRemoteFaderIsMute ( const int iChannelIdx, const bool bIsMute ); - void SetMyChannelID ( const int iChannelIdx ) { iMyChannelID = iChannelIdx; } - - void SetFaderLevel ( const int iChannelIdx, - const int iValue ); - - void ChangeFaderOrder ( const bool bDoSort, - const EChSortType eChSortType ); - - void SetChannelLevels ( const CVector& vecChannelLevel ); - - void SetRecorderState ( const ERecorderState newRecorderState ); + void SetSettingsPointer ( CClientSettings* pNSet ) { pSettings = pNSet; } + void HideAll(); + void ApplyNewConClientList ( CVector& vecChanInfo ); + void SetServerName ( const QString& strNewServerName ); + QString GetServerName() { return strServerName; } + void SetGUIDesign ( const EGUIDesign eNewDesign ); + void SetDisplayChannelLevels ( const bool eNDCL ); + void SetDisplayPans ( const bool eNDP ); + void SetPanIsSupported(); + void SetRemoteFaderIsMute ( const int iChannelIdx, const bool bIsMute ); + void SetMyChannelID ( const int iChannelIdx ) { iMyChannelID = iChannelIdx; } + + void SetFaderLevel ( const int iChannelIdx, + const int iValue ); + + void ChangeFaderOrder ( const bool bDoSort, + const EChSortType eChSortType ); + + void SetChannelLevels ( const CVector& vecChannelLevel ); + + void SetRecorderState ( const ERecorderState newRecorderState ); protected: class CMixerBoardScrollArea : public QScrollArea diff --git a/src/clientdlg.cpp b/src/clientdlg.cpp index 583c0f9d1e..591c4753ab 100755 --- a/src/clientdlg.cpp +++ b/src/clientdlg.cpp @@ -826,8 +826,9 @@ void CClientDlg::OnNumClientsChanged ( int iNewNumClients ) void CClientDlg::SetMyWindowTitle ( const int iNumClients ) { - // show number of connected clients in window title (and therefore also in - // the task bar of the OS) + // set the window title (and therefore also the task bar icon text of the OS) + // according to the following specification (#559): + // - users - Jamulus if ( iNumClients == 0 ) { // only application name @@ -835,15 +836,18 @@ void CClientDlg::SetMyWindowTitle ( const int iNumClients ) } else { + QString strWinTitle = MainMixerBoard->GetServerName(); + if ( iNumClients == 1 ) { - setWindowTitle ( QString ( pClient->strClientName ) + " (1 " + tr ( "user" ) + ")" ); + strWinTitle += " - 1 " + tr ( "user" ); } - else + else if ( iNumClients > 1 ) { - setWindowTitle ( QString ( pClient->strClientName ) + - QString ( " (%1 " + tr ( "users" ) + ")" ).arg ( iNumClients ) ); + strWinTitle += " - " + QString::number ( iNumClients ) + " " + tr ( "users" ); } + + setWindowTitle ( strWinTitle + " - " + pClient->strClientName ); } #if defined ( __APPLE__ ) || defined ( __MACOSX ) From 8b7ccde7d64f739e96fa0b6415b6840eb5eda3f3 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 5 Sep 2020 20:18:48 +0200 Subject: [PATCH 543/936] added some more description to the help text for the --inifile command line argument --- src/main.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index aadaa76aa7..dcadd15657 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -766,7 +766,8 @@ QString UsageArguments ( char **argv ) "Usage: " + QString ( argv[0] ) + " [option] [optional argument]\n" "\nRecognized options:\n" " -h, -?, --help display this help text and exit\n" - " -i, --inifile initialization file name\n" + " -i, --inifile initialization file name (not\n" + " supported for headless server mode)\n" " -n, --nogui disable GUI\n" " -p, --port set your local port number\n" " -t, --notranslation disable translation (use englisch language)\n" From 0a0f21d90c4f248de237a763b2c03c264e54ad06 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 5 Sep 2020 20:23:25 +0200 Subject: [PATCH 544/936] add a warning if the inifile is used for headless server mode --- src/main.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index dcadd15657..6d87d053a9 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -533,6 +533,8 @@ int main ( int argc, char** argv ) #endif } + + // Dependencies ------------------------------------------------------------ #ifdef HEADLESS if ( bUseGUI ) { @@ -545,8 +547,12 @@ int main ( int argc, char** argv ) Q_UNUSED ( bMuteStream ) // avoid compiler warnings #endif + // the inifile is not supported for the headless server mode + if ( !bIsClient && !bUseGUI && !strIniFileName.isEmpty() ) + { + tsConsole << "No initialization file support in headless server mode." << endl; + } - // Dependencies ------------------------------------------------------------ // per definition: if we are in "GUI" server mode and no central server // address is given, we use the default central server address if ( !bIsClient && bUseGUI && strCentralServer.isEmpty() ) From 4791cd7f0d20a92e4bbc690df6c8e1f61722e6ae Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 6 Sep 2020 18:58:05 +0200 Subject: [PATCH 545/936] backup checkin, does not work, contains a lot of ugly test code... --- src/protocol.cpp | 245 +++++++++++++++++++++++++++++++++++++---------- src/protocol.h | 13 +++ 2 files changed, 205 insertions(+), 53 deletions(-) diff --git a/src/protocol.cpp b/src/protocol.cpp index 5ab9b925f2..55351c7035 100755 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -51,6 +51,19 @@ MAIN FRAME +SPLIT MESSAGE CONTAINER +----------------------- + + +------------+------------------------+------------------+--------------+ + | 2 bytes ID | 1 byte number of parts | 1 byte split cnt | n bytes data | + +------------+------------------------+------------------+--------------+ + +- ID is the message ID of the message being split +- split cnt is the counter which is incremented for each part of the message +- data is the data part of the original message which were split + + + MESSAGES (with connection) -------------------------- @@ -406,6 +419,20 @@ CONNECTION LESS MESSAGES /* Implementation *************************************************************/ CProtocol::CProtocol() { + + +// TEST +const int iMaxNumParts = 25; +iPartSize = 100; +vecvecbySplitMessageStorage.Init ( iMaxNumParts ); + +for ( int i = 0; i < iMaxNumParts; i++ ) +{ + vecvecbySplitMessageStorage[i].Init( iPartSize ); +} + + + Reset(); @@ -506,12 +533,37 @@ void CProtocol::CreateAndSendMessage ( const int iID, } Mutex.unlock(); + +// TODO insert split mechanism here +// TODO make use of MAX_SIZE_BYTES_NETW_BUF + +// TEST split all messages by half for testing +if ( vecData.Size() > iPartSize ) +{ + const int iNumParts = static_cast ( ceil ( static_cast ( vecData.Size() ) / iPartSize ) ); + + for ( int iPartCnt = 0; iPartCnt < iNumParts; iPartCnt++ ) + { + +// TODO +// vecData + + // build complete message + GenMessageFrame ( vecNewMessage, iCurCounter, iID, vecData ); + + // enqueue message + EnqueueMessage ( vecNewMessage, iCurCounter, iID ); + } +} +else +{ // build complete message GenMessageFrame ( vecNewMessage, iCurCounter, iID, vecData ); // enqueue message EnqueueMessage ( vecNewMessage, iCurCounter, iID ); } +} void CProtocol::CreateAndImmSendAcknMess ( const int& iID, const int& iCnt ) @@ -614,76 +666,129 @@ if ( rand() < ( RAND_MAX / 2 ) ) return false; } else { - // check which type of message we received and do action - switch ( iRecID ) + +// TODO better solution: do not copy message +CVector vecbyMesBodyDataModified = vecbyMesBodyData; + + + bool bEvaluateMessage = true; + + // check for special ID first + if ( iRecID == PROTMESSID_SPECIAL_SPLIT_MESSAGE ) { - case PROTMESSID_JITT_BUF_SIZE: - bRet = EvaluateJitBufMes ( vecbyMesBodyData ); - break; + int iOriginalID; + int iReceivedNumParts; + int iReceivedSplitCnt; - case PROTMESSID_REQ_JITT_BUF_SIZE: - bRet = EvaluateReqJitBufMes(); - break; + ParseSplitMessageContainer ( vecbyMesBodyData, + vecvecbySplitMessageStorage[iSplitMessageCnt], + iOriginalID, + iReceivedNumParts, + iReceivedSplitCnt ); - case PROTMESSID_CLIENT_ID: - bRet = EvaluateClientIDMes ( vecbyMesBodyData ); - break; +// TODO implement some checks of counters, etc. here - case PROTMESSID_CHANNEL_GAIN: - bRet = EvaluateChanGainMes ( vecbyMesBodyData ); - break; +// TEST assuming everything is ok + iSplitMessageCnt++; - case PROTMESSID_CHANNEL_PAN: - bRet = EvaluateChanPanMes ( vecbyMesBodyData ); - break; + if ( iSplitMessageCnt == iReceivedNumParts ) + { +// quick hack test!!! + vecbyMesBodyDataModified.Reset ( 0 ); - case PROTMESSID_MUTE_STATE_CHANGED: - bRet = EvaluateMuteStateHasChangedMes ( vecbyMesBodyData ); - break; + for ( int i = 0; i < iReceivedNumParts; i++ ) + { +// quick hack test!!! + for ( int j = 0; j < vecvecbySplitMessageStorage[i].Size(); j++ ) + { + vecbyMesBodyDataModified.Add ( vecvecbySplitMessageStorage[i][j] ); + } + } + } + else + { + bEvaluateMessage = false; + } + } + else + { +// TEST +iSplitMessageCnt = 0; + } + + if ( bEvaluateMessage ) + { + // check which type of message we received and do action + switch ( iRecID ) + { + case PROTMESSID_JITT_BUF_SIZE: + bRet = EvaluateJitBufMes ( vecbyMesBodyDataModified ); + break; + + case PROTMESSID_REQ_JITT_BUF_SIZE: + bRet = EvaluateReqJitBufMes(); + break; + + case PROTMESSID_CLIENT_ID: + bRet = EvaluateClientIDMes ( vecbyMesBodyDataModified ); + break; - case PROTMESSID_CONN_CLIENTS_LIST: - bRet = EvaluateConClientListMes ( vecbyMesBodyData ); - break; + case PROTMESSID_CHANNEL_GAIN: + bRet = EvaluateChanGainMes ( vecbyMesBodyDataModified ); + break; - case PROTMESSID_REQ_CONN_CLIENTS_LIST: - bRet = EvaluateReqConnClientsList(); - break; + case PROTMESSID_CHANNEL_PAN: + bRet = EvaluateChanPanMes ( vecbyMesBodyDataModified ); + break; - case PROTMESSID_CHANNEL_INFOS: - bRet = EvaluateChanInfoMes ( vecbyMesBodyData ); - break; + case PROTMESSID_MUTE_STATE_CHANGED: + bRet = EvaluateMuteStateHasChangedMes ( vecbyMesBodyDataModified ); + break; - case PROTMESSID_REQ_CHANNEL_INFOS: - bRet = EvaluateReqChanInfoMes(); - break; + case PROTMESSID_CONN_CLIENTS_LIST: + bRet = EvaluateConClientListMes ( vecbyMesBodyDataModified ); + break; - case PROTMESSID_CHAT_TEXT: - bRet = EvaluateChatTextMes ( vecbyMesBodyData ); - break; + case PROTMESSID_REQ_CONN_CLIENTS_LIST: + bRet = EvaluateReqConnClientsList(); + break; - case PROTMESSID_NETW_TRANSPORT_PROPS: - bRet = EvaluateNetwTranspPropsMes ( vecbyMesBodyData ); - break; + case PROTMESSID_CHANNEL_INFOS: + bRet = EvaluateChanInfoMes ( vecbyMesBodyDataModified ); + break; - case PROTMESSID_REQ_NETW_TRANSPORT_PROPS: - bRet = EvaluateReqNetwTranspPropsMes(); - break; + case PROTMESSID_REQ_CHANNEL_INFOS: + bRet = EvaluateReqChanInfoMes(); + break; - case PROTMESSID_LICENCE_REQUIRED: - bRet = EvaluateLicenceRequiredMes ( vecbyMesBodyData ); - break; + case PROTMESSID_CHAT_TEXT: + bRet = EvaluateChatTextMes ( vecbyMesBodyDataModified ); + break; - case PROTMESSID_REQ_CHANNEL_LEVEL_LIST: - bRet = EvaluateReqChannelLevelListMes ( vecbyMesBodyData ); - break; + case PROTMESSID_NETW_TRANSPORT_PROPS: + bRet = EvaluateNetwTranspPropsMes ( vecbyMesBodyDataModified ); + break; - case PROTMESSID_VERSION_AND_OS: - bRet = EvaluateVersionAndOSMes ( vecbyMesBodyData ); - break; + case PROTMESSID_REQ_NETW_TRANSPORT_PROPS: + bRet = EvaluateReqNetwTranspPropsMes(); + break; - case PROTMESSID_RECORDER_STATE: - bRet = EvaluateRecorderStateMes ( vecbyMesBodyData ); - break; + case PROTMESSID_LICENCE_REQUIRED: + bRet = EvaluateLicenceRequiredMes ( vecbyMesBodyDataModified ); + break; + + case PROTMESSID_REQ_CHANNEL_LEVEL_LIST: + bRet = EvaluateReqChannelLevelListMes ( vecbyMesBodyDataModified ); + break; + + case PROTMESSID_VERSION_AND_OS: + bRet = EvaluateVersionAndOSMes ( vecbyMesBodyDataModified ); + break; + + case PROTMESSID_RECORDER_STATE: + bRet = EvaluateRecorderStateMes ( vecbyMesBodyDataModified ); + break; + } } // immediately send acknowledge message @@ -2644,6 +2749,40 @@ bool CProtocol::ParseMessageFrame ( const CVector& vecbyData, return false; // no error } +void CProtocol::ParseSplitMessageContainer ( const CVector& vecbyData, + CVector& vecbyMesBodyData, + int& iID, + int& iNumParts, + int& iSplitCnt ) +{ + int iPos = 0; // init position pointer + const int iDataLen = vecbyData.Size(); + + // 2 bytes ID + iID = static_cast ( GetValFromStream ( vecbyData, iPos, 2 ) ); + + // 1 byte number of parts + iNumParts = static_cast ( GetValFromStream ( vecbyData, iPos, 1 ) ); + + // 1 byte split cnt + iSplitCnt = static_cast ( GetValFromStream ( vecbyData, iPos, 1 ) ); + + + // Extract actual data ----------------------------------------------------- + + const int iLenBy = iDataLen - 4; + +// TODO this memory allocation is done in the real time thread but should be +// done in the low priority protocol management thread + + vecbyMesBodyData.Init ( iLenBy ); + + for ( int i = 0; i < iLenBy; i++ ) + { + vecbyMesBodyData[i] = static_cast ( GetValFromStream ( vecbyData, iPos, 1 ) ); + } +} + uint32_t CProtocol::GetValFromStream ( const CVector& vecIn, int& iPos, const int iNumOfBytes ) diff --git a/src/protocol.h b/src/protocol.h index f9ea11aa83..cb101ec768 100755 --- a/src/protocol.h +++ b/src/protocol.h @@ -81,6 +81,9 @@ #define PROTMESSID_CLM_REGISTER_SERVER_RESP 1016 // status of server registration request #define PROTMESSID_CLM_REGISTER_SERVER_EX 1017 // register server with extended information +// special IDs +#define PROTMESSID_SPECIAL_SPLIT_MESSAGE 2001 // a container for split messages + // lengths of message as defined in protocol.cpp file #define MESS_HEADER_LENGTH_BYTE 7 // TAG (2), ID (2), cnt (1), length (2) #define MESS_LEN_WITHOUT_DATA_BYTE ( MESS_HEADER_LENGTH_BYTE + 2 /* CRC (2) */ ) @@ -202,6 +205,12 @@ class CProtocol : public QObject const int iID, const CVector& vecData ); + void ParseSplitMessageContainer ( const CVector& vecbyData, + CVector& vecbyMesBodyData, + int& iID, + int& iNumParts, + int& iSplitCnt ); + void PutValOnStream ( CVector& vecIn, int& iPos, const uint32_t iVal, @@ -283,6 +292,10 @@ class CProtocol : public QObject QTimer TimerSendMess; QMutex Mutex; + CVector > vecvecbySplitMessageStorage; + int iSplitMessageCnt; + int iPartSize; + public slots: void OnTimerSendMess() { SendMessage(); } From 270a5c3952c2da1e5d3f5b3f2125068510c7c1c3 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 6 Sep 2020 21:56:50 +0200 Subject: [PATCH 546/936] first working proof of concept version of splitting large protocol messages (a lot of bad and quick hack code present which has to be cleaned up) --- src/protocol.cpp | 66 ++++++++++++++++++++++++++++++++++++++++++++---- src/protocol.h | 6 +++++ 2 files changed, 67 insertions(+), 5 deletions(-) diff --git a/src/protocol.cpp b/src/protocol.cpp index 55351c7035..7d0a34fe17 100755 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -422,8 +422,8 @@ CProtocol::CProtocol() // TEST -const int iMaxNumParts = 25; -iPartSize = 100; +const int iMaxNumParts = 200;//25; +iPartSize = 600; vecvecbySplitMessageStorage.Init ( iMaxNumParts ); for ( int i = 0; i < iMaxNumParts; i++ ) @@ -537,16 +537,38 @@ void CProtocol::CreateAndSendMessage ( const int iID, // TODO insert split mechanism here // TODO make use of MAX_SIZE_BYTES_NETW_BUF +CVector vecDataTmp; +int iPointer = 0; + // TEST split all messages by half for testing if ( vecData.Size() > iPartSize ) { const int iNumParts = static_cast ( ceil ( static_cast ( vecData.Size() ) / iPartSize ) ); - for ( int iPartCnt = 0; iPartCnt < iNumParts; iPartCnt++ ) +//qDebug() << iNumParts; + + for ( int iSplitCnt = 0; iSplitCnt < iNumParts; iSplitCnt++ ) { + int iCurPartSize = iPartSize; + + if ( vecData.Size() - iPointer < iPartSize ) + { + iCurPartSize = vecData.Size() - iPointer; + } + +vecDataTmp.Init ( iCurPartSize ); + +for ( int i = 0; i < iCurPartSize; i++ ) +{ + vecDataTmp[i] = vecData[iPointer + i]; +} +iPointer += iCurPartSize; -// TODO -// vecData + GenSplitMessageContainer ( vecNewMessage, + iID, + iNumParts, + iSplitCnt, + vecDataTmp ); // build complete message GenMessageFrame ( vecNewMessage, iCurCounter, iID, vecData ); @@ -2905,6 +2927,40 @@ void CProtocol::GenMessageFrame ( CVector& vecOut, PutValOnStream ( vecOut, iCurPos, static_cast ( CRCObj.GetCRC() ), 2 ); } + +void CProtocol::GenSplitMessageContainer ( CVector& vecOut, + const int iID, + const int iNumParts, + const int iSplitCnt, + const CVector& vecData ) +{ + int iPos = 0; // init position pointer + + // query length of data vector + const int iDataLenByte = vecData.Size(); + + // total length of message + const int iTotLenByte = 4 + iDataLenByte; + + // init message vector + vecOut.Init ( iTotLenByte ); + + // 2 bytes ID + PutValOnStream ( vecOut, iPos, static_cast ( iID ), 2 ); + + // 1 byte number of parts + PutValOnStream ( vecOut, iPos, static_cast ( iNumParts ), 1 ); + + // 1 byte split cnt + PutValOnStream ( vecOut, iPos, static_cast ( iSplitCnt ), 1 ); + + // data + for ( int i = 0; i < iDataLenByte; i++ ) + { + PutValOnStream ( vecOut, iPos, static_cast ( vecData[i] ), 1 ); + } +} + void CProtocol::PutValOnStream ( CVector& vecIn, int& iPos, const uint32_t iVal, diff --git a/src/protocol.h b/src/protocol.h index cb101ec768..91bda9fe46 100755 --- a/src/protocol.h +++ b/src/protocol.h @@ -205,6 +205,12 @@ class CProtocol : public QObject const int iID, const CVector& vecData ); + void GenSplitMessageContainer ( CVector& vecOut, + const int iID, + const int iNumParts, + const int iSplitCnt, + const CVector& vecData ); + void ParseSplitMessageContainer ( const CVector& vecbyData, CVector& vecbyMesBodyData, int& iID, From 4ce374f7914356a42783f47df03dc90c7178ece7 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 7 Sep 2020 20:38:57 +0200 Subject: [PATCH 547/936] bug fixes and adding qDebug() outputs --- src/protocol.cpp | 69 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 48 insertions(+), 21 deletions(-) diff --git a/src/protocol.cpp b/src/protocol.cpp index 7d0a34fe17..e4f6b5c865 100755 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -428,7 +428,7 @@ vecvecbySplitMessageStorage.Init ( iMaxNumParts ); for ( int i = 0; i < iMaxNumParts; i++ ) { - vecvecbySplitMessageStorage[i].Init( iPartSize ); + vecvecbySplitMessageStorage[i].Init ( iPartSize ); } @@ -446,9 +446,10 @@ void CProtocol::Reset() QMutexLocker locker ( &Mutex ); // prepare internal variables for initial protocol transfer - iCounter = 0; - iOldRecID = PROTMESSID_ILLEGAL; - iOldRecCnt = 0; + iCounter = 0; + iOldRecID = PROTMESSID_ILLEGAL; + iOldRecCnt = 0; + iSplitMessageCnt = 0; // delete complete "send message queue" SendMessQueue.clear(); @@ -523,29 +524,20 @@ void CProtocol::CreateAndSendMessage ( const int iID, CVector vecNewMessage; int iCurCounter; - Mutex.lock(); - { - // store current counter value - iCurCounter = iCounter; - - // increase counter (wraps around automatically) - iCounter++; - } - Mutex.unlock(); - - // TODO insert split mechanism here // TODO make use of MAX_SIZE_BYTES_NETW_BUF CVector vecDataTmp; int iPointer = 0; +qDebug() << "CreateAndSendMessage vecData.Size(): " << vecData.Size(); + // TEST split all messages by half for testing if ( vecData.Size() > iPartSize ) { const int iNumParts = static_cast ( ceil ( static_cast ( vecData.Size() ) / iPartSize ) ); -//qDebug() << iNumParts; +qDebug() << "CreateAndSendMessage message spilt in " << iNumParts << " parts"; for ( int iSplitCnt = 0; iSplitCnt < iNumParts; iSplitCnt++ ) { @@ -564,21 +556,43 @@ for ( int i = 0; i < iCurPartSize; i++ ) } iPointer += iCurPartSize; - GenSplitMessageContainer ( vecNewMessage, +CVector vecNewSplitMessage; + + GenSplitMessageContainer ( vecNewSplitMessage, iID, iNumParts, iSplitCnt, vecDataTmp ); + Mutex.lock(); + { + // store current counter value + iCurCounter = iCounter; + + // increase counter (wraps around automatically) + iCounter++; + } + Mutex.unlock(); + // build complete message - GenMessageFrame ( vecNewMessage, iCurCounter, iID, vecData ); + GenMessageFrame ( vecNewMessage, iCurCounter, PROTMESSID_SPECIAL_SPLIT_MESSAGE, vecNewSplitMessage ); // enqueue message - EnqueueMessage ( vecNewMessage, iCurCounter, iID ); + EnqueueMessage ( vecNewMessage, iCurCounter, PROTMESSID_SPECIAL_SPLIT_MESSAGE ); } } else { + Mutex.lock(); + { + // store current counter value + iCurCounter = iCounter; + + // increase counter (wraps around automatically) + iCounter++; + } + Mutex.unlock(); + // build complete message GenMessageFrame ( vecNewMessage, iCurCounter, iID, vecData ); @@ -691,6 +705,7 @@ if ( rand() < ( RAND_MAX / 2 ) ) return false; // TODO better solution: do not copy message CVector vecbyMesBodyDataModified = vecbyMesBodyData; +int iRecIDModified = iRecID; bool bEvaluateMessage = true; @@ -698,6 +713,8 @@ CVector vecbyMesBodyDataModified = vecbyMesBodyData; // check for special ID first if ( iRecID == PROTMESSID_SPECIAL_SPLIT_MESSAGE ) { +qDebug() << "PROTMESSID_SPECIAL_SPLIT_MESSAGE"; + int iOriginalID; int iReceivedNumParts; int iReceivedSplitCnt; @@ -713,10 +730,12 @@ CVector vecbyMesBodyDataModified = vecbyMesBodyData; // TEST assuming everything is ok iSplitMessageCnt++; +qDebug() << "iSplitMessageCnt: " << iSplitMessageCnt << ", iReceivedSplitCnt: " << iReceivedSplitCnt << ", iReceivedNumParts: " << iReceivedNumParts; + if ( iSplitMessageCnt == iReceivedNumParts ) { // quick hack test!!! - vecbyMesBodyDataModified.Reset ( 0 ); + vecbyMesBodyDataModified.Init ( 0 ); for ( int i = 0; i < iReceivedNumParts; i++ ) { @@ -726,6 +745,11 @@ CVector vecbyMesBodyDataModified = vecbyMesBodyData; vecbyMesBodyDataModified.Add ( vecvecbySplitMessageStorage[i][j] ); } } + + iRecIDModified = iOriginalID; + +qDebug() << "received iNumParts: " << iReceivedNumParts;// << ", data: " << vecbyMesBodyDataModified; + } else { @@ -740,8 +764,11 @@ iSplitMessageCnt = 0; if ( bEvaluateMessage ) { + +qDebug() << "iRecIDModified: " << iRecIDModified << ", vecbyMesBodyDataModified.Size(): " << vecbyMesBodyDataModified.Size(); + // check which type of message we received and do action - switch ( iRecID ) + switch ( iRecIDModified ) { case PROTMESSID_JITT_BUF_SIZE: bRet = EvaluateJitBufMes ( vecbyMesBodyDataModified ); From 1b94d0b9ffaee2008e21ce28d715a167a509a9b5 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 7 Sep 2020 21:19:20 +0200 Subject: [PATCH 548/936] some cleanup --- src/protocol.cpp | 37 +++++++++++++++++++++++++++---------- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/src/protocol.cpp b/src/protocol.cpp index e4f6b5c865..8f7dfc762d 100755 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -556,6 +556,7 @@ for ( int i = 0; i < iCurPartSize; i++ ) } iPointer += iCurPartSize; +// TODO better solution CVector vecNewSplitMessage; GenSplitMessageContainer ( vecNewSplitMessage, @@ -734,32 +735,48 @@ qDebug() << "iSplitMessageCnt: " << iSplitMessageCnt << ", iReceivedSplitCnt: " if ( iSplitMessageCnt == iReceivedNumParts ) { -// quick hack test!!! - vecbyMesBodyDataModified.Init ( 0 ); - for ( int i = 0; i < iReceivedNumParts; i++ ) +// TODO is there a cleaner way of reconstructing the complete message? + + int iMessageSize = 0; + + for ( int iSplitCnt = 0; iSplitCnt < iReceivedNumParts; iSplitCnt++ ) + { + iMessageSize += vecvecbySplitMessageStorage[iSplitCnt].Size(); + } + + vecbyMesBodyDataModified.Init ( iMessageSize ); + + int iPutPos = 0; + + for ( int iSplitCnt = 0; iSplitCnt < iReceivedNumParts; iSplitCnt++ ) { -// quick hack test!!! - for ( int j = 0; j < vecvecbySplitMessageStorage[i].Size(); j++ ) - { - vecbyMesBodyDataModified.Add ( vecvecbySplitMessageStorage[i][j] ); - } + const int iCurPartSize = vecvecbySplitMessageStorage[iSplitCnt].Size(); + + std::copy ( vecvecbySplitMessageStorage[iSplitCnt].begin(), + vecvecbySplitMessageStorage[iSplitCnt].begin() + iCurPartSize, + vecbyMesBodyDataModified.begin() + iPutPos ); + + iPutPos += iCurPartSize; } iRecIDModified = iOriginalID; qDebug() << "received iNumParts: " << iReceivedNumParts;// << ", data: " << vecbyMesBodyDataModified; + // the complete split message was reconstructed, reset the counter for the next split message + iSplitMessageCnt = 0; } else { + // only part of the split message is received, no evaluation possible yet bEvaluateMessage = false; } } else { -// TEST -iSplitMessageCnt = 0; + // a non-split message was received, reset split message counter + iSplitMessageCnt = 0; } if ( bEvaluateMessage ) From c00ea756810ed13414ea2a83aa4e9bfb4def7671 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 8 Sep 2020 16:33:17 +0200 Subject: [PATCH 549/936] added some protocol protection for the new message type --- src/protocol.cpp | 74 ++++++++++++++++++++++++++---------------------- src/protocol.h | 2 +- 2 files changed, 41 insertions(+), 35 deletions(-) diff --git a/src/protocol.cpp b/src/protocol.cpp index 8f7dfc762d..c5438f8cb8 100755 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -709,7 +709,7 @@ CVector vecbyMesBodyDataModified = vecbyMesBodyData; int iRecIDModified = iRecID; - bool bEvaluateMessage = true; + bool bEvaluateMessage = false; // check for special ID first if ( iRecID == PROTMESSID_SPECIAL_SPLIT_MESSAGE ) @@ -720,63 +720,61 @@ qDebug() << "PROTMESSID_SPECIAL_SPLIT_MESSAGE"; int iReceivedNumParts; int iReceivedSplitCnt; - ParseSplitMessageContainer ( vecbyMesBodyData, - vecvecbySplitMessageStorage[iSplitMessageCnt], - iOriginalID, - iReceivedNumParts, - iReceivedSplitCnt ); - + if ( !ParseSplitMessageContainer ( vecbyMesBodyData, + vecvecbySplitMessageStorage[iSplitMessageCnt], + iOriginalID, + iReceivedNumParts, + iReceivedSplitCnt ) ) + { // TODO implement some checks of counters, etc. here // TEST assuming everything is ok - iSplitMessageCnt++; + iSplitMessageCnt++; qDebug() << "iSplitMessageCnt: " << iSplitMessageCnt << ", iReceivedSplitCnt: " << iReceivedSplitCnt << ", iReceivedNumParts: " << iReceivedNumParts; - if ( iSplitMessageCnt == iReceivedNumParts ) - { + if ( iSplitMessageCnt == iReceivedNumParts ) + { // TODO is there a cleaner way of reconstructing the complete message? - int iMessageSize = 0; + int iMessageSize = 0; - for ( int iSplitCnt = 0; iSplitCnt < iReceivedNumParts; iSplitCnt++ ) - { - iMessageSize += vecvecbySplitMessageStorage[iSplitCnt].Size(); - } + for ( int iSplitCnt = 0; iSplitCnt < iReceivedNumParts; iSplitCnt++ ) + { + iMessageSize += vecvecbySplitMessageStorage[iSplitCnt].Size(); + } - vecbyMesBodyDataModified.Init ( iMessageSize ); + vecbyMesBodyDataModified.Init ( iMessageSize ); - int iPutPos = 0; + int iPutPos = 0; - for ( int iSplitCnt = 0; iSplitCnt < iReceivedNumParts; iSplitCnt++ ) - { - const int iCurPartSize = vecvecbySplitMessageStorage[iSplitCnt].Size(); + for ( int iSplitCnt = 0; iSplitCnt < iReceivedNumParts; iSplitCnt++ ) + { + const int iCurPartSize = vecvecbySplitMessageStorage[iSplitCnt].Size(); - std::copy ( vecvecbySplitMessageStorage[iSplitCnt].begin(), - vecvecbySplitMessageStorage[iSplitCnt].begin() + iCurPartSize, - vecbyMesBodyDataModified.begin() + iPutPos ); + std::copy ( vecvecbySplitMessageStorage[iSplitCnt].begin(), + vecvecbySplitMessageStorage[iSplitCnt].begin() + iCurPartSize, + vecbyMesBodyDataModified.begin() + iPutPos ); - iPutPos += iCurPartSize; - } + iPutPos += iCurPartSize; + } - iRecIDModified = iOriginalID; + iRecIDModified = iOriginalID; qDebug() << "received iNumParts: " << iReceivedNumParts;// << ", data: " << vecbyMesBodyDataModified; - // the complete split message was reconstructed, reset the counter for the next split message - iSplitMessageCnt = 0; - } - else - { - // only part of the split message is received, no evaluation possible yet - bEvaluateMessage = false; + // the complete split message was reconstructed, reset the counter for the next split message + iSplitMessageCnt = 0; + bEvaluateMessage = true; + } } } else { // a non-split message was received, reset split message counter iSplitMessageCnt = 0; + bEvaluateMessage = true; } if ( bEvaluateMessage ) @@ -2815,7 +2813,7 @@ bool CProtocol::ParseMessageFrame ( const CVector& vecbyData, return false; // no error } -void CProtocol::ParseSplitMessageContainer ( const CVector& vecbyData, +bool CProtocol::ParseSplitMessageContainer ( const CVector& vecbyData, CVector& vecbyMesBodyData, int& iID, int& iNumParts, @@ -2824,6 +2822,12 @@ void CProtocol::ParseSplitMessageContainer ( const CVector& vecbyData, int iPos = 0; // init position pointer const int iDataLen = vecbyData.Size(); + // check size (the first 4 bytes) + if ( iDataLen < 4 ) + { + return true; // return error code + } + // 2 bytes ID iID = static_cast ( GetValFromStream ( vecbyData, iPos, 2 ) ); @@ -2847,6 +2851,8 @@ void CProtocol::ParseSplitMessageContainer ( const CVector& vecbyData, { vecbyMesBodyData[i] = static_cast ( GetValFromStream ( vecbyData, iPos, 1 ) ); } + + return false; // no error } uint32_t CProtocol::GetValFromStream ( const CVector& vecIn, diff --git a/src/protocol.h b/src/protocol.h index 91bda9fe46..62378b28f9 100755 --- a/src/protocol.h +++ b/src/protocol.h @@ -211,7 +211,7 @@ class CProtocol : public QObject const int iSplitCnt, const CVector& vecData ); - void ParseSplitMessageContainer ( const CVector& vecbyData, + bool ParseSplitMessageContainer ( const CVector& vecbyData, CVector& vecbyMesBodyData, int& iID, int& iNumParts, From e754847dfb40820288b37b7d1082e34fc0a7b62a Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 8 Sep 2020 18:12:09 +0200 Subject: [PATCH 550/936] added consistency checks and some code cleanup --- src/protocol.cpp | 135 +++++++++++++++++++++-------------------------- src/protocol.h | 11 ++-- 2 files changed, 67 insertions(+), 79 deletions(-) diff --git a/src/protocol.cpp b/src/protocol.cpp index c5438f8cb8..33ffefc6a0 100755 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -419,20 +419,6 @@ CONNECTION LESS MESSAGES /* Implementation *************************************************************/ CProtocol::CProtocol() { - - -// TEST -const int iMaxNumParts = 200;//25; -iPartSize = 600; -vecvecbySplitMessageStorage.Init ( iMaxNumParts ); - -for ( int i = 0; i < iMaxNumParts; i++ ) -{ - vecvecbySplitMessageStorage[i].Init ( iPartSize ); -} - - - Reset(); @@ -533,17 +519,17 @@ int iPointer = 0; qDebug() << "CreateAndSendMessage vecData.Size(): " << vecData.Size(); // TEST split all messages by half for testing -if ( vecData.Size() > iPartSize ) +if ( vecData.Size() > MESS_SPLIT_PART_SIZE_BYTES ) { - const int iNumParts = static_cast ( ceil ( static_cast ( vecData.Size() ) / iPartSize ) ); + const int iNumParts = static_cast ( ceil ( static_cast ( vecData.Size() ) / MESS_SPLIT_PART_SIZE_BYTES ) ); qDebug() << "CreateAndSendMessage message spilt in " << iNumParts << " parts"; for ( int iSplitCnt = 0; iSplitCnt < iNumParts; iSplitCnt++ ) { - int iCurPartSize = iPartSize; + int iCurPartSize = MESS_SPLIT_PART_SIZE_BYTES; - if ( vecData.Size() - iPointer < iPartSize ) + if ( vecData.Size() - iPointer < MESS_SPLIT_PART_SIZE_BYTES ) { iCurPartSize = vecData.Size() - iPointer; } @@ -633,16 +619,10 @@ void CProtocol::CreateAndImmSendConLessMessage ( const int iID, emit CLMessReadyForSending ( InetAddr, vecNewMessage ); } -bool CProtocol::ParseMessageBody ( const CVector& vecbyMesBodyData, +void CProtocol::ParseMessageBody ( const CVector& vecbyMesBodyData, const int iRecCounter, const int iRecID ) { -/* - return code: false -> ok; true -> error -*/ - bool bRet = false; - bool bSendNextMess; - /* // TEST channel implementation: randomly delete protocol messages (50 % loss) if ( rand() < ( RAND_MAX / 2 ) ) return false; @@ -669,18 +649,17 @@ if ( rand() < ( RAND_MAX / 2 ) ) return false; // check size if ( vecbyMesBodyData.Size() != 2 ) { - return true; // return error code + return; } // extract data from stream and emit signal for received value - int iPos = 0; - const int iData = - static_cast ( GetValFromStream ( vecbyMesBodyData, iPos, 2 ) ); + bool bSendNextMess = false; + int iPos = 0; + const int iData = static_cast ( GetValFromStream ( vecbyMesBodyData, iPos, 2 ) ); Mutex.lock(); { // check if this is the correct acknowledgment - bSendNextMess = false; if ( !SendMessQueue.empty() ) { if ( ( SendMessQueue.front().iCnt == iRecCounter ) && @@ -726,53 +705,61 @@ qDebug() << "PROTMESSID_SPECIAL_SPLIT_MESSAGE"; iReceivedNumParts, iReceivedSplitCnt ) ) { -// TODO implement some checks of counters, etc. here - -// TEST assuming everything is ok - iSplitMessageCnt++; + // consistency checks + if ( ( iSplitMessageCnt != iReceivedSplitCnt ) || + ( iSplitMessageCnt >= iReceivedNumParts ) || + ( iSplitMessageCnt >= MAX_NUM_MESS_SPLIT_PARTS - 1 ) ) + { + // in case of an error we result the split message counter + iSplitMessageCnt = 0; + } + else + { + iSplitMessageCnt++; qDebug() << "iSplitMessageCnt: " << iSplitMessageCnt << ", iReceivedSplitCnt: " << iReceivedSplitCnt << ", iReceivedNumParts: " << iReceivedNumParts; - if ( iSplitMessageCnt == iReceivedNumParts ) - { + if ( iSplitMessageCnt == iReceivedNumParts ) + { // TODO is there a cleaner way of reconstructing the complete message? - int iMessageSize = 0; + int iMessageSize = 0; - for ( int iSplitCnt = 0; iSplitCnt < iReceivedNumParts; iSplitCnt++ ) - { - iMessageSize += vecvecbySplitMessageStorage[iSplitCnt].Size(); - } + for ( int iSplitCnt = 0; iSplitCnt < iReceivedNumParts; iSplitCnt++ ) + { + iMessageSize += vecvecbySplitMessageStorage[iSplitCnt].Size(); + } - vecbyMesBodyDataModified.Init ( iMessageSize ); + vecbyMesBodyDataModified.Init ( iMessageSize ); - int iPutPos = 0; + int iPutPos = 0; - for ( int iSplitCnt = 0; iSplitCnt < iReceivedNumParts; iSplitCnt++ ) - { - const int iCurPartSize = vecvecbySplitMessageStorage[iSplitCnt].Size(); + for ( int iSplitCnt = 0; iSplitCnt < iReceivedNumParts; iSplitCnt++ ) + { + const int iCurPartSize = vecvecbySplitMessageStorage[iSplitCnt].Size(); - std::copy ( vecvecbySplitMessageStorage[iSplitCnt].begin(), - vecvecbySplitMessageStorage[iSplitCnt].begin() + iCurPartSize, - vecbyMesBodyDataModified.begin() + iPutPos ); + std::copy ( vecvecbySplitMessageStorage[iSplitCnt].begin(), + vecvecbySplitMessageStorage[iSplitCnt].begin() + iCurPartSize, + vecbyMesBodyDataModified.begin() + iPutPos ); - iPutPos += iCurPartSize; - } + iPutPos += iCurPartSize; + } - iRecIDModified = iOriginalID; + iRecIDModified = iOriginalID; qDebug() << "received iNumParts: " << iReceivedNumParts;// << ", data: " << vecbyMesBodyDataModified; - // the complete split message was reconstructed, reset the counter for the next split message - iSplitMessageCnt = 0; - bEvaluateMessage = true; + // the complete split message was reconstructed, reset the counter for the next split message + iSplitMessageCnt = 0; + bEvaluateMessage = true; + } } } } else { - // a non-split message was received, reset split message counter + // a non-split message was received, reset split message counter and directly evaluate message iSplitMessageCnt = 0; bEvaluateMessage = true; } @@ -786,71 +773,71 @@ qDebug() << "iRecIDModified: " << iRecIDModified << ", vecbyMesBodyDataModified. switch ( iRecIDModified ) { case PROTMESSID_JITT_BUF_SIZE: - bRet = EvaluateJitBufMes ( vecbyMesBodyDataModified ); + EvaluateJitBufMes ( vecbyMesBodyDataModified ); break; case PROTMESSID_REQ_JITT_BUF_SIZE: - bRet = EvaluateReqJitBufMes(); + EvaluateReqJitBufMes(); break; case PROTMESSID_CLIENT_ID: - bRet = EvaluateClientIDMes ( vecbyMesBodyDataModified ); + EvaluateClientIDMes ( vecbyMesBodyDataModified ); break; case PROTMESSID_CHANNEL_GAIN: - bRet = EvaluateChanGainMes ( vecbyMesBodyDataModified ); + EvaluateChanGainMes ( vecbyMesBodyDataModified ); break; case PROTMESSID_CHANNEL_PAN: - bRet = EvaluateChanPanMes ( vecbyMesBodyDataModified ); + EvaluateChanPanMes ( vecbyMesBodyDataModified ); break; case PROTMESSID_MUTE_STATE_CHANGED: - bRet = EvaluateMuteStateHasChangedMes ( vecbyMesBodyDataModified ); + EvaluateMuteStateHasChangedMes ( vecbyMesBodyDataModified ); break; case PROTMESSID_CONN_CLIENTS_LIST: - bRet = EvaluateConClientListMes ( vecbyMesBodyDataModified ); + EvaluateConClientListMes ( vecbyMesBodyDataModified ); break; case PROTMESSID_REQ_CONN_CLIENTS_LIST: - bRet = EvaluateReqConnClientsList(); + EvaluateReqConnClientsList(); break; case PROTMESSID_CHANNEL_INFOS: - bRet = EvaluateChanInfoMes ( vecbyMesBodyDataModified ); + EvaluateChanInfoMes ( vecbyMesBodyDataModified ); break; case PROTMESSID_REQ_CHANNEL_INFOS: - bRet = EvaluateReqChanInfoMes(); + EvaluateReqChanInfoMes(); break; case PROTMESSID_CHAT_TEXT: - bRet = EvaluateChatTextMes ( vecbyMesBodyDataModified ); + EvaluateChatTextMes ( vecbyMesBodyDataModified ); break; case PROTMESSID_NETW_TRANSPORT_PROPS: - bRet = EvaluateNetwTranspPropsMes ( vecbyMesBodyDataModified ); + EvaluateNetwTranspPropsMes ( vecbyMesBodyDataModified ); break; case PROTMESSID_REQ_NETW_TRANSPORT_PROPS: - bRet = EvaluateReqNetwTranspPropsMes(); + EvaluateReqNetwTranspPropsMes(); break; case PROTMESSID_LICENCE_REQUIRED: - bRet = EvaluateLicenceRequiredMes ( vecbyMesBodyDataModified ); + EvaluateLicenceRequiredMes ( vecbyMesBodyDataModified ); break; case PROTMESSID_REQ_CHANNEL_LEVEL_LIST: - bRet = EvaluateReqChannelLevelListMes ( vecbyMesBodyDataModified ); + EvaluateReqChannelLevelListMes ( vecbyMesBodyDataModified ); break; case PROTMESSID_VERSION_AND_OS: - bRet = EvaluateVersionAndOSMes ( vecbyMesBodyDataModified ); + EvaluateVersionAndOSMes ( vecbyMesBodyDataModified ); break; case PROTMESSID_RECORDER_STATE: - bRet = EvaluateRecorderStateMes ( vecbyMesBodyDataModified ); + EvaluateRecorderStateMes ( vecbyMesBodyDataModified ); break; } } @@ -864,8 +851,6 @@ qDebug() << "iRecIDModified: " << iRecIDModified << ", vecbyMesBodyDataModified. iOldRecCnt = iRecCounter; } } - - return bRet; } bool CProtocol::ParseConnectionLessMessageBody ( const CVector& vecbyMesBodyData, diff --git a/src/protocol.h b/src/protocol.h index 62378b28f9..347f74d4e8 100755 --- a/src/protocol.h +++ b/src/protocol.h @@ -91,6 +91,10 @@ // time out for message re-send if no acknowledgement was received #define SEND_MESS_TIMEOUT_MS 400 // ms +// message split parameters +#define MESS_SPLIT_PART_SIZE_BYTES 550 +#define MAX_NUM_MESS_SPLIT_PARTS ( MAX_SIZE_BYTES_NETW_BUF / 600 ) + /* Classes ********************************************************************/ class CProtocol : public QObject @@ -157,7 +161,7 @@ class CProtocol : public QObject int& iRecCounter, int& iRecID ); - bool ParseMessageBody ( const CVector& vecbyMesBodyData, + void ParseMessageBody ( const CVector& vecbyMesBodyData, const int iRecCounter, const int iRecID ); @@ -298,9 +302,8 @@ class CProtocol : public QObject QTimer TimerSendMess; QMutex Mutex; - CVector > vecvecbySplitMessageStorage; - int iSplitMessageCnt; - int iPartSize; + CVector vecvecbySplitMessageStorage[MAX_NUM_MESS_SPLIT_PARTS]; + int iSplitMessageCnt; public slots: void OnTimerSendMess() { SendMessage(); } From 15f5920ddf827442462ea72da6fdd3c4a2a08a2b Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 8 Sep 2020 18:20:29 +0200 Subject: [PATCH 551/936] some more code cleanup --- src/protocol.cpp | 116 +++++++++++++++++++++-------------------------- src/protocol.h | 2 +- 2 files changed, 52 insertions(+), 66 deletions(-) diff --git a/src/protocol.cpp b/src/protocol.cpp index 33ffefc6a0..24a12d6d59 100755 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -853,96 +853,82 @@ qDebug() << "iRecIDModified: " << iRecIDModified << ", vecbyMesBodyDataModified. } } -bool CProtocol::ParseConnectionLessMessageBody ( const CVector& vecbyMesBodyData, +void CProtocol::ParseConnectionLessMessageBody ( const CVector& vecbyMesBodyData, const int iRecID, const CHostAddress& InetAddr ) { -/* - return code: false -> ok; true -> error -*/ - bool bRet = false; - /* // TEST channel implementation: randomly delete protocol messages (50 % loss) if ( rand() < ( RAND_MAX / 2 ) ) return false; */ - if ( IsConnectionLessMessageID ( iRecID ) ) + // check which type of message we received and do action + switch ( iRecID ) { - // check which type of message we received and do action - switch ( iRecID ) - { - case PROTMESSID_CLM_PING_MS: - bRet = EvaluateCLPingMes ( InetAddr, vecbyMesBodyData ); - break; + case PROTMESSID_CLM_PING_MS: + EvaluateCLPingMes ( InetAddr, vecbyMesBodyData ); + break; - case PROTMESSID_CLM_PING_MS_WITHNUMCLIENTS: - bRet = EvaluateCLPingWithNumClientsMes ( InetAddr, vecbyMesBodyData ); - break; + case PROTMESSID_CLM_PING_MS_WITHNUMCLIENTS: + EvaluateCLPingWithNumClientsMes ( InetAddr, vecbyMesBodyData ); + break; - case PROTMESSID_CLM_SERVER_FULL: - bRet = EvaluateCLServerFullMes(); - break; + case PROTMESSID_CLM_SERVER_FULL: + EvaluateCLServerFullMes(); + break; - case PROTMESSID_CLM_SERVER_LIST: - bRet = EvaluateCLServerListMes ( InetAddr, vecbyMesBodyData ); - break; + case PROTMESSID_CLM_SERVER_LIST: + EvaluateCLServerListMes ( InetAddr, vecbyMesBodyData ); + break; - case PROTMESSID_CLM_REQ_SERVER_LIST: - bRet = EvaluateCLReqServerListMes ( InetAddr ); - break; + case PROTMESSID_CLM_REQ_SERVER_LIST: + EvaluateCLReqServerListMes ( InetAddr ); + break; - case PROTMESSID_CLM_SEND_EMPTY_MESSAGE: - bRet = EvaluateCLSendEmptyMesMes ( vecbyMesBodyData ); - break; + case PROTMESSID_CLM_SEND_EMPTY_MESSAGE: + EvaluateCLSendEmptyMesMes ( vecbyMesBodyData ); + break; - case PROTMESSID_CLM_REGISTER_SERVER: - bRet = EvaluateCLRegisterServerMes ( InetAddr, vecbyMesBodyData ); - break; + case PROTMESSID_CLM_REGISTER_SERVER: + EvaluateCLRegisterServerMes ( InetAddr, vecbyMesBodyData ); + break; - case PROTMESSID_CLM_REGISTER_SERVER_EX: - bRet = EvaluateCLRegisterServerExMes ( InetAddr, vecbyMesBodyData ); - break; + case PROTMESSID_CLM_REGISTER_SERVER_EX: + EvaluateCLRegisterServerExMes ( InetAddr, vecbyMesBodyData ); + break; - case PROTMESSID_CLM_UNREGISTER_SERVER: - bRet = EvaluateCLUnregisterServerMes ( InetAddr ); - break; + case PROTMESSID_CLM_UNREGISTER_SERVER: + EvaluateCLUnregisterServerMes ( InetAddr ); + break; - case PROTMESSID_CLM_DISCONNECTION: - bRet = EvaluateCLDisconnectionMes ( InetAddr ); - break; + case PROTMESSID_CLM_DISCONNECTION: + EvaluateCLDisconnectionMes ( InetAddr ); + break; - case PROTMESSID_CLM_VERSION_AND_OS: - bRet = EvaluateCLVersionAndOSMes ( InetAddr, vecbyMesBodyData ); - break; + case PROTMESSID_CLM_VERSION_AND_OS: + EvaluateCLVersionAndOSMes ( InetAddr, vecbyMesBodyData ); + break; - case PROTMESSID_CLM_REQ_VERSION_AND_OS: - bRet = EvaluateCLReqVersionAndOSMes ( InetAddr ); - break; + case PROTMESSID_CLM_REQ_VERSION_AND_OS: + EvaluateCLReqVersionAndOSMes ( InetAddr ); + break; - case PROTMESSID_CLM_CONN_CLIENTS_LIST: - bRet = EvaluateCLConnClientsListMes ( InetAddr, vecbyMesBodyData ); - break; + case PROTMESSID_CLM_CONN_CLIENTS_LIST: + EvaluateCLConnClientsListMes ( InetAddr, vecbyMesBodyData ); + break; - case PROTMESSID_CLM_REQ_CONN_CLIENTS_LIST: - bRet = EvaluateCLReqConnClientsListMes ( InetAddr ); - break; + case PROTMESSID_CLM_REQ_CONN_CLIENTS_LIST: + EvaluateCLReqConnClientsListMes ( InetAddr ); + break; - case PROTMESSID_CLM_CHANNEL_LEVEL_LIST: - bRet = EvaluateCLChannelLevelListMes ( InetAddr, vecbyMesBodyData ); - break; + case PROTMESSID_CLM_CHANNEL_LEVEL_LIST: + EvaluateCLChannelLevelListMes ( InetAddr, vecbyMesBodyData ); + break; - case PROTMESSID_CLM_REGISTER_SERVER_RESP: - bRet = EvaluateCLRegisterServerResp ( InetAddr, vecbyMesBodyData ); - break; - } - } - else - { - bRet = true; // return error code + case PROTMESSID_CLM_REGISTER_SERVER_RESP: + EvaluateCLRegisterServerResp ( InetAddr, vecbyMesBodyData ); + break; } - - return bRet; } diff --git a/src/protocol.h b/src/protocol.h index 347f74d4e8..a67d1e6ee5 100755 --- a/src/protocol.h +++ b/src/protocol.h @@ -165,7 +165,7 @@ class CProtocol : public QObject const int iRecCounter, const int iRecID ); - bool ParseConnectionLessMessageBody ( const CVector& vecbyMesBodyData, + void ParseConnectionLessMessageBody ( const CVector& vecbyMesBodyData, const int iRecID, const CHostAddress& InetAddr ); From a17427dc2275d757ffec245abcdc39fcd129daf7 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 8 Sep 2020 19:47:32 +0200 Subject: [PATCH 552/936] add compatibility support for old Jamulus version regarding the new split messageses --- src/channel.cpp | 16 ++++++ src/channel.h | 3 ++ src/protocol.cpp | 127 ++++++++++++++++++++++++++++++++--------------- src/protocol.h | 10 ++++ src/server.cpp | 3 ++ 5 files changed, 119 insertions(+), 40 deletions(-) diff --git a/src/channel.cpp b/src/channel.cpp index e22f5f1ac0..8e74f3f5e8 100755 --- a/src/channel.cpp +++ b/src/channel.cpp @@ -104,6 +104,12 @@ qRegisterMetaType ( "CHostAddress" ); QObject::connect ( &Protocol, &CProtocol::ReqNetTranspProps, this, &CChannel::OnReqNetTranspProps ); + QObject::connect ( &Protocol, &CProtocol::ReqSplitMessSupport, + this, &CChannel::OnReqSplitMessSupport ); + + QObject::connect ( &Protocol, &CProtocol::SplitMessSupported, + this, &CChannel::OnSplitMessSupported ); + QObject::connect ( &Protocol, &CProtocol::LicenceRequired, this, &CChannel::LicenceRequired ); @@ -470,6 +476,13 @@ void CChannel::OnReqNetTranspProps() Protocol.CreateNetwTranspPropsMes ( GetNetworkTransportPropsFromCurrentSettings() ); } +void CChannel::OnReqSplitMessSupport() +{ + // activate split messages in our protocol (client) and return answer message to the server + Protocol.SetSplitMessageSupported ( true ); + Protocol.CreateSplitMessSupportedMes(); +} + CNetworkTransportProps CChannel::GetNetworkTransportPropsFromCurrentSettings() { // use current stored settings of the channel to fill the network transport @@ -641,6 +654,9 @@ EGetDataStat CChannel::GetData ( CVector& vecbyData, // in case we are just disconnected, we have to fire a message if ( eGetStatus == GS_CHAN_NOW_DISCONNECTED ) { + // reset the protocol + Protocol.Reset(); + // emit message emit Disconnected(); } diff --git a/src/channel.h b/src/channel.h index cb81fc5155..fca896b9f2 100755 --- a/src/channel.h +++ b/src/channel.h @@ -159,6 +159,7 @@ class CChannel : public QObject } void CreateClientIDMes ( const int iChanID ) { Protocol.CreateClientIDMes ( iChanID ); } void CreateReqNetwTranspPropsMes() { Protocol.CreateReqNetwTranspPropsMes(); } + void CreateReqSplitMessSupportMes() { Protocol.CreateReqSplitMessSupportMes(); } void CreateReqJitBufMes() { Protocol.CreateReqJitBufMes(); } void CreateReqConnClientsList() { Protocol.CreateReqConnClientsList(); } void CreateChatTextMes ( const QString& strChatText ) { Protocol.CreateChatTextMes ( strChatText ); } @@ -245,6 +246,8 @@ public slots: void OnChangeChanInfo ( CChannelCoreInfo ChanInfo ); void OnNetTranspPropsReceived ( CNetworkTransportProps NetworkTransportProps ); void OnReqNetTranspProps(); + void OnReqSplitMessSupport(); + void OnSplitMessSupported() { Protocol.SetSplitMessageSupported ( true ); } void OnParseMessageBody ( CVector vecbyMesBodyData, int iRecCounter, diff --git a/src/protocol.cpp b/src/protocol.cpp index 24a12d6d59..2bc4440959 100755 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -200,6 +200,16 @@ MESSAGES (with connection) note: does not have any data -> n = 0 +- PROTMESSID_REQ_SPLIT_MESS_SUPPORT: Request split message support + + note: does not have any data -> n = 0 + + +- PROTMESSID_SPLIT_MESS_SUPPORTED: Split messages are supported + + note: does not have any data -> n = 0 + + - PROTMESSID_LICENCE_REQUIRED: Licence required to connect to the server +---------------------+ @@ -432,10 +442,11 @@ void CProtocol::Reset() QMutexLocker locker ( &Mutex ); // prepare internal variables for initial protocol transfer - iCounter = 0; - iOldRecID = PROTMESSID_ILLEGAL; - iOldRecCnt = 0; - iSplitMessageCnt = 0; + iCounter = 0; + iOldRecID = PROTMESSID_ILLEGAL; + iOldRecCnt = 0; + iSplitMessageCnt = 0; + bSplitMessageSupported = false; // compatilibity to old versions // delete complete "send message queue" SendMessQueue.clear(); @@ -519,20 +530,20 @@ int iPointer = 0; qDebug() << "CreateAndSendMessage vecData.Size(): " << vecData.Size(); // TEST split all messages by half for testing -if ( vecData.Size() > MESS_SPLIT_PART_SIZE_BYTES ) -{ - const int iNumParts = static_cast ( ceil ( static_cast ( vecData.Size() ) / MESS_SPLIT_PART_SIZE_BYTES ) ); + if ( ( vecData.Size() > MESS_SPLIT_PART_SIZE_BYTES ) && bSplitMessageSupported ) + { + const int iNumParts = static_cast ( ceil ( static_cast ( vecData.Size() ) / MESS_SPLIT_PART_SIZE_BYTES ) ); qDebug() << "CreateAndSendMessage message spilt in " << iNumParts << " parts"; - for ( int iSplitCnt = 0; iSplitCnt < iNumParts; iSplitCnt++ ) - { - int iCurPartSize = MESS_SPLIT_PART_SIZE_BYTES; - - if ( vecData.Size() - iPointer < MESS_SPLIT_PART_SIZE_BYTES ) + for ( int iSplitCnt = 0; iSplitCnt < iNumParts; iSplitCnt++ ) { - iCurPartSize = vecData.Size() - iPointer; - } + int iCurPartSize = MESS_SPLIT_PART_SIZE_BYTES; + + if ( vecData.Size() - iPointer < MESS_SPLIT_PART_SIZE_BYTES ) + { + iCurPartSize = vecData.Size() - iPointer; + } vecDataTmp.Init ( iCurPartSize ); @@ -545,12 +556,31 @@ iPointer += iCurPartSize; // TODO better solution CVector vecNewSplitMessage; - GenSplitMessageContainer ( vecNewSplitMessage, - iID, - iNumParts, - iSplitCnt, - vecDataTmp ); + GenSplitMessageContainer ( vecNewSplitMessage, + iID, + iNumParts, + iSplitCnt, + vecDataTmp ); + Mutex.lock(); + { + // store current counter value + iCurCounter = iCounter; + + // increase counter (wraps around automatically) + iCounter++; + } + Mutex.unlock(); + + // build complete message + GenMessageFrame ( vecNewMessage, iCurCounter, PROTMESSID_SPECIAL_SPLIT_MESSAGE, vecNewSplitMessage ); + + // enqueue message + EnqueueMessage ( vecNewMessage, iCurCounter, PROTMESSID_SPECIAL_SPLIT_MESSAGE ); + } + } + else + { Mutex.lock(); { // store current counter value @@ -562,30 +592,11 @@ CVector vecNewSplitMessage; Mutex.unlock(); // build complete message - GenMessageFrame ( vecNewMessage, iCurCounter, PROTMESSID_SPECIAL_SPLIT_MESSAGE, vecNewSplitMessage ); + GenMessageFrame ( vecNewMessage, iCurCounter, iID, vecData ); // enqueue message - EnqueueMessage ( vecNewMessage, iCurCounter, PROTMESSID_SPECIAL_SPLIT_MESSAGE ); - } -} -else -{ - Mutex.lock(); - { - // store current counter value - iCurCounter = iCounter; - - // increase counter (wraps around automatically) - iCounter++; + EnqueueMessage ( vecNewMessage, iCurCounter, iID ); } - Mutex.unlock(); - - // build complete message - GenMessageFrame ( vecNewMessage, iCurCounter, iID, vecData ); - - // enqueue message - EnqueueMessage ( vecNewMessage, iCurCounter, iID ); -} } void CProtocol::CreateAndImmSendAcknMess ( const int& iID, @@ -824,6 +835,14 @@ qDebug() << "iRecIDModified: " << iRecIDModified << ", vecbyMesBodyDataModified. EvaluateReqNetwTranspPropsMes(); break; + case PROTMESSID_REQ_SPLIT_MESS_SUPPORT: + EvaluateReqSplitMessSupportMes(); + break; + + case PROTMESSID_SPLIT_MESS_SUPPORTED: + EvaluateSplitMessSupportedMes(); + break; + case PROTMESSID_LICENCE_REQUIRED: EvaluateLicenceRequiredMes ( vecbyMesBodyDataModified ); break; @@ -1572,6 +1591,34 @@ bool CProtocol::EvaluateReqNetwTranspPropsMes() return false; // no error } +void CProtocol::CreateReqSplitMessSupportMes() +{ + CreateAndSendMessage ( PROTMESSID_REQ_SPLIT_MESS_SUPPORT, + CVector ( 0 ) ); +} + +bool CProtocol::EvaluateReqSplitMessSupportMes() +{ + // invoke message action + emit ReqSplitMessSupport(); + + return false; // no error +} + +void CProtocol::CreateSplitMessSupportedMes() +{ + CreateAndSendMessage ( PROTMESSID_SPLIT_MESS_SUPPORTED, + CVector ( 0 ) ); +} + +bool CProtocol::EvaluateSplitMessSupportedMes() +{ + // invoke message action + emit SplitMessSupported(); + + return false; // no error +} + void CProtocol::CreateLicenceRequiredMes ( const ELicenceType eLicenceType ) { CVector vecData ( 1 ); // 1 bytes of data diff --git a/src/protocol.h b/src/protocol.h index a67d1e6ee5..8ad791e72c 100755 --- a/src/protocol.h +++ b/src/protocol.h @@ -60,6 +60,8 @@ #define PROTMESSID_MUTE_STATE_CHANGED 31 // mute state of your signal at another client has changed #define PROTMESSID_CLIENT_ID 32 // current user ID and server status #define PROTMESSID_RECORDER_STATE 33 // contains the state of the jam recorder (ERecorderState) +#define PROTMESSID_REQ_SPLIT_MESS_SUPPORT 34 // request support for split messages +#define PROTMESSID_SPLIT_MESS_SUPPORTED 35 // split messages are supported // message IDs of connection less messages (CLM) // DEFINITION -> start at 1000, end at 1999, see IsConnectionLessMessageID @@ -105,6 +107,7 @@ class CProtocol : public QObject CProtocol(); void Reset(); + void SetSplitMessageSupported ( const bool bIn ) { bSplitMessageSupported = bIn; } void CreateJitBufMes ( const int iJitBufSize ); void CreateReqJitBufMes(); @@ -119,6 +122,8 @@ class CProtocol : public QObject void CreateChatTextMes ( const QString strChatText ); void CreateNetwTranspPropsMes ( const CNetworkTransportProps& NetTrProps ); void CreateReqNetwTranspPropsMes(); + void CreateReqSplitMessSupportMes(); + void CreateSplitMessSupportedMes(); void CreateLicenceRequiredMes ( const ELicenceType eLicenceType ); void CreateOpusSupportedMes(); void CreateReqChannelLevelListMes ( const bool bRCL ); @@ -261,6 +266,8 @@ class CProtocol : public QObject bool EvaluateChatTextMes ( const CVector& vecData ); bool EvaluateNetwTranspPropsMes ( const CVector& vecData ); bool EvaluateReqNetwTranspPropsMes(); + bool EvaluateReqSplitMessSupportMes(); + bool EvaluateSplitMessSupportedMes(); bool EvaluateLicenceRequiredMes ( const CVector& vecData ); bool EvaluateReqChannelLevelListMes ( const CVector& vecData ); bool EvaluateVersionAndOSMes ( const CVector& vecData ); @@ -304,6 +311,7 @@ class CProtocol : public QObject CVector vecvecbySplitMessageStorage[MAX_NUM_MESS_SPLIT_PARTS]; int iSplitMessageCnt; + bool bSplitMessageSupported; public slots: void OnTimerSendMess() { SendMessage(); } @@ -330,6 +338,8 @@ public slots: void ChatTextReceived ( QString strChatText ); void NetTranspPropsReceived ( CNetworkTransportProps NetworkTransportProps ); void ReqNetTranspProps(); + void ReqSplitMessSupport(); + void SplitMessSupported(); void LicenceRequired ( ELicenceType eLicenceType ); void ReqChannelLevelList ( bool bOptIn ); void VersionAndOSReceived ( COSUtil::EOpSystemType eOSType, QString strVersion ); diff --git a/src/server.cpp b/src/server.cpp index 4995b17d22..852969e628 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -596,6 +596,9 @@ void CServer::OnNewConnection ( int iChID, // must be the first message to be sent for a new connection) vecChannels[iChID].CreateClientIDMes ( iChID ); + // query support for split messages in the client + vecChannels[iChID].CreateReqSplitMessSupportMes(); + // on a new connection we query the network transport properties for the // audio packets (to use the correct network block size and audio // compression properties, etc.) From 44a79ff882560a4c54f5fd515303ebec19e549c8 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Wed, 9 Sep 2020 18:25:04 +0200 Subject: [PATCH 553/936] cleanup the CreateAndSendMessage function --- src/protocol.cpp | 58 +++++++++++++++++++----------------------------- src/protocol.h | 4 +++- src/server.cpp | 2 +- 3 files changed, 27 insertions(+), 37 deletions(-) diff --git a/src/protocol.cpp b/src/protocol.cpp index 2bc4440959..a9979fa9e3 100755 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -520,47 +520,38 @@ void CProtocol::CreateAndSendMessage ( const int iID, { CVector vecNewMessage; int iCurCounter; + const int iDataLen = vecData.Size(); -// TODO insert split mechanism here -// TODO make use of MAX_SIZE_BYTES_NETW_BUF - -CVector vecDataTmp; -int iPointer = 0; - -qDebug() << "CreateAndSendMessage vecData.Size(): " << vecData.Size(); - -// TEST split all messages by half for testing - if ( ( vecData.Size() > MESS_SPLIT_PART_SIZE_BYTES ) && bSplitMessageSupported ) + // check if message has to be split because it is too large + if ( ( iDataLen > MESS_SPLIT_PART_SIZE_BYTES ) && bSplitMessageSupported ) { - const int iNumParts = static_cast ( ceil ( static_cast ( vecData.Size() ) / MESS_SPLIT_PART_SIZE_BYTES ) ); + CVector vecNewSplitMessage; + int iStartIndexInData = 0; // init index -qDebug() << "CreateAndSendMessage message spilt in " << iNumParts << " parts"; + // calculate the number of split parts + const int iNumParts = static_cast ( + std::ceil ( static_cast ( iDataLen ) / MESS_SPLIT_PART_SIZE_BYTES ) ); for ( int iSplitCnt = 0; iSplitCnt < iNumParts; iSplitCnt++ ) { + // the split part size may be smaller for the last part int iCurPartSize = MESS_SPLIT_PART_SIZE_BYTES; - if ( vecData.Size() - iPointer < MESS_SPLIT_PART_SIZE_BYTES ) + if ( iDataLen - iStartIndexInData < MESS_SPLIT_PART_SIZE_BYTES ) { - iCurPartSize = vecData.Size() - iPointer; + iCurPartSize = iDataLen - iStartIndexInData; } -vecDataTmp.Init ( iCurPartSize ); - -for ( int i = 0; i < iCurPartSize; i++ ) -{ - vecDataTmp[i] = vecData[iPointer + i]; -} -iPointer += iCurPartSize; - -// TODO better solution -CVector vecNewSplitMessage; - GenSplitMessageContainer ( vecNewSplitMessage, iID, iNumParts, iSplitCnt, - vecDataTmp ); + vecData, + iStartIndexInData, + iCurPartSize ); + + // increment the start index of the source data by the last part size + iStartIndexInData += iCurPartSize; Mutex.lock(); { @@ -704,8 +695,6 @@ int iRecIDModified = iRecID; // check for special ID first if ( iRecID == PROTMESSID_SPECIAL_SPLIT_MESSAGE ) { -qDebug() << "PROTMESSID_SPECIAL_SPLIT_MESSAGE"; - int iOriginalID; int iReceivedNumParts; int iReceivedSplitCnt; @@ -3000,15 +2989,14 @@ void CProtocol::GenSplitMessageContainer ( CVector& vecOut, const int iID, const int iNumParts, const int iSplitCnt, - const CVector& vecData ) + const CVector& vecData, + const int iStartIndexInData, + const int iLengthOfDataPart ) { int iPos = 0; // init position pointer - // query length of data vector - const int iDataLenByte = vecData.Size(); - // total length of message - const int iTotLenByte = 4 + iDataLenByte; + const int iTotLenByte = 4 + iLengthOfDataPart; // init message vector vecOut.Init ( iTotLenByte ); @@ -3023,9 +3011,9 @@ void CProtocol::GenSplitMessageContainer ( CVector& vecOut, PutValOnStream ( vecOut, iPos, static_cast ( iSplitCnt ), 1 ); // data - for ( int i = 0; i < iDataLenByte; i++ ) + for ( int i = 0; i < iLengthOfDataPart; i++ ) { - PutValOnStream ( vecOut, iPos, static_cast ( vecData[i] ), 1 ); + PutValOnStream ( vecOut, iPos, static_cast ( vecData[iStartIndexInData + i] ), 1 ); } } diff --git a/src/protocol.h b/src/protocol.h index 8ad791e72c..d8614e0135 100755 --- a/src/protocol.h +++ b/src/protocol.h @@ -218,7 +218,9 @@ class CProtocol : public QObject const int iID, const int iNumParts, const int iSplitCnt, - const CVector& vecData ); + const CVector& vecData, + const int iStartIndexInData, + const int iLengthOfDataPart ); bool ParseSplitMessageContainer ( const CVector& vecbyData, CVector& vecbyMesBodyData, diff --git a/src/server.cpp b/src/server.cpp index 852969e628..2deb9177f2 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -1680,7 +1680,7 @@ bool CServer::CreateLevelsForAllConChannels ( const int i vecNumAudioChannels[j] > 1 ); // map value to integer for transmission via the protocol (4 bit available) - vecLevelsOut[j] = static_cast ( ceil ( dCurSigLevelForMeterdB ) ); + vecLevelsOut[j] = static_cast ( std::ceil ( dCurSigLevelForMeterdB ) ); } } From 6f9dd5413547a112d1ed7bbb9bb6a7ad106eb858 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Wed, 9 Sep 2020 18:41:46 +0200 Subject: [PATCH 554/936] small fix --- src/protocol.cpp | 3 +++ src/protocol.h | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/protocol.cpp b/src/protocol.cpp index a9979fa9e3..7ad2130cba 100755 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -705,6 +705,9 @@ int iRecIDModified = iRecID; iReceivedNumParts, iReceivedSplitCnt ) ) { + +// TODO put check ( iSplitMessageCnt >= MAX_NUM_MESS_SPLIT_PARTS - 1 ) in front of the ParseSplitMessageContainer call + // consistency checks if ( ( iSplitMessageCnt != iReceivedSplitCnt ) || ( iSplitMessageCnt >= iReceivedNumParts ) || diff --git a/src/protocol.h b/src/protocol.h index d8614e0135..eaece11453 100755 --- a/src/protocol.h +++ b/src/protocol.h @@ -95,7 +95,7 @@ // message split parameters #define MESS_SPLIT_PART_SIZE_BYTES 550 -#define MAX_NUM_MESS_SPLIT_PARTS ( MAX_SIZE_BYTES_NETW_BUF / 600 ) +#define MAX_NUM_MESS_SPLIT_PARTS ( MAX_SIZE_BYTES_NETW_BUF / MESS_SPLIT_PART_SIZE_BYTES ) /* Classes ********************************************************************/ From 234c8ddd6d2e6636532878232b9fc5eeaff3e936 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Wed, 9 Sep 2020 20:55:12 +0200 Subject: [PATCH 555/936] some more cleanup and code improvement --- ChangeLog | 3 ++ src/protocol.cpp | 134 ++++++++++++++++++++++------------------------- src/protocol.h | 7 ++- 3 files changed, 71 insertions(+), 73 deletions(-) diff --git a/ChangeLog b/ChangeLog index 66706fcbea..e4904531cd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -10,6 +10,9 @@ - added a command line argument to enable multithreading in the server (#339) +- added support for split protocol messages (fixes bug with large number of clients + connected to a server, #547) + - store recorder settings, coded by pljones (#313) - accessibility improvements, coded by chigkim (#498, #512) diff --git a/src/protocol.cpp b/src/protocol.cpp index 7ad2130cba..4c182b84ec 100755 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -429,6 +429,9 @@ CONNECTION LESS MESSAGES /* Implementation *************************************************************/ CProtocol::CProtocol() { + // allocate worst case memory for split part messages + vecbySplitMessageStorage.Init ( MAX_SIZE_BYTES_NETW_BUF ); + Reset(); @@ -446,6 +449,7 @@ void CProtocol::Reset() iOldRecID = PROTMESSID_ILLEGAL; iOldRecCnt = 0; iSplitMessageCnt = 0; + iSplitMessageDataIndex = 0; bSplitMessageSupported = false; // compatilibity to old versions // delete complete "send message queue" @@ -684,78 +688,61 @@ if ( rand() < ( RAND_MAX / 2 ) ) return false; } else { - -// TODO better solution: do not copy message -CVector vecbyMesBodyDataModified = vecbyMesBodyData; -int iRecIDModified = iRecID; - - - bool bEvaluateMessage = false; + CVector vecbyMesBodyDataSplitMess; + int iRecIDModified = iRecID; + bool bEvaluateMessage = false; // check for special ID first if ( iRecID == PROTMESSID_SPECIAL_SPLIT_MESSAGE ) { + // Split message management ------------------------------------ int iOriginalID; int iReceivedNumParts; int iReceivedSplitCnt; + int iCurPartSize; if ( !ParseSplitMessageContainer ( vecbyMesBodyData, - vecvecbySplitMessageStorage[iSplitMessageCnt], + vecbySplitMessageStorage, + iSplitMessageDataIndex, iOriginalID, iReceivedNumParts, - iReceivedSplitCnt ) ) + iReceivedSplitCnt, + iCurPartSize ) ) { - -// TODO put check ( iSplitMessageCnt >= MAX_NUM_MESS_SPLIT_PARTS - 1 ) in front of the ParseSplitMessageContainer call - // consistency checks if ( ( iSplitMessageCnt != iReceivedSplitCnt ) || ( iSplitMessageCnt >= iReceivedNumParts ) || - ( iSplitMessageCnt >= MAX_NUM_MESS_SPLIT_PARTS - 1 ) ) + ( iSplitMessageCnt >= MAX_NUM_MESS_SPLIT_PARTS ) ) { - // in case of an error we result the split message counter - iSplitMessageCnt = 0; + // in case of an error we reset the split message counter + iSplitMessageCnt = 0; + iSplitMessageDataIndex = 0; } else { + // update counter and message data index since we have received a valid new part iSplitMessageCnt++; + iSplitMessageDataIndex += iCurPartSize; -qDebug() << "iSplitMessageCnt: " << iSplitMessageCnt << ", iReceivedSplitCnt: " << iReceivedSplitCnt << ", iReceivedNumParts: " << iReceivedNumParts; - + // check if the split part messages was completely received if ( iSplitMessageCnt == iReceivedNumParts ) { + // the split message is completely received, copy data for parsing + vecbyMesBodyDataSplitMess.Init ( iSplitMessageDataIndex ); -// TODO is there a cleaner way of reconstructing the complete message? - - int iMessageSize = 0; - - for ( int iSplitCnt = 0; iSplitCnt < iReceivedNumParts; iSplitCnt++ ) - { - iMessageSize += vecvecbySplitMessageStorage[iSplitCnt].Size(); - } - - vecbyMesBodyDataModified.Init ( iMessageSize ); - - int iPutPos = 0; - - for ( int iSplitCnt = 0; iSplitCnt < iReceivedNumParts; iSplitCnt++ ) - { - const int iCurPartSize = vecvecbySplitMessageStorage[iSplitCnt].Size(); - - std::copy ( vecvecbySplitMessageStorage[iSplitCnt].begin(), - vecvecbySplitMessageStorage[iSplitCnt].begin() + iCurPartSize, - vecbyMesBodyDataModified.begin() + iPutPos ); - - iPutPos += iCurPartSize; - } + std::copy ( vecbySplitMessageStorage.begin(), + vecbySplitMessageStorage.begin() + iSplitMessageDataIndex, + vecbyMesBodyDataSplitMess.begin() ); + // the received ID is still PROTMESSID_SPECIAL_SPLIT_MESSAGE, set it to + // the ID of the original reconstructed split message now iRecIDModified = iOriginalID; -qDebug() << "received iNumParts: " << iReceivedNumParts;// << ", data: " << vecbyMesBodyDataModified; - - // the complete split message was reconstructed, reset the counter for the next split message - iSplitMessageCnt = 0; - bEvaluateMessage = true; + // the complete split message was reconstructed, reset the counter for + // the next split message + iSplitMessageCnt = 0; + iSplitMessageDataIndex = 0; + bEvaluateMessage = true; } } } @@ -763,20 +750,23 @@ qDebug() << "received iNumParts: " << iReceivedNumParts;// << ", data: " << vecb else { // a non-split message was received, reset split message counter and directly evaluate message - iSplitMessageCnt = 0; - bEvaluateMessage = true; + iSplitMessageCnt = 0; + iSplitMessageDataIndex = 0; + bEvaluateMessage = true; } if ( bEvaluateMessage ) { - -qDebug() << "iRecIDModified: " << iRecIDModified << ", vecbyMesBodyDataModified.Size(): " << vecbyMesBodyDataModified.Size(); + // use a reference to either the original data vector or the reconstructed + // split message to avoid unnecessary copying + const CVector& vecbyMesBodyDataRef = + ( iRecID == PROTMESSID_SPECIAL_SPLIT_MESSAGE ) ? vecbyMesBodyDataSplitMess : vecbyMesBodyData; // check which type of message we received and do action switch ( iRecIDModified ) { case PROTMESSID_JITT_BUF_SIZE: - EvaluateJitBufMes ( vecbyMesBodyDataModified ); + EvaluateJitBufMes ( vecbyMesBodyDataRef ); break; case PROTMESSID_REQ_JITT_BUF_SIZE: @@ -784,23 +774,23 @@ qDebug() << "iRecIDModified: " << iRecIDModified << ", vecbyMesBodyDataModified. break; case PROTMESSID_CLIENT_ID: - EvaluateClientIDMes ( vecbyMesBodyDataModified ); + EvaluateClientIDMes ( vecbyMesBodyDataRef ); break; case PROTMESSID_CHANNEL_GAIN: - EvaluateChanGainMes ( vecbyMesBodyDataModified ); + EvaluateChanGainMes ( vecbyMesBodyDataRef ); break; case PROTMESSID_CHANNEL_PAN: - EvaluateChanPanMes ( vecbyMesBodyDataModified ); + EvaluateChanPanMes ( vecbyMesBodyDataRef ); break; case PROTMESSID_MUTE_STATE_CHANGED: - EvaluateMuteStateHasChangedMes ( vecbyMesBodyDataModified ); + EvaluateMuteStateHasChangedMes ( vecbyMesBodyDataRef ); break; case PROTMESSID_CONN_CLIENTS_LIST: - EvaluateConClientListMes ( vecbyMesBodyDataModified ); + EvaluateConClientListMes ( vecbyMesBodyDataRef ); break; case PROTMESSID_REQ_CONN_CLIENTS_LIST: @@ -808,7 +798,7 @@ qDebug() << "iRecIDModified: " << iRecIDModified << ", vecbyMesBodyDataModified. break; case PROTMESSID_CHANNEL_INFOS: - EvaluateChanInfoMes ( vecbyMesBodyDataModified ); + EvaluateChanInfoMes ( vecbyMesBodyDataRef ); break; case PROTMESSID_REQ_CHANNEL_INFOS: @@ -816,11 +806,11 @@ qDebug() << "iRecIDModified: " << iRecIDModified << ", vecbyMesBodyDataModified. break; case PROTMESSID_CHAT_TEXT: - EvaluateChatTextMes ( vecbyMesBodyDataModified ); + EvaluateChatTextMes ( vecbyMesBodyDataRef ); break; case PROTMESSID_NETW_TRANSPORT_PROPS: - EvaluateNetwTranspPropsMes ( vecbyMesBodyDataModified ); + EvaluateNetwTranspPropsMes ( vecbyMesBodyDataRef ); break; case PROTMESSID_REQ_NETW_TRANSPORT_PROPS: @@ -836,19 +826,19 @@ qDebug() << "iRecIDModified: " << iRecIDModified << ", vecbyMesBodyDataModified. break; case PROTMESSID_LICENCE_REQUIRED: - EvaluateLicenceRequiredMes ( vecbyMesBodyDataModified ); + EvaluateLicenceRequiredMes ( vecbyMesBodyDataRef ); break; case PROTMESSID_REQ_CHANNEL_LEVEL_LIST: - EvaluateReqChannelLevelListMes ( vecbyMesBodyDataModified ); + EvaluateReqChannelLevelListMes ( vecbyMesBodyDataRef ); break; case PROTMESSID_VERSION_AND_OS: - EvaluateVersionAndOSMes ( vecbyMesBodyDataModified ); + EvaluateVersionAndOSMes ( vecbyMesBodyDataRef ); break; case PROTMESSID_RECORDER_STATE: - EvaluateRecorderStateMes ( vecbyMesBodyDataModified ); + EvaluateRecorderStateMes ( vecbyMesBodyDataRef ); break; } } @@ -2825,9 +2815,11 @@ bool CProtocol::ParseMessageFrame ( const CVector& vecbyData, bool CProtocol::ParseSplitMessageContainer ( const CVector& vecbyData, CVector& vecbyMesBodyData, + const int iSplitMessageDataIndex, int& iID, int& iNumParts, - int& iSplitCnt ) + int& iSplitCnt, + int& iCurPartSize ) { int iPos = 0; // init position pointer const int iDataLen = vecbyData.Size(); @@ -2849,17 +2841,17 @@ bool CProtocol::ParseSplitMessageContainer ( const CVector& vecbyData, // Extract actual data ----------------------------------------------------- + iCurPartSize = iDataLen - 4; - const int iLenBy = iDataLen - 4; - -// TODO this memory allocation is done in the real time thread but should be -// done in the low priority protocol management thread - - vecbyMesBodyData.Init ( iLenBy ); + // the memory must be allocated outside this function -> check the size + if ( vecbyMesBodyData.Size() < iSplitMessageDataIndex + iCurPartSize ) + { + return true; // return error code + } - for ( int i = 0; i < iLenBy; i++ ) + for ( int i = 0; i < iCurPartSize; i++ ) { - vecbyMesBodyData[i] = static_cast ( GetValFromStream ( vecbyData, iPos, 1 ) ); + vecbyMesBodyData[iSplitMessageDataIndex + i] = static_cast ( GetValFromStream ( vecbyData, iPos, 1 ) ); } return false; // no error diff --git a/src/protocol.h b/src/protocol.h index eaece11453..8ce1116b99 100755 --- a/src/protocol.h +++ b/src/protocol.h @@ -224,9 +224,11 @@ class CProtocol : public QObject bool ParseSplitMessageContainer ( const CVector& vecbyData, CVector& vecbyMesBodyData, + const int iSplitMessageDataIndex, int& iID, int& iNumParts, - int& iSplitCnt ); + int& iSplitCnt, + int& iCurPartSize ); void PutValOnStream ( CVector& vecIn, int& iPos, @@ -311,8 +313,9 @@ class CProtocol : public QObject QTimer TimerSendMess; QMutex Mutex; - CVector vecvecbySplitMessageStorage[MAX_NUM_MESS_SPLIT_PARTS]; + CVector vecbySplitMessageStorage; int iSplitMessageCnt; + int iSplitMessageDataIndex; bool bSplitMessageSupported; public slots: From 5cfc139c37256f5ba12db4886b28f64a1766bfd4 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Thu, 10 Sep 2020 20:59:26 +0200 Subject: [PATCH 556/936] fixes proposed by pljones (thanks) --- src/protocol.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/protocol.cpp b/src/protocol.cpp index 4c182b84ec..2cffe5309b 100755 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -59,8 +59,9 @@ SPLIT MESSAGE CONTAINER +------------+------------------------+------------------+--------------+ - ID is the message ID of the message being split -- split cnt is the counter which is incremented for each part of the message -- data is the data part of the original message which were split +- number of parts - total number of parts comprising the whole message +- split cnt - number within number total for this part of the message +- data - subset of the data part of the original message being split @@ -527,7 +528,7 @@ void CProtocol::CreateAndSendMessage ( const int iID, const int iDataLen = vecData.Size(); // check if message has to be split because it is too large - if ( ( iDataLen > MESS_SPLIT_PART_SIZE_BYTES ) && bSplitMessageSupported ) + if ( bSplitMessageSupported && ( iDataLen > MESS_SPLIT_PART_SIZE_BYTES ) ) { CVector vecNewSplitMessage; int iStartIndexInData = 0; // init index From 6292211d0186599f66cb89c3b7c784bb6d9a8ccf Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Fri, 11 Sep 2020 20:07:07 +0200 Subject: [PATCH 557/936] fixed a compilation problem --- src/protocol.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/protocol.h b/src/protocol.h index 8ce1116b99..8afbf10f3e 100755 --- a/src/protocol.h +++ b/src/protocol.h @@ -28,6 +28,7 @@ #include #include #include +#include #include "global.h" #include "util.h" From 47659b64b3c18f8029df116f5aa057c0471dc82d Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 12 Sep 2020 19:08:30 +0200 Subject: [PATCH 558/936] update Oboe library to the latest release version 1.4.3 --- libs/oboe | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/oboe b/libs/oboe index 55d878a4e8..d25993c5db 160000 --- a/libs/oboe +++ b/libs/oboe @@ -1 +1 @@ -Subproject commit 55d878a4e85e1994f2b5883366079b991500a25f +Subproject commit d25993c5dbe4750cd8d51a3729b6def6f9d20d77 From 9580b6df184bcde193c258e8f7dac1358348fdc0 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sat, 12 Sep 2020 21:39:54 +0200 Subject: [PATCH 559/936] code style changes --- android/sound.cpp | 221 ++++++++++++++++++++++++---------------------- android/sound.h | 47 +++++----- 2 files changed, 138 insertions(+), 130 deletions(-) diff --git a/android/sound.cpp b/android/sound.cpp index a402433f96..bb7105df28 100644 --- a/android/sound.cpp +++ b/android/sound.cpp @@ -33,11 +33,11 @@ CSound::CSound ( void (*fpNewProcessCallback) ( CVector& psData const bool , const QString& ) : CSoundBase ( "OpenSL", fpNewProcessCallback, arg, iCtrlMIDIChannel ) - { - pSound = this; + pSound = this; + #ifdef ANDROIDDEBUG - qInstallMessageHandler(myMessageHandler); + qInstallMessageHandler(myMessageHandler); #endif } @@ -52,6 +52,7 @@ void CSound::setupCommonStreamParams(oboe::AudioStreamBuilder *builder) // ->setSampleRate(48000) // ->setSampleRateConversionQuality(oboe::SampleRateConversionQuality::Medium) ->setPerformanceMode(oboe::PerformanceMode::None); + return; } @@ -60,83 +61,94 @@ void CSound::openStreams() // Create callback mCallback = this; - //Setup output stream - oboe::AudioStreamBuilder inBuilder, outBuilder; - outBuilder.setDirection(oboe::Direction::Output); - setupCommonStreamParams(&outBuilder); - oboe::Result result = outBuilder.openManagedStream(mPlayStream); - if (result != oboe::Result::OK) { - return; - } - mPlayStream->setBufferSizeInFrames(pSound->iOpenSLBufferSizeStereo); - - warnIfNotLowLatency(mPlayStream, "PlayStream"); - printStreamDetails(mPlayStream); - - //Setup input stream - inBuilder.setDirection(oboe::Direction::Input); - setupCommonStreamParams(&inBuilder); - result = inBuilder.openManagedStream(mRecordingStream); - if (result != oboe::Result::OK) { - closeStream(mPlayStream); - return; + // Setup output stream + oboe::AudioStreamBuilder inBuilder, outBuilder; + + outBuilder.setDirection ( oboe::Direction::Output ); + setupCommonStreamParams ( &outBuilder ); + + oboe::Result result = outBuilder.openManagedStream ( mPlayStream ); + + if ( result != oboe::Result::OK ) + { + return; } - mRecordingStream->setBufferSizeInFrames(pSound->iOpenSLBufferSizeStereo); - warnIfNotLowLatency(mRecordingStream, "RecordStream"); - printStreamDetails(mRecordingStream); + mPlayStream->setBufferSizeInFrames ( pSound->iOpenSLBufferSizeStereo ); + + warnIfNotLowLatency ( mPlayStream, "PlayStream" ); + printStreamDetails ( mPlayStream ); + + // Setup input stream + inBuilder.setDirection ( oboe::Direction::Input ); + setupCommonStreamParams ( &inBuilder ); + + result = inBuilder.openManagedStream ( mRecordingStream ); + + if ( result != oboe::Result::OK ) + { + closeStream ( mPlayStream ); + return; + } + + mRecordingStream->setBufferSizeInFrames ( pSound->iOpenSLBufferSizeStereo ); + + warnIfNotLowLatency ( mRecordingStream, "RecordStream" ); + printStreamDetails ( mRecordingStream ); } -void CSound::printStreamDetails(oboe::ManagedStream &stream) +void CSound::printStreamDetails ( oboe::ManagedStream& stream ) { - - QString sDirection = (stream->getDirection()==oboe::Direction::Input?"Input":"Output"); - QString sFramesPerBurst = QString::number(stream->getFramesPerBurst()); - QString sBufferSizeInFrames = QString::number(stream->getBufferSizeInFrames()); - QString sBytesPerFrame = QString::number(stream->getBytesPerFrame()); - QString sBytesPerSample = QString::number(stream->getBytesPerSample()); - QString sBufferCapacityInFrames = QString::number(stream->getBufferCapacityInFrames()); - QString sPerformanceMode = (stream->getPerformanceMode()==oboe::PerformanceMode::LowLatency?"LowLatency":"NotLowLatency"); - QString sSharingMode = (stream->getSharingMode() == oboe::SharingMode::Exclusive?"Exclusive":"Shared"); - QString sDeviceID = QString::number(stream->getDeviceId()); - QString sSampleRate = QString::number(stream->getSampleRate()); - QString sAudioFormat = (stream->getFormat()==oboe::AudioFormat::I16?"I16":"Float"); - - QString sFramesPerCallback = QString::number(stream->getFramesPerCallback()); + QString sDirection = ( stream->getDirection()==oboe::Direction::Input ? "Input" : "Output" ); + QString sFramesPerBurst = QString::number ( stream->getFramesPerBurst() ); + QString sBufferSizeInFrames = QString::number ( stream->getBufferSizeInFrames() ); + QString sBytesPerFrame = QString::number ( stream->getBytesPerFrame() ); + QString sBytesPerSample = QString::number ( stream->getBytesPerSample() ); + QString sBufferCapacityInFrames = QString::number ( stream->getBufferCapacityInFrames() ); + QString sPerformanceMode = ( stream->getPerformanceMode() == oboe::PerformanceMode::LowLatency ? "LowLatency" : "NotLowLatency" ); + QString sSharingMode = ( stream->getSharingMode() == oboe::SharingMode::Exclusive ? "Exclusive" : "Shared" ); + QString sDeviceID = QString::number ( stream->getDeviceId() ); + QString sSampleRate = QString::number ( stream->getSampleRate() ); + QString sAudioFormat = ( stream->getFormat()==oboe::AudioFormat::I16 ? "I16" : "Float" ); + + QString sFramesPerCallback = QString::number ( stream->getFramesPerCallback() ); //QString sSampleRateConversionQuality = (stream.getSampleRateConversionQuality()==oboe::SampleRateConversionQuality:: qInfo() << "Stream details: [sDirection: " << sDirection << - ", FramesPerBurst: " << sFramesPerBurst << - ", BufferSizeInFrames: " << sBufferSizeInFrames << - ", BytesPerFrame: " << sBytesPerFrame << - ", BytesPerSample: " << sBytesPerSample << - ", BufferCapacityInFrames: " << sBufferCapacityInFrames << - ", PerformanceMode: " << sPerformanceMode << - ", SharingMode: " << sSharingMode << - ", DeviceID: " << sDeviceID << - ", SampleRate: " << sSampleRate << - ", AudioFormat: " << sAudioFormat << - ", FramesPerCallback: " << sFramesPerCallback << "]"; - + ", FramesPerBurst: " << sFramesPerBurst << + ", BufferSizeInFrames: " << sBufferSizeInFrames << + ", BytesPerFrame: " << sBytesPerFrame << + ", BytesPerSample: " << sBytesPerSample << + ", BufferCapacityInFrames: " << sBufferCapacityInFrames << + ", PerformanceMode: " << sPerformanceMode << + ", SharingMode: " << sSharingMode << + ", DeviceID: " << sDeviceID << + ", SampleRate: " << sSampleRate << + ", AudioFormat: " << sAudioFormat << + ", FramesPerCallback: " << sFramesPerCallback << "]"; } -void CSound::warnIfNotLowLatency(oboe::ManagedStream &stream, QString streamName) { - if (stream->getPerformanceMode() != oboe::PerformanceMode::LowLatency) { - QString latencyMode = (stream->getPerformanceMode()==oboe::PerformanceMode::None ? "None" : "Power Saving"); - // throw CGenErr ( tr ( "Stream is NOT low latency." - // "Check your requested format, sample rate and channel count." ) ); +void CSound::warnIfNotLowLatency ( oboe::ManagedStream& stream, QString streamName ) +{ + if ( stream->getPerformanceMode() != oboe::PerformanceMode::LowLatency ) + { + QString latencyMode = ( stream->getPerformanceMode() == oboe::PerformanceMode::None ? "None" : "Power Saving" ); } } -void CSound::closeStream(oboe::ManagedStream &stream) +void CSound::closeStream ( oboe::ManagedStream& stream ) { - if (stream) { + if ( stream ) + { oboe::Result requestStopRes = stream->requestStop(); - oboe::Result result = stream->close(); - if (result != oboe::Result::OK) { + oboe::Result result = stream->close(); + + if ( result != oboe::Result::OK ) + { throw CGenErr ( tr ( "Error closing stream: $s", - oboe::convertToText(result) ) ); + oboe::convertToText ( result ) ) ); } + stream.reset(); } } @@ -144,8 +156,8 @@ void CSound::closeStream(oboe::ManagedStream &stream) void CSound::closeStreams() { // clean up - closeStream(mRecordingStream); - closeStream(mPlayStream); + closeStream ( mRecordingStream ); + closeStream ( mPlayStream ); } void CSound::Start() @@ -172,8 +184,7 @@ void CSound::Stop() int CSound::Init ( const int iNewPrefMonoBufferSize ) { // store buffer size - iOpenSLBufferSizeMono = 512 ; - //iNewPrefMonoBufferSize; + iOpenSLBufferSizeMono = 512; // iNewPrefMonoBufferSize; // init base class CSoundBase::Init ( iOpenSLBufferSizeMono ); @@ -202,99 +213,97 @@ vecsTmpAudioInSndCrd.Init ( iModifiedInBufSize ); // This is the main callback method for when an audio stream is ready to publish data to an output stream // or has received data on an input stream. As per manual much be very careful not to do anything in this back that // can cause delays such as sleeping, file processing, allocate memory, etc -oboe::DataCallbackResult CSound::onAudioReady(oboe::AudioStream *oboeStream, void *audioData, int32_t numFrames) +oboe::DataCallbackResult CSound::onAudioReady ( oboe::AudioStream* oboeStream, void* audioData, int32_t numFrames ) { - // only process if we are running - if ( ! pSound->bRun ) - { - return oboe::DataCallbackResult::Continue; - } - - // Need to modify the size of the buffer based on the numFrames requested in this callback. - // Buffer size can change regularly by android devices + // only process if we are running + if ( ! pSound->bRun ) + { + return oboe::DataCallbackResult::Continue; + } + + // Need to modify the size of the buffer based on the numFrames requested in this callback. + // Buffer size can change regularly by android devices int& iBufferSizeMono = pSound->iOpenSLBufferSizeMono; // perform the processing for input and output // QMutexLocker locker ( &pSound->Mutex ); - // locker.mutex(); +// locker.mutex(); - //This can be called from both input and output at different times - if (oboeStream == pSound->mPlayStream.get() && audioData) + // This can be called from both input and output at different times + if ( oboeStream == pSound->mPlayStream.get() && audioData ) { - float *floatData = static_cast(audioData); + float *floatData = static_cast ( audioData ); // Zero out the incoming container array - memset(audioData, 0, sizeof(float) * numFrames * oboeStream->getChannelCount()); + memset ( audioData, 0, sizeof(float) * numFrames * oboeStream->getChannelCount() ); // Only copy data if we have data to copy, otherwise fill with silence - if (!pSound->vecsTmpAudioSndCrdStereo.empty()) + if ( !pSound->vecsTmpAudioSndCrdStereo.empty() ) { - for (int frmNum = 0; frmNum < numFrames; ++frmNum) + for ( int frmNum = 0; frmNum < numFrames; ++frmNum ) { - for (int channelNum = 0; channelNum < oboeStream->getChannelCount(); channelNum++) + for ( int channelNum = 0; channelNum < oboeStream->getChannelCount(); channelNum++ ) { // copy sample received from server into output buffer - // convert to 32 bit const int32_t iCurSam = static_cast ( pSound->vecsTmpAudioSndCrdStereo [frmNum * oboeStream->getChannelCount() + channelNum] ); - floatData[frmNum * oboeStream->getChannelCount() + channelNum] = (float) iCurSam/ _MAXSHORT; + + floatData[frmNum * oboeStream->getChannelCount() + channelNum] = (float) iCurSam / _MAXSHORT; } } } else { // prime output stream buffer with silence - memset(static_cast(audioData) + numFrames * oboeStream->getChannelCount(), 0, - (numFrames) * oboeStream->getBytesPerFrame()); + memset(static_cast ( audioData ) + numFrames * oboeStream->getChannelCount(), 0, + ( numFrames ) * oboeStream->getBytesPerFrame() ); } } - else if (oboeStream == pSound->mRecordingStream.get() && audioData) + else if ( oboeStream == pSound->mRecordingStream.get() && audioData ) { // First things first, we need to discard the input queue a little for 500ms or so - if (pSound->mCountCallbacksToDrain > 0) + if ( pSound->mCountCallbacksToDrain > 0 ) { // discard the input buffer int32_t numBytes = numFrames * oboeStream->getBytesPerFrame(); - memset(audioData, 0 /* value */, numBytes); + memset ( audioData, 0 /* value */, numBytes ); pSound->mCountCallbacksToDrain--; } // We're good to start recording now // Take the data from the recording device output buffer and move // it to the vector ready to send up to the server - - float *floatData = static_cast(audioData); + float *floatData = static_cast ( audioData ); // Copy recording data to internal vector - for (int frmNum = 0; frmNum < numFrames; ++frmNum) + for ( int frmNum = 0; frmNum < numFrames; ++frmNum ) { - for (int channelNum = 0; channelNum < oboeStream->getChannelCount(); channelNum++) + for ( int channelNum = 0; channelNum < oboeStream->getChannelCount(); channelNum++ ) { - pSound->vecsTmpAudioSndCrdStereo [frmNum * oboeStream->getChannelCount() + channelNum] = - (short) floatData[frmNum * oboeStream->getChannelCount() + channelNum] * _MAXSHORT; + pSound->vecsTmpAudioSndCrdStereo[frmNum * oboeStream->getChannelCount() + channelNum] = + (short) floatData[frmNum * oboeStream->getChannelCount() + channelNum] * _MAXSHORT; } } // Tell parent class that we've put some data ready to send to the server pSound->ProcessCallback ( pSound->vecsTmpAudioSndCrdStereo ); } - // locker.unlock(); + +// locker.unlock(); + return oboe::DataCallbackResult::Continue; } -//TODO better handling of stream closing errors -void CSound::onErrorAfterClose(oboe::AudioStream *oboeStream, oboe::Result result) +// TODO better handling of stream closing errors +void CSound::onErrorAfterClose ( oboe::AudioStream* oboeStream, oboe::Result result ) { qDebug() << "CSound::onErrorAfterClose"; } -//TODO better handling of stream closing errors -void CSound::onErrorBeforeClose(oboe::AudioStream *oboeStream, oboe::Result result) +// TODO better handling of stream closing errors +void CSound::onErrorBeforeClose ( oboe::AudioStream* oboeStream, oboe::Result result ) { - qDebug() << "CSound::onErrorBeforeClose"; + qDebug() << "CSound::onErrorBeforeClose"; } - - - diff --git a/android/sound.h b/android/sound.h index c43c923d2b..b97c3ffe4e 100644 --- a/android/sound.h +++ b/android/sound.h @@ -24,9 +24,6 @@ #pragma once -/* Deprecated, moving to OBOE - * #include - * #include */ #include #include #include "soundbase.h" @@ -34,6 +31,7 @@ #include #include + /* Classes ********************************************************************/ class CSound : public CSoundBase, public oboe::AudioStreamCallback//, public IRenderableAudio, public IRestartable { @@ -50,27 +48,29 @@ class CSound : public CSoundBase, public oboe::AudioStreamCallback//, public IRe virtual void Stop(); // Call backs for Oboe - virtual oboe::DataCallbackResult onAudioReady(oboe::AudioStream *oboeStream, void *audioData, int32_t numFrames); - virtual void onErrorAfterClose(oboe::AudioStream *oboeStream, oboe::Result result); - virtual void onErrorBeforeClose(oboe::AudioStream *oboeStream, oboe::Result result); + virtual oboe::DataCallbackResult onAudioReady ( oboe::AudioStream* oboeStream, void* audioData, int32_t numFrames ); + virtual void onErrorAfterClose ( oboe::AudioStream* oboeStream, oboe::Result result ); + virtual void onErrorBeforeClose ( oboe::AudioStream* oboeStream, oboe::Result result ); // these variables should be protected but cannot since we want // to access them from the callback function CVector vecsTmpAudioSndCrdStereo; - static void android_message_handler(QtMsgType type, - const QMessageLogContext &context, - const QString &message) + static void android_message_handler ( QtMsgType type, + const QMessageLogContext& context, + const QString& message ) { android_LogPriority priority = ANDROID_LOG_DEBUG; - switch (type) { - case QtDebugMsg: priority = ANDROID_LOG_DEBUG; break; - case QtWarningMsg: priority = ANDROID_LOG_WARN; break; + + switch ( type ) + { + case QtDebugMsg: priority = ANDROID_LOG_DEBUG; break; + case QtWarningMsg: priority = ANDROID_LOG_WARN; break; case QtCriticalMsg: priority = ANDROID_LOG_ERROR; break; - case QtFatalMsg: priority = ANDROID_LOG_FATAL; break; + case QtFatalMsg: priority = ANDROID_LOG_FATAL; break; }; - __android_log_print(priority, "Qt", "%s", qPrintable(message)); + __android_log_print ( priority, "Qt", "%s", qPrintable ( message ) ); }; // TEST @@ -81,25 +81,24 @@ int iModifiedInBufSize; int iOpenSLBufferSizeStereo; private: - void setupCommonStreamParams(oboe::AudioStreamBuilder *builder); - void printStreamDetails(oboe::ManagedStream &stream); + void setupCommonStreamParams ( oboe::AudioStreamBuilder* builder ); + void printStreamDetails ( oboe::ManagedStream& stream ); void openStreams(); void closeStreams(); - void warnIfNotLowLatency(oboe::ManagedStream &stream, QString streamName); - void closeStream(oboe::ManagedStream &stream); + void warnIfNotLowLatency ( oboe::ManagedStream& stream, QString streamName ); + void closeStream ( oboe::ManagedStream& stream ); - oboe::ManagedStream mRecordingStream; - oboe::ManagedStream mPlayStream; - AudioStreamCallback *mCallback; + oboe::ManagedStream mRecordingStream; + oboe::ManagedStream mPlayStream; + AudioStreamCallback* mCallback; // used to reach a state where the input buffer is // empty and the garbage in the first 500ms or so is discarded - static constexpr int32_t kNumCallbacksToDrain = 10; + static constexpr int32_t kNumCallbacksToDrain = 10; int32_t mCountCallbacksToDrain = kNumCallbacksToDrain; // Used to reference this instance of class from within the static callback CSound *pSound; - QMutex Mutex; - + QMutex Mutex; }; From d00faa27aae42972ed605d4d4fd2cba50907e979 Mon Sep 17 00:00:00 2001 From: jerogee Date: Sat, 12 Sep 2020 22:27:02 +0200 Subject: [PATCH 560/936] Update Dutch translation for 3.5.11 (see #77) --- src/res/translation/translation_nl_NL.qm | Bin 105971 -> 106424 bytes src/res/translation/translation_nl_NL.ts | 10 +++++----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/res/translation/translation_nl_NL.qm b/src/res/translation/translation_nl_NL.qm index f70a366292ff6ea295932810a919f55099866345..34f81da789d33031794e50eaae782708b7979402 100644 GIT binary patch delta 4839 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 Urbk!i`b`wQwcN9D;@+qK2kf9jng9R* diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index e41bd2d652..2af3ab8286 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -465,7 +465,7 @@ Alias - + Alias @@ -865,7 +865,7 @@ software upgrade available - + software-update beschikbaar @@ -1058,7 +1058,7 @@ Update check - + Update check MUTED (You are not sending any audio to the server) @@ -2837,7 +2837,7 @@ software upgrade available - + software-update beschikbaar @@ -3038,7 +3038,7 @@ Update check - + Update check From 38baa4490ee96abb2c9ec074e4c21e9547fab5aa Mon Sep 17 00:00:00 2001 From: genesisproject2020 <7592139+genesisproject2020@users.noreply.github.com> Date: Sun, 13 Sep 2020 00:27:32 +0200 Subject: [PATCH 561/936] Update translation_sv_SE.ts --- src/res/translation/translation_sv_SE.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/res/translation/translation_sv_SE.ts b/src/res/translation/translation_sv_SE.ts index fbd6decbc4..3ffd5aa798 100644 --- a/src/res/translation/translation_sv_SE.ts +++ b/src/res/translation/translation_sv_SE.ts @@ -410,7 +410,7 @@ Alias - + Alias @@ -718,7 +718,7 @@ software upgrade available - + mjukvaruuppdatering tillgänglig @@ -906,12 +906,12 @@ MUTED (Other people won't hear you) - + TYSTAD (andra hör inte dig) Update check - + Uppdateringskontroll MUTED (You are not sending any audio to the server) @@ -1875,17 +1875,17 @@ Red - Röd + Röd Yellow - Gul + Gul Green - Grön + Grön @@ -2490,7 +2490,7 @@ software upgrade available - + mjukvaruuppdatering tillgänglig @@ -2699,7 +2699,7 @@ Update check - + Uppdateringskontroll From 3565eb7eb7029dd54e69753975c064a3c133c5e0 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 13 Sep 2020 09:04:57 +0200 Subject: [PATCH 562/936] update translation --- src/res/translation/translation_de_DE.qm | Bin 109998 -> 110008 bytes src/res/translation/translation_de_DE.ts | 58 +++++++++++------------ src/res/translation/translation_es_ES.qm | Bin 106469 -> 106479 bytes src/res/translation/translation_es_ES.ts | 58 +++++++++++------------ src/res/translation/translation_fr_FR.qm | Bin 113721 -> 113731 bytes src/res/translation/translation_fr_FR.ts | 58 +++++++++++------------ src/res/translation/translation_it_IT.qm | Bin 108038 -> 108048 bytes src/res/translation/translation_it_IT.ts | 58 +++++++++++------------ src/res/translation/translation_nl_NL.qm | Bin 106424 -> 106434 bytes src/res/translation/translation_nl_NL.ts | 58 +++++++++++------------ src/res/translation/translation_pl_PL.qm | Bin 14706 -> 14716 bytes src/res/translation/translation_pl_PL.ts | 58 +++++++++++------------ src/res/translation/translation_pt_BR.qm | Bin 109217 -> 109227 bytes src/res/translation/translation_pt_BR.ts | 58 +++++++++++------------ src/res/translation/translation_pt_PT.qm | Bin 109097 -> 109107 bytes src/res/translation/translation_pt_PT.ts | 58 +++++++++++------------ src/res/translation/translation_sv_SE.qm | Bin 102821 -> 103464 bytes src/res/translation/translation_sv_SE.ts | 58 +++++++++++------------ 18 files changed, 261 insertions(+), 261 deletions(-) diff --git a/src/res/translation/translation_de_DE.qm b/src/res/translation/translation_de_DE.qm index 6224cae91fa2d3ade00fd9fd35c0380ec1daf612..fc4e7dcf29197bfbfcec5bad38e38a00428ab808 100644 GIT binary patch delta 40 ycmV+@0N4Mn+XlGX1{yrLWEjftoR!TX9KT?pz1^n(000GKWnV-^fe^J20iLaU;}HM= delta 30 ocmV+(0O9|*+Xk-N1`s^BWEjftoR!TX9KT?pz1@KtwHg7Qt>(K9tpET3 diff --git a/src/res/translation/translation_de_DE.ts b/src/res/translation/translation_de_DE.ts index c7e0d6fff3..a66e938a4e 100644 --- a/src/res/translation/translation_de_DE.ts +++ b/src/res/translation/translation_de_DE.ts @@ -189,32 +189,32 @@ CAudioMixerBoard - + Personal Mix at the Server Eigener Mix am Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Wenn man mit einem Server verbunden ist, dann kann man hier den eigenen Mix verstellen ohne dass man etwas daran verändert, was die anderen von mir hören. Der Titel zeigt den Servernamen an und falls bekannt den Aufnahmestatus des Servers. - + Server - + T R Y I N G T O C O N N E C T V E R B I N D U N G S A U F B A U - + RECORDING ACTIVE AUFNAHME AKTIV - + Personal Mix at: Eigener Mix am Server: @@ -424,49 +424,49 @@ G - + Alias/Name - + Instrument - + Location Standort - + Skill Level Spielstärke - + Alias Alias - + Beginner Anfänger - + Intermediate Mittlere Spielstärke - + Expert Experte - + Musician Profile Profil des Musikers @@ -794,7 +794,7 @@ - + C&onnect &Verbinden @@ -979,17 +979,17 @@ Auswählen der Datei für die Konfiguration der Mixerkanäle - + user Musiker - + users Musiker - + D&isconnect &Trennen @@ -3283,7 +3283,7 @@ Software benötigt aber ein ASIO Audiointerface um zu funktionieren. Dies ist keine Standard-Windowsschnittstelle und benötigt deshalb einen speziellen Treiber. Entweder die Soundkarte liefert einen nativen ASIO-Treiber mit (was empfohlen wird) oder man versucht es mit dem ASIO4All-Universaltreiber. - + Error closing stream: $s Fehler beim Schließen des Datenstroms: $s @@ -3291,47 +3291,47 @@ CSoundBase - + Invalid device selection. Ungültige Geräteauswahl. - + The audio driver properties have changed to a state which is incompatible with this software. The selected audio device could not be used because of the following error: Die Audiotreibereigenschaften haben sich geändert. Die neuen Einstellungen sind nicht mehr kompatibel zu dieser Software. Das ausgewählte Audiogerät konnte nicht benutzt werden wegen folgendem Fehler: - + Please restart the software. Bitte starte die Software neu. - + Close - + No usable Kein benutzbares - + audio device (driver) found. Audiogerät (Treiber) konnte gefunden werden. - + In the following there is a list of all available drivers with the associated error message: Im folgenden wird eine Liste aller gefundenen Audiogeräte mit entsprechender Fehlermeldung angezeigt: - + Do you want to open the ASIO driver setups? Willst du die ASIO-Treibereinstellungen öffnen? - + could not be started because of audio interface issues. konnte nicht gestartet werden wegen Problemen mit dem Audiogerät. diff --git a/src/res/translation/translation_es_ES.qm b/src/res/translation/translation_es_ES.qm index 46feaa3ac27f8ced635fb6ee7ac8aa17c1a2299c..61673c865a369787bbbbbd481f2d6286b7634659 100644 GIT binary patch delta 40 ycmV+@0N4NJzXtEW1{yrLWEjftoR!TX9KT?pz1^n(000GLb6-VMfe^J20o9*{xe CAudioMixerBoard - + Personal Mix at the Server Mezcla personal en el Servidor - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Estando conectado a un servidor, estos controles te permiten hacer tu mezcla personal sin afectar lo que otros escuchan de tí. El título muestra el nombre del servidor y, cuando se conoce, si está activamente grabando. - + Server Servidor - + T R Y I N G T O C O N N E C T I N T E N T A N D O C O N E C T A R - + RECORDING ACTIVE GRABACIÓN ACTIVA - + Personal Mix at: Mezcla Personal en el Servidor: @@ -436,49 +436,49 @@ G - + Alias/Name Alias/Nombre - + Instrument Instrumento - + Location Ubicación - + Skill Level Nivel Habilidad - + Alias - + Beginner Principiante - + Intermediate Intermedio - + Expert Experto - + Musician Profile Perfil Músico @@ -814,7 +814,7 @@ - + C&onnect C&onectar @@ -995,17 +995,17 @@ Seleccionar Archivo Configuración Canales - + user usuario - + users usuarios - + D&isconnect D&esconectar @@ -3307,7 +3307,7 @@ requiere la interfaz de audio de baja latencia ASIO para funcionar correctamente. No es una interfaz estándar de Windows y por tanto se requiere un driver de audio especial. Tu tarjeta de audio podría tener un driver ASIO nativo (lo recomendado) o quizá quieras probar un driver alternativo como ASIO4All. - + Error closing stream: $s Error cerrando transmisión: $s @@ -3315,47 +3315,47 @@ CSoundBase - + Invalid device selection. Selección de dispositivo no válida. - + The audio driver properties have changed to a state which is incompatible with this software. The selected audio device could not be used because of the following error: Las propiedades del driver de audio han cambiado a un estado que es incompatible con este software. El dispositivo de audio seleccionado no se pudo utilizar a causa del siguiente error: - + Please restart the software. Por favor reinicie el software. - + Close Cerrar - + No usable Ningún driver - + audio device (driver) found. de audio utilizable encontrado. - + In the following there is a list of all available drivers with the associated error message: A continuación hay una lista de todos los drivers disponibles con el error asociado: - + Do you want to open the ASIO driver setups? ¿Quieres abrir la configuración del driver ASIO? - + could not be started because of audio interface issues. no pudo arrancar debido a problemas con el dispositivo de audio. diff --git a/src/res/translation/translation_fr_FR.qm b/src/res/translation/translation_fr_FR.qm index d234bcd6f60204adebf60b5476cde5a2941498e4..56dac60aabc9a503587edb99f00ac828dd4bde97 100644 GIT binary patch delta 40 ycmV+@0N4My_y)uH1{yrLWEjftoR!TX9KT?pz1^n(000GMa$iPLfe^J20V%wP_YnvH delta 30 ocmV+(0O9|`_y)Q71`s^BWEjftoR!TX9KT?pz1@KtwHg5_yzY(;mjD0& diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index 1679606d2f..56eb4c1026 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -209,32 +209,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mixage personnel au serveur - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Lorsque vous êtes connecté à un serveur, les contrôles vous permettent de régler votre mixage local sans affecter ce que les autres entendent de vous. Le titre indique le nom du serveur et, lorsqu'il est connu, s'il est en train d'enregistrer. - + Server Serveur - + T R Y I N G T O C O N N E C T T E N T A T I V E D E C O N N E X I O N - + RECORDING ACTIVE ENREGISTREMENT ACTIF - + Personal Mix at: Mixage personnel à : @@ -444,49 +444,49 @@ G - + Alias/Name Pseudo/nom - + Instrument Instrument - + Location Localisation - + Skill Level Niveau de compétence - + Alias - + Beginner Débutant - + Intermediate Intermédiaire - + Expert Expert - + Musician Profile Profil de musicien @@ -810,7 +810,7 @@ - + C&onnect Se c&onnecter @@ -995,17 +995,17 @@ Sélectionnez le fichier de configuration des canaux - + user utilisateur - + users utilisateurs - + D&isconnect Dé&connecter @@ -3295,7 +3295,7 @@ nécessite l'interface audio à faible latence ASIO pour fonctionner correctement. Il ne s'agit pas d'une interface audio Windows standard et un pilote audio spécial est donc nécessaire. Soit votre carte son dispose d'un pilote ASIO natif (ce qui est recommandé), soit vous pouvez utiliser d'autres pilotes comme le pilote ASIO4All. - + Error closing stream: $s Erreur de fermeture du flux : $s @@ -3303,47 +3303,47 @@ CSoundBase - + Invalid device selection. Sélection de périphérique invalide. - + The audio driver properties have changed to a state which is incompatible with this software. The selected audio device could not be used because of the following error: Les propriétés du pilote audio ont changé et sont devenues incompatibles avec ce logiciel. Le périphérique audio sélectionné n'a pas pu être utilisé en raison de l'erreur suivante : - + Please restart the software. Veuillez redémarrer le logiciel - + Close Fermer - + No usable Pas de périphérique audio (pilote) - + audio device (driver) found. utilisable trouvé - + In the following there is a list of all available drivers with the associated error message: Vous trouverez ci-dessous une liste de tous les pilotes disponibles avec le message d'erreur associé : - + Do you want to open the ASIO driver setups? Voulez-vous ouvrir les configurations des pilotes ASIO ? - + could not be started because of audio interface issues. n'a pas pu être lancé en raison de problèmes d'interface audio. diff --git a/src/res/translation/translation_it_IT.qm b/src/res/translation/translation_it_IT.qm index d1a14fccf0690959dbab7c807fb4de1b0e3ff1f9..3943d8c1a7ee7c0983d7549581ca06b3c14b4c4f 100644 GIT binary patch delta 40 ycmV+@0N4M9%m$Fm1{yrLWEjftoR!TX9KT?pz1^n(000GPbYDqSfe^J20rsVBq!9`L delta 30 ocmV+(0O9|T%m#+c1`s^BWEjftoR!TX9KT?pz1@KtwHg8TrQ1Rdj{pDw diff --git a/src/res/translation/translation_it_IT.ts b/src/res/translation/translation_it_IT.ts index 76d0755a1b..0bf68ad937 100644 --- a/src/res/translation/translation_it_IT.ts +++ b/src/res/translation/translation_it_IT.ts @@ -193,32 +193,32 @@ CAudioMixerBoard - + Personal Mix at the Server Mixer personale sul Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Quando connessi i fader permettono di regolare i volumi in locale senza influenzare l'ascolto degli altri utenti. L'intestazione mostra il nome de server, se valorizzato, e le informazioni sullo stato della sessione di registrazione se attiva. - + Server Server - + T R Y I N G T O C O N N E C T I N A T T E S A D I C O N N E S S I O N E - + RECORDING ACTIVE Sessione con Registrazione Attiva - + Personal Mix at: Mixer personale sul Server: @@ -449,49 +449,49 @@ G - + Alias/Name Identificativo/Nome - + Instrument Strumento - + Location Località - + Skill Level Livello di Preparazione - + Alias - + Beginner Principiante - + Intermediate Livello Intermedio - + Expert Esperto - + Musician Profile Profilo del Musicista @@ -866,7 +866,7 @@ - + C&onnect C&onnetti @@ -975,17 +975,17 @@ Selezione File di Setup dei Canali - + user utente - + users utenti - + D&isconnect D&isconnetti @@ -3116,7 +3116,7 @@ CSound - + Error closing stream: $s Errore chiusura dello stream: $s @@ -3251,47 +3251,47 @@ CSoundBase - + Invalid device selection. Device Selezionato non valido. - + The audio driver properties have changed to a state which is incompatible with this software. The selected audio device could not be used because of the following error: I settaggi del driver audio sono stati cambiati con parametri incompatibili con questo programma. La scheda audio selezionata non può essere usata a causa dei seguenti errori: - + Please restart the software. Perfavore riavvia il programma. - + Close Chiudi - + No usable Device Non utilizzabile - + audio device (driver) found. driver non trovati. - + In the following there is a list of all available drivers with the associated error message: Di seguito è riportato un elenco di tutti i driver disponibili con errore associato: - + Do you want to open the ASIO driver setups? Vuoi aprire il setup dei Driver Audio ASIO? - + could not be started because of audio interface issues. Impossibile avviare a causa di problemi con il dispositivo audio. diff --git a/src/res/translation/translation_nl_NL.qm b/src/res/translation/translation_nl_NL.qm index 34f81da789d33031794e50eaae782708b7979402..222eb6e39341ba9206795c4e707ccc84119d00ea 100644 GIT binary patch delta 40 ycmV+@0N4MxzXrm;1{yrLWEjftoR!TX9KT?pz1^n(000GUY+p`Hfe^J20jQsN4iNeP delta 30 ocmV+(0O9|_zXrI!1`s^BWEjftoR!TX9KT?pz1@KtwHg7apW^opg#Z8m diff --git a/src/res/translation/translation_nl_NL.ts b/src/res/translation/translation_nl_NL.ts index 2af3ab8286..e7c30e4514 100644 --- a/src/res/translation/translation_nl_NL.ts +++ b/src/res/translation/translation_nl_NL.ts @@ -193,32 +193,32 @@ CAudioMixerBoard - + Personal Mix at the Server Eigen mix op de Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Indien verbonden met de server kan hier de lokale mix ingesteld worden zonder dat hetgeen anderen van je horen wordt beïnvloed. De titel toont de servernaam en indien bekend of er audio wordt opgenomen. - + Server Server - + T R Y I N G T O C O N N E C T A A N H E T V E R B I N D E N - + RECORDING ACTIVE GELUIDSOPNAME ACTIEF - + Personal Mix at: Eigen mix op: @@ -441,49 +441,49 @@ G - + Alias/Name Alias/Naam - + Instrument Instrument - + Location Locatie - + Skill Level Vaardigheidssniveau - + Alias Alias - + Beginner Beginner - + Intermediate Gemiddeld - + Expert Gevorderd - + Musician Profile Muzikantenprofiel @@ -858,7 +858,7 @@ - + C&onnect C&onnect @@ -963,17 +963,17 @@ Selecteer bestand met Kanaalinstellingen - + user gebruiker - + users gebruikers - + D&isconnect &Afmelden @@ -3120,7 +3120,7 @@ CSound - + Error closing stream: $s Fout tijdens afsluiten: $s @@ -3255,47 +3255,47 @@ CSoundBase - + Invalid device selection. Ongeldige apparaatkeuze. - + The audio driver properties have changed to a state which is incompatible with this software. The selected audio device could not be used because of the following error: De eigenschappen van de audiodriver zijn veranderd in een toestand die niet compatibel is met deze software. Het geselecteerde audioapparaat kon niet worden gebruikt vanwege de volgende fout: - + Please restart the software. Start de software opnieuw op. - + Close Sluiten - + No usable Niet bruikbaar - + audio device (driver) found. audioapparaat (stuurprogramma) gevonden. - + In the following there is a list of all available drivers with the associated error message: Hieronder vindt u een lijst van alle beschikbare drivers met de bijbehorende foutmelding: - + Do you want to open the ASIO driver setups? Wilt u de ASIO-stuurprogramma's openen? - + could not be started because of audio interface issues. kon niet worden gestart vanwege problemen met de audio-interface. diff --git a/src/res/translation/translation_pl_PL.qm b/src/res/translation/translation_pl_PL.qm index f12db90194a9f1d3fabb8d6b64dab843d7e3d4db..9f540cc614e92cab89f66394c75ff896c3107d17 100755 GIT binary patch delta 35 rcmexV^ruM5W=D#|srPfHo>i3DpRjQ6-Q^4n46Fq?@c}*?1(GZQJn|2U delta 25 hcmexU^r=X|W=D#|srPfHo>i3DpRjQ6-HlR7mH@E)4F>=K diff --git a/src/res/translation/translation_pl_PL.ts b/src/res/translation/translation_pl_PL.ts index 916cf17ad0..ef94fc4d6f 100644 --- a/src/res/translation/translation_pl_PL.ts +++ b/src/res/translation/translation_pl_PL.ts @@ -154,32 +154,32 @@ CAudioMixerBoard - + Personal Mix at the Server - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. - + Server Serwer - + T R Y I N G T O C O N N E C T P R Ó B U J Ę S I Ę P O Å Ä„ C Z Y Ć - + RECORDING ACTIVE - + Personal Mix at: @@ -386,49 +386,49 @@ - + Alias/Name Nick/ImiÄ™ - + Instrument Instrument - + Location Lokalizacja - + Skill Level - + Alias - + Beginner PoczÄ…tkujÄ…cy - + Intermediate Åšredniozaawansowany - + Expert Ekspert - + Musician Profile Profil muzyka @@ -707,7 +707,7 @@ - + C&onnect &Połącz @@ -812,17 +812,17 @@ - + user - + users - + D&isconnect &Rozłącz @@ -2743,7 +2743,7 @@ nie jestem pewna CSound - + Error closing stream: $s @@ -2878,47 +2878,47 @@ nie jestem pewna CSoundBase - + Invalid device selection. - + The audio driver properties have changed to a state which is incompatible with this software. The selected audio device could not be used because of the following error: - + Please restart the software. - + Close Zamknij - + No usable - + audio device (driver) found. - + In the following there is a list of all available drivers with the associated error message: - + Do you want to open the ASIO driver setups? - + could not be started because of audio interface issues. diff --git a/src/res/translation/translation_pt_BR.qm b/src/res/translation/translation_pt_BR.qm index 74df111f38d7973ccae4520fb4a551b018a3d81c..44c20840152f24227105f671a0daba320dd80a46 100644 GIT binary patch delta 40 ycmV+@0N4Ma)ds881{yrLWEjftoR!TX9KT?pz1^n(000GWbYDVJfe^J20g CAudioMixerBoard - + Personal Mix at the Server Mixagem Pessoal no Servidor - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Quando conectado a um servidor, estes controles permite definir sua mixagem local sem afetar o que os outros ouvem de você. O título exibe o nome do servidor e, quando conhecido, se está ativamente gravando. - + Server Servidor - + T R Y I N G T O C O N N E C T T E N T A N D O C O N E C T A R - + RECORDING ACTIVE GRAVAÇÃO ATIVA - + Personal Mix at: Mixagem Pessoal em: @@ -445,49 +445,49 @@ G - + Alias/Name Apelido/Nome - + Instrument Instrumento - + Location Localização - + Skill Level Nível de Habilidade - + Alias - + Beginner Principiante - + Intermediate Intermediário - + Expert Avançado - + Musician Profile Perfil do músico @@ -808,7 +808,7 @@ - + C&onnect C&onectar @@ -993,17 +993,17 @@ Selecione Arquivo de Configuraçao de Canal - + user usuário - + users usuários - + D&isconnect Opted by Desligar instead of Desconectar to keep same keyboard shortcut Desl&igar @@ -3282,7 +3282,7 @@ requer que a interface de áudio de baixa latência ASIO funcione corretamente. Esta não é uma interface de áudio padrão do Windows e, portanto, é necessário um driver de áudio especial. Ou a sua placa de som possui um driver ASIO nativo (recomendado), ou pode usar drivers alternativos, como o driver ASIO4All. - + Error closing stream: $s Erro ao fechar o stream: $s @@ -3290,47 +3290,47 @@ CSoundBase - + Invalid device selection. Seleção de dispositivo inválida. - + The audio driver properties have changed to a state which is incompatible with this software. The selected audio device could not be used because of the following error: As propriedades do driver de áudio foram alteradas para um estado incompatível com este programa. O dispositivo de áudio selecionado não pôde ser usado devido ao seguinte erro: - + Please restart the software. Por favor reinicie o programa. - + Close Fechar - + No usable Nenhum dispositivo de áudio (driver) - + audio device (driver) found. utilizável encontrado. - + In the following there is a list of all available drivers with the associated error message: Abaixo uma lista de todos os drivers disponíveis com a mensagem de erro associada: - + Do you want to open the ASIO driver setups? Deseja abrir as configurações do driver ASIO? - + could not be started because of audio interface issues. não pôde ser iniciado devido a problemas na interface de áudio. diff --git a/src/res/translation/translation_pt_PT.qm b/src/res/translation/translation_pt_PT.qm index adae22e3c0fe98feb1adef22b8d0e33990d92b25..b34d73ffe019a3a5991559e179ae2b41452f38ef 100644 GIT binary patch delta 40 ycmV+@0N4Mi)CRNE1{yrLWEjftoR!TX9KT?pz1^n(000GWbYD CAudioMixerBoard - + Personal Mix at the Server Mistura Pessoal no Servidor - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. Quando ligado a um servidor, estes controles permitem que defina a sua mistura local sem afectar o que os outros ouvem. O título mostra o nome do servidor e, quando conhecido, se está gravando activamente. - + Server Servidor - + T R Y I N G T O C O N N E C T T E N T A N D O L I G A R - + RECORDING ACTIVE GRAVAÇÃO ACTIVA - + Personal Mix at: Mistura Pessoal no Servidor: @@ -444,49 +444,49 @@ G - + Alias/Name Nome/Alcunha - + Instrument Instrumento - + Location Localização - + Skill Level Nível de Habilidade - + Alias - + Beginner Principiante - + Intermediate Intermediário - + Expert Avançado - + Musician Profile Perfil do músico @@ -806,7 +806,7 @@ - + C&onnect &Ligar @@ -991,17 +991,17 @@ Selecione o ficheiro de configuração da mistura - + user utilizador - + users utilizadores - + D&isconnect Desl&igar @@ -3279,7 +3279,7 @@ requer que a interface de áudio de baixa latência ASIO funcione corretamente. Esta não é uma interface de áudio padrão do Windows e, portanto, é necessário um driver de áudio especial. Ou a sua placa de som possui um driver ASIO nativo (recomendado), ou pode usar drivers alternativos, como o driver ASIO4All. - + Error closing stream: $s Erro ao fechar o stream: $s @@ -3287,47 +3287,47 @@ CSoundBase - + Invalid device selection. Seleção de dispositivo inválida. - + The audio driver properties have changed to a state which is incompatible with this software. The selected audio device could not be used because of the following error: As propriedades do driver de áudio foram alteradas para um estado incompatível com este programa. O dispositivo de áudio selecionado não pôde ser usado devido ao seguinte erro: - + Please restart the software. Por favor reinicie o programa. - + Close Fechar - + No usable Nenhum dispositivo de áudio (driver) - + audio device (driver) found. utilizável encontrado. - + In the following there is a list of all available drivers with the associated error message: De seguida verá uma lista de todos os drivers disponíveis com a mensagem de erro associada: - + Do you want to open the ASIO driver setups? Deseja abrir as configurações do driver ASIO? - + could not be started because of audio interface issues. não pôde ser iniciado devido a problemas na interface de áudio. diff --git a/src/res/translation/translation_sv_SE.qm b/src/res/translation/translation_sv_SE.qm index 1be7a1de154d57f10b9534159394475d16c2c87b..d977510ef03c37bb190b991c3635dfa899bc27b0 100644 GIT binary patch delta 5054 zcmb_gXH-;YyWQ`ZIn#?JD0WbZhz3y6&x#sFiim|`1wlY*A|TkJ3?`5-L?tR>Nl>G) zqM}BP#)1_qVkNP61WUw*iUse6Su4Npzk3&pwdcS&&-=8!pXbcl-&7kms4PAAMA)9L z$jv!x-}GSUsslII1CS?A8SC%yHBk2lUO50~9EqNQ%>kk>(7)V@p^dC~K7%+2X!M*o z4De2~V%V2fym*-C4>Vg%jUk20NO?t+Do9}dw}13pg}tCn*c1Qp@0ye=?5Sv zl@GdFF_eEFv6BbTPz`=`17^+yE_Z-(?pEOJmr$;t4VOYFfBh5qd=$#^`4Ea^C@Ze; z-l344=xk#f$n7ozp_bl|UDp5)=RtPMfN%?k+$S5j&>r%D!N3YT$X=Zx{EtKST}y`? zAP0FssJcQP8Au!tIo(VLPe5KJ1DB=~tATZ2TJh2!kk`2Yb{`?DizbEuwW6yj;Em z>a~Ga1|z9fz&qkLQx^&EoM?!ES@1r}2tF@@PnR5s8C&2p^=pXMhv0K06BxT515Ymn z#ANuU)A1P>F{tNS2x$}s6*8kk`@nBb0nj_aiXWBmTYQM6u8SeVkFow^OW{9~H9Y?u zBR;(b!e(P+IcrpL1EcKPL#S;Ktg?sDHb5}%6WXa5=Mx3oO2*7wmMZui793dteCvso zQ+d$19a!^|2LqXe^^TVq`6Fy_aRw9$dvM+UW;N#7%JP|2Oh-= z`2|xhEfe}S&Jc~Nh4D5s^tnRRf4B{zX>-wSA{)46qVTe~l|!^xDS|iK0h7jx@XREp zW~-PM#M;40Wck*iV|T>@H6va(Qe+RShDe?$R{Ea@y2OZ8`w?}+1D^C9|85r4foMn{a|uK!1t=7T65mk+#E3rm@Q0mRf@;>8bIpvgE< z)#5GbF+);&K4T9cg$nN8hsw{&V>B%rtSmhKN@O$L=n z5C2Jm7;;0ZOlC8#)LQXEwDiWpE>7z#Rn44EC44AVopA^DEs)+jGDAmhDWuhGwqV~{ z6n<9}s%<jGJP6N;inv;fm`mX(&;lczrX1!sM@beT&bn$XBXg zl(xwdGuBVpvzG7kmF|yHfh}j0V+Njr7$zx$*F1v=ex{6dBmKV7D5q_>3JaWy zl+)uv*=$fw&rJp%|D&AgO+m?-shoZHONjq0Qsz{31}<8xSmvtC9YvvXyKTj>Ny;^8 z7fH8{%C)n-fYs^Bb%VZRDZf|dU83aP46a4d^SN^KreI*|9OdS7EM>8`a@)}i3!A0C za=TL+i;LPb~_`QF*>Q4=f3>;=|#}E5}GDshjdfHY1c`l{cF+ z<-@#{cdoUfaylr>4wD_FZmdi2sRLIY%0byRy>m?tjVJGCg~?G;I)q=a9Mj7L*hkB;otu*Phvi8%0_4|No?>xj zB#NH$w2FJIiLX54?|9(oCON&Lgv02D{6q9_l;FSR%=j#b_Q&M8Mc=Z^edYO~O!@gv za&}urR9aVFeCHPRW52xQH#KF$TVA?}b{g%s;=_Y-ZZ0!ucx=Us6~ucGb*f~`D$OC% ztxR6^U-Gk!B1^!~^L3gq+SswutRa>?j;Cq}E})qcPaja8bvEb-&z7L~rsWuVhq zm2H}t%5+TCXb&T~U#Rl!#3pfZQH>l_3>ep{f=g(yr;jSMZd)qZLRFYeIhC=2>Km1U z8S1S{9mSNoe^O-(X~=OLsal!+j)C~A)*hlH-n^z-m%%^}-&f^zGmvEqRGSk?!wHra zs@)qynVKG|g8}UFhFfY;D7{rj@}emiO;yLQ(PMij)yYI>&VPSZ*&G|7=$Pt}9ZT@@ z1l7xzHN)hj>eZnTpp}d2O=CCC6piX_3zn?+a@FUi>;>a0wV1={=y5|WmC;^$vD)SU z@3+h=RW}{XE{$|hH}hgs`NyieR80dud8+%iSiz0uTeV+{e28w#)x!$A0$;sU2iow# zphWeEymVmb5_PbXmWuYBdTbR-G)7iW4rWHDxYwev*{n`+Ib}zQQv=m6v9SQKWfpO>tmWmIV^~a z%s7qV<}+?W^E7pKx^w=QeA2k2mvZ>rtVJR3)^r&9JD1GGnvVH&=xvc^;Dln*)I;O< zdnLPmM=gq>XEnncQE+m*Xrhi6a)B9P#ZQHr#Mto@+JR)N>)ayw>~~&eC}F(j5GYDXVYP z9M7SF-&$x+q&^2;6lzTep8(TaR)}=(@gtl22(6$YOB^zP##ulKlEm# zBT95qe{YDvgLUT5yst7u*XkEHp!<8B%YGiz;R~JD85+K2XT|a+x}fC+Y{E2M#DoWI z!ri)vO4fS%4PB(Sk~)&EiyCs0ikYj6dQ{ADe%PXmdiRz?W`r(o^i?+59$ox{jSzNQ zbqSyTOFk#-lDs%JXPwr4<4p&`D|O4~u~!D?=+*_;vi6sBc@bCGL-Tc;Uoj%vzjeEV z_5iCM>-M_Jz|-Tp{d1Y2Y3{m$I?mLEO5L#rR7jg--N`L+ zb9C3Y)p&SL_sEqI4w6{cYRxMJ7={zGF||!%%%=yl;@5gc5y`Z1>h(n`Ss(z6xyVNODpF3a?dm&A~e4QT<)lt8)_iGB(#99=J)%tZm zaUEAJ)Nkowf{2aO?>o)N6><8*eXD_89{Q78PH}Mw(ic^*bf+Ka&p$HJ(Pg!05j`sO z*EZcCPkr=v26{r&YpB076A8 z-!%j;rsw*uhM0YgSo?m4nETFrk6der+wTtHbKj6q%7cFGZ%F#Q)%aQ$o1$BpO~M?&iAw zm7yw_B~fM?O;^^F_kPBv>zVSORkbLFCK=lV+E5Aa8NX^&4dEgiyFAH0ES7_YOuYf#$VB8uO2+=dcc<`k&FyVeJiqQj&M-LSP+cS+P#)osCkd4LT zcpYeOJZH->{9Lj%8oML>@-H%#*%J_PxA4IF!CUtc^YI&up;kjo( z_IIWx6G+RzFjG@a9u+Xy{)Jde3}c`Z8f>tG=~@)Z0e@}k$O?jnauXt30DPfbPat}{JOW#;x;VoXmnnSll_rq|8xQL$c`-fqt40nJVC1L;`jk>?_5(MNra@-+R%yVjrRKh;_);kznSH0TtH1iiJeIQpmL2A>ImC5G z%;V1%lAgEBGfTSih2$&q++QTl2%UMJI-WwN$}lf$7{a$_5AzXDIrPpoAE{}|E^Ew} zvNn)L<>t#aw>TSu%un9>0ZXo%-_$WdI1DgXbs5EPOS+k>HpfFarcqVCP1%uDw_Ux) zI`l;xq7jD4WE`O4uiQ5-I&5-wV!MVrmbZHC)5aYW5rY)OVhZm|;-?fO@F#*-$%y1% zq7jb?*{gQiw*J>hmqoSP*oON6mbN-?Q~39S+(YY8DqDH#gg%oMU@$vU!xNYdD5 z^23x}C1oFD-$IzOWXY1>TlcT$^ttDJ&$~R&^S-C-Y%yzxXmmXiW>Hd|vG!uymW832 zf8YHXXfzT)2cUQ#p$A~TjL;VtkZ;0qF(xe65Do?`3kin-UPDY6%9-%;Ai@Bk72Pk4 z0k&)ay1D?eB^@_|&OHDa{Z<0a=%#=vK*lT}Fa&5>0t6)zemCK`Qefm^dI23&kDvbs z%$o;X`3wBAKY$B+!EZ?hx~~Dhjee{11pj;`7^?+eeG^Ey0ijC@1^NU+*K5GI^$_fK z0u_y66dY5)dOU~FFC8d90AUbik&y+#vnSZlYY=?1fEG0nf(C-|e?u5GobV-tWCLZk z4nn2?T&^Rm19t8;;T0DMySf8yE&{TA3*eC*2UO<3<363^Qqh2{T@!ewPy%0#i{TY^ANckHUTdd<4Oj46cleZ0AK6U!CR4!iBQV%C3k>%$_$*a&h#&lx z765(wn(%Wf{MMbIUO#~U2nuLi9|Vk|)|Jn~$Zs{&|IlEJdQQEm8jsO!x`7G5BUo%p zrP_pGx{*m=F~K_=xKoRH8PuX+f2=yS1xPBz*4gx;@lM#eVjyKwgWa93QpT0Y?rsaH zRLD8`7EHAof4B#N{iNVRc^R0G3ofU50da-~G~&W*Tk21EPiA9`&6O2IM(Fp zelV*YtoQWofK5N<>G&M1b$b?^+Xk5agiTD1H4^(1*_ivF+K`fJ;EH-YoN2Yp}khEW2?8AZ=i0M^GmMtk}8Lfxy{G?A#xDVEw{&no*sMtQX0c49wr920#*cuN7bkgC0nZ&d&Cn1a;%824 z_zVmwfXTayE}*fiFg`?_&qx`xkCx3RQ6I3U0I$wPuhr z7xN_w%=|Pr>z_nQun}iWpmVRh;F3Nnz*HlbiZH6sWp2H3*;ru53vRpDa0(=!%UVFX zogi{KL_U0J%H?ct4XkwM@(ewI<^^2dXOfedGxt{{Wo|Z=E2tg?=Jc8?>`E2PN#;)4 z5{d0yx#DA!0Bv9H@i1zE?`ZDnf3aYGFSz${M83^wCM>Vwj311|+WD`z+IjIn$uzF^ zf*WwO8TYvpRpjJEmAIc?kQlBK&sLKfR;yZlp@2p&Q?)%30T%D1atv_;v&~ZtyS{}; zT%w8#awM6_s+6M>f&aFtQoYNlqWP+Idw&O;@=|qRR&Ow)mFl()ofEy-sH(Y3rO3Fc zs<}rGZg$|McX>d^oxDXH*{D@x-nBu;D|xrdL?G9nAL~;L=5NLa@2mnFlf_SSBzeUz z=jUYqOBC9~$47<|m%zto#F6e}`FURC6Kfd1;NcHoy)5~)wLQtOcoS9_|Ku}9lL0yA znJ}b;-~Wq#M-->Ao0KIbY~>Fq}i$XsUexqE|wU(ER2a%xp+8NdHD z$@qIQf1pbe^(KcuaKRRcoX(d=t|9#!8jxWhf61BNclEIejZg0IH_wny<)uy}|fy z6@Ia!L{zTAoa#r^lFLHEKT*IbJ0ZFHI+(+FVe!-*93^!&`!e2 zP%3%Z5h1-ZW%PKRuJ>96Y9uO%Y^G=>nr<)&`1|0Il{{$1%PIo z@YR9zJ~qsRpDToKwrRkK#iG!)j%GL~3MqtVABe(sKVacjQT>p5TWKR|dtCz@;zWxi z0~wB&XnBMZc;qemIuJK(>%>um%K&|r7<`@1bF~yh8+9h9Y%Y#Bnm;E)*(A;tRaBb6 zV&Z5jWuITg6#wQlULD1)>7Pi~H^r7qAkx|)5!_GPZKc19^o6~ba{W?h_ zbCQ9flcnG;GC7x88dpm_8g*Qn8B8UOJKcb+seO96+|1Y}Kw4cyVu)`dt=-rUEU-Y@ zaKC_N&|Yby&JS#OPpN?lW}>wDd}~r;q;zzHFVOh4bn-SO?zK@WT6hm=VlO=mb^uc! zkRJZkm$0++sO|}2weX@k)Xk%NYj=Anl=&O!@lSUeNr(Wn?OJcc{qh7L$BKzj7UimLo zqVW`U`a$AYRhoLgv<$3gy!w9=sT1y})P*-fz#6SqpIb`@WbRa-Pkar$_Lh~xDxlC- zZqh9d%rRBAEL%+-^^)7q_zigKAa@z+M>9$z_fFVNRGBaLF{6anin5!PkxD!>Kpw;z z5y?-R9rz&~X=V!$27V@53TSz3mGPra<8&pEp`l zi5>6DW%iVT*DJX)flAC2xppVnMn!`Br7vYVa;JtH-~~1~SY!B3_q}_pX}8G{a4yz# zKTa>Qd#v%iKnLH+GU3y0nxM@EV55K1giUz@%yQL)y{`hBovxYW#glEwnsEOj^2H2| zF}$*jNIggs{^=u?`mQE&49%SHeKb)|_JCPCYG!;}1m;?+iS?x6ICp_&t``L`Awjcw zIdNr3m}Xa?1+ZzPCMWDBamZYg`;HQ_*rmx2Is$Bq)*Q7HfR{d+Y5msiqga8+s7*wqqSM`|+$ zts$osw3~PN0h9B!Tl?0KFS#}#<2q`0t)Qh^Xs+GoqJT|psXbOgnX4kTC;Qg{hf1_X z`-xK*F9H+gt_YUc_T>HSsgBGC-?F0XxNezch_-(rO z1OJNT=c#L4bB$Q;qicGI18WzpYc;=~1I=`;SCA|#UN<0fF4eWJr8VT%U0vs@#^mJZ zb=|tnq68-EJO`?Q*&#abQ%_*Tl~~=dA~&$!lXb!CD02C4UBod76JO*;BWv?Fm}E_UMjQQwu_5-7)&4 zz~uwF(*ua@em1(ZBX0rL?z-XwbiVyfT?wQ2!@ojTswU^^wOm)aDwZ~_Fx^G_fn=Z` zbXPA~0owz0Pu~$KOWNt4&k7;6^wYhG$)`2opsqHUTB1_)%FW$Wk*oTayQ$KJdr zkW_s{bIR;i3w`W|Dqwh;ezrRW5EiQ6wC)|)`1Sf7;ZgL3wnm@rUI6qwr2k|5a4;8* zzVNLraU{F}*(gqb`a~J9U(uhRJQ1wN5`EbO`aAHozT9X*)B0tC{@F`n@x*BTi%|Mu z+86yBXFu}l4f>kHeqc7DBGomf)+8v+%d3FZYNf>#l4U@&(o&rRR6kNWB_;y-HcF>g z88j3V6+83RV8Kn5-r6PP7wZ+bDw4D3W~G1fVp>V>D+5!gce9ydY`C~6E4~})#qF;u zL!VaA+VEDHR-frBgA$cpN8h5Sl^LqTB)k5~{8T!4c5`L^t1QYqOi7BRCAe){CEdJU zHEBxbCu)U53lk1gDSI{s5}B_k1y|C5A08?<&3~fLh*ruYi5$^sg;9BtNToYct-MO5 z3N$^e)U={aYt|g)V{RVl`9J0Ja0;wvCqtuAv><6q4Xw_0B3X_xwDrj*x!pFnwM(LZ z9kep^FQ!jJL>YYJ$?<-SFpQ&FfkY?6_@#td9)`&m&(i%94fC!$(PDMbuxt}Y!!77v z!*VGK5K{~rn}-lNz8X%^ltbTXhEql&WzWurt7+M^Bu_V7GrvcR(QU)akAA?qP{Ri^ zh2(d^P}^%X{jWo9sLhQ6>nM<`By~HK+o)^fL+bW5-s#!VEf1}TUdyF#i#>hl=*+TL Q`QJm?cqu CAudioMixerBoard - + Personal Mix at the Server Personlig mix pÃ¥ servern - + When connected to a server, the controls here allow you to set your local mix without affecting what others hear from you. The title shows the server name and, when known, whether it is actively recording. När du är ansluten till en server lÃ¥ter kontrollerna här ställa in din lokala mix utan att pÃ¥verka vad andra hör frÃ¥n dig. Titeln visar servernamnet och, om det är känt, om den aktivt spelar in. - + Server Server - + T R Y I N G T O C O N N E C T F Ö R S Ö K E R A N S L U T A - + RECORDING ACTIVE INSPELNING AKTIV - + Personal Mix at: Personlig mix pÃ¥: @@ -386,49 +386,49 @@ Grp - + Alias/Name Alias/Namn - + Instrument Instrument - + Location Plats - + Skill Level SkicklighetsnivÃ¥ - + Alias Alias - + Beginner Nybörjare - + Intermediate MellannivÃ¥ - + Expert Expert - + Musician Profile Musikprofil @@ -711,7 +711,7 @@ - + C&onnect &Anslut @@ -816,17 +816,17 @@ Välj kanalinställningsfil - + user användare - + users användare - + D&isconnect Koppla &ner @@ -2757,7 +2757,7 @@ CSound - + Error closing stream: $s Fel vid stängning av ström: $s @@ -2892,47 +2892,47 @@ CSoundBase - + Invalid device selection. Ogiltigt enhetsval. - + The audio driver properties have changed to a state which is incompatible with this software. The selected audio device could not be used because of the following error: Ljuddrivrutinens egenskaper har ändrats till ett tillstÃ¥nd som inte är kompatibelt med den här programvaran. Den valda ljudenheten kunde inte användas pÃ¥ grund av följande fel: - + Please restart the software. Starta om programvaran. - + Close Stäng - + No usable Ingen användbar - + audio device (driver) found. ljudenhet (drivrutin) hittades. - + In the following there is a list of all available drivers with the associated error message: I det följande finns en lista över alla tillgängliga drivrutiner med tillhörande felmeddelande: - + Do you want to open the ASIO driver setups? Vill du öppna ASIO-drivrutinens inställningar? - + could not be started because of audio interface issues. kunde inte startas pÃ¥ grund av problem med ljudgränssnittet. From c6112da2ffbb3ca3c9c4dfd8750a6a423e27c3dd Mon Sep 17 00:00:00 2001 From: Olivier Humbert Date: Sun, 13 Sep 2020 09:34:39 +0200 Subject: [PATCH 563/936] French translation update (see #77) --- src/res/translation/translation_fr_FR.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/res/translation/translation_fr_FR.ts b/src/res/translation/translation_fr_FR.ts index 56eb4c1026..27f427ead9 100644 --- a/src/res/translation/translation_fr_FR.ts +++ b/src/res/translation/translation_fr_FR.ts @@ -468,7 +468,7 @@ Alias - + Alias @@ -817,7 +817,7 @@ software upgrade available - + mise à jour du logiciel disponible @@ -1090,7 +1090,7 @@ Update check - + Vérification de mise à jour MUTED (You are not sending any audio to the server) @@ -2889,7 +2889,7 @@ software upgrade available - + mise à jour du logiciel disponible @@ -3090,7 +3090,7 @@ Update check - + Vérification de mise à jour From 59465ad0b64626a8da49ad4e10946a12d6e42454 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 13 Sep 2020 10:38:14 +0200 Subject: [PATCH 564/936] fixes Minor calculation error in client.cpp #584 --- src/client.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client.cpp b/src/client.cpp index 4dd9d58216..4190645861 100755 --- a/src/client.cpp +++ b/src/client.cpp @@ -1204,7 +1204,7 @@ int CClient::EstimatedOverallDelay ( const int iPingTimeMs ) // network packets are of the same size as the audio packets per definition // if no sound card conversion buffer is used const double dDelayToFillNetworkPacketsMs = - GetSystemMonoBlSize() * 1000 / SYSTEM_SAMPLE_RATE_HZ; + GetSystemMonoBlSize() * 1000.0 / SYSTEM_SAMPLE_RATE_HZ; // OPUS additional delay at small frame sizes is half a frame size const double dAdditionalAudioCodecDelayMs = dSystemBlockDurationMs / 2; From 086b88da79590c6d51b6b5c93013b785de7a5601 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Sun, 13 Sep 2020 17:23:03 +0200 Subject: [PATCH 565/936] bug fix: pan is not correctly initialized in the server on a new connection (#537) --- ChangeLog | 2 +- src/server.cpp | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index e4904531cd..f184b7d633 100644 --- a/ChangeLog +++ b/ChangeLog @@ -25,7 +25,7 @@ - bug fix: Alt+h shortcut to open the Chat dialog did not work, use Alt+c instead - +- bug fix: pan is not correctly initialized in the server on a new connection (#537) diff --git a/src/server.cpp b/src/server.cpp index 2deb9177f2..fafc8a078b 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -1509,15 +1509,17 @@ bool CServer::PutAudioData ( const CVector& vecbyRecBuf, // reset channel info vecChannels[iCurChanID].ResetInfo(); - // reset the channel gains of current channel, at the same - // time reset gains of this channel ID for all other channels + // reset the channel gains/pans of current channel, at the same + // time reset gains/pans of this channel ID for all other channels for ( int i = 0; i < iMaxNumChannels; i++ ) { vecChannels[iCurChanID].SetGain ( i, 1.0 ); + vecChannels[iCurChanID].SetPan ( i, 0.5 ); // other channels (we do not distinguish the case if // i == iCurChanID for simplicity) vecChannels[i].SetGain ( iCurChanID, 1.0 ); + vecChannels[i].SetPan ( iCurChanID, 0.5 ); } } else From 9b09681c8803d44402b3f4cf776635613aabfb49 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Tue, 15 Sep 2020 17:04:16 +0200 Subject: [PATCH 566/936] added code provided by jc-Rosichini in #591 --- src/chatdlg.cpp | 26 ++++++++++++++++++++++---- src/chatdlgbase.ui | 7 +++++-- 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/src/chatdlg.cpp b/src/chatdlg.cpp index d553a998c3..cf5481d8d5 100755 --- a/src/chatdlg.cpp +++ b/src/chatdlg.cpp @@ -106,8 +106,26 @@ void CChatDlg::OnClearChatHistory() void CChatDlg::AddChatText ( QString strChatText ) { // add new text in chat window - txvChatWindow->append ( strChatText ); - - // notify accessibility plugin that text has changed - QAccessible::updateAccessibility ( new QAccessibleValueChangeEvent ( txvChatWindow, strChatText ) ); + + // analyze strChatText to check if hyperlink + if (strChatText.contains("https://", Qt::CaseInsensitive) | strChatText.contains("http://", Qt::CaseInsensitive)) + { + int indx_http = strChatText.indexOf("http", 0); + int indx_space = strChatText.indexOf(" ", indx_http); + if (indx_space==-1) indx_space=strChatText.length(); + + int cutslash = (strChatText.at(indx_space-1)=='/') ? 1:0; // drop "/" if last character of url text + + QString new_strChatText = strChatText.left(indx_http)+""+strChatText.mid(indx_http,indx_space-indx_http-cutslash)+" "+strChatText.right(strChatText.length()-indx_space); + + txvChatWindow->append (new_strChatText); + // notify accessibility plugin that text has changed + QAccessible::updateAccessibility ( new QAccessibleValueChangeEvent ( txvChatWindow, new_strChatText) ); + } + else + { + txvChatWindow->append ( strChatText ); + // notify accessibility plugin that text has changed + QAccessible::updateAccessibility ( new QAccessibleValueChangeEvent ( txvChatWindow, strChatText ) ); + } } diff --git a/src/chatdlgbase.ui b/src/chatdlgbase.ui index 876256af11..9dff0ddf64 100755 --- a/src/chatdlgbase.ui +++ b/src/chatdlgbase.ui @@ -33,11 +33,14 @@ false - Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse|Qt::NoTextInteraction|Qt::TextBrowserInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse + Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse|Qt::TextBrowserInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse - false + true + + true + From b09c44fe4b9a6417311a0259dfcfd7096a18acc1 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Wed, 16 Sep 2020 18:54:34 +0200 Subject: [PATCH 567/936] update by jc-Rosichini (https://github.com/corrados/jamulus/issues/591#issuecomment-692995596) --- src/chatdlg.cpp | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/chatdlg.cpp b/src/chatdlg.cpp index cf5481d8d5..ce0863cf0a 100755 --- a/src/chatdlg.cpp +++ b/src/chatdlg.cpp @@ -107,18 +107,26 @@ void CChatDlg::AddChatText ( QString strChatText ) { // add new text in chat window - // analyze strChatText to check if hyperlink - if (strChatText.contains("https://", Qt::CaseInsensitive) | strChatText.contains("http://", Qt::CaseInsensitive)) + // analyze strChatText to check if hyperlink (limit ourselves to https:://) + int indx_http = strChatText.indexOf("https://", 0); + if (indx_http != -1) { - int indx_http = strChatText.indexOf("http", 0); int indx_space = strChatText.indexOf(" ", indx_http); if (indx_space==-1) indx_space=strChatText.length(); int cutslash = (strChatText.at(indx_space-1)=='/') ? 1:0; // drop "/" if last character of url text - - QString new_strChatText = strChatText.left(indx_http)+""+strChatText.mid(indx_http,indx_space-indx_http-cutslash)+" "+strChatText.right(strChatText.length()-indx_space); - - txvChatWindow->append (new_strChatText); + + QString URL_name = strChatText.mid(indx_http,indx_space-indx_http-cutslash); // as entered by the user + QUrl URL = QUrl::fromUserInput(URL_name); + + QString new_strChatText; + if ( URL.isValid() ) + { + new_strChatText.append( strChatText.left( indx_http )+""+URL_name+" "+strChatText.right( strChatText.length()-indx_space ) ); + } + else new_strChatText.append( strChatText ); // no change + + txvChatWindow->append ( new_strChatText ); // notify accessibility plugin that text has changed QAccessible::updateAccessibility ( new QAccessibleValueChangeEvent ( txvChatWindow, new_strChatText) ); } From cd6bb137e63578359bed173dfa1e9e6997255717 Mon Sep 17 00:00:00 2001 From: ignotus Date: Thu, 17 Sep 2020 12:59:17 +0200 Subject: [PATCH 568/936] Update manual.md --- src/res/homepage/manual.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/res/homepage/manual.md b/src/res/homepage/manual.md index e605eb5365..d900ea0813 100644 --- a/src/res/homepage/manual.md +++ b/src/res/homepage/manual.md @@ -1,3 +1,5 @@ +( en | [es](https://github.com/ignotus666/jamulus/blob/master/src/res/homepage/ES/manual-es.md) ) + Jamulus Help (Software Manual) ============================== From cf0f0499143c4902a94ccc1c53dec9dc30f2d6ca Mon Sep 17 00:00:00 2001 From: daryl Date: Thu, 17 Sep 2020 13:05:46 +0200 Subject: [PATCH 569/936] Add manual in Spanish --- src/res/homepage/ES/audiochannels.png | Bin 0 -> 7342 bytes src/res/homepage/ES/audiofader.png | Bin 0 -> 7218 bytes src/res/homepage/ES/audioquality.png | Bin 0 -> 6951 bytes src/res/homepage/ES/bufferdelay.png | Bin 0 -> 12370 bytes src/res/homepage/ES/bufferdelaydependency.png | Bin 0 -> 25445 bytes src/res/homepage/ES/bufferdelaywindows.png | Bin 0 -> 7053 bytes src/res/homepage/ES/centralserveraddress.png | Bin 0 -> 1620 bytes src/res/homepage/ES/channelmapping.png | Bin 0 -> 16923 bytes src/res/homepage/ES/chat.png | Bin 0 -> 67859 bytes src/res/homepage/ES/connect.png | Bin 0 -> 119654 bytes src/res/homepage/ES/displaychannellevels.png | Bin 0 -> 1818 bytes src/res/homepage/ES/faders.png | Bin 0 -> 44871 bytes src/res/homepage/ES/fadertagtooltip.png | Bin 0 -> 51716 bytes src/res/homepage/ES/fancyskin.png | Bin 0 -> 5219 bytes src/res/homepage/ES/indicators.png | Bin 0 -> 11725 bytes src/res/homepage/ES/inputlevel.png | Bin 0 -> 8245 bytes src/res/homepage/ES/jamulusbannersmall.png | Bin 0 -> 51016 bytes src/res/homepage/ES/jitterbuffer.png | Bin 0 -> 12908 bytes src/res/homepage/ES/led.png | Bin 0 -> 5645 bytes src/res/homepage/ES/main.png | Bin 0 -> 323009 bytes src/res/homepage/ES/manual-es.md | 215 ++++++++++++++++++ src/res/homepage/ES/mediawikisidebarlogo.png | Bin 0 -> 5540 bytes src/res/homepage/ES/newclientlevel.png | Bin 0 -> 6514 bytes src/res/homepage/ES/profile.png | Bin 0 -> 22350 bytes src/res/homepage/ES/reverberation.png | Bin 0 -> 8501 bytes src/res/homepage/ES/settings.png | Bin 0 -> 43510 bytes src/res/homepage/ES/soundcarddevicemac.png | Bin 0 -> 10691 bytes .../homepage/ES/soundcarddevicewindows.png | Bin 0 -> 5256 bytes 28 files changed, 215 insertions(+) create mode 100644 src/res/homepage/ES/audiochannels.png create mode 100644 src/res/homepage/ES/audiofader.png create mode 100644 src/res/homepage/ES/audioquality.png create mode 100644 src/res/homepage/ES/bufferdelay.png create mode 100644 src/res/homepage/ES/bufferdelaydependency.png create mode 100644 src/res/homepage/ES/bufferdelaywindows.png create mode 100644 src/res/homepage/ES/centralserveraddress.png create mode 100644 src/res/homepage/ES/channelmapping.png create mode 100644 src/res/homepage/ES/chat.png create mode 100644 src/res/homepage/ES/connect.png create mode 100644 src/res/homepage/ES/displaychannellevels.png create mode 100644 src/res/homepage/ES/faders.png create mode 100644 src/res/homepage/ES/fadertagtooltip.png create mode 100644 src/res/homepage/ES/fancyskin.png create mode 100644 src/res/homepage/ES/indicators.png create mode 100644 src/res/homepage/ES/inputlevel.png create mode 100644 src/res/homepage/ES/jamulusbannersmall.png create mode 100644 src/res/homepage/ES/jitterbuffer.png create mode 100644 src/res/homepage/ES/led.png create mode 100644 src/res/homepage/ES/main.png create mode 100644 src/res/homepage/ES/manual-es.md create mode 100644 src/res/homepage/ES/mediawikisidebarlogo.png create mode 100644 src/res/homepage/ES/newclientlevel.png create mode 100644 src/res/homepage/ES/profile.png create mode 100644 src/res/homepage/ES/reverberation.png create mode 100644 src/res/homepage/ES/settings.png create mode 100644 src/res/homepage/ES/soundcarddevicemac.png create mode 100644 src/res/homepage/ES/soundcarddevicewindows.png diff --git a/src/res/homepage/ES/audiochannels.png b/src/res/homepage/ES/audiochannels.png new file mode 100644 index 0000000000000000000000000000000000000000..1981e01d358f65fcd86bbebcb71a27ba40a19710 GIT binary patch literal 7342 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 literal 0 HcmV?d00001 diff --git a/src/res/homepage/ES/audiofader.png b/src/res/homepage/ES/audiofader.png new file mode 100644 index 0000000000000000000000000000000000000000..f06b3bed88f3bae9316c9f280dba6beebcf16dc1 GIT binary patch literal 7218 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 A-T(jq literal 0 HcmV?d00001 diff --git a/src/res/homepage/ES/audioquality.png b/src/res/homepage/ES/audioquality.png new file mode 100644 index 0000000000000000000000000000000000000000..db11b9ee07ee9f53517f4354a5a2e394d9e968d0 GIT binary patch literal 6951 zcmZX2WmFX2_V&a?cXy|BNGYI%bPXvWAl)$_((u>c zz3;tut@nI5>)Crh&)#S6Pv@LS&6i39xYW1+0DwRlBCiDipn(2h5H{wY{dQ;u6#&33 zgM-1E%3v^1)7i-iZf^+yKq6Dqu%Oy-@_{dxQ#70?D9;OpWyMfR<|j*oV-qyxa2SbY z`oi$ze(DpGpjZNw;6dgnePR0bz#xo6QVUJZ{_dcPicz$*`X(Ru%R}j%?fdaDzsHlV zlP&QbRGDK-xspm*79ohW*@kiWa%_j5O9rZpWVFM#Ca8L(z zp=q)2sT1#c(f!>{=168u{+4H<^`J!4v=L}0v)B0|&)N(YF)h)Aj(6!io!NcP0l|5C zd!BUX+xNh$#ye2bjxpxKF`p|sv4HG0JJ0DRxX9l5*atibrKWiI28jRklJ>=03Tboa zML8$?xgNtkWOp8(WJvVwT3_3z$ny^3caqY}28Tl$xca-&L*N{Z5$q?c*>QK>+oFM6 zWc5Eufh!Ee0N(%_9xQxQ)P&S2^TsLbEH~w~I(hHL2jP*0{9g9OEUwz-q^ba` z@s%G{e*Qkc)nv~QcC6qh5A^R4{NFVqJhrF_6_0KvK}A8~+M0-8{;uO_y8U}ph7G>BRg zFD_`KfGh`tqFd)J>93&MpS;9@W~bCK!SSZJK|oshz={Oa5?r_}X2SEnfI~*%K`h)5 zPyrho;kv9G8`dH!nVfd&=3!SZdmhLDG!=^ zQ0JPdCmAhPdC$UI`VKU%(5f}XHjFOp)sT~3(3PM>AS&Av6~fXmK6zeEE;fHCGdnqp zjDrkWfr{pA1uIm%63>l-MJ~2bs<^?1Ju6N~eyKi6w~H8|_jRg=w;(gdo1t?hLj zp#LglE?)2Vo$(NzFkJg9)z8DX4?yR{W zS+2bAyzc1kRPUb3MinU3GhUI3gfxfbhJZuddmMUr%%a%TXBZbrf+KPI#`?5iq)1#O z4pK5wUhA1ba$0g*iF%3F6z`Pa6mXB?EuC$GEuXpKiQ*GAoVY&4NaslMNbx65%s5GgNiUPCSejT=nKd9QX|%~82wb%t z(oiA;S%q|%eVBgOck6yQJ!Js838mF}0*%rc zuZpSE(mB#;ul!a?0X0Eb?!ElQ?EUv{Q51surJBqNM^es`CgxP$vJDT2~%9@!&5KgaDE>}txG1c|X49&qOy^2&3 zZjHFKTi;j`wuEc?a`l<4$R;Qn)LAj}Tm}$hQ ztSE&j38{yut|_;uo2feuD%%B|_l`@ARlm@@rhG=l!1vxBWWH{hWH;q_HV$1)aWHiB zo``{MJGLOI#|~@S1HEFdWzVt5p?D_IHRQSEs~j~P7-{Nh#kyI#uXM?D(eSC60vdAP zjZvE)*>@stsxPc*RI^>PH-!8bsTWxn=a%9)rVYrO4ksHK#offyj8k(5^Bfs0ADcP{ zWyb=yG>=Yyyy{Kd@cfP}P0rH}(k`B+u{O63Jb%8UOhJ==!9`cgrbjf7I!`Z5)k@sT z*J^#dfBf#4;CO?coc=&UOoBIWCGWE&R>rWJP*a@fvE^3t%0Z*>g81O)(cAX;uK2Iz z%M`ya&XzZB`!q)4cjotr?lK>I?(#8r(MvFM4C0LG>pOg}qh*r6=6tOM+D>K_+!Vxj zk9Ug)GlcJkVS~lMEMUE`xzLwk?O|l0kv-{QbwppN3Mso|ZKC@W!W8M_a`e|)U?)*) zspK!t^?uh)8KgGv-`IYeRj!(-Ni^y;bOGU#l9B5$T%>MIR9dOa^B2D;8d%^u^gEoV zReH&5Ezr+Z#%ki2dcE$z0)l!@S#e#g_dzmC?z^E?cyZjNafK#n@Oc zns8w+`^sgtA31H;y0z~dUmb^Yn!R2;PdOLbBDnvF1cSTeyMX?tRY!Bf3#`}t3$r4pdIDPGrprA1`u$i!CoWF1_E6L1Z#n&yJ_%Crh@TOCWt$uJ`a3 zC|Jd==*%fLxCq^9_k4Yy-%WLnjBsBXA-kN9DsN|1jb9p5)Gio{`z&wY?9s%~)ChAr zwYa`^&HrTi?f@EZsWIYEwdBw_*LmbOax=dAuFVBmd$3$}nQ`g3a`}06o?+_I)O0Ig z7iFh=u(u@KiNR7L%e!L_XIr^j`$IX)L`t5{W7*~Fra>)N$4R&PTd&FU0q|kr{Fn0k z2RD%uj4g#B)!B46rZOgLrDY`_lNwLKyR1iVTaHJfJ!$rp-7eAV@{RoEjkS$lCk&_Z zRR{mN(}zK55M_0T;|j3xw*^vzN~kpy`R3Fdsx1`P2Stw zgG;G?&7#B5gnVsi0Cb3>0$5N1w%h>u$o2(K-N_#k(yBkDkw5MvURXGP*pn%vK=%_u z(Tocr@8N?uS_#PYlYSpnqkYsgtj^rap)eq!QWq;LUsXp7h(`VSdg9kF=-#hitxrl8 zhyX^X+1W$ZC4P7SjgmaA_m1&^yQ&A&ZFxYG2gr!(&lNTY4%K(nS634=cXHq|vv7i0 za(Ozu{d1!Q03Eh++YUau5=)&}`B>yjuyrqk|GyJV9+{qF6H?JAY$<0*~1o~U(KkHxTwDg4k zx00jFzuWrLAot%0H!l|t_kVK#kxKmaifO_$RW{>jR1 z=c><%@apCAz`2c$&29h$6(ul0rhtg#^su-6+sr>!0243*@&o%1mdXDED<-%DHD!Q6 zVq$sbGvZ~6<-|Z_tuEMx28!55_*{RT zqi{9f{5&<_CwZk^&VNu$nMg9G=<-bA#@ei47p@dfg1AC%9Fa*5Hn$2CmSWv2=v~Se zyJQke3xT^UHPfX`1XR_})U@TTjDl#^m_>;$jq{ zSjmIm43Ch^NomVKDGMHcJblC_<(hUQ%;?dr`Qz#5ROjXL{T%(#A+edxf&|J_?6+qP zNhD2iB11f=>mk#!7JU)nbX3oIong!vJO;R2-IJS#5pJsTIw!SqXIbc*x_Nsf0c9iz4R0<=!QgG~3_t}&vkT5u>WR#o^FPqDF3j6_a(3Hn>NA&77?6M1$(`O zK}j3#!os$XDS;XTRl|J|PD+?+;Ac}nvEtiDQP}GJ4weKNw0&-Ht8et9Xndw5WT*lx z>rPNNw5%Jq!$cqYrLl9VBU4R?+cQzLOrXDid=g}**qUpMo$=~75kaF}P{Ud>s)QIz zz=*`9JPx^CQh}Eselr#CsT<v)A%9!yyTds+nJ4y#99|D|; z7reuDG5H?WK6g_ku1OrA<>Mm`t$c``p3RLA$bTwdQs+ z^=iX)aAml=ObOl8uS(IEZc^r2h}ZiVfv@xVRfzuPW+|G_T!9L=wgJC;sXSw6$%>Gc zivuGn+7NrgCrERtXap|4oTesled@fB2`pDcP+*`JQPC$ih^gl1CAB`dh`srm_H6iY zW0BRAY6Hi91fz(*(Sf30!euE^Rsrl9veNsQPnwh8zwzI~I zC3>3~{VeG-<5y$;rtmR#K5Z$Bj%RsUr9Bj@2B%tyk#SaU@&s0*H+NH?9Q5C~Cv=#9 zLM5SU_yQ!2Fpi*9$A9u+r)7$?Kk%;qRAe(HOkp;|k+G5Y6clSaAm3#wYYX%?5d#|kTp4Up;a{(k39KYP1zeUFr6 z*$%5B?Ii~n7)cB+t<+e?AiCszB72L4?bHU8v>3+ZUdAD3h4B0CRe_nM;Va@@|C5uU85b|Cu8=`UYcTzwa$hq^AESwG6h1^b~%${COpmErG8bN ze)(iB;&;aEDn{qv8zThYBiqYYa_)u zLjL4Aa+4o@)?ec*a&oz%rbceX1yjQBu}Q>L5QWuCLgVkN)v=d{9WK_W%$+Wl|Xra_Jlo|1_=MfWU{(h4W#i z)nr@?J+F!eFsrY9#fftQV@fEGheJCu!d*%kbL88q*Tb)}Csr}6tbP(CSx(f6?Ge~l zu=k_|U+4>}=0#qDU}hd}0{wA7lL_8y0&s$P?nomy{qlQUBCYJG1o)RNDG72si`Mpf z3J32SIXbCiD@;_dT%oQi;eN2L8h(hf%!crHIaX~&IHiK#jsF=7n$Z++X7LK0o86zr=;8AM8DoW%d9E zBu1uWOtZAZktZ3u7)rO9-d{|Q%jj0CQR*xw7{6+QfExJr#?h^CP|k`(%R$cF3Fpv#^zPN#qs66Z$(rLNhsFj zCaZkwDf4-IX1$;Q{U}T&g1Babi460E#%g0zE|(i_1;5 z@+}-yCtM?$vm#ZTCw^f?W7o}2h8VqmI<{r>MWz(VT>ntza(ARpu9wu};+YInqR82n zjz5Wt42PYpF*6Gi$?o=Q+oRZ8QL1N>jw(mA617t$zTAkw^^ggW#Puy!3X~+YY7E$w zG#pxQXvtK2iU+&+sN6UTf>|cDQX^D2J^?{!?$$eKi>{mH1LkWzp`NVLScd!UrB@L% z`4~FBhw;K{XS=c!)6>@Ba8hx-f(}+N?(TY}Frlg#})vyMc%aeOh-%zhb z-K{yU*C>>>_tx`Lw{jZfTcn0gCQ<{e4kINi;f@qwP%_kF{g|!#uCfq?fS~!iTG{w> zcwg-$`cD?y3#2Z`1xCnu*GZ~xR8o+yypz676ZvQQ3jdF%Ri$mdNxCbhT-h$vkv>nD z8n|1H8dCh}u{@wmGALMmm6`mmj{3c6o7Y;BlB7pR91q}4IT|MFHxoa2lGZLhCe115 zZE^@j4->|zg81f62E_Qn`SSF`A`D0-Z3H4BBD&8A8Z16M)s$IeAQh1L_8CJ&UjvbG z6YS|GOC2kg5-)N5a;^x0;RS?+KEbd(!a>+E%2?NFa^tj?!?CbBF8BCw z-Sb03PSBKKrfNc41G+WTwvPpqNxP~W)c767pC&hU4|0;yd$pD>0)9L$crgM-McO7f z=&l!+MYqX((n;?KwOE(5%$6I?yI=@@%T9LkKr}8e{PZCD_Mx7f46Y1W;wRM@*IwFM z=J2@1KQpP)gE3-!ctLcer0a{Ws~a3zp+Iec{e3Wugm5V$0XGlXf7YHS4~YrMNJVEJ zMap+iv#)SnBv!LV&$es!Y$rwR4|1Y;@axa?=gpk2vjL4lqE4tuT9_Fc1l#o`#PQ9V zD0-cm)6kvPd(4^gddKlO8|OI`cQ<)B7KAbPPtQ6H1PIAJ|+u_5(CL##kb|TQPY92q4 z#^H8&6IcXQZpAohcAFX-g4FNh#3))Qg4p@squ)-Je)I=WoqGWp8seEon}?HL-rG;a zfb}B3#cc|xB{ERu1-U3m%bzB;zIFP3FCul|cKC)NGFkUUMHOZPACS{>cVJzE*z#ZbDSaJ{Tu1af1fVA9Ler~<+05Hr*9%r z%z|zm9M~_5*vhr!Ccdf~rs&cmJt}RW;TCuWSRw*LS2vo6@Dj2!!nNVlw?@p&;i1TP{why2n*AF>NV=1Y-p5&ZnT*xX)>wUJHA80q;?`XY#QeX>dBUV2WG3AB=Hr zRk53M_hlYbrByHvR!S9Sl-Hv$xUZ(c$4Mdj(%hibDn>>w)sy;!L!HC~x5G6Q6m0C% z@RQT$5OX9w3yy(h#(OTWBSTkn^LEIm9w_<~oLTg`ZyWakAx0J7?R3Cl2s^_U>1#qK z`qlRb?4wA^Z^ljO6za##qJ1)GXebXSG!k>YFfg6Ob}vlcgbw3Dj$9LHFm+ynR+Ib~K^snEwAH`ZDHW^N(^}oFxgqS9l6n6T~_6C zg5FUme>a|g-{wsXnwg)y2y=t!ZfQv0hwz&B|GJ?C_p5jJl+KA5)x~pR(z0Revr&$9 z^1|pJxD{doBh17sSYcy1p&1#?vAML#<(BsVf4)RoEh1z7aD;rr1c_;_jj^$D{sH6D zw9$(F3O&-L9+R0FR!w5F= zBRRRb!{40TIq^BVHLhFSV4^tJeIHKWz*K}lC*scLx?>m=6*tE`i~#+wxi-4?&JMWU zFGB6C26{N14-aBC`eQea4J<8L3=IuU*IGWl&dC#rl#&a$FK)^iUF{z-xJ?|4^fG%n zWGD@5BT1fBZ}V5AInEkn7k@@leH;_Ml#&rY-lg6LferVm-`TC>Z${EC_l;ox`!|YJbmw3^QOHZ#z6i{rQ1bHU#JdxJUTgakdP=*j#FWf` wFf}uUVNRJ$f%M;Jp0o*FVYZBE0`SydoaKXHc$eV%-`@gdg_rWRa;8E52mOW?WdHyG literal 0 HcmV?d00001 diff --git a/src/res/homepage/ES/bufferdelay.png b/src/res/homepage/ES/bufferdelay.png new file mode 100644 index 0000000000000000000000000000000000000000..2f08e50feaa34f53880a1dc3ff10911b09a4af99 GIT binary patch literal 12370 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

pP=pwF?ul`yrN-h=L6Ua+-IO6e@OdF!sk?c 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

Tormod Volden (tormodvolden)