internal void FireOnSkypeApp2AppStreamListChange(SktSkype sender, OnSkypeApp2AppStreamListChangeArgs e) { if (OnSkypeApp2AppStreamListChange == null) return; // No event assigned if (gui == null) { FireCallbackInSeparateThread(e, OnSkypeApp2AppStreamListChangeInNewThread); return; } gui.BeginInvoke(OnSkypeApp2AppStreamListChange, new object[] { sender, e }); // Synchronizing to gui thread }
internal void ProcessOnSkypeApp2AppStreamListChange(SktSkype sender) { if (skypeRef.logging) skypeRef.Log("Processing event OnSkypeApp2AppStreamListChange"); OnSkypeApp2AppStreamListChangeArgs args = new OnSkypeApp2AppStreamListChangeArgs(); int marker = 0; int typeTag = 0; do { typeTag = skypeRef.transport.ReadByte(); if (typeTag == 122) break; marker = skypeRef.transport.ReadByte(); switch (marker) { case 1: args.appname = skypeRef.decoder.DecodeString(); break; case 2: args.listType = (SktSkype.APP2APP_STREAMS)skypeRef.decoder.DecodeUint(); break; case 3: args.streams = skypeRef.decoder.DecodeStringList(); break; case 4: args.receivedSizes = skypeRef.decoder.DecodeUintList(); break; default: if (marker != 122) skypeRef.Error(String.Format("Invalid event argument tag {0} in OnSkypeApp2AppStreamListChange", marker)); break; } } while (marker != 'z'); skypeRef.transport.ResumeSocketReaderFromEvent(); args.senderobj = sender; FireOnSkypeApp2AppStreamListChange(sender, args); }