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;
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 uint32_t PlayedFileCount = 0;
43
44public:
47
63 #define CurrentFile 0
64 #define NextFile 1
65
66 virtual bool Poll () = 0;
67 virtual void Start (String & FileName, float SecondsElapsed, uint32_t RemainingPlayCount) = 0;
68 virtual void Stop () = 0;
69 virtual void SetPauseState (bool _PauseInput) {InputPaused = _PauseInput;}
70 virtual void Sync (String & FileName, float SecondsElapsed) = 0;
71 virtual void GetStatus (JsonObject & jsonStatus) = 0;
72 virtual void ClearStatistics () {PlayedFileCount = 0;}
73 virtual bool IsIdle () = 0;
74 uint32_t GetPlayedFileCount () {return PlayedFileCount;}
75 void SetPlayedFileCount (uint32_t value) {PlayedFileCount = value;}
76 String GetFileName () { return String(FileControl[CurrentFile].FileName); }
78 void SetDuration (time_t value) { PlayDurationSec = value; }
79 void GetDriverName (String& Name) { Name = "InputMgr"; }
80 int32_t GetSyncOffsetMS () { return SyncOffsetMS; }
81 void SetSyncOffsetMS (int32_t value) { SyncOffsetMS = value; }
82 void SetSendFppSync (bool value) { SendFppSync = value; }
84 bool InputIsPaused () { return InputPaused; }
85 void SetOperationalState (bool ActiveFlag) {InputPaused = !ActiveFlag;}
86 void SetBackgroundFileName(String & FileName) {SafeStrncpy(BackgroundFileName, FileName.c_str(), sizeof(BackgroundFileName)-1);}
87 void ClearFileNames ();
88
89}; // c_InputFPPRemotePlayItem
90extern byte *LocalIntensityBuffer;
void SafeStrncpy(char *dest, const char *src, uint destSize)
Definition ESPixelStick.h:106
#define CurrentFile
Definition InputFPPRemotePlayItem.hpp:63
byte * LocalIntensityBuffer
Definition InputFPPRemotePlayItem.cpp:24
static const FileId INVALID_FILE_HANDLE
Definition FileMgr.hpp:54
uint32_t FileId
Definition FileMgr.hpp:53
Definition InputFPPRemotePlayItem.hpp:26
bool SendFppSync
Definition InputFPPRemotePlayItem.hpp:29
void SetDuration(time_t value)
Definition InputFPPRemotePlayItem.hpp:78
String GetFileName()
Definition InputFPPRemotePlayItem.hpp:76
int32_t SyncOffsetMS
Definition InputFPPRemotePlayItem.hpp:40
virtual void Stop()=0
void SetSendFppSync(bool value)
Definition InputFPPRemotePlayItem.hpp:82
uint32_t GetPlayedFileCount()
Definition InputFPPRemotePlayItem.hpp:74
uint32_t PlayedFileCount
Definition InputFPPRemotePlayItem.hpp:42
virtual void Sync(String &FileName, float SecondsElapsed)=0
uint32_t GetRepeatCount()
Definition InputFPPRemotePlayItem.hpp:77
void SetSyncOffsetMS(int32_t value)
Definition InputFPPRemotePlayItem.hpp:81
virtual ~c_InputFPPRemotePlayItem()
Definition InputFPPRemotePlayItem.cpp:42
virtual bool IsIdle()=0
int32_t GetSyncOffsetMS()
Definition InputFPPRemotePlayItem.hpp:80
void SetBackgroundFileName(String &FileName)
Definition InputFPPRemotePlayItem.hpp:86
c_InputMgr::e_InputChannelIds GetInputChannelId()
Definition InputFPPRemotePlayItem.hpp:83
time_t PlayDurationSec
Definition InputFPPRemotePlayItem.hpp:28
void SetPlayedFileCount(uint32_t value)
Definition InputFPPRemotePlayItem.hpp:75
char BackgroundFileName[65]
Definition InputFPPRemotePlayItem.hpp:30
virtual void SetPauseState(bool _PauseInput)
Definition InputFPPRemotePlayItem.hpp:69
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:48
void GetDriverName(String &Name)
Definition InputFPPRemotePlayItem.hpp:79
virtual bool Poll()=0
virtual void ClearStatistics()
Definition InputFPPRemotePlayItem.hpp:72
void SetOperationalState(bool ActiveFlag)
Definition InputFPPRemotePlayItem.hpp:85
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:84
e_InputChannelIds
Definition InputMgr.hpp:40
@ InputChannelId_ALL
Definition InputMgr.hpp:45
Definition InputFPPRemotePlayItem.hpp:49
uint32_t DataOffset
Definition InputFPPRemotePlayItem.hpp:53
uint32_t ChannelsPerFrame
Definition InputFPPRemotePlayItem.hpp:54
uint32_t TotalNumberOfFramesInSequence
Definition InputFPPRemotePlayItem.hpp:56
uint32_t LastPlayedFrameId
Definition InputFPPRemotePlayItem.hpp:60
char FileName[65]
Definition InputFPPRemotePlayItem.hpp:50
uint32_t FrameStepTimeMS
Definition InputFPPRemotePlayItem.hpp:55
uint32_t StartingTimeMS
Definition InputFPPRemotePlayItem.hpp:58
uint32_t NumPollsSinceSync
Definition InputFPPRemotePlayItem.hpp:61
c_FileMgr::FileId FileHandleForFileBeingPlayed
Definition InputFPPRemotePlayItem.hpp:51
uint32_t LastPollTimeMS
Definition InputFPPRemotePlayItem.hpp:59
uint32_t RemainingPlayCount
Definition InputFPPRemotePlayItem.hpp:52
uint32_t ElapsedPlayTimeMS
Definition InputFPPRemotePlayItem.hpp:57