Example #1
0
void *LCD_menu(void *p, long x, long y, long font)
{
	void *res;
	
	EnterCallback();
	res = rLCD(p,(short)x,(short)y, 16*CHAR_WIDTH+2*BORDER_WIDTH, 2*CHAR_HEIGHT+2*BORDER_HEIGHT);
	ExitCallback();
	return (res);
}
Example #2
0
void Menu_EnterCurrentItem(void)
{
	if ((CurrentMenuItem == &NULL_MENU) || (CurrentMenuItem == NULL))
		return;

	void (*EnterCallback)(void) = MENU_ITEM_READ_POINTER(&CurrentMenuItem->EnterCallback);

	if (EnterCallback)
		EnterCallback();
}
Example #3
0
void LCD_font(Lcd *x, long font, long size)
{
	Atom a[2];
	
	EnterCallback();
	SETLONG(a,font);
	SETLONG(a+1,size);
	defer(x,(method)LCD_dofont,0L,2,a);
	ExitCallback();
}
Example #4
0
void LCD_MoveTo(Lcd *x, long deltaX, long deltaY)
{	
	Atom a[2];
	
	EnterCallback();
	SETLONG(a,deltaX);
	SETLONG(a+1,deltaY);
	defer(x,(method)LCD_doMoveTo,0L,2,a);
	ExitCallback();
}
Example #5
0
void LCD_free(Lcd *x)
{
	EnterCallback();
	
	if (x->screen) freebytes(x->screen,(short)sizeof(char)*(x->cols*x->rows));	
	if (x->lcd_region)
		DisposeRgn(x->lcd_region);
	box_free((void *)x);

	ExitCallback();
}
Example #6
0
void LCD_dolinesegment(Lcd *x, Symbol *s, short argc, Atom *argv)
{
	PaletteHandle pH;
	RGBColor fColor;
	GrafPort *gp;
	RgnHandle cur;
	long fromx,fromy,tox,toy,color;
	short save;
	
	EnterCallback();
	
	fromx = argv->a_w.w_long;
	fromy = (argv+1)->a_w.w_long;
	tox = (argv+2)->a_w.w_long;
	toy = (argv+3)->a_w.w_long;
	color = (argv+4)->a_w.w_long;
	
#ifdef debug
	post("Segment");
#endif
	gp = patcher_setport(x->lcd_box.b_patcher);

	if (gp) {
		if (!box_nodraw((void *)x)) {
			// save=lockout_set(1);
			MoveTo(x->lcd_box.b_rect.left+1+(short)fromx,x->lcd_box.b_rect.top+1+(short)fromy);
			x->lcd_where.h = (short)fromx;
			x->lcd_where.v = (short)fromy;
			
			if (color)
				x->lcd_pIndex = (short)color & (numPaletteColors-1);

			cur = NewRgn();
			GetClip(cur);
			SetClip(x->lcd_region);

			setUpPalette(x,&fColor,&pH);

		//	LCD_MoveTo(x,(long)(x->lcd_where.h),(long)(x->lcd_where.v));
			
			LineTo(x->lcd_box.b_rect.left+1+(short)tox,x->lcd_box.b_rect.top+1+(short)toy);
			x->lcd_where.h = (short)tox;
			x->lcd_where.v = (short)toy;

			restorePalette(x,&fColor,&pH);
			SetClip(cur);
			DisposeRgn(cur);
			// lockout_set(save);

		}
		SetPort(gp);
	}
	ExitCallback();
}
Example #7
0
/*------------------------------------ cmd_Count ---*/
Pvoid
cmd_Count(QtPtr xx)
{
  EnterCallback();
#if defined(TRACE_MESSAGES)
  LOG_POST_1("Count")
#endif /* TRACE_MESSAGES */
  if (xx)
    outlet_int(xx->fResultOut, long(xx->fMovieCount));
  ExitMaxMessageHandler()
} /* cmd_Count */
Example #8
0
void LCD_debug(Lcd *x)
{
	EnterCallback();
	x->lcd_debug = !x->lcd_debug;
	if (x->lcd_debug)
		post("LCD debug on");
	else
		post("LCD debug off");
	
	ExitCallback();
}
Example #9
0
void LCD_doascii(Lcd *x, Symbol *s, short argc, Atom *argv)
{
	short i;
	char	stng[256];
	
	EnterCallback();
	
	stng[1] = '\0';
	for (i=0;i<argc;i++) {

		switch(argv[i].a_type) {
			case A_LONG:
				switch (stng[0] = (char)argv[i].a_w.w_long) {
					case BACKSPACE:
						stng[0] = 32;
						x->lcd_col--;
						x->lcd_col = MINMAX(x->lcd_col,0,x->cols-1);
						LCD_drawTxt(x,stng);
						x->lcd_col--;
						x->lcd_col = MINMAX(x->lcd_col,0,x->cols-1);
						break;
					case CR:
						x->lcd_row++;
						x->lcd_row = MINMAX(x->lcd_row,0,x->rows-1);
						x->lcd_col = 0;
						break;
					case LEFT_ARROW:
						x->lcd_col--;
						x->lcd_col = MINMAX(x->lcd_col,0,x->cols-1);
						break;
					case RIGHT_ARROW:
						x->lcd_col++;
						x->lcd_col = MINMAX(x->lcd_col,0,x->cols-1);
						break;
					case UP_ARROW:
						x->lcd_row--;
						x->lcd_row = MINMAX(x->lcd_row,0,x->rows-1);
						break;
					case DOWN_ARROW:
						x->lcd_row++;
						x->lcd_row = MINMAX(x->lcd_row,0,x->rows-1);
						break;
					default:
						LCD_drawTxt(x,stng);
						break;
				}						
				break;
			case A_SYM:
			case A_FLOAT:
				break;
		}
	}
	ExitCallback();
}
Example #10
0
/*------------------------------------ cmd_End ---*/
Pvoid
cmd_End(QtPtr xx)
{
  EnterCallback();
#if defined(TRACE_MESSAGES)
  LOG_POST_1("End")
#endif /* TRACE_MESSAGES */
  if (xx)
    defer(xx, reinterpret_cast<method>(deferred_End), NULL_PTR, 0, NULL_PTR);
  ExitMaxMessageHandler()
} /* cmd_End */
Example #11
0
void ottcp_assist (OTTCP *x, void *box, long msg, long arg, char *dstString) {
	EnterCallback();
	
	if (msg==ASSIST_INLET) {
		sprintf(dstString, "nbytes, delim...");
	} else if (msg==ASSIST_OUTLET) {
		sprintf(dstString, "binary buffers");
	} else {
		post("е ottcp_assist: unrecognized message %ld", msg);
	}
	ExitCallback();
}
Example #12
0
void ottcp_ErrorReporting(OTTCP *x, long yesno) {
	EnterCallback();
	
	if (yesno == 0) {
		post("OTTCP: Turning off error reporting.  What you don't know can't hurt you.");
		x->o_errorreporting = 0;
	} else {
		post("OTTCP: Turning on error reporting.");
		x->o_errorreporting = 1;
	}
	ExitCallback();
}
Example #13
0
/*------------------------------------ cmd_Int ---*/
Pvoid
cmd_Int(SpeakPtr xx,
        long     msg)
{
  EnterCallback();
  if (xx)
  {
    clearDataBuffer(*xx->fBuffer);
    addLongToBuffer(OUR_NAME, *xx->fBuffer, msg);
    transmitBuffer(xx);
  }
  ExitMaxMessageHandler()
} /* cmd_Int */
Example #14
0
/*------------------------------------ cmd_Mute ---*/
Pvoid
cmd_Mute(QtPtr xx,
         long  muting)
{
  EnterCallback();
#if defined(TRACE_MESSAGES)
  LOG_POST_1("Mute")
#endif /* TRACE_MESSAGES */
  if (xx)
    defer(xx, reinterpret_cast<method>(deferred_Mute),
          reinterpret_cast<PSymbol>(muting), 0, NULL_PTR);
  ExitMaxMessageHandler()
} /* cmd_Mute */
Example #15
0
void LCD_frameRect(Lcd *x, long left, long top, long right, long bottom, long color)
{	
	Atom a[5];
	
	EnterCallback();
	SETLONG(a,left);
	SETLONG(a+1,top);
	SETLONG(a+2,right);
	SETLONG(a+3,bottom);
	SETLONG(a+4,color);
	defer(x,(method)LCD_doframeRect,0L,5,a);
	ExitCallback();
}
Example #16
0
void LCD_linesegment(Lcd *x, long fromx, long fromy, long tox, long toy, long color)
{	
	Atom a[5];
	
	EnterCallback();
	SETLONG(a,fromx);
	SETLONG(a+1,fromy);
	SETLONG(a+2,tox);
	SETLONG(a+3,toy);
	SETLONG(a+4,color);
	defer(x,(method)LCD_dolinesegment,0L,5,a);
	ExitCallback();
}
Example #17
0
/*------------------------------------ cmd_Volumeq ---*/
Pvoid
cmd_Volumeq(SpeakPtr xx)
{
  EnterCallback();
  if (xx && xx->fSpeaker)
  {
    Atom  response[1];
    Fixed volume;

    GetSpeechInfo(xx->fSpeaker, soVolume, &volume);
    SETFLOAT(response, float(Fix2X(volume)));
    outlet_anything(xx->fResultOut, gVolumeSymbol, 1, response);
  }
  ExitMaxMessageHandler()
} /* cmd_Volumeq */
Example #18
0
/*------------------------------------ cmd_VoiceMax ---*/
Pvoid
cmd_VoiceMax(SpeakPtr xx)
{
  EnterCallback();
  if (xx)
  {
    Atom  response[1];
    short voiceCount;

    CountVoices(&voiceCount);
    SETLONG(response, long(voiceCount));
    outlet_anything(xx->fResultOut, gVoiceMaxSymbol, 1, response);
  }
  ExitMaxMessageHandler()
} /* cmd_VoiceMax */
Example #19
0
void LCD_doframeOval(Lcd *x, Symbol *s, short argc, Atom *argv)
{
	long left, top, right, bottom, color;
	PaletteHandle pH;
	RGBColor fColor;
	GrafPort *gp;
	RgnHandle cur;
	Rect	 b,r;
	
	EnterCallback();
	
	// I'm suspicious of (argv++)->thing in Code Warrior
	left = argv->a_w.w_long;
	top = (argv+1)->a_w.w_long;
	right = (argv+2)->a_w.w_long;
	bottom = (argv+3)->a_w.w_long;
	color = (argv+4)->a_w.w_long;
#ifdef debug
	post("frameOval");
#endif
	gp = patcher_setport(x->lcd_box.b_patcher);

	if (gp) {
		if (!box_nodraw((void *)x)) {

			if (color)  // sde 11/1
				x->lcd_pIndex = (short)color & (numPaletteColors-1);

			cur = NewRgn();
			GetClip(cur);
			SetClip(x->lcd_region);
			setUpPalette(x,&fColor,&pH);
			
			r = x->lcd_box.b_rect;
			b.left = r.left + (short)left;
			b.top  = r.top + (short)top;
			b.right = r.left + (short)right;
			b.bottom = r.top + (short)bottom;
			FrameOval(&b);

			restorePalette(x,&fColor,&pH);
			SetClip(cur);
			DisposeRgn(cur);
		}
		SetPort(gp);
	}
	ExitCallback();
}
Example #20
0
/*------------------------------------ cmd_Listen ---*/
Pvoid
cmd_Listen(FidgetPtr xx,
           PSymbol   onOff)
{
  EnterCallback();
  if (xx)
  {
    if (onOff == gOffSymbol)
      xx->fReportEvents = false;
    else if (onOff == gOnSymbol)
      xx->fReportEvents = true;
    else if (onOff == gEmptySymbol)
      xx->fReportEvents = (! xx->fReportEvents);
  }
  ExitMaxMessageHandler()
} /* cmd_Listen */
Example #21
0
/*------------------------------------ cmd_Verbose ---*/
Pvoid
cmd_Verbose(RcxControlPtr xx,
            PSymbol       onOff)
{
  EnterCallback();
  if (xx)
  {
    if (onOff == gOffSymbol)
      xx->fVerbose = false;
    else if (onOff == gOnSymbol)
      xx->fVerbose = true;
    else if (onOff == gEmptySymbol)
      xx->fVerbose = (! xx->fVerbose);
  }
  ExitMaxMessageHandler()
} /* cmd_Verbose */
Example #22
0
void LCD_dofont(Lcd *x, Symbol *s, short argc, Atom *argv)
{
	long font, size;			/* check patcher font settings */
	GrafPtr		sp,pp;
	short			sFont,sSize;
	
	EnterCallback();
	
	font = argv->a_w.w_long;
	size = (argv+1)->a_w.w_long;
	x->font = (short)font;
	x->f_size = (short)size;
	if (sp=patcher_setport(x->lcd_box.b_patcher)){
		GetPort(&pp);
		if (!font&&!size){
			x->font = pp->txFont;
			x->f_size = pp->txSize;			
		}
		else{
			sFont = pp->txFont;
			sSize = pp->txSize;
			TextFont(font);
			TextSize(size);
		}
		
#ifdef debug
post("font:%d size:%d",x->font,x->f_size);
#endif
		LCD_calcfont(x);
		
		LCD_resize(x);
		
		if (font||size){
			TextFont(sFont);
			TextSize(sSize);
		}
		SetPort(sp);
	} else { /* note that this needs to be calced later */
		x->f_width = -1;
		x->f_ascent = -1;
		x->f_descent = -1;
		x->f_height = -1;
		x->f_lineSpace = -1;
	}
	ExitCallback();
}
Example #23
0
void myobject_int(MyObject *x, long n)

