Exemplo n.º 1
0
        void parseFloatParameter(LiveProject.Device device)
        {
            var floatParameter = new LiveProject.FloatParameter();

            while (reader.Read() && !(reader.NodeType == XmlNodeType.EndElement && reader.Name == "PluginFloatParameter"))
            {
                if (reader.NodeType == XmlNodeType.Element)
                {
                    switch (reader.Name)
                    {
                    case "ParameterId":
                        floatParameter.Id = getIntValueAttrib();
                        break;

                    case "Events":
                        if (!reader.IsEmptyElement)
                        {
                            while (reader.Read() && !(reader.NodeType == XmlNodeType.EndElement && reader.Name == "Events"))
                            {
                                if (reader.NodeType == XmlNodeType.Element && reader.Name == "FloatEvent")
                                {
                                    var e = new LiveProject.FloatParameter.Event();
                                    e.Time  = getDoubleAttrib("Time");
                                    e.Value = (float)getDoubleValueAttrib();
                                    floatParameter.Events.Add(e);
                                }
                            }
                        }
                        break;
                    }
                }
            }
            device.FloatParameters.Add(floatParameter);
        }
Exemplo n.º 2
0
 void parseParameterList(LiveProject.Device device)
 {
     while (reader.Read() && !(reader.NodeType == XmlNodeType.EndElement && reader.Name == "ParameterList"))
     {
         if (reader.NodeType == XmlNodeType.Element)
         {
             switch (reader.Name)
             {
             case "PluginFloatParameter":
                 if (!reader.IsEmptyElement)
                 {
                     parseFloatParameter(device);
                 }
                 break;
             }
         }
     }
 }
Exemplo n.º 3
0
 void parseVstPreset(LiveProject.Device device)
 {
     while (reader.Read() && !(reader.NodeType == XmlNodeType.EndElement && reader.Name == "VstPreset"))
     {
         if (reader.NodeType == XmlNodeType.Element)
         {
             switch (reader.Name)
             {
             case "Buffer":
                 if (!reader.IsEmptyElement)
                 {
                     parseVstPresetBuffer(device);
                 }
                 break;
             }
         }
     }
 }
Exemplo n.º 4
0
        void parseVstPresetBuffer(LiveProject.Device device)
        {
            var rawData = new List <byte>();

            while (reader.Read() && !(reader.NodeType == XmlNodeType.EndElement && reader.Name == "Buffer"))
            {
                foreach (var line in reader.Value.Split('\n'))
                {
                    var trimmedLine = line.Trim().ToLower();
                    if (trimmedLine.Length > 0)
                    {
                        for (int i = 0; i < trimmedLine.Length; i += 2)
                        {
                            rawData.Add((byte)(hexTable[trimmedLine[i]] * 16 + hexTable[trimmedLine[i + 1]]));
                        }
                    }
                }
            }
            device.RawData = rawData.ToArray();
        }
Exemplo n.º 5
0
 void parseInnerDeviceChain(LiveProject.Track track)
 {
     while (reader.Read() && !(reader.NodeType == XmlNodeType.EndElement && reader.Name == "DeviceChain"))
     {
         if (reader.NodeType == XmlNodeType.Element)
         {
             switch (reader.Name)
             {
             case "PluginDevice":
                 var device = new LiveProject.Device();
                 if (!reader.IsEmptyElement)
                 {
                     parsePluginDevice(device);
                 }
                 track.Devices.Add(device);
                 break;
             }
         }
     }
 }
Exemplo n.º 6
0
        void parseDeviceVstInfo(LiveProject.Device device)
        {
            while (reader.Read() && !(reader.NodeType == XmlNodeType.EndElement && reader.Name == "VstPluginInfo"))
            {
                if (reader.NodeType == XmlNodeType.Element)
                {
                    switch (reader.Name)
                    {
                    case "FileName":
                        device.PluginDll = getValueAttrib();
                        break;

                    case "VstPreset":
                        if (!reader.IsEmptyElement)
                        {
                            parseVstPreset(device);
                        }
                        break;
                    }
                }
            }
        }
Exemplo n.º 7
0
        void parsePluginDevice(LiveProject.Device device)
        {
            device.Id = getAttrib("Id");
            while (reader.Read() && !(reader.NodeType == XmlNodeType.EndElement && reader.Name == "PluginDevice"))
            {
                if (reader.NodeType == XmlNodeType.Element)
                {
                    switch (reader.Name)
                    {
                    case "On":
                        while (reader.Read())
                        {
                            if (reader.NodeType == XmlNodeType.Element && reader.Name == "BoolEvent")
                            {
                                device.Bypass = !getBoolValueAttrib();
                                break;
                            }
                        }
                        break;

                    case "VstPluginInfo":
                        if (!reader.IsEmptyElement)
                        {
                            parseDeviceVstInfo(device);
                        }
                        break;

                    case "ParameterList":
                        if (!reader.IsEmptyElement)
                        {
                            parseParameterList(device);
                        }
                        break;
                    }
                }
            }
        }