arduino-audio-tools
Loading...
Searching...
No Matches
src
AudioTools
Communication
HTTP
AbstractURLStream.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
AudioTools/CoreAudio/BaseStream.h
"
4
#include "
AudioTools/CoreAudio/AudioMetaData/AbstractMetaData.h
"
// for MetaDataType
5
#include "
HttpTypes.h
"
6
#include "
HttpRequest.h
"
7
#include "
AudioClient.h
"
8
9
namespace
audio_tools
{
10
17
class
AbstractURLStream
:
public
AudioStream
,
public
MimeSource
{
18
public
:
19
// executes the URL request
20
virtual
bool
begin
(
const
char
*
urlStr
,
const
char
*
acceptMime
=
nullptr
,
21
MethodID
action
=
GET
,
const
char
*
reqMime
=
""
,
22
const
char
*
reqData
=
""
) = 0;
23
// ends the request
24
virtual
void
end
()
override
= 0;
25
27
virtual
void
addRequestHeader
(
const
char
* header,
const
char
* value) = 0;
28
30
virtual
const
char
*
getReplyHeader
(
const
char
* header) = 0;
31
33
const
char
*
mime
()
override
{
34
return
getReplyHeader
(
CONTENT_TYPE
);
35
}
36
37
// only the ICYStream supports this
38
virtual
bool
setMetadataCallback
(
void
(*
fn
)(
MetaDataType
info
,
39
const
char
* str,
int
len)) {
40
return
false
;
41
}
43
int
availableForWrite
()
override
{
return
0; }
44
46
virtual
void
setSSID
(
const
char
* ssid) = 0;
47
49
virtual
void
setPassword
(
const
char
* password) = 0;
50
53
virtual
void
setPowerSave
(
bool
ps
) = 0;
54
56
virtual
void
setCACert
(
const
char
*
cert
) = 0;
57
59
virtual
HttpRequest
&
httpRequest
() = 0;
60
62
virtual
void
setClient
(
Client
&
clientPar
) = 0;
63
65
virtual
void
setConnectionClose
(
bool
flag
) = 0;
66
68
virtual
const
char
*
urlStr
() = 0;
69
71
virtual
size_t
totalRead
() = 0;
72
74
virtual
int
contentLength
() = 0;
75
78
virtual
bool
waitForData
(
int
timeout) = 0;
79
80
};
81
82
83
}
// namespace audio_tools
AbstractMetaData.h
AudioClient.h
BaseStream.h
HttpRequest.h
HttpTypes.h
MethodID
MethodID
supported http methods
Definition
HttpTypes.h:3
GET
@ GET
Definition
HttpTypes.h:5
audio_tools::AbstractURLStream
Abstract Base class for all URLStream implementations.
Definition
AbstractURLStream.h:17
audio_tools::AbstractURLStream::setPassword
virtual void setPassword(const char *password)=0
Sets the password that will be used for logging in (when calling begin)
audio_tools::AbstractURLStream::setCACert
virtual void setCACert(const char *cert)=0
Define the Root PEM Certificate for SSL.
audio_tools::AbstractURLStream::begin
virtual bool begin(const char *urlStr, const char *acceptMime=nullptr, MethodID action=GET, const char *reqMime="", const char *reqData="")=0
audio_tools::AbstractURLStream::urlStr
virtual const char * urlStr()=0
Provides the url as string.
audio_tools::AbstractURLStream::setPowerSave
virtual void setPowerSave(bool ps)=0
audio_tools::AbstractURLStream::httpRequest
virtual HttpRequest & httpRequest()=0
provides access to the HttpRequest
audio_tools::AbstractURLStream::addRequestHeader
virtual void addRequestHeader(const char *header, const char *value)=0
Adds/Updates a request header.
audio_tools::AbstractURLStream::setMetadataCallback
virtual bool setMetadataCallback(void(*fn)(MetaDataType info, const char *str, int len))
Definition
AbstractURLStream.h:38
audio_tools::AbstractURLStream::setSSID
virtual void setSSID(const char *ssid)=0
Sets the ssid that will be used for logging in (when calling begin)
audio_tools::AbstractURLStream::contentLength
virtual int contentLength()=0
Provides the reported data size from the http reply.
audio_tools::AbstractURLStream::availableForWrite
int availableForWrite() override
Writes are not supported.
Definition
AbstractURLStream.h:43
audio_tools::AbstractURLStream::setClient
virtual void setClient(Client &clientPar)=0
(Re-)defines the client
audio_tools::AbstractURLStream::setConnectionClose
virtual void setConnectionClose(bool flag)=0
Add Connection: close to request header.
audio_tools::AbstractURLStream::totalRead
virtual size_t totalRead()=0
Total amout of data that was consumed so far.
audio_tools::AbstractURLStream::mime
const char * mime() override
Provides the MIME type for the current stream.
Definition
AbstractURLStream.h:33
audio_tools::AbstractURLStream::getReplyHeader
virtual const char * getReplyHeader(const char *header)=0
Provides reply header information.
audio_tools::AbstractURLStream::end
virtual void end() override=0
audio_tools::AbstractURLStream::waitForData
virtual bool waitForData(int timeout)=0
audio_tools::AudioStream
Base class for all Audio Streams. It support the boolean operator to test if the object is ready with...
Definition
BaseStream.h:122
audio_tools::AudioStream::info
AudioInfo info
Definition
BaseStream.h:173
audio_tools::Client
Definition
NoArduino.h:169
audio_tools::HttpRequest
Simple API to process get, put, post, del http requests I tried to use Arduino HttpClient,...
Definition
HttpRequest.h:25
audio_tools::MimeSource
Abstract interface for classes that can provide MIME type information.
Definition
MimeDetector.h:29
audio_tools::MetaDataType
MetaDataType
Type of meta info.
Definition
AbstractMetaData.h:11
audio_tools
Generic Implementation of sound input and output for desktop environments using portaudio.
Definition
AudioCodecsBase.h:10
audio_tools::CONTENT_TYPE
static const char * CONTENT_TYPE
Definition
HttpHeader.h:16
audio_tools::writeData
size_t writeData(Print *p_out, T *data, int samples, int maxSamples=512)
Definition
AudioTypes.h:512
Generated by
1.9.8