亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sugarmemodb.h

?? 最好用的背單詞軟件, palm 平臺, 如果能移植到別的平臺
?? H
字號:
//Sugar Memo Database header file

//bit operation
#define BitAtPosition(pos) ((UInt16)1 << (pos))
#define GetBitMacro(bitfield, index) ((bitfield) & BitAtPosition(index))
#define SetBitMacro(bitfield, index) ((bitfield) |= BitAtPosition(index))
#define RemoveBitMacro(bitfield, index) ((bitfield) &= ~BitAtPosition(index))  

//***********************************************
//
//	type define
//
//***********************************************

//***********************************************
//
//	Header type, as first double-bytes of every record, including both header record and word record
//
//***********************************************
typedef union {
	struct {
		unsigned	padding2	:2;
		unsigned	testingChoiceBuffer		:1;
		unsigned	learningChoiceBuffer	:1;
		unsigned	testingQ	:1;
		unsigned 	learningQ	:1;
		unsigned 	header		:1;
		
		unsigned 	padding		:5;

		unsigned 	waiting		:1;
		unsigned 	testing		:1;
		unsigned 	learning 	:1;
		unsigned 	raw			:1;
	} bits;
	
	UInt16 allBits;
}	Header;

typedef enum {
	RawQueue = 0,
	LearningQueue = 1,
	TestingQueue =	2,
	WaitingQueue = 3,

	HeaderFlag = 9,
	LearningQFlag = 10,
	TestingQFlag = 11,
	LearningBFlag = 12,
	TestingBFlag = 13,
	BadQueue = 15
} HeaderQueue;

typedef enum {
	FirstLook = 0,
	TranslationRecollection,
	WordRecollection,
	TranslationTest,
	WordTest
} 	LearningStatus;


typedef enum{
	NoRating = 0,
	FailRating = 1,
	PassRating = 2,
	BingoRating = 3
	
}	Rating;

typedef union {
	struct{
		unsigned padding					:3;
		unsigned wordTest					:1;
		unsigned translationTest			:1;
		unsigned wordRecollection			:1;
		unsigned translationRecollection 	:1;
		unsigned firstLook 					:1;
	} bits;
	
	UInt8 allBits;

}	ReviewMode;

typedef struct {

	ReviewMode	reviewMode ;

	unsigned	firstRating		:2;
	unsigned	secondRating	:2;
	unsigned	totalFail		:4;
	
} 	TestingStatus;



typedef union {
	TestingStatus testingStatus;
	LearningStatus learningStatus;	
}	LTStatus;

typedef struct {
	float 		eFactor;		//E-Factor
	UInt8 		difficulty;		//
	UInt8 		totalLapse;	
	UInt8 		totalRecall;
	UInt8 		step;			//step in current round
	DateType 	lastTest;
	DateType	currentTest;	//when the current test begins, only meaningful for drilling words
	DateType 	nextTest;
	DateType 	firstLearn;
	DateType 	create;
	
}	MemorizingStatus;

typedef enum {
	WordFieldQuestion = 0,
	WordFieldPhonetic,
	WordFieldAnswer,
	WordFieldWordNet,
	WordFieldMerriamWebster,
	WordFieldDict1,
	WordFieldDict2,
	WordFieldDict3,
	WordFieldNote1,
	WordFieldNote2,
	WordFieldNote3,
	
	WordFieldsCount
			
} WordFields;

//#define HeaderRecordFlag WordFieldsCount

typedef union {
	struct{
		unsigned 	reserved 	:5;
		unsigned 	note3		:1;
		unsigned 	note2		:1;
		unsigned 	note1		:1;
		unsigned 	dict3		:1;
		unsigned 	dict2		:1;
		unsigned 	dict1		:1;
		unsigned 	merriamwebster	:1;
		unsigned 	wordnet		:1;
		unsigned 	answer		:1;
		unsigned	phonetic	:1;
		unsigned 	question	:1;
	} bits;
	
	UInt16 allBits;

}	WordFieldFlags;

typedef struct {
	Header 	header;
	LTStatus	ltStatus;
	MemorizingStatus memoStatus;
	WordFieldFlags wordDBRecordFlags;
	UInt16 answerOffset;

	char firstField;	//just a placeholder

}	WordPackedRecord;

typedef struct {
	Header header;
	LTStatus ltStatus;
	MemorizingStatus memoStatus;
	char *field[WordFieldsCount];
	
}	WordRecordType;

typedef UInt32 HeaderItem;

