gnokii-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gnokii/common/phones nk7110.c,1.156,1.157


From: BORBELY Zoltan <address@hidden>
Subject: gnokii/common/phones nk7110.c,1.156,1.157
Date: Tue, 02 Dec 2003 23:27:15 +0000

Update of /cvsroot/gnokii/gnokii/common/phones
In directory subversions:/tmp/cvs-serv7883/common/phones

Modified Files:
        nk7110.c 
Log Message:
experimental SetProfile implementation in nk7110


Index: nk7110.c
===================================================================
RCS file: /cvsroot/gnokii/gnokii/common/phones/nk7110.c,v
retrieving revision 1.156
retrieving revision 1.157
diff -C2 -d -r1.156 -r1.157
*** nk7110.c    12 Nov 2003 20:13:33 -0000      1.156
--- nk7110.c    2 Dec 2003 23:27:12 -0000       1.157
***************
*** 106,109 ****
--- 106,110 ----
  static gn_error NK7110_GetRingtoneList(gn_data *data, struct gn_statemachine 
*state);
  static gn_error NK7110_GetProfile(gn_data *data, struct gn_statemachine 
*state);
+ static gn_error NK7110_SetProfile(gn_data *data, struct gn_statemachine 
*state);
  
  static gn_error NK7110_DeleteWAPBookmark(gn_data *data, struct 
gn_statemachine *state);
***************
*** 299,302 ****
--- 300,305 ----
        case GN_OP_GetProfile:
                return NK7110_GetProfile(data, state);
+       case GN_OP_SetProfile:
+               return NK7110_SetProfile(data, state);
        default:
                return GN_ERR_NOTIMPLEMENTED;
***************
*** 2575,2578 ****
--- 2578,2651 ----
                if ((err = sm_block(NK7110_MSG_PROFILE, data, state)) != 
GN_ERR_NONE) return err;
        }
+ 
+       return GN_ERR_NONE;
+ }
+ 
+ static gn_error NK7110_SetProfileFeature(gn_data *data, struct 
gn_statemachine *state, int id, unsigned char value)
+ {
+       unsigned char req[] = {FBUS_FRAME_HEADER, 0x03, 0x01, 0x01, 0x03, 0x00, 
0x00, 0x01, 0x00};
+ 
+       if (!data->profile) return GN_ERR_INTERNALERROR;
+ 
+       req[7] = id;
+       req[8] = data->profile->number;
+       req[10] = value;
+ 
+       if (sm_message_send(11, NK7110_MSG_PROFILE, req, state)) return 
GN_ERR_NOTREADY;
+       return sm_block(NK7110_MSG_PROFILE, data, state);
+ }
+ 
+ static gn_error NK7110_SetProfile(gn_data *data, struct gn_statemachine 
*state)
+ {
+       gn_profile *p;
+       gn_error err;
+ 
+       if (!(p = data->profile)) return GN_ERR_INTERNALERROR;
+       dprintf("Setting profile %d (%s)\n", p->number, p->name);
+ 
+       if (p->default_name < 0 ) {
+               /* FIXME: set profile name */
+       }
+       if ((err = NK7110_SetProfileFeature(data, state, 0x00, p->keypad_tone + 
1)) != GN_ERR_NONE)
+               return err;
+ 
+       if ((err = NK7110_SetProfileFeature(data, state, 0x01, p->lights)) != 
GN_ERR_NONE)
+               return err;
+ 
+       switch (p->call_alert) {
+       case GN_PROFILE_CALLALERT_Ringing: err = NK7110_SetProfileFeature(data, 
state, 0x02, 0x00); break;
+       case GN_PROFILE_CALLALERT_Ascending: err = 
NK7110_SetProfileFeature(data, state, 0x02, 0x01); break;
+       case GN_PROFILE_CALLALERT_RingOnce: err = 
NK7110_SetProfileFeature(data, state, 0x02, 0x02); break;
+       case GN_PROFILE_CALLALERT_BeepOnce: err = 
NK7110_SetProfileFeature(data, state, 0x02, 0x03); break;
+       case GN_PROFILE_CALLALERT_CallerGroups: err = 
NK7110_SetProfileFeature(data, state, 0x02, 0x04); break;
+       case GN_PROFILE_CALLALERT_Off: err = NK7110_SetProfileFeature(data, 
state, 0x02, 0x05); break;
+       default: return GN_ERR_UNKNOWN;
+       }
+       if (err != GN_ERR_NONE) return err;
+ 
+       if ((err = NK7110_SetProfileFeature(data, state, 0x03, p->ringtone)) != 
GN_ERR_NONE)
+               return err;
+ 
+       if ((err = NK7110_SetProfileFeature(data, state, 0x04, p->volume - 6)) 
!= GN_ERR_NONE)
+               return err;
+ 
+       if ((err = NK7110_SetProfileFeature(data, state, 0x05, 
p->message_tone)) != GN_ERR_NONE)
+               return err;
+ 
+       if ((err = NK7110_SetProfileFeature(data, state, 0x06, p->vibration)) 
!= GN_ERR_NONE)
+               return err;
+ 
+       switch (p->warning_tone) {
+       case GN_PROFILE_WARNING_Off: err = NK7110_SetProfileFeature(data, 
state, 0x07, 0x00); break;
+       case GN_PROFILE_WARNING_On: err = NK7110_SetProfileFeature(data, state, 
0x07, 0x01); break;
+       default: return GN_ERR_UNKNOWN;
+       }
+       if (err != GN_ERR_NONE) return err;
+ 
+       if ((err = NK7110_SetProfileFeature(data, state, 0x08, 
p->caller_groups)) != GN_ERR_NONE)
+               return err;
+ 
+       if ((err = NK7110_SetProfileFeature(data, state, 0x09, 
p->automatic_answer)) != GN_ERR_NONE)
+               return err;
  
        return GN_ERR_NONE;





reply via email to

[Prev in Thread] Current Thread [Next in Thread]