Esempio n. 1
0
//frees all frames
void CSpriteFile::FreeAllFrames()
{
	for(uint32 nCurrFrame = 0; nCurrFrame < GetNumFrames(); nCurrFrame++)
	{
		FreeFrame(nCurrFrame);
	}
}
Esempio n. 2
0
// RequestHandler receives requests from the Client.  Server should
// build and return "request responses" packets in this same thread.
//
//   pPacketIn  - data packet from Client
//   pPacketOut - empty packet, to be filled in and returned to the
//				  Client as the "request response".
//
int __cdecl RequestHandler(sPacket* pPacketIn, sPacket* pPacketOut, void* pUserData)
{
	int iHandled = 1;	// handled

    switch (pPacketIn->iMessage)
    {
    case NAT_PING:
        printf("[SampleServer] received ping from Client.\n");
        printf("[SampleServer] Client App Name : %s\n", pPacketIn->Data.Sender.szName);
        printf("[SampleServer] Client App Version : %d.%d.%d.%d\n", pPacketIn->Data.Sender.Version[0],
            pPacketIn->Data.Sender.Version[1],pPacketIn->Data.Sender.Version[2],pPacketIn->Data.Sender.Version[3]);
        printf("[SampleServer] Client App NatNet Version : %d.%d.%d.%d\n", pPacketIn->Data.Sender.NatNetVersion[0],
            pPacketIn->Data.Sender.NatNetVersion[1],pPacketIn->Data.Sender.NatNetVersion[2],pPacketIn->Data.Sender.NatNetVersion[3]);
        
        // build server info packet
        strcpy(pPacketOut->Data.Sender.szName, "SimpleServer");
        pPacketOut->Data.Sender.Version[0] = 2;
        pPacketOut->Data.Sender.Version[1] = 1;
        pPacketOut->iMessage = NAT_PINGRESPONSE;
        pPacketOut->nDataBytes = sizeof(sSender);
        iHandled = 1;
        break;

    case NAT_REQUEST_MODELDEF:
		printf("[SimpleServer] Received request for data descriptions.\n");
		theServer->PacketizeDataDescriptions(&descriptions, pPacketOut);
        break;

	case NAT_REQUEST_FRAMEOFDATA:
		{
		// note: Client does not typically poll for data, but we accomodate it here anyway
		// note: need to return response on same thread as caller
		printf("[SimpleServer] Received request for frame of data.\n");
		sFrameOfMocapData frame;
		BuildFrame(g_lCurrentFrame, &descriptions, &frame);
		theServer->PacketizeFrameOfMocapData(&frame, pPacketOut);
		FreeFrame(&frame);
		}
        break;

    case NAT_REQUEST:
        printf("[SampleServer] Received request from Client: %s\n", pPacketIn->Data.szData);
        pPacketOut->iMessage = NAT_UNRECOGNIZED_REQUEST;
        if (stricmp(pPacketIn->Data.szData, "TestRequest") == 0)
        {
            pPacketOut->iMessage = NAT_RESPONSE;
            strcpy(pPacketOut->Data.szData, "TestResponse");
            pPacketOut->nDataBytes = ((int)strlen(pPacketOut->Data.szData)) + 1;
        }
        break;

    default:
        pPacketOut->iMessage = NAT_UNRECOGNIZED_REQUEST;
        pPacketOut->nDataBytes = 0;
		iHandled = 0;
        break;
    }

	return iHandled; // 0 = not handled, 1 = handled;
}
Esempio n. 3
0
/*===========================================================================*
 *
 * Frame_Exit
 *
 *	frees the memory associated with frames
 *
 * RETURNS:	nothing
 *
 * SIDE EFFECTS:    frameMemory
 *
 *===========================================================================*/
