arduino-audio-tools
Loading...
Searching...
No Matches
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
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
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:43
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.
const char * mime() override
Provides the MIME type for the current stream.
Definition AbstractURLStream.h:33
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:122
Definition NoArduino.h:169
Simple API to process get, put, post, del http requests I tried to use Arduino HttpClient,...
Definition HttpRequest.h:25
Abstract interface for classes that can provide MIME type information.
Definition MimeDetector.h:28
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