Difference between revisions of "ChumbyNative"

From Chumby Wiki
Jump to: navigation, search
Line 3: Line 3:
 
Note that some of this will likely change as an official mechanism for extending the player is created and documented by Adobe.
 
Note that some of this will likely change as an official mechanism for extending the player is created and documented by Adobe.
  
Many of these ASnative are available only to the "master" instance, typically the Control Panel.
+
Many of these ASnatives are available only to the "master" instance, typically the Control Panel.
  
 
<pre>
 
<pre>
Line 11: Line 11:
 
// file operations
 
// file operations
 
//
 
//
static var _getFile:Function = ['ASnative'](5,50); // (path:String):String
+
static var _getFile:Function = _global.ASnative(5,50); // (path:String):String
static var _putFile:Function = ['ASnative'](5,51); // (path:String,data:String)
+
static var _putFile:Function = _global.ASnative(5,51); // (path:String,data:String)
static var _backtick:Function = ['ASnative'](5,52); // (path:String):String
+
static var _backtick:Function = _global.ASnative(5,52); // (path:String):String
static var _fileExists:Function = ['ASnative'](5,53); // ():Number
+
static var _fileExists:Function = _global.ASnative(5,53); // ():Number
 
static var FILE_NOT_FOUND:Number = 0;
 
static var FILE_NOT_FOUND:Number = 0;
 
static var FILE_FOUND:Number = 1;
 
static var FILE_FOUND:Number = 1;
Line 20: Line 20:
 
// touchscreen
 
// touchscreen
 
//
 
//
static var _rawX:Function = ['ASnative'](5,10); // ():Number
+
static var _rawX:Function = _global.ASnative(5,10); // ():Number
static var _rawY:Function = ['ASnative'](5,11); // ():Number
+
static var _rawY:Function = _global.ASnative(5,11); // ():Number
static var _setCalibration:Function = ['ASnative'](5,12); // (xoffset:Number,xscale:Number,yoffset:Number,yscale:Number)
+
static var _setCalibration:Function = _global.ASnative(5,12); // (xoffset:Number,xscale:Number,yoffset:Number,yscale:Number)
static var _writeCalibration:Function = ['ASnative'](5,13); // ():Void
+
static var _writeCalibration:Function = _global.ASnative(5,13); // ():Void
static var _getTouchClick:Function = ['ASnative'](5,43); // ():Number
+
static var _getTouchClick:Function = _global.ASnative(5,43); // ():Number
static var _setTouchClick:Function = ['ASnative'](5,44); // (doClick:Number):Void
+
static var _setTouchClick:Function = _global.ASnative(5,44); // (doClick:Number):Void
 
static var TOUCHCLICK_OFF:Number = 0;
 
static var TOUCHCLICK_OFF:Number = 0;
 
static var TOUCHCLICK_ON:Number = 1;
 
static var TOUCHCLICK_ON:Number = 1;
Line 31: Line 31:
 
// speaker
 
// speaker
 
//
 
//
static var _getSpeakerMute:Function = ['ASnative'](5,17); // ():Number
+
static var _getSpeakerMute:Function = _global.ASnative(5,17); // ():Number
static var _setSpeakerMute:Function = ['ASnative'](5,18); // (mute:Number):Void
+
static var _setSpeakerMute:Function = _global.ASnative(5,18); // (mute:Number):Void
 
static var SPEAKER_UNMUTED:Number = 0;
 
static var SPEAKER_UNMUTED:Number = 0;
 
static var SPEAKER_MUTED:Number = 1;
 
static var SPEAKER_MUTED:Number = 1;
Line 38: Line 38:
 
// headphone jack
 
// headphone jack
 
//
 
//
static var _headphonesIn:Function = ['ASnative'](5,38); // ():Number
+
static var _headphonesIn:Function = _global.ASnative(5,38); // ():Number
 
static var HEADPHONE_OUT:Number = 0;
 
static var HEADPHONE_OUT:Number = 0;
 
static var HEADPHONE_IN:Number = 1;
 
