From 18f89d204d2aa7625b209b91d9918efcab85ff27 Mon Sep 17 00:00:00 2001 From: ronso0 Date: Sun, 13 Jul 2025 00:08:48 +0200 Subject: [PATCH 1/7] (fix) Avoid engine freeze when loading a new track while scratching with waveform or spinny --- src/engine/controls/ratecontrol.cpp | 7 +++++++ src/engine/controls/ratecontrol.h | 1 + src/engine/enginebuffer.cpp | 6 ++++++ src/engine/positionscratchcontroller.cpp | 10 ++++++++++ src/engine/positionscratchcontroller.h | 1 + 5 files changed, 25 insertions(+) diff --git a/src/engine/controls/ratecontrol.cpp b/src/engine/controls/ratecontrol.cpp index 29389d678ff9..cff8052a8199 100644 --- a/src/engine/controls/ratecontrol.cpp +++ b/src/engine/controls/ratecontrol.cpp @@ -628,3 +628,10 @@ void RateControl::notifyWrapAround(mixxx::audio::FramePos triggerPos, void RateControl::notifySeek(mixxx::audio::FramePos position) { m_pScratchController->notifySeek(position); } + +void RateControl::resetPositionScratchController() { + // Resets the scratch state to avoid engine freeze due to insanley high rate + // reported on track load while scratching. + // https://github.com/mixxxdj/mixxx/issues/15082 + m_pScratchController->reset(); +} diff --git a/src/engine/controls/ratecontrol.h b/src/engine/controls/ratecontrol.h index 25fc39573088..ba8e5d605586 100644 --- a/src/engine/controls/ratecontrol.h +++ b/src/engine/controls/ratecontrol.h @@ -77,6 +77,7 @@ class RateControl : public EngineControl { void notifyWrapAround(mixxx::audio::FramePos triggerPos, mixxx::audio::FramePos targetPos); void notifySeek(mixxx::audio::FramePos position) override; + void resetPositionScratchController(); public slots: void slotRateRangeChanged(double); diff --git a/src/engine/enginebuffer.cpp b/src/engine/enginebuffer.cpp index fbf4e67c0712..34b9d36c5484 100644 --- a/src/engine/enginebuffer.cpp +++ b/src/engine/enginebuffer.cpp @@ -627,13 +627,19 @@ void EngineBuffer::ejectTrack() { if (pOldTrack) { notifyTrackLoaded(TrackPointer(), pOldTrack); + } else { + // When not invoking notifyTrackLoaded() call this separately + m_pRateControl->resetPositionScratchController(); } + m_iTrackLoading = 0; m_pChannelToCloneFrom = nullptr; } void EngineBuffer::notifyTrackLoaded( TrackPointer pNewTrack, TrackPointer pOldTrack) { + m_pRateControl->resetPositionScratchController(); + if (pOldTrack) { disconnect( pOldTrack.get(), diff --git a/src/engine/positionscratchcontroller.cpp b/src/engine/positionscratchcontroller.cpp index 4533cdb5d3b7..c52b8338dccc 100644 --- a/src/engine/positionscratchcontroller.cpp +++ b/src/engine/positionscratchcontroller.cpp @@ -329,3 +329,13 @@ void PositionScratchController::notifySeek(mixxx::audio::FramePos position) { // distance traveled in m_samplePosDeltaSum m_seekSamplePos = newPos; } + +void PositionScratchController::reset() { + // Resets the scratch state to avoid engine freeze due to insanley high rate + // reported on track load while scratching. + // https://github.com/mixxxdj/mixxx/issues/15082 + m_pScratchEnable->set(0.0); + m_isScratching = false; + m_inertiaEnabled = false; + m_rate = 0; +} diff --git a/src/engine/positionscratchcontroller.h b/src/engine/positionscratchcontroller.h index 21135d3f461b..47592b483cb8 100644 --- a/src/engine/positionscratchcontroller.h +++ b/src/engine/positionscratchcontroller.h @@ -33,6 +33,7 @@ class PositionScratchController : public QObject { return m_rate; } void notifySeek(mixxx::audio::FramePos position); + void reset(); private slots: void slotUpdateFilterParameters(double sampleRate); From 16e7853d66d1c4ea9e77e94dd4df01e25513b59f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Wed, 16 Jul 2025 14:04:30 +0200 Subject: [PATCH 2/7] Retire Ubuntu Oracular 24.10 The support has been dropped --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e3287cb04b14..de5be3aa457c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4016,7 +4016,7 @@ if (NOT CPACK_DEBIAN_PACKAGE_RELEASE) set(CPACK_DEBIAN_PACKAGE_RELEASE 1) endif() -set(CPACK_DEBIAN_DISTRIBUTION_RELEASES jammy noble oracular plucky questing) +set(CPACK_DEBIAN_DISTRIBUTION_RELEASES jammy noble plucky questing) set(CPACK_DEBIAN_SOURCE_DIR ${CMAKE_SOURCE_DIR}) set(CPACK_DEBIAN_UPLOAD_PPA_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/packaging/CPackDebUploadPPA.cmake") set(CPACK_DEBIAN_INSTALL_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/packaging/CPackDebInstall.cmake") From ae3bd624c6daf7bb4d96c3f2a53fa340756c4655 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Fri, 18 Jul 2025 20:21:35 +0200 Subject: [PATCH 3/7] Pull latest translations from https://www.transifex.com/mixxx-dj-software/mixxxdj/mixxx2-5/. Compile QM files out of TS files that are used by the localized app --- res/translations/mixxx_ca.qm | Bin 402204 -> 405459 bytes res/translations/mixxx_ca.ts | 585 ++++++++++++++++++----------------- res/translations/mixxx_fr.qm | Bin 491802 -> 491890 bytes res/translations/mixxx_fr.ts | 62 ++-- 4 files changed, 329 insertions(+), 318 deletions(-) diff --git a/res/translations/mixxx_ca.qm b/res/translations/mixxx_ca.qm index 5a6bf6f1d9c19293642ef4b5b0da57f036d6b419..69b1aebc2f6d411b09a29bb92ce09661ccafe27a 100644 GIT binary patch delta 20213 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 delta 18489 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 CP}>#& diff --git a/res/translations/mixxx_ca.ts b/res/translations/mixxx_ca.ts index 455ace5ec3f7..7fef0949a8e8 100644 --- a/res/translations/mixxx_ca.ts +++ b/res/translations/mixxx_ca.ts @@ -294,12 +294,12 @@ BaseSqlTableModel - + # Núm. - + Timestamp Marca de temps @@ -315,137 +315,137 @@ BaseTrackTableModel - + Album Àlbum - + Album Artist Artista de l'àlbum - + Artist Artista - + Bitrate Taxa de bits - + BPM BPM - + Channels Canals - + Color Color - + Comment Comentari - + Composer Compositor - + Cover Art Portada - + Date Added Afegida el dia - + Last Played Darrera reproducció - + Duration Durada - + Type Tipus - + Genre Gènere - + Grouping Grup - + Key Tonalitat musical - + Location Ubicació - + Preview Pre-escolta - + Rating Puntuació - + ReplayGain ReplayGain - + Samplerate Rati de mostreig - + Played Reproduït - + Title Tí­tol - + Track # Núm. de pista - + Year Any - + Fetching image ... Tooltip text on the cover art column shown when the cover is read from disk S' està recuperant la imatge... @@ -3868,12 +3868,12 @@ traça - Per sobre + Missatges de perfil Antics Contribuidors - + Official Website Lloc web oficial - + Donate Donatius @@ -3929,7 +3929,7 @@ traça - Per sobre + Missatges de perfil - + Analyze Analitzador @@ -3974,17 +3974,17 @@ traça - Per sobre + Missatges de perfil Executa la detecció de la graella de ritme, la clau musical i el ReplayGain a les pistes seleccionades. No en genera els gràfics d'ona per estalviar espai de disc. - + Stop Analysis Atura l'anàlisi - + Analyzing %1% %2/%3 S'està analitzant %1% %2/%3... - + Analyzing %1/%2 S'està analitzant %1% %2... @@ -3992,22 +3992,22 @@ traça - Per sobre + Missatges de perfil DlgAutoDJ - + Skip Omet - + Random Aleatori - + Fade Esvaïment - + Enable Auto DJ Shortcut: Shift+F12 @@ -4016,7 +4016,7 @@ Shortcut: Shift+F12 Drecera: Maj+F12 - + Disable Auto DJ Shortcut: Shift+F12 @@ -4025,7 +4025,7 @@ Shortcut: Shift+F12 Drecera: Maj+F12 - + Trigger the transition to the next track Shortcut: Shift+F11 @@ -4034,7 +4034,7 @@ Shortcut: Shift+F11 Drecera: Maj+F11 - + Skip the next track in the Auto DJ queue Shortcut: Shift+F10 @@ -4043,7 +4043,7 @@ Shortcut: Shift+F10 Drecera: Maj+F10 - + Shuffle the content of the Auto DJ queue Shortcut: Shift+F9 @@ -4052,47 +4052,47 @@ Shortcut: Shift+F9 Drecera: Maj+F9 - + Repeat the playlist Repeteix la llista de reproducció - + Determines the duration of the transition Determina la durada de la transició - + Seconds Segons - + Full Intro + Outro Intro i Outro sencers - + Fade At Outro Start Esvaeix a l'inici de Outro - + Full Track Pista sencera - + Skip Silence Salta els silencis - + Decks not used for Auto DJ must be stopped to enable Auto DJ mode. Els plats no utilitzats pel DJ automàtic han d'estar aturats per activar el DJ automàtic. - + Auto DJ Fade Modes Full Intro + Outro: @@ -4139,50 +4139,50 @@ Reprodueix tota la pista, tret del silenci de l'inici i el final. Comença crossfade el nombre de segons seleccionat abans del darrer so. - + Repeat Repeteix - + Auto DJ requires two decks assigned to opposite sides of the crossfader. El DJ Automàtic necessita dos reproductors assignats als costats oposats del crossfader. - + One deck must be stopped to enable Auto DJ mode. Cal aturar un plat per habilitar el mode de DJ automàtic - + Enable Habilita - + Disable Deshabilita - + Displays the duration and number of selected tracks. Mostra la durada i la quantitat de pistes seleccionades. - - - + + + Auto DJ DJ automàtic - + Shuffle Barreja - + Adds a random track from track sources (crates) to the Auto DJ queue. If no track sources are configured, the track is added from the library instead. Afegeix una pista aleatòria de les fonts de pistes (caixes) a la cua de DJ automàtic @@ -4396,37 +4396,37 @@ Sovint ofereix una graella de pulsacions de major qualitat, però no serà prou Si l'assignació no funciona bé, proveu d'activar una de les opcions següents i proveu de nou. O sinó feu clic a Reintenta per a detectar el control MIDI de nou - + Didn't get any midi messages. Please try again. No s'ha rebut cap missatge MIDI. Proveu un altre cop. - + Unable to detect a mapping -- please try again. Be sure to only touch one control at once. No s'ha pogut detectar l'assignació -- proveu de nou. Assegureu-vos de tocar només un control cada cop. - + Successfully mapped control: Control assignat correctament: - + <i>Ready to learn %1</i> <i>Preparat per a aprendre %1</i> - + Learning: %1. Now move a control on your controller. Aprenent: %1. Ara feu anar el control en la vostra controladora - + The selected control does not exist.<br>This likely a bug. Please report it on the Mixxx bug tracker.<br><a href='https://github.com/mixxxdj/mixxx/issues'>https://github.com/mixxxdj/mixxx/issues</a><br><br>You tried to learn: %1,%2 - + The control you clicked in Mixxx is not learnable. This could be because you are either using an old skin and this control is no longer supported, or you clicked a control that provides visual feedback and can only be mapped to outputs like LEDs via scripts. @@ -4660,123 +4660,129 @@ Heu intentat aprendre: %1,%2 DlgPrefBroadcast - + Icecast 2 Icecast 2 - + Shoutcast 1 Shoutcast 1 - + Icecast 1 Icecast 1 - + MP3 MP3 - + Ogg Vorbis Ogg Vorbis - + Opus Opus - + AAC AAC - + HE-AAC HE-AAC - + HE-AACv2 HE-AACv2 - + Automatic Automàtic - + Mono Mono - + Stereo Estèreo - - - - + + + + Action failed La acció ha fallat - + You can't create more than %1 source connections. No podeu crear més de %1 connexions font. - + Source connection %1 Connexió font %1 - + + Settings for %1 + Settings for broadcast profile, %1 is the profile name placeholder + + + + At least one source connection is required. Es requereix com a mínim 1 connexió font. - + Are you sure you want to disconnect every active source connection? Segur que voleu desconnectar totes les connexions font actives? - - + + Confirmation required Es necessita confirmació - + '%1' has the same Icecast mountpoint as '%2'. Two source connections to the same server that have the same mountpoint can not be enabled simultaneously. «%1» té el mateix punt de muntatge Icecast que «%2». No es poden activar simultàniament dues connexions font al mateix servidor que tinguin el mateix punt de muntatge. - + Are you sure you want to delete '%1'? Esteu segur de voler esborrar '%1'? - + Renaming '%1' Reanomenant '%1' - + New name for '%1': Nom nou per a '%1': - + Can't rename '%1' to '%2': name already in use No es pot canviar el nom de '%1' a '%2': Aquest nom ja existeix @@ -5102,139 +5108,139 @@ No es poden activar simultàniament dues connexions font al mateix servidor que DlgPrefController - + Apply device settings? Voleu aplicar la configuració del dispositiu? - + Your settings must be applied before starting the learning wizard. Apply settings and continue? És necessari aplicar la configuració abans d'iniciar l'assistent d'aprenentatge. Volue aplicar la configuració i continuar? - + None Cap - + %1 by %2 %1 per %2 - + No Name Sense nom - + No Description Sense descripció - + No Author Sense autor - + Mapping has been edited S'ha editat el mapping - + Always overwrite during this session Sobreescriu sempre durant aquesta sessió - + Save As Anomena i desa - + Overwrite Sobreescriu - + Save user mapping Desa el mapping d'usuari - + Enter the name for saving the mapping to the user folder. Introdueix el nom del mapping per desar-lo a la carpeta d'usuari - + Saving mapping failed No s'ha pogut desar el mapping - + A mapping cannot have a blank name and may not contain special characters. Una assignació no pot tenir el nom en blanc i no pot tenir caràcters especials - + A mapping file with that name already exists. Ja existeix un fitxer d'assignació amb aquest nom. - + missing perdut - + built-in integrat - + Do you want to save the changes? Voleu desar els canvis? - + Troubleshooting Solució de problemes - + <font color='#BB0000'><b>If you use this mapping your controller may not work correctly. Please select another mapping or disable the controller.</b></font><br><br>This mapping was designed for a newer Mixxx Controller Engine and cannot be used on your current Mixxx installation.<br>Your Mixxx installation has Controller Engine version %1. This mapping requires a Controller Engine version >= %2.<br><br>For more information visit the wiki page on <a href='https://mixxx.org/wiki/doku.php/controller_engine_versions'>Controller Engine Versions</a>. - + Mapping already exists. El fitxer d'assignació ja existeix. - + <b>%1</b> already exists in user mapping folder.<br>Overwrite or save with a new name? <b>%1</b> ja existeix a la carpeta de controladors d'usuari.<br>Voleu sobreesciure o desar amb un altre nom? - + Clear Input Mappings Esborra les assignacions d'entrada - + Are you sure you want to clear all input mappings? Esteu segur de voler esborrar totes les assignacions d'entrada? - + Clear Output Mappings Esborra les assignacions de sortida - + Are you sure you want to clear all output mappings? Esteu segur de voler esborrrar totes les assignacions de sortida? @@ -7306,138 +7312,137 @@ The loudness target is approximate and assumes track pregain and main output lev DlgPrefSound - + %1 Hz %1 Hz - + Default (long delay) Per defecte (retard llarg) - + Experimental (no delay) Experimental (sense retard) - + Disabled (short delay) Desactivat (retard curt) - + Soundcard Clock Rellotge de la targeta de so - + Network Clock Rellotge de xarxa - + Direct monitor (recording and broadcasting only) Monitor directe (només gravació i retransmissió) - + Disabled Desactivat - + Enabled Activat - + Stereo Estèreo - + Mono Mono - + To enable Realtime scheduling (currently disabled), see the %1. - + The %1 lists sound cards and controllers you may want to consider for using Mixxx. - + Mixxx DJ Hardware Guide Guia de maquinari de DJ de Mixxx - + auto (<= 1024 frames/period) - + 2048 frames/period - + 2048 frames/periode - + 4096 frames/period - + 4096 frames/període - + Microphone inputs are out of time in the record & broadcast signal compared to what you hear. L'entrada de micròfon queda desincronitzada al gravar o retransmetre comparat amb el que es sent. - + Measure round trip latency and enter it above for Microphone Latency Compensation to align microphone timing. Mesureu la latència total i introduiu-la en la Compensació de la latència del micròfon per tal de sincronitzar el micròfon. - - + Refer to the Mixxx User Manual for details. Consulteu el Manual d'usuari del Mixxx per a més informació. - + Configured latency has changed. La latència configurada ha canviat - + Remeasure round trip latency and enter it above for Microphone Latency Compensation to align microphone timing. Torneu a mesurar la latència total i introduiu-la en la Compensació de la matència del micròfon per tal de sincronitzar el micròfon. - + Realtime scheduling is enabled. La planificació en temps real està activada - + Main output only Només la sortida principal - + Main and booth outputs Sortides principal i de cabina - + %1 ms %1 ms - + Configuration error Hi ha un error en la configuració @@ -7455,126 +7460,126 @@ The loudness target is approximate and assumes track pregain and main output lev API de so - + Sample Rate Freqüència de mostreig - + Audio Buffer Memòria intermèdia d'àudio - + Engine Clock Rellotge del motor - + Use soundcard clock for live audience setups and lowest latency.<br>Use network clock for broadcasting without a live audience. Feu anar el rellotge de la targeta de so en configuracions amb públic present i una menor latència. <br>Feu anar el rellotge de la xarxa per a emissions en viu a la xarxa sense un públic present. - + Main Mix Mescla principal - + Main Output Mode Mode de sortida principal - + Microphone Monitor Mode Mode de monitorització del micròfon - + Microphone Latency Compensation Compensació de la latència del micròfon - - - - + + + + ms milliseconds ms - + 20 ms 20 ms - + Buffer Underflow Count Comptador de buidat del búfer - + 0 0 - + Keylock/Pitch-Bending Engine Motor de bloqueig de clau/Pitch Bend - + Multi-Soundcard Synchronization Sincronització de múltiples targetes de so. - + Output Sortida - + Input Entrada - + System Reported Latency Latència reportada pel sistema - + Enlarge your audio buffer if the underflow counter is increasing or you hear pops during playback. Incrementeu el búfer d'audio si el comptador de buffer buit incrementa o si sentiu talls durant la reproducció. - + Main Output Delay Retard de la sortida principal - + Headphone Output Delay Retard de sortida d'auricular - + Booth Output Delay Retard de la sortida de cabina - + Hints and Diagnostics Suggeriments i diagnòstic - + Downsize your audio buffer to improve Mixxx's responsiveness. Reduïu la mida del búfer d'audio per millorar la resposta del Mixxx - + Query Devices Consulta els dispositius @@ -8138,22 +8143,22 @@ Seleccioneu entre els diferents tipus de gràfics per a la forma d'ona loca - + Start Recording Inicia l'enregistrament - + Recording to file: Gravant al fitxer: - + Stop Recording Atura l'enregistrament - + %1 MiB written in %2 %1 MiB escrits en %2 @@ -9431,62 +9436,62 @@ OpenGL. Library - + This or a parent directory is already in your library. - + This or a listed directory does not exist or is inaccessible. Aborting the operation to avoid library inconsistencies - - + + This directory can not be read. - + An unknown error occurred. Aborting the operation to avoid library inconsistencies - + Can't add Directory to Library - + Could not add <b>%1</b> to your library. %2 - + Can't remove Directory from Library - + An unknown error occurred. - + This directory does not exist or is inaccessible. - + Relink Directory - + Could not relink <b>%1</b> to <b>%2</b>. %3 @@ -9670,212 +9675,212 @@ Voleu sobreescriure aquesta llista? MixxxMainWindow - + Sound Device Busy El dispositiu de so està ocupat - + <b>Retry</b> after closing the other application or reconnecting a sound device <b>Torna-ho a provar</b> després de tancar l'altra aplicació o reconnectar el dispositiu d'àudio - - - + + + <b>Reconfigure</b> Mixxx's sound device settings. <b>Reconfigura</b> les opcions del dispositiu d'àudio de Mixxx - - + + Get <b>Help</b> from the Mixxx Wiki. Obteniu <b>ajuda</b> a la Vikipèdia de Mixxx. - - - + + + <b>Exit</b> Mixxx. <b>Surt</b> del Mixxx. - + Retry Torna a provar - + skin Tema - + Allow Mixxx to hide the menu bar? - + Hide Always show the menu bar? - + Always show - + The Mixxx menu bar is hidden and can be toggled with a single press of the <b>Alt</b> key.<br><br>Click <b>%1</b> to agree.<br><br>Click <b>%2</b> to disable that, for example if you don't use Mixxx with a keyboard.<br><br>You can change this setting any time in Preferences -> Interface.<br> Keep formatting tags <b> (bold text) and <br> (linebreak). %1 is the placeholder for the 'Always show' button label - + Ask me again - - + + Reconfigure Reconfigura - + Help Ajuda - - + + Exit Surt - - + + Mixxx was unable to open all the configured sound devices. El Mixxx no ha pogut obrir tots els dispositius de so configurats. - + Sound Device Error Error del dispositiu de so - + <b>Retry</b> after fixing an issue <b>Reintenta</b> després de corregir el problema - + No Output Devices No hi ha cap dispositiu de sortida - + Mixxx was configured without any output sound devices. Audio processing will be disabled without a configured output device. S'ha configurat el Mixxx sense cap dispositiu de so de sortida, per la qual cosa s'inhabilitarà el processament d'àudio. - + <b>Continue</b> without any outputs. <b>Continua</b> sense cap sortida. - + Continue Continua - + Load track to Deck %1 Carrega la pista a la platina %1 - + Deck %1 is currently playing a track. La platina %1 està reproduint una pista. - + Are you sure you want to load a new track? Esteu segur de voler carregar una nova pista? - + There is no input device selected for this vinyl control. Please select an input device in the sound hardware preferences first. No hi ha cap dispositiu d'entrada seleccionat per a aquest control de vinil. Si us plau, seleccioneu primer un dispositiu d'entrada a les preferències de Maquinari de so. - + There is no input device selected for this passthrough control. Please select an input device in the sound hardware preferences first. No hi ha cap dispositiu d'entrada seleccionat per a aquest control de pas d'audio. Si us plau, seleccioneu primer un dispositiu d'entrada a les preferències de Maquinari de so. - + There is no input device selected for this microphone. Do you want to select an input device? No hi ha cap dispositiu d'entrada seleccionat per aquest micròfon. Volue seleccionar ara un dispositiu d'entrada? - + There is no input device selected for this auxiliary. Do you want to select an input device? No hi ha cap dispositiu d'entrada seleccionat per aquest auxiliar. Voleu seleccionar ara un dispositiu d'entrada? - + Error in skin file Error en el fitxer d'aparença - + The selected skin cannot be loaded. No es pot carregar l'aparença seleccionada. - + OpenGL Direct Rendering OpenGL Renderització Directa - + Direct rendering is not enabled on your machine.<br><br>This means that the waveform displays will be very<br><b>slow and may tax your CPU heavily</b>. Either update your<br>configuration to enable direct rendering, or disable<br>the waveform displays in the Mixxx preferences by selecting<br>"Empty" as the waveform display in the 'Interface' section. La Renderizació Directa no està habilitada a la vostra màquina.<br><br> Això significa que els gràfics forma d'ona seran molt <br><b>lents i poden fer servir molta CPU</b>. Prove de canviar la<br> configuració per habilitar la renderització directa, o desactiveu<br>els gràfics de forma d'ona a les preferències del Mixxx seleccionant<br>"Buit" al tipus de forma d'ona, en la secció de "Gràfics d'ona". - - - + + + Confirm Exit Confirma la sortida - + A deck is currently playing. Exit Mixxx? Un plat està reproduint encara. Voleu sortir del Mixxx? - + A sampler is currently playing. Exit Mixxx? Hi ha un reproductor de mostres que està reproduint. Segur que voleu sortir del Mixxx? - + The preferences window is still open. La finestra de preferències està oberta encara. - + Discard any changes and exit Mixxx? Descartar els canvis i sortir del Mixxx? @@ -11743,54 +11748,54 @@ may introduce a 'pumping' effect and/or distortion. RekordboxFeature - - - + + + Rekordbox Rekordbox - + Playlists Llistes de reproducció - + Folders Carpetes - + Reads databases exported for Pioneer CDJ / XDJ players using the Rekordbox Export mode.<br/>Rekordbox can only export to USB or SD devices with a FAT or HFS file system.<br/>Mixxx can read a database from any device that contains the database folders (<tt>PIONEER</tt> and <tt>Contents</tt>).<br/>Not supported are Rekordbox databases that have been moved to an external device via<br/><i>Preferences > Advanced > Database management</i>.<br/><br/>The following data is read: - + Hot cues hotcues - + Loops (only the first loop is currently usable in Mixxx) bucle (només es pot utilitzar el primer bucle a Mixxx) - + Check for attached Rekordbox USB / SD devices (refresh) Cerca dispositius USB/ SD connectats de Rekordbox (refresca) - + Beatgrids Graella de ritmes - + Memory cues - + (loading) Rekordbox (carregant) Rekordbox @@ -13024,7 +13029,7 @@ may introduce a 'pumping' effect and/or distortion. Shows the current volume for the right channel of the main output. - + Mostra el volum actual pel canal dret de la sortida mestra. @@ -13036,27 +13041,27 @@ may introduce a 'pumping' effect and/or distortion. Adjusts the main output gain. - + Ajusta el guany de la sortida mestra Determines the main output by fading between the left and right channels. - + Defineix la sortida mestra oscil·lant entre els canals esquerra i dret. Adjusts the left/right channel balance on the main output. - + Ajusta el balanç entre els canals esquerra/dret de la sortida mestra. Crossfades the headphone output between the main mix and cueing (PFL or Pre-Fader Listening) signal. - + Gradua la sortida d'auriculars entre la mescla principal i la monitorització (PFL o Escolta prèvia) If activated, the main mix signal plays in the right channel, while the cueing signal plays in the left channel. - + Si s'activa, la mescla principal s'escolta en el canal dret, mentre la monitorització s'escolta en el canal esquerra. @@ -13086,7 +13091,7 @@ may introduce a 'pumping' effect and/or distortion. mix microphone input into the main output. - + mescla l'entrada de micròfon a la sortida mestra @@ -13112,47 +13117,47 @@ may introduce a 'pumping' effect and/or distortion. If keylock is disabled, pitch is also affected. - + Si el bloqueig de to està desactivat, també afecta al to Speed Up - + Accelera Raises the track playback speed (tempo). - + Incrementa la velocitat de la pista (tempo). Raises playback speed in small steps. - + Canvia la velocitat de reproducció en petits increments Slow Down - + Desaccelera Lowers the track playback speed (tempo). - + Redueix la velocitat de la pista (tempo). Lowers playback speed in small steps. - + Canvia la velocitat en petites reduccions Speed Up Temporarily (Nudge) - + Accelera temporalment (Nudge) Holds playback speed higher while active (tempo). - + Accelera la velocitat de reproducció mentre està actiu (tempo). @@ -16369,37 +16374,37 @@ Això no es pot desfer! WTrackTableView - + Confirm track hide Confirma la ocultació de pistes - + Are you sure you want to hide the selected tracks? - + Are you sure you want to remove the selected tracks from AutoDJ queue? - + Are you sure you want to remove the selected tracks from this crate? - + Are you sure you want to remove the selected tracks from this playlist? - + Don't ask again during this session No tornis a preguntar durant aquesta sessió - + Confirm track removal Confirma la eliminació de la pista @@ -16495,52 +16500,52 @@ Això no es pot desfer! mixxx::CoreServices - + fonts tipus de llegra - + database base de dades - + effects efectes - + audio interface interfície d'àudio - + decks reproductors - + library biblioteca - + Choose music library directory Seleccioneu la carpeta de la biblioteca de música. - + controllers controladors - + Cannot open database No es pot obrir la base de dades - + Unable to establish a database connection. Mixxx requires QT with SQLite support. Please read the Qt SQL driver documentation for information on how to build it. diff --git a/res/translations/mixxx_fr.qm b/res/translations/mixxx_fr.qm index 1831ed65f3c88ad0812b285fbc18babcb8505666..4b663a50d142a499fb9286fd6c7954f72818484d 100644 GIT binary patch delta 24365 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 z zzF|gGM`wytr*lE;Xe|nBSY^63TNJ$-07^`yI8CG3-E57hl=+D>?rh|7+eAs!HqiEw z#Kl$ZxhA~WRa{!tgPYR&imPlSng`k9Mn~p^e-0Hlbr0Fvh4|ft-7djPlm*v;TH8*P zAL5a4IUw%7+vM=*nz(1hO{-t#ihJkziQ{&O3fGkY9|XQf8ev5BOp>UIaRH^va#3~L z1*F#Q;z6A+Z%i+}DjwcE335bF@vx3{>;!-DXuAXJrVGTQ<99*h>L=cxm2g8meHjYc zrjL@>2X--3TZ?}dG0&iJ;@^9PoR3@;Z(7(iI^7j-)2n&WEHE2>Z!{F-192WawjP-fS0Cfl4tb?Ic7d71J44K zjwh4xPnoxz+dv;&;Kg!h7MXU}1B{$QZH_WSd(}v0a)0i71Tt&GiPVC(WX5v1=0XS3 zd9YJW{hf3*@nF)ij<8@DKxQLh!wX*HG$ekp26f*$qIW+}e`G{uRRx)Unaea|H(5CE z0LiR?ECK_#4`EI`wM~$?An-G__jCd6v!!IynImxAGU`;<0?J$)>Kc&*id_OZwr6K~ zh2(hI7qm7D$;rI|G;wFhX)LeG-yI_72=>YKsres2i%a~cG4tpoL2 z$QGbvQ2*n;pbU$p0saR5gEh|du_JFaGFeT7dUgTTzCR6i{EDlpwlri)A%MG}A)#>~ z-@ZsgRY#2x-Z)o;V8_?<`n!TCb{mBiQQ#_n2SO+O||74b+KQyAc ze?Nuoi)GDviV@Yz_bKc-&;7yU6z;Z|bI}}Hpz!Axc+rCH-k?-A)1trlhQlRVlFA}W z{67?Naydv5P84bN05n%?$*}yjmirrLQ`BKScL#T-6?SZV_wSQoLOo~)YiO0qb2j4; z#Z7z3-Ga9$G1v@DY0x$XS5Y#f1)W zb}warO-BYda0^K`ogByyYI&Fnn%Xm~UqXeOOhF!HNT4DYj@*79Qqdh2izj7M$tt#i zac)$yg-;N>XhY{hD?$A?kIv2C3hGNgIzK| ze^_8d6T3jV3&lUOF63(%lgOp#J=t?sd|D_U?Cd zFK-FA15Ty;k9Pn(tDuU%Ic=D5o2q6Mg7owQs#?f>NV0bidU%N4=*SAH>CZ=G1UXa9 zZxx_?YoI@VJuTw;#hz4p){95vW;?3i%aj|14nAlyG*-y-2WJ*bQlkTx+XC6B{Q}aZh z;^rf@O<6x$Hchejl1z`?{8h6rE~THpq)nOiLTZ;{`h{el;xI{Sw3GBS!tWrjkMy|O|XU6PeVWi>>|Ojb5YWn>h| zN;1kOl0EV}J@@z5>$$gkpYi#e&pGdN&gb?y&@w8}a=nGo4*==|)Hs5)0^zBbPH{*> zon*jOWGf&Yijb`VJREeAxi^t*07e8OZ2(5DM|K1lwIA67#K_&qo*+gAA?-noZi;jO zacebXFJu_9H;Be&Q7kUGOI8e4xDtBNyZQUy*@$Bm0ocK-^Y>T#Gk^m!n(3D8?k>!4ABm zuE>MPiO8eK6Ug%*#+F0g#2dsLppTI_BFq!d!2l!z#JC5U0^|{Xt`R=zi90$;hl@yG zAOnUW{Xje^0yOIkWWAkh`Y$L*O35D#{rh%U?W-o^8o$u^IM++I7a|a_z2+A8;o?;OFUQ# z!e5*NmlZ%<-@A0%;hCD@;TS?uqNnV>*zYxV}6xfjImE@z-l0 zj%Y={s{>hC#yddgsz4$tnYiyT&;!vxJx=K4m$Q&*070*S9=Z&4bVHygdVz52H8LNl z*8rfWKLVXR1n8A`5MuB%SrjNIIRCeLfjGJl=>1ZFt<7|@#rJ^bH3uT%30?=`8aDua z-wMBQALz$;ppt}qfKyc6#NoAd(m9oZe%pmMq5xCT;N0f`Yj7NGr6aI*Xo%+NI)!=G zI;ll_qv_z=L|`3Cfd(Nv2jHA`0oJ=e8p&#%q}6?3ecAyuo?_y#t2)WmCpwvVBrs16kUfepn6tv6gJkUng#W(=nX#*^-6olrl zb&5{gfb9Sfw*LaQrvQj~FB6R+gMl6J0-?;ddLU9D}eX_^T#3So;@)Jvd@Ae0yV2lNhMnWDA z0I69HG8LpLXvtegf#jD15dQ$AXipG!b_WTch*qlx@)Jv-w~E2gZwP?JEfZVa)k&6a zFfr_>iTmp4Il48gDNxng4jO^sr~ zuT%p*aXr*8?gQe>6tFUG1ffN)PTo8i8Xlt{{LY5PHpX8-8cWc)gFUhXGS15I%?5TD*U`I1A>42_K}d1vB!4$a(xfba8w zW;o}3{84C@bp?1(D`?)<9mKP>pt-{f3@AgPg)yTIi0?Om_0Sv)nY+PyxFd2LSVxTo zxEu~G&-eguHxXJ@I|YKxc4!Or0KRMn8=EpekpwnD$anG34#OYmXb$ake=!F-Ou#ws z-3Dx*Cjz^65jrhG;~nM#oo`?=wubo>*W7l>y!k1|1|+P z+a9`R;FB3gf}>3w&|byhxM>4O)oMVWCb-@$B28=+r<0UFZ{pIiCWd90xc8ljnRSe& zgRJ=`-ZFiF9~%mNzE=iv2fv7uHX%MZi9a7F997x!P&42VEqD}Z0-$kc03K_S_^Oy z@%xhO>}gF0mIUPbOjR~Ltwy&b--_0!GM%d;Ld$vz^6zMn_h-N z!Kvu~t=ht%Q=uTFFNQ%k&H-K05(bY#&-E`222Yp+JTnglPuT~gk{Jv!O9goNN++3f z28Q5Bi9$6PvMdU*cUvC5&wi|}2TY!eQhhbOmg7DB- z#)xW$N@FZxcZfzYa=PI~Y;c*;BMeqR)~1-a+i2q9>n3J( zGx1iqiMPM#LyR(RiL>7|HRu!&<<|0mo1kOoNeuyMQk8 zhmp%rczINWkt^^y$9#fOjk7V*A6o~bo}mf+Jqn|Kqv_o7h0#56V6WT5m=cUfTQchz2Fn+`(5CQ}kkDeN8_`&#_K0trWhlwpCf%LirQ_vJ8$pxm5KZd*n z)59(T-?$rmmdAqVy9azOc18K|0cP%f3PxDG9OiDX2a<&V^W8#0v}+80f6;H{b_f48 ze}E521^)xtK!@&y1v&Nc^$3~i_|*Vf*bLUb z(|{$IL+HFj5FWKMG5-{7cvJ+;s~2os83a-dYuLPrg18}6C#e=`VlxYfax|b{{07mp z?|{&CEX3@-2GmuA*ig(*P6xm?$0I;jFNC=F#v;rG9AIbFP+;dfz|Jf?U>6#}t~3>( z(lvNQ)fm4K2xc~7{93g-MdANuke}lvf zR}ij#gG1hvfWEVZ!y`@u-0Ka8b8sr%7QnGo3ax>P zuBVCn3Xx@V*91tEufg8KgIV3-X+e`0) z$bUhOB@T2_JmefN20qII?ngcZ(sU#|sFw`Fv?C@i>;exm@Nz+KBmS7xHUd0bWDPK} zEfkDLCE#WQ1=%?7-bdk8X9DEWcX&N99q68;@Y)ZPBC}`kZqPn}PwnB|f>Pj-kKx@p zl(Kb?zaIK%Ei>1Rw+GVi?siQu9H+RF zzIo~g>`5=d?5P>B+$h1^Ee*t8SA;5uGC-WsOsG~h3i$Q@LiHBtLyxBmHC7d&ZayQ_ z+Kek~fKjjC%ZMq4SFq6R;saE0%Y~N1E&?p5B($85^eYis$(guPDhaLM_yTvTB(!~pE92!A zq5Xp(5Jsp%hc>IY0|6S;M0rfFS66{x@#Sd&O^s>bGn4?8>snE#S zQW$=~A0+Xo;NjX5XYR5v(&HiUhg|Tij21F#q%b9W(UYHfx3%LIT zVb(PPs80jI_m3x#c0}-RatC4KWuq7nTghC#=<5SQ2Xm@U(%j)H)eRr{ltMuj;_RR})s&L1tDI zR;|G(HSL$M>Ig1;Hb4lyfD67`b79@aMrdKq!g{}-z^AVk!qjWPh7T3OJ|zR~NQF%n zD3rdp5MsXDVHKyTuzmVyBS__g2|gHnyH^tuBC;^7*A@~7TZ1G!3P=4=;C$FG94lN1tlBW)czrbe zMW2L|&14L7GBN-x6c9Mxj?vD z;X3e-4TOxiEG$rY3mI8+LE>YCjN&K|$88a=S+xf6iWRP(#Q5n85ebzV8jqhBZgsW> z@%mNaw%7o8$amqk??(`}ju)~ed*CzX2suI=j;diSX z3_ZJrKPRdJA9z_5Lvh?|O%uiEw*k^JMacs*+dm6LDSA85t&2rNB9_FQa>Q~Ytbvxi z70uGl0HMvr|ISwip|hh{ewaUq=WB=+{7OJvYbTm-`wY#XxJ0b>Arn|em{?<75s-3Q z#o7n(!P|Ec>r~7E$#RNV_h2CK<#i*vm|Gg3XNe6@_W(GWA~tgw1j4RDonrJNu~`;o zPrY}D&9%EgdNdHNe-(nz+gc~@aZ_x0=^==N>WQt+qDxwD6x+1vkLmvuvF$4xfT$y4 zyA-^yuw7#N36+6WG#5Mez@?gkdLsl^So02|9p)fL;jW+9!xi;W!Ew?4$ui*AZi@~V zaDu8H6?;|Ki5d1#u{Y+FVt-GuPvBkPTZ_ehZt>{UYwKhe&x-vXS_7YF6kS5G2zKS5 zIG|}L2)nE6BpZ&316C_Q44cG(t0Mq9-4+LJLRYx-nCLczpbvc#CJx_{31osn93G8M zC2gQMdH{Z*<{NSJPPB~TIB`rrT>DvO;<$Y%0$l!z0e**{lS+qFGBN>DV zHN{EAsOR4P6eq7+3B>J*IHmAAum@SlQecB;iBqeh15V;m#J!u_q0ag)?%m!5_~U)z{<8G#@mZZ@$#L<(Lkw>z@!~6_3!3 z06Y4KM;|=|sKRv$^CpYOK4Sdcy;wY1b|VcAi6>{_8gRTQp6Xo}!{ZV0R0iswy@Q8~ zXX-S;faEQnNlM1@&mi$^-$TH&>xySjUj`okNjzU0=hpCEOm4OuYgAjsWV3UVzK7yC|+!XtA4U=L_)RN#vbC;csmeIG!Qd>VY%}}fALz%T%d=a ziZ?7j13PnHywNWhNK|7J6V{10z8(c;J6gOMj6P#jnt0p4KKi6x;_W<)T7MUdIe~Tn zU4M!XdnxEc#)uCmV4cV>NX#vBtqHru+~Kjnrqmbn-Rv>!C5{pE$5jNOPJ6MSQxS-v zKg7Zo1cZhY#lqfL7^u=rEIj`J=;Hcf;TKf$_r1lJsEz5Jo#MN2Goaf~i|?1B;JI^E z{HS0qGuR<`%`zP^-V=}NyGsPdpc*9q%#Gel6^qK^UKUZY{q$@g&WR4{syuqje z;?H25(51HG&r6ugESoC+d|?IjRCDo{KT5&>CWyaw6aq}j5`XQj4&?4Eu{3cQkoge= zTu}K}sYQg5X+TD+gsjFJsB)W7{Q)Krc55z(uRake)(6~M7%eGJAQfX>QQ7;Gs_{M;_v;V~i;KX@-z64tSZbp{8q{cu*>MSJ*cNYeoegQ& z*$Pd})s-}v;sfFXH`4S~GRBYFq}e43v_%?e-V3$p(xnmaYt%Ld6Wdk~@OA=-Z5x!x z*-6B9yg!x)PmxZ4bJ4r+BweSVOIY8FbhAP)-OEV2<>PZZ#F8FGCqWz?OzZ_upf-g_ z6prnEiM`Yl$cGuk!5Qtg!Ybmh6;or2Yoync@gUUdPMl_;yr@{2IIY@-EAyTMaSFke zR%-`wx)%;Y?Lgw1-XF8}BH~)+Tjmy!{zD@`Y@Bam`&i<(u`j^w6=Z0IP#_0Zk)h3w z0lar4!zTX2GQ)B*T<^GCB_n*XTKsrA8L=NtKD8bh)yM{TUKsH_iTdQ`Br@8$BD7_< zyO6Pa&;q7yBjYw=QlHn4OlXjZZhjq^FcS;ynRm#<0U~fInM^(`f>_=uqD#%%#vx=b z%tv3_kIZ!&2lP)2nOk;Sw_52WcDBTC8G4{SFNj}IeW2G1$)a=1KurBX7JFSsN79Zg zUW3K!=P|?>jq>dNVPZ@{KQJK^ioHaZ&|(lj)gVi%twf#plPoDkA*NKa-AAbZMw1OOJ3(+*rIUC6N;aMw4MNcnviT>5*;5@!WUFNWZ#$F7!?7T? z%p+0V=3yD|O)C=h)DMV%9}?T;HNeiRB(5(m?S+)=ipDs*e-4Qs=>x*Mx@33NOc1{1 zM1<6;ZR|u2@mwHcC^>v;2ReYaB+0@IyG38f@p~xa>u)5dURnd`_J^EBflar}AQz5% z1Kr<}T%9?!24ay519L-|i&)K?=&a*W}J?tjAMdl5;!& zn8R#xcM*mn%Ud|)I4&nW$-Txqfj~ua56f8mO&WPH3m@~hImvUvTy&Km$tycwpS|R1 z(OBSDI+15}0>PfmX-A$HV0o&aHF>ee0W+jD@_N1x@cMq_O>G9mY%_WD(GGZ}Lh^PL zI*1|mqzE#Bl&&P7dU^u;;1==TvbNEhd^w8KG2{#RI(-N>Hy4xArdXPaen$SClmYgq zQ`Q7M`OaTd>U#`J$}UtdnrH2!O1~mtpQch})iX>8yHa&-Eby>CRNdYIyM5KDp%wwU z<1f{)c*JhKq!s?6HhI#KR`eSSQiZCt(lkpDj2>HPr8l1e4o15ks>`>tce#7geD3J%#|R%cAw8 z(?O^?kT!7a34G2F+R!E&4Zk{VxCn=7pMf^KTng;R8`{Ln42;}$A8k6hFHq-;v}qug zf=lD^A%9{>-bkB&E06q5TRz7XST~fmnHmdZ@K)O4u_dtWCDhgy?ee%lZC$azn!kj0 z_Adf*vJve%Bon(bFKCYAmslMa=FkaCYsn~$CK7tYkD1?H^RtmsVD8U%SG zodw43AlN;_gYH;fETFUH-ypg#roI|_sE`!udjwtK&k*YS`5C~B6V$gv0GQdF&O={J zuEx-L+3q0DUqa^}#_#1^qkglm0_|RoF4&8;q3Rdug2SHJb~t0==y`Ne)!S(LGBws* zg_(>c4K&*B0(!a)4KiDX$$1^RV*N4~7%=Wxzn>Ljn$>Ex*=bxK-e8tJnU zBts#MDyjh_?J14%K-+LZjvj>dyZ1EaEIJEkcN%kUE(nU1Q9oc`Bj~n@W*}7FOt&X( z0Dklxjq}4ryLumuOTlv5tjTnjKPD%=Yts1D8*z$m(D;OvAp99lcejtgaz-@W8;q?a zAycP-Q&jevewv_@Un-<~zmx)R{F?6nf*TuRtJ4Fac|eC79r559@YPL`s5@4VLKYy` zBMXsf$d|}($ZzP4FCwwT8r*~)SO<85xk!v^!6T6<%pP)NdCX=#kr3kI}xG|{so20|-(bmka<&_sHy$6XMHG}p=dr_f_5 z!+}TqqbK^rWBRsa06me8(sI`_dPgsjri73ZiG#B!FRI^n4`NXwBp4 z`D2Z7Dt6P9Whkg_oT2H%Vu7W!q3Qls*ppW1rR~X>uG!G5B7U!NOM2COFe>heG-GlF zjJ9KF#wHI;dj8UD@jj^V#@W*ADXGAEkE2;-9oo=VI;C>M>8(zwK&N`r?1SeWrIuc>-KLPVX(jx_y&m6IcGF_ad+~_Gb%yfV*ty^s7h|Xw$#ZM~h#8IOZjN ze9RSC(=PPc6BH`by=Z}I#74#}3tBLI5s+akY2k`iAWTm+agjTH^|{Pw-08c0%YkIR zHSw06iMM0u`_$!2Y!Lml-5Pb|3tDVMN7c`Q7GFo{gmC-mEX+~N`On11hrE_7NF{jsJNUU;L4S#M3e z?LdEEkY?T6(BE#@NPk<0mJVHxTC5>0J%X-#VJHKw681NrFc??>q7uWXKC1|oZnkhhoB3Z`~i;#Di?L<6LY%SKgdm~_)fptDv4GWZKS=VuHK##Ox zb{?p=8XaVI8!;Nz*~_|hNXHXTVBN;y1s*KW$!;HJ-438mcTZs5Sq?z$o2>gFOn471 zVBOC}VumMuW!*nvY5UVu)}wqDkUv#ekH?sxc1~dqe{haF?qj`|Hw6;o%zCF;1KV1O zIW~<182pR%O?ZnQZWHTwr#p~0zgWMgcmcdu=Yg1kJA7sR7YRTd&apuYFbpdXbh2+< znOi1~#EL6yXv89H8wO`Ech3MIwo8~tKMb4Q)-jI**vszPi;WD!tSBXdjqg4_XnAfoY5caKMUT~bCd9{s;Q7Kt z??G(B-@!%@Iwr8m1SNgXNH%3I8rzy?Y-*WwA8BOMEK!)WsLQ5VBbz^C)7GOz3zgY4 zROY1nTIRDF{X^JoHq#NOY}gq#GXOK6PK9jtx+H))5PRyF3cMP+|*f6o?=LkZQP4O?~t6{WWgTUi4OSAW;A zl@YkUclohZ{YHThdx@<&?1&e-tCK&R%+_qd-0ev>7J@BgabOV(Y1I$JhySsV_Flj~ ze_|osR{;1dW+A;V0aPa}#E1uif42UH*kY@R4_$Qfyvi)3Y_m*tJRwq8V9+V9w`UVxF_83i(+3e$ArBH~?(y$D-EzqWIm&qE~If{_QfIVvBs8JTaHW^vC@e*BY=G zZ``p~&5OmXIs~*hiEZtP*Snd+b4w>Ze3b3ast#iA8FpX;+V+|(mRQ!x zK5EYr9g=``vSCSEu7J4dAUmFKH4d}6j%5eHyC<>}_5Oiay8=7$Xfp2pn$Av?V6gLW zVW$?<2l9QFPFnn$or=grcd?KqCpn^j;@Fxj!al|=meM`|*y*z@WoQE&u|_)CBFl)7 zX0?sw*d^TTK)=Vc%b$~hwXMdkwXguzLtr<`x*}6cSf&TY{s@1aJgp|ns?h`lxXo_$ zLnre1KD%`Viwys4Shg$yw|>X&3_*ol!7lC`BYO{MCT>&&po&3yVcCQQC)39*% zu=9!uD318VtxyV={YH^5g!vG?8a1o0c#ht7x4OFm*n zY9eOUdF+#m8?al$*tZ~5MSEpdN`ip(yUj}L#$p^OW~CR80+fX7WcfuL){g@?c>)_( zB_O65xp+Mf_b%nm<7CGh5Vo6fvhOPvtLt!MjFy%)g8 z?C0fbVSK2*n3vnV1OzdSm%m|$t@31EvBq+294GKfl@t*6H`FP{cHosAo`JY$1+VOV z4-M-ZH;=?VZ{Tcho@-15dfATG-W3YMg#=!ACBB{##OoL0NKCZn4fKduq?3d-(#cOh z;|;;rFVEc0p$@AGE!a1qz`;MPqGPzQSRR&{Z&;ub63+9MQbPdDBn$QF&O67Qm|2Y%!S z?=s91YojZ9*O85YuGquvw(P(PYbD;T;eQ~^zQ^rd!ht8u;r16R;WpzoChm9Vz1pG; z1Ym1oLpV@P;YP>l-T<|Nxz096L6Zt zo!dzuzOTxi510Xb@X*Qbo#rmN?m)V<Q{`-8X#Xt1uj)Y20%GF2gmwxaZM#SR~El zqYt4`Zu@BBp|O0-mV9h*4d>pi9e`Z=#JzEUD_rl&y?ye5{&eGGC#?h?K9!G~f)V!K zMLxbQZab`Le90#qYKujzfqarPuK&YV_~f;o!1u1_Q}icH;8RXW=X z=*Lvb zNp-%oY@hPuseIYPy=e6nb+V6j`N~D;@UMjORg*G-pPa{61$v{v{K12tq2Gv|#n&(# zv1#S_n(MB(uXPmj$v=H8oE>``L>?#IPQrer0Ge%XTT<)!Qc7b8l}M7-sF25AU(VB zy#;7Q>vx;DH=6Hn5`lHsoBTi$hSKI;c|t}!u*%W=U=7Rz$r*kSM}{x`#Sf3Q1W6so zkG8W0UcQJQlUzYu)t4W8^#X)f{drRViXg!>etMb_jjqKgezpRhu<2=jwr>QMmAmq@ zUS3!x$>S;IahVjjl3Wd#mw7OUJ!+ReTcufumDK$EpB{yC;<5O z>io6mZ7e`l* zznp30KVP{5A3T=-E;kq;@d^LE2y^^xNBHjmWK10YdpHqz^+o(2cHW^+kworqN9&&; zvAN?=!{3wm`h4Jhrb$XvDS$<7Nk!cVvA-p)M*xs+vZP_sLbR4rxsCzAZeEbg?6N^f zPnOJ*%s}{I>>-u^_yojxVNylW6DTy5s!zo^oE;|B+~@&Nsj*IeHCd{;$qj?gd#UDK z%Xaq}ls}U(Ih~~jZ}I&7XG?mP zHOgKmF@{Cx2mDN5sY&@4*m!i8n&e&tLA{}q?&v2qE!)$4r-RgN1@0jrd!%Of_W}R6 zMQY)m4LsnA)bh@FfQqwp3Uh*_mL=n{LN-Kduc9qxl{J6sco$BCym~QsK~#4u}FSLz*M2K4-OsqZ#i zmOYzD{XJ3uW~S?8wl|~!T*f^JkEKDia3rb*OM{HKTl4c7X~to-V`R2o-+g5<>yX~Kk~ zKyI9oCOpdkUiFbQ3)@i4bE>p(SucQj^Q6U-jQEE~JEX;DZ2$^~O9B6(5UJNnT2k{1 zkX4ejWDfxvkti*-&IVS`AT9l31+aavwDN|6JJ$qhRe6+X1MHtaOo*+C};|-hAM4FB_)j9E^TRmC4j!s(w4Avj3I-iEeZHQ$7@Pa zd8j$ROqOD%`vUR2Ds64r7mFa1r0v#YfYdlH#ht+W809X-T}%Y1|3=z@8@cJ_C(M}?Up|OZo|G^WyZ(}sln7Y# zkRqf*Rd9QWOJnKKLaf$~wUG`R-{2nV^-`I1C%MVeiF028b`8_XmX4H82Vt(zBTPDD zgV#CdA)S5f3Pv(zgLHm5#-M(qqzgWCa9gIclyb8zh(9uN;!U^Lx7zfE8YE#&D_S>(tW=lzz^1u?(1Q@i}b)HA6QAYl;7F{ zcbe3Y3L0T7=^P}zUKI|k*9YnKnl`{3yGyShR0MX}LVEq^DDptWpALkp-8%x$S?!PeZUM^ID<>7>pGc?rf8szWp;2Uz|-rpI%5Hd7kbF$I-%P& zzWpGZ&2|Uz(Mq|(1>6Nu#Ye6*{V=K%CYyT>!opyzY`!TGSoVIoN^1-lr`pR^F?-~* zXUf&?Ve#mBKiQ&=7Z8gla;;)dVCmQ7I(uJX6|0q8=ZGuL%T&2e@kihjtIAfpcLCe+ zO>Wp6-RkKEa>EvxFc|8+lN+vH4gAGPx#2sETzy~3jqH+vm-CPt&#i&`a;_c3%H z=q0!4h~ri_MsD!}>jAN+p5Eqx|Kq?P#>#ywH~<^eX@}g`#~MVp zG`a6pj23Y(<$jsy!gA}$u6dXneS0Dg7*h)D=|FkF5zHv=xyl1~j|DO%Pac>P3%r51 z?BP-wghA%=h}(%k7Dq-*>(t2DRvtg(6TqzT^2FzE0J*K?$(@@3omowuJ{p7H&2IAa z130aNnC#Qy4b}$STOG7Sj{JeYd=vW2tZ8WO;cku6OcFUVge0s`LKx%HoSa z*S3^b9l_b5VI+sxF8Bs1L&5ZSuzcI58`~%Nu7A%r~Ot&2eKvESD}vE~*Tq zaf%!j+!hyB6FIsArW2)o|4qf^FU$8Mn`#Oj3QvAQS$El=n*e2mUow+{W^7$_k^Mt=Ktiq zzUTqp+R6J$y8}$!DDN-8m?jLC6Xs!c<6BMnVE3jt1>5C=XE5a0a5?b`hM1?%@pAP~W za78}-ZU=I>e5MgvUPDDb^EVQB(h)hiYAW!`FXRgq@z-dB+sLV>E&+|%E?>sq2k^J$ z<&0Z7Kr^b#*UY}vz^ZC}`C1v5PmZYBwYHJV*KN=dl-`uDPp|{p%S*m~XB7VOZMshW z(?Y&61#d@LCEv)v*6Ei}`NjuKftNNgas4FuCOHOBx>hH9eNw&|a0%dFtbDs1T3UgH zoNb*3F#Efl-6{kvFGU;s)NAGUU1%U=LL<(?sb`4kPJ>jwGT&j8@j9pvBc8-UH5CjTy*=dkbcA73*N zJ(&C_Ar`B6g8V1R0m$iI^50{bK&s^_V*6xN>bVLTg_(ebuZabZ6oNYyXpEOa%Wluu zp|wKajR5}syTbCY)==@XBB3Xt*Uc0OL$5IOlww%*0-)wb6I+Mr6uymCv=QjxV{DZQ zp+O*eK2|Dr!O*|NS*d7`3Gw1`O4Xhynyz^()q3HyPj0AKoI<}85w6rcYz8oVt5R#a z5306Ssfy+JLm)O7t<-tv16)&-`sR3t%1otx@n1{@uIeO_@jCg{xk`gT96#sZN`vt6 z*n!DV8vTsK`c*rnarXw;w`ia=>02Mf4&`-{SvgAcOZc;bz2B5pa~1%T`YCPl&|t?n zD;>s|qXrnbU+HLxEu$F$O2^s?(4yIj?W~<3raLOONkPCT*eZ50mcT+rD&2%qV6GlY z4^-r=-U6k^ky7Bvrxg2u60Gn(QyfE21EI&2zIX!?KcP6ywZs&picWUlO>xQ_kBRbd z#bqKY{NewQ#!?Wz?@(OsTLVkdl>QZP?T6+o{Tq7%F9}u#xM9%D>Z}ZGX9vvxp)&9s z^5g|&*rj~T_VN^WLj;KH&MNMibFhE0R`JkKOYD2Ecnrw|UNcMaTzv=YhT)1=9b0r( z`O26pcs=WpiuXA$%=-E(V~y`#0A22&j774{p31}#c;Ys7m5F0<$KQ_8%EWm;v0-Ab zOe(O$edITFlAG?z6laRX?_!;N(066Z(p^}DZ>LP%g1@PpUtgJ~1OWRtSeZ5re->NY z$wZqwI!V+n6Azjz#w;)?(xc;nMJ_u zf|WV5Q1`vqsra_O1N{0W#W&jy+lTWM|4$N-K@*h)g}8xgZ8gP+8?(u^Gm5dyxyg@| zrJL|qt3^a7J9k}Kb_2ua!C0fR>`p)29zd0#*;r>H3ru`{Kw0@T14y%v$|^Iwk*H}( z@JY;1x7IcB;09%liv^yrL?@@Gln`HxFZFIJp$u!7g(sBtJAML8sHCh% z58P1kP>J%vKiK(;$gn`CgN=%ERKsO7@*2dLw%ZHn?br{Cq_|D4qS?fU{ZI$ik zV?m6*t89OD3-!)4W&01z+@F?L;sP-8MbFd87Cutq{uBZYU#9HrWQnQ83MIbL7!V`I zD@Tj%K#2UVBvpA1@F+|<9`+me&n{L@d^m%V@=msL^05!rt*$6%#ub3DEnGP>0sZ9H zWje`#mCD8XMIc@dR#N+}#Nw!jk~S_9g;*^m{n`;MihfqoUxfm9by6-jLI1%Vl*?VP z5BkYZx!f01i`i|J%T8FUsJ30XwiqL4;RoefP6qH!bCnx;cF>HC9i?P73dJqbM&(vD z+^W>?gmQaEC=SgK<@T&Yz}AE)cPHAT6g(ZF**9!@?w#@^^aTdy6Uy_0C3s(zmBI|H zgZ<~AyqK{QXu(?L#o7s&O8kr%X57P}plw|S^93r;HUCt}9+ zs=H49z*qU8x&rsOp?nD01+EfV5Rr(m53bs zhQ`jq1R-Bj@`*34Vf zRK;`ndf+^jeqRX0CP0n>rs#@d>;-DB+YmRNRle^S%%}@u85md7m4mish z>VL0FG2QrbNUhi=9=KmUwWdFw;99C$>pul}VYXVU7^8mgcWMJ$2I8xEYNH;gYg}Ke z&4&5_uk%xF;fO1=WTS=~-* z&ka}v+!v=hD09*IIjN3YFmI{3TJ1w^0Y1G^`?Q`5-14E?Pbk2Zd`Rtw^%}N%joR-B z_TjIuQeDO+;;xem>VTGL-%~fJgREQz0vz>F2Q@@HJl0(G=ot@W^mlbcS6uS@Hmf7g z;QtO-a!(yS19RVm}Yz>Vv= zt48%S{`-q@>XJpNAeworOR)&bI(}9I<9vX&J*Wm|`r-r>sDY2GgK*484VsBnU5`#` zP&Det0kzZ>@pwZA?A0}G+(3N&R$X(r1X~0b)U{iV0~zpHU00F>G_iuZzMw5gmPFlR z=8g657wVQyM_?=@%u~1YjRE4LnHW0A#C4e_?s=tdxw8Wx@TN}Y601hKgs{6&(Pc?HK8jmIF|+Lp=W-m-*4*V-g`T%hcoYDaoSuxGGYmk_chcb zhlik}@KcZ31p@oIOFec6x7f@NSCbB*8mT={J=MMkZn^VSPiJ4mN@;DK)T2-*zXIwR z@*Y)2MfFVMhnQgHMmYDeG@eaWlReO!EhehTH|Kz0MbwnLD92nbs}~2LeUv;?)7sjj zKWeR}cf@!TUq!vT`4W)XE7XiF)&N#<>W!bvFfmF|v#=G#?(|W!x?R9p`X%+2!)lZY zA?j_zHlP(E)a(VgjjhKuHODFwiv#7=oZz3>{Im!4?k61JhekC&-4aOO)#}rS^?*}b z_1We^)E<4+=M6GJyql*!-;c{^bvw1-fG4Wx6Kdi6G%R7wP+$H_1lFpV`lbVJ!b%#g zzDYR(4Bn`3`=X~aJEXpI#=ozKQj6Oa0?FQ~Q-Y*2;xCTG+G_D5Z`?!QLj9Wd1|W5{ z`ZGQN%Z#z=uUa_ZXGHbSTx=ianyY^&picarul}1{1ia!?^

kkcO59)-w*kr?r7k zPsYOQ0fW5H68CstF)04yL5K=6C|~dale-(#D(C^1h8W7Z;sTkw*--wXaSr|twZu>< zkO0pZW-xD!Lm2+XVE*z0rqrtqRjQ_=fc<8uR$(yy#%h_N#{E)Y>JLLLtk}S-7(?wq z2Y}}(hC0i`(R5}R>Lg(TWIfJMH|`pU&Abd&N0LFPaKg~A0A1ocdqZi(m4K1eO z3iF#{XklCy3Pj#(unx8Z!V(PDr|_pu6}B1L=2ZmtuEfxho(1|o*U&}E!>M>@up1VN zF0h`V`*SRr!L(+|))!ZKNfSeO*LT3Lgc-uItq6-GL-@JwKx%F>Y-)s2 zZFxDvmbvJKxvgQ#n>egGJwl?4`)px|vcc-f=Z=Qx-8eNvV+=7aK>#(@ZqN_tn0AJ^ z>R5{Y`pgjbI~n-U3lWQ)8yUA5;y+?8{i=##cl>i8vGyh&e5{k--D%jrr8U4ogJJ)3 zTm!4G8WPfQ5&y_EBu380tr2O4L&wo#b_5v?Jw$a{afRV+u3Za@h&`Of_7vX#&i5nBl@*)M9hr7%pbI0=c}-km~yoM6XQ4x+Q!-N@zdOqKsy&3J{`vT z)uBd);$LlnroAwH&cMa`IneOa?J&TpFNU89IB}}>uJe?%tsK)*U05^AzSmbJH?0HNpza|-=!*Z?S>mLB)s%w?nSH~7)saDA? z0AR>ft;(ssK$>6Gs;_e?WDu%GYISek)`B9GVVUBGbVcwDP@aWnqPe~@N1EfZLy_L^0E1>E2c6ST(uUqBo^L~AC- z;;xX#TC;1Vz``bL&HkF9H*Bo6c#{Zp%mmH)I_e48QnN110M`GF*7_F((eNW;WdGVm zTdm_gjFxtLwJt4Pfo)6Dy4A|TVo7VQCyH;Oy{415S+3cange_0p*h&!!G+sX>t&7} zp}d3E%NGsyx1-j(W)mPijGE(!;UJEwuQ`T)!Tn~%I>n~tbdqLgH75_0TT=#VPSFl1 zi&iCS&S}`zyE;X4F-PCnvPg4nnhMmPXoH4^;$EExI)$JHI!VSyZBP(aSxXDF!H1G@ z|G{(<_ZMhGEpW?kNrX0R`cV-3wAVa5a9Vv7%_9Z(t-E+2cOchmBlcMXU9(&B^!kW~ zYVD#Qh)DsO*D9=FCXdm)E?)v6uCeCzcq5icEVMC|`{NH%f;I0Ap1{2sWz)F z>f~7`G~X)cu(ve7u{O7{HFi3uYV!ui0-u?n%@@(K9#_`pTgKx)0#|MRv|J2Nb+!4% zBn(?)wfQ(@kpEZnKmP{HB}tn9iW<@C9r1TGZpyAogCbMbGYoO|9NqbTTgOU0t=9 z-s6FfpQXi2#OeguuWh|B9@vA{TCDNqc+9OswQcip=;r>>w#$jYyw_?wx{Sj5i=(#Z zU>LSUChFw3qP2Z>?eMn)L$m`wQL3F{+M&NFReVadq}!!Hj-+X)o~#CVXsexWQ5MLP zwe#)MfXrQ~UDS)p&$Np-u)$(HtEClK1DkqLGp37ZrL}HpWn?bHb@EFw+LbZyfPR>! z-RS)lt$DF_^Wjo}QFpZLb?BByJl3)!+Th~vsNHFh0piz1T24rPAkSuMch6X2G2xbW zHy0~kOVYG^t?fXF?yueJcO68R<=XwlF~E76cK^s{j9#CN+Jjo?Et*(r4}Gy7^UhOy z6deLmwISN$RDyT@4T%>Rd``>H#}WGPuJ+{LSNzXFU9_i9&|99pt`%VImlvHtT4Pmv zjaE1kZK!KU?ZrA*pjBM8H`UB=N?K}fUA~~ZuCKk1ZURCVTdkO5(JtP&Mn7On?`p+6 zih#YJs(rqX@$G*tTzy>4_ZL6+-tYGt>YSrwEmUSqDcQorNIwr5kv62J74lSB%yXiv z7*gi7R@DFK2TE)^R3hXD z^~I?Dw+eL0_pmL?QrFgCyS+lA^cs!rUJCVA{27}6endpEA{8y}i1Iy;Mog0|KUYPp z-!FBir`Y~r1gP1*Xc;X2G3_FD)TRr~(H`IGAY7aw8f|uq%!8w`^F*oR4e5_v%6-AG z_W{}kE(YD$dbG>x4ch2Zbcpf+b^S{0S|}@%Qj70sk)Yk3hdpfiiv8a=!=7WsULBrc z&+XrVnO!_OjuQ_Rz5yLm8bH~$9D4-{J?ydoT@TiR{&+Tia7ohB;bXC{nGa|%2tV9l zEp+j_IAEKE!TVfsK$fknOal%Swo~2K2?x7}NSjYR4mmE-V`Kr22#`8g{3gLhvH$qX z@}dc}1WUnY!A}KS1d{|?Wkw(kM|>t)n@}mJfVRO7M`lEW=5`gm)_8znauIqpC4ph# zR2;RX4zy>BsJxwKLhY<2j-ECPl!b$F>~Oj90VO!j!k7ZOg+(}SOFn3) zcjLGk8A4Dh(Z@LgwA4cMStn1F;fcNptHBUH2S2fw(vnp(PS`GfV`nZ-{K^${%Ra-2 zLNTazUg+m5U+g>_1KJCL{7wc2v^mzF)d>uD5^8P!6pUE>01Wyr7_nWn-<5E|x++l1^Kn^H3&6`iaoGiP=}R}qs6D*_ z4sAx`id%_7+BKpvUG8v%4p%uy)bk<`V@FMp8%e;pIv*(wTr{EjupZY=vXsqvBCgHb zDKW-m{L0rxqMsVv7$G;hBpNp!m$Bh4{V{QP5vcWhag)Ul5--oiO;aRAevpfsJ*xmL zPMc6Gc*lra4JW~nvl)}RlMLRzhsj3qc+H0~S#oRT$9cHp=@o$ZSC}I4oo;;*rgs%l zJ^Tarbe9|1>WCS?4wF`oEX-WqBGJ^JxUX5}$2u;?{Z68Me&)D8Msl>=0^BcW$*6;i zF>94G=!?F?Lz`Pc-^KVCbG~!~^?Vi{z9M)o8S}prk7uzQkA?37^)Tb{F``sa2eEKi zi7erIJeji@w1|ONG_)V6-HWkkb$?KrJ@Ax;aC}Y2@JwRjYK+wz^^Y2vNFDbMWSQp)+-Ju_C1&)c9j~ z8@d9t{S>QCOD^R48mp-av~8hVUHt8h=>=GKItcXf&+z`tMF90t_^?%SzumpDVZ6-m zs`1#kbSc2LFl?-oVvTn)Hnm8(J7PP&ukOpwVn)+B?lh(A4hmqUkATT^Ar4Q>whvV{TV46tk zQ67D?L}=al;WT8NENt2)8X{YY7ITz__AijSt{-_`9tw(8D~*^fL`3g&8tE*lTTT>t z&FCkE=>6o?B3n>woe8ytc{Hl6M1<#lq>s~%04#h?-gQPx34qqo*ySFwsdb?7o{K?I zH_`ZfVLBH5P7|&*fM&CSCOnP-UHE01^j;R|Yj)G*L?6&vZOH$d6zL%AL;lAlNBX3i z0?I@*uHRC?Euli~Y-oyu#5o3)rW|OLFy#aV?m7d8Vt)#}DQ;w(GX)!`$dl|mNmFY_ zOWW~o3Yq&WKvF8rX4x_P{J`PRnU!`z+91X-6@-LQt&3D7ILPGdh}98|C+0I#FDtSaaADGOlr# zSk$_d*7%A{x|Eqv_ad3T+ABJ-aRPnyd@$(0&!dFxg`n;zpoC}El1$dn*77pYrfHOP zLzJ%~i<0x@b9SYa#5^el=1@wVaEVKcXs4V`s}A<3?~lq5y1|>$MumdG*^kn{7b-CG zijmS^N^6MQQOf8bvW5e+f3H2L&Ic)bYbvP9A9U!$BcQXLNO?CSzyRTtuSytjco7|Q z=`S_ACMxI`4TcbVDhL%(o!97iC*cKr!c3?Q_oEXq8esM|5{H>1rp5_?|qW zYZkSl?L;?R#q8ooQF-tq(C(k5TZd&OT&L0PHzN%9E>UF%X-WMeh$_#@6UTi*Ree_h zv5`KA@JZq}pr8#50#u?IU5S<0sL*ojpMD zcA$Gd-3DD>UoxG9kQz&mpNC4f&K-JsECOJBH8pIJm2hmN#-JVmf%()_A}d%^LVtfL z;RSz8uPO_Lr*B33waEHCu<_Pm<5qx$uXMGGS!4mIvDRv1GdMr}fJ1cluhr6J=_<$o{D$=|- zgQJc_fa>xKuXGR%`)wl|z3V|4c!*;(5zN#Oj{EGnv;tn|gkWxLY!WzZv5yC899i(J^0|3-9yJm06(moyEJ($_l*B<=y4d zBG;rk?X8s{pY+~n3&T`%$Zmuh5 zJrmn7kKlu413}*!&)L^Kq?D94n{y<_*V|R`VaeU~nZ5Yvpa$`q0eozLJgLK8deCnh5ZBF_$lMl3umze6xcXr*(x1 zb&H8_j(BtOViMo#COb!uFurZ{3;^vw23N{)jLL0KuFPH}DRdkD?cpwfCskbamm~$= z>$zrXA?SbqiEHNf2ZQ&oTzgn-<>*STbCdHgKCk4uU#mdf)Q9hXEB^FWCO?Sy1(daI z`0+_8PW&*2pY)Oyxq6oCw@YZfB7vK(bOjg|#4a!PP7-T(a@JnX*%n9N#>*U@8#XTtlJm2?#3j&Tn4!mxm3Bdyc?6u HzIFZ|g>#<6 diff --git a/res/translations/mixxx_fr.ts b/res/translations/mixxx_fr.ts index ed3709f749c1..c36373d0b7b4 100644 --- a/res/translations/mixxx_fr.ts +++ b/res/translations/mixxx_fr.ts @@ -3676,7 +3676,7 @@ trace : ci-dessus + messages de profilage Auto DJ Track Source - Auto DJ Source de piste + Auto DJ source de piste @@ -4660,123 +4660,129 @@ Vous avez tenté d'assigner : %1,%2 DlgPrefBroadcast - + Icecast 2 Icecast 2 - + Shoutcast 1 Shoutcast 1 - + Icecast 1 Icecast 1 - + MP3 MP3 - + Ogg Vorbis Ogg Vorbis - + Opus Opus - + AAC AAC - + HE-AAC HE-AAC - + HE-AACv2 HE-AACv2 - + Automatic Automatique - + Mono Mono - + Stereo Stéréo - - - - + + + + Action failed Échec de l'action - + You can't create more than %1 source connections. Vous ne pouvez pas créer plus de %1 connexion de source. - + Source connection %1 Connexion source %1 - + + Settings for %1 + Settings for broadcast profile, %1 is the profile name placeholder + Réglages de %1 + + + At least one source connection is required. Au moins une connexion de source est requise. - + Are you sure you want to disconnect every active source connection? Êtes-vous sûr de vouloir déconnecter toutes les connections de source actives? - - + + Confirmation required Confirmation requise - + '%1' has the same Icecast mountpoint as '%2'. Two source connections to the same server that have the same mountpoint can not be enabled simultaneously. '%1' a le même point de montage Icecast que '%2'. Deux de source de connexions vers le même serveur, ayant le même point de montage, ne peuvent pas être activé simultanément. - + Are you sure you want to delete '%1'? Êtes-vous sûr de vouloir effacer '%1' ? - + Renaming '%1' Renommage '%1' - + New name for '%1': Nouveau nom pour '%1' : - + Can't rename '%1' to '%2': name already in use Impossible de renommer '%1' en '%2' : nom déjà utilisé From e9191a37cfbd65d1dc1ed24e80671af76ac414b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Fri, 18 Jul 2025 23:11:21 +0200 Subject: [PATCH 4/7] Add missing tr() for translated tooltips --- src/skin/legacy/tooltips.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/skin/legacy/tooltips.cpp b/src/skin/legacy/tooltips.cpp index 92ab95cdaaed..c3f9eb3ca16e 100644 --- a/src/skin/legacy/tooltips.cpp +++ b/src/skin/legacy/tooltips.cpp @@ -671,13 +671,13 @@ void Tooltips::addStandardTooltips() { << tr("Repeat") << tr("When active the track will repeat if you go past the end or reverse before the start."); - add("eject") << tr("Eject") << tr("Ejects track from the player.") - << tr("Un-ejects when no track is loaded, i.e. reloads the " - "track that was ejected last (of any deck).") - << QString("%1: %2").arg(doubleClick, - "Reloads the last replaced track. " - "If no track is loaded reloads the second-last " - "ejected track."); + add("eject") + << tr("Eject") << tr("Ejects track from the player.") + << tr("Un-ejects when no track is loaded, i.e. reloads the " + "track that was ejected last (of any deck).") + << QString("%1: %2").arg(doubleClick, + tr("Reloads the last replaced track. If no track is " + "loaded reloads the second-last ejected track.")); add("hotcue") << tr("Hotcue") << QString("%1: %2").arg(leftClick, From b623e474e5240c78de992edbad9f51ef1b43140f Mon Sep 17 00:00:00 2001 From: ronso0 Date: Sat, 19 Jul 2025 00:06:27 +0200 Subject: [PATCH 5/7] (fix) prevent crash with null track pointer --- src/library/dlgtrackinfomulti.cpp | 5 ++++- src/widget/wtrackmenu.cpp | 8 ++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/library/dlgtrackinfomulti.cpp b/src/library/dlgtrackinfomulti.cpp index 7977dd55bc71..b1918b63364a 100644 --- a/src/library/dlgtrackinfomulti.cpp +++ b/src/library/dlgtrackinfomulti.cpp @@ -314,7 +314,10 @@ void DlgTrackInfoMulti::loadTracks(const QList& pTracks) { m_pLoadedTracks.clear(); } for (const auto& pTrack : pTracks) { - m_pLoadedTracks.insert(pTrack.get()->getId(), pTrack); + if (pTrack.get()) { + m_pLoadedTracks.insert(pTrack.get()->getId(), pTrack); + } + // Skip unavailable tracks } updateFromTracks(); diff --git a/src/widget/wtrackmenu.cpp b/src/widget/wtrackmenu.cpp index 023608d26eb6..93c67968fa60 100644 --- a/src/widget/wtrackmenu.cpp +++ b/src/widget/wtrackmenu.cpp @@ -2564,8 +2564,12 @@ void WTrackMenu::slotShowDlgTrackInfo() { }); QList tracks; tracks.reserve(getTrackCount()); - for (int i = 0; i < m_trackIndexList.size(); i++) { - tracks.append(m_pTrackModel->getTrack(m_trackIndexList.at(i))); + for (const auto& index : m_trackIndexList) { + const auto pTrack = m_pTrackModel->getTrack(index); + if (pTrack) { + tracks.append(pTrack); + } + // Skip unavailable tracks } m_pDlgTrackInfoMulti->loadTracks(tracks); m_pDlgTrackInfoMulti->show(); From 43f997dc35686545d1a56f2a95c6d187c8b077b4 Mon Sep 17 00:00:00 2001 From: Hetarth Jodha Date: Tue, 22 Jul 2025 02:05:03 +0530 Subject: [PATCH 6/7] ci: Prevent sync-branches from running on main --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6a539cef4eb4..133e3c2ce0e1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -44,7 +44,7 @@ jobs: RRYAN_AT_MIXXX_DOT_ORG_GPG_PRIVATE_KEY: ${{ secrets.RRYAN_AT_MIXXX_DOT_ORG_GPG_PRIVATE_KEY }} sync: - if: ${{ github.ref != 'refs/heads/main' }} && ${{ github.repository == 'mixxxdj/mixxx' }} + if: ${{ github.ref != 'refs/heads/main' && github.repository == 'mixxxdj/mixxx' }} uses: ./.github/workflows/sync_branches.yml secrets: MIXXX_BRANCH_SYNC_PAT: ${{ secrets.MIXXX_BRANCH_SYNC_PAT }} From 632bda677d0e7f088b91cbbfe80c8b4954040002 Mon Sep 17 00:00:00 2001 From: ronso0 Date: Tue, 22 Jul 2025 10:30:35 +0200 Subject: [PATCH 7/7] use std::as_const() for m_trackIndexList --- src/widget/wtrackmenu.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/widget/wtrackmenu.cpp b/src/widget/wtrackmenu.cpp index e799329fef4e..e8e01c410baf 100644 --- a/src/widget/wtrackmenu.cpp +++ b/src/widget/wtrackmenu.cpp @@ -1283,7 +1283,7 @@ TrackIdList WTrackMenu::getTrackIds() const { TrackIdList trackIds; if (m_pTrackModel) { trackIds.reserve(m_trackIndexList.size()); - for (const auto& index : m_trackIndexList) { + for (const auto& index : std::as_const(m_trackIndexList)) { const auto trackId = m_pTrackModel->getTrackId(index); if (!trackId.isValid()) { // Skip unavailable tracks @@ -1305,7 +1305,7 @@ QList WTrackMenu::getTrackRefs() const { QList trackRefs; if (m_pTrackModel) { trackRefs.reserve(m_trackIndexList.size()); - for (const auto& index : m_trackIndexList) { + for (const auto& index : std::as_const(m_trackIndexList)) { auto trackRef = TrackRef::fromFilePath( m_pTrackModel->getTrackLocation(index), m_pTrackModel->getTrackId(index)); @@ -1326,7 +1326,7 @@ QList WTrackMenu::getTrackRefs() const { TrackPointer WTrackMenu::getFirstTrackPointer() const { if (m_pTrackModel) { - for (const auto& index : m_trackIndexList) { + for (const auto& index : std::as_const(m_trackIndexList)) { const auto pTrack = m_pTrackModel->getTrack(index); if (pTrack) { return pTrack; @@ -1341,7 +1341,7 @@ TrackPointer WTrackMenu::getFirstTrackPointer() const { TrackPointerList WTrackMenu::getTrackPointers() const { TrackPointerList tracks; if (m_pTrackModel) { - for (const auto& index : m_trackIndexList) { + for (const auto& index : std::as_const(m_trackIndexList)) { const auto pTrack = m_pTrackModel->getTrack(index); if (pTrack) { tracks.append(pTrack); @@ -2723,7 +2723,7 @@ void WTrackMenu::slotShowDlgTrackInfo() { }); QList tracks; tracks.reserve(getTrackCount()); - for (const auto& index : m_trackIndexList) { + for (const auto& index : std::as_const(m_trackIndexList)) { const auto pTrack = m_pTrackModel->getTrack(index); if (pTrack) { tracks.append(pTrack);