A music player that connects to your cloud/distributed storage.
5
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 181 lines 3.5 kB view raw
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)