Safe Haskell | Safe-Inferred |
---|
Synopsis
- data Msg
- show_short :: Msg -> Text
- data DeriveStatus
- data ImStarted
- data ImStatus
- data Performance = Performance {
- perf_derive_cache :: Cache
- perf_events :: Vector.Vector Score.Event
- perf_logs :: [Log.Msg]
- perf_logs_written :: Bool
- perf_track_dynamic :: TrackDynamic
- perf_integrated :: [Integrated]
- perf_damage :: ScoreDamage
- perf_warps :: [TrackWarp.TrackWarp]
- perf_track_signals :: Track.TrackSignals
- perf_block_deps :: BlockDeps
- perf_track_instruments :: Map Id.TrackId (Set ScoreT.Instrument)
- perf_ui_state :: Ui.State
- force_performance :: Performance -> ()
- mouse :: Msg -> Maybe UiMsg.MouseEvent
- mouse_down :: Msg -> Bool
- kbd :: Msg -> Maybe (UiMsg.KbdState, [Key.Modifier], Key.Key, Maybe Char)
- key :: Msg -> Maybe (UiMsg.KbdState, Key.Key)
- key_down :: Msg -> Maybe Key.Key
- text :: Msg -> Maybe (Key.Key, Maybe Char)
- key_mods :: Msg -> Maybe [Key.Modifier]
- keycap :: Msg -> Maybe (UiMsg.KbdState, Char)
- char :: Msg -> Maybe (UiMsg.KbdState, Char)
- char_down :: Msg -> Maybe Char
- midi :: Msg -> Maybe Midi.Message
- context :: Msg -> Maybe UiMsg.Context
- context_track :: Msg -> Maybe (TrackNum, UiMsg.Track)
- context_track_pos :: Msg -> Maybe (TrackNum, ScoreTime)
Documentation
Ui UiMsg.UiMsg | Message from the UI. |
Midi Midi.ReadMessage | Incoming midi message. |
InputNote InputNote.Input | Incoming abstract note. This is meant to enter a note and is not a MIDI NoteOn, though NoteOns may very well be translated into these. These are not generated from any subsystem, but instead translated from other msgs (such as Midi). |
Transport Transport.Status | Message from the transport/play thread. |
DeriveStatus Id.BlockId DeriveStatus | Message about the derivation status, from the background derivation threads. |
Socket IO.Handle ReplProtocol.Query | Message from the REPL socket, includes the socket handle than can be used to write a response. Whoever responds to it should close the handle. |
show_short :: Msg -> Text Source #
data DeriveStatus Source #
OutOfDate | The current derivation is out of date, but work has not yet started
on a replacement. The new Performance is already in
|
Deriving | |
DeriveComplete !Performance !ImStarted | |
ImStatus !Id.BlockId !(Set Id.TrackId) !ImStatus | The BlockId is the block to which this status applies, the BlockId
in the containing DeriveStatus is the root block for the derivation.
It's redundant for |
Instances
Show DeriveStatus Source # | |
Defined in Cmd.Msg showsPrec :: Int -> DeriveStatus -> ShowS # show :: DeriveStatus -> String # showList :: [DeriveStatus] -> ShowS # | |
Pretty.Pretty DeriveStatus Source # | |
Defined in Cmd.Msg pretty :: DeriveStatus -> Text Source # format :: DeriveStatus -> Doc Source # formatList :: [DeriveStatus] -> Doc Source # |
ImStarted | im subprocess in progress |
ImUnnecessary | no im notes, so no subprocesses started |
ImRenderingRange !ScoreT.Instrument !RealTime !RealTime | start--end currently being rendered. |
ImWaveformsCompleted ![Track.WaveformChunk] | Waveforms written for these chunks. |
ImComplete !Bool !(Maybe ImGc.Stats) | True if the im subprocess had a failure. The error will have been logged, and this flag will leave a visual indicator on the track that something went wrong. |
data Performance Source #
This holds the final performance for a given block. It is used to actually play music, and poked and prodded in a separate thread to control its evaluation.
This is basically the same as Result
. I could make them be the
same, but Performance wasn't always the same and may not be the same in the
future.
Unlike other records, the fields here are all lazy. This is because I need
to put an unevaluated Performance into Cmd.state_current_performances, and
then force the fields in a separate thread. Also I need to modify
perf_damage
without forcing any of the others.
Performance | |
|
Instances
Show Performance Source # | |
Defined in Cmd.Msg showsPrec :: Int -> Performance -> ShowS # show :: Performance -> String # showList :: [Performance] -> ShowS # | |
Pretty.Pretty Performance Source # | |
Defined in Cmd.Msg pretty :: Performance -> Text Source # format :: Performance -> Doc Source # formatList :: [Performance] -> Doc Source # |
force_performance :: Performance -> () Source #
Force a Performance so that it can be used without a lag.
views
mouse_down :: Msg -> Bool Source #
kbd :: Msg -> Maybe (UiMsg.KbdState, [Key.Modifier], Key.Key, Maybe Char) Source #
text :: Msg -> Maybe (Key.Key, Maybe Char) Source #
The text that this keydown wants to enter, if any.
keycap :: Msg -> Maybe (UiMsg.KbdState, Char) Source #
A key action by keycap. This is different from text
because it should
be just the keycap, not taking shift or alt or anything into account.
char :: Msg -> Maybe (UiMsg.KbdState, Char) Source #
This is like keycap
, but it takes shift into account. This is because
it's convenient to bind to a single Char including shifted, and not have to
pass around a ([Key.Modifier], Char) or (Bool, Char).
context_track :: Msg -> Maybe (TrackNum, UiMsg.Track) Source #