typedef struct {
	Header header;
	UInt16 itemNumbers;
}	HeaderRecord;

typedef struct {
	Header header;
	UInt16 itemNumbers;
	HeaderItem firstItem; //place holder
} 	HeaderRecordHelper;

typedef enum{
	LeftAlignment = 0,
	CenterAlignment,
	RightAlignment
}	TextAlignment;

typedef struct {
	UInt16				renamedCategories;	// bitfield of categories with a different name
	char 				categoryLabels[dmRecNumCategories][dmCategoryLength];
	UInt8 				categoryUniqIDs[dmRecNumCategories];
	UInt8				lastUniqID;			// Uniq IDs generated by the device are between
											// 0 - 127.  Those from the PC are 128 - 255.
	UInt8				padding;			// from the compiler word aligning things
	
	DateType			lastUpdated;
	WordFieldFlags		answerPageFields;
	WordFieldFlags		questionPageFields;
	UInt16 				rawWordCount;
	
	struct {
		UInt32 reserved1;
		UInt32 reserved2;
		UInt32 reserved3;
		UInt32 reserved4;
	} misc;
	
}	SugarAppInfoType020;

typedef struct {
	UInt16				renamedCategories;	// bitfield of categories with a different name
	char 				categoryLabels[dmRecNumCategories][dmCategoryLength];
	UInt8 				categoryUniqIDs[dmRecNumCategories];
	UInt8				lastUniqID;			// Uniq IDs generated by the device are between
											// 0 - 127.  Those from the PC are 128 - 255.
	UInt8				padding;			// from the compiler word aligning things
	
	DateType			lastUpdated;
	WordFieldFlags		answerPageFields;
	WordFieldFlags		questionPageFields;
	UInt16 				rawWordCount;
	
	UInt16				version;
	
	FontID				learnFieldFont[WordFieldsCount];
	FontID				learnFieldFont2[WordFieldsCount];
	
	TextAlignment		learnFieldAlignment[WordFieldsCount];	
	
	ReviewMode			reviewMode;
	UInt8				lefty;
	
}	SugarAppInfoType;


typedef UInt16 HeaderIndex;

//App info record
SugarAppInfoType*	GetAppInfoPtr(DmOpenRef dbP);
Err   				SugarDBAppInfoInit(DmOpenRef db);

UInt16 GetRawWordCount();
void SetRawWordCount(UInt16 newWordCount);
void IncrementRawWordCount();
void DecrementRawWordCount();

//Database operation
Boolean CreateWordDB(char* name);
Boolean RenameWordDB(char* name);
Boolean DeleteWordDB(UInt16 cardNo, LocalID dbID);
void 	ResetDatabase(DmOpenRef db);


//header record operation
Boolean	CreateHeaderRecord(DmOpenRef db, HeaderIndex headerIndex);
Boolean	ClearHeaderRecord(DmOpenRef db, HeaderIndex headerIndex);
UInt16 	GetHeaderItemNumber(DmOpenRef db, HeaderIndex headerIndex);
Boolean	GetHeaderItem(DmOpenRef db, HeaderIndex headerIndex, HeaderItem* ItemP, UInt16 index);
Boolean	AddHeaderItem(DmOpenRef db, HeaderIndex headerIndex, HeaderItem* ItemP);
Boolean	AddHeaderItemByDBIndex(DmOpenRef db, HeaderIndex headerIndex, UInt16 dbIndex);
Boolean ShuffleHeaderItem(DmOpenRef db, HeaderIndex headerIndex);
Boolean FindHeaderItemByID(DmOpenRef db, HeaderIndex headerIndex, UInt32 uniqueID, UInt16* indexP);
Boolean FindHeaderItemByDBIndex(DmOpenRef db, HeaderIndex headerIndex, UInt16 dbIndex, UInt16* indexP);
Boolean RemoveHeaderItem(DmOpenRef db, HeaderIndex headerIndex, UInt16 index);
Boolean RemoveHeaderItemByID(DmOpenRef db, HeaderIndex headerIndex, UInt32 uniqueID);
Boolean RemoveHeaderItemByDBIndex(DmOpenRef db, HeaderIndex headerIndex, UInt16 dbIndex);
Boolean MoveHeaderItem(DmOpenRef db, HeaderIndex headerIndex, UInt16 index);

//header record maintenance
void 	ValidateHeaderRecord(DmOpenRef db);
void 	InitHeaderBuffer(DmOpenRef db, HeaderIndex BufferIndex);
void 	RebuildLearningQueue(DmOpenRef db);
void 	RebuildTestingQueue(DmOpenRef db, Boolean forced);
void 	PushHeaderBuffer(DmOpenRef db, HeaderIndex bufferIndex, UInt16 dbIndex);


