コード例 #1
0
int waitAnswer(int sock, uint32_t *pValue)
{
  char str[128];

  waitFrame(sock, str, 128);
  sscanf(str,"%u", pValue);
  return 0;
}
コード例 #2
0
int remoteLCM(int sock, uint32_t n, uint32_t m, uint32_t *pResult)
{
  char str[32];

  sprintf(str,"lcm %u %u$",n,m);
  send(sock,str,strlen(str),0);
  waitFrame(sock, str, 32);
  sscanf(str, "%u", pResult);
  return 0;
}
コード例 #3
0
int waitMessage(int sock, PMESSAGE pMessage)
{
  char str[128], strMessage[16];

  if(waitFrame(sock, str, 128)==-1) return -1;
  sscanf(str,"%s%u%u",strMessage, &(pMessage->param1), &(pMessage->param2)); 
  if(strcmp(strMessage,"lcm")==0) pMessage->type=LCM;
  else pMessage->type=GCD;
  return 0;
}
コード例 #4
0
ファイル: vdx.cpp プロジェクト: jweinberg/scummvm
bool VDXPlayer::playFrameInternal() {
	byte currRes = 0x80;
	Common::ReadStream *vdxData = 0;
	while (currRes == 0x80) {
		currRes = _file->readByte();

		// Skip unknown data: 1 byte, ref Edward
		byte tmp = _file->readByte();

		uint32 compSize = _file->readUint32LE();
		uint8 lengthmask = _file->readByte();
		uint8 lengthbits = _file->readByte();

		if (_file->eos())
			break;

		debugC(5, kGroovieDebugVideo | kGroovieDebugUnknown | kGroovieDebugAll, "Groovie::VDX: Edward = 0x%04X", tmp);

		// Read the chunk data and decompress if needed
		if (compSize)
			vdxData = _file->readStream(compSize);

		if (lengthmask && lengthbits) {
			Common::ReadStream *decompData = new LzssReadStream(vdxData, lengthmask, lengthbits);
			delete vdxData;
			vdxData = decompData;
		}

		// Use the current chunk
		switch (currRes) {
			case 0x00:
				debugC(6, kGroovieDebugVideo | kGroovieDebugAll, "Groovie::VDX: Replay frame");
				break;
			case 0x20:
				debugC(5, kGroovieDebugVideo | kGroovieDebugAll, "Groovie::VDX: Still frame");
				getStill(vdxData);
				break;
			case 0x25:
				debugC(5, kGroovieDebugVideo | kGroovieDebugAll, "Groovie::VDX: Animation frame");
				getDelta(vdxData);
				break;
			case 0x80:
				debugC(5, kGroovieDebugVideo | kGroovieDebugAll, "Groovie::VDX: Sound resource");
				chunkSound(vdxData);
				break;
			default:
				error("Groovie::VDX: Invalid resource type: %d", currRes);
		}
		delete vdxData;
		vdxData = 0;
	}

	// Wait until the current frame can be shown

	if (!DebugMan.isDebugChannelEnabled(kGroovieDebugFast)) {
		waitFrame();
	}
	// TODO: Move it to a better place
	// Update the screen
	if (currRes == 0x25) {
		//if (_flagSeven) {
			//_vm->_graphicsMan->mergeFgAndBg();
		//}
		_vm->_graphicsMan->updateScreen(_bg);
	}

	// Report the end of the video if we reached the end of the file or if we
	// just wanted to play one frame.
	if (_file->eos() || _flagFirstFrame) {
		_origX = _origY = 0;
		return 1;
	} else {
		return 0;
	}
}