-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSerialPeriphial.cpp
More file actions
47 lines (39 loc) · 1.27 KB
/
Copy pathSerialPeriphial.cpp
File metadata and controls
47 lines (39 loc) · 1.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include "SerialPeriphial.hpp"
#include "halvoeAudioPipeline.hpp"
namespace halvoe
{
SerialPeriphial::SerialPeriphial(HardwareSerial& in_serial, AudioPipeline& io_audioPipeline) :
SerialInterface<c_serializerBufferSize, c_deserializerBufferSize>(in_serial),
m_audioPipeline(io_audioPipeline)
{}
bool SerialPeriphial::setup()
{
m_serial.setPins(33, 32);
m_serial.begin(19200);
return m_serial;
}
bool SerialPeriphial::handlePlayFile(Deserializer<c_deserializerBufferSize>& io_deserializer)
{
SerialStringSizeType filenameSize = 0;
auto filenamePointer = io_deserializer.read<SerialStringSizeType>(64, filenameSize);
String filename(filenamePointer.get(), filenameSize);
return m_audioPipeline.playFile(filename);
}
bool SerialPeriphial::handleEndPlayback()
{
return m_audioPipeline.endPlayback();
}
bool SerialPeriphial::doHandleData(Deserializer<c_deserializerBufferSize>& io_deserializer, SerialDataCode in_code)
{
return false;
}
bool SerialPeriphial::doHandleCommand(Deserializer<c_deserializerBufferSize>& io_deserializer, SerialCommandCode in_code)
{
switch (in_code)
{
case SerialCommandCode::playFile: return handlePlayFile(io_deserializer);
case SerialCommandCode::endPlayback: return handleEndPlayback();
}
return false;
}
}