Модуль "Стили звонка" (часть 8) - SetMelodiesToPhone

Рубрика: Исходники
Среда, 21 апреля 2010 г.
Просмотров: 104
последняя версия: 3.0.9 build 961 beta
от 07 декабря 2007 г.
procedure TfrmP2K_RingStyles.SetMelodiesToPhone;
var
  curStyle: byte;
  xSeemData: pbytearray;
  seemLen: word;
  str: string;
  res: boolean;

begin
  if not Form1.IsP2KConnected then exit;
  if iSound <> 0 then begin
                        Form1.spSkinMessage1.MessageDlg(p2k_rs_me_text_02, mtWarning, [mbOk], 0);
                        exit;
                      end;
  Screen.Cursor:= crHourGlass;
  Form1.Enabled:= false;
  try
    SetRingStyle(zIdx);
    try p2k.DeleteFile('MyToneDB.db'); except end;
    try p2k.DeleteFile('TempToneDB.db'); except end;
    try p2k.DeleteFile('/a/mobile/audio/MyToneDB.db'); except end;
    try p2k.DeleteFile('/a/mobile/audio/TempToneDB.db'); except end;
    try p2k.DeleteFile('/c/mobile/audio/MyToneDB.db'); except end;
    try p2k.DeleteFile('/c/mobile/audio/TempToneDB.db'); except end;
    if UseMelodyFromCard then
      begin
        try p2k.DeleteFile('/b/mobile/audio/MyToneDB.db'); except end;
        try p2k.DeleteFile('/b/mobile/audio/TempToneDB.db'); except end;
      end;
    xSeemData:= AllocMem($fa4);
    try
      FillMemory(xSeemData, $fa4, 0);
      res:= P2K.ReadSeem('004c', '0001', '0', 0, xSeemData, SeemLen);
      if res then
        begin
          xSeemData[0]:= xRingStyles[0].Call.Idx;
          xSeemData[1]:= xRingStyles[0].Line1.Idx;
          xSeemData[2]:= xRingStyles[0].Line2.Idx;
          xSeemData[3]:= xRingStyles[0].TextMsg.Idx;
          xSeemData[4]:= xRingStyles[0].VoiceMail.Idx;
          xSeemData[5]:= xRingStyles[0].InfoService.Idx;
          xSeemData[6]:= xRingStyles[0].AnswerMAchine.Idx;
          xSeemData[7]:= xRingStyles[0].Alarms.Idx;
          xSeemData[8]:= xRingStyles[0].DataCalls.Idx;
          xSeemData[9]:= xRingStyles[0].FAxCalls.Idx;
          xSeemData[$48]:= xRingStyles[0].AIM.Idx;
          xSeemData[$4e]:= xRingStyles[0].IM.Idx;
          xSeemData[$43]:= xRingStyles[0].IDs;
          xSeemData[$0a]:= xRingStyles[0].Reminder;
          //fill lowd ringstyle
          xSeemData[$0b]:= xRingStyles[1].Call.Idx;
          xSeemData[$0C]:= xRingStyles[1].Line1.Idx;
          xSeemData[$0D]:= xRingStyles[1].Line2.Idx;
          xSeemData[$0E]:= xRingStyles[1].TextMsg.Idx;
          xSeemData[$0F]:= xRingStyles[1].VoiceMail.Idx;
          xSeemData[$10]:= xRingStyles[1].InfoService.Idx;
          xSeemData[$11]:= xRingStyles[1].AnswerMAchine.Idx;
          xSeemData[$12]:= xRingStyles[1].Alarms.Idx;
          xSeemData[$13]:= xRingStyles[1].DataCalls.Idx;
          xSeemData[$14]:= xRingStyles[1].FAxCalls.Idx;
          xSeemData[$49]:= xRingStyles[1].AIM.Idx;
          xSeemData[$4f]:= xRingStyles[1].IM.Idx;
          xSeemData[$44]:= xRingStyles[1].IDs;
          xSeemData[$15]:= xRingStyles[1].Reminder;
          //fill vibe ringstyle
          xSeemData[$16]:= xRingStyles[2].Call.Idx;
          xSeemData[$17]:= xRingStyles[2].Line1.Idx;
          xSeemData[$18]:= xRingStyles[2].Line2.Idx;
          xSeemData[$19]:= xRingStyles[2].TextMsg.Idx;
          xSeemData[$1A]:= xRingStyles[2].VoiceMail.Idx;
          xSeemData[$1B]:= xRingStyles[2].InfoService.Idx;
          xSeemData[$1C]:= xRingStyles[2].AnswerMAchine.Idx;
          xSeemData[$1D]:= xRingStyles[2].Alarms.Idx;
          xSeemData[$1E]:= xRingStyles[2].DataCalls.Idx;
          xSeemData[$1F]:= xRingStyles[2].FAxCalls.Idx;
          xSeemData[$4A]:= xRingStyles[2].AIM.Idx;
          xSeemData[$50]:= xRingStyles[2].IM.Idx;
          xSeemData[$45]:= xRingStyles[2].IDs;
          xSeemData[$20]:= xRingStyles[2].Reminder;
          //fill lowd ringstyle
          xSeemData[$21]:= xRingStyles[3].Call.Idx;
          xSeemData[$22]:= xRingStyles[3].Line1.Idx;
          xSeemData[$23]:= xRingStyles[3].Line2.Idx;
          xSeemData[$24]:= xRingStyles[3].TextMsg.Idx;
          xSeemData[$25]:= xRingStyles[3].VoiceMail.Idx;
          xSeemData[$26]:= xRingStyles[3].InfoService.Idx;
          xSeemData[$27]:= xRingStyles[3].AnswerMAchine.Idx;
          xSeemData[$28]:= xRingStyles[3].Alarms.Idx;
          xSeemData[$29]:= xRingStyles[3].DataCalls.Idx;
          xSeemData[$2a]:= xRingStyles[3].FAxCalls.Idx;
          xSeemData[$4b]:= xRingStyles[3].AIM.Idx;
          xSeemData[$51]:= xRingStyles[3].IM.Idx;
          xSeemData[$46]:= xRingStyles[3].IDs;
          xSeemData[$2b]:= xRingStyles[3].Reminder;
          // aanooiiue
          xSeemData[$2c]:= xRingStyles[4].Call.Idx;
          xSeemData[$2d]:= xRingStyles[4].Line1.Idx;
          xSeemData[$2e]:= xRingStyles[4].Line2.Idx;
          xSeemData[$2f]:= xRingStyles[4].TextMsg.Idx;
          xSeemData[$30]:= xRingStyles[4].VoiceMail.Idx;
          xSeemData[$31]:= xRingStyles[4].InfoService.Idx;
          xSeemData[$32]:= xRingStyles[4].AnswerMAchine.Idx;
          xSeemData[$33]:= xRingStyles[4].Alarms.Idx;
          xSeemData[$34]:= xRingStyles[4].DataCalls.Idx;
          xSeemData[$35]:= xRingStyles[4].FAxCalls.Idx;
          xSeemData[$4c]:= xRingStyles[4].AIM.Idx;
          xSeemData[$52]:= xRingStyles[4].IM.Idx;
          xSeemData[$47]:= xRingStyles[4].IDs;
          xSeemData[$36]:= xRingStyles[4].Reminder;
          //fill lowd ringstyle
          xSeemData[$58]:= xRingStyles[5].Call.Idx;
          xSeemData[$59]:= xRingStyles[5].Line1.Idx;
          xSeemData[$5a]:= xRingStyles[5].Line2.Idx;
          xSeemData[$5b]:= xRingStyles[5].TextMsg.Idx;
          xSeemData[$5c]:= xRingStyles[5].VoiceMail.Idx;
          xSeemData[$5d]:= xRingStyles[5].InfoService.Idx;
          xSeemData[$5e]:= xRingStyles[5].AnswerMAchine.Idx;
          xSeemData[$5f]:= xRingStyles[5].Alarms.Idx;
          xSeemData[$60]:= xRingStyles[5].DataCalls.Idx;
          xSeemData[$61]:= xRingStyles[5].FAxCalls.Idx;
          xSeemData[$63]:= xRingStyles[5].AIM.Idx;
          xSeemData[$64]:= xRingStyles[5].IM.Idx;
          xSeemData[$66]:= xRingStyles[5].IDs;
          xSeemData[$62]:= xRingStyles[5].Reminder;
          res:= P2K.WriteSeem('004c', '0001', '0', SeemLen, xSeemData);
        end;
    finally
      FreeMem(xSeemData);
    end;
    xSeemData:= AllocMem($fa4);
    try
      FillMemory(xSeemData, $fa4, 0);
      res:= P2K.ReadSeem('0050', '0001', '0', 0, xSeemData, SeemLen);
      if res then
        begin
          xSeemData[3]:= xRingStyles[0].Volume;
          xSeemData[7]:= xRingStyles[0].KeyVolume;
          xSeemData[$0b]:= xRingStyles[1].Volume;
          xSeemData[$0f]:= xRingStyles[1].KeyVolume;
          xSeemData[$13]:= xRingStyles[2].Volume;
          xSeemData[$17]:= xRingStyles[2].KeyVolume;
          xSeemData[$1b]:= xRingStyles[3].Volume;
          xSeemData[$1F]:= xRingStyles[3].KeyVolume;
          xSeemData[$23]:= xRingStyles[4].Volume;
          xSeemData[$27]:= xRingStyles[4].KeyVolume;
          xSeemData[$d7]:= xRingStyles[5].Volume;
          xSeemData[$db]:= xRingStyles[5].KeyVolume;
          res:= P2K.WriteSeem('0050', '0001', '0', SeemLen, xSeemData);
        end;      
    finally
      FreeMem(xSeemData);
    end;
    Form1.spSkinMessage1.MessageDlg(p2k_rs_me_text_01, mtInformation, [mbOk], 0);
  finally
    Screen.Cursor:= crDefault;
    Form1.Enabled:= true;
  end;
end;
Rambler's Top100