blob: 1e56d952757f1629e2e81411dc536c9d514728c8 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2007 IBM Corporation and Others
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Hisashi MIYASHITA - initial API and implementation
*******************************************************************************/
import flash.external.ExternalInterface;
class Eclipse_ACTF_Media {
private static function addObject(o:Object, target:String, a:Array) {
var len:Number = a.length;
for (var i:Number = 0; i < len; i++) {
var o2:Object = eval(a[i].target);
if (o === o2) return;
}
a.push(new Eclipse_ACTF_Node(null, target));
}
private static function searchVideoInternal(o:Object,
target:String,
traversed:Object,
r:Array) {
if (traversed[target]) return;
traversed[target] = true;
if (o instanceof NetStream) {
addObject(o, target, r);
return;
}
/* else if (o instanceof XMLNode) {
return;
} else if (Eclipse_ACTF_Util.isInClass(o, mx.core.UIObject)) {
return;
}*/
for (var c in o) {
var co:Object = o[c];
var cTarget:String = target + "." + c;
if (co._target) {
cTarget = Eclipse_ACTF_Node.normalizeTargetName(co._target);
} else {
co._target = cTarget;
}
searchVideoInternal(co, cTarget, traversed, r);
}
}
public static function searchVideo():Array {
/*
var traversed:Object = new Object();
var r:Array = new Array();
for (var i = 0; i < arguments.length; i++) {
var path:String = arguments[i];
var o:Object = eval(path);
searchVideoInternal(o, path, traversed, r);
}
return r;
*/
var r:Array = new Array();
var streams:Array = _global.Eclipse_ACTF_Video.streams;
for (var i = 0; i < streams.length; i++) {
var slot:Object = streams[i];
addObject(slot, "_global.Eclipse_ACTF_Video.streams." + i, r);
}
return r;
}
private static function searchSoundInternal(o:Object,
target:String,
traversed:Object,
r:Array) {
if (traversed[target]) return;
traversed[target] = true;
if (o instanceof Sound) {
addObject(o, target, r);
return;
}
for (var c in o) {
var cTarget:String = target + "." + c;
var co:Object = eval(cTarget);
if (co._target) {
cTarget = Eclipse_ACTF_Node.normalizeTargetName(co._target);
} else {
co._target = cTarget;
}
// ExternalInterface.call("alert", cTarget);
searchSoundInternal(co, cTarget, traversed, r);
}
}
public static function searchSound(path:String):Array {
/* var o:Object = eval(path);
var traversed:Object = new Object();
var r:Array = new Array();
searchSoundInternal(o, path, traversed, r);
return r; */
if (!_global.Eclipse_ACTF_FLASHBridgeGlobalSound) {
_global.Eclipse_ACTF_FLASHBridgeGlobalSound = new Sound();
}
var r:Array = new Array();
r.push(new Eclipse_ACTF_Node(null, "_global.Eclipse_ACTF_FLASHBridgeGlobalSound"));
return r;
}
/*
public static function getVolume(path:String):Number {
var s:Sound = eval(path);
return s.getVolume();
}
public static function setVolume(path:String, val:Number) {
var s:Sound = eval(path);
s.setVolume(val);
}
*/
}