arduino-audio-tools
All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Modules Pages
AbstractURLStream.h
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
9namespace audio_tools {
10
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
32 // only the ICYStream supports this
33 virtual bool setMetadataCallback(void (*fn)(MetaDataType info,
34 const char* str, int len)) {
35 return false;
36 }
38 int availableForWrite() override { return 0; }
39
41 virtual void setSSID(const char* ssid) = 0;
42
44 virtual void setPassword(const char* password) = 0;
45
48 virtual void setPowerSave(bool ps) = 0;
49
51 virtual void setCACert(const char* cert) = 0;
52
54 virtual HttpRequest& httpRequest() = 0;
55
57 virtual void setClient(Client& clientPar) = 0;
58
60 virtual void setConnectionClose(bool flag) = 0;
61
63 virtual const char* urlStr() = 0;
64
66 virtual size_t totalRead() = 0;
67
69 virtual int contentLength() = 0;
70
73 virtual bool waitForData(int timeout) = 0;
74
75};
76
77
78} // namespace audio_tools
Abstract Base class for all URLStream implementations.
Definition AbstractURLStream.h:17
virtual void setPassword(const char *password)=0
Sets the password that will be used for logging in (when calling begin)
virtual void setCACert(const char *cert)=0
Define the Root PEM Certificate for SSL.
virtual const char * urlStr()=0
Provides the url as string.
virtual void setPowerSave(bool ps)=0
virtual HttpRequest & httpRequest()=0
provides access to the HttpRequest
virtual void addRequestHeader(const char *header, const char *value)=0
Adds/Updates a request header.
virtual void setSSID(const char *ssid)=0
Sets the ssid that will be used for logging in (when calling begin)
virtual int contentLength()=0
Provides the reported data size from the http reply.
int availableForWrite() override
Writes are not supported.
Definition AbstractURLStream.h:38
virtual void setClient(Client &clientPar)=0
(Re-)defines the client
virtual void setConnectionClose(bool flag)=0
Add Connection: close to request header.
virtual size_t totalRead()=0
Total amout of data that was consumed so far.
virtual const char * getReplyHeader(const char *header)=0
Provides reply header information.
virtual bool waitForData(int timeout)=0
Base class for all Audio Streams. It support the boolean operator to test if the object is ready with...
Definition BaseStream.h:119
Definition NoArduino.h:169
Simple API to process get, put, post, del http requests I tried to use Arduino HttpClient,...
Definition HttpRequest.h:25
MetaDataType
Type of meta info.
Definition AbstractMetaData.h:11
Generic Implementation of sound input and output for desktop environments using portaudio.
Definition AudioCodecsBase.h:10