Beispiel #1
0
Exec_stat MCVideoClip::getprop(uint4 parid, Properties which, MCExecPoint &ep, Boolean effective)
{
	switch (which)
	{
	case P_DONT_REFRESH:
		ep.setboolean(getflag(F_DONT_REFRESH));
		break;
	case P_FRAME_RATE:
		if (flags & F_FRAME_RATE)
			ep.setint(framerate);
		else
			ep.clear();
		break;
	case P_SCALE:
		ep.setnvalue(scale);
		break;
	case P_SIZE:
		ep.setint(size);
		break;
	case P_TEXT:
		{
			MCString s((const char *)frames, size);
			ep.setsvalue(s);
		}
		break;
	default:
		return MCObject::getprop(parid, which, ep, effective);
	}
	return ES_NORMAL;
}
Beispiel #2
0
Exec_stat MCEPS::getprop_legacy(uint4 parid, Properties which, MCExecPoint& ep, Boolean effective)
{
	switch (which)
	{
#ifdef /* MCEPS::getprop */ LEGACY_EXEC
	case P_SIZE:
		ep.setint(size);
		break;
	case P_ANGLE:
		ep.setr8(angle, ep.getnffw(), ep.getnftrailing(), ep.getnfforce());
		break;
	case P_POSTSCRIPT:
		ep.setsvalue(postscript);
		break;
	case P_PROLOG:
		ep.setsvalue(prolog);
		break;
	case P_RETAIN_IMAGE:
		ep.setboolean(getflag(F_RETAIN_IMAGE));
		break;
	case P_RETAIN_POSTSCRIPT:
		ep.setboolean(getflag(F_RETAIN_POSTSCRIPT));
		break;
	case P_SCALE_INDEPENDENTLY:
		ep.setboolean(getflag(F_SCALE_INDEPENDENTLY));
		break;
	case P_BOUNDING_RECT:
		ep.setrectangle(tx, ty, tx + ex, ty + ey);
		break;
	case P_SCALE:
	case P_X_SCALE:
		ep.setr8(xscale, ep.getnffw(), ep.getnftrailing(), ep.getnfforce());
		break;
	case P_Y_SCALE:
		ep.setr8(yscale, ep.getnffw(), ep.getnftrailing(), ep.getnfforce());
		break;
	case P_X_OFFSET:
		ep.setint(tx);
		break;
	case P_Y_OFFSET:
		ep.setint(ty);
		break;
	case P_X_EXTENT:
		ep.setint(ex);
		break;
	case P_Y_EXTENT:
		ep.setint(ey);
		break;
	case P_CURRENT_PAGE:
		ep.setint(MCU_max(curpage, 1));
		break;
	case P_PAGE_COUNT:
		ep.setint(MCU_max(pagecount, 1));
		break;
#endif /* MCEPS::getprop */
	default:
		return MCControl::getprop_legacy(parid, which, ep, effective);
	}
	return ES_NORMAL;
}
Beispiel #3
0
Exec_stat MCF_unparsetextatts(Properties which, MCExecPoint &ep, uint4 flags,
                              const char *name, uint2 height, uint2 size,
                              uint2 style)
{
	switch (which)
	{
	case P_TEXT_ALIGN:
		switch (flags & F_ALIGNMENT)
		{
		case F_ALIGN_LEFT:
			ep.setstaticcstring(MCleftstring);
			break;
		case F_ALIGN_CENTER:
			ep.setstaticcstring(MCcenterstring);
			break;
		case F_ALIGN_RIGHT:
			ep.setstaticcstring(MCrightstring);
			break;
		case F_ALIGN_JUSTIFY:
			ep.setstaticcstring(MCjustifystring);
			break;
		}
		break;
	case P_TEXT_FONT:
		ep.setsvalue(name);
		break;
	case P_TEXT_HEIGHT:
		ep.setint(height);
		break;
	case P_TEXT_SIZE:
		ep.setint(size);
		break;
	case P_TEXT_STYLE:
		{
			if (style == FA_DEFAULT_STYLE)
			{
				ep.setstaticcstring(MCplainstring);
				return ES_NORMAL;
			}
			
			uint32_t j;
			j = 0;

			ep.clear();
			if (MCF_getweightint(style) != MCFW_MEDIUM)
				ep.concatcstring(MCF_getweightstring(style), EC_COMMA, j++ == 0);
			if (style & FA_ITALIC || style & FA_OBLIQUE)
				ep.concatcstring(MCF_getslantlongstring(style), EC_COMMA, j++ == 0);
			if (style & FA_BOX)
				ep.concatcstring(MCboxstring, EC_COMMA, j++ == 0);
			if (style & FA_3D_BOX)
				ep.concatcstring(MCthreedboxstring, EC_COMMA, j++ == 0);
			if (style & FA_UNDERLINE)
				ep.concatcstring(MCunderlinestring, EC_COMMA, j++ == 0);
			if (style & FA_STRIKEOUT)
				ep.concatcstring(MCstrikeoutstring, EC_COMMA, j++ == 0);
			if (style & FA_LINK)
				ep.concatcstring(MClinkstring, EC_COMMA, j++ == 0);
			if (MCF_getexpandint(style) != FE_NORMAL)
				ep.concatcstring(MCF_getexpandstring(style), EC_COMMA, j++ == 0);
		}
		break;
	default:
		break;
	}
	return ES_NORMAL;
}
Beispiel #4
0
Exec_stat MCDispatch::getprop(uint4 parid, Properties which, MCExecPoint &ep, Boolean effective)
{
	switch (which)
	{
#ifdef /* MCDispatch::getprop */ LEGACY_EXEC
	case P_BACK_PIXEL:
		ep.setint(MCscreen->background_pixel.pixel & 0xFFFFFF);
		return ES_NORMAL;
	case P_TOP_PIXEL:
		ep.setint(MCscreen->white_pixel.pixel & 0xFFFFFF);
		return ES_NORMAL;
	case P_HILITE_PIXEL:
	case P_FORE_PIXEL:
	case P_BORDER_PIXEL:
	case P_BOTTOM_PIXEL:
	case P_SHADOW_PIXEL:
	case P_FOCUS_PIXEL:
		ep.setint(MCscreen->black_pixel.pixel & 0xFFFFFF);
		return ES_NORMAL;
	case P_BACK_COLOR:
	case P_HILITE_COLOR:
		ep.setstaticcstring("white");
		return ES_NORMAL;
	case P_FORE_COLOR:
	case P_BORDER_COLOR:
	case P_TOP_COLOR:
	case P_BOTTOM_COLOR:
	case P_SHADOW_COLOR:
	case P_FOCUS_COLOR:
		ep.setstaticcstring("black");
		return ES_NORMAL;
	case P_FORE_PATTERN:
	case P_BACK_PATTERN:
	case P_HILITE_PATTERN:
	case P_BORDER_PATTERN:
	case P_TOP_PATTERN:
	case P_BOTTOM_PATTERN:
	case P_SHADOW_PATTERN:
	case P_FOCUS_PATTERN:
		ep.clear();
		return ES_NORMAL;
	case P_TEXT_ALIGN:
		ep.setstaticcstring(MCleftstring);
		return ES_NORMAL;
	case P_TEXT_FONT:
		ep.setstaticcstring(DEFAULT_TEXT_FONT);
		return ES_NORMAL;
	case P_TEXT_HEIGHT:
		ep.setint(heightfromsize(DEFAULT_TEXT_SIZE));
		return ES_NORMAL;
	case P_TEXT_SIZE:
		ep.setint(DEFAULT_TEXT_SIZE);
		return ES_NORMAL;
	case P_TEXT_STYLE:
		ep.setstaticcstring(MCplainstring);
		return ES_NORMAL;
#endif /* MCDispatch::getprop */ 
	default:
		MCeerror->add(EE_OBJECT_GETNOPROP, 0, 0);
		return ES_ERROR;
	}
}
Beispiel #5
0
Exec_stat MCAudioClip::getprop(uint4 parid, Properties which, MCExecPoint &ep, Boolean effective)
{
	switch (which)
	{
#ifdef /* MCAudioClip::getprop */ LEGACY_EXEC
	case P_SIZE:
		ep.setint(size);
		break;
	case P_PLAY_DESTINATION:
	case P_PLAY_LOUDNESS:
		if (this == MCtemplateaudio)
		{
			extern bool MCSystemGetPlayLoudness(uint2& r_loudness);
#ifdef _MOBILE
			if (MCSystemGetPlayLoudness(loudness))
#else
			if (false)
#endif
				;
			else if (!supported)
				loudness = 0;
			else
			{
#if defined _WINDOWS
				if (hwaveout == NULL)
				{
					WAVEFORMATEX pwfx;
					pwfx.wFormatTag = WAVE_FORMAT_PCM;
					pwfx.nChannels = 1;
					pwfx.nSamplesPerSec = 22050;
					pwfx.nAvgBytesPerSec = 22050;
					pwfx.nBlockAlign = 1;
					pwfx.wBitsPerSample = 8;
					pwfx.cbSize = 0;
					if (waveOutOpen(&hwaveout, WAVE_MAPPER, &pwfx, 0, 0, CALLBACK_NULL
					                | WAVE_ALLOWSYNC) == MMSYSERR_NOERROR)
					{
						DWORD v;
						waveOutGetVolume(hwaveout, &v);
						loudness = MCU_min((uint2)((v & 0xFFFF) * 100 / 0xFFFF) + 1, 100);
						waveOutClose(hwaveout);
						hwaveout = NULL;
					}
				}
#elif defined _MACOSX
				long volume;
				GetDefaultOutputVolume(&volume);
				loudness = (HiWord(volume) + LoWord(volume)) * 50 / 255;
#elif defined TARGET_PLATFORM_LINUX
				if ( x11audio != NULL)
					loudness = x11audio -> getloudness();
#endif
			}
		}
		if (which == P_PLAY_DESTINATION)
		{
			if (flags & F_EXTERNAL)
				ep.setstaticcstring("external");
			else
				ep.setstaticcstring("internal");
		}
		else
			ep.setint(loudness);
		break;
#endif /* MCAudioClip::getprop */ 
	default:
		return MCObject::getprop(parid, which, ep, effective);
	}
	return ES_NORMAL;
}