//word record operation
Err 	NewWordRecord(DmOpenRef db, WordRecordType* record, UInt16* index);
Err		GetWordRecord(DmOpenRef db, UInt16 index, WordRecordType* recordP, MemHandle *recordH);
void 	WordDBDeleteRecord(Boolean archive);
Err 	ChangeWordRecord(DmOpenRef dbP, UInt16 *index, WordRecordType* r, WordFieldFlags changedFields);

//high level record manipulation 
HeaderQueue 	GetQueue(DmOpenRef db, UInt16 index);
void 			SetQueue(DmOpenRef db, UInt16 index, HeaderQueue queue);
LearningStatus	GetLearningStatus(DmOpenRef db, UInt16 index);
void 			SetLearningStatus(DmOpenRef db, UInt16 index, LearningStatus ls);
TestingStatus	GetTestingStatus(DmOpenRef db, UInt16 index);
void			SetTestingStatus(DmOpenRef db, UInt16 index, TestingStatus ls);
MemorizingStatus GetMemorizingStatus(DmOpenRef db, UInt16 index);
void 			SetMemorizingStatus(DmOpenRef db, UInt16 index, MemorizingStatus memoStatus);

//misc function
Boolean WordRecordContainsData (WordRecordType* recordP);
UInt16 InstantLookupPosition(DmOpenRef db, Char* p);
void GetDBList();
void UnpackSuperMemoRecord(DmOpenRef db, UInt16 index, WordRecordType* record, MemHandle* recordH, char* cache);


extern WordRecordType DefaultNewWordRecord;

void UpdateOldVersionDatabase3(DmOpenRef db);