static var HEADPHONE_IN:Number = 1;
Line 44: Line 44:
 
// LCD mute (HW 3.5, 3.6, 3.7)
 
// LCD mute (HW 3.5, 3.6, 3.7)
 
//
 
//
static var _getLCDMute:Function = ['ASnative'](5,19); // ():Number
+
static var _getLCDMute:Function = _global.ASnative(5,19); // ():Number
static var _setLCDMute:Function = ['ASnative'](5,20); // (mute:Number):Void
+
static var _setLCDMute:Function = _global.ASnative(5,20); // (mute:Number):Void
 
static var LCD_ON:Number = 0;
 
static var LCD_ON:Number = 0;
 
static var LCD_DIM:Number = 1;
 
static var LCD_DIM:Number = 1;
Line 52: Line 52:
 
// bend sensor
 
// bend sensor
 
//
 
//
static var _bent:Function = ['ASnative'](5,25); // ():Number
+
static var _bent:Function = _global.ASnative(5,25); // ():Number
 
static var UNBENT:Number = 0;
 
static var UNBENT:Number = 0;
 
static var BENT:Number = 1;
 
static var BENT:Number = 1;
Line 58: Line 58:
 
// accelerometer
 
// accelerometer
 
//
 
//
static var _accelerometer:Function = ['ASnative'](5,60); // (index:Number):Number
+
static var _accelerometer:Function = _global.ASnative(5,60); // (index:Number):Number
 
static var ACCELEROMETER_VERSION:Number = 0;
 
static var ACCELEROMETER_VERSION:Number = 0;
 
static var ACCELEROMETER_TIMESTAMP:Number = 1;
 
static var ACCELEROMETER_TIMESTAMP:Number = 1;
Line 78: Line 78:
 
// DC Power
 
// DC Power
 
//
 
//
static var _dcVolts:Function = ['ASnative'](5,16); // ():Number
+
static var _dcVolts:Function = _global.ASnative(5,16); // ():Number
static var _batteryVolts:Function = ['ASnative'](5,39); // ():Number
+
static var _batteryVolts:Function = _global.ASnative(5,39); // ():Number
static var _powerSource:Function = ['ASnative'](5,41); // ():Number
+
static var _powerSource:Function = _global.ASnative(5,41); // ():Number
 
static var POWER_SOURCE_BATTERY:Number = 0;
 
static var POWER_SOURCE_BATTERY:Number = 0;
 
static var POWER_SOURCE_EXTERNAL:Number = 1;
 
static var POWER_SOURCE_EXTERNAL:Number = 1;
Line 86: Line 86:
 
// power management
 
// power management
 
//
 
//
static var _powerDown:Function = ['ASnative'](5,40); // (when:Number[,secondsToPowerUp:Number]):Void
+
static var _powerDown:Function = _global.ASnative(5,40); // (when:Number[,secondsToPowerUp:Number]):Void
 
static var POWER_DOWN_ON_EXIT:Number = 1;
 
static var POWER_DOWN_ON_EXIT:Number = 1;
 
static var POWER_DOWN_NOW:Number = 2;
 
static var POWER_DOWN_NOW:Number = 2;
Line 92: Line 92:
 
// graphic overlay
 
// graphic overlay
 
//
 
//
static var _setOverlayVisibility:Function = ['ASnative'](5,110); // (opacity0_255:Number):Void
+
static var _setOverlayVisibility:Function = _global.ASnative(5,110); // (opacity0_255:Number):Void
static var _getOverlayVisibility:Function = ['ASnative'](5,111); // ():Number
+
static var _getOverlayVisibility:Function = _global.ASnative(5,111); // ():Number
 
//
 
//
static var _setOverlayBlendingEnabled:Function = ['ASnative'](5,112); // (enabled:Number):Void
+
static var _setOverlayBlendingEnabled:Function = _global.ASnative(5,112); // (enabled:Number):Void
static var _getOverlayBlendingEnabled:Function = ['ASnative'](5,113); // ():Number
+
static var _getOverlayBlendingEnabled:Function = _global.ASnative(5,113); // ():Number
 
