Arduino DLNA Server
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
tiny_dlna::MediaRenderer Class Reference

MediaRenderer DLNA Device. More...

#include <MediaRenderer.h>

Inheritance diagram for tiny_dlna::MediaRenderer:
Inheritance graph
[legend]
Collaboration diagram for tiny_dlna::MediaRenderer:
Collaboration graph
[legend]

Public Member Functions

 MediaRenderer ()
 
 MediaRenderer (AudioStream &out, AudioDecoder &decoder)
 
 MediaRenderer (AudioOutput &out, AudioDecoder &decoder)
 
 MediaRenderer (Print &out, AudioDecoder &decoder)
 
 ~MediaRenderer ()
 
void setLogin (const char *ssid, const char *password)
 Provides the optional login information. More...
 
bool begin ()
 
void end ()
 
bool play (const char *urlStr)
 Defines and opens the URL to be played. More...
 
bool stop ()
 
bool pause ()
 
bool resume ()
 
bool setVolume (uint8_t volumePercent)
 Defines the volume in percent (0-100) More...
 
uint8_t getVolume ()
 Returns the volume in percent (0-100) More...
 
bool setMute (bool mute)
 
bool isMuted ()
 
bool isPlaying ()
 
bool isPaused ()
 
bool seek (unsigned long position)
 
unsigned long getPosition ()
 
unsigned long getDuration ()
 
void setOutput (AudioStream &out)
 
void setOutput (AudioOutput &out)
 
void setOutput (Print &out)
 
void setDecoder (AudioDecoder &decoder)
 
size_t copy ()
 
void loop ()
 loop called by DeviceMgr More...
 
void setupServices (HttpServer &server, IUDPService &udp)
 
- Public Member Functions inherited from tiny_dlna::DLNADevice
 DLNADevice (bool ok=true)
 
 ~DLNADevice ()
 
void print (Print &out)
 renderes the device xml More...
 
void setDeviceType (const char *st)
 
const char * getDeviceType ()
 
void setUDN (const char *id)
 Define the udn uuid. More...
 
const char * getUDN ()
 Provide the udn uuid. More...
 
void setBaseURL (const char *url)
 Defines the base url. More...
 
const char * getBaseURL ()
 Provides the base url. More...
 
UrlgetDeviceURL ()
 This method returns base url/device.xml. More...
 
void setIPAddress (IPAddress address)
 
IPAddress getIPAddress ()
 
const char * getIPStr ()
 Provides the local address as string. More...
 
void setNS (const char *ns)
 
const char * getNS ()
 
void setFriendlyName (const char *name)
 
const char * getFriendlyName ()
 
void setManufacturer (const char *man)
 
const char * getManufacturer ()
 
void setManufacturerURL (const char *url)
 
const char * getManufacturerURL ()
 
void setModelDescription (const char *descr)
 
const char * getModelDescription ()
 
void setModelName (const char *name)
 
const char * getModelName ()
 
void setModelNumber (const char *number)
 
const char * getModelNumber ()
 
void setSerialNumber (const char *sn)
 
const char * getSerialNumber ()
 
void setUniveralProductCode (const char *upc)
 
const char * getUniveralProductCode ()
 
void addService (DLNAServiceInfo s)
 Adds a service defintion. More...
 
DLNAServiceInfogetService (const char *id)
 Finds a service definition by name. More...
 
Vector< DLNAServiceInfo > & getServices ()
 
void clear ()
 
void clearIcons ()
 Overwrite the default icon. More...
 
void addIcon (Icon icon)
 
Icon getIcon (int idx=0)
 
 operator bool ()
 
void updateTimestamp ()
 Update the timestamp. More...
 
uint32_t getTimestamp ()
 Returns the time when this object has been updated. More...
 
void setActive (bool flag)
 

Protected Member Functions

void setupServicesImpl (HttpServer *server)
 
- Protected Member Functions inherited from tiny_dlna::DLNADevice
size_t printRoot ()
 
size_t printDevice ()
 
size_t printSpecVersion ()
 
