Esempio n. 1
0
static void proc_rec_opt(Telnet telnet, int cmd, int option)
{
    const struct Opt *const *o;

    log_option(telnet, "server", cmd, option);
    for (o = opts; *o; o++) {
	if ((*o)->option == option && (*o)->ack == cmd) {
	    switch (telnet->opt_states[(*o)->index]) {
	      case REQUESTED:
		telnet->opt_states[(*o)->index] = ACTIVE;
		activate_option(telnet, *o);
		break;
	      case ACTIVE:
		break;
	      case INACTIVE:
		telnet->opt_states[(*o)->index] = ACTIVE;
		send_opt(telnet, (*o)->send, option);
		activate_option(telnet, *o);
		break;
	      case REALLY_INACTIVE:
		send_opt(telnet, (*o)->nsend, option);
		break;
	    }
	    return;
	} else if ((*o)->option == option && (*o)->nak == cmd) {
	    switch (telnet->opt_states[(*o)->index]) {
	      case REQUESTED:
		telnet->opt_states[(*o)->index] = INACTIVE;
		refused_option(telnet, *o);
		break;
	      case ACTIVE:
		telnet->opt_states[(*o)->index] = INACTIVE;
		send_opt(telnet, (*o)->nsend, option);
		option_side_effects(telnet, *o, 0);
		break;
	      case INACTIVE:
	      case REALLY_INACTIVE:
		break;
	    }
	    return;
	}
    }
    /*
     * If we reach here, the option was one we weren't prepared to
     * cope with. If the request was positive (WILL or DO), we send
     * a negative ack to indicate refusal. If the request was
     * negative (WONT / DONT), we must do nothing.
     */
    if (cmd == WILL || cmd == DO)
        send_opt(telnet, (cmd == WILL ? DONT : WONT), option);
}
Esempio n. 2
0
void configuration( void )
{
	dont_exit_configure=1;
	int cur_off=0,disp_off=0;
	int redraw=1;
	SYSCONF_Init();
	if (SYSCONF_GetLength("IPL.SADR") != SADR_LENGTH) { printf("IPL.SADR Length Incorrect. %d", SYSCONF_GetLength("IPL.SADR")); sleep(5); return;}
	int ret = SYSCONF_Get("IPL.SADR", sadr, SADR_LENGTH);
	if (ret < 0 )  { printf("SYSCONF_Get IPL.SADR %d", ret); sleep(5); return;}
	country = sadr[0];
	
	while(dont_exit_configure)
	{
		WPAD_ScanPads();
		PAD_ScanPads();
		u32 WPAD_Pressed;
		u32 WPAD1_Pressed = WPAD_ButtonsDown(0);
		u32 WPAD2_Pressed = WPAD_ButtonsDown(1);
		u32 WPAD3_Pressed = WPAD_ButtonsDown(2);
		u32 WPAD4_Pressed = WPAD_ButtonsDown(3);

		u32 PAD_Pressed;
		u32 PAD1_Pressed  = PAD_ButtonsDown(0);
		u32 PAD2_Pressed  = PAD_ButtonsDown(1);
		u32 PAD3_Pressed  = PAD_ButtonsDown(2);
		u32 PAD4_Pressed  = PAD_ButtonsDown(3);

		WPAD_Pressed	  = WPAD1_Pressed | WPAD2_Pressed | WPAD3_Pressed | WPAD4_Pressed;
		PAD_Pressed	  = PAD1_Pressed  | PAD2_Pressed  | PAD3_Pressed  | PAD4_Pressed ;

 		if((WPAD_Pressed & WPAD_BUTTON_A)	|| (PAD_Pressed & PAD_BUTTON_A))
			activate_option(cur_off);

 		if((WPAD_Pressed & WPAD_BUTTON_B) 	|| (PAD_Pressed & PAD_BUTTON_B))
			cur_off=EXIT_OFFSET;

 		if((WPAD_Pressed & WPAD_BUTTON_DOWN)	|| (PAD_Pressed & PAD_BUTTON_DOWN))
			cur_off++;

 		if((WPAD_Pressed & WPAD_BUTTON_UP)	|| (PAD_Pressed & PAD_BUTTON_UP))
			cur_off--;

 		if((WPAD_Pressed & WPAD_BUTTON_LEFT)	|| (PAD_Pressed & PAD_BUTTON_LEFT))
			decrease_option(cur_off);

 		if((WPAD_Pressed & WPAD_BUTTON_RIGHT)	|| (PAD_Pressed & PAD_BUTTON_RIGHT))
			increase_option(cur_off);

		if((WPAD_ANY_BUTTON(WPAD_Pressed)) || PAD_ANY_BUTTON(PAD_Pressed))
			redraw=1;

		if(cur_off>MENU_OPTIONS)	cur_off=0;
		if(cur_off<0)			cur_off=MENU_OPTIONS;

		if( redraw )
		{
			u8 *nickname=(u8*)memalign(32, 128);
			SYSCONF_GetNickName(nickname); 
			printf("\x1b[%d;0H  %s%s\n\n", CONFIG_MENU_H,	CONSOLE_NICKNAME[language_setting], nickname);
			free(nickname);

//			printf("%s:\n",					REGION_INFO[language_setting]);
			printf("  %s< %s >\n",				LANGUAGE[language_setting],		lang[SYSCONF_GetLanguage()]);
			printf("  %s< %s >\n",				WIIMU_LANGUAGE[language_setting],	lang[language_setting]);
			printf("  %s< %s >\n",				REGION[language_setting], 		region[SYSCONF_GetRegion()]);
			printf("  %s[ %s ]\n",				AREA[language_setting],			area[SYSCONF_GetArea()]);
			printf("  %s< %u >\n\n",			SHOP_AREA[language_setting],		country);

//			printf("%s:\n",					VIDEO_INFO[language_setting]);
			printf("  %s< %s >\n",				VIDEO_MODE[language_setting],		video[SYSCONF_GetVideo()]);
			printf("  %s< %s >\n",				EURRGB[language_setting],		SYSCONF_GetEuRGB60()==0?		ON_MESSAGE[language_setting] : OFF_MESSAGE[language_setting] );
			printf("  %s< %s >\n",				PROGRESSIVE[language_setting],		SYSCONF_GetProgressiveScan()==0?	ON_MESSAGE[language_setting] : OFF_MESSAGE[language_setting] );
			printf("  %s< %s >\n",				ASPECT_RATIO[language_setting],		SYSCONF_GetAspectRatio()==0?		"4:3"			       : "16:9" );
			printf("  %s< %s >\n\n",			SCREEN_SAVER[language_setting],		SYSCONF_GetScreenSaverMode()==0?	ON_MESSAGE[language_setting] : OFF_MESSAGE[language_setting] );
			
//			printf("%s:\n",					AUDIO_INFO[language_setting]);
			printf("  %s< %s >\n\n",			SOUND[language_setting],		sound[SYSCONF_GetSoundMode()]);

//			printf("%s:\n",					WIIMOTE_INFO[language_setting]);
			printf("  %s< %d >\n",				IR_SENSITIVITY[language_setting],	SYSCONF_GetIRSensitivity());
			printf("  %s< %s >\n",				SENSORBAR_POSITION[language_setting],	sensorbar[SYSCONF_GetSensorBarPosition()]);
			printf("  %s< %s >\n",				SPEAKER_VOLUME[language_setting],	speaker_volumes[raw_to_bar[SYSCONF_GetPadSpeakerVolume()]]);
			printf("  %s< %s >\n\n",			MOTOR_MODE[language_setting],		SYSCONF_GetPadMotorMode()==0?		ON_MESSAGE[language_setting] : OFF_MESSAGE[language_setting] );;
			
			printf("%s\n",					PARENTAL_INFO[language_setting]);
			s8 *pw=(s8*)memalign(32, 128);
			s8 *answer=(s8*)memalign(32, 128);
			if(SYSCONF_GetParentalPassword(pw)>=0) 
				printf("  %s%s\n",				PARENTAL_PASSWORD[language_setting], 	pw);
			else
				printf("  %s<Not Set>\n",			PARENTAL_PASSWORD[language_setting]);
			if(SYSCONF_GetParentalAnswer(answer)>=0)
				printf("  %s%s\n\n",				PARENTAL_ANSWER[language_setting], 	answer);
			else
				printf("  %s<Not Set>\n\n",			PARENTAL_ANSWER[language_setting]);
			free(pw);
			free(answer);
			printf("  %s\n",				SAVE[language_setting]);
			printf("  %s\n",				EXIT[language_setting]);
			
			disp_off=cur_off;
			if(cur_off>=REGION_INFO_OFFSET)		disp_off+=1;
			if(cur_off>=VIDEO_INFO_OFFSET)		disp_off+=1;
			if(cur_off>=AUDIO_INFO_OFFSET)		disp_off+=1;
			if(cur_off>=WIIMOTE_INFO_OFFSET)	disp_off+=1;
			if(cur_off>=PARENTAL_INFO_OFFSET)	disp_off+=2;
			if(cur_off>=QUIT_OFFSET)		disp_off+=1;
			printf("\x1b[%d;0H*", 			CONFIG_MENU_H+disp_off);
			redraw=0;
		}
		VIDEO_WaitVSync();
	}
	VIDEO_WaitVSync();
	return;
}