1
0
Fork 0
mirror of https://github.com/HenkKalkwater/harbour-sailfin.git synced 2024-05-04 13:32:43 +00:00
Commit graph

24 commits

Author SHA1 Message Date
Chris Josten b257fe60aa Discover remote sessions
Adds a way of discovering remote sessions and in Jellyfin the UI.
2023-01-02 20:05:41 +01:00
Chris Josten c72c10bad4
core: Split PlaybackManager up into smaller parts
The PlaybackManager was a giant class that handled UI bindings, fetching
stream URLS, playback logic.

It now has been split up into:

- ViewModel::PlaybackManager, which handles UI interfacing and allowing
  to swap out the Model::Playback implementation on the fly.
- Model::PlaybackManager, which is an interface for what a
  PlaybackManager must do, handling queues/playlists, and controlling a
  player.
- Model::LocalPlaybackManager, which is an Model::PlaybackManager
  implementation for playing back Jellyfin media within the application.
- Model::PlaybackReporter, which reports the current playback state to
  the Jellyfin server, for keeping track of played items.
- Model::Player, which handles playing back media from an URL and
  the usual play/pause et cetera.

In a future commit, this would allow for introducing a
Model::RemoteJellyfinPlaybackManager, to control other Jellyfin
instances.
2022-11-05 18:20:23 +01:00
Chris Josten b8933ddca4 Move QObject-wrapping code into templates
Previously, this pattern was copy-pasted in a few places. This is
undesirable, so the code has been moved into templates.

Fixes #30
2022-08-24 17:00:14 +02:00
Chris Josten 64ad37707c Make libJellyfinQt a proper qml plugin 2021-09-08 21:36:26 +02:00
Chris Josten 1453cbbc63 Add basic settings framework
This settingsframework uses mlite5 on SailfishOS and other platforms
with the mlite library present, because I believe DConf is neat. For
platforms that do not have DConf and mlite present, it falls back to a
quickly put together implementation that uses QSettings as a backend.

Implementing an settings item is simply done by subclassing the
Jellyfin::QObjectSettingsWrapper.
2021-09-02 15:34:32 +02:00
Chris Josten 54235f298e Add MPRIS support
Besides MPRIS support, this also adds support for hasPrevious() and
hasNext() in several parts to determine whether the
player/playlist/shuffler has a previous or next item.
2021-08-31 01:29:51 +02:00
Chris Josten 1aae311b9b Add track selection back 2021-08-23 01:48:19 +02:00
Chris Josten e04ec364c1 Add UserLoader back + misc regression fixes 2021-08-18 00:04:27 +02:00
Chris Josten 7b6c272aa9 Rewire more of Sailfish frontend into new backend
This should encompass most simple things, besides some larger, trickier
things, like the video streams and the now-broken userdata
2021-08-11 23:35:33 +02:00
Chris Josten 86672be051 WIP: Add playlists/queues and add support for Sailfish back 2021-07-31 15:06:17 +02:00
Chris Josten fbc154fb56 WIP: Playlist support 2021-05-21 15:46:30 +02:00
Chris Josten 9abee12658 Resolved remaining issues with ApiModel 2021-03-29 17:10:25 +02:00
Chris Josten 89fef6d7f4 WIP: Code cleanup, trying to debug Q_ENUM not visible from QML 2021-03-29 14:27:37 +02:00
Chris Josten 729e343661 WIP: HttpLoader seems to work, Model still borked 2021-03-28 04:00:00 +02:00
Chris Josten e421adf733 WIP: Reimplementation of ListModels. 2021-03-26 21:27:35 +01:00
Chris Josten 2360b261f7 WIP: logic rewrite
WIP: adding loaders
2021-03-24 20:04:03 +01:00
Chris Josten b9b08ab384 Make model code compileable
This disables some application level logic, but I'm going to rewrite
that using Lager anyway.
2021-03-20 16:29:31 +01:00
Chris Josten 17d4b2c24b WIP: extract loading logic from model
Loading logic should be extracted from the model, to make
loading the data from other sources, such as a local database for
synchronised items, possible.
2021-03-05 15:34:10 +01:00
Chris Josten 40d8793bd8 WIP: autogenerate models based on OpenAPI 2021-02-21 05:02:05 +01:00
Chris Josten 4ed6a8a42d Slight improvements to the OpenAPI generator 2021-02-21 00:26:18 +01:00
Chris Josten 895731ae38 Big C++ refractor
- Removed "jellyfin" prefix from files, as they are already in a
  directory named Jellyfin
- Split the former "jellyfinitem.{h,cpp}" into multiple files in the DTO
  directory, one for each class. The jellyfinitem files started to
  become enormous.
- Use forward declarations in headers instead of including files
  wherever possible.
- Updated copyright headers
2021-02-17 19:42:10 +01:00
Chris Josten e4e35c03d4 Add (optional) firejail support 2021-02-17 02:28:37 +01:00
Chris Josten 727e50cae1 Updated build system to fix issues
- Application could not be launched by the invoker because of some
  missing compiler flags (-rdynamic -pie)
- Private libraries were not found due to incorrect rpath being set
- Moved the qml list of files for sailfish from qtquick to sailfish
  (Stupid mistake I made because my editor doesn't really differentiate
  between different files with the same name in different folders)
2020-10-26 00:14:46 +01:00
Chris Josten 228bcfb685 Switched to a sane build system (CMake) 2020-10-25 19:58:02 +01:00