019f8fd211
git-subtree-dir: users/wpcarro git-subtree-mainline:464bbcb15c
git-subtree-split:24f5a642af
Change-Id: I6105b3762b79126b3488359c95978cadb3efa789
44 lines
982 B
Elm
44 lines
982 B
Elm
module Main exposing (main)
|
|
|
|
import Browser
|
|
import Html exposing (..)
|
|
import Misc
|
|
import Overview
|
|
import Practice
|
|
import Preferences
|
|
import State
|
|
import Time exposing (..)
|
|
|
|
|
|
subscriptions : State.Model -> Sub State.Msg
|
|
subscriptions model =
|
|
if model.isPaused then
|
|
Sub.none
|
|
|
|
else
|
|
Sub.batch
|
|
[ Time.every (model.tempo * 2 |> Misc.bpmToMilliseconds |> toFloat) (\_ -> State.ToggleFlashCard)
|
|
, Time.every (model.tempo |> Misc.bpmToMilliseconds |> toFloat) (\_ -> State.NextChord)
|
|
]
|
|
|
|
|
|
view : State.Model -> Html State.Msg
|
|
view model =
|
|
case model.view of
|
|
State.Preferences ->
|
|
Preferences.render model
|
|
|
|
State.Practice ->
|
|
Practice.render model
|
|
|
|
State.Overview ->
|
|
Overview.render model
|
|
|
|
|
|
main =
|
|
Browser.element
|
|
{ init = \() -> ( State.init, Cmd.none )
|
|
, subscriptions = subscriptions
|
|
, update = State.update
|
|
, view = view
|
|
}
|