Exemple #1
0
//---------------------------------------------------------------------------
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");
}
Exemple #2
0
//---------------------------------------------------------------------------
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);
}
Exemple #6
0
//---------------------------------------------------------------------------
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);
}
Exemple #8
0
//---------------------------------------------------------------------------
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");
    }
}