static var OVERLAY_BLENDING_DISABLED:Number = 0;
 
static var OVERLAY_BLENDING_DISABLED:Number = 0;
 
static var OVERLAY_BLENDING_ENABLED:Number = 1;
 
static var OVERLAY_BLENDING_ENABLED:Number = 1;
 
//
 
//
static var _setOverlayChromaBlendingEnabled:Function = ['ASnative'](5,114); // (enabled:Number):Void
+
static var _setOverlayChromaBlendingEnabled:Function = _global.ASnative(5,114); // (enabled:Number):Void
static var _getOverlayChromaBlendingEnabled:Function = ['ASnative'](5,115); // ():Number
+
static var _getOverlayChromaBlendingEnabled:Function = _global.ASnative(5,115); // ():Number
 
static var OVERLAY_CHROMA_BLENDING_DISABLED:Number = 0;
 
static var OVERLAY_CHROMA_BLENDING_DISABLED:Number = 0;
 
static var OVERLAY_CHROMA_BLENDING_ENABLED:Number = 1;
 
static var OVERLAY_CHROMA_BLENDING_ENABLED:Number = 1;
 
//
 
//
static var _setOverlayChromaBlendColor:Function = ['ASnative'](5,116); // (rrggbb:Number):Void
+
static var _setOverlayChromaBlendColor:Function = _global.ASnative(5,116); // (rrggbb:Number):Void
static var _getOverlayChromaBlendColor:Function = ['ASnative'](5,117); // ():Number
+
static var _getOverlayChromaBlendColor:Function = _global.ASnative(5,117); // ():Number
 
//
 
//
 
// display buffers
 
// display buffers
 
//
 
//
static var _setDisplay:Function = ['ASnative'](5,83); // (index:Number):Void
+
static var _setDisplay:Function = _global.ASnative(5,83); // (index:Number):Void
static var _getDisplay:Function = ['ASnative'](5,88); // ():Number
+
static var _getDisplay:Function = _global.ASnative(5,88); // ():Number
 
static var DISPLAY_MAIN:Number = 0;
 
static var DISPLAY_MAIN:Number = 0;
 
static var DISPLAY_OVERLAY:Number = 1;
 
static var DISPLAY_OVERLAY:Number = 1;
Line 117: Line 117:
 
// events
 
// events
 
//
 
//
static var _routeUIEvents:Function = ['ASnative'](5,82); // (mask:Number):Void
+
static var _routeUIEvents:Function = _global.ASnative(5,82); // (mask:Number):Void
 
static var ROUTE_UI_EVENTS_NONE:Number = 0;
 
static var ROUTE_UI_EVENTS_NONE:Number = 0;
 
static var ROUTE_UI_EVENTS_MASTER:Number = 1;
 
static var ROUTE_UI_EVENTS_MASTER:Number = 1;
Line 125: Line 125:
 
// master/slave
 
// master/slave
 
//
 
//
static var _setSlaveVar:Function = ['ASnative'](5,80); // (varName:String, value:String):Void
+
static var _setSlaveVar:Function = _global.ASnative(5,80); // (varName:String, value:String):Void
static var _getSlaveVar:Function = ['ASnative'](5,81); // (varName:String):String
+
static var _getSlaveVar:Function = _global.ASnative(5,81); // (varName:String):String
 
//
 
//
static var _startSlave:Function = ['ASnative'](5,84); // (path:String,params:Object):Number
+
static var _startSlave:Function = _global.ASnative(5,84); // (path:String,params:Object):Number
static var _stopSlave:Function = ['ASnative'](5,85); // (id:Number):Void
+
static var _stopSlave:Function = _global.ASnative(5,85); // (id:Number):Void
static var _pauseResumeSlave:Function = ['ASnative'](5,86);
+
static var _pauseResumeSlave:Function = _global.ASnative(5,86);
 
static var SLAVE_RESUME:Number = 0;
 
static var SLAVE_RESUME:Number = 0;
 