size_t printServiceList ()
 
size_t printService (void *srv)
 
size_t printIconList ()
 
size_t printIconDlnaInfo (Icon &icon)
 

Static Protected Member Functions

static const char * reply ()
 
static void transportControlCB (HttpServer *server, const char *requestPath, HttpRequestHandlerLine *hl)
 
static void renderingControlCB (HttpServer *server, const char *requestPath, HttpRequestHandlerLine *hl)
 

Protected Attributes

URLStream url
 
Pipeline pipeline
 
AudioDecoder * p_decoder = nullptr
 
EncodedAudioStream dec_stream
 
VolumeStream volume
 
AudioStream * p_stream = nullptr
 
AudioOutput * p_out = nullptr
 
Print * p_print = nullptr
 
StreamCopy copier {pipeline, url}
 
uint8_t current_volume = 50
 
bool is_muted = false
 
bool playing = false
 
unsigned long start_time = 0
 
const char * st = "urn:schemas-upnp-org:device:MediaRenderer:1"
 
const char * usn = "uuid:09349455-2941-4cf7-9847-1dd5ab210e97"
 
- Protected Attributes inherited from tiny_dlna::DLNADevice
uint64_t timestamp = 0
 
bool is_active = true
 
XMLPrinter xml
 
Url device_url
 
IPAddress localhost
 
int version_major = 1
 
int version_minor = 0
 
const char * base_url = "http://localhost:9876/dlna"
 
const char * udn = "uuid:09349455-2941-4cf7-9847-0dd5ab210e97"
 
const char * ns = "xmlns=\"urn:schemas-upnp-org:device-1-0\""
 
const char * device_type = nullptr
 
const char * friendly_name = nullptr
 
const char * manufacturer = nullptr
 
const char * manufacturer_url = nullptr
 
const char * model_description = nullptr
 
const char * model_name = nullptr
 
const char * model_url = nullptr
 
const char * model_number = nullptr
 
const char * serial_number = nullptr
 
const char * universal_product_code = nullptr
 
Icon icon
 
Vector< DLNAServiceInfoservices
 
Vector< Iconicons
 

Detailed Description

MediaRenderer DLNA Device.

Author
Phil Schatzmann

Constructor & Destructor Documentation

◆ MediaRenderer() [1/4]

tiny_dlna::MediaRenderer::MediaRenderer ( )
inline

◆ MediaRenderer() [2/4]

tiny_dlna::MediaRenderer::MediaRenderer ( AudioStream &  out,
AudioDecoder &  decoder 
)
inline

◆ MediaRenderer() [3/4]

tiny_dlna::MediaRenderer::MediaRenderer ( AudioOutput &  out,
AudioDecoder &  decoder 
)
inline

◆ MediaRenderer() [4/4]

tiny_dlna::MediaRenderer::MediaRenderer ( Print &  out,
AudioDecoder &  decoder 
)
inline

◆ ~MediaRenderer()

tiny_dlna::MediaRenderer::~MediaRenderer ( )
inline

Member Function Documentation

◆ begin()

bool tiny_dlna::MediaRenderer::begin ( )
inline

◆ copy()

size_t tiny_dlna::MediaRenderer::copy ( )
inline

◆ end()

void tiny_dlna::MediaRenderer::end ( )
inline

◆ getDuration()

unsigned long tiny_dlna::MediaRenderer::getDuration ( )
inline

◆ getPosition()

unsigned long tiny_dlna::MediaRenderer::getPosition ( )
inline

◆ getVolume()

uint8_t tiny_dlna::MediaRenderer::getVolume ( )
inline

Returns the volume in percent (0-100)

◆ isMuted()

bool tiny_dlna::MediaRenderer::isMuted ( )
inline

◆ isPaused()

bool tiny_dlna::MediaRenderer::isPaused ( )
inline

◆ isPlaying()

bool tiny_dlna::MediaRenderer::isPlaying ( )
inline

◆ loop()

void tiny_dlna::MediaRenderer::loop ( )
inlinevirtual

