Skip to content

Commit 9bef56d

Browse files
authored
misc: remove sockpp reference from DMD.h (#63)
1 parent 93fe8c3 commit 9bef56d

File tree

2 files changed

+33
-10
lines changed

2 files changed

+33
-10
lines changed

include/DMDUtil/DMD.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@
2424
#include <string>
2525
#include <thread>
2626

27-
#include "sockpp/tcp_connector.h"
28-
2927
#if defined(__APPLE__)
3028
#include <TargetConditionals.h>
3129
#endif
@@ -71,6 +69,8 @@ class LevelDMD;
7169
class RGB24DMD;
7270
class ConsoleDMD;
7371

72+
class DMDServerConnector;
73+
7474
class DMDUTILAPI DMD
7575
{
7676
public:
@@ -202,7 +202,7 @@ class DMDUTILAPI DMD
202202
std::vector<LevelDMD*> m_levelDMDs;
203203
std::vector<RGB24DMD*> m_rgb24DMDs;
204204
std::vector<ConsoleDMD*> m_consoleDMDs;
205-
sockpp::tcp_connector* m_pDMDServerConnector;
205+
DMDServerConnector* m_pDMDServerConnector;
206206
bool m_dmdServerDisconnectOthers = false;
207207

208208
std::thread* m_pLevelDMDThread;

src/DMD.cpp

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#include "DMDUtil/DMD.h"
2-
32
#include "DMDUtil/Config.h"
43
#include "DMDUtil/ConsoleDMD.h"
54
#include "DMDUtil/LevelDMD.h"
@@ -15,6 +14,8 @@
1514
#include <chrono>
1615
#include <cstring>
1716

17+
#include "sockpp/tcp_connector.h"
18+
1819
#include "AlphaNumeric.h"
1920
#include "FrameUtil.h"
2021
#include "Logger.h"
@@ -42,6 +43,29 @@ void ZEDMDCALLBACK ZeDMDLogCallback(const char* format, va_list args, const void
4243
Log(DMDUtil_LogLevel_INFO, "%s", buffer);
4344
}
4445

46+
class DMDServerConnector
47+
{
48+
public:
49+
~DMDServerConnector() { delete m_pConnector; }
50+
51+
static DMDServerConnector* Create(const char* pAddress, int port)
52+
{
53+
sockpp::tcp_connector* pConnector = new sockpp::tcp_connector({pAddress, (in_port_t)port});
54+
return pConnector ? new DMDServerConnector(pConnector) : nullptr;
55+
}
56+
57+
ssize_t Write(const void* buf, size_t size)
58+
{
59+
return m_pConnector->write_n(buf, size);
60+
}
61+
62+
void Close() { m_pConnector->close(); }
63+
64+
private:
65+
DMDServerConnector(sockpp::tcp_connector* pConnector) : m_pConnector(pConnector) {}
66+
sockpp::tcp_connector* m_pConnector;
67+
};
68+
4569
bool DMD::m_finding = false;
4670

4771
DMD::DMD()
@@ -170,7 +194,7 @@ DMD::~DMD()
170194

171195
if (m_pDMDServerConnector)
172196
{
173-
m_pDMDServerConnector->close();
197+
m_pDMDServerConnector->Close();
174198
delete m_pDMDServerConnector;
175199
m_pDMDServerConnector = nullptr;
176200
}
@@ -184,8 +208,7 @@ bool DMD::ConnectDMDServer()
184208
sockpp::initialize();
185209
Log(DMDUtil_LogLevel_INFO, "Connecting DMDServer on %s:%d", pConfig->GetDMDServerAddr(),
186210
pConfig->GetDMDServerPort());
187-
m_pDMDServerConnector =
188-
new sockpp::tcp_connector({pConfig->GetDMDServerAddr(), (in_port_t)pConfig->GetDMDServerPort()});
211+
m_pDMDServerConnector = DMDServerConnector::Create(pConfig->GetDMDServerAddr(), pConfig->GetDMDServerPort());
189212
if (!m_pDMDServerConnector)
190213
{
191214
Log(DMDUtil_LogLevel_INFO, "DMDServer connection to %s:%d failed!", pConfig->GetDMDServerAddr(),
@@ -353,13 +376,13 @@ void DMD::QueueUpdate(const std::shared_ptr<Update> dmdUpdate, bool buffered)
353376
StreamHeader streamHeader;
354377
streamHeader.buffered = (uint8_t)buffered;
355378
streamHeader.disconnectOthers = (uint8_t)m_dmdServerDisconnectOthers;
356-
m_pDMDServerConnector->write_n(&streamHeader, sizeof(StreamHeader));
379+
m_pDMDServerConnector->Write(&streamHeader, sizeof(StreamHeader));
357380
PathsHeader pathsHeader;
358381
strcpy(pathsHeader.name, m_romName);
359382
strcpy(pathsHeader.altColorPath, m_altColorPath);
360383
strcpy(pathsHeader.pupVideosPath, m_pupVideosPath);
361-
m_pDMDServerConnector->write_n(&pathsHeader, sizeof(PathsHeader));
362-
m_pDMDServerConnector->write_n(dmdUpdate.get(), sizeof(Update));
384+
m_pDMDServerConnector->Write(&pathsHeader, sizeof(PathsHeader));
385+
m_pDMDServerConnector->Write(dmdUpdate.get(), sizeof(Update));
363386

364387
if (streamHeader.disconnectOthers != 0) m_dmdServerDisconnectOthers = false;
365388
}

0 commit comments

Comments
 (0)