xbmc
IRServerSuite.h
1 /*
2  * Copyright (C) 2005-2018 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "IrssMessage.h"
12 #include "input/IRTranslator.h"
13 #include "threads/Event.h"
14 #include "threads/Thread.h"
15 
16 #include <string>
17 
18 #include <winsock2.h>
19 
20 class CIRServerSuite : public CThread
21 {
22 public:
24  virtual ~CIRServerSuite();
25  void Initialize();
26 
27 protected:
28  virtual void Process();
29  bool ReadNext();
30 
31 private:
32  bool SendPacket(CIrssMessage& message);
33  int ReadPacket(CIrssMessage& message);
34  int ReadN(char *buffer, int n);
35  bool WriteN(const char *buffer, int n);
36  bool Connect(bool logMessages);
37  void Close();
38  bool HandleRemoteEvent(CIrssMessage& message);
39 
40  bool m_bInitialized;
41  bool m_isConnecting;
42  int m_profileId;
43  SOCKET m_socket;
44  CEvent m_event;
45  CCriticalSection m_critSection;
46  CIRTranslator m_irTranslator;
47 };
This is an Event class built from a ConditionVariable.
Definition: Event.h:35
Definition: Thread.h:44
Definition: IRTranslator.h:20
Definition: IRServerSuite.h:20
Definition: IrssMessage.h:169