GSM_Error GSM_Phone_N6110::GetSMSFolders(GSM_SMSMMSFolders *Folders)
{
	wchart ID;

	Folders->Add(StringToUnicodeReturn("Inbox"),TRUE,MEM_SIM,&ID);
	Folders->Add(StringToUnicodeReturn("Outbox"),FALSE,MEM_SIM,&ID);

	return GSM_Return_Error(GSM_ERR_NONE);
}

GSM_Error GSM_Phone_N6110::GetNextSMS(GSM_SMSList *List, BOOLEAN start, int *Folder, int *Current, int *MaxInFolder)
{
	GSM_SMSListSubEntry     *SubEntry = NULL;
	GSM_Error	       error;
	unsigned char	   Buff[] = {NOKIA_FRAME1, 0x07, 0x02,
				  0x00,		 // SMS location
				  0x01, 0x64};

	if (start == TRUE) {
		SMSStatus.Memory = MEM_SIM;
		error = GetSMSStatus(&SMSStatus);
		if (error.Code != GSM_ERR_NONE) return error;
		SMSLocation = 0;
	}

	while (1) {
		SMSLocation++;
		if (SMSLocation > SMSStatus.SMSFree + SMSStatus.SMSRead + SMSStatus.SMSUnRead) return GSM_Return_Error(GSM_ERR_EMPTY);

		Buff[5] = SMSLocation;

		(*Debug)->Deb("SENT: getting SMS\n");
		error = Write(Buff, sizeof(Buff), 0x14, 4, ID_GetSMS+ID, List); 
		if (error.Code!=GSM_ERR_NONE) return error;

		*Folder	 = -1;
		*Current	= SMSLocation;
		*MaxInFolder    = SMSStatus.SMSFree + SMSStatus.SMSRead + SMSStatus.SMSUnRead;

		List->GetNext(&SubEntry);
		SetSMSLocations(List, List->Folder, SMSLocation);

		return error;
	}
}
