tsowell / kobo-btpt Goto Github PK
View Code? Open in Web Editor NEWPage turning via Bluetooth for Kobo eReaders
License: MIT License
Page turning via Bluetooth for Kobo eReaders
License: MIT License
I've had this issue on all bluetooth devices I've used so far, not sure if this is this mod's area or nickel itself, but although pressing a button very quickly works perfectly, if you keep the button pressed for 1 second, the Bluetooth device will lose it's lock and the Bluetooth device has to be rebooted again. If a device connection is lost, retrying for connection or solving this problem entirely would be a great life improvement.
Thank you for your good project. I try to use it to improve poor bluetooth support on Libra 2. However, I can't use it to purn page. Here is my relevant log. Does it mean my mouse is not supported on Libra 2 ?
Apr 3 10:08:49 nickel: (BluetoothPageTurner) starting
Apr 3 10:08:49 nickel: (BluetoothPageTurner) waiting for input devices
Apr 3 10:09:43 nickel: (BluetoothPageTurner) checking /proc/bus/input/devices for new devices
Apr 3 10:09:43 nickel: (BluetoothPageTurner) skipping Bus=0019 Vendor=0001 Product=0001 Version=0100
Apr 3 10:09:43 nickel: (BluetoothPageTurner) skipping Bus=0018 Vendor=0000 Product=0000 Version=0000
Apr 3 10:09:43 nickel: (BluetoothPageTurner) skipping Bus=0018 Vendor=001b Product=0000 Version=0000
Apr 3 10:09:43 nickel: (BluetoothPageTurner) found Bus=0005 Vendor=0a5c Product=0001 Version=0129
Apr 3 10:09:43 nickel: (BluetoothPageTurner) acquired device event3: 902985655473
Apr 3 10:09:43 nickel: (BluetoothPageTurner) devices scanned
[root@kobo ~]# logread | grep bluetoothd
Apr 3 10:09:28 bluetoothd[1377]: Bluetooth daemon 5.56
Apr 3 10:09:28 bluetoothd[1377]: Starting SDP server
Apr 3 10:09:28 bluetoothd[1377]: src/rfkill.c:rfkill_init() Failed to open RFKILL control device
Apr 3 10:09:28 bluetoothd[1377]: Bluetooth management interface 1.9 initialized
Apr 3 10:09:30 bluetoothd[1377]: src/adapter.c:reset_adv_monitors_complete() Failed to reset Adv Monitors: Unknown Command (0x01)
Apr 3 10:09:30 bluetoothd[1377]: Endpoint registered: sender=:1.2 path=/org/bluez/hci0/A2DP/SBC/Source/1
Apr 3 10:09:30 bluetoothd[1377]: Endpoint registered: sender=:1.2 path=/org/bluez/hci0/A2DP/SBC/Source/2
Apr 3 10:09:30 bluetoothd[1377]: Player registered: sender=:1.0 path=/com/kobo/bluetooth/MediaPlayer
Apr 3 10:09:31 bluetoothd[1377]: profiles/input/device.c:ioctl_is_connected() Can't get HIDP connection info
[root@kobo ~]# bluetoothctl paired-devices
Device 90:29:85:65:54:73 E-PCG233
[root@kobo ~]# bluetoothctl info 90:29:85:65:54:73
Device 90:29:85:65:54:73 (public)
Name: E-PCG233
Alias: E-PCG233
Class: 0x00002580
Icon: input-mouse
Paired: yes
Trusted: yes
Blocked: no
Connected: yes
WakeAllowed: no
LegacyPairing: no
UUID: Human Interface Device... (00001124-0000-1000-8000-00805f9b34fb)
UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb)
Modalias: usb:v0A5Cp0001d0129
By the way, I can use evtest to capture some events.
Event: time 1648952680.956856, type 4 (Misc), code 4 (ScanCode), value 90001
Event: time 1648952680.956856 ------- Report Sync ------ x: 49 y: 30 p: 0 ------------
Event: time 1648952681.136896, type 4 (Misc), code 4 (ScanCode), value 90001
Event: time 1648952681.136896 ------- Report Sync ------ x: 49 y: 30 p: 0 ------------
Event: time 1648952681.747985, type 4 (Misc), code 4 (ScanCode), value 90002
Event: time 1648952681.747985 ------- Report Sync ------ x: 49 y: 30 p: 0 ------------
Event: time 1648952681.855500, type 4 (Misc), code 4 (ScanCode), value 90002
Event: time 1648952681.855500 ------- Report Sync ------ x: 49 y: 30 p: 0 ------------
This is my configuration.
prevPage EV_MSC MSC_SCAN 90001
nextPage EV_MSC MSC_SCAN 90002
Please give me some hints. Thank you.
I faced a number of errors when compiling on Ubuntu 22.04. Any idea why?
[kobo-btpt]# export QT5WIDGETS_CFLAGS="-DQT_WIDGETS_LIB -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets"
[kobo-btpt]# export QT5GUI_CFLAGS="-DQT_GUI_LIB -I/usr/include/x86_64-linux-gnu/qt5/QtGui"
[kobo-btpt]# export QT5CORE_CFLAGS="-std=c++11 -DQT_CORE_LIB -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtCore"
[kobo-btpt]# export PATH="$PATH:path/to/toolchain/bin"
[kobo-btpt]# make
-- Detected version: v0.0.2-3-gd9ba2fe-dirty
-- Using provided CFLAGS and LIBS for Qt5Core
-- Using provided CFLAGS and LIBS for Qt5Gui
-- Using provided CFLAGS and LIBS for Qt5Widgets
-- Using provided CFLAGS and LIBS for Qt5Core
-- Using provided CFLAGS and LIBS for Qt5Gui
arm-nickel-linux-gnueabihf-g++ -INickelHook/ -DNH_VERSION='"v0.0.2-3-gd9ba2fe-dirty"' -O2 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=hard -mthumb -Wall -Wextra -Werror -Wno-missing-field-initializers -std=gnu++11 -pthread -std=c++11 -DQT_CORE_LIB -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtCore -DQT_GUI_LIB -I/usr/include/x86_64-linux-gnu/qt5/QtGui -DQT_WIDGETS_LIB -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -std=c++11 -DQT_CORE_LIB -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtCore -DQT_GUI_LIB -I/usr/include/x86_64-linux-gnu/qt5/QtGui -fPIC -c src/btpt.cc -o src/btpt.o
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h:46:0,
from /usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:1301,
from /usr/include/x86_64-linux-gnu/qt5/QtGui/qtguiglobal.h:43,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qtwidgetsglobal.h:43,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qapplication.h:43,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QApplication:1,
from src/btpt.cc:15:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:61:4: error: #error "Qt requires C++11 support"
# error "Qt requires C++11 support"
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:94:13: error: 'QAtomicOps' does not name a type
typedef QAtomicOps<T> Ops;
^
In file included from /usr/include/x86_64-linux-gnu/qt5/QtGui/qtguiglobal.h:43:0,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qtwidgetsglobal.h:43,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qapplication.h:43,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QApplication:1,
from src/btpt.cc:15:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:97:23: error: 'QAtomicOpsSupport' was not declared in this scope
Q_STATIC_ASSERT_X(QAtomicOpsSupport<sizeof(T)>::IsSupported, "template parameter is an integral of a size not supported on this platform");
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:121:68: note: in definition of macro 'Q_STATIC_ASSERT_X'
# define Q_STATIC_ASSERT_X(Condition, Message) static_assert(bool(Condition), Message)
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:97:51: error: '::IsSupported' has not been declared
Q_STATIC_ASSERT_X(QAtomicOpsSupport<sizeof(T)>::IsSupported, "template parameter is an integral of a size not supported on this platform");
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:121:68: note: in definition of macro 'Q_STATIC_ASSERT_X'
# define Q_STATIC_ASSERT_X(Condition, Message) static_assert(bool(Condition), Message)
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:121:49: error: non-constant condition for static assertion
# define Q_STATIC_ASSERT_X(Condition, Message) static_assert(bool(Condition), Message)
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:97:5: note: in expansion of macro 'Q_STATIC_ASSERT_X'
Q_STATIC_ASSERT_X(QAtomicOpsSupport<sizeof(T)>::IsSupported, "template parameter is an integral of a size not supported on this platform");
^
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h:46:0,
from /usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:1301,
from /usr/include/x86_64-linux-gnu/qt5/QtGui/qtguiglobal.h:43,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qtwidgetsglobal.h:43,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qapplication.h:43,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QApplication:1,
from src/btpt.cc:15:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:99:14: error: 'Ops' has not been declared
typename Ops::Type _q_value;
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::loadRelaxed() const':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:107:45: error: 'Ops' has not been declared
T loadRelaxed() const noexcept { return Ops::loadRelaxed(_q_value); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'void QBasicAtomicInteger<T>::storeRelaxed(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:108:46: error: 'Ops' has not been declared
void storeRelaxed(T newValue) noexcept { Ops::storeRelaxed(_q_value, newValue); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::loadAcquire() const':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:110:45: error: 'Ops' has not been declared
T loadAcquire() const noexcept { return Ops::loadAcquire(_q_value); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'void QBasicAtomicInteger<T>::storeRelease(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:111:46: error: 'Ops' has not been declared
void storeRelease(T newValue) noexcept { Ops::storeRelease(_q_value, newValue); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In static member function 'static bool QBasicAtomicInteger<T>::isReferenceCountingNative()':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:115:80: error: 'Ops' has not been declared
static Q_DECL_CONSTEXPR bool isReferenceCountingNative() noexcept { return Ops::isReferenceCountingNative(); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In static member function 'static bool QBasicAtomicInteger<T>::isReferenceCountingWaitFree()':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:116:82: error: 'Ops' has not been declared
static Q_DECL_CONSTEXPR bool isReferenceCountingWaitFree() noexcept { return Ops::isReferenceCountingWaitFree(); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicInteger<T>::ref()':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:118:34: error: 'Ops' has not been declared
bool ref() noexcept { return Ops::ref(_q_value); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicInteger<T>::deref()':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:119:36: error: 'Ops' has not been declared
bool deref() noexcept { return Ops::deref(_q_value); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In static member function 'static bool QBasicAtomicInteger<T>::isTestAndSetNative()':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:121:73: error: 'Ops' has not been declared
static Q_DECL_CONSTEXPR bool isTestAndSetNative() noexcept { return Ops::isTestAndSetNative(); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In static member function 'static bool QBasicAtomicInteger<T>::isTestAndSetWaitFree()':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:122:75: error: 'Ops' has not been declared
static Q_DECL_CONSTEXPR bool isTestAndSetWaitFree() noexcept { return Ops::isTestAndSetWaitFree(); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicInteger<T>::testAndSetRelaxed(T, T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:125:14: error: 'Ops' has not been declared
{ return Ops::testAndSetRelaxed(_q_value, expectedValue, newValue); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicInteger<T>::testAndSetAcquire(T, T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:127:14: error: 'Ops' has not been declared
{ return Ops::testAndSetAcquire(_q_value, expectedValue, newValue); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicInteger<T>::testAndSetRelease(T, T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:129:14: error: 'Ops' has not been declared
{ return Ops::testAndSetRelease(_q_value, expectedValue, newValue); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicInteger<T>::testAndSetOrdered(T, T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:131:14: error: 'Ops' has not been declared
{ return Ops::testAndSetOrdered(_q_value, expectedValue, newValue); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicInteger<T>::testAndSetRelaxed(T, T, T&)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:134:14: error: 'Ops' has not been declared
{ return Ops::testAndSetRelaxed(_q_value, expectedValue, newValue, ¤tValue); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicInteger<T>::testAndSetAcquire(T, T, T&)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:136:14: error: 'Ops' has not been declared
{ return Ops::testAndSetAcquire(_q_value, expectedValue, newValue, ¤tValue); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicInteger<T>::testAndSetRelease(T, T, T&)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:138:14: error: 'Ops' has not been declared
{ return Ops::testAndSetRelease(_q_value, expectedValue, newValue, ¤tValue); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicInteger<T>::testAndSetOrdered(T, T, T&)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:140:14: error: 'Ops' has not been declared
{ return Ops::testAndSetOrdered(_q_value, expectedValue, newValue, ¤tValue); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In static member function 'static bool QBasicAtomicInteger<T>::isFetchAndStoreNative()':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:142:76: error: 'Ops' has not been declared
static Q_DECL_CONSTEXPR bool isFetchAndStoreNative() noexcept { return Ops::isFetchAndStoreNative(); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In static member function 'static bool QBasicAtomicInteger<T>::isFetchAndStoreWaitFree()':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:143:78: error: 'Ops' has not been declared
static Q_DECL_CONSTEXPR bool isFetchAndStoreWaitFree() noexcept { return Ops::isFetchAndStoreWaitFree(); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndStoreRelaxed(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:146:14: error: 'Ops' has not been declared
{ return Ops::fetchAndStoreRelaxed(_q_value, newValue); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndStoreAcquire(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:148:14: error: 'Ops' has not been declared
{ return Ops::fetchAndStoreAcquire(_q_value, newValue); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndStoreRelease(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:150:14: error: 'Ops' has not been declared
{ return Ops::fetchAndStoreRelease(_q_value, newValue); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndStoreOrdered(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:152:14: error: 'Ops' has not been declared
{ return Ops::fetchAndStoreOrdered(_q_value, newValue); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In static member function 'static bool QBasicAtomicInteger<T>::isFetchAndAddNative()':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:154:74: error: 'Ops' has not been declared
static Q_DECL_CONSTEXPR bool isFetchAndAddNative() noexcept { return Ops::isFetchAndAddNative(); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In static member function 'static bool QBasicAtomicInteger<T>::isFetchAndAddWaitFree()':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:155:76: error: 'Ops' has not been declared
static Q_DECL_CONSTEXPR bool isFetchAndAddWaitFree() noexcept { return Ops::isFetchAndAddWaitFree(); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndAddRelaxed(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:158:14: error: 'Ops' has not been declared
{ return Ops::fetchAndAddRelaxed(_q_value, valueToAdd); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndAddAcquire(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:160:14: error: 'Ops' has not been declared
{ return Ops::fetchAndAddAcquire(_q_value, valueToAdd); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndAddRelease(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:162:14: error: 'Ops' has not been declared
{ return Ops::fetchAndAddRelease(_q_value, valueToAdd); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndAddOrdered(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:164:14: error: 'Ops' has not been declared
{ return Ops::fetchAndAddOrdered(_q_value, valueToAdd); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndSubRelaxed(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:167:14: error: 'Ops' has not been declared
{ return Ops::fetchAndSubRelaxed(_q_value, valueToAdd); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndSubAcquire(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:169:14: error: 'Ops' has not been declared
{ return Ops::fetchAndSubAcquire(_q_value, valueToAdd); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndSubRelease(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:171:14: error: 'Ops' has not been declared
{ return Ops::fetchAndSubRelease(_q_value, valueToAdd); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndSubOrdered(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:173:14: error: 'Ops' has not been declared
{ return Ops::fetchAndSubOrdered(_q_value, valueToAdd); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndAndRelaxed(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:176:14: error: 'Ops' has not been declared
{ return Ops::fetchAndAndRelaxed(_q_value, valueToAdd); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndAndAcquire(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:178:14: error: 'Ops' has not been declared
{ return Ops::fetchAndAndAcquire(_q_value, valueToAdd); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndAndRelease(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:180:14: error: 'Ops' has not been declared
{ return Ops::fetchAndAndRelease(_q_value, valueToAdd); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndAndOrdered(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:182:14: error: 'Ops' has not been declared
{ return Ops::fetchAndAndOrdered(_q_value, valueToAdd); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndOrRelaxed(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:185:14: error: 'Ops' has not been declared
{ return Ops::fetchAndOrRelaxed(_q_value, valueToAdd); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndOrAcquire(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:187:14: error: 'Ops' has not been declared
{ return Ops::fetchAndOrAcquire(_q_value, valueToAdd); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndOrRelease(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:189:14: error: 'Ops' has not been declared
{ return Ops::fetchAndOrRelease(_q_value, valueToAdd); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndOrOrdered(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:191:14: error: 'Ops' has not been declared
{ return Ops::fetchAndOrOrdered(_q_value, valueToAdd); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndXorRelaxed(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:194:14: error: 'Ops' has not been declared
{ return Ops::fetchAndXorRelaxed(_q_value, valueToAdd); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndXorAcquire(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:196:14: error: 'Ops' has not been declared
{ return Ops::fetchAndXorAcquire(_q_value, valueToAdd); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndXorRelease(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:198:14: error: 'Ops' has not been declared
{ return Ops::fetchAndXorRelease(_q_value, valueToAdd); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'T QBasicAtomicInteger<T>::fetchAndXorOrdered(T)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:200:14: error: 'Ops' has not been declared
{ return Ops::fetchAndXorOrdered(_q_value, valueToAdd); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: At global scope:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:238:13: error: 'QAtomicOps' does not name a type
typedef QAtomicOps<Type> Ops;
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:239:22: error: 'Ops' has not been declared
typedef typename Ops::Type AtomicType;
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'X* QBasicAtomicPointer<X>::loadRelaxed() const':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:248:48: error: 'Ops' has not been declared
Type loadRelaxed() const noexcept { return Ops::loadRelaxed(_q_value); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'void QBasicAtomicPointer<X>::storeRelaxed(QBasicAtomicPointer<X>::Type)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:249:49: error: 'Ops' has not been declared
void storeRelaxed(Type newValue) noexcept { Ops::storeRelaxed(_q_value, newValue); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'X* QBasicAtomicPointer<X>::loadAcquire() const':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:255:48: error: 'Ops' has not been declared
Type loadAcquire() const noexcept { return Ops::loadAcquire(_q_value); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'void QBasicAtomicPointer<X>::storeRelease(QBasicAtomicPointer<X>::Type)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:256:49: error: 'Ops' has not been declared
void storeRelease(Type newValue) noexcept { Ops::storeRelease(_q_value, newValue); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In static member function 'static bool QBasicAtomicPointer<X>::isTestAndSetNative()':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:258:73: error: 'Ops' has not been declared
static Q_DECL_CONSTEXPR bool isTestAndSetNative() noexcept { return Ops::isTestAndSetNative(); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In static member function 'static bool QBasicAtomicPointer<X>::isTestAndSetWaitFree()':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:259:75: error: 'Ops' has not been declared
static Q_DECL_CONSTEXPR bool isTestAndSetWaitFree() noexcept { return Ops::isTestAndSetWaitFree(); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicPointer<X>::testAndSetRelaxed(QBasicAtomicPointer<X>::Type, QBasicAtomicPointer<X>::Type)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:262:14: error: 'Ops' has not been declared
{ return Ops::testAndSetRelaxed(_q_value, expectedValue, newValue); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicPointer<X>::testAndSetAcquire(QBasicAtomicPointer<X>::Type, QBasicAtomicPointer<X>::Type)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:264:14: error: 'Ops' has not been declared
{ return Ops::testAndSetAcquire(_q_value, expectedValue, newValue); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicPointer<X>::testAndSetRelease(QBasicAtomicPointer<X>::Type, QBasicAtomicPointer<X>::Type)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:266:14: error: 'Ops' has not been declared
{ return Ops::testAndSetRelease(_q_value, expectedValue, newValue); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicPointer<X>::testAndSetOrdered(QBasicAtomicPointer<X>::Type, QBasicAtomicPointer<X>::Type)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:268:14: error: 'Ops' has not been declared
{ return Ops::testAndSetOrdered(_q_value, expectedValue, newValue); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicPointer<X>::testAndSetRelaxed(QBasicAtomicPointer<X>::Type, QBasicAtomicPointer<X>::Type, X*&)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:271:14: error: 'Ops' has not been declared
{ return Ops::testAndSetRelaxed(_q_value, expectedValue, newValue, ¤tValue); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicPointer<X>::testAndSetAcquire(QBasicAtomicPointer<X>::Type, QBasicAtomicPointer<X>::Type, X*&)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:273:14: error: 'Ops' has not been declared
{ return Ops::testAndSetAcquire(_q_value, expectedValue, newValue, ¤tValue); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicPointer<X>::testAndSetRelease(QBasicAtomicPointer<X>::Type, QBasicAtomicPointer<X>::Type, X*&)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:275:14: error: 'Ops' has not been declared
{ return Ops::testAndSetRelease(_q_value, expectedValue, newValue, ¤tValue); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'bool QBasicAtomicPointer<X>::testAndSetOrdered(QBasicAtomicPointer<X>::Type, QBasicAtomicPointer<X>::Type, X*&)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:277:14: error: 'Ops' has not been declared
{ return Ops::testAndSetOrdered(_q_value, expectedValue, newValue, ¤tValue); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In static member function 'static bool QBasicAtomicPointer<X>::isFetchAndStoreNative()':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:279:76: error: 'Ops' has not been declared
static Q_DECL_CONSTEXPR bool isFetchAndStoreNative() noexcept { return Ops::isFetchAndStoreNative(); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In static member function 'static bool QBasicAtomicPointer<X>::isFetchAndStoreWaitFree()':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:280:78: error: 'Ops' has not been declared
static Q_DECL_CONSTEXPR bool isFetchAndStoreWaitFree() noexcept { return Ops::isFetchAndStoreWaitFree(); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'X* QBasicAtomicPointer<X>::fetchAndStoreRelaxed(QBasicAtomicPointer<X>::Type)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:283:14: error: 'Ops' has not been declared
{ return Ops::fetchAndStoreRelaxed(_q_value, newValue); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'X* QBasicAtomicPointer<X>::fetchAndStoreAcquire(QBasicAtomicPointer<X>::Type)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:285:14: error: 'Ops' has not been declared
{ return Ops::fetchAndStoreAcquire(_q_value, newValue); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'X* QBasicAtomicPointer<X>::fetchAndStoreRelease(QBasicAtomicPointer<X>::Type)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:287:14: error: 'Ops' has not been declared
{ return Ops::fetchAndStoreRelease(_q_value, newValue); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'X* QBasicAtomicPointer<X>::fetchAndStoreOrdered(QBasicAtomicPointer<X>::Type)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:289:14: error: 'Ops' has not been declared
{ return Ops::fetchAndStoreOrdered(_q_value, newValue); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In static member function 'static bool QBasicAtomicPointer<X>::isFetchAndAddNative()':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:291:74: error: 'Ops' has not been declared
static Q_DECL_CONSTEXPR bool isFetchAndAddNative() noexcept { return Ops::isFetchAndAddNative(); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In static member function 'static bool QBasicAtomicPointer<X>::isFetchAndAddWaitFree()':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:292:76: error: 'Ops' has not been declared
static Q_DECL_CONSTEXPR bool isFetchAndAddWaitFree() noexcept { return Ops::isFetchAndAddWaitFree(); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'X* QBasicAtomicPointer<X>::fetchAndAddRelaxed(qptrdiff)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:295:14: error: 'Ops' has not been declared
{ return Ops::fetchAndAddRelaxed(_q_value, valueToAdd); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'X* QBasicAtomicPointer<X>::fetchAndAddAcquire(qptrdiff)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:297:14: error: 'Ops' has not been declared
{ return Ops::fetchAndAddAcquire(_q_value, valueToAdd); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'X* QBasicAtomicPointer<X>::fetchAndAddRelease(qptrdiff)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:299:14: error: 'Ops' has not been declared
{ return Ops::fetchAndAddRelease(_q_value, valueToAdd); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'X* QBasicAtomicPointer<X>::fetchAndAddOrdered(qptrdiff)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:301:14: error: 'Ops' has not been declared
{ return Ops::fetchAndAddOrdered(_q_value, valueToAdd); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'X* QBasicAtomicPointer<X>::fetchAndSubRelaxed(qptrdiff)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:304:14: error: 'Ops' has not been declared
{ return Ops::fetchAndSubRelaxed(_q_value, valueToAdd); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'X* QBasicAtomicPointer<X>::fetchAndSubAcquire(qptrdiff)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:306:14: error: 'Ops' has not been declared
{ return Ops::fetchAndSubAcquire(_q_value, valueToAdd); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'X* QBasicAtomicPointer<X>::fetchAndSubRelease(qptrdiff)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:308:14: error: 'Ops' has not been declared
{ return Ops::fetchAndSubRelease(_q_value, valueToAdd); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In member function 'X* QBasicAtomicPointer<X>::fetchAndSubOrdered(qptrdiff)':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:310:14: error: 'Ops' has not been declared
{ return Ops::fetchAndSubOrdered(_q_value, valueToAdd); }
^
src/btpt.cc: In member function 'bool BluetoothPageTurner::addDevice(const QString&, const QString&, const QString&)':
src/btpt.cc:125:65: error: 'QStringList QString::split(const QString&, QString::SplitBehavior, Qt::CaseSensitivity) const' is deprecated (declared at /usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h:609): Use Qt::SplitBehavior variant instead [-Werror=deprecated-declarations]
QList<QString> parts = line.split(" ", QString::SkipEmptyParts);
^
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h:46:0,
from /usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:1301,
from /usr/include/x86_64-linux-gnu/qt5/QtGui/qtguiglobal.h:43,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qtwidgetsglobal.h:43,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qapplication.h:43,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QApplication:1,
from src/btpt.cc:15:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In instantiation of 'T QBasicAtomicInteger<T>::loadRelaxed() const [with T = int]':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qrefcount.h:55:40: required from here
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:107:73: error: no return statement in function returning non-void [-Werror=return-type]
T loadRelaxed() const noexcept { return Ops::loadRelaxed(_q_value); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In instantiation of 'bool QBasicAtomicInteger<T>::ref() [with T = int]':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qrefcount.h:61:24: required from here
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:118:54: error: no return statement in function returning non-void [-Werror=return-type]
bool ref() noexcept { return Ops::ref(_q_value); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In instantiation of 'bool QBasicAtomicInteger<T>::deref() [with T = int]':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qrefcount.h:73:29: required from here
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:119:58: error: no return statement in function returning non-void [-Werror=return-type]
bool deref() noexcept { return Ops::deref(_q_value); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In instantiation of 'bool QBasicAtomicInteger<T>::testAndSetRelaxed(T, T) [with T = int]':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qrefcount.h:81:49: required from here
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:125:73: error: no return statement in function returning non-void [-Werror=return-type]
{ return Ops::testAndSetRelaxed(_q_value, expectedValue, newValue); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In instantiation of 'T QBasicAtomicInteger<T>::loadAcquire() const [with T = int]':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:2404:1: required from here
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:110:73: error: no return statement in function returning non-void [-Werror=return-type]
T loadAcquire() const noexcept { return Ops::loadAcquire(_q_value); }
^
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h:54:0,
from /usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h:46,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qapplication.h:44,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QApplication:1,
from src/btpt.cc:15:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h: In instantiation of 'QtMetaTypePrivate::QSequentialIterableImpl::QSequentialIterableImpl(const T*) [with T = QList<QVariant>]':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h:772:139: required from here
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1160:135: error: ambiguous class template instantiation for 'struct QtMetaTypePrivate::ContainerCapabilitiesImpl<QList<QVariant>, void>'
, _iteratorCapabilities(ContainerAPI<T>::IteratorCapabilities | (1 << 4) | (ContainerCapabilitiesImpl<T>::ContainerCapabilities << (4+3)))
^In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h:54:0,
from /usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h:46,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qapplication.h:44,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QApplication:1,
from src/btpt.cc:15:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1007:8: error: candidates are: struct QtMetaTypePrivate::ContainerCapabilitiesImpl<Container, decltype (declval<Container>().push_back(declval<typename Container::value_type>()))>
struct ContainerCapabilitiesImpl<Container, decltype(std::declval<Container>().push_back(std::declval<typename Container::value_type>()))>
^
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h:54:0,
from /usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h:46,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qapplication.h:44,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QApplication:1,
from src/btpt.cc:15:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1025:8: error: struct QtMetaTypePrivate::ContainerCapabilitiesImpl<Container, void>
struct ContainerCapabilitiesImpl<Container, QtPrivate::ContainerCapabilitiesMetaProgrammingHelper::void_t<decltype(std::declval<Container>().insert(std::declval<typename Container::value_type>())), decltype(std::declval<typename Container::value_type>() == std::declval<typename Container::value_type>())>>
^
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h:54:0,
from /usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h:46,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qapplication.h:44,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QApplication:1,
from src/btpt.cc:15:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1160:135: error: incomplete type 'QtMetaTypePrivate::ContainerCapabilitiesImpl<QList<QVariant>, void>' used in nested name specifier
, _iteratorCapabilities(ContainerAPI<T>::IteratorCapabilities | (1 << 4) | (ContainerCapabilitiesImpl<T>::ContainerCapabilities << (4+3)))
^/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1169:68: error: incomplete type 'QtMetaTypePrivate::ContainerCapabilitiesImpl<QList<QVariant>, void>' used in nested name specifier
, _copyIter(IteratorOwner<typename T::const_iterator>::assign)
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h: In instantiation of 'QtMetaTypePrivate::QSequentialIterableImpl::QSequentialIterableImpl(const T*) [with T = QStringList]':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h:775:138: required from here
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1160:135: error: ambiguous class template instantiation for 'struct QtMetaTypePrivate::ContainerCapabilitiesImpl<QStringList, void>'
, _iteratorCapabilities(ContainerAPI<T>::IteratorCapabilities | (1 << 4) | (ContainerCapabilitiesImpl<T>::ContainerCapabilities << (4+3)))
^In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h:54:0,
from /usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h:46,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qapplication.h:44,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QApplication:1,
from src/btpt.cc:15:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1007:8: error: candidates are: struct QtMetaTypePrivate::ContainerCapabilitiesImpl<Container, decltype (declval<Container>().push_back(declval<typename Container::value_type>()))>
struct ContainerCapabilitiesImpl<Container, decltype(std::declval<Container>().push_back(std::declval<typename Container::value_type>()))>
^
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h:54:0,
from /usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h:46,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qapplication.h:44,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QApplication:1,
from src/btpt.cc:15:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1025:8: error: struct QtMetaTypePrivate::ContainerCapabilitiesImpl<Container, void>
struct ContainerCapabilitiesImpl<Container, QtPrivate::ContainerCapabilitiesMetaProgrammingHelper::void_t<decltype(std::declval<Container>().insert(std::declval<typename Container::value_type>())), decltype(std::declval<typename Container::value_type>() == std::declval<typename Container::value_type>())>>
^
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h:54:0,
from /usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h:46,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qapplication.h:44,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QApplication:1,
from src/btpt.cc:15:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1160:135: error: incomplete type 'QtMetaTypePrivate::ContainerCapabilitiesImpl<QStringList, void>' used in nested name specifier
, _iteratorCapabilities(ContainerAPI<T>::IteratorCapabilities | (1 << 4) | (ContainerCapabilitiesImpl<T>::ContainerCapabilities << (4+3)))
^/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1169:68: error: incomplete type 'QtMetaTypePrivate::ContainerCapabilitiesImpl<QStringList, void>' used in nested name specifier
, _copyIter(IteratorOwner<typename T::const_iterator>::assign)
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h: In instantiation of 'QtMetaTypePrivate::QSequentialIterableImpl::QSequentialIterableImpl(const T*) [with T = QList<QByteArray>]':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qvariant.h:779:141: required from here
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1160:135: error: ambiguous class template instantiation for 'struct QtMetaTypePrivate::ContainerCapabilitiesImpl<QList<QByteArray>, void>'
, _iteratorCapabilities(ContainerAPI<T>::IteratorCapabilities | (1 << 4) | (ContainerCapabilitiesImpl<T>::ContainerCapabilities << (4+3)))
^In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h:54:0,
from /usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h:46,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qapplication.h:44,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QApplication:1,
from src/btpt.cc:15:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1007:8: error: candidates are: struct QtMetaTypePrivate::ContainerCapabilitiesImpl<Container, decltype (declval<Container>().push_back(declval<typename Container::value_type>()))>
struct ContainerCapabilitiesImpl<Container, decltype(std::declval<Container>().push_back(std::declval<typename Container::value_type>()))>
^
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h:54:0,
from /usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h:46,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qapplication.h:44,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QApplication:1,
from src/btpt.cc:15:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1025:8: error: struct QtMetaTypePrivate::ContainerCapabilitiesImpl<Container, void>
struct ContainerCapabilitiesImpl<Container, QtPrivate::ContainerCapabilitiesMetaProgrammingHelper::void_t<decltype(std::declval<Container>().insert(std::declval<typename Container::value_type>())), decltype(std::declval<typename Container::value_type>() == std::declval<typename Container::value_type>())>>
^
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject.h:54:0,
from /usr/include/x86_64-linux-gnu/qt5/QtCore/qcoreapplication.h:46,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qapplication.h:44,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QApplication:1,
from src/btpt.cc:15:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1160:135: error: incomplete type 'QtMetaTypePrivate::ContainerCapabilitiesImpl<QList<QByteArray>, void>' used in nested name specifier
, _iteratorCapabilities(ContainerAPI<T>::IteratorCapabilities | (1 << 4) | (ContainerCapabilitiesImpl<T>::ContainerCapabilities << (4+3)))
^/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1169:68: error: incomplete type 'QtMetaTypePrivate::ContainerCapabilitiesImpl<QList<QByteArray>, void>' used in nested name specifier
, _copyIter(IteratorOwner<typename T::const_iterator>::assign)
^
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic.h:46:0,
from /usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:1301,
from /usr/include/x86_64-linux-gnu/qt5/QtGui/qtguiglobal.h:43,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qtwidgetsglobal.h:43,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qapplication.h:43,
from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QApplication:1,
from src/btpt.cc:15:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In instantiation of 'X* QBasicAtomicPointer<X>::loadRelaxed() const [with X = QMutexData; QBasicAtomicPointer<X>::Type = QMutexData*]':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmutex.h:86:9: required from here
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:248:76: error: no return statement in function returning non-void [-Werror=return-type]
Type loadRelaxed() const noexcept { return Ops::loadRelaxed(_q_value); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In instantiation of 'bool QBasicAtomicPointer<X>::testAndSetAcquire(QBasicAtomicPointer<X>::Type, QBasicAtomicPointer<X>::Type) [with X = QMutexData; QBasicAtomicPointer<X>::Type = QMutexData*]':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmutex.h:103:62: required from here
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:264:73: error: no return statement in function returning non-void [-Werror=return-type]
{ return Ops::testAndSetAcquire(_q_value, expectedValue, newValue); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In instantiation of 'bool QBasicAtomicPointer<X>::testAndSetRelease(QBasicAtomicPointer<X>::Type, QBasicAtomicPointer<X>::Type) [with X = QMutexData; QBasicAtomicPointer<X>::Type = QMutexData*]':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmutex.h:106:62: required from here
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:266:73: error: no return statement in function returning non-void [-Werror=return-type]
{ return Ops::testAndSetRelease(_q_value, expectedValue, newValue); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In instantiation of 'bool QBasicAtomicPointer<X>::testAndSetAcquire(QBasicAtomicPointer<X>::Type, QBasicAtomicPointer<X>::Type, X*&) [with X = QMutexData; QBasicAtomicPointer<X>::Type = QMutexData*]':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmutex.h:109:71: required from here
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:273:88: error: no return statement in function returning non-void [-Werror=return-type]
{ return Ops::testAndSetAcquire(_q_value, expectedValue, newValue, ¤tValue); }
^
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h: In instantiation of 'bool QBasicAtomicPointer<X>::testAndSetRelease(QBasicAtomicPointer<X>::Type, QBasicAtomicPointer<X>::Type, X*&) [with X = QMutexData; QBasicAtomicPointer<X>::Type = QMutexData*]':
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmutex.h:112:71: required from here
/usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:275:88: error: no return statement in function returning non-void [-Werror=return-type]
{ return Ops::testAndSetRelease(_q_value, expectedValue, newValue, ¤tValue); }
[kobo-btpt]#
I would be very helpful to have a list or small BT input devices known to work, like rings, remotes.
Also, what version of BT is supported by Libra 2, i was not able to find any info. That might prove important when looking for a compatible remote l, preferably one that would be as low energy as possible.
I have a Kobo Libra 2 and an 8BitDo Zero 2 gamepad. I followed the instructions and everything seems fine. I like how easy this has been to install, but it's not working though, any idea on how to debug this or where I could have went wrong? Tried twice.
Kobo Libra 2 version: 4.38.21908
8BitDo Zero 2 version: 1.06
I'm trying to figure out if this is running when KOReader is started. If it isn't, would you know how to get it to run while in KOReader? Thank you.
Hi, thanks for the tools, I follow by your documentation and make it work
However, I have to go in to kobo setting and reconnect to it when I restart controller power, is it possible to make it re-connect automatically everytime when turn on 8bitdo controller?
Are there other commands that can be assigned, like increase/decrease font size, increase/decrease brightness?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.