亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
欧美一区二区三区视频免费 | 欧美激情一区二区| 午夜av区久久| 成人在线综合网站| 国产女人水真多18毛片18精品视频 | 久久这里只有精品6| 人人精品人人爱| 一本久久综合亚洲鲁鲁五月天| 91精品国产全国免费观看| 亚洲精品国产a| av电影在线观看不卡| 久久久久99精品一区| 美女国产一区二区| 日韩小视频在线观看专区| 香蕉加勒比综合久久| 欧美少妇xxx| 亚洲一区二区三区在线看| 97超碰欧美中文字幕| 国产日本欧洲亚洲| 国产一区二区三区电影在线观看| 久久久久久久免费视频了| 国产成人精品一区二| 国产精品久久久久久久久果冻传媒 | 日韩欧美精品在线| yourporn久久国产精品| 亚洲综合在线观看视频| 久久精品欧美一区二区三区不卡| 日韩视频123| 91美女片黄在线| 国产99久久久国产精品潘金网站| 午夜精品久久久久久久99水蜜桃| 中文字幕中文字幕在线一区| 欧美大片日本大片免费观看| 色欧美日韩亚洲| 成人午夜在线视频| 极品少妇一区二区| 日韩电影在线一区| 亚洲成人在线免费| 亚洲综合丁香婷婷六月香| 日本一区二区在线不卡| 日韩激情一二三区| 亚洲精品伦理在线| 日韩欧美一二三四区| 99久久国产综合精品女不卡| 精品一区二区三区欧美| 日本三级亚洲精品| 91麻豆高清视频| 极品美女销魂一区二区三区免费| 欧美在线免费视屏| 蜜臀av国产精品久久久久| 久久精品亚洲国产奇米99| 91麻豆文化传媒在线观看| 亚洲gay无套男同| 久久亚洲精品国产精品紫薇| www.在线成人| 日韩成人精品视频| 国产精品免费人成网站| 欧美日韩美少妇| 国产成人精品1024| 午夜欧美在线一二页| 久久精品人人做人人爽97| 风间由美一区二区av101| 成人永久免费视频| 成人在线视频一区| 97国产一区二区| 在线视频你懂得一区| 日韩一级高清毛片| 久久婷婷一区二区三区| 国产精品网站在线播放| 亚洲人吸女人奶水| 午夜精品久久一牛影视| 久久精品国产久精国产爱| 激情成人综合网| 在线观看一区日韩| av高清不卡在线| 91丨porny丨首页| 91小视频在线免费看| 色综合久久久久网| 欧美日韩国产首页| 久久婷婷综合激情| 亚洲精品中文字幕在线观看| 久久精品亚洲国产奇米99| 91黄色免费看| 日韩欧美中文一区| 综合久久国产九一剧情麻豆| 国产suv精品一区二区三区| 日韩成人精品在线| 精品国产一区二区精华| 欧美视频一区二区三区在线观看| 国产一区二区不卡| 日韩一区欧美二区| 国产精品三级av在线播放| 欧美电视剧在线观看完整版| 91浏览器在线视频| 国产91在线观看丝袜| 日本欧美一区二区三区乱码 | 91麻豆文化传媒在线观看| 青青草视频一区| 亚洲第一成年网| 国产精品网友自拍| 日韩女优视频免费观看| 日本乱码高清不卡字幕| 成人av一区二区三区| 日本美女一区二区| 亚洲成人福利片| 亚洲视频在线观看一区| 国产视频一区在线播放| 日韩一区二区三区视频在线观看| 欧美日韩一区二区在线观看视频 | 美女高潮久久久| 亚洲九九爱视频| 亚洲人成精品久久久久久 | 日韩精品一区二区三区swag| 欧美区在线观看| 92精品国产成人观看免费| 成人激情黄色小说| 黄色精品一二区| 蜜桃久久精品一区二区| 亚洲午夜精品17c| 亚洲一区在线观看视频| 亚洲欧洲三级电影| 中文字幕第一区二区| 久久久久久免费网| 久久午夜电影网| 日韩视频一区二区三区在线播放| 欧美一区日本一区韩国一区| 欧美性猛片xxxx免费看久爱| 在线观看国产一区二区| 91同城在线观看| 91女神在线视频| 97精品电影院| 色88888久久久久久影院按摩 | 国产91精品一区二区麻豆网站| 国精产品一区一区三区mba桃花| 日韩电影免费在线看| 蜜桃一区二区三区四区| 青青草视频一区| 极品销魂美女一区二区三区| 免费观看成人鲁鲁鲁鲁鲁视频| 美腿丝袜一区二区三区| 蜜臀久久99精品久久久久宅男| 久久99蜜桃精品| 免费国产亚洲视频| 国产一区二区久久| 成人免费视频播放| av中文字幕在线不卡| 色丁香久综合在线久综合在线观看| 91日韩一区二区三区| 欧美无砖砖区免费| 欧美日韩一区二区三区不卡| 欧美精品v日韩精品v韩国精品v| 欧美丰满少妇xxxbbb| 欧美不卡一区二区| 2024国产精品| 国产精品久久久久一区二区三区| 国产精品午夜电影| 亚洲精品免费在线播放| 亚洲男女毛片无遮挡| 精品三级av在线| 99精品欧美一区二区三区综合在线| 自拍视频在线观看一区二区| 欧美日韩亚洲综合一区| 美国毛片一区二区三区| 中文成人av在线| 欧美精品九九99久久| 粉嫩av一区二区三区在线播放 | 激情伊人五月天久久综合| 久久色.com| 欧美视频中文一区二区三区在线观看| 精品午夜久久福利影院| 成人免费在线视频观看| 日本道免费精品一区二区三区| 日韩经典中文字幕一区| 亚洲日本青草视频在线怡红院| 欧美一级精品大片| 日韩精品一区二区三区四区| 26uuu成人网一区二区三区| 成人av免费在线播放| 亚洲日本在线天堂| 欧美人伦禁忌dvd放荡欲情| 国产精品一二三区| 亚洲女女做受ⅹxx高潮| 亚洲日本一区二区| 日韩av一级电影| 国产不卡在线播放| 日韩电影在线免费看| 狠狠色丁香久久婷婷综合丁香| 国产精品亚洲综合一区在线观看| 在线看一区二区| 日韩欧美aaaaaa| 亚洲欧美色综合| 日韩激情一区二区| 成人动漫中文字幕| 欧美三级电影一区| 国产日本一区二区| 夜色激情一区二区| 国产成人免费视频精品含羞草妖精| 成人a免费在线看| 日韩欧美国产精品| 欧美国产精品一区二区三区|