qtserialbus.cpp 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. // Copyright (C) 2022 The Qt Company Ltd.
  2. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
  3. /*********************************************************************
  4. * INJECT CODE
  5. ********************************************************************/
  6. // @snippet qcanbus-available-devices
  7. QString errorMessage;
  8. const QList<QCanBusDeviceInfo> result = %CPPSELF.%FUNCTION_NAME(&errorMessage);
  9. %PYARG_0 = PyTuple_New(2);
  10. PyTuple_SetItem(%PYARG_0, 0, %CONVERTTOPYTHON[QList<QCanBusDeviceInfo>](result));
  11. PyTuple_SetItem(%PYARG_0, 1, %CONVERTTOPYTHON[QString](errorMessage));
  12. // @snippet qcanbus-available-devices
  13. // @snippet qcanbus-available-devices-plugin
  14. QString errorMessage;
  15. const QList<QCanBusDeviceInfo> result = %CPPSELF.%FUNCTION_NAME(%1, &errorMessage);
  16. %PYARG_0 = PyTuple_New(2);
  17. PyTuple_SetItem(%PYARG_0, 0, %CONVERTTOPYTHON[QList<QCanBusDeviceInfo>](result));
  18. PyTuple_SetItem(%PYARG_0, 1, %CONVERTTOPYTHON[QString](errorMessage));
  19. // @snippet qcanbus-available-devices-plugin
  20. // @snippet qcanbus-createdevice
  21. PyObject *pyDevice{};
  22. QString errorMessage;
  23. if (auto *device = %CPPSELF.%FUNCTION_NAME(%1, %2, &errorMessage)) {
  24. pyDevice = %CONVERTTOPYTHON[%RETURN_TYPE](device);
  25. // Ownership transferences (target)
  26. Shiboken::Object::getOwnership(pyDevice);
  27. } else {
  28. pyDevice = Py_None;
  29. Py_INCREF(pyDevice);
  30. }
  31. %PYARG_0 = PyTuple_New(2);
  32. PyTuple_SetItem(%PYARG_0, 0, pyDevice);
  33. PyTuple_SetItem(%PYARG_0, 1, %CONVERTTOPYTHON[QString](errorMessage));
  34. // @snippet qcanbus-createdevice