package; import Client.ClientData; typedef VideoItem = { url:String, title:String, author:String, duration:Float } typedef WsEvent = { type:WsEventType, ?connected:{ clients:Array, isUnknownClient:Bool, clientName:String, videoList:Array }, ?login:{ clientName:String, ?clients:Array, ?isUnknownClient:Bool, }, ?logout:{ clientName:String, clients:Array, }, ?message:{ clientName:String, text:String }, ?updateClients:{ clients:Array, }, ?addVideo:{ item:VideoItem }, ?removeVideo:{ url:String }, ?pause:{ time:Float }, ?play:{ time:Float }, ?getTime:{ time:Float, paused:Bool }, ?setTime:{ time:Float }, ?setLeader:{ clientName:String } } enum abstract WsEventType(String) { var Connected; var Login; var LoginError; var Logout; var Message; var UpdateClients; // var AddClient; // var RemoveClient; var AddVideo; var RemoveVideo; var VideoLoaded; var Pause; var Play; var GetTime; var SetTime; var SetLeader; }