gnokii-commit
[Top][All Lists]
Advanced

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

gnokii/common/phones nk6100.c,1.150,1.151 nk6510.c,1.122,1.123


From: BORBELY Zoltan <address@hidden>
Subject: gnokii/common/phones nk6100.c,1.150,1.151 nk6510.c,1.122,1.123
Date: Sun, 19 Oct 2003 21:17:56 +0000

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

Modified Files:
        nk6100.c nk6510.c 
Log Message:
GetRingtoneList added


Index: nk6100.c
===================================================================
RCS file: /cvsroot/gnokii/gnokii/common/phones/nk6100.c,v
retrieving revision 1.150
retrieving revision 1.151
diff -C2 -d -r1.150 -r1.151
*** nk6100.c    17 Oct 2003 00:50:32 -0000      1.150
--- nk6100.c    19 Oct 2003 21:17:53 -0000      1.151
***************
*** 124,127 ****
--- 124,128 ----
  static gn_error get_phone_info(gn_data *data, struct gn_statemachine *state);
  static gn_error get_hw(gn_data *data, struct gn_statemachine *state);
+ static gn_error get_ringtone_list(gn_data *data, struct gn_statemachine 
*state);
  
  #ifdef SECURITY
***************
*** 361,364 ****
--- 362,367 ----
        case GN_OP_CallDivert:
                return pnok_call_divert(data, state);
+       case GN_OP_GetRingtoneList:
+               return get_ringtone_list(data, state);
        default:
                dprintf("nk61xx unimplemented operation: %d\n", op);
***************
*** 3680,3682 ****
--- 3683,3765 ----
  
        return GN_ERR_UNHANDLEDFRAME;
+ }
+ 
+ 
+ static gn_error get_ringtone_list(gn_data *data, struct gn_statemachine 
*state)
+ {
+       gn_ringtone_list *rl;
+       gn_ringtone ringtone;
+       gn_data d;
+ 
+ #define ADDRINGTONE(id, str) \
+       rl->ringtone[rl->count].location = (id); \
+       strcpy(rl->ringtone[rl->count].name, (str)); \
+       rl->ringtone[rl->count].user_defined = 0; \
+       rl->ringtone[rl->count].readable = 0; \
+       rl->ringtone[rl->count].writable = 0; \
+       rl->count++;
+ 
+       if (!(rl = data->ringtone_list)) return GN_ERR_INTERNALERROR;
+       rl->count = 0;
+       rl->userdef_location = 0;
+       rl->userdef_count = 0;
+ 
+       if (!memcmp(state->config.model, "61", 2)) {
+               rl->userdef_location = 0;
+               rl->userdef_count = 1;
+               ADDRINGTONE(18, "Ring ring");
+               ADDRINGTONE(19, "Low");
+               ADDRINGTONE(20, "Fly");
+               ADDRINGTONE(21, "Mosquito");
+               ADDRINGTONE(22, "Bee");
+               ADDRINGTONE(23, "Intro");
+               ADDRINGTONE(24, "Etude");
+               ADDRINGTONE(25, "Hunt");
+               ADDRINGTONE(26, "Going up");
+               ADDRINGTONE(27, "City Bird");
+               ADDRINGTONE(30, "Chase");
+               ADDRINGTONE(32, "Scifi");
+               ADDRINGTONE(34, "Kick");
+               ADDRINGTONE(35, "Do-mi-so");
+               ADDRINGTONE(36, "Robo N1X");
+               ADDRINGTONE(37, "Dizzy");
+               ADDRINGTONE(39, "Playground");
+               ADDRINGTONE(43, "That's it!");
+               ADDRINGTONE(47, "Grande valse");
+               ADDRINGTONE(48, "Helan");
+               ADDRINGTONE(49, "Fuga");
+               ADDRINGTONE(50, "Menuet");
+               ADDRINGTONE(51, "Ode to Joy");
+               ADDRINGTONE(52, "Elise");
+               ADDRINGTONE(53, "Mozart 40");
+               ADDRINGTONE(54, "Piano Concerto");
+               ADDRINGTONE(55, "William Tell");
+               ADDRINGTONE(56, "Badinerie");
+               ADDRINGTONE(57, "Polka");
+               ADDRINGTONE(58, "Attraction");
+               ADDRINGTONE(60, "Polite");
+               ADDRINGTONE(61, "Persuasion");
+               ADDRINGTONE(67, "Tick tick");
+               ADDRINGTONE(68, "Samba");
+               ADDRINGTONE(70, "Orient");
+               ADDRINGTONE(71, "Charleston");
+               ADDRINGTONE(73, "Jumping");
+ 
+               memset(&ringtone, 0, sizeof(ringtone));
+               gn_data_clear(&d);
+               d.ringtone = &ringtone;
+               ringtone.location = 0;
+               if (GetRingtone(&d, state) == GN_ERR_NONE) {
+                       rl->ringtone[rl->count].location = ringtone.location;
+                       strcpy(rl->ringtone[rl->count].name, ringtone.name);
+                       rl->ringtone[rl->count].user_defined = 1;
+                       rl->ringtone[rl->count].readable = 1;
+                       rl->ringtone[rl->count].writable = 1;
+                       rl->count++;
+               }
+       } else return GN_ERR_NOTIMPLEMENTED;
+ 
+ #undef ADDRINGTONE
+ 
+       return GN_ERR_NONE;
  }