// Added by hytown
void ResetTestingStatus(DmOpenRef db);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲二区视频在线| 99国产欧美久久久精品| 欧美日韩成人综合在线一区二区 | 色偷偷一区二区三区| 一区二区不卡在线播放| 欧美一区二区三区免费| bt欧美亚洲午夜电影天堂| 一区二区三区欧美亚洲| 日韩视频免费观看高清在线视频| proumb性欧美在线观看| 日韩电影网1区2区| 亚洲另类在线视频| 亚洲欧美综合网| 26uuu亚洲| 欧美成人激情免费网| 色哟哟在线观看一区二区三区| 国产一区二区三区四区在线观看| 亚洲va韩国va欧美va精品| 国产蜜臀av在线一区二区三区| 91精品国产综合久久久蜜臀粉嫩| 91免费在线视频观看| 成人av手机在线观看| 国产在线视频一区二区三区| 丝袜美腿亚洲综合| 亚洲v日本v欧美v久久精品| 亚洲小说欧美激情另类| 亚洲乱码国产乱码精品精可以看 | 久久99精品国产麻豆婷婷| 日韩电影免费在线观看网站| 伊人一区二区三区| 天堂va蜜桃一区二区三区漫画版| 日韩美女精品在线| 亚洲综合色在线| 日本午夜精品视频在线观看| 青青草视频一区| 麻豆精品一区二区三区| 国产精品一区二区久久不卡| 国内精品免费在线观看| 成人动漫一区二区三区| 欧美性欧美巨大黑白大战| 欧美裸体bbwbbwbbw| 久久久精品天堂| 亚洲va国产天堂va久久en| 国产精品1区二区.| 欧美视频第二页| 欧美激情一区二区三区四区 | 欧美日本一区二区在线观看| 69av一区二区三区| 亚洲精品一二三四区| 琪琪久久久久日韩精品| 97精品电影院| 久久精品水蜜桃av综合天堂| 国产精品成人免费| 极品少妇一区二区| 欧美日韩一区二区三区在线看| 久久久精品综合| 青青草原综合久久大伊人精品| 一本大道久久a久久精二百| wwwwxxxxx欧美| 久久99久国产精品黄毛片色诱| 91美女片黄在线| 18成人在线观看| 北岛玲一区二区三区四区| 欧美一区二区免费观在线| 亚洲日本一区二区| 岛国av在线一区| 综合激情成人伊人| 色婷婷亚洲精品| 亚洲精品菠萝久久久久久久| 国产激情视频一区二区三区欧美| 日韩欧美国产一区二区三区| 日韩vs国产vs欧美| 欧美精品一级二级| 午夜视频在线观看一区二区三区| 91视视频在线观看入口直接观看www | 国产精品久久久久aaaa| 色婷婷久久99综合精品jk白丝 | 欧美日韩在线电影| 日本人妖一区二区| 2021国产精品久久精品| k8久久久一区二区三区| 亚洲国产日韩av| 久久久亚洲精品一区二区三区| 国产乱人伦偷精品视频免下载| 国产日韩高清在线| 欧美午夜精品一区二区蜜桃| 亚洲gay无套男同| 久久久激情视频| 欧美日韩国产综合久久 | 亚洲精品欧美激情| 日韩欧美一区二区三区在线| 粉嫩av一区二区三区在线播放| 亚洲免费伊人电影| 久久精品在线观看| 91精品在线免费观看| 97久久精品人人澡人人爽| 麻豆精品久久精品色综合| 亚洲男人的天堂在线aⅴ视频| 亚洲精品在线一区二区| 欧美美女黄视频| 色综合天天视频在线观看| 蜜桃久久精品一区二区| 一区二区三区丝袜| 亚洲女爱视频在线| 亚洲精品中文在线| 一区二区三区蜜桃| 亚洲一区二区av在线| 成人欧美一区二区三区| 国产精品久久久久毛片软件| 久久久久久影视| 久久久久久一二三区| 亚洲国产精品高清| 国产精品传媒在线| 一区二区在线观看视频 | 国产欧美一区二区精品秋霞影院 | kk眼镜猥琐国模调教系列一区二区| 久久草av在线| 成人性生交大片免费看中文| 国内精品视频一区二区三区八戒| 狠狠狠色丁香婷婷综合久久五月| 美女被吸乳得到大胸91| 国产一区二区三区免费观看| 国产美女精品在线| 91美女蜜桃在线| 日韩精品一区国产麻豆| 久久久久亚洲蜜桃| 一区二区三区在线免费播放| 亚洲国产精品人人做人人爽| 久久精品国产精品亚洲精品| 不卡视频免费播放| 欧美日韩国产色站一区二区三区| 4hu四虎永久在线影院成人| 26uuu久久天堂性欧美| 亚洲另类一区二区| 国产盗摄女厕一区二区三区| 欧美亚洲日本国产| 国产精品免费免费| 黄色小说综合网站| 欧美日韩免费一区二区三区 | 精品99一区二区| 午夜婷婷国产麻豆精品| 一本一道综合狠狠老| 精品精品国产高清a毛片牛牛| 亚洲综合色在线| 91国产免费观看| 国产欧美一区视频| 狠狠色丁香久久婷婷综合丁香| 3d成人动漫网站| 免费观看成人鲁鲁鲁鲁鲁视频| hitomi一区二区三区精品| 欧美韩日一区二区三区四区| 琪琪久久久久日韩精品| 欧美视频一二三区| 亚洲成人免费av| 91精品国产综合久久久蜜臀粉嫩| 洋洋成人永久网站入口| 欧美日韩精品综合在线| 日韩激情在线观看| 91精品国产综合久久香蕉麻豆| 日韩精品福利网| 亚洲精品一线二线三线无人区| 蜜臀av性久久久久蜜臀aⅴ四虎| 8v天堂国产在线一区二区| 青青青伊人色综合久久| 国产拍欧美日韩视频二区| 97精品国产露脸对白| 亚洲第一精品在线| 久久久久久97三级| 欧洲国内综合视频| 国产乱码字幕精品高清av| 亚洲人成伊人成综合网小说| 欧美日韩国产片| 成人app在线观看| 天天综合天天做天天综合| 国产亚洲成av人在线观看导航| 日本韩国精品在线| 国产综合久久久久久鬼色| 亚洲精品ww久久久久久p站| 日本一区二区不卡视频| 日韩小视频在线观看专区| 在线区一区二视频| 成人午夜激情在线| 久久国产精品露脸对白| 视频一区二区三区中文字幕| 亚洲视频一区二区免费在线观看| 久久亚洲影视婷婷| 日韩欧美一级二级| 91麻豆精品国产91久久久资源速度 | 91精品国产色综合久久ai换脸 | 一区二区三区免费看视频| 中文字幕欧美激情一区| 国产午夜精品一区二区三区嫩草| 欧美一区二区精品| 91精品久久久久久蜜臀| 在线不卡一区二区| 欧美变态tickling挠脚心| 欧美一区二区在线看| 日韩午夜中文字幕| 欧美精品一区二区三区四区 | 91丨porny丨在线|