r561 - in trunk/src/target/OM-2007/panel-plugins/openmoko-panel-gsm: . src

tongsong_li at sita.openmoko.org tongsong_li at sita.openmoko.org
Tue Jan 16 08:48:23 CET 2007


Author: tongsong_li
Date: 2007-01-16 08:47:58 +0100 (Tue, 16 Jan 2007)
New Revision: 561

Added:
   trunk/src/target/OM-2007/panel-plugins/openmoko-panel-gsm/src/moko-gsm-conn.c
   trunk/src/target/OM-2007/panel-plugins/openmoko-panel-gsm/src/moko-gsm-conn.h
Removed:
   trunk/src/target/OM-2007/panel-plugins/openmoko-panel-gsm/src/event.c
   trunk/src/target/OM-2007/panel-plugins/openmoko-panel-gsm/src/event.h
Modified:
   trunk/src/target/OM-2007/panel-plugins/openmoko-panel-gsm/configure.ac
   trunk/src/target/OM-2007/panel-plugins/openmoko-panel-gsm/src/Makefile.am
   trunk/src/target/OM-2007/panel-plugins/openmoko-panel-gsm/src/openmoko-panel-gsm.c
Log:
moko-gsm-conn.c

Modified: trunk/src/target/OM-2007/panel-plugins/openmoko-panel-gsm/configure.ac
===================================================================
--- trunk/src/target/OM-2007/panel-plugins/openmoko-panel-gsm/configure.ac	2007-01-16 05:42:28 UTC (rev 560)
+++ trunk/src/target/OM-2007/panel-plugins/openmoko-panel-gsm/configure.ac	2007-01-16 07:47:58 UTC (rev 561)
@@ -17,9 +17,12 @@
 PKG_CHECK_MODULES(LIBMB, libmb,,
                  exit)
 
-LIBS="$LIBS $GTK_LIBS $LIBMB"
-CFLAGS="$CFLAGS $OPENMOKO_CFLAGS $LIBMB" 
+PKG_CHECK_MODULES(LIBGSMD, libgsmd,,
+		exit)
 
