X-Git-Url: https://git.jankratochvil.net/?p=gnokii.git;a=blobdiff_plain;f=common%2Fgsm-ringtones.c;h=3db43b626198ff4e9fbad10f29337f7b54682388;hp=8bb013de1da8fc8a9a9bdcda2bbbcfb81a9b8c29;hb=82bcbc2300f764bcb3551b152a0a961f4fef5e66;hpb=975a83d253eea8aa37bf3dfd7e026df3027db4ff diff --git a/common/gsm-ringtones.c b/common/gsm-ringtones.c index 8bb013d..3db43b6 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; +}