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

Рубрика: Исходники
Среда, 21 апреля 2010 г.
Просмотров: 52
последняя версия: 3.0.9 build 961 beta
от 07 декабря 2007 г.
procedure TfrmP2K_RingStyles.GetMelodiesFromPhone;
var
  i: integer;
  res: boolean;
  SeemData: pbytearray;
  SeemLen: word;
  curIndex: integer;

begin
  if not Form1.IsP2KConnected then exit;
  if iSound <> 0 then begin
                        Form1.spSkinMessage1.MessageDlg(p2k_rs_me_text_02, mtWarning, [mbOk], 0);
                      end;
  //if iSound <> 0
  Screen.Cursor:= crHourGlass;
  Form1.Enabled:= false;
  try
    spSkinComboBox4.Items.Clear;
    spSkinComboBox5.Items.Clear;
    spSkinComboBox6.Items.Clear;
    spSkinComboBox7.Items.Clear;
    spSkinComboBox8.Items.Clear;
    spSkinComboBox9.Items.Clear;
    spSkinComboBox10.Items.Clear;
    spSkinComboBox11.Items.Clear;
    spSkinComboBox12.Items.Clear;
    spSkinComboBox13.Items.Clear;
    spSkinComboBox14.Items.Clear;
    spSkinComboBox15.Items.Clear;
    if xMel = nil then exit;
    xMel.Clear;
    GetMelodies(xMel);
    if xMel.Count > 0 then
      begin
        spSkinComboBox4.Enabled:= true;
        spSkinComboBox5.Enabled:= true;
        spSkinComboBox6.Enabled:= true;
        spSkinComboBox7.Enabled:= true;
        spSkinComboBox8.Enabled:= true;
        spSkinComboBox9.Enabled:= true;
        spSkinComboBox10.Enabled:= true;
        spSkinComboBox11.Enabled:= true;
        spSkinComboBox12.Enabled:= true;
        spSkinComboBox13.Enabled:= true;
        spSkinComboBox14.Enabled:= true;
        spSkinComboBox15.Enabled:= true;
        for i:= 0 to xMel.Count-1 do
           begin
             spSkinComboBox4.Items.Add(xMel[i]);
             spSkinComboBox5.Items.Add(xMel[i]);
             spSkinComboBox6.Items.Add(xMel[i]);
             spSkinComboBox7.Items.Add(xMel[i]);
             spSkinComboBox8.Items.Add(xMel[i]);
             spSkinComboBox9.Items.Add(xMel[i]);
             spSkinComboBox10.Items.Add(xMel[i]);
             spSkinComboBox11.Items.Add(xMel[i]);
             spSkinComboBox12.Items.Add(xMel[i]);
             spSkinComboBox13.Items.Add(xMel[i]);
             spSkinComboBox14.Items.Add(xMel[i]);
             spSkinComboBox15.Items.Add(xMel[i]);
           end;
         //read seem
          try
            SeemData:= AllocMem($fa4);
            FillMemory(SeemData, $fa4, 0);
            res:= P2K.ReadSeem('004c', '0001', '0', 0, SeemData, SeemLen);
            if res then
             begin
                //LOUD RINGS
                xRingStyles[0].Call.Idx:= SeemData[0];
                xRingStyles[0].Call.Name:= GetNameByIndex(xRingStyles[0].Call.Idx);
                xRingStyles[0].Line1.Idx:= SeemData[1];
                xRingStyles[0].Line1.Name:= GetNameByIndex(xRingStyles[0].Line1.Idx);
                xRingStyles[0].Line2.Idx:= SeemData[2];
                xRingStyles[0].Line2.Name:= GetNameByIndex(xRingStyles[0].Line2.Idx);
                xRingStyles[0].TextMsg.Idx:= SeemData[3];
                xRingStyles[0].TextMsg.Name:= GetNameByIndex(xRingStyles[0].TextMsg.Idx);
                xRingStyles[0].VoiceMail.Idx:= SeemData[4];
                xRingStyles[0].VoiceMail.Name:= GetNameByIndex(xRingStyles[0].VoiceMail.Idx);
                xRingStyles[0].InfoService.Idx:= SeemData[5];
                xRingStyles[0].InfoService.Name:= GetNameByIndex(xRingStyles[0].InfoService.Idx);
                xRingStyles[0].AnswerMAchine.Idx:= SeemData[6];
                xRingStyles[0].AnswerMAchine.Name:= GetNameByIndex(xRingStyles[0].AnswerMAchine.Idx);
                xRingStyles[0].Alarms.Idx:= SeemData[7];
                xRingStyles[0].Alarms.Name:= GetNameByIndex(xRingStyles[0].Alarms.Idx);
                xRingStyles[0].DataCalls.Idx:= SeemData[8];
                xRingStyles[0].DataCalls.Name:= GetNameByIndex(xRingStyles[0].DataCalls.Idx);
                xRingStyles[0].FAxCalls.Idx:= SeemData[9];
                xRingStyles[0].FAxCalls.Name:= GetNameByIndex(xRingStyles[0].FAxCalls.Idx);
                xRingStyles[0].AIM.Idx:= SeemData[$48];
                xRingStyles[0].AIM.Name:= GetNameByIndex(xRingStyles[0].AIM.Idx);
                xRingStyles[0].IM.Idx:= SeemData[$4e];
                xRingStyles[0].IM.Name:= GetNameByIndex(xRingStyles[0].IM.Idx);
                //xRingStyles[0].FileTransfer.Idx:= SeemData[$53];
                //xRingStyles[0].FileTransfer.Name:= GetNameByIndex(xRingStyles[0].FileTransfer.Idx);
                //xRingStyles[0].PTT.Idx:= SeemData[$67];
                //xRingStyles[0].PTT.Name:= GetNameByIndex(xRingStyles[0].PTT.Idx);
                //****
                xRingStyles[0].IDs:= SeemData[$43];
                xRingStyles[0].Reminder:= SeemData[$0a];
                //SOFT RING
                xRingStyles[1].Call.Idx:= SeemData[$0b];
                xRingStyles[1].Call.Name:= GetNameByIndex(xRingStyles[1].Call.Idx);
                xRingStyles[1].Line1.Idx:= SeemData[$0C];
                xRingStyles[1].Line1.Name:= GetNameByIndex(xRingStyles[1].Line1.Idx);
                xRingStyles[1].Line2.Idx:= SeemData[$0D];
                xRingStyles[1].Line2.Name:= GetNameByIndex(xRingStyles[1].Line2.Idx);
                xRingStyles[1].TextMsg.Idx:= SeemData[$0E];
                xRingStyles[1].TextMsg.Name:= GetNameByIndex(xRingStyles[1].TextMsg.Idx);
                xRingStyles[1].VoiceMail.Idx:= SeemData[$0F];
                xRingStyles[1].VoiceMail.Name:= GetNameByIndex(xRingStyles[1].VoiceMail.Idx);
                xRingStyles[1].InfoService.Idx:= SeemData[$10];
                xRingStyles[1].InfoService.Name:= GetNameByIndex(xRingStyles[1].InfoService.Idx);
                xRingStyles[1].AnswerMAchine.Idx:= SeemData[$11];
                xRingStyles[1].AnswerMAchine.Name:= GetNameByIndex(xRingStyles[1].AnswerMAchine.Idx);
                xRingStyles[1].Alarms.Idx:= SeemData[$12];
                xRingStyles[1].Alarms.Name:= GetNameByIndex(xRingStyles[1].Alarms.Idx);
                xRingStyles[1].DataCalls.Idx:= SeemData[$13];
                xRingStyles[1].DataCalls.Name:= GetNameByIndex(xRingStyles[1].DataCalls.Idx);
                xRingStyles[1].FAxCalls.Idx:= SeemData[$14];
                xRingStyles[1].FAxCalls.Name:= GetNameByIndex(xRingStyles[1].FAxCalls.Idx);
                xRingStyles[1].AIM.Idx:= SeemData[$49];
                xRingStyles[1].AIM.Name:= GetNameByIndex(xRingStyles[1].AIM.Idx);
                xRingStyles[1].IM.Idx:= SeemData[$4f];
                xRingStyles[1].IM.Name:= GetNameByIndex(xRingStyles[1].IM.Idx);
                //xRingStyles[1].FileTransfer.Idx:= SeemData[$54];
                //xRingStyles[1].FileTransfer.Name:= GetNameByIndex(xRingStyles[1].FileTransfer.Idx);
                //xRingStyles[1].PTT.Idx:= SeemData[$68];
                //xRingStyles[1].PTT.Name:= GetNameByIndex(xRingStyles[1].PTT.Idx);
                //***
                xRingStyles[1].IDs:= SeemData[$44];
                xRingStyles[1].Reminder:= SeemData[$15];
                //VIBRATE CALLS
                xRingStyles[2].Call.Idx:= SeemData[$16];
                xRingStyles[2].Call.Name:= GetNameByIndex(xRingStyles[2].Call.Idx);
                xRingStyles[2].Line1.Idx:= SeemData[$17];
                xRingStyles[2].Line1.Name:= GetNameByIndex(xRingStyles[2].Line1.Idx);
                xRingStyles[2].Line2.Idx:= SeemData[$18];
                xRingStyles[2].Line2.Name:= GetNameByIndex(xRingStyles[2].Line2.Idx);
                xRingStyles[2].TextMsg.Idx:= SeemData[$19];
                xRingStyles[2].TextMsg.Name:= GetNameByIndex(xRingStyles[2].TextMsg.Idx);
                xRingStyles[2].VoiceMail.Idx:= SeemData[$1A];
                xRingStyles[2].VoiceMail.Name:= GetNameByIndex(xRingStyles[2].VoiceMail.Idx);
                xRingStyles[2].InfoService.Idx:= SeemData[$1B];
                xRingStyles[2].InfoService.Name:= GetNameByIndex(xRingStyles[2].InfoService.Idx);
                xRingStyles[2].AnswerMAchine.Idx:= SeemData[$1C];
                xRingStyles[2].AnswerMAchine.Name:= GetNameByIndex(xRingStyles[2].AnswerMAchine.Idx);
                xRingStyles[2].Alarms.Idx:= SeemData[$1D];
                xRingStyles[2].Alarms.Name:= GetNameByIndex(xRingStyles[2].Alarms.Idx);
                xRingStyles[2].DataCalls.Idx:= SeemData[$1E];
                xRingStyles[2].DataCalls.Name:= GetNameByIndex(xRingStyles[2].DataCalls.Idx);
                xRingStyles[2].FAxCalls.Idx:= SeemData[$1F];
                xRingStyles[2].FAxCalls.Name:= GetNameByIndex(xRingStyles[2].FAxCalls.Idx);
                xRingStyles[2].AIM.Idx:= SeemData[$4A];
                xRingStyles[2].AIM.Name:= GetNameByIndex(xRingStyles[2].AIM.Idx);
                xRingStyles[2].IM.Idx:= SeemData[$50];
                xRingStyles[2].IM.Name:= GetNameByIndex(xRingStyles[2].IM.Idx);
                //xRingStyles[2].FileTransfer.Idx:= SeemData[$55];
                //xRingStyles[2].FileTransfer.Name:= GetNameByIndex(xRingStyles[2].FileTransfer.Idx);
                //xRingStyles[2].PTT.Idx:= SeemData[$69];
                //xRingStyles[2].PTT.Name:= GetNameByIndex(xRingStyles[2].PTT.Idx);
                //////****
                xRingStyles[2].IDs:= SeemData[$45];
                xRingStyles[2].Reminder:= SeemData[$20];
                //RING VIBRATE
                xRingStyles[3].Call.Idx:= SeemData[$21];
                xRingStyles[3].Call.Name:= GetNameByIndex(xRingStyles[3].Call.Idx);
                xRingStyles[3].Line1.Idx:= SeemData[$22];
                xRingStyles[3].Line1.Name:= GetNameByIndex(xRingStyles[3].Line1.Idx);
                xRingStyles[3].Line2.Idx:= SeemData[$23];
                xRingStyles[3].Line2.Name:= GetNameByIndex(xRingStyles[3].Line2.Idx);
                xRingStyles[3].TextMsg.Idx:= SeemData[$24];
                xRingStyles[3].TextMsg.Name:= GetNameByIndex(xRingStyles[3].TextMsg.Idx);
                xRingStyles[3].VoiceMail.Idx:= SeemData[$25];
                xRingStyles[3].VoiceMail.Name:= GetNameByIndex(xRingStyles[3].VoiceMail.Idx);
                xRingStyles[3].InfoService.Idx:= SeemData[$26];
                xRingStyles[3].InfoService.Name:= GetNameByIndex(xRingStyles[3].InfoService.Idx);
                xRingStyles[3].AnswerMAchine.Idx:= SeemData[$27];
                xRingStyles[3].AnswerMAchine.Name:= GetNameByIndex(xRingStyles[3].AnswerMAchine.Idx);
                xRingStyles[3].Alarms.Idx:= SeemData[$28];
                xRingStyles[3].Alarms.Name:= GetNameByIndex(xRingStyles[3].Alarms.Idx);
                xRingStyles[3].DataCalls.Idx:= SeemData[$29];
                xRingStyles[3].DataCalls.Name:= GetNameByIndex(xRingStyles[3].DataCalls.Idx);
                xRingStyles[3].FAxCalls.Idx:= SeemData[$2a];
                xRingStyles[3].FAxCalls.Name:= GetNameByIndex(xRingStyles[3].FAxCalls.Idx);
                xRingStyles[3].AIM.Idx:= SeemData[$4b];
                xRingStyles[3].AIM.Name:= GetNameByIndex(xRingStyles[3].AIM.Idx);
                xRingStyles[3].IM.Idx:= SeemData[$51];
                xRingStyles[3].IM.Name:= GetNameByIndex(xRingStyles[3].IM.Idx);
                //***
                xRingStyles[3].IDs:= SeemData[$46];
                xRingStyles[3].Reminder:= SeemData[$2b];
                //xRingStyles[3].FileTransfer.Idx:= SeemData[$56];
                //xRingStyles[3].FileTransfer.Name:= GetNameByIndex(xRingStyles[3].FileTransfer.Idx);
                //xRingStyles[3].PTT.Idx:= SeemData[$6a];
                //xRingStyles[3].PTT.Name:= GetNameByIndex(xRingStyles[3].PTT.Idx);
  
                //SILENT CALLS
                xRingStyles[4].Call.Idx:= SeemData[$2c];
                xRingStyles[4].Call.Name:= GetNameByIndex(xRingStyles[4].Call.Idx);
                xRingStyles[4].Line1.Idx:= SeemData[$2d];
                xRingStyles[4].Line1.Name:= GetNameByIndex(xRingStyles[4].Line1.Idx);
                xRingStyles[4].Line2.Idx:= SeemData[$2e];
                xRingStyles[4].Line2.Name:= GetNameByIndex(xRingStyles[4].Line2.Idx);
                xRingStyles[4].TextMsg.Idx:= SeemData[$2f];
                xRingStyles[4].TextMsg.Name:= GetNameByIndex(xRingStyles[4].TextMsg.Idx);
                xRingStyles[4].VoiceMail.Idx:= SeemData[$30];
                xRingStyles[4].VoiceMail.Name:= GetNameByIndex(xRingStyles[4].VoiceMail.Idx);
                xRingStyles[4].InfoService.Idx:= SeemData[$31];
                xRingStyles[4].InfoService.Name:= GetNameByIndex(xRingStyles[4].InfoService.Idx);
                xRingStyles[4].AnswerMAchine.Idx:= SeemData[$32];
                xRingStyles[4].AnswerMAchine.Name:= GetNameByIndex(xRingStyles[4].AnswerMAchine.Idx);
                xRingStyles[4].Alarms.Idx:= SeemData[$33];
                xRingStyles[4].Alarms.Name:= GetNameByIndex(xRingStyles[4].Alarms.Idx);
                xRingStyles[4].DataCalls.Idx:= SeemData[$34];
                xRingStyles[4].DataCalls.Name:= GetNameByIndex(xRingStyles[4].DataCalls.Idx);
                xRingStyles[4].FAxCalls.Idx:= SeemData[$35];
                xRingStyles[4].FAxCalls.Name:= GetNameByIndex(xRingStyles[4].FAxCalls.Idx);
                xRingStyles[4].AIM.Idx:= SeemData[$4c];
                xRingStyles[4].AIM.Name:= GetNameByIndex(xRingStyles[4].AIM.Idx);
                xRingStyles[4].IM.Idx:= SeemData[$52];
                xRingStyles[4].IM.Name:= GetNameByIndex(xRingStyles[4].IM.Idx);
                //xRingStyles[4].FileTransfer.Idx:= SeemData[$57];
                //xRingStyles[4].FileTransfer.Name:= GetNameByIndex(xRingStyles[4].FileTransfer.Idx);
                //xRingStyles[4].PTT.Idx:= SeemData[$6b];
                //xRingStyles[4].PTT.Name:= GetNameByIndex(xRingStyles[4].PTT.Idx);
                //***
                xRingStyles[4].IDs:= SeemData[$47];
                xRingStyles[4].Reminder:= SeemData[$36];
                //SIMUL RING VIB CALLS
                xRingStyles[5].Call.Idx:= SeemData[$58];
                xRingStyles[5].Call.Name:= GetNameByIndex(xRingStyles[5].Call.Idx);
                xRingStyles[5].Line1.Idx:= SeemData[$59];
                xRingStyles[5].Line1.Name:= GetNameByIndex(xRingStyles[5].Line1.Idx);
                xRingStyles[5].Line2.Idx:= SeemData[$5a];
                xRingStyles[5].Line2.Name:= GetNameByIndex(xRingStyles[5].Line2.Idx);
                xRingStyles[5].TextMsg.Idx:= SeemData[$5b];
                xRingStyles[5].TextMsg.Name:= GetNameByIndex(xRingStyles[5].TextMsg.Idx);
                xRingStyles[5].VoiceMail.Idx:= SeemData[$5c];
                xRingStyles[5].VoiceMail.Name:= GetNameByIndex(xRingStyles[5].VoiceMail.Idx);
                xRingStyles[5].InfoService.Idx:= SeemData[$5d];
                xRingStyles[5].InfoService.Name:= GetNameByIndex(xRingStyles[5].InfoService.Idx);
                xRingStyles[5].AnswerMAchine.Idx:= SeemData[$5e];
                xRingStyles[5].AnswerMAchine.Name:= GetNameByIndex(xRingStyles[5].AnswerMAchine.Idx);
                xRingStyles[5].Alarms.Idx:= SeemData[$5f];
                xRingStyles[5].Alarms.Name:= GetNameByIndex(xRingStyles[5].Alarms.Idx);
                xRingStyles[5].DataCalls.Idx:= SeemData[$60];
                xRingStyles[5].DataCalls.Name:= GetNameByIndex(xRingStyles[5].DataCalls.Idx);
                xRingStyles[5].FAxCalls.Idx:= SeemData[$61];
                xRingStyles[5].FAxCalls.Name:= GetNameByIndex(xRingStyles[5].FAxCalls.Idx);
                xRingStyles[5].AIM.Idx:= SeemData[$63];
                xRingStyles[5].AIM.Name:= GetNameByIndex(xRingStyles[5].AIM.Idx);
                xRingStyles[5].IM.Idx:= SeemData[$64];
                xRingStyles[5].IM.Name:= GetNameByIndex(xRingStyles[5].IM.Idx);
                //xRingStyles[5].FileTransfer.Idx:= SeemData[$65];
                //xRingStyles[5].FileTransfer.Name:= GetNameByIndex(xRingStyles[5].FileTransfer.Idx);
                //xRingStyles[5].PTT.Idx:= SeemData[$6c];
                //xRingStyles[5].PTT.Name:= GetNameByIndex(xRingStyles[5].PTT.Idx);
                //***
                xRingStyles[5].IDs:= SeemData[$66];
                xRingStyles[5].Reminder:= SeemData[$62];
             end;
          finally
            FreeMem(SeemData, $fa4);
          end;
          try
            SeemData:= AllocMem($fa4);
            FillMemory(SeemData, $fa4, 0);
            res:= P2K.ReadSeem('0050', '0001', '0', 0, SeemData, SeemLen);
            if res then
             begin
              xRingStyles[0].Volume:= SeemData[3];
              xRingStyles[0].KeyVolume:= SeemData[7];
              xRingStyles[1].Volume:= SeemData[$0b];
              xRingStyles[1].KeyVolume:= SeemData[$0f];
              xRingStyles[2].Volume:= SeemData[$13];
              xRingStyles[2].KeyVolume:= SeemData[$17];
              xRingStyles[3].Volume:= SeemData[$1b];
              xRingStyles[3].KeyVolume:= SeemData[$1F];
              xRingStyles[4].Volume:= SeemData[$23];
              xRingStyles[4].KeyVolume:= SeemData[$27];
              xRingStyles[5].Volume:= SeemData[$d7];
              xRingStyles[5].KeyVolume:= SeemData[$db];
             end;
          finally
            FreeMem(SeemData, $fa4);
          end;
          try
            SeemData:= AllocMem($fa4);
            FillMemory(SeemData, $fa4, 0);
            res:= P2K.ReadSeem('004a', '0001', '0', 0, SeemData, SeemLen);
            if res then
             begin
              curIndex:= SeemData[$0A];
             end;
          finally
            FreeMem(SeemData, $fa4);
          end;
          spSkinComboBox1.ItemIndex:= curIndex;
          spSkinComboBox4.ItemIndex:= xRingStyles[curIndex].Line1.Idx;
          spSkinComboBox5.ItemIndex:= xRingStyles[curIndex].Line2.Idx;
          spSkinComboBox6.ItemIndex:= xRingStyles[curIndex].Call.Idx;
          spSkinComboBox7.ItemIndex:= xRingStyles[curIndex].TextMsg.Idx;
          spSkinComboBox9.ItemIndex:= xRingStyles[curIndex].Alarms.Idx;
          spSkinComboBox8.ItemIndex:= xRingStyles[curIndex].VoiceMail.Idx;
          spSkinComboBox11.ItemIndex:= xRingStyles[curIndex].DataCalls.Idx;
          spSkinComboBox10.ItemIndex:= xRingStyles[curIndex].InfoService.Idx;
          spSkinComboBox13.ItemIndex:= xRingStyles[curIndex].FAxCalls.Idx;
          spSkinComboBox12.ItemIndex:= xRingStyles[curIndex].IM.Idx;
          spSkinComboBox15.ItemIndex:= xRingStyles[curIndex].AIM.Idx;
          spSkinComboBox14.ItemIndex:= xRingStyles[curIndex].AnswerMAchine.Idx;
          spSkinSpinEdit1.Value:= xRingStyles[curIndex].Volume;
          spSkinSpinEdit2.Value:= xRingStyles[curIndex].KeyVolume;
          spSkinComboBox3.ItemIndex:= xRingStyles[curIndex].IDs;
          spSkinComboBox2.ItemIndex:= xRingStyles[curIndex].Reminder;
          Form1.btnP2K_RingStyles_Set.Enabled:= true;
          {
          ComboBox1.Enabled:= true;
          ComboBox2.Enabled:= true;
          ComboBox4.Enabled:= true;
          ComboBox5.Enabled:= true;
          ComboBox3.Enabled:= true;
          }
      end;
  finally
    Screen.Cursor:= crDefault;
    Form1.Enabled:= true;
  end;
end;
Rambler's Top100