//--------------------------------------------------------------------------- void File_Png::Data_Parse() { if (!Signature_Parsed) { Signature(); return; } Element_Size-=4; //For CRC #define CASE_INFO(_NAME, _DETAIL) \ case Elements::_NAME : Element_Info1(_DETAIL); _NAME(); break; //Parsing switch (Element_Code) { CASE_INFO(IDAT, "Image data"); CASE_INFO(IEND, "Image trailer"); CASE_INFO(IHDR, "Image header"); CASE_INFO(PLTE, "Palette table"); default : Skip_XX(Element_Size, "Unknown"); } Element_Size+=4; //For CRC Skip_B4( "CRC"); }
//--------------------------------------------------------------------------- void File_Flac::Data_Parse() { #define CASE_INFO(_NAME) \ case Flac::_NAME : Element_Info1(#_NAME); _NAME(); break; //Parsing switch ((int16u)Element_Code) { CASE_INFO(STREAMINFO); CASE_INFO(PADDING); CASE_INFO(APPLICATION); CASE_INFO(SEEKTABLE); CASE_INFO(VORBIS_COMMENT); CASE_INFO(CUESHEET); CASE_INFO(PICTURE); default : Skip_XX(Element_Size, "Data"); } if (Last_metadata_block) { if (!IsSub) Fill(Stream_Audio, 0, Audio_StreamSize, File_Size-(File_Offset+Buffer_Offset+Element_Size)); //No more need data File__Tags_Helper::Finish("Flac"); } }
//--------------------------------------------------------------------------- void File_Lyrics3v2::Data_Parse() { #define CASE_INFO(_NAME, _DETAIL) \ case Elements::_NAME : Element_Info1(_DETAIL); _NAME(); break; //Parsing switch (Element_Code) { CASE_INFO(AUT, "Lyrics Author Name"); CASE_INFO(CRC, "CRC"); CASE_INFO(EAL, "Extended Album name"); CASE_INFO(EAR, "Extended Artist name"); CASE_INFO(ETT, "Extended Track Title"); CASE_INFO(IMG, "Image location"); CASE_INFO(IND, "Indications field"); CASE_INFO(INF, "Additional information"); CASE_INFO(LYR, "Lyrics"); case (int64u)-1 : Footer(); break; default : Skip_XX(Element_Size, "Data"); } }
//--------------------------------------------------------------------------- void File_MpcSv8::Data_Parse() { #define CASE_INFO(_NAME, _DETAIL) \ case Elements::_NAME : Element_Info(_DETAIL); _NAME(); break; //Parsing switch (Element_Code) { CASE_INFO(AP, "Audio Packet"); CASE_INFO(CT, "Chapter-Tag"); CASE_INFO(EI, "Encoder Info"); CASE_INFO(RG, "Replay Gain"); CASE_INFO(SE, "Stream End"); CASE_INFO(SH, "Stream Header"); CASE_INFO(SO, "Seek Table Offset"); CASE_INFO(ST, "Seek Table"); default : Skip_XX(Element_Size, "Data"); } }
TEST_F(KTestPlayerLGStateConver, TestOffLineToLgPermit) { BOOL bResult = false; int nRetCode = false; CASE_INFO("²âÊÔrsOfflineµ½rsLG_WaitForPermit״̬ת»»", "Íæ¼Ò״̬Ϊ rsOffline"); m_BaseData.BaseInfo.CurrentPos.dwMapID = m_pGameServer->m_CreatedMapCopy[0].dwMapID; m_BaseData.BaseInfo.CurrentPos.nMapCopyIndex = m_pGameServer->m_CreatedMapCopy[0].nMapCopy; nRetCode = GATEWAY->DoGameLoginRequest(m_TestRoleInfo.szAccount, m_TestRoleInfo.dwPlayerID, m_BaseData); ASSERT_TRUE(nRetCode); nRetCode = m_pGameServer->CheckPlayerLoginRequset(m_TestRoleInfo.dwPlayerID, m_dwMapIDInGC, m_nCreatedMapCopyID); ASSERT_TRUE(nRetCode); nRetCode = ComparePlayerState(m_TestRoleInfo.dwPlayerID, rsLG_WaitForPermit); ASSERT_TRUE(nRetCode); }
//--------------------------------------------------------------------------- void File_Tak::Data_Parse() { #define CASE_INFO(_NAME) \ case Elements::_NAME : Element_Info(#_NAME); _NAME(); break; //Parsing switch (Element_Code) { CASE_INFO(ENDOFMETADATA); CASE_INFO(STREAMINFO); CASE_INFO(SEEKTABLE); CASE_INFO(WAVEMETADATA); CASE_INFO(ENCODERINFO); CASE_INFO(PADDING); default : Skip_XX(Element_Size, "Data"); } }
TEST_F(KTestPlayerLGStateConver, TestOfflineToLoginCreatingMap) { BOOL bResult = false; int nRetCode = false; CASE_INFO("²âÊÔrsOfflineµÇ¼createingmap", "Íæ¼Ò״̬Ϊ rsOffline"); KGameServerSimulator GS; SCOPEPROTOCOL(&GS, r2s_handshake_respond); SCOPEPROTOCOL(&GS, r2s_create_map_notify); ASSERT_TRUE(GS.Connect("127.0.0.1", GCSETTING->m_nGameServerPort, GCSETTING->m_nGatewayPingCycle)); GS.DoHandshakeRequest(); KGThread_Sleep(500); std::list<IKG_Buffer*>& List = GS.GetProtocolData(r2s_create_map_notify); ASSERT_TRUE(!List.empty()); std::list<IKG_Buffer*>::iterator Iter = List.begin(); R2S_CREATE_MAP_NOTIFY* p = (R2S_CREATE_MAP_NOTIFY*)((*Iter)->GetData()); m_BaseData.BaseInfo.CurrentPos.dwMapID = p->dwMapID; m_BaseData.BaseInfo.CurrentPos.nMapCopyIndex = p->nMapCopyIndex; nRetCode = GATEWAY->DoGameLoginRequest(m_TestRoleInfo.szAccount, m_TestRoleInfo.dwPlayerID, m_BaseData); ASSERT_TRUE(nRetCode); R2G_GAME_LOGIN_RESPOND GameLoginRespond; nRetCode = GATEWAY->CheckGameLoginRespond(&GameLoginRespond); ASSERT_TRUE(nRetCode); ASSERT_TRUE(GameLoginRespond.byCode == (BYTE)eGameLoginQueueWait); ASSERT_TRUE(GameLoginRespond.dwRoleID == m_TestRoleInfo.dwPlayerID); nRetCode = ComparePlayerState(m_TestRoleInfo.dwPlayerID, rsOffline); ASSERT_TRUE(nRetCode); }
//--------------------------------------------------------------------------- void File_Jpeg::Data_Parse() { #define CASE_INFO(_NAME, _DETAIL) \ case Elements::_NAME : Element_Info1(#_NAME); Element_Info1(_DETAIL); _NAME(); break; //Parsing if (SOS_SOD_Parsed) { Skip_XX(Element_Size, "Data"); SOS_SOD_Parsed=false; return; } switch (Element_Code) { CASE_INFO(TEM , "TEM"); CASE_INFO(SOC , "Start of codestream"); //JPEG 2000 CASE_INFO(SIZ , "Image and tile size"); //JPEG 2000 CASE_INFO(COD , "Coding style default"); //JPEG 2000 CASE_INFO(COC , "Coding style component"); //JPEG 2000 CASE_INFO(TLM , "Tile-part lengths, main header"); //JPEG 2000 CASE_INFO(PLM , "Packet length, main header"); //JPEG 2000 CASE_INFO(PLT , "Packet length, tile-part header"); //JPEG 2000 CASE_INFO(QCD , "Quantization default"); //JPEG 2000 CASE_INFO(QCC , "Quantization component "); //JPEG 2000 CASE_INFO(RGN , "Region-of-interest"); //JPEG 2000 CASE_INFO(PPM , "Packed packet headers, main header"); //JPEG 2000 CASE_INFO(PPT , "Packed packet headers, tile-part header"); //JPEG 2000 CASE_INFO(CME , "Comment and extension"); //JPEG 2000 CASE_INFO(SOT , "Start of tile-part"); //JPEG 2000 CASE_INFO(SOP , "Start of packet"); //JPEG 2000 CASE_INFO(EPH , "End of packet header"); //JPEG 2000 CASE_INFO(SOD , "Start of data"); //JPEG 2000 CASE_INFO(S0F0, "Baseline DCT (Huffman)"); CASE_INFO(S0F1, "Extended sequential DCT (Huffman)"); CASE_INFO(S0F2, "Progressive DCT (Huffman)"); CASE_INFO(S0F3, "Lossless (sequential) (Huffman)"); CASE_INFO(DHT , "Define Huffman Tables"); CASE_INFO(S0F5, "Differential sequential DCT (Huffman)"); CASE_INFO(S0F6, "Differential progressive DCT (Huffman)"); CASE_INFO(S0F7, "Differential lossless (sequential) (Huffman)"); CASE_INFO(JPG , "Reserved for JPEG extensions"); CASE_INFO(S0F9, "Extended sequential DCT (Arithmetic)"); CASE_INFO(S0FA, "Progressive DCT (Arithmetic)"); CASE_INFO(S0FB, "Lossless (sequential) (Arithmetic)"); CASE_INFO(DAC , "Define Arithmetic Coding"); CASE_INFO(S0FD, "Differential sequential DCT (Arithmetic)"); CASE_INFO(S0FE, "Differential progressive DCT (Arithmetic)"); CASE_INFO(S0FF, "Differential lossless (sequential) (Arithmetic)"); CASE_INFO(RST0, "Restart Interval Termination 0"); CASE_INFO(RST1, "Restart Interval Termination 1"); CASE_INFO(RST2, "Restart Interval Termination 2"); CASE_INFO(RST3, "Restart Interval Termination 3"); CASE_INFO(RST4, "Restart Interval Termination 4"); CASE_INFO(RST5, "Restart Interval Termination 5"); CASE_INFO(RST6, "Restart Interval Termination 6"); CASE_INFO(RST7, "Restart Interval Termination 7"); CASE_INFO(SOI , "Start Of Image"); CASE_INFO(EOI , "End Of Image"); //Is EOC (End of codestream) in JPEG 2000 CASE_INFO(SOS , "Start Of Scan"); CASE_INFO(DQT , "Define Quantization Tables"); CASE_INFO(DNL , "Define Number of Lines"); CASE_INFO(DRI , "Define Restart Interval"); CASE_INFO(DHP , "Define Hierarchical Progression"); CASE_INFO(EXP , "Expand Reference Components"); CASE_INFO(APP0, "Application-specific marker 0"); CASE_INFO(APP1, "Application-specific marker 1"); CASE_INFO(APP2, "Application-specific marker 2"); CASE_INFO(APP3, "Application-specific marker 3"); CASE_INFO(APP4, "Application-specific marker 4"); CASE_INFO(APP5, "Application-specific marker 5"); CASE_INFO(APP6, "Application-specific marker 6"); CASE_INFO(APP7, "Application-specific marker 7"); CASE_INFO(APP8, "Application-specific marker 8"); CASE_INFO(APP9, "Application-specific marker 9"); CASE_INFO(APPA, "Application-specific marker 10"); CASE_INFO(APPB, "Application-specific marker 11"); CASE_INFO(APPC, "Application-specific marker 12"); CASE_INFO(APPD, "Application-specific marker 13"); CASE_INFO(APPE, "Application-specific marker 14"); CASE_INFO(APPF, "Application-specific marker 15"); CASE_INFO(JPG0, "JPG"); CASE_INFO(JPG1, "JPG"); CASE_INFO(JPG2, "JPG"); CASE_INFO(JPG3, "JPG"); CASE_INFO(JPG4, "JPG"); CASE_INFO(JPG5, "JPG"); CASE_INFO(JPG6, "JPG"); CASE_INFO(JPG7, "JPG"); CASE_INFO(JPG8, "JPG"); CASE_INFO(JPG9, "JPG"); CASE_INFO(JPGA, "JPG"); CASE_INFO(JPGB, "JPG"); CASE_INFO(JPGC, "JPG"); CASE_INFO(JPGD, "JPG"); CASE_INFO(COM , "Comment"); default : Element_Info1("Reserved"); Skip_XX(Element_Size, "Data"); } }