ESPixelStick Firmware
Firmware for the ESPixelStick
Loading...
Searching...
No Matches
InputFPPRemotePlayItem.hpp
Go to the documentation of this file.
1#pragma once
2/*
3* InputFPPRemotePlayItem.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* Common Play object use to parse and play a play list or file
20*/
21
22#include "ESPixelStick.h"
23#include "InputMgr.hpp"
24
26{
27protected:
28 time_t PlayDurationSec = 0;
29 bool SendFppSync = false;
30 String BackgroundFileName = emptyString;
31
32#if defined(ARDUINO_ARCH_ESP8266)
33const uint64_t LocalIntensityBufferSize = 512;
34#else
35const uint64_t LocalIntensityBufferSize = 2048;
36#endif // defined(ARDUINO_ARCH_ESP8266)
37
38private:
39 bool InputPaused = false;
40 int32_t SyncOffsetMS = 0;
42
43public:
46
61 #define CurrentFile 0
62 #define NextFile 1
63
64 virtual bool Poll () = 0;
65 virtual void Start (String & FileName, float SecondsElapsed, uint32_t RemainingPlayCount) = 0;
66 virtual void Stop () = 0;
67 virtual void SetPauseState (bool _PauseInput) {InputPaused = _PauseInput;}
68 virtual void Sync (String & FileName, float SecondsElapsed) = 0;
69 virtual void GetStatus (JsonObject & jsonStatus) = 0;
70 virtual bool IsIdle () = 0;
73 void SetDuration (time_t value) { PlayDurationSec = value; }
74 void GetDriverName (String& Name) { Name = "InputMgr"; }
75 int32_t GetSyncOffsetMS () { return SyncOffsetMS; }
76 void SetSyncOffsetMS (int32_t value) { SyncOffsetMS = value; }
77 void SetSendFppSync (bool value) { SendFppSync = value; }
79 bool InputIsPaused () { return InputPaused; }
80 void SetOperationalState (bool ActiveFlag) {InputPaused = !ActiveFlag;}
81 void SetBackgroundFileName(String & FileName) {BackgroundFileName = FileName;}
82 void ClearFileNames ();
83
84}; // c_InputFPPRemotePlayItem
85extern byte *LocalIntensityBuffer;
#define CurrentFile
Definition InputFPPRemotePlayItem.hpp:61
byte * LocalIntensityBuffer
Definition InputFPPRemotePlayItem.cpp:24
static const FileId INVALID_FILE_HANDLE
Definition FileMgr.hpp:51
uint32_t FileId
Definition FileMgr.hpp:50
Definition InputFPPRemotePlayItem.hpp:26
bool SendFppSync
Definition InputFPPRemotePlayItem.hpp:29
void SetDuration(time_t value)
Definition InputFPPRemotePlayItem.hpp:73
String GetFileName()
Definition InputFPPRemotePlayItem.hpp:71
int32_t SyncOffsetMS
Definition InputFPPRemotePlayItem.hpp:40
virtual void Stop()=0
void SetSendFppSync(bool value)
Definition InputFPPRemotePlayItem.hpp:77
String BackgroundFileName
Definition InputFPPRemotePlayItem.hpp:30
virtual void Sync(String &FileName, float SecondsElapsed)=0
uint32_t GetRepeatCount()
Definition InputFPPRemotePlayItem.hpp:72
void SetSyncOffsetMS(int32_t value)
Definition InputFPPRemotePlayItem.hpp:76
virtual ~c_InputFPPRemotePlayItem()
Definition InputFPPRemotePlayItem.cpp:37
virtual bool IsIdle()=0
int32_t GetSyncOffsetMS()
Definition InputFPPRemotePlayItem.hpp:75
void SetBackgroundFileName(String &FileName)
Definition InputFPPRemotePlayItem.hpp:81
c_InputMgr::e_InputChannelIds GetInputChannelId()
Definition InputFPPRemotePlayItem.hpp:78
time_t PlayDurationSec
Definition InputFPPRemotePlayItem.hpp:28
virtual void SetPauseState(bool _PauseInput)
Definition InputFPPRemotePlayItem.hpp:67
bool InputPaused
Definition InputFPPRemotePlayItem.hpp:39
c_InputMgr::e_InputChannelIds InputChannelId
Definition InputFPPRemotePlayItem.hpp:41
struct c_InputFPPRemotePlayItem::FileControl_t FileControl[2]
virtual void Start(String &FileName, float SecondsElapsed, uint32_t RemainingPlayCount)=0
void ClearFileNames()
Definition InputFPPRemotePlayItem.cpp:43
void GetDriverName(String &Name)
Definition InputFPPRemotePlayItem.hpp:74
virtual bool Poll()=0
void SetOperationalState(bool ActiveFlag)
Definition InputFPPRemotePlayItem.hpp:80
const uint64_t LocalIntensityBufferSize
Definition InputFPPRemotePlayItem.hpp:35
virtual void GetStatus(JsonObject &jsonStatus)=0
c_InputFPPRemotePlayItem(c_InputMgr::e_InputChannelIds InputChannelId)
Definition InputFPPRemotePlayItem.cpp:27
bool InputIsPaused()
Definition InputFPPRemotePlayItem.hpp:79
e_InputChannelIds
Definition InputMgr.hpp:40
@ InputChannelId_ALL
Definition InputMgr.hpp:45
Definition InputFPPRemotePlayItem.hpp:48
uint32_t DataOffset
Definition InputFPPRemotePlayItem.hpp:52
uint32_t ChannelsPerFrame
Definition InputFPPRemotePlayItem.hpp:53
uint32_t TotalNumberOfFramesInSequence
Definition InputFPPRemotePlayItem.hpp:55
uint32_t LastPlayedFrameId
Definition InputFPPRemotePlayItem.hpp:59
uint32_t FrameStepTimeMS
Definition InputFPPRemotePlayItem.hpp:54
uint32_t StartingTimeMS
Definition InputFPPRemotePlayItem.hpp:57
String FileName
Definition InputFPPRemotePlayItem.hpp:49
c_FileMgr::FileId FileHandleForFileBeingPlayed
Definition InputFPPRemotePlayItem.hpp:50
uint32_t LastPollTimeMS
Definition InputFPPRemotePlayItem.hpp:58
uint32_t RemainingPlayCount
Definition InputFPPRemotePlayItem.hpp:51
uint32_t ElapsedPlayTimeMS
Definition InputFPPRemotePlayItem.hpp:56