summaryrefslogtreecommitdiffabout
path: root/gammu/emb/common/service/sms/gsmmulti.h
Side-by-side diff
Diffstat (limited to 'gammu/emb/common/service/sms/gsmmulti.h') (more/less context) (show whitespace changes)
-rw-r--r--gammu/emb/common/service/sms/gsmmulti.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/gammu/emb/common/service/sms/gsmmulti.h b/gammu/emb/common/service/sms/gsmmulti.h
index c672261..3f70d81 100644
--- a/gammu/emb/common/service/sms/gsmmulti.h
+++ b/gammu/emb/common/service/sms/gsmmulti.h
@@ -1,271 +1,280 @@
/* (c) 2002-2004 by Marcin Wiacek */
#ifndef __gsm_multi_h
#define __gsm_multi_h
+#if defined(_MSC_VER) && defined(__cplusplus)
+ extern "C" {
+#endif
+
#include "../../gsmcomon.h"
#include "../gsmlogo.h"
#include "../gsmcal.h"
#include "../gsmpbk.h"
#include "../gsmdata.h"
#include "../gsmring.h"
#include "gsmsms.h"
/* ---------------------- multi SMS --------------------------------------- */
/* Identifiers for Smart Messaging 3.0 multipart SMS */
#define SM30_ISOTEXT 0 /* ISO 8859-1 text */
#define SM30_UNICODETEXT 1
#define SM30_OTA 2
#define SM30_RINGTONE 3
#define SM30_PROFILENAME 4
/* ... */
#define SM30_SCREENSAVER 6
/* Identifiers for Alcatel Terminal Data Download */
#define ALCATELTDD_PICTURE 4
#define ALCATELTDD_ANIMATION 5
#define ALCATELTDD_SMSTEMPLATE 6
void GSM_SMSCounter(int MessageLength,
unsigned char *MessageBuffer,
GSM_UDH UDHType,
GSM_Coding_Type Coding,
int *SMSNum,
int *CharsLeft);
#define MAX_MULTI_SMS 10
/**
* Multiple SMS messages, used for Smart Messaging 3.0/EMS.
*/
typedef struct {
/**
* Sender or recipient number.
*/
unsigned char Number;
/**
* Array of SMSes.
*/
GSM_SMSMessage SMS[MAX_MULTI_SMS];
} GSM_MultiSMSMessage;
GSM_Error GSM_AddSMS_Text_UDH(GSM_MultiSMSMessage *SMS,
GSM_Coding_Type Coding,
char *Buffer,
int BufferLen,
bool UDH,
int *UsedText,
int *CopiedText,
int *CopiedSMSText);
void GSM_MakeMultiPartSMS(GSM_MultiSMSMessage *SMS,
unsigned char *MessageBuffer,
int MessageLength,
GSM_UDH UDHType,
GSM_Coding_Type Coding,
int Class,
unsigned char RejectDuplicates);
void GSM_Find_Free_Used_SMS2(GSM_Coding_Type Coding,GSM_SMSMessage SMS, int *UsedText, int *FreeText, int *FreeBytes);
unsigned char GSM_MakeSMSIDFromTime(void);
/**
* ID during packing SMS for Smart Messaging 3.0, EMS and other
*/
typedef enum {
/**
* 1 text SMS.
*/
SMS_Text = 1,
/**
* Contacenated SMS, when longer than 1 SMS.
*/
SMS_ConcatenatedTextLong,
/**
* Contacenated SMS, auto Default/Unicode coding.
*/
SMS_ConcatenatedAutoTextLong,
SMS_ConcatenatedTextLong16bit,
SMS_ConcatenatedAutoTextLong16bit,
/**
* Nokia profile = Name, Ringtone, ScreenSaver
*/
SMS_NokiaProfileLong,
/**
* Nokia Picture Image + (text)
*/
SMS_NokiaPictureImageLong,
/**
* Nokia screen saver + (text)
*/
SMS_NokiaScreenSaverLong,
/**
* Nokia ringtone - old SM2.0 format, 1 SMS
*/
SMS_NokiaRingtone,
/**
* Nokia ringtone contacenated, when very long
*/
SMS_NokiaRingtoneLong,
/**
* Nokia 72x14 operator logo, 1 SMS
*/
SMS_NokiaOperatorLogo,
/**
* Nokia 72x14 op logo or 78x21 in 2 SMS
*/
SMS_NokiaOperatorLogoLong,
/**
* Nokia 72x14 caller logo, 1 SMS
*/
SMS_NokiaCallerLogo,
/**
* Nokia WAP bookmark in 1 or 2 SMS
*/
SMS_NokiaWAPBookmarkLong,
/**
* Nokia WAP settings in 2 SMS
*/
SMS_NokiaWAPSettingsLong,
/**
* Nokia MMS settings in 2 SMS
*/
SMS_NokiaMMSSettingsLong,
/**
* Nokia VCARD 1.0 - only name and default number
*/
SMS_NokiaVCARD10Long,
/**
* Nokia VCARD 2.1 - all numbers + text
*/
SMS_NokiaVCARD21Long,
/**
* Nokia VCALENDAR 1.0 - can be in few sms
*/
SMS_NokiaVCALENDAR10Long,
SMS_NokiaVTODOLong,
SMS_VCARD10Long,
SMS_VCARD21Long,
SMS_DisableVoice,
SMS_DisableFax,
SMS_DisableEmail,
SMS_EnableVoice,
SMS_EnableFax,
SMS_EnableEmail,
SMS_VoidSMS,
/**
* IMelody 1.0
*/
SMS_EMSSound10,
/**
* IMelody 1.2
*/
SMS_EMSSound12,
/**
* IMelody without header - SonyEricsson extension
*/
SMS_EMSSonyEricssonSound,
/**
* IMelody 1.0 with UPI.
*/
SMS_EMSSound10Long,
- /***
+ /**
* IMelody 1.2 with UPI.
*/
SMS_EMSSound12Long,
/**
* IMelody without header with UPI.
*/
SMS_EMSSonyEricssonSoundLong,
SMS_EMSPredefinedSound,
SMS_EMSPredefinedAnimation,
SMS_EMSAnimation,
/**
* Fixed bitmap of size 16x16 or 32x32.
*/
SMS_EMSFixedBitmap,
SMS_EMSVariableBitmap,
SMS_EMSVariableBitmapLong,
SMS_MMSIndicatorLong,
+ SMS_WAPIndicatorLong,
/**
* Variable bitmap with black and white colors
*/
SMS_AlcatelMonoBitmapLong,
/**
* Variable animation with black and white colors
*/
SMS_AlcatelMonoAnimationLong,
SMS_AlcatelSMSTemplateName
} EncodeMultiPartSMSID;
typedef struct {
EncodeMultiPartSMSID ID;
int Number;
GSM_Ringtone *Ringtone;
GSM_MultiBitmap *Bitmap;
GSM_WAPBookmark *Bookmark;
GSM_WAPSettings *Settings;
GSM_MMSIndicator *MMSIndicator;
GSM_MemoryEntry *Phonebook;
GSM_CalendarEntry *Calendar;
GSM_ToDoEntry *ToDo;
bool Protected;
unsigned char *Buffer;
bool Left;
bool Right;
bool Center;
bool Large;
bool Small;
bool Bold;
bool Italic;
bool Underlined;
bool Strikethrough;
/* Return values */
int RingtoneNotes;
} MultiPartSMSEntry;
typedef struct {
MultiPartSMSEntry Entries[MAX_MULTI_SMS];
int EntriesNum;
bool UnicodeCoding;
int Class;
unsigned char ReplaceMessage;
bool Unknown;
} GSM_MultiPartSMSInfo;
/**
* Encodes multi part SMS from "readable" format.
*/
GSM_Error GSM_EncodeMultiPartSMS (GSM_MultiPartSMSInfo *Info, GSM_MultiSMSMessage *SMS);
/**
* Decodes multi part SMS to "readable" format.
*/
bool GSM_DecodeMultiPartSMS (GSM_MultiPartSMSInfo *Info, GSM_MultiSMSMessage *SMS, bool ems);
/**
* Clears @ref GSM_MultiPartSMSInfo to default values.
*/
void GSM_ClearMultiPartSMSInfo (GSM_MultiPartSMSInfo *Info);
/**
* Frees any allocated structures inside @ref GSM_MultiPartSMSInfo.
*/
void GSM_FreeMultiPartSMSInfo (GSM_MultiPartSMSInfo *Info);
/**
* Links SMS messages according to IDs.
*/
GSM_Error GSM_LinkSMS(GSM_MultiSMSMessage **INPUT, GSM_MultiSMSMessage **OUTPUT, bool ems);
+#if defined(_MSC_VER) && defined(__cplusplus)
+ }
+#endif
+
#endif
/* How should editor hadle tabs in this file? Add editor commands here.
* vim: noexpandtab sw=8 ts=8 sts=8:
*/