Commit graph

209 commits

Author SHA1 Message Date
Elias Projahn
c8bf158985 player: Keep playback state after URI change 2020-04-22 10:02:18 +02:00
Elias Projahn
4c0bcb9d26 Functional program screen
This implements playlist updates and skipping functionality and updates
the program screen accordingly.
2020-04-22 10:01:50 +02:00
Elias Projahn
5344f16f53 Make playback controls and seeking functional 2020-04-21 19:50:18 +02:00
Elias Projahn
066e46a3e7 player: Add seekTo method 2020-04-21 19:47:11 +02:00
Elias Projahn
eb7b45c39e player: Publish position and duration information
A new method getPosition was introduced and the setUri method returns
the duration of the new track now.
2020-04-21 18:01:09 +02:00
Elias Projahn
524a6d9994 Start wiring up playback service 2020-04-21 17:37:01 +02:00
Elias Projahn
be1a41a90e player: Add stop method. 2020-04-21 17:33:16 +02:00
Elias Projahn
92828849f9 Bundle URI with track as InternalTrack 2020-04-21 16:38:13 +02:00
Elias Projahn
2df5546eb6 musicus_player: Add basic playback functionality 2020-04-19 19:33:23 +02:00
Elias Projahn
bf0168a2d3 Use musicus_player plugin 2020-04-19 19:09:02 +02:00
Elias Projahn
3e614d77aa Add musicus_player plugin skeleton 2020-04-19 19:08:50 +02:00
Elias Projahn
c8e831c461 Move musicus package to seperate directory 2020-04-19 18:45:41 +02:00
Elias Projahn
5216c7d359 Store URI within tracks 2020-04-19 18:37:16 +02:00
Elias Projahn
da804bf699 Work screen: Show recordings 2020-04-19 18:36:46 +02:00
Elias Projahn
b1994d1067 Add music library 2020-04-18 23:41:08 +02:00
Elias Projahn
9da8f8891b Files selector: Return parent document ID 2020-04-18 21:23:24 +02:00
Elias Projahn
448a0de6fa Move platform dependent code to its own class 2020-04-18 20:34:03 +02:00
Elias Projahn
3471fcf78b Add player skeleton and playback service
This introduces a dependency on audio_service and implements the
playback service using that package. The UI was adapted to the new
interface.
2020-04-18 13:50:38 +02:00
Elias Projahn
e0fc60f9eb Run Moor within a background isolate
This basically follows the guidelines at
https://moor.simonbinder.eu/docs/advanced-features/isolates/. In the
future we will be able to have multiple simultaneous database
connections.
2020-04-17 17:28:24 +02:00
Elias Projahn
00def5382e Switch to more_ffi
This will be required to run the database in a background isolate.
2020-04-12 19:21:53 +02:00
Elias Projahn
59035bf2b0 Recording editor: Allow changing work 2020-04-12 11:51:13 +02:00
Elias Projahn
4decd17875 Add comment field to recording 2020-04-12 11:50:32 +02:00
Elias Projahn
e9f0bd03e7 Use the storage access framework
Everything related to file system access has been rewritten to make use
of the storage access framework. This means that the
WRITE_EXTERNAL_STORAGE is no longer needed. Because of that, the
dependency on permission_handler could be dropped and all code related
to permission handling has been removed. To be able to open a whole
document tree, the minSdkVersion was bumped to 21. Finally the file
selector was rewritten using custom platform dependent code.
2020-04-11 21:59:23 +02:00
Elias Projahn
febcf29cf1 Tracks editor: Use relative paths
They are based on the current music library path.
2020-04-06 12:26:50 +02:00
Elias Projahn
090c4501b1 Tracks editor: Make tracks reorderable 2020-04-06 11:55:19 +02:00
Elias Projahn
20d685a3eb Add basic track editor
This replaces the recording selector in the main menu.
2020-04-06 11:43:46 +02:00
Elias Projahn
0145206ed2 Add recording tile 2020-04-06 11:42:07 +02:00
Elias Projahn
e834abe1e0 Add composers and work texts
These replace the work tile widget.
2020-04-06 11:29:55 +02:00
Elias Projahn
40db00d88d Bundle text widgets and refactor performances row 2020-04-06 11:15:05 +02:00
Elias Projahn
3a9a3100fc Recording selector: Use a nested navigator
The selector also makes use of the new work tile widget.
2020-04-05 20:46:00 +02:00
Elias Projahn
ff38930e19 Restyle work tile 2020-04-05 20:24:29 +02:00
Elias Projahn
26b1f13c03 Work tile: Refactor and add leading widget 2020-04-05 20:15:20 +02:00
Elias Projahn
db9f6a0eb4 Extract work tile from recording editor 2020-04-05 20:11:11 +02:00
Elias Projahn
0438296bcc Add recording selector
As a proof of concept some widgets were seperated. The home screen now
links to this instead of the recording editor.
2020-04-05 19:31:46 +02:00
Elias Projahn
a6d795ef3c Set work when saving recordings 2020-04-05 13:02:12 +02:00
Elias Projahn
9bece557c7 Remove tracks from recording editor
The tracks will not be part of the recording entity. Instead, they will
be managed outside the database alongside the corresponding audio files.
2020-04-05 11:26:56 +02:00
Elias Projahn
8f0463a1a1 Allow selecting and adding ensembles 2020-03-31 16:15:59 +02:00
Elias Projahn
99e4711cfc Remove seperate role repesentation
The role and instrument tables have been merged into one (the instrument
table). There are not that many roles that aren't instruments and it is
much simpler to mange this way. The role editor and role selector have
been removed and the instrument related UI parts have been modified
accordingly.
2020-03-31 15:49:15 +02:00
Elias Projahn
24f2022930 Backend: Fix error at first startup
after the permissions were granted, the backend state was set to ready
without checking the music library path.
2020-03-31 15:33:10 +02:00
Elias Projahn
c83b942690 Recording editor: Track editing skeleton 2020-03-30 17:34:07 +02:00
Elias Projahn
e2167143ed Database: Fix null error 2020-03-30 17:33:36 +02:00
Elias Projahn
9f2c86db78 FilesSelector: Close when close button is pressed 2020-03-28 12:30:19 +01:00
Elias Projahn
88c9f65649 FilesSelector: Allow setting a base path 2020-03-28 12:27:30 +01:00
Elias Projahn
cbbc5bc7c6 Settings: Add music library path setting 2020-03-28 10:24:32 +01:00
Elias Projahn
f0644e4058 Add music library path setting
This introduces a new state of the backend called "setup". If the
music library path is not set, the backend goes into that state and the
app widget can show the UI to set it up. This also introduces a new
dependency on shared_preferences.
2020-03-28 10:18:52 +01:00
Elias Projahn
723977daec Properly handle permissions
The backend has a new state called "needsPermissions" and the app widget
reacts accordingly.
2020-03-28 09:54:04 +01:00
Elias Projahn
bd844c44ea Always notify listeners of backend
The state object may stay the same while there where in fact changes to
it that require a notification.
2020-03-28 09:52:42 +01:00
Elias Projahn
87582f200d Load the database asynchronously
Now the backend has multiple states including loading and the toplevel
app widget was adapted accordingly.
2020-03-28 09:16:42 +01:00
Elias Projahn
3f0567e688 Make Backend a stateful widget 2020-03-28 08:51:45 +01:00
Elias Projahn
ad7499051b Add directory mode to files selector 2020-03-27 17:44:04 +01:00