static void WriteFloatBundleElement(OscWriter writer, string address, float value) { var typeTags = ",f"; var firstAddressByteCount = Encoding.ASCII.GetByteCount(address).Align4(); var firstTypeTagByteCount = Encoding.ASCII.GetByteCount(typeTags).Align4(); var elementSize = firstAddressByteCount + firstTypeTagByteCount + 4; writer.Write(elementSize); writer.Write(address); writer.Write(typeTags); writer.Write(value); }
public static byte[] GetRecursiveBundlesExample() { var writer = new OscWriter(512); var now = DateTime.Now; writer.WriteBundlePrefix(); writer.Write(new NtpTimestamp(now)); WriteFloatBundleElement(writer, "/composition/video/opacity", 0.5f); WriteFloatBundleElement(writer, "/composition/layers/2/video/opacity", 0.64f); writer.WriteBundlePrefix(); writer.Write(new NtpTimestamp(now)); WriteIntBundleElement(writer, "/composition/layers/1/video/mixer/blendmode", 24); WriteFloatBundleElement(writer, "/composition/layers/1/video/opacity", 0.72f); var bytes = new byte[writer.Length]; writer.CopyBuffer(bytes, 0); return(bytes); }
private void Go_Click(object sender, EventArgs e) { if (m_IsFileOpen == false) { try { AppendLine("Opening file: " + m_FilePath.Text); m_Stream = new FileStream(m_FilePath.Text, FileMode.Create, FileAccess.Write); m_Writer = new OscWriter(m_Stream, (OscPacketFormat)m_Format.SelectedIndex); m_Go.Text = "Close"; m_SelectFile.Enabled = false; m_Write.Enabled = true; m_FilePath.ReadOnly = true; m_Format.Enabled = false; m_IsFileOpen = true; } catch (Exception ex) { AppendLine("Exception while opening"); AppendLine(ex.Message); if (m_Writer != null) { m_Writer.Dispose(); m_Writer = null; } if (m_Stream != null) { m_Stream.Dispose(); m_Stream = null; } m_SelectFile.Enabled = true; m_Write.Enabled = false; m_FilePath.ReadOnly = false; m_Format.Enabled = true; m_Go.Text = "Open"; m_IsFileOpen = false; } } else { try { AppendLine("Closing file"); m_SelectFile.Enabled = false; m_Write.Enabled = false; m_FilePath.ReadOnly = false; m_Format.Enabled = true; m_IsFileOpen = false; m_Go.Text = "Open"; m_Writer.Dispose(); m_Stream.Dispose(); } catch (Exception ex) { AppendLine("Exception while closing"); AppendLine(ex.Message); } } }