public void Save(Animazione elem, BinaryWriter bw) { // Animazione bw.Write(elem.GetType().ToString()); bw.Write(elem.Nome); bw.Write(elem.FrameRate); // Modello di riferimento Modello modello = Documento.getInstance().ModelloRiferimento; bw.Write(modello.Size.Width); bw.Write(modello.Size.Height); // Frames bw.Write(elem.Frames.Count); byte[] frameAsArray; foreach (Frame frame in elem.Frames) { frameAsArray = frame.ToByteArray(); bw.Write(frame.Size.Width); bw.Write(frameAsArray.Length); bw.Write(frameAsArray); } // Informazione IPersister infoPersister = PersisterFactory.GetPersister(elem.InformazioneAssociata.GetType()); infoPersister.Save(elem.InformazioneAssociata, bw); }
public ImmagineFissa Retrieve(BinaryReader br) { // Immagine string nome = br.ReadString(); // Modello Modello modello = Documento.getInstance().ModelloRiferimento; int width = br.ReadInt32(); int height = br.ReadInt32(); if (width != modello.Size.Width || height != modello.Size.Height) { return(null); } // Frame int nCol = br.ReadInt32(); int len = br.ReadInt32(); byte[] frameAsArray = new byte[len]; br.Read(frameAsArray, 0, len); // Informazione IPersister infoPersister = PersisterFactory.GetPersister(br.ReadString()); TypeAttribute attr = (TypeAttribute)infoPersister.GetType().GetCustomAttribute(typeof(TypeAttribute)); IInformazione infoAssociata = (IInformazione)infoPersister.Retrieve(br); // Out ImmagineFissa result = new ImmagineFissa(new Frame(frameAsArray, nCol, width * height), infoAssociata, nome); return(result); }
public void Save(Sequenza elem, BinaryWriter bw) { // Sequenza bw.Write(elem.GetType().ToString()); bw.Write(elem.Nome); // Modello di riferimento Modello modello = Documento.getInstance().ModelloRiferimento; bw.Write(modello.Size.Width); bw.Write(modello.Size.Height); // Elementi bw.Write(elem.Count); Elemento value; IPersister persister; for (int i = 0; i < elem.Count; i++) { value = elem[i]; bw.Write(elem.GetDurataOf(value)); persister = PersisterFactory.GetPersister(value.GetType()); persister.Save(value, bw); } }
public Sequenza Retrieve(BinaryReader br) { // Sequenza string nome = br.ReadString(); Sequenza result = new Sequenza(); result.Nome = nome; // Modello Modello modello = Documento.getInstance().ModelloRiferimento; int width = br.ReadInt32(); int height = br.ReadInt32(); if (width != modello.Size.Width || height != modello.Size.Height) { return(null); } // Elementi int nElementi = br.ReadInt32(); uint durata; string type; IPersister persister; for (int i = 0; i < nElementi; i++) { durata = br.ReadUInt32(); type = br.ReadString(); persister = PersisterFactory.GetPersister(type); result.AggiungiElemento((Elemento)persister.Retrieve(br), durata); } // Out return(result); }
public Animazione Retrieve(BinaryReader br) { // Animazione string nome = br.ReadString(); uint frameRate = br.ReadUInt32(); Animazione result = new Animazione(frameRate); result.Nome = nome; // Modello Modello modello = Documento.getInstance().ModelloRiferimento; int width = br.ReadInt32(); int height = br.ReadInt32(); if (width != modello.Size.Width || height != modello.Size.Height) { return(null); } // Frames byte[] frameAsArray; int nFrames = br.ReadInt32(); for (int i = 0; i < nFrames; i++) { int nCol = br.ReadInt32(); int len = br.ReadInt32(); frameAsArray = new byte[len]; br.Read(frameAsArray, 0, len); result.Frames.Add(new Frame(frameAsArray, nCol, width * height)); } // Informazione IPersister infoPersister = PersisterFactory.GetPersister(br.ReadString()); IInformazione infoAssociata = (IInformazione)infoPersister.Retrieve(br); // Out result.InformazioneAssociata = infoAssociata; return(result); }
public void Save(ImmagineFissa elem, BinaryWriter bw) { // Immagine bw.Write(elem.GetType().ToString()); bw.Write(elem.Nome); // Modello di riferimento Modello modello = Documento.getInstance().ModelloRiferimento; bw.Write(modello.Size.Width); bw.Write(modello.Size.Height); // Frame byte[] frameAsArray = elem.Frame.ToByteArray(); bw.Write(elem.Frame.Size.Width); bw.Write(frameAsArray.Length); bw.Write(frameAsArray); // Informazione IPersister infoPersister = PersisterFactory.GetPersister(elem.InformazioneAssociata.GetType()); infoPersister.Save(elem.InformazioneAssociata, bw); }