plugins/crazychat/util.h

Thu, 16 Feb 2006 23:02:56 +0000

author
Sean Egan <seanegan@pidgin.im>
date
Thu, 16 Feb 2006 23:02:56 +0000
changeset 13304
4ad9297570d2
parent 11232
27bb80119f01
permissions
-rw-r--r--

[gaim-migrate @ 15669]
There was an attempt to make each Jabber resource have its own conversation
window, which wasn't working, and instead sending outgoing messages to the
wrong resource. Different conversations with each resource breaks the whole
"Send to" one-window-per-person metaphor, so I just changed the behavior to
send messages to whichever resources last messaged you. Perhaps later, when
we're not in a freeze, we can consider an API that allows prpls to populate
the Send To menu themselves, letting you easily switch what resource you're
chatting with in the same window

11232
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
1 #ifndef __UTIL_H__
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
2 #define __UTIL_H__
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
3
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
4 #include <debug.h>
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
5
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
6 #define SET_TIME(x) \
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
7 do { \
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
8 assert(!gettimeofday((x), NULL)); \
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
9 } while(0)
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
10
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
11 #define SET_TIMEOUT(timespec, given_timeout) /* timeout is in ms */ \
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
12 do { \
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
13 struct timeval* curr = (struct timeval*)(timespec); \
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
14 unsigned int tout; \
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
15 if (given_timeout > 100) { \
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
16 tout = given_timeout; \
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
17 } else { \
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
18 tout = 100; \
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
19 } \
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
20 SET_TIME(curr); \
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
21 curr->tv_sec += (tout / 1000); \
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
22 curr->tv_usec /= 1000; /* set to ms */ \
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
23 curr->tv_usec += (tout % 1000); \
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
24 curr->tv_sec += (curr->tv_usec / 1000); \
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
25 curr->tv_usec = (curr->tv_usec % 1000); \
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
26 curr->tv_usec *= 1000000; \
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
27 } while (0)
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
28
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
29 #endif
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
30
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
31 /* -- gcc specific vararg macro support ... but its so nice! -- */
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
32 #ifdef _DEBUG_
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
33 #define Debug(x, args...) \
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
34 do { \
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
35 printf(x, ## args); \
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
36 gaim_debug(GAIM_DEBUG_INFO, "crazychat", x, ## args); \
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
37 } while (0)
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
38 #else
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
39 #define Debug(x, args...) do{}while(0)
27bb80119f01 [gaim-migrate @ 13372]
Charlie Stockman <chuckleberry@users.sourceforge.net>
parents:
diff changeset
40 #endif

mercurial