A music player that connects to your cloud/distributed storage.
1port module UI.Ports exposing (..)
2
3import Alien
4import Json.Encode as Json
5import Queue
6import UI.Audio.Types as Audio
7
8
9
10-- 📣
11
12
13port activeQueueItemChanged : Maybe Queue.EngineItem -> Cmd msg
14
15
16port adjustEqualizerSetting : { knob : String, value : Float } -> Cmd msg
17
18
19port copyToClipboard : String -> Cmd msg
20
21
22port downloadJsonUsingTauri : { filename : String, json : String } -> Cmd msg
23
24
25port loadAlbumCovers : { list : Bool, coverView : Bool } -> Cmd msg
26
27
28port openUrlOnNewPage : String -> Cmd msg
29
30
31port pause : { trackId : String } -> Cmd msg
32
33
34port pauseScrobbleTimer : () -> Cmd msg
35
36
37port pickAverageBackgroundColor : String -> Cmd msg
38
39
40port play : { trackId : String, volume : Float } -> Cmd msg
41
42
43port reloadAudioNodeIfNeeded : { play : Bool, progress : Maybe Float, trackId : String } -> Cmd msg
44
45
46port preloadAudio : Queue.EngineItem -> Cmd msg
47
48
49port reloadApp : () -> Cmd msg
50
51
52port renderAudioElements : { items : List Queue.EngineItem, play : Maybe String, volume : Float } -> Cmd msg
53
54
55port resetScrobbleTimer : { duration : Float, trackId : String } -> Cmd msg
56
57
58port seek : { percentage : Float, trackId : String } -> Cmd msg
59
60
61port sendTask : Json.Value -> Cmd msg
62
63
64port setMediaSessionArtwork : { blobUrl : String, imageType : String } -> Cmd msg
65
66
67port setMediaSessionMetadata : { album : Maybe String, artist : Maybe String, title : String, coverPrep : Maybe Audio.CoverPrep } -> Cmd msg
68
69
70port setMediaSessionPlaybackState : String -> Cmd msg
71
72
73port setMediaSessionPositionState : { currentTime : Float, duration : Float } -> Cmd msg
74
75
76port startScrobbleTimer : () -> Cmd msg
77
78
79port toBrain : Alien.Event -> Cmd msg
80
81
82
83-- 📰
84
85
86port audioDurationChange : (Audio.DurationChangeEvent -> msg) -> Sub msg
87
88
89port audioEnded : (Audio.GenericAudioEvent -> msg) -> Sub msg
90
91
92port audioError : (Audio.ErrorAudioEvent -> msg) -> Sub msg
93
94
95port audioPlaybackStateChanged : (Audio.PlaybackStateEvent -> msg) -> Sub msg
96
97
98port audioIsLoading : (Audio.GenericAudioEvent -> msg) -> Sub msg
99
100
101port audioHasLoaded : (Audio.GenericAudioEvent -> msg) -> Sub msg
102
103
104port audioTimeUpdated : (Audio.TimeUpdatedEvent -> msg) -> Sub msg
105
106
107port downloadTracksFinished : (() -> msg) -> Sub msg
108
109
110port fromAlien : (Alien.Event -> msg) -> Sub msg
111
112
113port lostWindowFocus : (() -> msg) -> Sub msg
114
115
116port indicateTouchDevice : (() -> msg) -> Sub msg
117
118
119port insertCoverCache : (Json.Value -> msg) -> Sub msg
120
121
122port installedNewServiceWorker : (() -> msg) -> Sub msg
123
124
125port installingNewServiceWorker : (() -> msg) -> Sub msg
126
127
128port refreshedAccessToken : (Json.Value -> msg) -> Sub msg
129
130
131port preferredColorSchemaChanged : ({ dark : Bool } -> msg) -> Sub msg
132
133
134port receiveTask : (Json.Value -> msg) -> Sub msg
135
136
137port requestNext : (() -> msg) -> Sub msg
138
139
140port requestPause : (() -> msg) -> Sub msg
141
142
143port requestPlay : (() -> msg) -> Sub msg
144
145
146port requestPlayPause : (() -> msg) -> Sub msg
147
148
149port requestPrevious : (() -> msg) -> Sub msg
150
151
152port requestStop : (() -> msg) -> Sub msg
153
154
155port scrobble : ({ duration : Int, timestamp : Int, trackId : String } -> msg) -> Sub msg
156
157
158port setAverageBackgroundColor : ({ r : Int, g : Int, b : Int } -> msg) -> Sub msg
159
160
161port setIsOnline : (Bool -> msg) -> Sub msg
162
163
164port showErrorNotification : (String -> msg) -> Sub msg
165
166
167port showStickyErrorNotification : (String -> msg) -> Sub msg
168
169
170
171-- 🔱
172
173
174giveBrain : Alien.Tag -> Json.Value -> Cmd msg
175giveBrain tag data =
176 toBrain (Alien.broadcast tag data)
177
178
179nudgeBrain : Alien.Tag -> Cmd msg
180nudgeBrain tag =
181 toBrain (Alien.trigger tag)