core: Allow NetStream script data to call any functions
This commit is contained in:
parent
dd0d4f7eea
commit
7c33932f53
|
@ -24,7 +24,6 @@ use gc_arena::{Collect, GcCell, MutationContext};
|
||||||
use ruffle_render::bitmap::BitmapInfo;
|
use ruffle_render::bitmap::BitmapInfo;
|
||||||
use ruffle_video::frame::EncodedFrame;
|
use ruffle_video::frame::EncodedFrame;
|
||||||
use ruffle_video::VideoStreamHandle;
|
use ruffle_video::VideoStreamHandle;
|
||||||
use ruffle_wstr::WStr;
|
|
||||||
use std::cmp::max;
|
use std::cmp::max;
|
||||||
use std::io::Seek;
|
use std::io::Seek;
|
||||||
use std::sync::{Arc, Mutex};
|
use std::sync::{Arc, Mutex};
|
||||||
|
@ -713,10 +712,7 @@ impl<'gc> NetStream<'gc> {
|
||||||
) -> Result<(), Avm2Error<'gc>> {
|
) -> Result<(), Avm2Error<'gc>> {
|
||||||
match avm_object {
|
match avm_object {
|
||||||
Some(AvmObject::Avm1(object)) => {
|
Some(AvmObject::Avm1(object)) => {
|
||||||
match variable_name {
|
let avm_string_name = AvmString::new_utf8_bytes(context.gc_context, variable_name);
|
||||||
b"onCuePoint" | b"onMetaData" => {
|
|
||||||
let avm_string_name =
|
|
||||||
AvmString::new_utf8_bytes(context.gc_context, variable_name);
|
|
||||||
|
|
||||||
let root = context.stage.root_clip().expect("root");
|
let root = context.stage.root_clip().expect("root");
|
||||||
let mut activation = Avm1Activation::from_nothing(
|
let mut activation = Avm1Activation::from_nothing(
|
||||||
|
@ -734,29 +730,17 @@ impl<'gc> NetStream<'gc> {
|
||||||
Avm1ExecutionReason::Special,
|
Avm1ExecutionReason::Special,
|
||||||
) {
|
) {
|
||||||
tracing::error!(
|
tracing::error!(
|
||||||
"Got error when dispatching AVM1 onCuePoint event from NetStream: {}",
|
"Got error when dispatching AVM1 {} script data handler from NetStream: {}",
|
||||||
e
|
avm_string_name,
|
||||||
|
e,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
b"onXMPData" => {
|
|
||||||
tracing::warn!("Stub: FLV stream data onXMPData for AVM1");
|
|
||||||
}
|
|
||||||
_ => {
|
|
||||||
tracing::warn!(
|
|
||||||
"Stub: FLV stream data {} for AVM1",
|
|
||||||
WStr::from_units(variable_name)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
Some(AvmObject::Avm2(_object)) => {
|
Some(AvmObject::Avm2(_object)) => {
|
||||||
match variable_name {
|
|
||||||
b"onCuePoint" | b"onMetaData" => {
|
|
||||||
let mut activation = Avm2Activation::from_nothing(context.reborrow());
|
let mut activation = Avm2Activation::from_nothing(context.reborrow());
|
||||||
let client_object = self.client().expect(
|
let client_object = self
|
||||||
"Client should be initialized if script data is being accessed",
|
.client()
|
||||||
);
|
.expect("Client should be initialized if script data is being accessed");
|
||||||
|
|
||||||
let data_object = variable_data.to_avm2_value(&mut activation);
|
let data_object = variable_data.to_avm2_value(&mut activation);
|
||||||
|
|
||||||
|
@ -766,14 +750,6 @@ impl<'gc> NetStream<'gc> {
|
||||||
&mut activation,
|
&mut activation,
|
||||||
)?;
|
)?;
|
||||||
}
|
}
|
||||||
_ => {
|
|
||||||
tracing::warn!(
|
|
||||||
"Stub: FLV stream data {} for AVM2",
|
|
||||||
WStr::from_units(variable_name)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
None => {}
|
None => {}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue