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

fix scripts for Qt 5.12 #6

Conversation

Be-ing
Copy link

@Be-ing Be-ing commented Dec 28, 2018

and resolve merge conflict with master

daschuer and others added 30 commits November 28, 2018 23:53
Conflicts:
	src/library/searchqueryparser.cpp
so that shorter time formats (i.e. without fractional seconds) don't take up to much space.
This was previously guarded by an #ifdef Q_WS_X11, but switching
to Q_OS_LINUX caused a link error:

/usr/bin/ld: lin64_build/mixxx.o: in function `MixxxMainWindow::MixxxMainWindow(QApplication*, CmdlineArgs const&)':
/home/uk/Projects/Mixxx/mixxx/src/mixxx.cpp:187: undefined reference to `qt_x11_wait_for_window_manager(QWidget*)'

It turns out that Q_WS_X11 is no longer defined with Qt5, yet it
does not seem that building Mixxx without the call to
qt_x11_wait_for_window_manager has caused any issues, so I presume
it is safe to remove it now. This was the only place in Mixxx
where Q_WS_X11 was referenced.
let Key widget display key, cents or both (or nothing)
Somehow this is broken with Qt 5.12 and QJSEngine. I am not
sure if the bug is in Qt or the scripts.
Lodash's assign function is no longer needed with Object.assign in ES6
with Qt 5.12. The ComponentContainer.applyLayer function ended up not
being used and only confused people, so it is being removed instead of
rewriting it to not Lodash.
@Be-ing
Copy link
Author

Be-ing commented Dec 28, 2018

@Swiftb0y are you able to test the changes to the Numark N4 script? This will require building this PR with Qt 5.12.

@Be-ing Be-ing force-pushed the qjsengine_migration branch 2 times, most recently from 8392a94 to e4775aa Compare December 28, 2018 08:03
The Numark N4 script required a handful of changes and will need testing
by someone who has that controller.
It is no longer needed with ES7 in Qt 5.12.
@Be-ing
Copy link
Author

Be-ing commented Dec 28, 2018

Tests pass with Qt 5.12 ✔️

@Swiftb0y
Copy link

are you able to test the changes to the Numark N4 script?

Unfortunately not very soon. I don't have access to any of my controllers until the end of my christmas break (05.01.2019). However I can look over the modified code as well and do some manual testing by simulating controller interaction via a virtual device.

@Be-ing
Copy link
Author

Be-ing commented Dec 28, 2018

Don't worry, we can wait a few days.

Copy link
Owner

@ferranpujolcamins ferranpujolcamins left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool. Thank you very much. Can we remove the lodash .js file then?

@Be-ing
Copy link
Author

Be-ing commented Dec 28, 2018

I did that in the last commit.

@ferranpujolcamins
Copy link
Owner

Its true, sorry. Thank you very much for this!

@ferranpujolcamins ferranpujolcamins merged commit 99f9f36 into ferranpujolcamins:migrate-to-QJSEngine Dec 28, 2018
ferranpujolcamins pushed a commit that referenced this pull request Mar 22, 2020
use QEvent::WindowDeactivate to reset the press state
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
Silence some float conversion warnings by making conversion explicit
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.