Пример #1
0
void menu_mplayer(ULONG menucode)
{

	printf("menu num %d\n", ITEMNUM(menucode));

	switch (ITEMNUM(menucode))
	{
		case ID_load_file: 
			cmd_load_file(); 
			break;
		case ID_open_dvd:  
			cmd_open_dvd();
			break;
		case ID_open_dvdnav:  
			cmd_open_dvdnav();
			break;
		case ID_open_vcd:
			cmd_open_vcd();
			break;
		case ID_open_network:
			cmd_open_network();
			break;
		case ID_about:
			ShowAbout();
			break;
		case ID_quit: 
			put_command0(MP_CMD_QUIT);
			break;
	}
}
Пример #2
0
void menu_play(ULONG menucode)
{
	switch (ITEMNUM(menucode))
	{
		case ID_play:
			cmd_play();
			break;
/*
		case ID_stop:
			cmd_stop();
			break;
*/
		case ID_loop:  
			cmd_loop();
			break;

		case ID_prev:
			prevfilm();
			break;

		case ID_next:
			nextfilm();
			break;
	}
}
Пример #3
0
//arg1 整形数组
//arg2 数组的个数
//usage:
//int num[16]={9,5,2,7};
//printf("ITEMNUM(num) = %d\n",ITEMNUM(num));
//_sort(num,ITEMNUM(num));
void int_sort(const int* ary, int cnt)
{
	//int i = 0;
	printf("ITEMNUM(ary) = %ld\n",(long int)ITEMNUM(ary));
	/*for(i=0;i<cnt;i++)
	{
		printf("before sort ary[%d] = %d\n",i,ary[i]);
	}*/
	qsort((void *)ary,cnt,sizeof(ary[0]),int_comp);
	/*for(i=0;i<cnt;i++)
	{
		printf("after sort ary[%d] = %d\n",i,ary[i]);
	}*/
}
Пример #4
0
void menu_audio(ULONG menucode)
{
	switch (ITEMNUM(menucode))
	{
		case ID_mute:
			mp_input_queue_cmd(mp_input_parse_cmd("mute"));
			break;
		case ID_volume_up:
			mplayer_put_key(KEY_VOLUME_UP);
			break;
		case ID_volume_down:
			mplayer_put_key(KEY_VOLUME_DOWN);
			break;
	}
}
Пример #5
0
int get_key (UWORD * qualifier_addr, int c, int wait)
{
  struct IntuiMessage *imsg;
  ULONG class;
  UWORD code, qualifier;
  int old_height;

  os_flush ();
  while (1)
  {
    while (imsg = (struct IntuiMessage *) GetMsg (Window->UserPort))
    {
      class = imsg->Class;
      code = imsg->Code;
      qualifier = imsg->Qualifier;
      ReplyMsg ((struct Message *) imsg);
      if (qualifier_addr)
	*qualifier_addr = qualifier;
      switch (class)
      {
      case IDCMP_RAWKEY:
	switch (code)
	{
	case 0x4C:
	  return 129;
	case 0x4D:
	  return 130;
	case 0x4F:
	  return 131;
	case 0x4E:
	  return 132;
	case 0x5F:
	  help ();
	  break;
	}
	break;
      case IDCMP_VANILLAKEY:
	switch (code)
	{
	case 8:
	  return 127;
	case 13:
	  return 13;
	case 127:
	  return 260;
	default:
	  if (code >= 32 && code <= 126)
	    return code;
	  break;
	}
	break;
      case IDCMP_CLOSEWINDOW:
	exit (0);
	break;
      case IDCMP_CHANGEWINDOW:
	old_height = DisplayHeight;
	DisplayHeight = ((Window->Height - Window->BorderTop - Window->BorderBottom) / RastPort->TxHeight) - 1;

	if (PreviousHeight > DisplayHeight)
	{
	  rect (Window->BorderLeft,
		Window->BorderTop + (DisplayHeight * RastPort->TxHeight),
		Window->Width - Window->BorderRight - 1,
		Window->Height - Window->BorderBottom - 1, 0);

	  if (RastPort->cp_y + RastPort->TxHeight > Window->Height - Window->BorderBottom)
	  {
	    Move (RastPort, RastPort->cp_x, Window->BorderTop + (DisplayHeight * RastPort->TxHeight));
	    rect (Window->BorderLeft, RastPort->cp_y,
		  Window->Width - Window->BorderRight - 1,
		  RastPort->cp_y + RastPort->TxHeight - 1, 0);
	    PreviousHeight = DisplayHeight;
	    return 264;
	  }
	}
	PreviousHeight = DisplayHeight;
	break;
      case IDCMP_MENUPICK:
	if (code != MENUNULL)
	{
	  if (MENUNUM (code) == 0)
	  {
	    switch (ITEMNUM (code))
	    {
	    case 0:
	      if (c != -1)
	      {
		cursor (c);
		SetAPen (RastPort, 1);
		int r = newgame (0);
		SetAPen (RastPort, 2);
		cursor (c);
		if (r != 0)
		  return r;
	      }
	      break;
	    case 2:
	      if (c != -1)
		return -2;
	      break;
	    case 3:
	      if (c != -1)
		return -3;
	      break;
	    case 5:
	      help ();
	      break;
	    case 6:
	      about ();
	      break;
	    case 8:
	      exit (0);
	      break;
	    }
	  }
	}
	break;
      }
    }
    if (wait)
      WaitPort (Window->UserPort);
    else
      return 0;
  }
}
Пример #6
0
void main_event_handler()
{
	ULONG result;
    UWORD Code;
    static char *strinfo, *args;
	static char *path;
	int line=0;
	int *iptr;
    struct Node *node;
	uint32 addr;
	struct Process *pr;

    while ((result = RA_HandleInput(MainWinObj, &Code)) != WMHI_LASTMSG && done != TRUE)
    {
		switch (result & WMHI_CLASSMASK)
        {
        	case WMHI_CLOSEWINDOW:
            	done = TRUE;
                break;
				
			case WMHI_ICONIFY:
				if( RA_Iconify(MainWinObj) )
				mainwin = NULL;
				break;

			case WMHI_UNICONIFY:
				mainwin = RA_Uniconify(MainWinObj);
				if( !mainwin )
					done = TRUE;
				break;

			case WMHI_MENUPICK:
				if (Code != MENUNULL)
				switch (MENUNUM(Code))
				{
					case MENU_FILE:
						switch(ITEMNUM(Code))
						{
							case MENU_PREFS:
								preferences_open_window();
								break;
							case MENU_MODULES:
								modules_open_window();
								break;
							case MENU_ABOUT:
								show_about();
								break;
							case MENU_QUIT:
								done = TRUE;
								break;
						}
				}
				break;
			
            case WMHI_GADGETUP:
            switch(result & WMHI_GADGETMASK)
            {
				case GAD_SELECT_BUTTON:

					strinfo = request_file(mainwin, &path);
					if (!strinfo)
						break;

					strcpy (filename, strinfo);
					if (strlen(path) > 0)
					{
						strcpy (childpath, path);
					}

					if(!request_arguments(&args))
					{
						console_printf(OUTPUT_WARNING, "User aborted!");
						break;
					}

					main_load (strinfo, path, args);
									
                    break;
                                    
				case GAD_RELOAD_BUTTON:
								
					main_load(strinfo, path, args);
					break;
									
				case GAD_ATTACH_BUTTON:

					if(!isattached)
					{
						pr = attach_select_process();
						if(main_attach (pr))
							button_set_detach();
					}
					else
					{
						console_printf(OUTPUT_SYSTEM, "Detaching from external process...");
						detach();
						stabs_free_stabs();
						button_set_attach();
						enable(TRUE, GAD_SELECT_BUTTON, TAG_END);
						enable(FALSE, GAD_START_BUTTON, GAD_PAUSE_BUTTON, GAD_KILL_BUTTON, GAD_STEPOVER_BUTTON,
										GAD_STEPINTO_BUTTON, GAD_STEPOUT_BUTTON, GAD_SETBREAK_BUTTON, GAD_HEX_BUTTON, TAG_END);
						console_printf(OUTPUT_SYSTEM, "Done!");
					}
						
					break;

				case GAD_START_BUTTON:

					main_play();
					break;

				case GAD_PAUSE_BUTTON:

					main_pause();
					break;

				case GAD_STEPOVER_BUTTON:

					main_step();
					break;

				case GAD_STEPINTO_BUTTON:
				
					main_into();
					break;

				case GAD_STEPOUT_BUTTON:
				
					main_out();
					break;

				case GAD_KILL_BUTTON:

					main_kill();
					break;
#if 0
				case GAD_CRASH_BUTTON:

					crash();
					break;
#endif
				case GAD_SETBREAK_BUTTON:

					breakpoints_open_window();
					break;

				case GAD_VARIABLES_LISTBROWSER:
								
					variables_handle_input();
					break;

				case GAD_SIGNAL_BUTTON:
				
					sigwin_open_window();
					break;

				case GAD_IMPORT_BUTTON:
				
					import_open_window();
					break;

				case GAD_X_BUTTON:

					console_clear();
					break;

				case GAD_HEX_BUTTON:

					hex_open_window();
					break;

				case GAD_DISASSEMBLER_LISTBROWSER:
					disassembler_show_selected();
					break;
									
				case GAD_DISASSEMBLER_STEP_BUTTON:
					asmstep();
					should_continue = FALSE;
					asm_trace = TRUE;
					break;
									
				case GAD_DISASSEMBLER_SKIP_BUTTON:
					asmskip();
					disassembler_makelist();
					break;

				case GAD_SOURCE_LISTBROWSER:
					source_handle_input();
					source_show_currentline();
					break;
				
				case GAD_SOURCELIST_LISTBROWSER:
					sourcelist_handle_input();
					break;
					
				case GAD_AREXX_BUTTON:
				case GAD_AREXX_STRING:
				{
					char *str;
									
                    IIntuition->GetAttrs( MainObj[GAD_AREXX_STRING], STRINGA_TextVal, &str, TAG_DONE );
					strcpy (arexxcommandstring, str);

					arexxexecute.MethodID = AM_EXECUTE;
					arexxexecute.ape_CommandString = arexxcommandstring;
					arexxexecute.ape_PortName = "AREXXDB101";
					arexxexecute.ape_IO = (BPTR)NULL;

                    IIntuition->SetAttrs( MainObj[GAD_AREXX_STRING], STRINGA_TextVal, "", TAG_DONE );
					IIntuition->RefreshGadgets ((struct Gadget *)MainObj[GAD_AREXX_STRING], mainwin, NULL);

					console_printf(OUTPUT_AREXX, arexxcommandstring);
					IIntuition->IDoMethodA(arexx_obj, (Msg)&arexxexecute);
	
					//IIntuition->ActivateGadget((struct Gadget *)MainObj[GAD_AREXX_STRING], mainwin, NULL);
					ILayout->ActivateLayoutGadget((struct Gadget *)MainObj[GAD_TOPLAYOUT], mainwin, NULL, (uint32)MainObj[GAD_AREXX_STRING]);
					break;
				}
			}
			break;
		}
	}
	return;
}
Пример #7
0
void menu_video(ULONG menucode)
{

	switch (ITEMNUM(menucode))
	{
		case ID_ontop:
			put_command0(MP_CMD_VO_ONTOP);
			break;
		case ID_subtitles:
			put_command0(MP_CMD_SUB_SELECT);
			break;
		case ID_fullscreen:
			put_command0(MP_CMD_VO_FULLSCREEN);
			break;
		case ID_screenshot:

			amigaos_screenshot();

//			put_command0(MP_CMD_SCREENSHOT);

			break;
/*
		case 5:
			p96pip_ChangeWindowSize(x1);
			break;
		case 6:
			p96pip_ChangeWindowSize(x2);
			break;
		case 7:
			p96pip_ChangeWindowSize(xF);
			break;
		case 8:
			p96pip_ChangeWindowSize(xH);
			break;
		case 10:
			switch (SUBNUM(menucode))
			{
				case 0:
					AspectRatio = AR_ORIGINAL;
					p96pip_ChangeWindowSize(AR_ORIGINAL);
					break;
				case 2:
					AspectRatio = AR_16_10;
					p96pip_ChangeWindowSize(AR_16_10);
				case 3:
					AspectRatio = AR_16_9;
					p96pip_ChangeWindowSize(AR_16_9);
					break;
				case 4:
					AspectRatio = AR_185_1;
					p96pip_ChangeWindowSize(AR_185_1);
					break;
				case 5:
					AspectRatio = AR_221_1;
					p96pip_ChangeWindowSize(AR_221_1);
					break;
				case 6:
					AspectRatio = AR_235_1;
					p96pip_ChangeWindowSize(AR_235_1);
					break;
				case 7:
					AspectRatio = AR_239_1;
					p96pip_ChangeWindowSize(AR_239_1);
					break;
				case 8:
					AspectRatio = AR_5_3;
					p96pip_ChangeWindowSize(AR_5_3);
					break;
				case 9:
					AspectRatio = AR_4_3;
					p96pip_ChangeWindowSize(AR_4_3);
					break;
				case 10:
					AspectRatio = AR_5_4;
					p96pip_ChangeWindowSize(AR_5_4);
					break;
				case 11:
					AspectRatio = AR_1_1;
					p96pip_ChangeWindowSize(AR_1_1);
					break;
			}
*/
	}

}
Пример #8
0
AMI_ILBM_Action AMI_ILBM_handleScreenActions(char **filename)
{
    AMI_ILBM_Action action = ACTION_ERROR;
    int showTitleStatus = TRUE;
    
    while(action == ACTION_ERROR)
    {
	struct IntuiMessage *msg;
	
	/* Wait for a message from the window's user port */
        Wait(1 << viewerDisplay.window->UserPort->mp_SigBit);
	
	/* Handle all the messages stored in the message queue */
        while((msg = (struct IntuiMessage*)GetMsg(viewerDisplay.window->UserPort)) != NULL)
        {
	    UWORD menuSelection;
	
	    switch(msg->Class)
	    {
	        case IDCMP_MENUPICK: /* Handle menu events */
		    menuSelection = msg->Code;
		    
		    if(menuSelection != MENUNULL)
		    {
		        UWORD menuNum = MENUNUM(menuSelection); /* Retrieve the number of the menu of the selected menu item */
		        UWORD itemNum = ITEMNUM(menuSelection); /* Retrieve the number of the menuitem in the selected menu */
			
			/* Determine which action to execute */
		        if(menuNum == 0)
		        {
			    switch(itemNum)
			    {
				case 0:
				    *filename = AMI_ILBM_openILBMFile(viewerDisplay.window, "");
				
				    if(*filename != NULL)
				        action = ACTION_OPEN;
				
				    break;
				    
				case 1:
				    action = ACTION_PREVIOUS;
				    break;
				
				case 2:
				    action = ACTION_NEXT;
				    break;
				
				case 3:
				    showTitleStatus = !showTitleStatus;
				    ShowTitle(viewerDisplay.image.intuitionScreen, showTitleStatus);
				    break;
				
				case 4:
				    viewerDisplay.cycleModeEnabled = !viewerDisplay.cycleModeEnabled;
				    break;
				
				case 5:
				    action = ACTION_QUIT;
				    break;
			    }
			}
		    }
		
		    break;
	    }
	
	    /* Reply the message, so that it's removed from the message queue */
	    ReplyMsg((struct Message*)msg);
	}
    }
    
    /* Return the resulting action from the user */
    return action;
}