+LIBS="$LIBS $GTK_LIBS $LIBMB_LIBS $LIBGSMD_LIBS"
+CFLAGS="$CFLAGS $OPENMOKO_CFLAGS $LIBMB_CFALGS $LIBGSMD_CFLAGS" 
+
 # output stuff
 AC_OUTPUT([
 Makefile

Modified: trunk/src/target/OM-2007/panel-plugins/openmoko-panel-gsm/src/Makefile.am
===================================================================
--- trunk/src/target/OM-2007/panel-plugins/openmoko-panel-gsm/src/Makefile.am	2007-01-16 05:42:28 UTC (rev 560)
+++ trunk/src/target/OM-2007/panel-plugins/openmoko-panel-gsm/src/Makefile.am	2007-01-16 07:47:58 UTC (rev 561)
@@ -3,9 +3,8 @@
 bin_PROGRAMS = openmoko-panel-gsm
 
 openmoko_panel_gsm_SOURCES = openmoko-panel-gsm.c\
-event.c
+			     moko-gsm-conn.c
 
 
-
 openmoko_panel_gsm_LDADD = @OPENMOKO_LIBS@
 

Deleted: trunk/src/target/OM-2007/panel-plugins/openmoko-panel-gsm/src/event.c
===================================================================
--- trunk/src/target/OM-2007/panel-plugins/openmoko-panel-gsm/src/event.c	2007-01-16 05:42:28 UTC (rev 560)
+++ trunk/src/target/OM-2007/panel-plugins/openmoko-panel-gsm/src/event.c	2007-01-16 07:47:58 UTC (rev 561)
@@ -1,99 +0,0 @@
-/* libgsmd tool
- *
- * (C) 2006-2007 by OpenMoko, Inc.
- * Written by Harald Welte <laforge at openmoko.org>
- * All Rights Reserved
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- */ 
-
-#include <stdio.h>
-#include <string.h>
-
-#include <common/linux_list.h>
-#include <libgsmd/libgsmd.h>
-#include <libgsmd/event.h>
-static int incall_handler(struct lgsm_handle *lh, int evt, struct gsmd_evt_auxdata *aux)
-{
-	printf("EVENT: Incoming call type = %u\n", aux->u.call.type);
-
-	return 0;
-}
-
-static int clip_handler(struct lgsm_handle *lh, int evt, struct gsmd_evt_auxdata *aux)
-{
-	printf("EVENT: Incoming call clip = %s\n", aux->u.clip.addr.number);
-
-	return 0;
-}
-
-static int colp_handler(struct lgsm_handle *lh, int evt, struct gsmd_evt_auxdata *aux)
-{
-	printf("EVENT: Outgoing call colp = %s\n", aux->u.colp.addr.number);
-
-	return 0;
-}
-
-static int netreg_handler(struct lgsm_handle *lh, int evt, struct gsmd_evt_auxdata *aux)
-{
-	printf("EVENT: Netreg ");
-
-	switch (aux->u.netreg.state) {
-	case 0:
-		printf("not searching for network ");
-		break;
-	case 1:
-		printf("registered (home network) ");
-		break;
-	case 2:
-		printf("searching for network ");
-		break;
-	case 3:
-		printf("registration denied ");
-		break;
-	case 5:
-		printf("registered (roaming) ");
-		break;
-	}
-
-	if (aux->u.netreg.lac)
-		printf("LocationAreaCode = 0x%04X ", aux->u.netreg.lac);
-	if (aux->u.netreg.ci)
-		printf("CellID = 0x%04X ", aux->u.netreg.ci);
-	
-	printf("\n");
-
-	return 0;
-}
-
-
-static int sigq_handler(struct lgsm_handle *lh, int evt, struct gsmd_evt_auxdata *aux)
-{
-	printf("EVENT: Signal Quality: %u\n", aux->u.signal.sigq.rssi);
-	return 0;
-}
-
-int event_init(struct lgsm_handle *lh)
-{
-	int rc;
-
-	rc  = lgsm_evt_handler_register(lh, GSMD_EVT_IN_CALL, &incall_handler);
-	rc |= lgsm_evt_handler_register(lh, GSMD_EVT_NETREG, &netreg_handler);
-	rc |= lgsm_evt_handler_register(lh, GSMD_EVT_SIGNAL, &sigq_handler);
-
-	return rc;
-}
-

Deleted: trunk/src/target/OM-2007/panel-plugins/openmoko-panel-gsm/src/event.h
===================================================================
--- trunk/src/target/OM-2007/panel-plugins/openmoko-panel-gsm/src/event.h	2007-01-16 05:42:28 UTC (rev 560)
+++ trunk/src/target/OM-2007/panel-plugins/openmoko-panel-gsm/src/event.h	2007-01-16 07:47:58 UTC (rev 561)
@@ -1,2 +0,0 @@
-
-extern int event_init(struct lgsm_handle *lh);

Added: trunk/src/target/OM-2007/panel-plugins/openmoko-panel-gsm/src/moko-gsm-conn.c
===================================================================
--- trunk/src/target/OM-2007/panel-plugins/openmoko-panel-gsm/src/moko-gsm-conn.c	2007-01-16 05:42:28 UTC (rev 560)
+++ trunk/src/target/OM-2007/panel-plugins/openmoko-panel-gsm/src/moko-gsm-conn.c	2007-01-16 07:47:58 UTC (rev 561)
@@ -0,0 +1,158 @@
+#include <stdio.h>
+#include <string.h>
+#include <sys/time.h>
+
+#include <libgsmd/libgsmd.h>
+#include <libgsmd/event.h>
+
+#include "moko-gsm-conn.h"
+
+#undef FALSE
+#define FALSE 	0
+#undef TRUE
+#define TRUE 	1
+
+static struct lgsm_handle *lgsmh = NULL;
+static int signal_value = 0;
+static int updated = FALSE;
+static int gsm_conn_init = FALSE;
+
+static int 
+incall_handler(struct lgsm_handle *lh, int evt, struct gsmd_evt_auxdata *aux)
+{
+	printf("EVENT: Incoming call type = %u\n", aux->u.call.type);
+	return 0;
+}
+
+static int 
+sigq_handler(struct lgsm_handle *lh, int evt, struct gsmd_evt_auxdata *aux)
+{
+	printf("EVENT: Signal Quality: %u\n", aux->u.signal.sigq.rssi);
+	//signal_value = aux->u.signal.sigq.rssi;
+	return 0;
+}
+
+static int 
+netreg_handler(struct lgsm_handle *lh, int evt, struct gsmd_evt_auxdata *aux)
+{
+	printf("EVENT: Netreg ");
+
+	switch (aux->u.netreg.state)
+	{
+	case 0:
+		printf("not searching for network ");
+		break;
+	case 1:
+		printf("registered (home network) ");
+		break;
+	case 2:
+		printf("searching for network ");
+		break;
+	case 3:
+		printf("registration denied ");
+		break;
+	case 5:
+		printf("registered (roaming) ");
+		break;
+	}
+
+	if (aux->u.netreg.lac)
+		printf("LocationAreaCode = 0x%04X ", aux->u.netreg.lac);
+	if (aux->u.netreg.ci)
+		printf("CellID = 0x%04X ", aux->u.netreg.ci);
+	
+	printf("\n");
+
+	return 0;
+}
+
+static int 
+event_init(struct lgsm_handle *lh)
+{
+	int rc;
+
+	rc  = lgsm_evt_handler_register(lh, GSMD_EVT_IN_CALL, &incall_handler);
+	rc |= lgsm_evt_handler_register(lh, GSMD_EVT_NETREG, &netreg_handler);
+	rc |= lgsm_evt_handler_register(lh, GSMD_EVT_SIGNAL, &sigq_handler);
+
+	return rc;
+}
+
+static void
+gsm_connect_init()
+{
+    lgsmh = lgsm_init(LGSMD_DEVICE_GSMD);	
+    
+    if (!lgsmh) 
+    { 
+       gsm_conn_init = FALSE;
+	//fprintf(stderr, "openmoko-panel-gsm:Can't connect to gsmd\n");
+	printf("Can't connect to gsmd\n");
+	return FALSE;
+    }
+    else 
+    {
+	event_init(lgsmh);
+	return TRUE;
+    }
+}
+
+int
+update_gsm_signal_qualite()
+{
+    printf("update_gsm_signal_qualite\n");
+    fd_set readset;
+    int rc;
+    char buf[STDIN_BUF_SIZE+1];
+    struct timeval t;
+    t.tv_sec=0;
+    t.tv_usec=0;
+
+    if (!gsm_conn_init)
+    	gsm_connect_init();
+    
+    if (!lgsmh){
+    	gsm_conn_init = FALSE;
+    	return FALSE;
+    	}
+    
+    int gsm_fd = lgsm_fd (lgsmh);
+
+    FD_SET(gsm_fd, &readset);
+    printf("select>\n");
+    rc = select(gsm_fd+1, &readset, NULL, NULL, &t);
+    printf("select<\n");
+    
+    if (FD_ISSET(gsm_fd, &readset)) 
+    {
+	printf("read>\n");
+	rc = read(gsm_fd, buf, sizeof(buf));
+	printf("read<\n");
+	if (rc <= 0) 
+	{
+	    printf("ERROR reding from gsm_fd\n");
+	    return FALSE;
+	}
+	else
+	{
+	    printf("data from gsm_fd\n");
+	    rc = lgsm_handle_packet (lgsmh, buf, rc);
+	    updated = TRUE;
+	    return TRUE;
+	}
+    }
+}
+
+int
+moko_panel_gsm_quality(int *quality)
+{
+    update_gsm_signal_qualite();
+    
+    if (updated){
+    	*quality = signal_value;
+    	 updated = FALSE;
+    	return TRUE;
+    	}
+    else
+    	return FALSE;
+}

Added: trunk/src/target/OM-2007/panel-plugins/openmoko-panel-gsm/src/moko-gsm-conn.h
===================================================================
--- trunk/src/target/OM-2007/panel-plugins/openmoko-panel-gsm/src/moko-gsm-conn.h	2007-01-16 05:42:28 UTC (rev 560)
+++ trunk/src/target/OM-2007/panel-plugins/openmoko-panel-gsm/src/moko-gsm-conn.h	2007-01-16 07:47:58 UTC (rev 561)
@@ -0,0 +1,9 @@
+#ifndef _MOKO_PANEL_GSM_CONN_
+#define _MOKO_PANEL_GSM_CONN_
+
+#define STDIN_BUF_SIZE	1024
+
+int
+moko_panel_gsm_quality(int *quality);
+
+#endif /*_MOKO_PANEL_GSM_CONN_*/

Modified: trunk/src/target/OM-2007/panel-plugins/openmoko-panel-gsm/src/openmoko-panel-gsm.c
===================================================================
--- trunk/src/target/OM-2007/panel-plugins/openmoko-panel-gsm/src/openmoko-panel-gsm.c	2007-01-16 05:42:28 UTC (rev 560)
+++ trunk/src/target/OM-2007/panel-plugins/openmoko-panel-gsm/src/openmoko-panel-gsm.c	2007-01-16 07:47:58 UTC (rev 561)
@@ -4,11 +4,8 @@
 #include <sys/types.h>
 #include <sys/time.h>
 #include <unistd.h>
-#include <libgsmd/libgsmd.h>
 
-#include <libgsmd/misc.h>
-#include <libgsmd/libgsmd.h>
-#include "dialergsm.h"
+#include "moko-gsm-conn.h"
 
 #define DIR_LONG	256
 #define FONT_POPUP_DESC       "Sans bold 28px"
@@ -25,60 +22,17 @@
 };
 
 static MBPixbuf *pb;
-static MBPixbufImage *Img_icon[MAX_ID]; 
-static MBPixbufImage *Img_Scaled[MAX_ID];
-static int CurImg = 0;
-static int LastImg = -1;
+static MBPixbufImage *img_icon[MAX_ID]; 
+static MBPixbufImage *img_scaled[MAX_ID];
+static int cur_img = 0;
+static int last_img = -1;
 MBMenu* popupmenu;
 static Display *dpy;
 static int screen;
 static int times = 0;
+static int gsm_quality = 0;
 
-
-	static struct lgsm_handle *lgsmh=0;
-Bool
-gsm_connect_init()
-{
-
-	lgsmh = lgsm_init(LGSMD_DEVICE_GSMD);
-	
-	if (!lgsmh) 
-	{
-		fprintf(stderr, "Can't connect to gsmd\n");
-		return False;
-	}
-	else 
-	{
-	event_init(lgsmh);
-	return True;
-	}
-	
-}
-
-/*
-*
-*/
-int 
-signal_update(void)
-{
-   int sig_quality = 0;
-   int result = 0;
-   //result = lgsm_get_signal_quality (lgsmh, &sig_quality);
-
-    if (CurImg<MAX_ID-1) 
-    	CurImg++;
-    else
-    	CurImg=0;
-
-    return CurImg;
-}
-
-/**
-*@brief execute an application
-*@param cmd 	command string
-*@return none
-*/
-void 
+static void 
 fork_exec(char *cmd)
 {
   switch (fork())
@@ -100,31 +54,18 @@
       fprintf(stdout, "open connect status dialog");
 }
 
-void
+static void
 om_gsm_disconnect_dialog_cb(MBMenuItem *item)
 {
       fprintf(stdout, "open disconnect status dialog");
 }
 
-/**
-*@brief Xevent callback function, let the popupmenu handle Xevent.
-*@param app		MBTrayApp reference
-*@param e		XEvent
-*@return none
-*/
-void
+static void
 xevent_callback (MBTrayApp *app, XEvent *e)
 {
   	mb_menu_handle_xevent (popupmenu, e);
 }
 
-/**
- * @brief get the popupmenu position
- * @param app	MBTrayApp reference
- * @param x 		X co-ord
- * @param y		Y co-ord
- * @return none
- */
 static void
 menu_get_popup_pos (MBTrayApp *app, int *x, int *y)
 {
@@ -154,8 +95,7 @@
     }
 }
 
