void ipod_init_volume_control()
{
	ipod_init_sound();
	ipod_init_input();
	ipod_init_backlight();
	
	int input, exit;
	exit = 0;
	while (exit != 1) {
		input = ipod_get_keypress();
		if (!KEYSTATE(input)) { // Pressed
			input = KEYCODE(input);
			switch (input) {
				case SCROLL_R:
					if (SCROLL_MOD(SCROLL_MOD_NUM)) {
						ipod_volume++;
						if (ipod_volume > 70)
							ipod_volume = 70; // To be safe - 70 is VERY loud
						ipod_update_volume();
					}
					break;
				case KEY_ACTION:
					ipod_toggle_backlight();
					break;
				case SCROLL_L:
					if (SCROLL_MOD(SCROLL_MOD_NUM)) {
						ipod_volume--;
						if (ipod_volume < 0)
							ipod_volume = 0; // Negative volume DNE!
						ipod_update_volume();
					}
					break;
				case KEY_MENU:
					exit = 1;
					break;			
				default:
					break;		
			}
		}
	}
	printf("Exiting...\n");
	ipod_exit_sound();
	ipod_exit_input();
}
Exemple #2
0
UINT mouseEvent(UINT p_event, bool status, LPARAM lParam)
{
	UINT ret = 0;
#define KEYSTATE(a) ((GetKeyState(VK_ ## a) & (1<<15)) != 0)
#define MOUSE_OPTION(a,b) ((g_mouse_options[MOUSE_ACT_ ## a].mod & MOD_ ## b) != 0)

	if( g_mouse_options[MOUSE_ACT_DRAG].btn == p_event )
	{
		if( ((!movingInProgress == status) &&
			(KEYSTATE(LMENU) == MOUSE_OPTION(DRAG, ALT)) && 
			(KEYSTATE(LCONTROL) == MOUSE_OPTION(DRAG, CONTROL)) && 
			(KEYSTATE(LSHIFT) == MOUSE_OPTION(DRAG, SHIFT)) && 
			(KEYSTATE(LWIN) == MOUSE_OPTION(DRAG, WIN)))
			|| (movingInProgress && !status))
		{
			if( MOUSE_OPTION(DRAG, ALT) || MOUSE_OPTION(DRAG, WIN) )
			{
				keybd_event( VK_RSHIFT, 0x36, KEYEVENTF_EXTENDEDKEY | 0, 0 );
				keybd_event( VK_RSHIFT, 0x36, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0 );
			}

			if( status )
			{
				if( drag_activation(lParam) )
					ret = 1;
			}
			else
			{
				movingInProgress = false;
				ret = 1;
			}
		}
	}

	if( g_mouse_options[MOUSE_ACT_RESIZE].btn == p_event) 
	{
		if( ((!resizeInProgress && status) &&
			(KEYSTATE(LMENU) == MOUSE_OPTION(RESIZE, ALT)) && 
			(KEYSTATE(LCONTROL) == MOUSE_OPTION(RESIZE, CONTROL)) && 
			(KEYSTATE(LSHIFT) == MOUSE_OPTION(RESIZE, SHIFT)) && 
			(KEYSTATE(LWIN) == MOUSE_OPTION(RESIZE, WIN)))
			|| (resizeInProgress && !status))
		{
			if( MOUSE_OPTION(RESIZE, ALT) || MOUSE_OPTION(RESIZE, WIN) )
			{
				keybd_event( VK_RSHIFT, 0x36, KEYEVENTF_EXTENDEDKEY | 0, 0 );
				keybd_event( VK_RSHIFT, 0x36, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0 );
			}

			if( status )
			{
				if( resize_activation(lParam) )
					ret = 1;
			}
			else
			{
				resizeInProgress = false;
				ret = 1;
			}
		}
	}

	if( g_mouse_options[MOUSE_ACT_SWITCH].btn == p_event )
	{
		if( (KEYSTATE(LMENU) == MOUSE_OPTION(SWITCH, ALT)) && 
			(KEYSTATE(LCONTROL) == MOUSE_OPTION(SWITCH, CONTROL)) && 
			(KEYSTATE(LSHIFT) == MOUSE_OPTION(SWITCH, SHIFT)) && 
			(KEYSTATE(LWIN) == MOUSE_OPTION(SWITCH, WIN)))
		{
			if( MOUSE_OPTION(SWITCH, ALT) )
				keybd_event(VK_LMENU, 0, KEYEVENTF_KEYUP, 0);
			if( MOUSE_OPTION(SWITCH, CONTROL) )
				keybd_event(VK_LCONTROL, 0, KEYEVENTF_KEYUP, 0);
			if( MOUSE_OPTION(SWITCH, SHIFT) )
				keybd_event(VK_LSHIFT, 0, KEYEVENTF_KEYUP, 0);

			change_current_window(lParam);
			ret = 1;
		}
	}

#undef KEYSTATE
#undef MOUSE_OPTION

	if( p_event == MOUSE_BTN_RIGHT )
	{
		MOUSEHOOKSTRUCT ms = *((MOUSEHOOKSTRUCT *)lParam);
		HWND destHwnd = WindowFromPoint(ms.pt);
		DWORD dw;

		dw = SendMessage(destHwnd, WM_NCHITTEST, 0, MAKELPARAM((WORD)ms.pt.x, (WORD)ms.pt.y));
		if (dw == HTMINBUTTON)
		{
			if( status )
			{
				mouseHwndMinBtnPointed = destHwnd;
				ret = 1;
			}
			else
			{
				if( destHwnd == mouseHwndMinBtnPointed )
				{
					traynizeWindow(destHwnd);
					//iconizeWindow(destHwnd);
					ret = 1;
				}
				else
				{
					destHwnd = NULL;
				}
			}
		}
		else if( mouseHwndMinBtnPointed != NULL )
		{
			mouseHwndMinBtnPointed = NULL;
		}
	}

	return ret;
}