Index: nk6510.c
===================================================================
RCS file: /cvsroot/gnokii/gnokii/common/phones/nk6510.c,v
retrieving revision 1.122
retrieving revision 1.123
diff -C2 -d -r1.122 -r1.123
*** nk6510.c    16 Oct 2003 23:33:05 -0000      1.122
--- nk6510.c    19 Oct 2003 21:17:53 -0000      1.123
***************
*** 362,365 ****
--- 362,367 ----
        case GN_OP_SetRingtone:
                return NK6510_SetRingtone(data, state);
+       case GN_OP_GetRingtoneList:
+               return NK6510_GetRingtoneList(data, state);
        default:
                return GN_ERR_NOTIMPLEMENTED;
***************
*** 2464,2484 ****
  static gn_error NK6510_IncomingRingtone(int messagetype, unsigned char 
*message, int length, gn_data *data, struct gn_statemachine *state)
  {
!       int i, j, index;
        unsigned char *pos;
  
        switch (message[3]) {
        case 0x08:
                dprintf("List of ringtones received!\n");
!               index = 13;
!               for (j = 0; j < message[7]; j++) {
  
!                       dprintf("Ringtone (#%03i) name: ", message[index - 4]);
!                       for (i = 0; i < message[index]; i++) {
!                               dprintf("%c", message[index + (2 * (i + 1))]);
!                       }
!                       dprintf("\n");
!                       index += message[index] * 2;
!                       while (message[index] != 0x01 || message[index + 1] != 
0x01) index++;
!                       index += 3;
                }               
                break;
--- 2466,2494 ----
  static gn_error NK6510_IncomingRingtone(int messagetype, unsigned char 
*message, int length, gn_data *data, struct gn_statemachine *state)
  {
!       int i, j, n;
        unsigned char *pos;
+       gn_ringtone_list *rl;
  
        switch (message[3]) {
        case 0x08:
                dprintf("List of ringtones received!\n");
!               if (!(rl = data->ringtone_list)) return GN_ERR_INTERNALERROR;
!               rl->count = 256 * message[4] + message[5];
!               rl->userdef_location = 0; //FIXME
!               rl->userdef_count = 10;
!               if (rl->count > GN_RINGTONE_MAX_COUNT) rl->count = 
GN_RINGTONE_MAX_COUNT;
!               i = 6;
!               for (j = 0; j < rl->count; j++) {
!                       if (message[i + 4] != 0x01 || message[i + 6] != 0x00) 
return GN_ERR_UNHANDLEDFRAME;
!                       rl->ringtone[j].location = 256 * message[i + 2] + 
message[i + 3];
!                       rl->ringtone[j].user_defined = (message[i + 5] == 0x02);
!                       rl->ringtone[j].readable = 1;
!                       rl->ringtone[j].writable = rl->ringtone[j].user_defined;
!                       n = message[i + 7];
!                       if (n >= sizeof(rl->ringtone[0].name)) n = 
sizeof(rl->ringtone[0].name) - 1;
!                       char_unicode_decode(rl->ringtone[j].name, message + i + 
8, 2 * n);
!                       i += 256 * message[i] + message[i + 1];
  
!                       dprintf("Ringtone (#%03i) name: %s\n", 
rl->ringtone[j].location, rl->ringtone[j].name);
                }               
                break;





reply via email to

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