-
-void
+static void
 menu_init(MBTrayApp* app)
 {
  char* icon_path_ucon;
@@ -195,40 +135,40 @@
   if (mb_theme) free (mb_theme);
 }
 
-void
+static void
 paint_callback (MBTrayApp *app, Drawable drw )
 {
   MBPixbufImage *img_backing = NULL;
 
-  CurImg = signal_update();
+  cur_img = gsm_quality;
 
-  if (LastImg == CurImg) 
+  if (last_img == cur_img) 
   	return;
   
   img_backing = mb_tray_app_get_background (app, pb);
 
   mb_pixbuf_img_copy_composite(pb, img_backing, 
-			       Img_Scaled[CurImg], 0, 0,
-			       mb_pixbuf_img_get_width(Img_Scaled[0]),
-			       mb_pixbuf_img_get_height(Img_Scaled[0]),
+			       img_scaled[cur_img], 0, 0,
+			       mb_pixbuf_img_get_width(img_scaled[0]),
+			       mb_pixbuf_img_get_height(img_scaled[0]),
 			       mb_tray_app_tray_is_vertical(app) ? 
-			       (mb_pixbuf_img_get_width(img_backing)-mb_pixbuf_img_get_width(Img_Scaled[0]))/2 : 0,
+			       (mb_pixbuf_img_get_width(img_backing)-mb_pixbuf_img_get_width(img_scaled[0]))/2 : 0,
 			       mb_tray_app_tray_is_vertical(app) ? 0 : 
-			       (mb_pixbuf_img_get_height(img_backing)-mb_pixbuf_img_get_height(Img_Scaled[0]))/2 );
+			       (mb_pixbuf_img_get_height(img_backing)-mb_pixbuf_img_get_height(img_scaled[0]))/2 );
 
   mb_pixbuf_img_render_to_drawable(pb, img_backing, drw, 0, 0);
 
   mb_pixbuf_img_free( pb, img_backing );
 
