{
  "version": 12,
  "stages": [
    {
      "stage": "MusicPlaylist_NoSource_Click_AddSource",
      "start": [
        "In [Background Music], Click [button: Add Source]"
      ],
      "end": [
        "Start create new source by source id : prism_bgm_source",
        "PLSDialogView OBSBasicSourceSelect Show"
      ],
      "feature": [
        "Music Playlist"
      ]
    },
    {
      "stage": "MusicPlaylist_NoMusic_Click_AddMusic",
      "start": [
        "In [Background Music], Click [button: Add Music]"
      ],
      "end": [
        "In Background Music, the menu has been displayed when clicked add music button."
      ],
      "feature": [
        "Music Playlist"
      ]
    },
    {
      "stage": "MusicPlaylist_MenuClick_AddLocalMusic",
      "start": [
        "In [Background Music], Click [menu: Add Local File]"
      ],
      "end": [
        "Widget FileDialog Show"
      ],
      "feature": [
        "Music Playlist"
      ]
    },
    {
      "stage": "MusicPlaylist_MenuClick_AddPrismFreeMusic",
      "start": [
        "In [Background Music], Click [menu: Add PRISM Free Music]"
      ],
      "end": [
        "PLSDialogView PLSBgmLibraryView Show"
      ],
      "feature": [
        "Music Playlist"
      ]
    },
    {
      "stage": "MusicPlaylist_ControlArea_Click_PlayMusic",
      "start": [
        "In [Background Music], Click [button: Play]"
      ],
      "end": [
        "bgm: receive media state changed from source"
      ],
      "feature": [
        "Music Playlist"
      ]
    },
    {
      "stage": "MusicPlaylist_ControlArea_Click_Play_PreviewApply",
      "start": [
        "prism_bgm_source:play property will be changed in the ui"
      ],
      "end": [
        "prism_bgm_source:play property is applied in render"
      ],
      "feature": [
        "Music Playlist"
      ]
    },
    {
      "stage": "MusicPlaylist_ControlArea_Click_PauseMusic",
      "start": [
        "In [Background Music], Click [button: Pause]"
      ],
      "end": [
        "bgm: receive media state changed from source"
      ],
      "feature": [
        "Music Playlist"
      ]
    },
    {
      "stage": "MusicPlaylist_ControlArea_Click_Pause_PreviewApply",
      "start": [
        "prism_bgm_source:pause property will be changed in the ui"
      ],
      "end": [
        "prism_bgm_source:pause property is applied in render"
      ],
      "feature": [
        "Music Playlist"
      ]
    },
    {
      "stage": "MusicPlaylist_ControlArea_Click_PreviousMusic",
      "start": [
        "In [Background Music], Click [button: Previous]"
      ],
      "end": [
        "bgm: receive media state changed from source"
      ],
      "feature": [
        "Music Playlist"
      ]
    },
    {
      "stage": "MusicPlaylist_ControlArea_Click_Previous_PreviewApply",
      "start": [
        "prism_bgm_source:previous property will be changed in the ui"
      ],
      "end": [
        "prism_bgm_source:previous property is applied in render"
      ],
      "feature": [
        "Music Playlist"
      ]
    },
    {
      "stage": "MusicPlaylist_ControlArea_Click_NextMusic",
      "start": [
        "In [Background Music], Click [button: Next]"
      ],
      "end": [
        "bgm: receive media state changed from source"
      ],
      "feature": [
        "Music Playlist"
      ]
    },
    {
      "stage": "MusicPlaylist_ControlArea_Click_Next_PreviewApply",
      "start": [
        "prism_bgm_source:next property will be changed in the ui"
      ],
      "end": [
        "prism_bgm_source:next property is applied in render"
      ]
    },
    {
      "stage": "MusicPlaylist_ControlArea_Click_ShuffleMode",
      "start": [
        "In [Background Music], Click [Mode Button: Turn off Shuffle]"
      ],
      "end": [
        "In Background Music, the play mode has been changed: RandomMode."
      ],
      "feature": [
        "Music Playlist"
      ]
    },
    {
      "stage": "MusicPlaylist_ControlArea_Click_PlayOrderMode",
      "start": [
        "In [Background Music], Click [Mode Button: Turn on Shuffle]"
      ],
      "end": [
        "In Background Music, the play mode has been changed: InOrderMode."
      ],
      "feature": [
        "Music Playlist"
      ]
    },
    {
      "stage": "MusicPlaylist_ControlArea_Click_RepeatAllMode",
      "start": [
        "In [Background Music], Choose [Loop Button: ]"
      ],
      "end": [
        "In Background Music, the loop mode has been changed: LoopAll."
      ],
      "feature": [
        "Music Playlist"
      ]
    },
    {
      "stage": "MusicPlaylist_ControlArea_Click_RepeatOneMode",
      "start": [
        "In [Background Music], Choose [Loop Button: ]"
      ],
      "end": [
        "In Background Music, the loop mode has been changed: LoopOne."
      ],
      "feature": [
        "Music Playlist"
      ]
    },
    {
      "stage": "MusicPlaylist_ControlArea_Click_TurnOffRepeatMode",
      "start": [
        "In [Background Music], Choose [Loop Button: ]"
      ],
      "end": [
        "In Background Music, the loop mode has been changed: NoLoop."
      ],
      "feature": [
        "Music Playlist"
      ]
    },
    {
      "stage": "MusicPlaylist_ControlArea_Click_DurationSlider",
      "start": [],
      "end": [],
      "feature": [
        "Music Playlist"
      ]
    },
    {
      "stage": "MusicPlaylist_DoubleClick_MusicPlaylist",
      "start": [
        "re:In \\[Background Music\\], Double click \\[Button: .*\\]"
      ],
      "end": [
        "bgm: receive media state changed from source"
      ],
      "feature": [
        "Music Playlist"
      ]
    },
    {
      "stage": "MusicPlaylist_Hover_Music",
      "start": [
        "In Background Music, Widget Music playlist item Enter"
      ],
      "end": [
        "Widget ToolTip Show"
      ],
      "feature": [
        "Music Playlist"
      ],
      "abort": [
        "In Background Music, Widget Music playlist item Leave"
      ]
    },
    {
      "stage": "MusicPlaylist_Hover_LoopButton",
      "start": [
        "In Background Music, Widget Loop Mode Button Enter"
      ],
      "end": [
        "Widget ToolTip Show"
      ],
      "feature": [
        "Music Playlist"
      ],
      "abort": [
        "In Background Music, Widget Loop Mode Button Leave"
      ]
    },
    {
      "stage": "MusicPlaylist_Hover_PreButton",
      "start": [
        "In Background Music, Widget Pre Button Enter"
      ],
      "end": [
        "Widget ToolTip Show"
      ],
      "feature": [
        "Music Playlist"
      ],
      "abort": [
        "In Background Music, Widget Pre Button Leave"
      ]
    },
    {
      "stage": "MusicPlaylist_Hover_PlayPauseButton",
      "start": [
        "In Background Music, Widget Play/Pause Button Enter"
      ],
      "end": [
        "Widget ToolTip Show"
      ],
      "feature": [
        "Music Playlist"
      ],
      "abort": [
        "In Background Music, Widget Play/Pause Button Leave"
      ]
    },
    {
      "stage": "MusicPlaylist_Hover_NextButton",
      "start": [
        "In Background Music, Widget Next Button Enter"
      ],
      "end": [
        "Widget ToolTip Show"
      ],
      "feature": [
        "Music Playlist"
      ],
      "abort": [
        "In Background Music, Widget Next Button Leave"
      ]
    },
    {
      "stage": "MusicPlaylist_Hover_PlayMode",
      "start": [
        "In Background Music, Widget Play Mode Button Enter"
      ],
      "end": [
        "Widget ToolTip Show"
      ],
      "feature": [
        "Music Playlist"
      ],
      "abort": [
        "In Background Music, Widget Play Mode Button Leave"
      ]
    },
    {
      "stage": "MusicPlaylist_Click_DeleteMusic",
      "start": [
        "In [Background Music], Click [Button: Delete]"
      ],
      "end": [
        "In Music Playlist, the music play list has been changed when deleted."
      ],
      "feature": [
        "Music Playlist"
      ]
    },
    {
      "stage": "MusicPlaylist_Click_PlayMusic",
      "start": [
        "re:In \\[Background Music\\], Double click \\[Button: .*\\]"
      ],
      "end": [
        "receive media state changed from source"
      ],
      "feature": [
        "Music Playlist"
      ]
    },
    {
      "stage": "MusicPlaylist_Library_Click_Category",
      "start": [
        "In [Music Playlist], Click [button: HOT]",
        "In [Music Playlist], Click [button: PLAYFUL]",
        "In [Music Playlist], Click [button: ACTION]",
        "In [Music Playlist], Click [button: BEATDROP]",
        "In [Music Playlist], Click [button: SENTIMENTAL]",
        "In [Music Playlist], Click [button: RETRO]",
        "In [Music Playlist], Click [button: SEASONAL]"
      ],
      "end": [
        "In Music Playlist, the category list has been changed."
      ],
      "feature": [
        "Prism Free Music Window"
      ]
    },
    {
      "stage": "MusicPlaylist_Library_Click_Preview",
      "start": [
        "In [Music Playlist], Click [button: Music Preview On]"
      ],
      "end": [
        "In Music Playlist, Click preview music finished."
      ],
      "feature": [
        "Prism Free Music Window"
      ]
    },
    {
      "stage": "MusicPlaylist_Library_Click_PreviewOff",
      "start": [
        "In [Music Playlist], Click [button: Music Preview off]"
      ],
      "end": [
        "ffmpeg_source media action stoped"
      ],
      "feature": [
        "Prism Free Music Window"
      ]
    },
    {
      "stage": "MusicPlaylist_Library_Click_Preview15s",
      "start": [
        "In [Music Playlist], Click [button: 15s button]"
      ],
      "end": [
        "In Music Playlist, selected music duration has been changed."
      ],
      "feature": [
        "Prism Free Music Window"
      ]
    },
    {
      "stage": "MusicPlaylist_Library_Click_Preview30s",
      "start": [
        "In [Music Playlist], Click [button: 30s button]"
      ],
      "end": [
        "In Music Playlist, selected music duration has been changed."
      ],
      "feature": [
        "Prism Free Music Window"
      ]
    },
    {
      "stage": "MusicPlaylist_Library_Click_Preview60s",
      "start": [
        "In [Music Playlist], Click [button: 60s button]"
      ],
      "end": [
        "In Music Playlist, selected music duration has been changed."
      ],
      "feature": [
        "Prism Free Music Window"
      ]
    },
    {
      "stage": "MusicPlaylist_Library_Click_PreviewFull",
      "start": [
        "In [Music Playlist], Click [button: Full button]"
      ],
      "end": [
        "In Music Playlist, selected music duration has been changed."
      ],
      "feature": [
        "Prism Free Music Window"
      ]
    },
    {
      "stage": "MusicPlaylist_Library_Click_AddMusic",
      "start": [
        "In [Music Playlist], Click [button: Selected button]"
      ],
      "end": [
        "In Music Playlist, the selected music has been added."
      ],
      "feature": [
        "Prism Free Music Window"
      ]
    },
    {
      "stage": "MusicPlaylist_Library_Click_CancelAddMusic",
      "start": [
        "In [Music Playlist], Click [button: UnSelected button]"
      ],
      "end": [
        "In Music Playlist, the selected music has been cancel."
      ],
      "feature": [
        "Prism Free Music Window"
      ]
    },
    {
      "stage": "MusicPlaylist_Library_Click_Ok",
      "start": [
        "In [Music Playlist], Click [button: OK]"
      ],
      "end": [
        "In Music Playlist, Widget PLSBgmLibraryView Close"
      ],
      "feature": [
        "Prism Free Music Window"
      ]
    },
    {
      "stage": "MusicPlaylist_Library_Click_Cancel",
      "start": [
        "In [Music Playlist], Click [button: Cancel]"
      ],
      "end": [
        "In Music Playlist, Widget PLSBgmLibraryView Close"
      ],
      "feature": [
        "Prism Free Music Window"
      ]
    },
    {
      "stage": "MusicPlaylist_Library_Click_Close",
      "start": [
        "In [Music Playlist], Click [TitleBar Button: Close]"
      ],
      "end": [
        "In Music Playlist, Widget PLSBgmLibraryView Close"
      ],
      "feature": [
        "Prism Free Music Window"
      ]
    }
  ]
}