Esempio n. 1
0
File: 1541.c Progetto: Godzil/EDL
int DISK_InitialiseMemory()
{
#if 1
	if (LoadRom(DiskRomLo,0x2000,"roms/1540-c000.325302-01.bin"))
		return 1;
	if (LoadRom(DiskRomHi,0x2000,"roms/1540-e000.325303-01.bin"))
		return 1;
#else
	if (LoadRom(combinedRom,0x4000,"roms/dos1541"))
		return 1;
	memcpy(DiskRomLo,combinedRom,0x2000);
	memcpy(DiskRomHi,combinedRom+0x2000,0x2000);
#endif
#if USE_DRW_IMAGE
	if (LoadRom(DiskData,252004,"disks/vicdemos3b.drw"))
		return 1;
#else
	if (LoadRom(DiskData,333744,"disks/party.g64"))
		return 1;
#endif

	if (curTrack<0)
	{
		MoveHead(1);			// Initialise DISK
	}

	return 0;
}
Esempio n. 2
0
void NaoMarkServiceDetection::FindMarkArround()
{
	_isAllowedToMove = false;
	MoveHead(-0.7f);
	Sleep((DWORD)50);
	if(_naoMarkDetected)
	{
		TurnToDetectedMark(-0.7f);
		return;
	}

	MoveHead(-1.5f);
	Sleep((DWORD)50);
	if(_naoMarkDetected)
	{
		TurnToDetectedMark(-1.5f);
		return;
	}


	MoveHead(0.7f);
	Sleep((DWORD)50);
	if(_naoMarkDetected)
	{
		TurnToDetectedMark(0.7f);
		return;
	}

	MoveHead(1.5f);
	Sleep((DWORD)50);
	if(_naoMarkDetected)
	{
		TurnToDetectedMark(1.5f);
		return;
	}


	MoveHead(0);
	_isAllowedToMove = true;
	Sleep((DWORD)100);
}
void* audioProcess(void* param)
{
    Handle<es::Context> root = System()->getRoot();
    gSoundOutput = root->lookup("device/soundOutput");

    Handle<es::CurrentThread> currentThread = System()->currentThread();

    monitorPlayState = System()->createMonitor();
    monitorPlaySize = System()->createMonitor();

    long len = 0;
    long offset;
    long n;
    for (;;)
    {
        monitorPlayState->lock();
        while (!playState.playing)
        {
            monitorPlayState->wait();
        }
        monitorPlayState->unlock();

        monitorPlaySize->lock();
        while (playState.size == 0)
        {
            monitorPlaySize->wait();
        }

        len = playState.size;
        monitorPlaySize->unlock();

        for (offset = 0; offset < len; offset += n)
        {
            Setup();
            n = gSoundOutput->write(playState.head, playState.played);
            if (n < 0)
            {
                break;
            }
            else if (n == 0)
            {
                continue;
            }

            MoveHead(n);
            synchronizedSignalSemaphoreWithIndex(playState.playSemaIndex);

            if (len <= offset + n)
            {
                break;
            }
        }
    }

    if (monitorPlayState)
    {
        monitorPlayState->release();
    }

    if (monitorPlaySize)
    {
        monitorPlaySize->release();
    }

    return 0;
}
Esempio n. 4
0
void NaoMarkServiceDetection::TurnToDetectedMark(float angle)
{
	motionProxy->moveTo(0,0,angle);
	MoveHead(0);
	_isAllowedToMove = true;
}