-  LastImg = CurImg;
+  last_img = cur_img;
 }
 
-void
+static void
 resize_callback (MBTrayApp *app, int w, int h )
 {
   int  i;
-  int  base_width  = mb_pixbuf_img_get_width(Img_icon[0]);
-  int  base_height = mb_pixbuf_img_get_height(Img_icon[0]);
+  int  base_width  = mb_pixbuf_img_get_width(img_icon[0]);
+  int  base_height = mb_pixbuf_img_get_height(img_icon[0]);
   int  scale_width = base_width, scale_height = base_height;
   Bool want_resize = True;
 
@@ -258,17 +198,17 @@
 
   if (want_resize)  /* we only request a resize is absolutely needed */
     {
-      LastImg = -1;
+      last_img = -1;
       mb_tray_app_request_size (app, scale_width, scale_height);
     }
 
   for (i=0; i<MAX_ID; i++)
     {
-      if (Img_Scaled[i] != NULL) 
-	mb_pixbuf_img_free(pb, Img_Scaled[i]);
+      if (img_scaled[i] != NULL) 
+	mb_pixbuf_img_free(pb, img_scaled[i]);
 
-      Img_Scaled[i] = mb_pixbuf_img_scale(pb, 
-					  Img_icon[i], 
+      img_scaled[i] = mb_pixbuf_img_scale(pb, 
+					  img_icon[i], 
 					  scale_width, 
 					  scale_height);
     }
@@ -277,7 +217,7 @@
 /**
 *@brief button callback function.
 */
-void
+static void
 button_callback (MBTrayApp *app, int x, int y, Bool is_released )
 {
    XEvent ev;
@@ -328,40 +268,20 @@
     }
 }
 
-#define STDIN_BUF_SIZE	1024
-void
+static void
 timeout_callback ( MBTrayApp *app )
 {
-	printf("timeout_callback\n");
-		fd_set readset;
-		int rc;
-		char buf[STDIN_BUF_SIZE+1];
-		struct timeval t;
-		t.tv_sec=0;
-		t.tv_usec=0;
-		int gsm_fd = lgsm_fd(lgsmh);
-		//FD_SET(0, &readset);
-		FD_SET(gsm_fd, &readset);
-		printf("select>\n");
-		rc = select(gsm_fd+1, &readset, NULL, NULL, &t);
-		printf("select<\n");
-		if (FD_ISSET(gsm_fd, &readset)) 
-		{
-			printf("read>\n");
-			rc = read(gsm_fd, buf, sizeof(buf));
-			printf("read<\n");
-			if (rc <= 0) {
-				printf("ERROR reding from gsm_fd\n");
-				return;
-			}
-			else
-			{
-				printf("data from gsm_fd\n");
-				rc = lgsm_handle_packet(lgsmh, buf, rc);
-			}
-		
-		}
-  mb_tray_app_repaint (app);
+    if (moko_panel_gsm_quality(&gsm_quality))
+    	{
+    	printf ("quality = %d\n", gsm_quality);
+       mb_tray_app_repaint (app);
+       return;
+    	}
+    else
+    	{
+    	printf ("signal quality have not changed \n");
+    	return;
+       }
 }
 
 
@@ -385,16 +305,17 @@
 		      mb_tray_app_xscreen(app));
   
    memset (&tv,0,sizeof(struct timeval));