{

	EnterCallback();

	

	x->m_value = n+3;						// store a value inside the object

	outlet_int(x->m_out,x->m_value);	// and send it out

	

	ExitCallback();

}
Example #24
0
void myobject_bang(MyObject *x)

{

	EnterCallback();	// necessary on 68K for methods that use global variables

						// or Max functions. #defined to nothing on PowerPC

						

	outlet_int(x->m_out,x->m_value);	// send stored value out an outlet

	

	ExitCallback();		// undoes EnterCallback

}
Example #25
0
/*------------------------------------ cmd_Rate ---*/
Pvoid
cmd_Rate(QtPtr xx,
         long  numerator,
         long  denominator)
{
  Atom avRate[2];

  EnterCallback();
#if defined(TRACE_MESSAGES)
  LOG_POST_1("Rate")
#endif /* TRACE_MESSAGES */
  SETLONG(avRate, numerator);
  SETLONG(avRate + 1, denominator);
  if (xx)
    defer(xx, reinterpret_cast<method>(deferred_Rate), NULL_PTR, 2, avRate);
  ExitMaxMessageHandler()
} /* cmd_Rate */
Example #26
0
/*------------------------------------ cmd_Anything ---*/
Pvoid
cmd_Anything(RcxControlPtr xx,
             PSymbol       message,
             short         argc,
             PAtom         argv)
{
  EnterCallback();
  LOG_ERROR_2(OUTPUT_PREFIX "Unknown message '%s' seen", message->s_name)
  outlet_bang(xx->fErrorBangOut);
  for (short ii = 0; ii < argc; ++ii)
  {
    switch (argv[ii].a_type)
    {
      case A_LONG:
        LOG_POST_3("  argument %hd is a long (%ld)", ii, argv[ii].a_w.w_long)
        break;

      case A_SYM:
        LOG_POST_3("  argument %hd is a symbol (%s)", ii, argv[ii].a_w.w_sym->s_name)
        break;

      case A_FLOAT:
        LOG_POST_3("  argument %hd is a float (%g)", ii, double(argv[ii].a_w.w_float))
        break;

      case A_SEMI:
        LOG_POST_2("  argument %hd is a semicolon", ii)
        break;

      case A_COMMA:
        LOG_POST_2("  argument %hd is a comma", ii)
        break;

      case A_DOLLAR:
        LOG_POST_2("  argument %hd is a dollar sign", ii)
        break;

      default:
        LOG_POST_3("  argument %hd is an unknown type (%hd)", ii, argv[ii].a_type)
        break;

    }
  }
  ExitMaxMessageHandler()
} /* cmd_Anything */
Example #27
0
void LCD_save(Lcd *x, void *w)
{
	Rect *r;
	
	EnterCallback();
	r = &x->lcd_box.b_rect;
	
	if (x->lcd_box.b_hidden) {
		binbuf_vinsert(w,"ssssllll", gensym("#P"),gensym("hidden"),gensym("user"),
			gensym("LCD"), (long)(r->left), (long)(r->top),
				(long)(r->right - r->left), (long)(r->bottom - r->top));
	} else {
		binbuf_vinsert(w,"sssllll", gensym("#P"),gensym("user"), 
			gensym("LCD"), (long)(r->left), (long)(r->top),
				(long)(r->right - r->left), (long)(r->bottom - r->top));
	}
	ExitCallback();		
}
Example #28
0
void *LCD_new(Symbol *sym, short argc, Atom *argv)
{
	void *patcher;
	short	x,y,w,s;
	void *res;
	
	EnterCallback();
	patcher = argv[0].a_w.w_obj;
 	x = (short)argv[1].a_w.w_long;
	y = (short)argv[2].a_w.w_long;
	w = (short)argv[3].a_w.w_long;
	s = (short)argv[4].a_w.w_long;
	
	res = rLCD(patcher,x,y,w,s);
	
	ExitCallback();
	return (res);
}
Example #29
0
/*------------------------------------ deferred_End ---*/
static Pvoid
deferred_End(QtPtr xx)
{
  EnterCallback();
  if (xx->fCurrentMovie)
  {
    GoToEndOfMovie(xx->fCurrentMovie);
    SetMovieActive(xx->fCurrentMovie, TRUE);
    xx->fStopSignalled = true;  /* pretend that we reached the end normally */
    qtAdjustController(xx);
  }
  else
  {
    LOG_ERROR_1(OUTPUT_PREFIX "no movies loaded")
    SignalError(xx);
  }
  ExitMaxMessageHandler()
} /* deferred_End */
Example #30
0
static void ottcp_connect(OTTCP *x, Symbol *hostName, long port) {
	OSStatus s;
	InetHost host;
	
	EnterCallback();
	
	if (LookUpInetHost(hostName->s_name, &host) == 0) {
		post("е OTTCP: can't understand host \"%s\"; not connecting",  hostName->s_name);
		return;
	}	

	x->o_inetHostName = hostName->s_name;
	x->o_inetPort = port;
	x->o_inetHost = host;
	
	change_connection(x);
	ExitCallback();
}