Arduino DLNA Server
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 123]
 Ctiny_dlna::ActionReply
 Ctiny_dlna::ActionRequest
 Ctiny_dlna::AllocatorMemory allocateator which uses malloc
 Ctiny_dlna::AllocatorExtMemory allocateator which uses ps_malloc (on the ESP32) and if this fails it resorts to malloc
 Ctiny_dlna::ArgumentDLNA Service: Action Argument
 Ctiny_dlna::DLNAControlPointMgrSetup of a Basic DLNA Control Point. The control point
 Ctiny_dlna::DLNAControlPointRequestParserTranslates DLNA UDP Requests to Schedule so that we can schedule a reply
 Ctiny_dlna::DLNADeviceDevice Attributes and generation of XML using urn:schemas-upnp-org:device-1-0. We could just return a predefined device xml document, but we provide a dynamic generation of the service xml which should be more memory efficient. Strings are represented as char*, so you can assign values that are stored in ProgMem to mimimize the RAM useage. If you need to keep the values on the heap you can use addString() method
 Ctiny_dlna::MediaRendererMediaRenderer DLNA Device
 Ctiny_dlna::DLNADeviceMgrSetup of a Basic DLNA Device service. The device registers itself to the network and answers to the DLNA queries and requests. A DLNA device uses UDP, Http, XML and Soap to discover and manage a service, so there is quite some complexity involved:
 Ctiny_dlna::DLNADeviceRequestParserTranslates DLNA UDP Requests to Schedule so that we can schedule a reply
 Ctiny_dlna::DLNAServiceInfoAttributes needed for the DLNA Service Definition
 Ctiny_dlna::HttpChunkWriterWrites the data chunked to the actual client
 Ctiny_dlna::HttpHeaderIn a http request and reply we need to process header information. With this API we can define and query the header information. The individual header lines are stored in a list. This is the common functionality for the HttpRequest and HttpReplyHeader subclasses
 Ctiny_dlna::HttpReplyHeaderReading and Writing of Http Replys
 Ctiny_dlna::HttpRequestHeaderReading and writing of Http Requests
 Ctiny_dlna::HttpHeaderLineA individual key - value header line
 Ctiny_dlna::HttpLineReaderWe read a single line. A terminating 0 is added to the string to make it compliant for c string functions
 Ctiny_dlna::HttpChunkReaderHttp might reply with chunks. So we need to dechunk the data. see https://en.wikipedia.org/wiki/Chunked_transfer_encoding
 Ctiny_dlna::HttpParametersAPI for http parameters: key=value&key1=value1
 Ctiny_dlna::HttpRequestSimple API to process get, put, post, del http requests I tried to use Arduino HttpClient, but I did not manage to extract the mime type from streaming get requests
 Ctiny_dlna::HttpRequestHandlerLineUsed to register and process callbacks
 Ctiny_dlna::HttpRequestRewriteObject which information about the rewrite rule
 Ctiny_dlna::HttpServerA Simple Header only implementation of Http Server that allows the registration of callback functions. This is based on the Arduino Server class
 Ctiny_dlna::HttpStreamCopyProcessing of a single stream to a single client. In the loop we can simply provide individual small chunks until we are done
 Ctiny_dlna::HttpStreamedOutputAbstract class for handling streamed output
 Ctiny_dlna::HttpStreamedMultiOutputGeneric HttpStreamedMultiOutput Class which handles multicast streaming. We can optionally define some default (e.g. html) content that will be written at the beginning and at the end of the streaming session to the client
 Ctiny_dlna::HttpTunnelForwards a request to a destination URL and provides a pointer to the result stream
 Ctiny_dlna::IconInformation about the icon
 Ctiny_dlna::IPAddressAndPortIP Adress including Port information
 Ctiny_dlna::List< T >::Iterator
 Ctiny_dlna::Vector< T >::iteratorIterator for the Vector class
 Ctiny_dlna::IUDPServiceAbstract Interface for UDP API
 Ctiny_dlna::UDPAsyncServiceAccess to UDP functionality: sending and receiving of data using the Async API of the ESP32
 Ctiny_dlna::UDPServiceAccess to UDP functionality: sending and receiving of data It seems that the UDP receive is not working for
 Ctiny_dlna::List< T >Double linked list
 Ctiny_dlna::List< tiny_dlna::HttpHeaderLine * >
 Ctiny_dlna::List< tiny_dlna::HttpRequestHandlerLine * >
 Ctiny_dlna::List< tiny_dlna::HttpRequestRewrite * >
 Ctiny_dlna::List< WiFiClient >
 Ctiny_dlna::LoggerClassLogger that writes messages dependent on the log level
 Ctiny_dlna::MimeExtensionMapping from file extensions to mime types
 Ctiny_dlna::List< T >::Node
 Ctiny_dlna::QueueLockFree< T >::Node
 Ctiny_dlna::NotificationDLNA notification
 CPrint
 Ctiny_dlna::NullPrint
 Ctiny_dlna::StrPrint
 Ctiny_dlna::QueueLockFree< T >A simple single producer, single consumer lock free queue
 Ctiny_dlna::QueueLockFree< tiny_dlna::RequestData >
 Ctiny_dlna::RequestDataProvides information of the received UDP which consists of the (xml) data and the peer address and port
 Ctiny_dlna::RingBufferImplementation of a Simple Circular Buffer. Instead of comparing the position of the read and write pointer in order to figure out if we still have characters available or space left to write we keep track of the actual length which is easier to follow
 Ctiny_dlna::ScheduleAn individual Schedule (to send out UDP messages)
 Ctiny_dlna::MSearchReplyCPProcessing at control point to handle a MSearchReply from the device
 Ctiny_dlna::NotifyReplyCP
 Ctiny_dlna::MSearchReplyScheduleAnswer from device to MSearch request by sending a reply
 Ctiny_dlna::MSearchScheduleSend MSearch request
 Ctiny_dlna::PostAliveScheduleSend out PostAlive messages: Repeated every 5 seconds
 Ctiny_dlna::PostByeScheduleSend out ByeBye message
 Ctiny_dlna::PostSubscribeSend SUBSCRIBE message via UDP unicast
 Ctiny_dlna::SchedulerScheduler which processes all due Schedules (to send out UDP replies)
 Ctiny_dlna::StateValue
 Ctiny_dlna::StringRegistry
 Ctiny_dlna::StrViewA simple wrapper to provide string functions on char*. If the underlying char* is a const we do not allow any updates; The ownership of the chr* must be managed externally!
 Ctiny_dlna::StrString implementation which keeps the data on the heap. We grow the allocated memory only if the copy source is not fitting
 Ctiny_dlna::UrlURL parser which breaks a full url string up into its individual parts
 Ctiny_dlna::Vector< T >Vector implementation which provides the most important methods as defined by std::vector. This class it is quite handy to have and most of the times quite better then dealing with raw c arrays
 Ctiny_dlna::Vector< char >
 Ctiny_dlna::Vector< const char * >
 Ctiny_dlna::Vector< HttpParameterEntry * >
 Ctiny_dlna::Vector< tiny_dlna::ActionRequest >
 Ctiny_dlna::Vector< tiny_dlna::Argument >
 Ctiny_dlna::Vector< tiny_dlna::DLNADevice >
 Ctiny_dlna::Vector< tiny_dlna::DLNAServiceInfo >
 Ctiny_dlna::Vector< tiny_dlna::Icon >
 Ctiny_dlna::Vector< tiny_dlna::QueueLockFree::Node >
 Ctiny_dlna::Vector< tiny_dlna::Schedule * >
 Ctiny_dlna::Vector< tiny_dlna::Str >
 Ctiny_dlna::XMLDeviceParserParses an DLNA device xml string to fill the DLNADevice data structure
 Ctiny_dlna::XMLNodeRepresents a single XML element
 Ctiny_dlna::XMLPrinterFunctions to efficiently output XML. XML data contains a lot of redundancy so it is more memory efficient to generate the data instead of using a predefined XML document