Beispiel #1
0
int
main(int argc, char** argv)
{
    bool isGrayscale = CGDisplayUsesForceToGray();
    // printf("isGrayscale = %d\n", isGrayscale);
    CGDisplayForceToGray(!isGrayscale);
    // printf("Grayscale is now: %d\n", CGDisplayUsesForceToGray());

    return 0;
}
Beispiel #2
0
int main (int argc, const char * argv[]) {
	CGError err;		
	CGGammaValue redMin, redMax, redGamma,
	greenMin, greenMax, greenGamma,
	blueMin, blueMax, blueGamma;
	
	printf("setting up connection on UDP port 4740\n");
	printf("server accepts 3 values of 0 to 127 that\n");
	printf("are applied to the screen.\n");
	
	// Current Gamma settings:
	err = CGGetDisplayTransferByFormula (0,
										 &redMin, &redMax, &redGamma,
										 &greenMin, &greenMax, &greenGamma,
										 &blueMin, &blueMax, &blueGamma);
	
	(void) signal(SIGINT, sigcatch);

	// Setup network:
	int port = 4740;
	sock = socket( AF_INET, SOCK_DGRAM, IPPROTO_UDP );
	if ( sock <= 0 ) {
		printf( "failed to create socket\n" );
		return false;
	}
	sockaddr_in address;
	memset(&address, 0, sizeof(address));		
	address.sin_family = AF_INET;
	address.sin_addr.s_addr = INADDR_ANY;
	address.sin_port = htons( (unsigned short) port );
	if ( bind( sock, (const struct sockaddr *)&address, sizeof(sockaddr_in) ) < 0 ) {
		printf( "failed to bind socket\n" );
		return false;
	}

	// just for the hell of it
	CGDisplayForceToGray(true);
	
	while ( true ) // wait for packet
	{
		sockaddr_in from;
		socklen_t fromLength = sizeof( from );		
		gammaFractions gammaPacket;
		// process received packet
		int rxbytes=recvfrom(sock,(char*)&gammaPacket, sizeof(gammaPacket),0,(const struct sockaddr*)&from,&fromLength);
		if ( rxbytes <= 0 )
			continue;
		
		//unsigned int from_address = ntohl( from.sin_addr.s_addr );
		//unsigned int from_port = ntohs( from.sin_port );

		printf("recieved packet, bytes: %d\n", rxbytes);
		printf("red: %x, green: %x, blue: %x\n", gammaPacket.red, gammaPacket.green, gammaPacket.blue);
		err = CGSetDisplayTransferByFormula (0,
											 redMin,   ((1.0/127)*gammaPacket.red  )*redMax,   redGamma,
											 greenMin, ((1.0/127)*gammaPacket.green)*greenMax, greenGamma,
											 blueMin,  ((1.0/127)*gammaPacket.blue )*blueMax,  blueGamma);		
	}

    return 0;
}
Beispiel #3
0
void sigcatch(int sig) {
	printf("You have pressed Ctrl-C , please press again to exit");
	if (sock != -1) close(sock);	
	CGDisplayForceToGray(false);
	(void) signal(SIGINT, SIG_DFL);
}