static var SLAVE_PAUSE:Number = 1;
 
static var SLAVE_PAUSE:Number = 1;
static var _getDefaultSlaveInstance:Function = ['ASnative'](5,87); // () => id
+
static var _getDefaultSlaveInstance:Function = _global.ASnative(5,87); // () => id
static var _getSlaveLoadStatus:Function = ['ASnative'](5,89); // ():Number
+
static var _getSlaveLoadStatus:Function = _global.ASnative(5,89); // ():Number
 
static var SLAVE_LOAD_STATUS_INITIAL:Number = 0;
 
static var SLAVE_LOAD_STATUS_INITIAL:Number = 0;
 
static var SLAVE_LOAD_STATUS_DOWNLOADING:Number = 1;
 
static var SLAVE_LOAD_STATUS_DOWNLOADING:Number = 1;
Line 148: Line 148:
 
// cache
 
// cache
 
//
 
//
static var _expireCache:Function = ['ASnative'](5,100); // ()
+
static var _expireCache:Function = _global.ASnative(5,100); // ()
static var _expireCacheFiltered:Function = ['ASnative'](5,101); // (filter:String):Void
+
static var _expireCacheFiltered:Function = _global.ASnative(5,101); // (filter:String):Void
 
//
 
//
 
// time
 
// time
 
//
 
//
static var _setTimeZone:Function = ['ASnative'](103,321); // (timezone:String):Void
+
static var _setTimeZone:Function = _global.ASnative(103,321); // (timezone:String):Void
static var _getTimeZone:Function = ['ASnative'](103,320); // ():String
+
static var _getTimeZone:Function = _global.ASnative(103,320); // ():String
 
//
 
//
static var _setSystemTime:Function = ['ASnative'](103,322); // (time:Number):Void
+
static var _setSystemTime:Function = _global.ASnative(103,322); // (time:Number):Void
 
//
 
//
 
// audio settings (requires firmware >= 1.6)
 
// audio settings (requires firmware >= 1.6)
 
//
 
//
static var _getSystemVolume:Function = ['ASnative'](5,180); // ():Number
+
static var _getSystemVolume:Function = _global.ASnative(5,180); // ():Number
static var _setSystemVolume:Function = ['ASnative'](5,181); // (volume:Number):Void
+
static var _setSystemVolume:Function = _global.ASnative(5,181); // (volume:Number):Void
static var _getSystemBalance:Function = ['ASnative'](5,182); // ():Number
+
static var _getSystemBalance:Function = _global.ASnative(5,182); // ():Number
static var _setSystemBalance:Function = ['ASnative'](5,183); // (balance:Number):Void
+
static var _setSystemBalance:Function = _global.ASnative(5,183); // (balance:Number):Void
static var _getSystemMute:Function = ['ASnative'](5,184); // ():Number
+
static var _getSystemMute:Function = _global.ASnative(5,184); // ():Number
static var _setSystemMute:Function = ['ASnative'](5,185); // (mute:Number):Void
+
static var _setSystemMute:Function = _global.ASnative(5,185); // (mute:Number):Void
 
static var AUDIO_VOLUME_MIN:Number = 0;
 
static var AUDIO_VOLUME_MIN:Number = 0;
 
static var AUDIO_VOLUME_MAX:Number = 100;
 
static var AUDIO_VOLUME_MAX:Number = 100;
Line 176: Line 176:
 
// external audio player
 
// external audio player
 
//
 
//
static var _getAudioPlayerPID:Function = ['ASnative'](5,130); // ():Number
+
static var _getAudioPlayerPID:Function = _global.ASnative(5,130); // ():Number
static var _getAudioPlayerState:Function = ['ASnative'](5,131); // ():Number
+
static var _getAudioPlayerState:Function = _global.ASnative(5,131); // ():Number
 
static var AUDIO_PLAYER_IDLE:Number = -1;
 
static var AUDIO_PLAYER_IDLE:Number = -1;
 
static var AUDIO_PLAYER_PAUSED:Number = 0;
 
