ESPixelStick Firmware
Firmware for the ESPixelStick
Loading...
Searching...
No Matches
InputFPPRemotePlayFileFsm.hpp
Go to the documentation of this file.
1#pragma once
2/*
3* InputFPPRemotePlayFileFsm.hpp
4*
5* Project: ESPixelStick - An ESP8266 / ESP32 and E1.31 based pixel driver
6* Copyright (c) 2021, 2025 Shelby Merrick
7* http://www.forkineye.com
8*
9* This program is provided free for you to use in any way that you wish,
10* subject to the laws and regulations where you are using it. Due diligence
11* is strongly suggested before using this code. Please give credit where due.
12*
13* The Author makes no warranty of any kind, express or implied, with regard
14* to this program or the documentation contained in this document. The
15* Author shall not be liable in any event for incidental or consequential
16* damages in connection with, or arising out of, the furnishing, performance
17* or use of these programs.
18*
19* PlayFile object use to parse and play a File
20*/
21
22#include "ESPixelStick.h"
23#include "FileMgr.hpp"
24
26
27/*****************************************************************************/
28/*
29* Generic fsm base class.
30*/
31/*****************************************************************************/
32/*****************************************************************************/
34{
35public:
38
39 virtual IRAM_ATTR bool Poll () = 0;
40 virtual void Init (c_InputFPPRemotePlayFile * Parent) = 0;
41 virtual void GetStateName (String & sName) = 0;
42 virtual void Start (String & FileName, float SecondsElapsed, uint32_t RemainingPlayCount) = 0;
43 virtual void Stop (void) = 0;
44 virtual bool Sync (String& FileName, float SecondsElapsed) = 0;
45 void GetDriverName (String& Name) { Name = "InputMgr"; }
46
47protected:
49
50}; // fsm_PlayFile_state
51
52/*****************************************************************************/
54{
55public:
58
59 virtual IRAM_ATTR bool Poll ();
60 virtual void Init (c_InputFPPRemotePlayFile* Parent);
61 virtual void GetStateName (String & sName) { sName = CN_Idle; }
62 virtual void Start (String & FileName, float SecondsElapsed, uint32_t RemainingPlayCount);
63 virtual void Stop (void);
64 virtual bool Sync (String& FileName, float SecondsElapsed);
65
66}; // fsm_PlayFile_state_Idle
67
68/*****************************************************************************/
70{
71public:
74
75 virtual IRAM_ATTR bool Poll ();
76 virtual void Init (c_InputFPPRemotePlayFile* Parent);
77 virtual void GetStateName (String& sName) { sName = F ("Starting"); }
78 virtual void Start (String& FileName, float SecondsElapsed, uint32_t RemainingPlayCount);
79 virtual void Stop (void);
80 virtual bool Sync (String& FileName, float SecondsElapsed);
81
82}; // fsm_PlayFile_state_Starting
83
84/*****************************************************************************/
86{
87public:
90
91 virtual IRAM_ATTR bool Poll ();
92 virtual void Init (c_InputFPPRemotePlayFile* Parent);
93 virtual void GetStateName (String & sName) { sName = CN_File; }
94 virtual void Start (String & FileName, float SecondsElapsed, uint32_t RemainingPlayCount);
95 virtual void Stop (void);
96 virtual bool Sync (String & FileName, float SecondsElapsed);
97
98private:
100 {
101 uint32_t DataOffset;
102 uint32_t ChannelCount;
103 };
104 // uint32_t LastPlayedFrameId = 0;
105
106}; // fsm_PlayFile_state_PlayingFile
107
108/*****************************************************************************/
110{
111public:
114
115 virtual IRAM_ATTR bool Poll ();
116 virtual void Init (c_InputFPPRemotePlayFile* Parent);
117 virtual void GetStateName (String& sName) { sName = F("Stopping"); }
118 virtual void Start (String& FileName, float SecondsElapsed, uint32_t RemainingPlayCount);
119 virtual void Stop (void);
120 virtual bool Sync (String& FileName, float SecondsElapsed);
121
122private:
123
124}; // fsm_PlayFile_state_Stopping
125
126/*****************************************************************************/
128{
129public:
132
133 virtual IRAM_ATTR bool Poll ();
134 virtual void Init (c_InputFPPRemotePlayFile* Parent);
135 virtual void GetStateName (String& sName) { sName = F ("Error"); }
136 virtual void Start (String& FileName, float SecondsElapsed, uint32_t RemainingPlayCount);
137 virtual void Stop (void);
138 virtual bool Sync (String& FileName, float SecondsElapsed);
139
140private:
141
142}; // fsm_PlayFile_state_Error
const CN_PROGMEM char CN_File[]
Definition ConstNames.cpp:94
const CN_PROGMEM char CN_Idle[]
Definition ConstNames.cpp:118
Definition InputFPPRemotePlayFile.hpp:32
Definition InputFPPRemotePlayFileFsm.hpp:128
virtual void Stop(void)
Definition InputFPPRemotePlayFileFsm.cpp:633
fsm_PlayFile_state_Error()
Definition InputFPPRemotePlayFileFsm.hpp:130
virtual ~fsm_PlayFile_state_Error()
Definition InputFPPRemotePlayFileFsm.hpp:131
virtual void Init(c_InputFPPRemotePlayFile *Parent)
Definition InputFPPRemotePlayFileFsm.cpp:594
virtual void GetStateName(String &sName)
Definition InputFPPRemotePlayFileFsm.hpp:135
virtual IRAM_ATTR bool Poll()
Definition InputFPPRemotePlayFileFsm.cpp:571
virtual bool Sync(String &FileName, float SecondsElapsed)
Definition InputFPPRemotePlayFileFsm.cpp:645
Definition InputFPPRemotePlayFileFsm.hpp:54
virtual bool Sync(String &FileName, float SecondsElapsed)
Definition InputFPPRemotePlayFileFsm.cpp:100
virtual ~fsm_PlayFile_state_Idle()
Definition InputFPPRemotePlayFileFsm.hpp:57
fsm_PlayFile_state_Idle()
Definition InputFPPRemotePlayFileFsm.hpp:56
virtual void Stop(void)
Definition InputFPPRemotePlayFileFsm.cpp:88
virtual void GetStateName(String &sName)
Definition InputFPPRemotePlayFileFsm.hpp:61
virtual void Init(c_InputFPPRemotePlayFile *Parent)
Definition InputFPPRemotePlayFileFsm.cpp:50
virtual IRAM_ATTR bool Poll()
Definition InputFPPRemotePlayFileFsm.cpp:26
Definition InputFPPRemotePlayFileFsm.hpp:86
fsm_PlayFile_state_PlayingFile()
Definition InputFPPRemotePlayFileFsm.hpp:88
virtual void Init(c_InputFPPRemotePlayFile *Parent)
Definition InputFPPRemotePlayFileFsm.cpp:345
virtual ~fsm_PlayFile_state_PlayingFile()
Definition InputFPPRemotePlayFileFsm.hpp:89
virtual IRAM_ATTR bool Poll()
Definition InputFPPRemotePlayFileFsm.cpp:228
virtual void Stop(void)
Definition InputFPPRemotePlayFileFsm.cpp:384
virtual bool Sync(String &FileName, float SecondsElapsed)
Definition InputFPPRemotePlayFileFsm.cpp:399
virtual void GetStateName(String &sName)
Definition InputFPPRemotePlayFileFsm.hpp:93
Definition InputFPPRemotePlayFileFsm.hpp:70
virtual bool Sync(String &FileName, float SecondsElapsed)
Definition InputFPPRemotePlayFileFsm.cpp:211
virtual IRAM_ATTR bool Poll()
Definition InputFPPRemotePlayFileFsm.cpp:116
virtual ~fsm_PlayFile_state_Starting()
Definition InputFPPRemotePlayFileFsm.hpp:73
virtual void GetStateName(String &sName)
Definition InputFPPRemotePlayFileFsm.hpp:77
fsm_PlayFile_state_Starting()
Definition InputFPPRemotePlayFileFsm.hpp:72
virtual void Init(c_InputFPPRemotePlayFile *Parent)
Definition InputFPPRemotePlayFileFsm.cpp:156
virtual void Stop(void)
Definition InputFPPRemotePlayFileFsm.cpp:198
Definition InputFPPRemotePlayFileFsm.hpp:110
virtual bool Sync(String &FileName, float SecondsElapsed)
Definition InputFPPRemotePlayFileFsm.cpp:558
virtual void Stop(void)
Definition InputFPPRemotePlayFileFsm.cpp:548
fsm_PlayFile_state_Stopping()
Definition InputFPPRemotePlayFileFsm.hpp:112
virtual IRAM_ATTR bool Poll()
Definition InputFPPRemotePlayFileFsm.cpp:482
virtual void GetStateName(String &sName)
Definition InputFPPRemotePlayFileFsm.hpp:117
virtual void Init(c_InputFPPRemotePlayFile *Parent)
Definition InputFPPRemotePlayFileFsm.cpp:511
virtual ~fsm_PlayFile_state_Stopping()
Definition InputFPPRemotePlayFileFsm.hpp:113
Definition InputFPPRemotePlayFileFsm.hpp:34
virtual bool Sync(String &FileName, float SecondsElapsed)=0
virtual void GetStateName(String &sName)=0
virtual void Init(c_InputFPPRemotePlayFile *Parent)=0
void GetDriverName(String &Name)
Definition InputFPPRemotePlayFileFsm.hpp:45
virtual IRAM_ATTR bool Poll()=0
fsm_PlayFile_state()
Definition InputFPPRemotePlayFileFsm.hpp:36
c_InputFPPRemotePlayFile * p_Parent
Definition InputFPPRemotePlayFileFsm.hpp:48
virtual void Start(String &FileName, float SecondsElapsed, uint32_t RemainingPlayCount)=0
virtual ~fsm_PlayFile_state()
Definition InputFPPRemotePlayFileFsm.hpp:37
virtual void Stop(void)=0
uint8_t Start[3]
Definition fseq.h:0
Definition InputFPPRemotePlayFileFsm.hpp:100
uint32_t ChannelCount
Definition InputFPPRemotePlayFileFsm.hpp:102
uint32_t DataOffset
Definition InputFPPRemotePlayFileFsm.hpp:101