void
Frame_Exit()
{
    register int index;

    for ( index = 0; index < 3; index++ ) {
	FreeFrame(frameMemory[index]);
    }
}
bool CHolly_Theora_Video::End()
{
	ProcessFrame( true );

	th_encode_free( m_Encoder );
	m_Encoder = NULL;

	FreeFrame();

	return true;
}
Esempio n. 5
0
// PlayingThread_Func streams data at ~60hz 
DWORD WINAPI PlayingThread_Func(void * empty)
{
    while (1)
    {
        sFrameOfMocapData frame;
        BuildFrame(g_lCurrentFrame, &descriptions, &frame);
        SendFrame(&frame);
        FreeFrame(&frame);
        printf("Sent Frame %d", g_lCurrentFrame);
        g_lCurrentFrame++;
        HiResSleep(10);
    }

    return ErrorCode_OK;
}
Esempio n. 6
0
//sets a specific frame name
bool CSpriteFile::SetFrame(uint32 nFrame, const char* pszName)
{
	assert(nFrame < GetNumFrames());

	FreeFrame(nFrame);

	m_ppszFrames[nFrame] = new char [strlen(pszName) + 1];

	if(!m_ppszFrames[nFrame])
		return false;

	strcpy(m_ppszFrames[nFrame], pszName);

	return true;
}
void CHolly_Theora_Video::SetupFrame()
{
	FreeFrame();

	unsigned int iPixelSize = sizeof(unsigned char);

	for ( int i=0; i<3; i++ )
	{
		m_Frame[i].width	= Width();
		m_Frame[i].height	= Height();

		if ( i > 0 )
		{
			m_Frame[i].width /= 2;
			m_Frame[i].height /= 2;
		}

		m_Frame[i].stride	= m_Frame[i].width * iPixelSize;
		m_Frame[i].data		= (unsigned char*)malloc( m_Frame[i].width * m_Frame[i].height * iPixelSize );
	}
}
Esempio n. 8
0
int _tmain(int argc, _TCHAR* argv[])
{
    // Create a NatNet server
    int iConnectionType = ConnectionType_Multicast;
    //int iConnectionType = ConnectionType_Unicast;
    int iResult = CreateServer(iConnectionType);
    if(iResult != ErrorCode_OK)
    {
        printf("Error initializing server.  See log for details.  Exiting");
        return 1;
    }

    // Create a MarkerSet description
    BuildDescription(&descriptions);

    // OK! Ready to stream data.  Listen for request from clients (RequestHandler())
	printf("\n\nCommands:\nn\tnext frame\ns\tstream frames\nr\treset server\nq\tquit\n\r\tmulticast\nu\tunicast\n\n");
	bool bExit = false;
	while(int c =_getch())
	{
		switch(c)
		{
			case 'n':							// next frame
                {
				sFrameOfMocapData frame;
				BuildFrame(g_lCurrentFrame++, &descriptions, &frame);
				SendFrame(&frame);
				FreeFrame(&frame);
                }
				break;
			case 'q':                           // quit
				bExit = true;		
				break;
            case 's':							// play continuously
                g_lCurrentFrame = 0;
                if(g_bPlaying)
                    StopPlayingThread();
                else
                    StartPlayingThread();
                break;
            case 'r':	                        // reset server
                resetServer();
                break;
            case 'm':	                        // change to multicast
                iResult = CreateServer(ConnectionType_Multicast);
                if(iResult == ErrorCode_OK)
                    printf("Server connection type changed to Multicast.\n\n");
                else
                    printf("Error changing server connection type to Multicast.\n\n");
                break;
            case 'u':	                        // change to unicast
                iResult = CreateServer(ConnectionType_Unicast);
                if(iResult == ErrorCode_OK)
                    printf("Server connection type changed to Unicast.\n\n");
                else
                    printf("Error changing server connection type to Unicast.\n\n");
                break;

			default:
				break;
		}

		if(bExit)
		{
			theServer->Uninitialize();
			FreeDescription(&descriptions);
			break;
		}
	}

	return ErrorCode_OK;
}
CHolly_Theora_Video::~CHolly_Theora_Video()
{
	FreeFrame();
}