static var AUDIO_PLAYER_PAUSED:Number = 0;
 
static var AUDIO_PLAYER_PLAYING:Number = 1;
 
static var AUDIO_PLAYER_PLAYING:Number = 1;
static var _pauseAudioPlayer:Function = ['ASnative'](5,132);
+
static var _pauseAudioPlayer:Function = _global.ASnative(5,132);
static var _resumeAudioPlayer:Function = ['ASnative'](5,133);
+
static var _resumeAudioPlayer:Function = _global.ASnative(5,133);
static var _stopAudioPlayer:Function = ['ASnative'](5,134);
+
static var _stopAudioPlayer:Function = _global.ASnative(5,134);
static var _getAudioPlayerTrackAttributes:Function = ['ASnative'](5,135); // ():String  
+
static var _getAudioPlayerTrackAttributes:Function = _global.ASnative(5,135); // ():String  
 
 
 
private static function chomp(s:String):String {
 
private static function chomp(s:String):String {

Revision as of 22:31, 13 September 2008

This is an Actionscript 2 file which lists the various ASnative extensions to the Flash Lite player.

Note that some of this will likely change as an official mechanism for extending the player is created and documented by Adobe.

Many of these ASnatives are available only to the "master" instance, typically the Control Panel.

class com.chumby.ChumbyNative
{
	//
	// file operations
	//
	static var _getFile:Function = _global.ASnative(5,50); // (path:String):String
	static var _putFile:Function = _global.ASnative(5,51); // (path:String,data:String)
	static var _backtick:Function = _global.ASnative(5,52); // (path:String):String
	static var _fileExists:Function = _global.ASnative(5,53); // ():Number
	static var FILE_NOT_FOUND:Number = 0;
	static var FILE_FOUND:Number = 1;
	//
	// touchscreen
	//
	static var _rawX:Function = _global.ASnative(5,10); // ():Number
	static var _rawY:Function = _global.ASnative(5,11); // ():Number
	static var _setCalibration:Function = _global.ASnative(5,12); // (xoffset:Number,xscale:Number,yoffset:Number,yscale:Number)
	static var _writeCalibration:Function = _global.ASnative(5,13); // ():Void
	static var _getTouchClick:Function = _global.ASnative(5,43); // ():Number
	static var _setTouchClick:Function = _global.ASnative(5,44); // (doClick:Number):Void
	static var TOUCHCLICK_OFF:Number = 0;
	static var TOUCHCLICK_ON:Number = 1;
	//
	// speaker
	//
	static var _getSpeakerMute:Function = _global.ASnative(5,17); // ():Number
	static var _setSpeakerMute:Function = _global.ASnative(5,18); // (mute:Number):Void
	static var SPEAKER_UNMUTED:Number = 0;
	static var SPEAKER_MUTED:Number = 1;
	//
	// headphone jack
	//
	static var _headphonesIn:Function = _global.ASnative(5,38); // ():Number
	static var HEADPHONE_OUT:Number = 0;
	static var HEADPHONE_IN:Number = 1;
	//
	// LCD mute (HW 3.5, 3.6, 3.7)
	//
	static var _getLCDMute:Function = _global.ASnative(5,19); // ():Number
	static var _setLCDMute:Function = _global.ASnative(5,20); // (mute:Number):Void
	static var LCD_ON:Number = 0;
	static var LCD_DIM:Number = 1;
	static var LCD_OFF:Number = 2;
	//
	// bend sensor
	//
	static var _bent:Function = _global.ASnative(5,25); // ():Number
	static var UNBENT:Number = 0;
	static var BENT:Number = 1;
	//
	// accelerometer
	//
	static var _accelerometer:Function = _global.ASnative(5,60); // (index:Number):Number
	static var ACCELEROMETER_VERSION:Number = 0;
	static var ACCELEROMETER_TIMESTAMP:Number = 1;
	static var ACCELEROMETER_CURRENT:Number = 2;
	static var ACCELEROMETER_CURRENT_X:Number = 2;
	static var ACCELEROMETER_CURRENT_Y:Number = 3;
	static var ACCELEROMETER_CURRENT_Z:Number = 4;
	static var ACCELEROMETER_AVERAGE:Number = 5;
	static var ACCELEROMETER_AVERAGE_X:Number = 5;
	static var ACCELEROMETER_AVERAGE_Y:Number = 6;
	static var ACCELEROMETER_AVERAGE_Z:Number = 7;
	static var ACCELEROMETER_IMPACT:Number = 8;
	static var ACCELEROMETER_IMPACT_X:Number = 8;
	static var ACCELEROMETER_IMPACT_Y:Number = 9;
	static var ACCELEROMETER_IMPACT_Z:Number = 10;
	static var ACCELEROMETER_IMPACT_TIME:Number = 11;
	static var ACCELEROMETER_IMPACT_HINTS:Number = 12;
	//
	// DC Power
	//
	static var _dcVolts:Function = _global.ASnative(5,16); // ():Number
	static var _batteryVolts:Function = _global.ASnative(5,39); // ():Number
	static var _powerSource:Function = _global.ASnative(5,41); // ():Number
	static var POWER_SOURCE_BATTERY:Number = 0;
	static var POWER_SOURCE_EXTERNAL:Number = 1;
	//
	// power management
	//
	static var _powerDown:Function = _global.ASnative(5,40); // (when:Number[,secondsToPowerUp:Number]):Void
	static var POWER_DOWN_ON_EXIT:Number = 1;
	static var POWER_DOWN_NOW:Number = 2;
	//
	// graphic overlay
	//
	static var _setOverlayVisibility:Function = _global.ASnative(5,110); // (opacity0_255:Number):Void
	static var _getOverlayVisibility:Function = _global.ASnative(5,111); // ():Number
	//
	static var _setOverlayBlendingEnabled:Function = _global.ASnative(5,112); // (enabled:Number):Void
	static var _getOverlayBlendingEnabled:Function = _global.ASnative(5,113); // ():Number
	static var OVERLAY_BLENDING_DISABLED:Number = 0;
	static var OVERLAY_BLENDING_ENABLED:Number = 1;
	//
	static var _setOverlayChromaBlendingEnabled:Function = _global.ASnative(5,114); // (enabled:Number):Void
	static var _getOverlayChromaBlendingEnabled:Function = _global.ASnative(5,115); // ():Number
	static var OVERLAY_CHROMA_BLENDING_DISABLED:Number = 0;
	static var OVERLAY_CHROMA_BLENDING_ENABLED:Number = 1;
	//
	static var _setOverlayChromaBlendColor:Function = _global.ASnative(5,116); // (rrggbb:Number):Void
	static var _getOverlayChromaBlendColor:Function = _global.ASnative(5,117); // ():Number
	//
	// display buffers
	//
	static var _setDisplay:Function = _global.ASnative(5,83); // (index:Number):Void
	static var _getDisplay:Function = _global.ASnative(5,88); // ():Number
	static var DISPLAY_MAIN:Number = 0;
	static var DISPLAY_OVERLAY:Number = 1;
	//
	// events
	//
	static var _routeUIEvents:Function = _global.ASnative(5,82); // (mask:Number):Void
	static var ROUTE_UI_EVENTS_NONE:Number = 0;
	static var ROUTE_UI_EVENTS_MASTER:Number = 1;
	static var ROUTE_UI_EVENTS_SLAVE:Number = 2;
	static var ROUTE_UI_EVENTS_BOTH:Number = 3;
	//
	// master/slave
	//
	static var _setSlaveVar:Function = _global.ASnative(5,80); // (varName:String, value:String):Void
	static var _getSlaveVar:Function = _global.ASnative(5,81); // (varName:String):String
	//
	static var _startSlave:Function = _global.ASnative(5,84); // (path:String,params:Object):Number
	static var _stopSlave:Function = _global.ASnative(5,85); // (id:Number):Void
	static var _pauseResumeSlave:Function = _global.ASnative(5,86);
	static var SLAVE_RESUME:Number = 0;
	static var SLAVE_PAUSE:Number = 1;
	static var _getDefaultSlaveInstance:Function = _global.ASnative(5,87); // () => id
	static var _getSlaveLoadStatus:Function = _global.ASnative(5,89); // ():Number
	static var SLAVE_LOAD_STATUS_INITIAL:Number = 0;
	static var SLAVE_LOAD_STATUS_DOWNLOADING:Number = 1;
	static var SLAVE_LOAD_STATUS_VALIDATING:Number = 2;
	static var SLAVE_LOAD_STATUS_SETTING_BUFFER:Number = 3;
	static var SLAVE_LOAD_STATUS_PLAYING:Number = 4;
	static var SLAVE_LOAD_STATUS_DOWNLOAD_FAILED:Number = -1;
	static var SLAVE_LOAD_STATUS_DOWNLOAD_TIMED_OUT:Number = -2;
	static var SLAVE_LOAD_STATUS_VALIDATION_FAILED:Number = -3;
	static var SLAVE_LOAD_STATUS_SET_BUFFER_FAILED:Number = -4;
	static var SLAVE_LOAD_STATUS_ACTIONSCRIPT_TIMEOUT:Number = -5;
	//
	// cache
	//
	static var _expireCache:Function = _global.ASnative(5,100); // ()
	static var _expireCacheFiltered:Function = _global.ASnative(5,101); // (filter:String):Void
	//
	// time
	//
	static var _setTimeZone:Function = _global.ASnative(103,321); // (timezone:String):Void
	static var _getTimeZone:Function = _global.ASnative(103,320); // ():String
	//
	static var _setSystemTime:Function = _global.ASnative(103,322); // (time:Number):Void
	//
	// audio settings (requires firmware >= 1.6)
	//
	static var _getSystemVolume:Function = _global.ASnative(5,180); // ():Number
	static var _setSystemVolume:Function = _global.ASnative(5,181); // (volume:Number):Void
	static var _getSystemBalance:Function = _global.ASnative(5,182); // ():Number
	static var _setSystemBalance:Function = _global.ASnative(5,183); // (balance:Number):Void
	static var _getSystemMute:Function = _global.ASnative(5,184); // ():Number
	static var _setSystemMute:Function = _global.ASnative(5,185); // (mute:Number):Void
	static var AUDIO_VOLUME_MIN:Number = 0;
	static var AUDIO_VOLUME_MAX:Number = 100;
	static var AUDIO_BALANCE_LEFT:Number = -100;
	static var AUDIO_BALANCE_RIGHT:Number = 100;
	static var AUDIO_BALANCE_MIDDLE:Number = 0;
	static var AUDIO_MUTE_OFF:Number = 0;
	static var AUDIO_MUTE_ON:Number = 1;
	//
	// external audio player
	//
	static var _getAudioPlayerPID:Function = _global.ASnative(5,130); // ():Number
	static var _getAudioPlayerState:Function = _global.ASnative(5,131); // ():Number
	static var AUDIO_PLAYER_IDLE:Number = -1;
	static var AUDIO_PLAYER_PAUSED:Number = 0;
	static var AUDIO_PLAYER_PLAYING:Number = 1;
	static var _pauseAudioPlayer:Function = _global.ASnative(5,132);
	static var _resumeAudioPlayer:Function = _global.ASnative(5,133);
	static var _stopAudioPlayer:Function = _global.ASnative(5,134);
	static var _getAudioPlayerTrackAttributes:Function = _global.ASnative(5,135); // ():String 
	
	private static function chomp(s:String):String {
		while (s.length && (s.slice(-1)=='\n' || s.slice(-1)==' ')) {
			s = s.slice(0,-1);
		}
		return s;
	}
	
	static function getFile(f:String):String {
		return chomp(_getFile(f));
	}

	static function putFile(f:String,d):Void {
		_putFile(f,d+"\n");
	}

	static function backtick(c:String):String {
		return chomp(_backtick(c));
	}
}