2#include "AudioTools/CoreAudio/AudioBasic/Str.h"
3#include "AudioTools/CoreAudio/AudioMetaData/AbstractMetaData.h"
29 LOGE(
"Not Supported!");
37 virtual int index() {
return -1; }
45 timeout_auto_next_value = millisec;
52 virtual bool setMetadataCallback(
void (*fn)(
MetaDataType info,
53 const char* str,
int len),
68 virtual const char*
toStr() {
return nullptr; }
71 int timeout_auto_next_value = 500;
85 void (*onStartCallback)() =
nullptr) {
87 this->onStartCallback = onStartCallback;
88 this->nextStreamCallback = nextStreamCallback;
94 if (onStartCallback !=
nullptr) onStartCallback();
101 return nextStreamCallback ==
nullptr ? nullptr : nextStreamCallback(offset);
106 LOGI(
"selectStream: %d",
index);
107 if (indexStreamCallback ==
nullptr) {
108 LOGI(
"setCallbackSelectStream not provided");
117 return indexStreamCallback(
index);
122 return indexStreamCallback ==
nullptr ? nullptr : indexStreamCallback(-1);
125 void setCallbackOnStart(
void (*callback)()) { onStartCallback = callback; }
127 void setCallbackNextStream(Stream* (*callback)(
int offset)) {
128 nextStreamCallback = callback;
131 void setCallbackSelectStream(Stream* (*callback)(
int idx)) {
132 indexStreamCallback = callback;
137 virtual void setAutoNext(
bool a) { auto_next = a; }
140 virtual const char*
getPath() {
return path; }
143 void (*onStartCallback)() =
nullptr;
144 bool auto_next =
true;
145 Stream* (*nextStreamCallback)(
int offset) =
nullptr;
146 Stream* (*indexStreamCallback)(
int index) =
nullptr;
147 const char* path =
nullptr;