Files
lcdproc/old/sockets.h
T
1999-12-09 23:15:14 +00:00

100 lines
3.2 KiB
C

#define LCDPORT 13666
/**********************************************************************
LCDproc socket interface grammar:
RawText Print whatever you send, at whatever the current position is.
or...
0xFE Command prefix, followed by...
0x00 EOT. End of transmission, where applicicable.
0x01 Ping. Will respond with a "pong".
'k',x Send "keypad" input, character x (A-Z)
?,x,...,EOT Send new mode sequence (x,...)...
?,x Switch to new mode x immediately
?,xxxx Pause in current mode for x frames/seconds (0=infinite)
? Play -- continue mode cycle.
?,x,y,...,EOT
Send raw text to be displayed. x is style (raw, wrapped),
and y is num frames between lines displayed.
?,... Send MtxOrb-like control commands (bargraphs, etc)
... more to come later ...
**********************************************************************/
/*****************************************************************
LCDproc command line interface: (while running)
-command
Tells LCDproc to interpret stdin as raw commands to send through
the socket. Input must be formatted as above, in socket interface.
-function f
Runs LCDproc external function f, where f is one of the predefined
functions which can be assigned to keypad keys. (like NEXTMODE, etc)
-key x
Simulates keypad press of key 'x', where 'x' is (A-Z).
-print [time]
Prints stdin on LCD one line at a time, with no line-wrapping (raw),
with [time] frames between updates (lines).
-wrap [time]
Prints stdin as with "-print", but with line wrapping when possible.
-contrast xxx
Sets contrast to xxx (decimal)
-backlight [on/off]
Turns backlight [on/off/auto], or toggles it.
If [off], stays off.
If [on], stays on.
If [auto], LCDproc controls backlight based on load, etc...
-exit
-quit
Duh... :)
******************************************************************/
/*****************************************************************
LCDproc stuff supported in config file (loose approximation):
Grammar is tcl-style. I.e., "command arg1 arg2 ...".
Spaces are used as argument separators, *until* it thinks it has the final
argument. So, "function thing shell myprogram arg1 arg2 arg3" would be
split into "function", "thing", "shell", and "myprogram arg1 arg2 arg3".
User-definable functions (use built-in's to create new ones?):
Function mp3NextSong Shell /usr/local/bin/mp3player -next
Function MySequence Sequence cpu mem xload
Function OtherSequence Sequence time cd xload
Keypad keys can be bound to any _function_:
Key A mp3NextSong
Key B HaltSystem
Key C Menu
Key D Next/+
Key E OtherSequence
******************************************************************/
typedef struct sockaddr_in sockaddr_in;
int init_sockaddr (sockaddr_in *name,
const char *hostname,
unsigned short int port);
// Creates a socket in internet space
int CreateInetSocket(unsigned short int port);
// Checks the LCDproc port for a response...
int PingLCDport();
int StartSocketServer();
int PollSockets();
int read_from_client (int filedes);
int CloseAllConnections();