Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/2.3' into main
Browse files Browse the repository at this point in the history
# Conflicts:
#	src/dialog/dlgabout.cpp
  • Loading branch information
daschuer committed Jun 16, 2021
2 parents 513da6d + 09f6df7 commit ed6ab12
Show file tree
Hide file tree
Showing 15 changed files with 88 additions and 48 deletions.
23 changes: 19 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
* Add hotcue color find-and-replace tool [#2547](https://github.com/mixxxdj/mixxx/pull/2547)

### Importing From Other DJ Software ###
* Import cue points, track colors, and playlists from Serato file tags & database [#2480](https://github.com/mixxxdj/mixxx/pull/2480) [#2526](https://github.com/mixxxdj/mixxx/pull/2526) [#2499](https://github.com/mixxxdj/mixxx/pull/2499) [#2495](https://github.com/mixxxdj/mixxx/pull/2495) [#2673](https://github.com/mixxxdj/mixxx/pull/2673)
* Import cue points, track colors, and playlists from Serato file tags & database [#2480](https://github.com/mixxxdj/mixxx/pull/2480) [#2526](https://github.com/mixxxdj/mixxx/pull/2526) [#2499](https://github.com/mixxxdj/mixxx/pull/2499) [#2495](https://github.com/mixxxdj/mixxx/pull/2495) [#2673](https://github.com/mixxxdj/mixxx/pull/2673) [#3885](https://github.com/mixxxdj/mixxx/pull/3885)
* Note: Mixxx does not yet support multiple loops per track. We are [working on this for Mixxx 2.4](https://github.com/mixxxdj/mixxx/pull/2194). In Mixxx 2.3, if you import a track with multiple loops from Serato, Mixxx will use the first loop cue as the single loop Mixxx currently supports. The imported loops are still stored in Mixxx's database and are treated as hotcues in Mixxx 2.3. If you do not delete these hotcues, they will be usable as loops in Mixxx 2.4. Serato keeps loops and hotcues in separate lists, but Mixxx does not, so loops from Serato are imported starting as hotcue 9.
* Import cue points, track colors, and playlists from Rekordbox USB drives [#2119](https://github.com/mixxxdj/mixxx/pull/2119) [#2555](https://github.com/mixxxdj/mixxx/pull/2555) [#2543](https://github.com/mixxxdj/mixxx/pull/2543) [#2779](https://github.com/mixxxdj/mixxx/pull/2779)
* Note: The first Rekordbox memory cue is imported for the main cue button in Mixxx and the remaining Rekordbox memory cues are imported as Mixxx hotcues, starting with the next hotcue number after the last hotcue from Rekordbox.
Expand All @@ -30,12 +30,13 @@
* Use intro & outro cues in AutoDJ transitions [#2103](https://github.com/mixxxdj/mixxx/pull/2103)

### Deck cloning ###
* Add deck cloning (also known as "instant doubles" in other DJ software) by dragging and dropping between decks [#1892](https://github.com/mixxxdj/mixxx/pull/1892)
* Add deck cloning (also known as "instant doubles" in other DJ software) by dragging and dropping between decks [#1892](https://github.com/mixxxdj/mixxx/pull/1892) and samplers [#3200](https://github.com/mixxxdj/mixxx/pull/3200)
* Clone decks by double pressing the load button on a controller (with option to disable this) [#2024](https://github.com/mixxxdj/mixxx/pull/2024) [#2042](https://github.com/mixxxdj/mixxx/pull/2042)

### Skins & GUI ###
* Aesthetically revamped LateNight skin [#2298](https://github.com/mixxxdj/mixxx/pull/2298) [#2342](https://github.com/mixxxdj/mixxx/pull/2342)
* Right click overview waveform to show time remaining until that point [#2238](https://github.com/mixxxdj/mixxx/pull/2238)
* Show track info dialog when double clicking track labels in decks [#2990](https://github.com/mixxxdj/mixxx/pull/2990)
* Show track context menu when right clicking text in decks [#2612](https://github.com/mixxxdj/mixxx/pull/2612) [#2675](https://github.com/mixxxdj/mixxx/pull/2675) [#2684](https://github.com/mixxxdj/mixxx/pull/2684) [#2696](https://github.com/mixxxdj/mixxx/pull/2696)
* Add laptop battery widget to skins [#2283](https://github.com/mixxxdj/mixxx/pull/2283) [#2277](https://github.com/mixxxdj/mixxx/pull/2277) [#2250](https://github.com/mixxxdj/mixxx/pull/2250) [#2228](https://github.com/mixxxdj/mixxx/pull/2228) [#2221](https://github.com/mixxxdj/mixxx/pull/2221) [#2163](https://github.com/mixxxdj/mixxx/pull/2163) [#2160](https://github.com/mixxxdj/mixxx/pull/2160) [#2147](https://github.com/mixxxdj/mixxx/pull/2147) [#2281](https://github.com/mixxxdj/mixxx/pull/2281) [#2319](https://github.com/mixxxdj/mixxx/pull/2319) [#2287](https://github.com/mixxxdj/mixxx/pull/2287)
* Show when passthrough mode is active on overview waveforms [#2575](https://github.com/mixxxdj/mixxx/pull/2575) [#2616](https://github.com/mixxxdj/mixxx/pull/2616)
Expand All @@ -46,13 +47,17 @@
* AutoDJ: Make "enable" shortcut work after startup [#3242](https://github.com/mixxxdj/mixxx/pull/3242)
* Add rate range indicator [#3693](https://github.com/mixxxdj/mixxx/pull/3693)
* Allow menubar to be styled [#3372](https://github.com/mixxxdj/mixxx/pull/3372) [#3788](https://github.com/mixxxdj/mixxx/pull/3788)
* Add Donate button to About dialog [#3838](https://github.com/mixxxdj/mixxx/pull/3838) [#3846](https://github.com/mixxxdj/mixxx/pull/3846)
* Add Scrollable Skin Widget [#3890](https://github.com/mixxxdj/mixxx/pull/3890)
* Fix minor visual issues in Skins [#3958](https://github.com/mixxxdj/mixxx/pull/3958/) [#3954](https://github.com/mixxxdj/mixxx/pull/3954/) [#3941](https://github.com/mixxxdj/mixxx/pull/3941/) [#3938](https://github.com/mixxxdj/mixxx/pull/3938/) [#3936](https://github.com/mixxxdj/mixxx/pull/3936/) [#3886](https://github.com/mixxxdj/mixxx/pull/3886/) [#3927](https://github.com/mixxxdj/mixxx/pull/3927/) [#3844](https://github.com/mixxxdj/mixxx/pull/3844/) [#3933](https://github.com/mixxxdj/mixxx/pull/3933/) [#3835](https://github.com/mixxxdj/mixxx/pull/3835/) [#3902](https://github.com/mixxxdj/mixxx/pull/3902) [#3931](https://github.com/mixxxdj/mixxx/pull/3931)

### Music Feature Analysis ###
* Multithreaded analysis for much faster batch analysis on multicore CPUs [#1624](https://github.com/mixxxdj/mixxx/pull/1624) [#2142](https://github.com/mixxxdj/mixxx/pull/2142) [lp:1641153](https://bugs.launchpad.net/mixxx/+bug/1641153)
* Fix bugs affecting key detection accuracy [#2137](https://github.com/mixxxdj/mixxx/pull/2137) [#2152](https://github.com/mixxxdj/mixxx/pull/2152) [#2112](https://github.com/mixxxdj/mixxx/pull/2112) [#2136](https://github.com/mixxxdj/mixxx/pull/2136)
* Note: Users who have not manually corrected keys are advised to clear all keys in their library by pressing Ctrl + A in the library, right clicking, going to Reset -> Key, then reanalyzing their library. This will freeze the GUI while Mixxx clears the keys; this is a known problem that we will not be able to fix for 2.3. Wait until it is finished and you will be able to reanalyze tracks for better key detection results.
* Remove VAMP plugin support and use Queen Mary DSP library directly. vamp-plugin-sdk and vamp-hostsdk are no longer required dependencies. [#926](https://github.com/mixxxdj/mixxx/pull/926)
* Improvements BPM detection on non-const beatgrids [#3626](https://github.com/mixxxdj/mixxx/pull/3626)
* Fix const beatgrid placement [#3965](https://github.com/mixxxdj/mixxx/pull/3965) [#3973](https://github.com/mixxxdj/mixxx/pull/3973)

### Music Library ###
* Add support for searching for empty fields (for example `crate:""`) [lp:1788086](https://bugs.launchpad.net/mixxx/+bug/1788086)
Expand All @@ -65,19 +70,26 @@
* Fix caching of duplicate tracks that reference the same file [#3027](https://github.com/mixxxdj/mixxx/pull/3027)
* Use 6 instead of only 4 compatible musical keys (major/minor) [#3205](https://github.com/mixxxdj/mixxx/pull/3205)
* Fix possible crash when trying to refocus the tracks table while another Mixxx window has focus [#3201](https://github.com/mixxxdj/mixxx/pull/3201)
* Don't create new tags in file when exporting metadata to it [#3898](https://github.com/mixxxdj/mixxx/pull/3898)
* Fix playlist files beginning with non-english characters not being loaded [#3916](https://github.com/mixxxdj/mixxx/pull/3916)
* Enable sorting in "Hidden Tracks" and "Missing Tracks" views [#3828](https://github.com/mixxxdj/mixxx/pull/3828) [lp:1828555](https://bugs.launchpad.net/mixxx/+bug/1828555/) [lp:1924616](https://bugs.launchpad.net/mixxx/+bug/1924616/)
* Fix track table being empty after start [#3935](https://github.com/mixxxdj/mixxx/pull/3935/) [lp:1930546](https://bugs.launchpad.net/mixxx/+bug/1930546/) [lp:1924843](https://bugs.launchpad.net/mixxx/+bug/1924843/)

### Audio Codecs ###
* Add FFmpeg audio decoder, bringing support for ALAC files [#1356](https://github.com/mixxxdj/mixxx/pull/1356)
* Include LAME MP3 encoder with Mixxx now that the MP3 patent has expired [lp:1294128](https://bugs.launchpad.net/mixxx/+bug/1294128) [buildserver:#37](https://github.com/mixxxdj/buildserver/pull/37) [buildserver:9e8bcee](https://github.com/mixxxdj/buildserver/commit/9e8bcee771731920ae82f3e076d43f0fb51e5027)
* Add Opus streaming and recording support. [lp:1338413](https://bugs.launchpad.net/mixxx/+bug/1338413)
* Remove support for SoundSource plugins because the code was not well-maintained and could lead to crashes [lp:1792747](https://bugs.launchpad.net/mixxx/+bug/1792747)
* Add HE-AAC encoding capabilities for recording and broadcasting [#3615](https://github.com/mixxxdj/mixxx/pull/3615)

### Audio Engine ###
* Fix loss of precision when dealing with floating-point sample positions while setting loop out position and seeking using vinyl control [#3126](https://github.com/mixxxdj/mixxx/pull/3126) [#3127](https://github.com/mixxxdj/mixxx/pull/3127)
* Prevent moving a loop beyond track end [#3117](https://github.com/mixxxdj/mixxx/pull/3117) [lp:1799574](https://bugs.launchpad.net/mixxx/+bug/1799574)
* Fix possible memory corruption using JACK on Linux [#3160](https://github.com/mixxxdj/mixxx/pull/3160)
* Fix changing of vinyl lead-in time [lp:1915483](https://bugs.launchpad.net/mixxx/+bug/1915483) [#3781](https://github.com/mixxxdj/mixxx/pull/3781)
* Fix tempo change of non-const beatgrid track on audible deck when cueing another track [#3772](https://github.com/mixxxdj/mixxx/pull/3772)
* Fix crash when changing effect unit routing [#3882](https://github.com/mixxxdj/mixxx/pull/3882) [lp:1775497](https://bugs.launchpad.net/mixxx/+bug/1775497)
* Make microphone ducking use strength knob the same way in automatic & manual mode [#2750](https://github.com/mixxxdj/mixxx/pull/2750)

### Controllers ###
* Improve workflow for configuring controller mappings and editing mappings [#2569](https://github.com/mixxxdj/mixxx/pull/2569) [#3278](https://github.com/mixxxdj/mixxx/pull/3278) [#3667](https://github.com/mixxxdj/mixxx/pull/3667)
Expand All @@ -90,11 +102,11 @@
* Add controller mapping for Numark iDJ Live II [#2818](https://github.com/mixxxdj/mixxx/pull/2818)
* Add controller mapping for Hercules DJControl Inpulse 200 [#2542](https://github.com/mixxxdj/mixxx/pull/2542)
* Add controller mapping for Hercules DJControl Jogvision [#2370](https://github.com/mixxxdj/mixxx/pull/2370)
* Add controller mapping for Pioneer DDJ-200 [#3185](https://github.com/mixxxdj/mixxx/pull/3185) [#3193](https://github.com/mixxxdj/mixxx/pull/3193) [#3479](https://github.com/mixxxdj/mixxx/pull/3742)
* Add controller mapping for Pioneer DDJ-200 [#3185](https://github.com/mixxxdj/mixxx/pull/3185) [#3193](https://github.com/mixxxdj/mixxx/pull/3193) [#3479](https://github.com/mixxxdj/mixxx/pull/3742) [#3793](https://github.com/mixxxdj/mixxx/pull/3793) [#3949](https://github.com/mixxxdj/mixxx/pull/3949)
* Add controller mapping for Pioneer DDJ-400 [#3479](https://github.com/mixxxdj/mixxx/pull/3479)
* Add controller mapping for ION Discover DJ Pro [#2893](https://github.com/mixxxdj/mixxx/pull/2893)
* Add controller mapping for Native Instrument Traktor Kontrol S3 [#3031](https://github.com/mixxxdj/mixxx/pull/3031)
* Add controller mapping for Behringer BCR2000 [#3342](https://github.com/mixxxdj/mixxx/pull/3342)
* Add controller mapping for Behringer BCR2000 [#3342](https://github.com/mixxxdj/mixxx/pull/3342) [#3943](https://github.com/mixxxdj/mixxx/pull/3943)
* Add controller mapping for Behringer DDM4000 [#3542](https://github.com/mixxxdj/mixxx/pull/3542)
* Update controller mapping for Allen & Heath Xone K2 to add intro/outro cues [#2236](https://github.com/mixxxdj/mixxx/pull/2236)
* Update controller mapping for Hercules P32 for more accurate headmix control [#3537](https://github.com/mixxxdj/mixxx/pull/3537)
Expand All @@ -112,6 +124,9 @@
* Don't trash user configuration if an error occurs when writing [#3192](https://github.com/mixxxdj/mixxx/pull/3192)
* Enable CUE sheet recording by default [#3374](https://github.com/mixxxdj/mixxx/pull/3374)
* And countless other small fixes and improvements (too many to list them all!)
* Fix crash when double clicking GLSL waveforms with right mouse button [#3904](https://github.com/mixxxdj/mixxx/pull/3904)
* Derive Mixxx version from `git describe` [#3824](https://github.com/mixxxdj/mixxx/pull/3824) [#3841](https://github.com/mixxxdj/mixxx/pull/3841) [#3848](https://github.com/mixxxdj/mixxx/pull/3848)
* Improve tapping the bpm of a deck [#3790](https://github.com/mixxxdj/mixxx/pull/3790) [lp:1882776](https://bugs.launchpad.net/mixxx/+bug/1882776)

## [2.2.4](https://launchpad.net/mixxx/+milestone/2.2.4) (2020-06-27)

Expand Down
8 changes: 1 addition & 7 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2355,13 +2355,7 @@ find_package(MP4)
find_package(MP4v2)
# It is enabled by default on Linux only, because other targets have other
# solutions. It requires MP4 or MP4v2.
# Note, we use if() here, because the following line does not work with cmake 3.16.3
# default_option(FAAD "FAAD AAC audio file decoder support" "UNIX;NOT APPLE;(MP4_FOUND OR MP4v2_FOUND)")
if (UNIX AND NOT APPLE AND (MP4_FOUND OR MP4v2_FOUND))
option(FAAD "FAAD AAC audio file decoder support" ON)
else()
option(FAAD "FAAD AAC audio file decoder support" OFF)
endif()
default_option(FAAD "FAAD AAC audio file decoder support" "UNIX;NOT APPLE;MP4_FOUND OR MP4v2_FOUND")
if(FAAD)
if(NOT MP4_FOUND AND NOT MP4v2_FOUND)
message(FATAL_ERROR "FAAD AAC audio support requires libmp4 or libmp4v2 with development headers.")
Expand Down
5 changes: 4 additions & 1 deletion cmake/modules/DefaultOption.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,10 @@ set a default and the value may be overridden by the user.
macro(DEFAULT_OPTION option doc depends)
set(${option}_DEFAULT_ON 1)
foreach(d ${depends})
string(REGEX REPLACE " +" ";" DEFAULT_OPTION_DEP "${d}")
# if() takes the condition as a list of arguments. Parentheses need to be separated as well.
string(REPLACE "(" " ( " DEFAULT_OPTION_DEP "${d}")
string(REPLACE ")" " ) " DEFAULT_OPTION_DEP "${DEFAULT_OPTION_DEP}")
string(REGEX REPLACE " +" ";" DEFAULT_OPTION_DEP "${DEFAULT_OPTION_DEP}")
if(${DEFAULT_OPTION_DEP})
else()
set(${option}_DEFAULT_ON 0)
Expand Down
3 changes: 3 additions & 0 deletions res/skins/Deere/icon/ic_broadcast_4_32px.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions res/skins/Deere/tool_bar.xml
Original file line number Diff line number Diff line change
Expand Up @@ -342,6 +342,7 @@
<SetVariable name="state_1">icon/ic_broadcast_1_32px.svg</SetVariable>
<SetVariable name="state_2">icon/ic_broadcast_2_32px.svg</SetVariable>
<SetVariable name="state_3">icon/ic_broadcast_3_32px.svg</SetVariable>
<SetVariable name="state_3">icon/ic_broadcast_4_32px.svg</SetVariable>
<SetVariable name="left_connection_control">[Shoutcast],enabled</SetVariable>
<SetVariable name="display_connection_control">[Shoutcast],status</SetVariable>
</Template>
Expand Down
12 changes: 9 additions & 3 deletions res/skins/LateNight/style_classic.qss
Original file line number Diff line number Diff line change
Expand Up @@ -1181,7 +1181,10 @@ WBeatSpinBox, #spinBoxTransition,
#FxAssignButtons WPushButton[displayValue="1"],
#GuiToggleButton[displayValue="1"],
#GuiToggleButton[displayValue="2"],
#BroadcastButton[displayValue="1"], /* connecting: yellow */
#BroadcastButton[displayValue="1"],
#BroadcastButton[displayValue="2"],
#BroadcastButton[displayValue="3"],
#BroadcastButton[displayValue="4"],
#RecDuration[highlight="1"],
#RecDuration[highlight="2"],
#SkinSettingsToggle[displayValue="1"],
Expand Down Expand Up @@ -1274,6 +1277,7 @@ WPushButton#FxAssignButton1[displayValue="1"],
#BroadcastButton[displayValue="1"],
#BroadcastButton[displayValue="2"],
#BroadcastButton[displayValue="3"],
#BroadcastButton[displayValue="4"],
#SkinSettingsToggle[displayValue="1"],
#LibraryFeatureControls QPushButton:pressed,
QPushButton#pushButtonAutoDJ:checked,
Expand Down Expand Up @@ -1449,7 +1453,8 @@ QPushButton#pushButtonRepeatPlaylist:checked {
background-color: #888;
}

#BroadcastButton[displayValue="3"] {
#BroadcastButton[displayValue="3"],
#BroadcastButton[displayValue="4"] {
/* pink */
background-color: #f856e7;
}
Expand Down Expand Up @@ -1888,7 +1893,8 @@ WPushButton#SamplerExpand[displayValue="0"],
}
#BroadcastButton[displayValue="1"],
#BroadcastButton[displayValue="2"],
#BroadcastButton[displayValue="3"] {
#BroadcastButton[displayValue="3"],
#BroadcastButton[displayValue="4"] {
image: url(skin:/classic/buttons/btn__broadcast_on.svg) no-repeat left top;
}

Expand Down
8 changes: 6 additions & 2 deletions res/skins/LateNight/style_palemoon.qss
Original file line number Diff line number Diff line change
Expand Up @@ -1371,6 +1371,7 @@ WEffectSelector QAbstractScrollArea,
#BroadcastButton[displayValue="1"], /* connecting */
#BroadcastButton[displayValue="2"], /* broadcasting */
#BroadcastButton[displayValue="3"], /* failure */
#BroadcastButton[displayValue="4"], /* warning */
#RecDuration[highlight="1"], /* initializing */
#RecDuration[highlight="2"], /* recording */
#SkinSettingsToggle[displayValue="1"],
Expand Down Expand Up @@ -1457,6 +1458,7 @@ WEffectSelector:!editable,
#BroadcastButton[displayValue="1"],
#BroadcastButton[displayValue="2"],
#BroadcastButton[displayValue="3"],
#BroadcastButton[displayValue="4"],
#SkinSettingsToggle[displayValue="1"],
#LibraryFeatureControls QPushButton:pressed
QPushButton#pushButtonAutoDJ:checked,
Expand Down Expand Up @@ -1640,6 +1642,7 @@ WPushButton#Reverse[pressed="true"],
#MicDucking[value="2"],
#VinylButton[displayValue="1"],
#PassthroughButton[displayValue="1"],
#BroadcastButton[displayValue="4"], /* warning */
QPushButton#pushButtonAutoDJ:checked,
QPushButton#pushButtonAnalyze:checked {
background-color: #b24c12;
Expand Down Expand Up @@ -1776,7 +1779,7 @@ WPushButton#FxSuperLinkInvertButton[displayValue="0"] {

/* Yellow */
#RecFeedback[displayValue="1"], /* initialize recording */
#BroadcastButton[displayValue="1"] /* connecting */ {
#BroadcastButton[displayValue="1"] { /* connecting */
background-color: #d09300;
}

Expand Down Expand Up @@ -2392,7 +2395,8 @@ WPushButton#PlayDeck[value="0"] {
}
#BroadcastButton[displayValue="1"],
#BroadcastButton[displayValue="2"],
#BroadcastButton[displayValue="3"] {
#BroadcastButton[displayValue="3"],
#BroadcastButton[displayValue="4"] {
image: url(skin:/palemoon/buttons/btn__broadcast_on.svg) no-repeat left top;
}

Expand Down
4 changes: 2 additions & 2 deletions src/broadcast/broadcastmanager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,7 @@ void BroadcastManager::slotControlEnabled(double v) {
// Wrap around manually .
// Wrapping around in WPushbutton does not work
// since the status button has 4 states, but this CO is bool
m_pBroadcastEnabled->set(0.0);
emit broadcastEnabled(false);
v = 0.0;
}

if (v > 0.0) {
Expand All @@ -116,6 +115,7 @@ void BroadcastManager::slotControlEnabled(double v) {

slotProfilesChanged();
} else {
m_pBroadcastEnabled->set(false);
m_pStatusCO->forceSet(STATUSCO_UNCONNECTED);
QList<BroadcastProfilePtr> profiles = m_pBroadcastSettings->profiles();
for(BroadcastProfilePtr profile : profiles) {
Expand Down
8 changes: 4 additions & 4 deletions src/broadcast/broadcastmanager.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ class BroadcastManager : public QObject {
public:
enum StatusCOStates {
STATUSCO_UNCONNECTED = 0, // IDLE state, no error
STATUSCO_CONNECTING = 1, // 30 s max
STATUSCO_CONNECTED = 2, // On Air
STATUSCO_FAILURE = 3, // Happens when all connection fails
STATUSCO_WARNING = 4
STATUSCO_CONNECTING = 1, // 30 s max
STATUSCO_CONNECTED = 2, // On Air
STATUSCO_FAILURE = 3, // Happens when all connection fail
STATUSCO_WARNING = 4 // Happens when at least one but not all fail
};

BroadcastManager(SettingsManager* pSettingsManager,
Expand Down
Loading

0 comments on commit ed6ab12

Please sign in to comment.