示例#1
0
void * threadDefileMessage(void *p)
{
	int i;
	struct timespec temps;
	temps.tv_sec = 0;
	temps.tv_nsec = TEXT_SPEED;

	pthread_cleanup_push(free_message, NULL);

	while (1)
	{
		pthread_mutex_lock(&mutexMessage);

		if (indiceCourant > tailleMessage)
			indiceCourant = 0;

		for (i = 0 ; i < 8 ; ++i)
		{
			DessineLettre(10, 11+i, message[indiceCourant+i]);
		}
		++indiceCourant;
		pthread_mutex_unlock(&mutexMessage);

		nanosleep(&temps, NULL);
	}

	pthread_cleanup_pop(1);
}
示例#2
0
void* threadDefileMessage(void*)
{
	int i,j;
	struct timespec temps;
	temps.tv_sec=0;
	temps.tv_nsec=400000000;
	while(1)
	{
		j=indiceCourant;
		for(i=11;i<=18;i++)
		{
			if(j>=tailleMessage)
			{
				DessineLettre(10,i,' ');
			}
			else
			{
				if((message[j]>='a' && message[j]<='z')||(message[j]>='A' && message[j]<='Z')||message[j]==' ')
				{
					DessineLettre(10,i,message[j]);
				}
				else
				{
					if(message[j]>=48 && message[j]<=57)
						{DessineChiffre(10,i,message[j]-48);}
					else
					{DessineLettre(10,i,' ');}
				}
			}
			j++;
		}
		nanosleep(&temps,NULL);
		if(indiceCourant==tailleMessage)
			indiceCourant=-1;
		indiceCourant++;
	}
}