void nspawn_array_insert(struct PP_Var array, uint32_t index, struct PP_Var value_var) { uint32_t old_length = PSInterfaceVarArray()->GetLength(array); PSInterfaceVarArray()->SetLength(array, old_length + 1); for (uint32_t i = old_length; i > index; --i) { struct PP_Var from_var = PSInterfaceVarArray()->Get(array, i - 1); PSInterfaceVarArray()->Set(array, i, from_var); PSInterfaceVar()->Release(from_var); } PSInterfaceVarArray()->Set(array, index, value_var); PSInterfaceVar()->Release(value_var); }
void nspawn_array_setstring(struct PP_Var array, uint32_t index, const char* value) { struct PP_Var value_var = PSInterfaceVar()->VarFromUtf8(value, strlen(value)); PSInterfaceVarArray()->Set(array, index, value_var); PSInterfaceVar()->Release(value_var); }
void MessageHandlerResize(struct PP_Var key, struct PP_Var value, void* user_data) { assert(value.type == PP_VARTYPE_ARRAY); assert(PSInterfaceVarArray()->GetLength(value) == 2); struct PP_Var width_var = PSInterfaceVarArray()->Get(value, 0); struct PP_Var height_var = PSInterfaceVarArray()->Get(value, 1); assert(width_var.type == PP_VARTYPE_INT32); assert(height_var.type == PP_VARTYPE_INT32); int width = width_var.value.as_int; int height = height_var.value.as_int; HandleResize(width, height); }
struct PP_Var nspawn_array_create(void) { struct PP_Var ret = PSInterfaceVarArray()->Create(); return ret; }
void nspawn_array_appendstring(struct PP_Var array, const char* value) { uint32_t index = PSInterfaceVarArray()->GetLength(array); nspawn_array_setstring(array, index, value); }