summaryrefslogtreecommitdiffstats
path: root/src/multimedia/audio/qtaudio.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix ABI breakage wrt QAudioSink/Source::stateChanged signalsVolker Hilsheimer2024-04-051-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Amends edaec2bf714c98d65f12c8ed9a2ffbd1603635a7, which removed the QAudioSink/Source::stateChanged(QAudio::State) symbols from the API, thus breaking binary compatibility to Qt 6.6. Since moc-generated code compares pointer-to-member- functions, we cannot bring that symbol back and still have such connections work. The only reasonable way to fix this is to reverse the namespace aliasing: QAudio is the real namespace, QtAudio becomes an alias. All symbols are then exported with the QAudio type in their signature, even if declared with QtAudio types as parameters, so we don't need any removed_api tricks to bring the old symbols back. We just need to trick qdoc into seeing the namespace as QtAudio, which is trivial and has no ABI implications. The previous caveat that string-based connections need to use QAudio doesn't change with this. [ChangeLog][Binary Compatibility Note] Qt 6.7.0 broke binary compatibility by renaming the QAudio namespace to QtAudio. Qt 6.7.1 restores compatibility with previous Qt 6 versions again by making QtAudio an alias for the QAudio namespace, but breaks BC with 6.7.0. Code previously built against 6.7.0 needs to be recompiled. Pick-to: 6.7 Fixes: QTBUG-123997 Change-Id: I456db61ff0bd1d97af7ce2d2a7968999d891a84d Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
* Rename QAudio namespace to QtAudioVolker Hilsheimer2024-02-201-0/+241
With the addition of the QtVideo namespace in Qt 6.7 it becomes obvious that the existing QAudio namespace is not named according to the convention for namespaces in Qt. To fix this, we can rename the QAudio namespace to QtAudio, and declare the QAudio namespace as an alias for QtAudio. Public APIs using a QAudio type in their signature need to be exported from a removed_api.cpp file to maintain binary compatibility. Two of those are a signal, which leaves one challenge: string-based connects will have to use the QAudio namespace, in spite of the documentation, as the signal doesn't exist with a QtAudio parameter. Add a \note in the signals' documentation. [ChangeLog][Qt Multimedia][Potentially Source-Incompatible Changes] The QAudio namespace has been renamed to QtAudio, with QAudio still being available as an alias. String based connections to QAudioSink/Source::stateChanged need to continue to use QAudio::State as the parameter. Pick-to: 6.7 Change-Id: If49676ee62e048efbed68bb0e4848a5fefaea2f7 Reviewed-by: Lars Knoll <lars@knoll.priv.no> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Artem Dyomin <artem.dyomin@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>