1 //
2 // anyRemote
3 // a wi-fi or bluetooth remote for your PC.
4 //
5 // Copyright (C) 2006-2016 Mikhail Fedotov <anyremote@mail.ru>
6 //
7 // This program is free software; you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by
9 // the Free Software Foundation; either version 3 of the License, or
10 // (at your option) any later version.
11 //
12 // This program is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 // GNU General Public License for more details.
16 //
17 // You should have received a copy of the GNU General Public License
18 // along with this program; if not, write to the Free Software
19 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
20 //
21 
22 #ifndef _DISPATCHER_H_
23 #define _DISPATCHER_H_
24 
25 #include "str.h"
26 
27 enum DispMsgType {
28     DM_SET = 0,
29     DM_GET,
30     DM_SETFILE,
31     DM_SENDB,
32     DM_SENDS,
33     DM_CKPD,
34     //DM_CMER,
35     DM_EVENT,
36     DM_FRONTEND,
37     DM_TYPE_MAX
38 };
39 
40 
41 typedef struct {
42     int   peer;
43     int   type;
44     int   subtype;
45     int   size;
46     void* value;
47     char* file;
48     char* scaled;  // scaled file name
49 } dMessage;
50 
51 pointer_t dispatcherRoutine (pointer_t thread);
52 void  	  sendToDispatcher  (dMessage *buf);
53 void  	  freeDMessage      (void* ptr);
54 dMessage* allocDMessage();
55 void      parseCommand      (int peerId, char* cmd);
56 void      closePort         (int final);
57 char*     readFromFile      (const char *cmdTag, const char* file, int* size);
58 dMessage* getDFinalizer     (void);
59 
60 #endif
61