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

Update scripts for QJSEngine #5

Conversation

Be-ing
Copy link

@Be-ing Be-ing commented Nov 22, 2018

as discussed on Launchpad

I can't test if this works yet because of mixxxdj#1795 (comment)

The old hacks for preserving the "this" object for
engine.makeConnection, engine.connectControl, and
engine.beginTimer do not work with QJSEngine, but QJSEngine
brings support for ES5, which supports Function.prototype.bind.
https://bugs.launchpad.net/mixxx/+bug/1733666
The old	hacks for preserving the "this" object for
engine.makeConnection, engine.connectControl, and
engine.beginTimer do not work with QJSEngine, but QJSEngine
brings support for ES5,	which supports Function.prototype.bind.
https://bugs.launchpad.net/mixxx/+bug/1733666
The old	hacks for preserving the "this" object for
engine.makeConnection, engine.connectControl, and
engine.beginTimer do not work with QJSEngine, but QJSEngine
brings support for ES5,	which supports Function.prototype.bind.
https://bugs.launchpad.net/mixxx/+bug/1733666
@Be-ing Be-ing force-pushed the update_scripts_for_qjsengine branch from b6cc848 to ccbc73c Compare November 24, 2018 14:06
@ferranpujolcamins
Copy link
Owner

This looks good! Can you do a quick test this is working as expected?

@Be-ing
Copy link
Author

Be-ing commented Nov 30, 2018

Yes it works.

@ferranpujolcamins ferranpujolcamins merged commit 2cfa4bc into ferranpujolcamins:migrate-to-QJSEngine Dec 1, 2018
ferranpujolcamins pushed a commit that referenced this pull request Jan 25, 2019
…Schemes

Fix set variable in color schemes
@Be-ing Be-ing deleted the update_scripts_for_qjsengine branch April 24, 2019 23:47
ferranpujolcamins pushed a commit that referenced this pull request Apr 24, 2021
Set highspeedScale to 20, to allow quick search through track using S…
ferranpujolcamins pushed a commit that referenced this pull request Apr 24, 2021
ferranpujolcamins 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.
ferranpujolcamins pushed a commit that referenced this pull request Jun 10, 2023
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.

2 participants