X-Git-Url: https://git.jankratochvil.net/?p=gnokii.git;a=blobdiff_plain;f=common%2Fgsm-ringtones.c;h=588ddadfe44392ae537754835d26ff9a34693b93;hp=aa68378ed8a23e485946ea5593e75456f3d3169a;hb=f27649b20525793d0880d0df34205548f71ed7f8;hpb=a2dfc99dc499ea8600bf5178f8122125d7d7d557 diff --git a/common/gsm-ringtones.c b/common/gsm-ringtones.c index aa68378..588ddad 100644 --- a/common/gsm-ringtones.c +++ b/common/gsm-ringtones.c @@ -916,7 +916,7 @@ void PrepareRingingTones(char model[64], char rev[64]) { /* returns names from code or number in menu */ char *RingingToneName(int code, int menu) { - int index=1,i; + int index=1; GSM_Error error; if (code==0) @@ -934,25 +934,14 @@ char *RingingToneName(int code, int menu) } if (!strncmp(RingingTones[index].name,"Uploaded ",9)) { - ringtone.location=atoi(&RingingTones[index].name[10]); - - error=GSM->GetBinRingtone(&ringtone); - - if (error==GE_NONE) return ringtone.name; - if (error==GE_UNKNOWNMODEL) { - - /* In 33x we have normal "Smart Messaging" format */ - if (GetModelFeature (FN_RINGTONES)==F_RING_SM) { - - i=7; - if (ringtone.frame[9]==0x4a && ringtone.frame[10]==0x3a) i=8; - ringtone.frame[i]=0x02; - - GSM_UnPackRingtone(&SMringtone, ringtone.frame+i, ringtone.length-i); + ringtone.location=atoi(&RingingTones[index].name[10]); - return SMringtone.name; - } - } + error=GSM_GetPhoneRingtone(&ringtone,&SMringtone); + + if (error==GE_NONE) { + if (GetModelFeature (FN_RINGTONES)==F_RING_SM) return SMringtone.name; + else return ringtone.name; + } } return RingingTones[index].name; @@ -1021,3 +1010,27 @@ int GSM_SaveRingtoneToSMS(GSM_MultiSMSMessage *SMS, return i; } + +GSM_Error GSM_GetPhoneRingtone(GSM_BinRingtone *ringtone,GSM_Ringtone *SMringtone) +{ + GSM_Error error; + int i; + + error=GSM->GetBinRingtone(ringtone); + + if (error==GE_UNKNOWNMODEL) + { + /* In 3310,... we have normal "Smart Messaging" format */ + if (GetModelFeature (FN_RINGTONES)==F_RING_SM) { + i=7; + if (ringtone->frame[9]==0x4a && ringtone->frame[10]==0x3a) i=8; + ringtone->frame[i]=0x02; + + GSM_UnPackRingtone(SMringtone, ringtone->frame+i, ringtone->length-i); + + return GE_NONE; + } + } + + return error; +}