Merge lp://qastaging/~rryan/mixxx/atomic-co into lp://qastaging/~mixxxdevelopers/mixxx/atomic-co
Proposed by
RJ Skerry-Ryan
Status: | Merged |
---|---|
Merged at revision: | 3363 |
Proposed branch: | lp://qastaging/~rryan/mixxx/atomic-co |
Merge into: | lp://qastaging/~mixxxdevelopers/mixxx/atomic-co |
Diff against target: |
8460 lines (+1998/-3446) 107 files modified
mixxx/.cproject (+0/-110) mixxx/.gdbinit (+0/-26) mixxx/.project (+0/-79) mixxx/build/debian/changelog (+6/-0) mixxx/build/depends.py (+15/-10) mixxx/build/features.py (+2/-13) mixxx/build/qtcreator/mixxx.pro (+0/-10) mixxx/plugins/soundsourcem4a/SConscript (+1/-2) mixxx/res/skins/Shade1024x600-Netbook/skin.xml (+0/-16) mixxx/src/analyserbpm.cpp (+0/-102) mixxx/src/analyserbpm.h (+0/-27) mixxx/src/analyserqueue.cpp (+0/-11) mixxx/src/control/control.cpp (+132/-0) mixxx/src/control/control.h (+95/-0) mixxx/src/control/controlbehavior.cpp (+63/-0) mixxx/src/control/controlbehavior.h (+186/-0) mixxx/src/control/controlvalue.h (+44/-32) mixxx/src/controlbeat.cpp (+0/-83) mixxx/src/controlbeat.h (+0/-59) mixxx/src/controllers/controllerengine.cpp (+6/-8) mixxx/src/controllers/midi/midicontroller.cpp (+75/-70) mixxx/src/controllers/midi/midioutputhandler.cpp (+11/-18) mixxx/src/controllers/midi/midioutputhandler.h (+2/-2) mixxx/src/controllers/softtakeover.cpp (+1/-1) mixxx/src/controllinpotmeter.cpp (+5/-24) mixxx/src/controllinpotmeter.h (+1/-10) mixxx/src/controllogpotmeter.cpp (+8/-73) mixxx/src/controllogpotmeter.h (+3/-21) mixxx/src/controlnull.cpp (+0/-27) mixxx/src/controlnull.h (+0/-34) mixxx/src/controlobject.cpp (+49/-104) mixxx/src/controlobject.h (+31/-48) mixxx/src/controlobjectthread.cpp (+41/-42) mixxx/src/controlobjectthread.h (+33/-29) mixxx/src/controlobjectthreadmain.cpp (+34/-3) mixxx/src/controlobjectthreadmain.h (+9/-1) mixxx/src/controlobjectthreadwidget.cpp (+7/-38) mixxx/src/controlobjectthreadwidget.h (+4/-12) mixxx/src/controlpotmeter.cpp (+13/-43) mixxx/src/controlpotmeter.h (+5/-10) mixxx/src/controlpushbutton.cpp (+22/-55) mixxx/src/controlpushbutton.h (+1/-7) mixxx/src/controlttrotary.cpp (+9/-26) mixxx/src/controlttrotary.h (+2/-12) mixxx/src/dlgabout.cpp (+193/-6) mixxx/src/dlgbpmscheme.cpp (+0/-58) mixxx/src/dlgbpmscheme.h (+0/-38) mixxx/src/dlgbpmschemedlg.ui (+0/-184) mixxx/src/dlgprefbpm.cpp (+0/-455) mixxx/src/dlgprefbpm.h (+0/-67) mixxx/src/dlgprefbpmdlg.ui (+0/-141) mixxx/src/dlgprefeq.cpp (+4/-2) mixxx/src/dlgprefeq.h (+1/-1) mixxx/src/dlgpreferences.cpp (+1/-33) mixxx/src/dlgpreferences.h (+0/-2) mixxx/src/dlgprefrecord.cpp (+15/-17) mixxx/src/dlgprefshoutcast.h (+3/-5) mixxx/src/dlgtrackinfo.h (+9/-1) mixxx/src/encoder/encoder.cpp (+2/-15) mixxx/src/encoder/encoder.h (+9/-19) mixxx/src/encoder/encodercallback.h (+8/-25) mixxx/src/encoder/encodermp3.cpp (+80/-90) mixxx/src/encoder/encodermp3.h (+11/-25) mixxx/src/encoder/encodervorbis.cpp (+27/-41) mixxx/src/encoder/encodervorbis.h (+15/-20) mixxx/src/engine/bpmcontrol.cpp (+10/-0) mixxx/src/engine/enginebuffer.cpp (+3/-0) mixxx/src/engine/enginemaster.cpp (+8/-15) mixxx/src/engine/enginemaster.h (+4/-4) mixxx/src/engine/loopingcontrol.cpp (+10/-8) mixxx/src/engine/ratecontrol.cpp (+16/-5) mixxx/src/engine/sidechain/enginerecord.cpp (+64/-77) mixxx/src/engine/sidechain/enginerecord.h (+19/-20) mixxx/src/engine/sidechain/engineshoutcast.cpp (+86/-88) mixxx/src/engine/sidechain/engineshoutcast.h (+12/-13) mixxx/src/engine/sidechain/enginesidechain.cpp (+75/-156) mixxx/src/engine/sidechain/enginesidechain.h (+29/-39) mixxx/src/engine/sidechain/sidechainworker.h (+14/-0) mixxx/src/library/autodjfeature.cpp (+3/-2) mixxx/src/library/baseexternallibraryfeature.cpp (+2/-0) mixxx/src/library/baseplaylistfeature.cpp (+2/-2) mixxx/src/library/basesqltablemodel.cpp (+1/-1) mixxx/src/library/dao/playlistdao.cpp (+56/-17) mixxx/src/library/dao/playlistdao.h (+3/-3) mixxx/src/library/legacylibraryimporter.cpp (+2/-1) mixxx/src/library/playlistfeature.cpp (+2/-4) mixxx/src/library/playlisttablemodel.cpp (+2/-2) mixxx/src/library/setlogfeature.cpp (+6/-4) mixxx/src/main.cpp (+2/-0) mixxx/src/mixxx.cpp (+80/-285) mixxx/src/mixxx.h (+8/-4) mixxx/src/playermanager.cpp (+39/-9) mixxx/src/playermanager.h (+11/-0) mixxx/src/recording/recordingmanager.cpp (+43/-21) mixxx/src/recording/recordingmanager.h (+4/-2) mixxx/src/shoutcast/defs_shoutcast.h (+3/-0) mixxx/src/shoutcast/shoutcastmanager.cpp (+30/-0) mixxx/src/shoutcast/shoutcastmanager.h (+32/-0) mixxx/src/skin/propertybinder.cpp (+1/-2) mixxx/src/sounddeviceportaudio.cpp (+3/-2) mixxx/src/soundmanager.cpp (+2/-0) mixxx/src/test/analyserbpmtest.cpp (+0/-103) mixxx/src/vinylcontrol/vinylcontrolmanager.cpp (+10/-10) mixxx/src/waveform/renderers/waveformmarkset.cpp (+2/-2) mixxx/src/widget/wpushbutton.cpp (+2/-1) mixxx/src/widget/wtracktableview.cpp (+2/-0) mixxx/vamp-plugins/SConscript (+1/-1) |
To merge this branch: | bzr merge lp://qastaging/~rryan/mixxx/atomic-co |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Daniel Schürmann | Approve | ||
Review via email:
|
To post a comment you must log in.
I'm getting really excited about these control changes!
* Create a value wrapper around COBase values -- ControlNumericP rivate (CNP). /COTTRotary/ COPotmeter/ COLogpotmere/ COLinpotmeter/ etc. all used to have built in. valueFromWidget ).
* Add a static creation method / hash index of existing CNPs similar to CO.
* Add a ControlBehavior class hierarchy that encodes all the behaviors that CO/COPushButton
* Remove all value-space to parameter-space conversion methods from CO hierarchy (e.g. valueToWidget/
* Get rid of CO / COT proxying. CO and COT both refer to CNP now and are equals in the sense that they both make requests to CNP. The only difference is that CO also creates a CNP when it is created for the first time and sets its behavior while a COT only binds to an existing CNP.
* Add valueChangedFro mEngine and valueChangedByThis signals to CO and COT respectively. You'll see that CNP solves the issue that was previously solved by the sync thread -- all mutations (add/sub/set/reset) to the CNP include a pointer to the setter. This is re-broadcast by the CNP and so CO/COT can check the pointer and choose to emit either valueChanged() or valueChangedFro mEngine/ valueChangedByT his().
I'm only keeping the name valueChangedFro mEngine name on the CO to keep backwards compatibility with other engine branches that are still unmerged (e.g. engine- control- refactor) .
I'm really liking where this is going. There is really no difference between CO and COT except the creation of a CNP and setting of a Behavior in the CO. We could easily swap this out with a static factory method like Control: :createPushButt on(options. ..) that returned a COT-style object (that we could finally rename as Control* to keep things shorter). We could also flatten the CO hierarchy if the behavior-setting was done by a factory/static method. ControlPotmeter is the only standout there since other parts of Mixxx introspect on the control using dynamic_cast. Those hacks should be replaced with something more generic at the CNP layer that lets you ask things about the behavior.