Merge lp://qastaging/~mixxxdevelopers/mixxx/features_vcman into lp://qastaging/~mixxxdevelopers/mixxx/trunk
Status: | Merged |
---|---|
Merged at revision: | 2757 |
Proposed branch: | lp://qastaging/~mixxxdevelopers/mixxx/features_vcman |
Merge into: | lp://qastaging/~mixxxdevelopers/mixxx/trunk |
Diff against target: |
978 lines (+268/-207) 21 files modified
mixxx/build/features.py (+6/-5) mixxx/src/dlgpreferences.cpp (+3/-4) mixxx/src/dlgpreferences.h (+2/-1) mixxx/src/dlgprefsound.cpp (+0/-16) mixxx/src/dlgprefvinyl.cpp (+18/-41) mixxx/src/dlgprefvinyl.h (+4/-10) mixxx/src/engine/enginebuffer.cpp (+2/-2) mixxx/src/engine/enginebuffer.h (+1/-1) mixxx/src/engine/vinylcontrolcontrol.cpp (+1/-1) mixxx/src/mixxx.cpp (+27/-26) mixxx/src/mixxx.h (+3/-4) mixxx/src/soundmanager.cpp (+0/-57) mixxx/src/soundmanager.h (+0/-10) mixxx/src/vinylcontrol/vinylcontrol.cpp (+3/-3) mixxx/src/vinylcontrol/vinylcontrol.h (+4/-4) mixxx/src/vinylcontrol/vinylcontrolmanager.cpp (+148/-0) mixxx/src/vinylcontrol/vinylcontrolmanager.h (+36/-0) mixxx/src/vinylcontrol/vinylcontrolproxy.cpp (+5/-14) mixxx/src/vinylcontrol/vinylcontrolproxy.h (+2/-5) mixxx/src/vinylcontrol/vinylcontrolxwax.cpp (+2/-2) mixxx/src/vinylcontrol/vinylcontrolxwax.h (+1/-1) |
To merge this branch: | bzr merge lp://qastaging/~mixxxdevelopers/mixxx/features_vcman |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
RJ Skerry-Ryan | Approve | ||
Review via email:
|
Description of the change
Branch:
* Moves all the vinyl control code to src/vinylcontrol/
* Moves all the vinyl control code from SoundManager to new VinylControlManager
* Sets VinylControlManager as the designated recipient of vinyl control samples from SoundManager
Features:
* Vinyl control prefs can now be applied without rebooting the portaudio callback (not a particularly useful feature but nice to keep unrelated things uncoupled)
* SoundManager now 100% unaware of vinyl control, as it ought to be.
* More stuff here I'm probably not thinking of
Bugs (???):
* The ordering in the sound prefs under the input tab is weird on my machine (order: VC1, mic, VC2). This is due to some weird Qt signal ordering, because the add-audiodest-
* Regressions??? I've tested messing with config, single deck vinyl, both-deck vinyl. I think it's good, but testers are always great.
Please excuse any glaring errors, brain is a bit numb and eyes are a bit tired.
Hey Bill,
Looking good -- here are my comments:
* In VinylControlMan ager, it's a little sketchy to me that SoundManager is passed in and that it's used to scan through its list of enabled inputs -- seems like VCManager shouldn't know those details of SoundManager. Would it be possible to determine which VC decks were enabled by just keeping track of onInputConnect/ onInputDisconne ct calls? Also naming the parameter 'deck' is a little misleading since one turntable can control multiple decks (or will in the future?) Since you're checking for a matching AudioInput index, doesn't this just test whether the N'th VC input is enabled? Anyway I would just replace this with a QSet<AudioInput> that you add to onInputConnect and remove from onInputDisconnect, that way you can just make this test whether an appropriate AudioInput is in the set.
* I don't think I understand how QSemaphore protects m_proxies in this case. QList is not thread safe so two threads should never access it at once -- this includes using QList::at, so all accesses to the list should be guarded by a monolithic QMutex (yea .. it sucks). I would use a QMutex and then make sure to unlock it the second you get the VCProxy that you need from the list (or in the case of creating the VC proxy, create it, then lock and insert it and unlock).
Otherwise everything seems fine to me -- we should have someone test it out first to verify that it actually works ;)