41 bool begin(FS& fs,
const char* rootPath) {
72 const char* filter,
int startingIndex,
int requestedCount,
73 const char* sortCriteria,
int& numberReturned,
74 int& totalMatches,
int& updateID,
void* reference) {
109 for (
auto* child : parentNode->
children) {
117 int available = totalMatches - startingIndex;
118 if (available < 0) available = 0;
119 numberReturned = (requestedCount == 0)
121 : std::min(requestedCount, available);
130 for (
auto* node : allFiles) {
138 int available = totalMatches - startingIndex;
139 if (available < 0) available = 0;
140 numberReturned = (requestedCount == 0)
142 : std::min(requestedCount, available);
146 "Number of results: Total=%d, Returned=%d", totalMatches,
175 if (adjustedIndex < 0 ||
176 adjustedIndex >=
static_cast<int>(
resultNodes_.size())) {
181 if (!node)
return false;
211 }
else if (
currentMime_.find(
"video") != std::string::npos) {
213 }
else if (
currentMime_.find(
"image") != std::string::npos) {
221 snprintf(urlBuffer,
sizeof(urlBuffer),
"/%s?ID=%u",
path, node->
id);
274 if (!objectID)
return nullptr;
275 uint32_t
id = std::stoul(objectID);
In-memory directory tree built from SdFat recursive listings.
Content provider for DLNA media server using SdFat filesystem.
Definition: SdFatContentProvider.h:33
const char * sortCriteria_
Definition: SdFatContentProvider.h:256
void end()
Releases all resources and clears the directory tree.
Definition: SdFatContentProvider.h:46
stringPSRAM currentPath_
Current resource path string.
Definition: SdFatContentProvider.h:265
bool getData(int index, MediaItem &item, void *reference=nullptr)
Retrieves a single media item by index.
Definition: SdFatContentProvider.h:170
bool isHidden(TreeNode *node) const
Returns true if the node is hidden (file or directory name starts with '.')
Definition: SdFatContentProvider.h:155
std::vector< TreeNode *, AllocatorPSRAM< TreeNode * > > resultNodes_
Definition: SdFatContentProvider.h:260
stringPSRAM currentId_
Current item ID string.
Definition: SdFatContentProvider.h:263
stringPSRAM currentParentId_
Current parent ID string.
Definition: SdFatContentProvider.h:264
int requestedCount_
Definition: SdFatContentProvider.h:255
const char * objectID_
Definition: SdFatContentProvider.h:251
void * reference_
Definition: SdFatContentProvider.h:257
const char * filter_
Definition: SdFatContentProvider.h:253
const char * getPath()
Provides the path prefix for resource URIs.
Definition: SdFatContentProvider.h:232
const char * path
Definition: SdFatContentProvider.h:248
int startingIndex_
Definition: SdFatContentProvider.h:254
ContentQueryType queryType_
Definition: SdFatContentProvider.h:252
void prepareData(const char *objectID, ContentQueryType queryType, const char *filter, int startingIndex, int requestedCount, const char *sortCriteria, int &numberReturned, int &totalMatches, int &updateID, void *reference)
Prepares data for a DLNA content query.
Definition: SdFatContentProvider.h:71
TreeNode & getTreeNodeById(uint32_t id)
Returns the full file path by node ID.
Definition: SdFatContentProvider.h:242
TreeNode * findNodeByObjectID(const char *objectID)
Finds a tree node by its object ID string.
Definition: SdFatContentProvider.h:273
bool begin(FS &fs, const char *rootPath)
Initializes the content provider and scans the filesystem.
Definition: SdFatContentProvider.h:41
SdFatDirectoryTree< FS > directoryTree
Definition: SdFatContentProvider.h:247
void setPath(const char *p)
Sets the path prefix for resource URIs.
Definition: SdFatContentProvider.h:237
stringPSRAM currentMime_
Current MIME type string.
Definition: SdFatContentProvider.h:266
size_t size()
Definition: SdFatContentProvider.h:51
Simple in-memory directory tree built using SdFat recursive directory listing.
Definition: SdFatDirectoryTree.h:33
Node in the directory tree representing either a file or a directory.
Definition: TreeNode.h:18
std::string getMime() const
Very basic MIME inference based on file extension.
Definition: TreeNode.h:66
std::vector< TreeNode *, AllocatorPSRAM< TreeNode * > > children
Definition: TreeNode.h:23
uint32_t id
Definition: TreeNode.h:21
stringPSRAM file_name
Definition: TreeNode.h:22
bool is_dir
Definition: TreeNode.h:27
TreeNode * parent
Definition: TreeNode.h:24
Definition: Allocator.h:13
ContentQueryType
Type of content query for DLNA browsing/searching.
Definition: DLNACommon.h:36
std::basic_string< char, std::char_traits< char >, AllocatorPSRAM< char > > stringPSRAM
Definition: Allocator.h:106