Giter VIP home page Giter VIP logo

kobo-btpt's People

Contributors

crealdocsnyder avatar tsowell avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

kobo-btpt's Issues

Long press causes device connection to be lost

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.

Does it support bluetooth mouse ?

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.

Compiling errors

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, &currentValue); }
              ^
/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, &currentValue); }
              ^
/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, &currentValue); }
              ^
/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, &currentValue); }
              ^
/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, &currentValue); }
              ^
/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, &currentValue); }
              ^
/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, &currentValue); }
              ^
/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, &currentValue); }
              ^
/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, &currentValue); }

                    ^
/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, &currentValue); }

[kobo-btpt]#

links to known to work page turners

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.

Kobo Libra 2 + 8BitDo Zero 2 gamepad not working for me.

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

How to tell if it is running?

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.

Need to connect to Kobo libra 2 every time restart 8bitdo zero 2

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?

Other commands possible?

Are there other commands that can be assigned, like increase/decrease font size, increase/decrease brightness?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.