-   tv.tv_sec = 2;
+   tv.tv_sec = 5;
+   tv.tv_usec = 0;
 
     menu_init (app);
 
-  Img_icon[conn_err]= mb_pixbuf_img_new_from_file(pb, PKGDATADIR"/SignalStrength25g_00.png");
-  Img_icon[level_1]= mb_pixbuf_img_new_from_file(pb, PKGDATADIR"/SignalStrength25g_01.png");
-  Img_icon[level_2]= mb_pixbuf_img_new_from_file(pb, PKGDATADIR"/SignalStrength25g_02.png");
-  Img_icon[level_3]= mb_pixbuf_img_new_from_file(pb, PKGDATADIR"/SignalStrength25g_03.png");
-  Img_icon[level_4]= mb_pixbuf_img_new_from_file(pb, PKGDATADIR"/SignalStrength25g_04.png");
-  Img_icon[level_5]= mb_pixbuf_img_new_from_file(pb, PKGDATADIR"/SignalStrength25g_05.png");
+  img_icon[conn_err]= mb_pixbuf_img_new_from_file(pb, PKGDATADIR"/SignalStrength25g_00.png");
+  img_icon[level_1]= mb_pixbuf_img_new_from_file(pb, PKGDATADIR"/SignalStrength25g_01.png");
+  img_icon[level_2]= mb_pixbuf_img_new_from_file(pb, PKGDATADIR"/SignalStrength25g_02.png");
+  img_icon[level_3]= mb_pixbuf_img_new_from_file(pb, PKGDATADIR"/SignalStrength25g_03.png");
+  img_icon[level_4]= mb_pixbuf_img_new_from_file(pb, PKGDATADIR"/SignalStrength25g_04.png");
+  img_icon[level_5]= mb_pixbuf_img_new_from_file(pb, PKGDATADIR"/SignalStrength25g_05.png");
   
    mb_tray_app_set_timeout_callback (app, timeout_callback, &tv); 
    
@@ -402,14 +323,10 @@
 
    mb_tray_app_set_xevent_callback(app, xevent_callback);
    
-   mb_tray_app_set_icon(app, pb, Img_icon[level_3]);
+   mb_tray_app_set_icon(app, pb, img_icon[level_3]);
 
    mb_tray_app_request_offset (app, 1);
 
-   gsm_connect_init();
-   
-   //gsm_lgsm_start(0);
-
    mb_tray_app_main (app);
    
    XCloseDisplay(dpy);


Property changes on: trunk/src/target/OM-2007/panel-plugins/openmoko-panel-gsm/src/openmoko-panel-gsm.c
___________________________________________________________________
Name: svn:executable
   - *





More information about the commitlog mailing list