void V8PannerNode::distanceModelAttributeSetterCustom(v8::Local<v8::Value> value, const v8::PropertyCallbackInfo<void>& info) { ExceptionState exceptionState(ExceptionState::SetterContext, "distanceModel", "PannerNode", info.Holder(), info.GetIsolate()); PannerNode* impl = V8PannerNode::toNative(info.Holder()); if (value->IsNumber()) { uint32_t model = toUInt32(value, exceptionState); if (exceptionState.throwIfNeeded()) return; if (!impl->setDistanceModel(model)) { exceptionState.throwTypeError("Illegal distanceModel"); exceptionState.throwIfNeeded(); } return; } if (value->IsString()) { String model = toCoreString(value.As<v8::String>()); if (model == "linear" || model == "inverse" || model == "exponential") { impl->setDistanceModel(model); return; } } exceptionState.throwTypeError("Illegal distanceModel"); exceptionState.throwIfNeeded(); }
void V8PannerNode::distanceModelAttrSetterCustom(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info) { PannerNode* imp = V8PannerNode::toNative(info.Holder()); #if ENABLE(LEGACY_WEB_AUDIO) if (value->IsNumber()) { bool ok = false; uint32_t model = toUInt32(value, ok); ASSERT(ok); if (!imp->setDistanceModel(model)) throwError(v8TypeError, "Illegal distanceModel", info.GetIsolate()); return; } #endif if (value->IsString()) { String model = toWebCoreString(value); if (model == "linear" || model == "inverse" || model == "exponential") { imp->setDistanceModel(model); return; } } throwError(v8TypeError, "Illegal distanceModel", info.GetIsolate()); }
void V8PannerNode::panningModelAccessorSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info) { PannerNode* imp = V8PannerNode::toNative(info.Holder()); #if ENABLE(LEGACY_WEB_AUDIO) if (value->IsNumber()) { bool ok = false; uint32_t model = toUInt32(value, ok); ASSERT(ok); if (!imp->setPanningModel(model)) throwError(v8TypeError, "Illegal panningModel", info.GetIsolate()); return; } #endif if (value->IsString()) { String model = toWebCoreString(value); if (model == "equalpower" || model == "HRTF" || model == "soundfield") { imp->setPanningModel(model); return; } } throwError(v8TypeError, "Illegal panningModel", info.GetIsolate()); }
static void rolloffFactorAttrSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info) { PannerNode* imp = V8PannerNode::toNative(info.Holder()); float v = static_cast<float>(value->NumberValue()); imp->setRolloffFactor(v); return; }
static v8::Handle<v8::Value> setVelocityCallback(const v8::Arguments& args) { if (args.Length() < 3) return throwNotEnoughArgumentsError(args.GetIsolate()); PannerNode* imp = V8PannerNode::toNative(args.Holder()); V8TRYCATCH(float, x, static_cast<float>(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)->NumberValue())); V8TRYCATCH(float, y, static_cast<float>(MAYBE_MISSING_PARAMETER(args, 1, DefaultIsUndefined)->NumberValue())); V8TRYCATCH(float, z, static_cast<float>(MAYBE_MISSING_PARAMETER(args, 2, DefaultIsUndefined)->NumberValue())); imp->setVelocity(x, y, z); return v8Undefined(); }
static v8::Handle<v8::Value> coneInnerAngleAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info) { PannerNode* imp = V8PannerNode::toNative(info.Holder()); return v8::Number::New(imp->coneInnerAngle()); }
static v8::Handle<v8::Value> distanceModelAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info) { PannerNode* imp = V8PannerNode::toNative(info.Holder()); return v8String(imp->distanceModel(), info.GetIsolate()); }