Mega change to the LCDd's header files:

1. Use <stdbool.h> if it is available but keep a compatibility shim in
   shared/defines.h in case it is not.
2. Unbreak the circular header dependencies (mostly):
   2a. client.c and client.h may NOT depend on 'struct Menu'. Use a void pointer
       and casts instead.
   2b. Separate the data type definitions in client.h and screen.h from
       function prototypes which may require other data structures. This makes
       header dependencies much more easy to maintain. Usually the data types
       should have been moved to their own files but I (mmdolze) chose to
       separate them using different header guards.
   2c. Remove many now unused header includes.
Apply (old BSD-) style on menuscreens.c.
This commit is contained in:
mmdolze
2012-02-22 22:25:32 +00:00
parent 5e1edf5b60
commit a151ee0fc4
33 changed files with 321 additions and 247 deletions
+21 -9
View File
@@ -1,5 +1,15 @@
/** \file server/client.h
* Defines all the client data and actions.
*
* \note If you only need 'struct Client' to work with you should use the
* following code (which does not create an indirect dependency on
* 'struct Screen'):
*
* \code
* #define INC_TYPES_ONLY 1
* #include "client.h"
* #undef INC_TYPES_ONLY
* \endcode
*/
/* This file is part of LCDd, the lcdproc server.
@@ -11,15 +21,10 @@
* 2002, Joris Robijn
*/
#include "menu.h"
#include "menuitem.h"
/* These headers are placed here on purpose ! (circular references) */
#ifndef CLIENT_H
#define CLIENT_H
#ifndef CLIENT_H_TYPES
#define CLIENT_H_TYPES
#include "shared/LL.h"
#include <stdio.h>
#define CLIENT_NAME_SIZE 256
@@ -42,11 +47,18 @@ typedef struct Client {
LinkedList *messages; /**< Messages that the client sent. */
LinkedList *screenlist; /**< List of client's screens. */
Menu *menu; /**< Menu hierarchy, if any */
void* menu; /**< Menu hierarchy, if any */
} Client;
#endif
#ifndef INC_TYPES_ONLY
#ifndef CLIENT_H_FNCS
#define CLIENT_H_FNCS
#define INC_TYPES_ONLY 1
#include "screen.h"
#undef INC_TYPES_ONLY
/* When a new client connects, set up a new client data struct */
Client *client_create(int sock);
@@ -73,4 +85,4 @@ int client_remove_screen(Client *c, Screen *s);
int client_screen_count(Client *c);
#endif
#endif