private AMFArray ReadAmf3Array() { int v = ReadUInt29(); string key = ReadParamName(); AMFArray result; if (key == String.Empty) { List <object> objs = new List <object>(); result = new AMFArray(objs); for (int i = 0; i < v >> 1; i++) { objs.Add(ReadParamValue()); } } else { Dictionary <string, object> strs = new Dictionary <string, object>(); result = new AMFArray(strs); while (key != String.Empty) { strs.Add(key, ReadParamValue()); key = ReadParamName(); } } return(result); }
private void OutParamValue(AMFArray obj) { output.Add((byte)AMF3Type.ArrayMarker); int v = obj.Count << 1 | 1; OutUInt29(v); output.Add(0x01); OutParamValue(obj.GetObject(0)); }
private AMFArray ReadAmf0StrictArray() { List <object> objs = new List <object>(); AMFArray result = new AMFArray(objs); int l = ReadInt32(); for (int i = 0; i < l; i++) { objs.Add(ReadParamValue()); } return(result); }