Skip to content

Resolve merge conflicts with master branch#16

Closed
Holzhaus wants to merge 485 commits intoferranlala:migrate-to-QJSEnginefrom
Holzhaus:migrate-to-QJSEngine
Closed

Resolve merge conflicts with master branch#16
Holzhaus wants to merge 485 commits intoferranlala:migrate-to-QJSEnginefrom
Holzhaus:migrate-to-QJSEngine

Conversation

@Holzhaus
Copy link
Copy Markdown

This should fix the merge conflicts that were introduced by mixxxdj#2569 and mixxxdj#2588. Unfortunately I was unable to test this properly because the original PR is currently broken and does not support ColorMapper objects anymore, so my controller always fails with ReferenceError: ColorMapper is not defined.

Be-ing and others added 30 commits April 5, 2020 10:26
ColorPaletteEditor: use theme's list-add and list-remove icons
Refactoring: Extract BaseTrackTableModel + BaseCoverArtDelegate
The original maintainer of hidapi (signal11) stopped responding
to communication for a long time, so hidapi has been forked. It is
now hosted by libusb at
https://github.com/libusb/hidapi
0.9.0 is the first stable release since the fork.
Holzhaus and others added 24 commits April 17, 2020 12:41
The cue position values in the `Serato Markers_` tag use the same strange
4-byte encoding of 24 bit values that track colors use.
Quick action context menu for WTrackProperty
…-fix

track/serato/markers: Fix parsing of position values
Add qDebug << operators for CueType and CueInfo
revert to macOS build environment with Qt 5.12.3
Improve Controller Script Error Reporting
@Be-ing
Copy link
Copy Markdown

Be-ing commented Apr 19, 2020

I fixed ColorMapper in #17

@Be-ing
Copy link
Copy Markdown

Be-ing commented Apr 19, 2020

Thanks for fixing the merge conflicts.

@Holzhaus
Copy link
Copy Markdown
Author

Holzhaus commented May 7, 2020

The original PR has been closed. I'll close this.

@Holzhaus Holzhaus closed this May 7, 2020
ferranlala pushed a commit that referenced this pull request May 7, 2022
…h sync

When loading a track that is not yet present in the library (and thus
doesn't have any BPM because it hasn't been analyzed yet) while another
deck is playing and both decks have sync enabled, a debug assertion is
triggered:

    DEBUG ASSERT: "isValid()" in function double mixxx::Bpm::value() const at src/track/bpm.h:53
    Aborted (core dumped)

The backtrace looks as follows:

    #0  0x00007f175c87234c in __pthread_kill_implementation () at /usr/lib/libc.so.6
    #1  0x00007f175c8254b8 in raise () at /usr/lib/libc.so.6
    #2  0x00007f175c80f534 in abort () at /usr/lib/libc.so.6
    #3  0x00007f175cf05ee4 in qt_assert(char const*, char const*, int) () at /usr/lib/libQt5Core.so.5
    #4  0x000055deb2e67e1c in mixxx::(anonymous namespace)::handleMessage(QtMsgType, QMessageLogContext const&, QString const&) (type=<optimized out>, context=<optimized out>, input=<optimized out>) at src/util/logging.cpp:355
    #5  0x00007f175cf47128 in  () at /usr/lib/libQt5Core.so.5
    #6  0x00007f175cf3fd8a in  () at /usr/lib/libQt5Core.so.5
    #7  0x00007f175cf06526 in QMessageLogger::critical(char const*, ...) const () at /usr/lib/libQt5Core.so.5
    #8  0x000055deb2e5c720 in mixxx_debug_assert(char const*, char const*, int, char const*) (assertion=assertion@entry=0x55deb39bd0db "isValid()", file=file@entry=0x55deb39bbf30 "src/track/bpm.h", line=line@entry=53, function=function@entry=0x55deb39bbf08 "double mixxx::Bpm::value() const") at gsrc/util/assert.h:9
    #9  0x000055deb2ee7e7e in mixxx_debug_assert_return_true(char const*, char const*, int, char const*) (function=0x55deb39bbf08 "double mixxx::Bpm::value() const", line=53, file=0x55deb39bbf30 "src/track/bpm.h", assertion=0x55deb39bd0db "isValid()") at gsrc/util/assert.h:18
    #10 mixxx::Bpm::value() const (this=<synthetic pointer>) at src/track/bpm.h:53
    #11 mixxx::operator*(mixxx::Bpm, double) (multiple=1, bpm=...) at src/track/bpm.h:160
    #12 SyncControl::setLocalBpm(mixxx::Bpm) (this=<optimized out>, localBpm=...) at src/engine/sync/synccontrol.cpp:567
    #13 0x000055deb34c7ba3 in EngineBuffer::postProcess(int) (this=0x55deb56eb060, iBufferSize=2048) at src/engine/enginebuffer.cpp:1318
    #14 0x000055deb3139023 in EngineMaster::processChannels(int) (this=0x55deb5449440, iBufferSize=<optimized out>) at src/engine/enginemaster.cpp:383
    #15 0x000055deb31394f7 in EngineMaster::process(int) (this=0x55deb5449440, iBufferSize=iBufferSize@entry=2048) at src/engine/enginemaster.cpp:410
    #16 0x000055deb2f91d0b in SoundManager::onDeviceOutputCallback(long) (this=<optimized out>, iFramesPerBuffer=iFramesPerBuffer@entry=1024) at src/soundio/soundmanager.cpp:596
    #17 0x000055deb32dd794 in SoundDevicePortAudio::callbackProcessClkRef(long, float*, float const*, PaStreamCallbackTimeInfo const*, unsigned long) (this=0x55deb553e6b0, framesPerBuffer=1024, out=<optimized out>, in=<optimized out>, timeInfo=<optimized out>, statusFlags=<optimized out>) at src/soundio/sounddeviceportaudio.cpp:965

This happens because `newLocalBpm` is invalid when `localBpm` is
invalid. Trying to do sync decks while no tempo information is available
does not make sense, so we only synchronize decks if the local BPM is
available.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants