Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Separate integration library #348

Open
ChristianRiedl opened this issue Dec 8, 2019 · 3 comments
Open

Separate integration library #348

ChristianRiedl opened this issue Dec 8, 2019 · 3 comments
Assignees
Labels
Milestone

Comments

@ChristianRiedl
Copy link
Member

@ChristianRiedl ChristianRiedl commented Dec 8, 2019

Especially for the implementation of integrations using QAbstractListModel like media players, weather, ... it makes sense that every integration uses the same "model" classes. I think the sources should be in a separate static integration library, not somewhere in the remote-software source hierarchy.

This integration library can also contain often used functionalities like OAuth, ...

The Integration base class should be there maybe extended to a more functional integration base class covering also the separate "integration thread".

@zehnm

This comment has been minimized.

Copy link
Member

@zehnm zehnm commented Dec 8, 2019

Further request for the separate library (or even an additional package like an integration-dev package): include all required header files to be able to compile the integration plugins.
I'm struggling at moment defining simple custom Buildroot packages for the integration plugins since the header files are in the software-remote module.

@zehnm zehnm self-assigned this Jan 8, 2020
@zehnm zehnm added this to Backlog in YIO Remote software via automation Jan 8, 2020
@zehnm zehnm moved this from Backlog to Design in YIO Remote software Jan 8, 2020
@zehnm zehnm added this to the Release 0.3 milestone Jan 8, 2020
@zehnm zehnm moved this from Design to Implementation in YIO Remote software Jan 10, 2020
@zehnm

This comment has been minimized.

Copy link
Member

@zehnm zehnm commented Jan 10, 2020

To simplify the separation of the common interfaces and classes I will create the integration library as a Qt Project Include (.pri) instead of a full blown static library.

With a static library we have another build dependency for 4 platforms and all existing build setups (Developer setup, GitHub Actions CI, Docker build image, Buildroot custom packages) need major work.
Once everything is working and the integration library contains more features we can think about a static library for ARM, macOS, Linux and Windows again.

zehnm added a commit to YIO-Remote/integrations.library that referenced this issue Jan 10, 2020
- included all header files
- refactored to Qt Include Project

Part of YIO-Remote/remote-software#348
zehnm added a commit to YIO-Remote/integration.dock that referenced this issue Jan 10, 2020
zehnm added a commit that referenced this issue Jan 10, 2020
Part of #348
zehnm pushed a commit to YIO-Remote/integrations.library that referenced this issue Jan 11, 2020
- Moved all sources and headers to ./src
- New project include files with consistent naming
- Added README
- Fixed cpplint issues

Part of YIO-Remote/remote-software#348
zehnm added a commit to YIO-Remote/integration.dock that referenced this issue Jan 11, 2020
- GitHub action to verify code guidelines
- Fixed cpplint issues

Part of YIO-Remote/remote-software#348
zehnm added a commit that referenced this issue Jan 11, 2020
Part of #348
zehnm added a commit to YIO-Remote/integration.home-assistant that referenced this issue Jan 12, 2020
- Included Qt linguist in qmake
- GitHub Action to verify code guidelines
- Fixed cpplint issues
- Improved logging

Part of YIO-Remote/remote-software#348
zehnm added a commit to YIO-Remote/integration.homey that referenced this issue Jan 13, 2020
- GitHub Action to verify code guidelines
- Fixed cpplint issues
- Fixed reconnect handling:
   QWebSocket.close may only be called if socket is valid
- Renamed socket and timer member vars
- Improved logging

Part of YIO-Remote/remote-software#348
zehnm added a commit to YIO-Remote/integration.openhab that referenced this issue Jan 13, 2020
- GitHub Action to verify code guidelines
- Fixed cpplint issues

Part of YIO-Remote/remote-software#348
zehnm added a commit to YIO-Remote/integration.openweather that referenced this issue Jan 13, 2020
- GitHub Action to verify code guidelines
- Fixed most cpplint issues

Part of YIO-Remote/remote-software#348
zehnm added a commit to YIO-Remote/integration.roon that referenced this issue Jan 14, 2020
- GitHub Action to build dynamic library
- GitHub Action to verify code guidelines

Part of YIO-Remote/remote-software#348
zehnm added a commit to YIO-Remote/integration.spotify that referenced this issue Jan 14, 2020
- GitHub Action to build dynamic library
- GitHub Action to verify code guidelines
- Fixed cpplint issues

Part of YIO-Remote/remote-software#348
@zehnm

This comment has been minimized.

Copy link
Member

@zehnm zehnm commented Jan 14, 2020

Pull requests for initial integration library refactoring created:

  • All integration plugin related header files are now in the integrations.library.
  • remote-software and all integrations are now using integrations.library.
  • Integration plugins don't have a direct reference to remote-software anymore. Only to integrations.library.

Common plugin skeleton classes for plugin setup and threading will be integrated in a second step.

zehnm added a commit to YIO-Remote/integrations.library that referenced this issue Jan 17, 2020
- Using the base integration interfaces instead of generic QObject.
- Preparing to use the skeleton integration classes.
- Clean up.

Part of YIO-Remote/remote-software#348
zehnm added a commit that referenced this issue Jan 17, 2020
- Using the base integration interfaces instead of generic QObject.

Part of #348
zehnm added a commit to YIO-Remote/integration.dock that referenced this issue Jan 17, 2020
Using the base integration interfaces instead of generic QObject.

Part of YIO-Remote/remote-software#348
zehnm added a commit to YIO-Remote/integration.home-assistant that referenced this issue Jan 17, 2020
- Using the base integration interfaces instead of generic QObject.

Part of YIO-Remote/remote-software#348
zehnm added a commit to YIO-Remote/integration.homey that referenced this issue Jan 17, 2020
- Using the base integration interfaces instead of generic QObject.

Part of YIO-Remote/remote-software#348
zehnm added a commit to YIO-Remote/integration.openhab that referenced this issue Jan 17, 2020
- Using the base integration interfaces instead of generic QObject.

Part of YIO-Remote/remote-software#348
zehnm added a commit to YIO-Remote/integration.openweather that referenced this issue Jan 17, 2020
- Using the base integration interfaces instead of generic QObject.

Part of YIO-Remote/remote-software#348
zehnm added a commit to YIO-Remote/integration.roon that referenced this issue Jan 17, 2020
- Using the base integration interfaces instead of generic QObject.

Part of YIO-Remote/remote-software#348
zehnm added a commit to YIO-Remote/integration.spotify that referenced this issue Jan 17, 2020
- Using the base integration interfaces instead of generic QObject.

Part of YIO-Remote/remote-software#348
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
YIO Remote software
  
Implementation
2 participants
You can’t perform that action at this time.