Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for Saved loops #2194

Merged
merged 174 commits into from
Nov 4, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
174 commits
Select commit Hold shift + click to select a range
5c26949
Fix durationItem misnomer for position in DlgTrackInfo::populateCues()
Holzhaus Jun 27, 2019
d394859
Add length column to the DlgTrackInfo dialog table
Holzhaus Jun 27, 2019
36130de
Add possiblity avoid seek after adjusting a loop
Holzhaus Jun 28, 2019
6c94d02
Implement a direct way to trigger saved loops
Holzhaus Jun 28, 2019
4b22bb0
Add new loop_toggle CO (like reloop_toggle but without jumping)
Holzhaus Jul 9, 2019
b8243e4
Implemented saved loops for hot cues
Holzhaus Jul 9, 2019
72b9da6
Added hotcue_X_setcue/_activatecue COs and make hotcue_X_set/_active …
Holzhaus Jul 9, 2019
203289e
Add hotcue_X_reloop CO (for saved loop hotcues)
Holzhaus Jul 9, 2019
2ed774b
Add hotcue_X_type CO
Holzhaus Aug 11, 2019
881c267
cuecontrol: Ínvoke setLength() on setCue/resetCue
Holzhaus Aug 13, 2019
ef3b611
cuecontrol: Use enum class instead of C style typedef for HotcueType
Holzhaus Aug 13, 2019
8c4143e
loopingcontrol: Use enum class for LoopSeekMode
Holzhaus Aug 15, 2019
1f316ea
loopingcontrol: Use PascalCase for enum values
Holzhaus Aug 23, 2019
369dbdb
Use Cue::LOOP type for saved loop cues
Holzhaus Aug 30, 2019
486a346
Pass CuePointer to LoopingControl to track saved loop changes
Holzhaus Aug 30, 2019
7fc1c8d
Replace setSavedLoop's second paramter "reloop" with "toggle"
Holzhaus Aug 30, 2019
f1a1bb2
loopingcontrol: Add tracking of changes to an active saved loop
Holzhaus Aug 30, 2019
1980ef5
cue: Manage hotcue status inside Cue class
Holzhaus Sep 2, 2019
b3220d0
cuecontrol: Reset cue type in resetCue()
Holzhaus Sep 2, 2019
5f18a64
cuecontrol: Fix HotcueControl::get/setType methods
Holzhaus Sep 2, 2019
0d5568c
cuecontrol: Fix HotcueControl::setStatus method
Holzhaus Sep 2, 2019
9773c41
loopingcontrol: Set diffent cue pointer even if start/end position ar…
Holzhaus Sep 3, 2019
8146080
cuecontrol: Allow cues to start at position < 0, just require non-neg…
Holzhaus Sep 3, 2019
bdadaff
cue: Fix loop length check in Cue::getStatus()
Holzhaus Sep 3, 2019
27d1567
loopingcontrol: Fix saved loop updates in slotBeatLoop
Holzhaus Sep 3, 2019
24c8ba1
loopingcontrol: Fix saved loop change detection in setSavedLoop
Holzhaus Sep 3, 2019
c972651
loopingcontrol: Add saved loop deactivation via slotBeatLoopDeactivate
Holzhaus Sep 3, 2019
4f16fdb
loopingcontrol: Improve saved loop activate()/deactivate() logic
Holzhaus Sep 3, 2019
60a5aa7
cuecontrol: Cast double value to int before casting it to CueType
Holzhaus Sep 3, 2019
45a6fb5
Merge branch 'master' of https://github.com/mixxxdj/mixxx into saved-…
Holzhaus Oct 3, 2019
adbc46c
engine/controls/cuecontrol: Fix some minor style issues
Holzhaus Nov 19, 2019
3d5afef
Merge remote-tracking branch 'upstream/master' into saved-loops
Holzhaus Dec 3, 2019
9bdde82
engine/controls/loopingcontrol: Remove duplicate semicolon
Holzhaus Dec 6, 2019
afecf4c
engine/controls/cuecontrol: Check for maximum cue type
Holzhaus Dec 6, 2019
13ba347
engine/controls/cuecontrol: Use parented_ptr for loop ControlProxies
Holzhaus Jan 5, 2020
9d3e5f0
track/cue: Use better member names for Cue::Status enum class
Holzhaus Jan 5, 2020
f77eb9a
engine/controls/cuecontrol: Rename reloop control object to gotoandloop
Holzhaus Jan 5, 2020
5c510ba
engine/controls/cuecontrol: Add support for gotoandloop on non-loop cues
Holzhaus Jan 5, 2020
4b71495
Merge branch 'master' of https://github.com/mixxxdj/mixxx into saved-…
Holzhaus Jan 5, 2020
b7bdb0d
engine/controls/loopingcontrol: Remove setSavedLoop toggle flag
Holzhaus Jan 5, 2020
0786225
res/skins: Fix disappearing hotcues on saved loop activation
Holzhaus Jan 5, 2020
f76bb5e
Merge branch 'master' of github.com:mixxxdj/mixxx into saved-loops
Holzhaus Apr 3, 2020
134966c
Merge branch 'master' of github.com:mixxxdj/mixxx into saved-loops
Holzhaus May 7, 2020
db7031a
Merge branch 'master' of github.com:mixxxdj/mixxx into saved-loops
Holzhaus May 12, 2020
c237c38
engine/controls/cuecontrol: Reduce code duplication
Holzhaus May 12, 2020
b64cbf6
engine/controls/cuecontrol: Clean up hotcueSet code a bit
Holzhaus May 12, 2020
94d8493
engine/controls/cuecontrol: Fix initialization of parented_ptr
Holzhaus May 12, 2020
d673a2c
Merge branch 'master' of github.com:mixxxdj/mixxx into saved-loops
Holzhaus Jun 9, 2020
d1e0e5d
Merge branch 'master' of github.com:mixxxdj/mixxx into saved-loops
Holzhaus Jun 19, 2020
27c5f37
engine/controls/cuecontrol: Fix Qt signal emit keyword
Holzhaus Jun 19, 2020
34efdc3
engine/controls/cuecontrol: Fix order in hotcueGotoAndLoop call
Holzhaus Jun 19, 2020
fd5dac6
engine: Move saved loop cue tracking from LoopingControl into CueControl
Holzhaus Jun 19, 2020
2fe585e
engine/controls: Add support for setting beatloops from hotcues
Holzhaus Jun 19, 2020
ef70a5a
engine/controls/cuecontrol: Reset current saved loop on hotcue beetloop
Holzhaus Jun 19, 2020
d37b6a9
Merge branch 'master' of github.com:mixxxdj/mixxx into saved-loops
Holzhaus Jul 5, 2020
96b1885
engine/controls/cuecontrol: Add support for previewing loop cues
Holzhaus Jul 5, 2020
39854e0
widget/woverview: Fix labels for loop cues on overview waveforms
Holzhaus Jul 6, 2020
3b4e2e6
waveform: Draw loop cues on scrolling waveforms
Holzhaus Jul 5, 2020
f7d0522
widget/woverview: Draw loop cue lengths on overview waveforms
Holzhaus Jul 6, 2020
e9245a9
widget/woverview: Render transparent loop preview
Holzhaus Jul 7, 2020
ce1e22e
engine/controls/cuecontrol: Use braces for include guard
Holzhaus Jul 8, 2020
ab2eee0
engine/enginebuffer: Use doxygen-style /// comments
Holzhaus Jul 8, 2020
95dabe1
engine/controls/cuecontrol: Remove boolean literal from debug msg
Holzhaus Jul 8, 2020
e93853c
engine/controls/cuecontrol: Use braces for include guards
Holzhaus Jul 8, 2020
29cbaf1
engine/controls/cuecontrol: Use named constants for resetting the hotcue
Holzhaus Jul 8, 2020
564e60d
engine/controls/cuecontrol: Deduplicate code in hotcueSet method
Holzhaus Jul 8, 2020
9556db0
engine/controls/cuecontrol: Use type instead of length in hotcueActivate
Holzhaus Jul 8, 2020
b5dda79
engine/controls/cuecontrol: Fix typo in comment
Holzhaus Jul 8, 2020
ddb694e
engine/controls/cuecontrol: Fix wrong debug assertion
Holzhaus Jul 8, 2020
1071dbd
engine/controls/loopingcontrol: Add setBeatLoop method
Holzhaus Jul 14, 2020
c3796cb
Merge branch 'master' of github.com:mixxxdj/mixxx into saved-loops
Holzhaus Jul 16, 2020
0159cde
cuecontrol: Use hotcue_X_endposition instead hotcue_X_length
Holzhaus Jul 16, 2020
78650e2
engine/controls/cuecontrol: Set hotcue type CO on cue load
Holzhaus Jul 16, 2020
b169407
engine/controls/cuecontrol: Remove code to change hotcue type via CO
Holzhaus Jul 16, 2020
57f1568
engine/controls/cuecontrol: Add missing braces to guard clauses
Holzhaus Jul 16, 2020
58f9666
engine/controls/cuecontrol: Move loop status tracking into HotcueControl
Holzhaus Jul 16, 2020
5c6ecb7
waveform/renderers/waveformrendermark: Improve loop cue waveform display
Holzhaus Jul 19, 2020
298c92a
widget/whotcuebutton: Fix right click menu on active loop cue buttons
Holzhaus Jul 19, 2020
8b81ca8
LateNight: Fix missing WHotcueButton labels of active loops in PaleMoon
Holzhaus Jul 19, 2020
9f2eeb4
engine/controls/cuecontrol: Document HotcueControl::Status enum
Holzhaus Jul 19, 2020
4f3c475
engine/controls/cuecontrol: Reset saved loop pointer on cue detach
Holzhaus Jul 19, 2020
26e1ce6
engine/controls/cuecontrol: Reduce nesting in setCurrentSavedLoopControl
Holzhaus Jul 19, 2020
abf6d14
engine/controls/cuecontrol: Fix duplicate space in comment
Holzhaus Jul 19, 2020
773a2ae
engine/controls/cuecontrol: Fix typo in comment
Holzhaus Jul 19, 2020
29bbc92
engine/controls/cuecontrol: Fix leaked control
Holzhaus Aug 2, 2020
9e1c606
preferences/dialog/dlgprefcolors: Add support for different loop color
Holzhaus Aug 2, 2020
42683ae
waveform/renderers/waveformrendermark: Fix disappearing loops on wave…
Holzhaus Aug 2, 2020
89dd699
waveform/renderers/waveformrendermark: Make loop display less disruptive
Holzhaus Aug 2, 2020
b163e4a
Merge branch 'master' of github.com:mixxxdj/mixxx into saved-loops
Holzhaus Aug 25, 2020
8c3d6be
Merge branch 'master' of github.com:mixxxdj/mixxx into saved-loops
Holzhaus Sep 6, 2020
09fe367
test: Add basic HotcueControlTest class
Holzhaus Sep 6, 2020
dee7ca7
HotcueControlTest: Add some basic tests for setting cues/loops
Holzhaus Sep 6, 2020
bb4cbdf
HotcueControlText: Remove unnecessary ProcessBuffer calls
Holzhaus Sep 7, 2020
4c7e8cf
HotcueControlTest: Also check loop enabled state in SavedLoopStatus test
Holzhaus Sep 7, 2020
a7af0a4
HotcueControlTest: Test saved loop move/scale tracking
Holzhaus Sep 7, 2020
59fe42f
HotcueControlText: Add test for saved loop reset behavior
Holzhaus Sep 7, 2020
bf4b6f0
HotcueControlTest: Add some comments
Holzhaus Sep 7, 2020
1e3ba83
HotcueControlTest: Add tests for saved loops toggle/activate behavior
Holzhaus Sep 7, 2020
754457b
engine/controls/cuecontrol: Do not reset saved loop on cue updates
Holzhaus Sep 8, 2020
c20cc74
HotcueControlTest: Improve tests for saved loop scaling/moving
Holzhaus Sep 8, 2020
51489aa
HotcueControlTest: Add tests for cue goto/gotoandplay/gotoandloop beh…
Holzhaus Sep 8, 2020
40a7a1d
HotcueControlTest: Add tests for saved loop goto/gotoandplay/gotoandloop
Holzhaus Sep 8, 2020
8875fc2
HotcueControlTest: Fix position/length variable and function unit names
Holzhaus Sep 8, 2020
d544cec
waveform/renderers/waveformrendermark: Fix rendering for long loop cues
Holzhaus Sep 8, 2020
4ff1163
engine/controls/loopingcontrol: Set beatloop size on saved loop
Holzhaus Sep 8, 2020
c8cc730
engine/controls/cuecontrol: Make hotcue_X_setloop work without active…
Holzhaus Sep 8, 2020
abf46ed
HotcueControlTest: Add tests for new hotcue_X_setloop behavior
Holzhaus Sep 8, 2020
9263e61
engine/controls/cuecontrol: Allow hotcue_X_loop_toggle to set new loops
Holzhaus Sep 8, 2020
b70061e
engine/controls/cuecontrol: Let "activate" jump to saved loop
Holzhaus Sep 8, 2020
a3c99bb
HotcueControlTest: Test that loop activate does not disable looping
Holzhaus Sep 8, 2020
3735bee
engine/controls/cuecontrol: Remove unused member variable
Holzhaus Sep 8, 2020
8479a72
Merge branch 'master' of github.com:mixxxdj/mixxx into saved-loops
Holzhaus Sep 8, 2020
6614837
engine/controls: Remove some debugging messages
Holzhaus Sep 11, 2020
433a2ac
Merge branch 'master' of github.com:mixxxdj/mixxx into saved-loops
Holzhaus Sep 22, 2020
c17ff88
test/HotcueControlTest: Move some shared code into helper method
Holzhaus Sep 22, 2020
de9eff7
CueControl: Improve some checks and add debug assertions
Holzhaus Sep 22, 2020
2d943db
LoopingControl: Rename loopToggled signal to loopEnabledChanged
Holzhaus Sep 22, 2020
e22f60c
CueControl: Add comment regarding broken locking mechanism
Holzhaus Sep 22, 2020
3cbd39c
CueControl: Reset current saved loop if cue is not a loop
Holzhaus Sep 22, 2020
66fe407
HotcueControl: Use "Active" state for previewing hotcues
Holzhaus Sep 22, 2020
87b831d
HotcueControlTest: Enable playback where missing and fix comparisons
Holzhaus Sep 24, 2020
a2c7c0e
LoopingControl: Replace loop_toggle CO by making loop_enabled writable
Holzhaus Sep 24, 2020
5c5a021
Merge branch 'master' of github.com:mixxxdj/mixxx into saved-loops
Holzhaus Sep 24, 2020
772d099
widget/whotcuebutton: Add type property to hotcue buttons
Holzhaus Sep 27, 2020
27278cd
LateNight PaleMoon: Add styling for loop cues to hotcue buttons
Holzhaus Sep 27, 2020
f6b196d
engine/controls: Fix some code formatting issues
Holzhaus Sep 27, 2020
d41ab4b
engine/controls/cuecontrol: Do not jump when activating saved loop
Holzhaus Oct 9, 2020
d513422
Merge branch 'master' of github.com:mixxxdj/mixxx into saved-loops
Holzhaus Oct 9, 2020
299bd85
engine/controls/loopingcontrol: Break long line
Holzhaus Oct 16, 2020
b56537b
Merge branch 'master' of github.com:mixxxdj/mixxx into saved-loops
Holzhaus Oct 17, 2020
03b79a6
waveform/renderers/waveformrendermark: Use QRectF for saved loop drawing
Holzhaus Oct 17, 2020
3485786
widget/whotcuebutton: Fix false-positive compiler warning on Travis CI
Holzhaus Oct 18, 2020
cf4f586
CHANGELOG: Add entry for saved loops feature
Holzhaus Oct 18, 2020
53b15a6
CHANGELOG: Add missing markdown links to changelog entry
Holzhaus Oct 21, 2020
918a281
Merge branch 'master' of github.com:mixxxdj/mixxx into saved-loops
Holzhaus Oct 21, 2020
3dfddcc
HotcueControl: Fix const & redundant inline for getters
Holzhaus Oct 21, 2020
7edeb00
Cue: Remove default argument for setLabel()
Holzhaus Oct 21, 2020
c38fc94
LoopingControl: Remove unused member variable
Holzhaus Oct 21, 2020
e0b97d2
LoopingControl: Move variable declaration into switch case local scope
Holzhaus Oct 21, 2020
d92157a
LoopingControl: Do not write loop_enable CO value again unnecessarily
Holzhaus Oct 21, 2020
b8cc376
LoopingControl: Document realtime unsafety of findNBeatsFromSample
Holzhaus Oct 21, 2020
46ff035
CueControl: Add comments regarding hotcue_X_loop_toggle behaviour
Holzhaus Oct 21, 2020
47b2724
HotcueControl: Add comment regarding change of hotcue_X_enabled CO
Holzhaus Oct 21, 2020
7ee9e8c
CueControl: Clean up hotcueGotoAndLoop a bit
Holzhaus Oct 21, 2020
2167e16
CueControl: Set focused hotcue on loop-related hotcue COs
Holzhaus Oct 21, 2020
c346f6a
WaveformRenderMark: Use QRectF(QPointF, QPointF) for drawing saved loops
Holzhaus Oct 21, 2020
8d10104
WaveformRenderMark: Make some local variables const in draw() method
Holzhaus Oct 21, 2020
8babfc8
HotcueControl: Rename hotcue_X_enabled to hotcue_X_status and add alias
Holzhaus Oct 21, 2020
096c0d9
LoopingControl: Emit loopReset signal in loop position COs
Holzhaus Oct 22, 2020
5419c9e
HotcueControlTest: Add test for loading new track with active saved loop
Holzhaus Oct 22, 2020
2270b64
LoopingControl: Improve comment
Holzhaus Oct 22, 2020
7818502
HotcueControlTest: Add some missing ProcessBuffer calls
Holzhaus Oct 22, 2020
68c2304
CueControl: Inline hotcueControlStatusFromCue function
Holzhaus Oct 22, 2020
b59c203
CueControl: Fix outdated comment
Holzhaus Oct 22, 2020
785aa66
CueControl: Remove useless lock
Holzhaus Oct 22, 2020
6811490
CueControl: Remove more useless locks
Holzhaus Oct 22, 2020
4794591
HotcueControl: Improve comment
Holzhaus Oct 22, 2020
796dd7c
HotcueControlTest: Fix missing unloadTrack call
Holzhaus Oct 22, 2020
8b0120b
LoopingControl: Fix DEBUG_ASSERTs when using Loop In/Out with saved loop
Holzhaus Oct 22, 2020
f985abc
HotcueControlTest: Add new test for new loop_in/loop_out behaviour
Holzhaus Oct 22, 2020
ad72d22
HotcueControl: Add comment and TODO to header file
Holzhaus Oct 22, 2020
17e6d4a
LoopingControl: Improve comment regarding LoopSeekMode::None
Holzhaus Oct 22, 2020
398e946
CueControl: Handle loops in hotcuePositionChanged slot
Holzhaus Oct 22, 2020
183ba57
Merge branch 'main' of github.com:mixxxdj/mixxx into saved-loops
Holzhaus Oct 27, 2020
7d356c8
Merge branch 'main' of github.com:mixxxdj/mixxx into saved-loops
Holzhaus Oct 30, 2020
333be7e
Merge branch 'main' of github.com:mixxxdj/mixxx into saved-loops
Holzhaus Nov 3, 2020
ee14f17
CueControl: Rename HotcueMode to HotcueSetMode
Holzhaus Nov 3, 2020
101bbc6
HotcueControl: Rename Status enum members
Holzhaus Nov 3, 2020
a25d3a5
CueControl: Rename setCurrentSavedLoopControl method
Holzhaus Nov 3, 2020
f99f42f
Deere: Remove obsolete connections (fixes duplicate signal bug)
Holzhaus Nov 4, 2020
13313b1
Tango: Remove obsolete connections (fixes duplicate signal bug)
Holzhaus Nov 4, 2020
81ae146
CueControl: Rename loop_toggle to cueloop and make it set new cuepoints
Holzhaus Nov 4, 2020
c7bfb05
CueControl: Fix cast from double to enum on MSVC
Holzhaus Nov 4, 2020
daf442e
LoopingControl: Seek to loop in setLoop() if playpos is behind loop end
Holzhaus Nov 4, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
* Cover art: Prevent wrong cover art display due to hash conflicts
* Cover art: Add background color for quick cover art preview
* Add Random Track Control to AutoDJ [#3076](https://github.com/mixxxdj/mixxx/pull/3076)
* Add support for saving loops as hotcues [#2194](https://github.com/mixxxdj/mixxx/pull/2194) [lp:1367159](https://bugs.launchpad.net/mixxx/+bug/1367159)

## [2.3.0](https://launchpad.net/mixxx/+milestone/2.3.0) (Unreleased)
### Hotcues ###
Expand Down
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1282,6 +1282,7 @@ add_executable(mixxx-test
src/test/enginemicrophonetest.cpp
src/test/enginesynctest.cpp
src/test/globaltrackcache_test.cpp
src/test/hotcuecontrol_test.cpp
src/test/imageutils_test.cpp
src/test/indexrange_test.cpp
src/test/keyutilstest.cpp
Expand Down
6 changes: 5 additions & 1 deletion res/skins/Deere/hotcue_button.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<Group><Variable name="group"/></Group>
<Hotcue><Variable name="hotcue"/></Hotcue>
<Hover>true</Hover>
<NumberStates>2</NumberStates>
<NumberStates>3</NumberStates>
<State>
<Number>0</Number>
<Text><Variable name="hotcue"/></Text>
Expand All @@ -26,5 +26,9 @@
<Number>1</Number>
<Text><Variable name="hotcue"/></Text>
</State>
<State>
<Number>2</Number>
<Text><Variable name="hotcue"/></Text>
</State>
</HotcueButton>
</Template>
7 changes: 6 additions & 1 deletion res/skins/LateNight/controls/button_hotcue.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
<SizePolicy>me,f</SizePolicy>
<Group><Variable name="Group"/></Group>
<Hotcue><Variable name="number"/></Hotcue>
<NumberStates>2</NumberStates>
<NumberStates>3</NumberStates>
<DimBrightThreshold><Variable name="DimBrightThresholdHotcueBtn"/></DimBrightThreshold>
<State>
<Number>0</Number>
Expand All @@ -27,6 +27,11 @@
<Unpressed scalemode="STRETCH">skin:/<Variable name="BtnScheme"/>/buttons/btn_<Variable name="BtnType"/>_square_set.svg</Unpressed>
<Pressed scalemode="STRETCH">skin:/<Variable name="BtnScheme"/>/buttons/btn_<Variable name="BtnType"/>_square_active.svg</Pressed>
</State>
<State>
<Number>2</Number>
<Unpressed scalemode="STRETCH">skin:/buttons_<Variable name="btn_scheme"/>/btn_<Variable name="btn_type"/>_square_set.svg</Unpressed>
<Pressed scalemode="STRETCH">skin:/buttons_<Variable name="btn_scheme"/>/btn_<Variable name="btn_type"/>_square_active.svg</Pressed>
</State>
</HotcueButton>
</Children>
</WidgetGroup>
Expand Down
167 changes: 167 additions & 0 deletions res/skins/LateNight/palemoon/buttons/btn__1_loop.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
109 changes: 109 additions & 0 deletions res/skins/LateNight/palemoon/buttons/btn__2_loop.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading