00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00023 #include <gtk/gtk.h>
00024 #include <stdlib.h>
00025 #include <liberipc/eripc.h>
00026 #include <liberipc/eripcpagebar.h>
00027 #include <liberipc/eripcviewer.h>
00028
00029 erClientChannel_t channel;
00030
00031 #define UAID ER_APABI_VIEWER_CHANNEL
00032
00033 void serviceCallback(gpointer data, gint source_fd, GdkInputCondition condition)
00034 {
00035 char szBuffer[1024];
00036 int nBuf = 1024;
00037 erIpcCmd_t command;
00038
00039 erIpcGetMessage((erServerChannel_t) data, szBuffer, &nBuf);
00040 printf("Received %s\n", szBuffer);
00041 if (vwrParseCommand(szBuffer, &command) >= 0) {
00042 switch (command.cc) {
00043 case ccVwrJumpToPage:
00044 printf("PAGE CHANGE TO PAGE %d\n", atoi(command.arg[1]));
00045 break;
00046 default:
00047 break;
00048 }
00049 }
00050 }
00051
00052 void installIpcServer()
00053 {
00054 int nRet = 0;
00055 int fd = -1;
00056 erServerChannel_t channel;
00057
00058 nRet = erIpcOpenServerChannel(ER_APABI_VIEWER_CHANNEL, &channel);
00059 fd = erIpcGetServerFd(channel);
00060
00061 gdk_input_add(fd, GDK_INPUT_READ, serviceCallback, (gpointer) channel);
00062 }
00063
00064 int main(int argc, char* argv[]) {
00065
00066 g_thread_init(NULL);
00067 gdk_threads_init();
00068
00069 erIpcStartClient(ER_PAGEBAR_CHANNEL, &channel);
00070 installIpcServer();
00071
00072 pbReset(channel, UAID);
00073 pbSetPageCount(channel, UAID, 50);
00074 pbSetCurrentPageOffset(channel, UAID, 60);
00075 pbSetDrawAreaVOrigin(channel, UAID, 1020);
00076 pbRedraw(channel, UAID);
00077
00078
00079 gdk_threads_enter();
00080 gtk_main();
00081 gdk_threads_leave();
00082 return 0;
00083 }