loop called by DeviceMgr

Reimplemented from tiny_dlna::DLNADevice.

◆ pause()

bool tiny_dlna::MediaRenderer::pause ( )
inline

◆ play()

bool tiny_dlna::MediaRenderer::play ( const char *  urlStr)
inline

Defines and opens the URL to be played.

◆ renderingControlCB()

static void tiny_dlna::MediaRenderer::renderingControlCB ( HttpServer server,
const char *  requestPath,
HttpRequestHandlerLine hl 
)
inlinestaticprotected

◆ reply()

static const char* tiny_dlna::MediaRenderer::reply ( )
inlinestaticprotected

◆ resume()

bool tiny_dlna::MediaRenderer::resume ( )
inline

◆ seek()

bool tiny_dlna::MediaRenderer::seek ( unsigned long  position)
inline

◆ setDecoder()

void tiny_dlna::MediaRenderer::setDecoder ( AudioDecoder &  decoder)
inline

◆ setLogin()

void tiny_dlna::MediaRenderer::setLogin ( const char *  ssid,
const char *  password 
)
inline

Provides the optional login information.

◆ setMute()

bool tiny_dlna::MediaRenderer::setMute ( bool  mute)
inline

◆ setOutput() [1/3]

void tiny_dlna::MediaRenderer::setOutput ( AudioOutput &  out)
inline

◆ setOutput() [2/3]

void tiny_dlna::MediaRenderer::setOutput ( AudioStream &  out)
inline

◆ setOutput() [3/3]

void tiny_dlna::MediaRenderer::setOutput ( Print &  out)
inline

◆ setupServices()

void tiny_dlna::MediaRenderer::setupServices ( HttpServer server,
IUDPService udp 
)
inlinevirtual

Reimplemented from tiny_dlna::DLNADevice.

◆ setupServicesImpl()

void tiny_dlna::MediaRenderer::setupServicesImpl ( HttpServer server)
inlineprotected

◆ setVolume()

bool tiny_dlna::MediaRenderer::setVolume ( uint8_t  volumePercent)
inline

Defines the volume in percent (0-100)

◆ stop()

bool tiny_dlna::MediaRenderer::stop ( )
inline

◆ transportControlCB()

static void tiny_dlna::MediaRenderer::transportControlCB ( HttpServer server,
const char *  requestPath,
HttpRequestHandlerLine hl 
)
inlinestaticprotected

Member Data Documentation

◆ copier

StreamCopy tiny_dlna::MediaRenderer::copier {pipeline, url}
protected

◆ current_volume

uint8_t tiny_dlna::MediaRenderer::current_volume = 50
protected

◆ dec_stream

EncodedAudioStream tiny_dlna::MediaRenderer::dec_stream
protected

◆ is_muted

bool tiny_dlna::MediaRenderer::is_muted = false
protected

◆ p_decoder

AudioDecoder* tiny_dlna::MediaRenderer::p_decoder = nullptr
protected

◆ p_out

AudioOutput* tiny_dlna::MediaRenderer::p_out = nullptr
protected

◆ p_print

Print* tiny_dlna::MediaRenderer::p_print = nullptr
protected

◆ p_stream

AudioStream* tiny_dlna::MediaRenderer::p_stream = nullptr
protected

◆ pipeline

Pipeline tiny_dlna::MediaRenderer::pipeline
protected

◆ playing

bool tiny_dlna::MediaRenderer::playing = false
protected

◆ st

const char* tiny_dlna::MediaRenderer::st = "urn:schemas-upnp-org:device:MediaRenderer:1"
protected

◆ start_time

unsigned long tiny_dlna::MediaRenderer::start_time = 0
protected

◆ url

URLStream tiny_dlna::MediaRenderer::url
protected

◆ usn

const char* tiny_dlna::MediaRenderer::usn = "uuid:09349455-2941-4cf7-9847-1dd5ab210e97"
protected

◆ volume

VolumeStream tiny_dlna::MediaRenderer::volume
protected

The documentation for this class was generated from the following file: