Exemplo n.º 1
0
        }         // default Color Organ Band

        /// <summary>
        /// Create an instance of a color organ band.
        /// </summary>
        /// <param name="xmlData"></param>
        public ColorOrganBand(ColorOrganBand template)
        {
            Sequence     = template.Sequence;
            Name         = template.Name + " - Copy";
            m_id         = DateTime.Now.ToString("yyyyMMddHHmmssffffff", System.Globalization.CultureInfo.InvariantCulture);
            m_colorOrgan = template.m_colorOrgan;

            m_minBinVariableRange = template.m_minBinVariableRange;
            m_maxBinVariableRange = template.m_maxBinVariableRange;
            m_usePeakLevels       = template.m_usePeakLevels;

            m_energySumAvg         = template.m_energySumAvg;
            m_energyPeak           = template.m_energyPeak;
            m_energyMin            = template.m_energyMin;
            m_energyCount          = template.m_energyCount;
            m_clearChannelsOnWrite = template.m_clearChannelsOnWrite;

            m_frequencyBands = template.m_frequencyBands;

            m_mapOfFrequencyBands = new Dictionary <string, ColorOrganFrequencyBand>();
            foreach (var band in template.m_mapOfFrequencyBands)
            {
                m_mapOfFrequencyBands.Add(band.Key, new ColorOrganFrequencyBand(band.Value));
            }             // end copy frequency bands

            m_mapOfChannels = new Dictionary <string, ColorOrganChannel>();
            foreach (var channel in template.m_mapOfChannels)
            {
                m_mapOfChannels.Add(channel.Key, new ColorOrganChannel(channel.Value));
            }     // end copy channels
        }         // ColorOrganBand(template)
Exemplo n.º 2
0
        }         // ColorOrganBand(xml)

        /// <summary>
        /// Create a default color band
        /// </summary>
        /// <param name="frequencyBands"></param>
        /// <param name="newSequence"></param>
        /// <param name="colorOrgan"></param>
        public ColorOrganBand(Dictionary <string, FrequencyBand> frequencyBands,
                              EventSequence newSequence,
                              ColorOrgan colorOrgan,
                              bool defaultFrequencyState = true)
        {
            m_colorOrgan = colorOrgan;

            // save the sequence info
            Sequence = newSequence;

            m_frequencyBands = frequencyBands;

            // Set the name for this Color Band
            m_id = DateTime.Now.ToString("yyyyMMddHHmmssffffff", System.Globalization.CultureInfo.InvariantCulture);
            Name = "All Frequencies" + m_id;

            // build the list of frequencies associated with this band
            buildMapOfFrequencyBands(defaultFrequencyState);

            // build a list of the current channels
            foreach (Vixen.Channel channel in Sequence.Channels)
            {
                ColorOrganChannel newChannel = new ColorOrganChannel(channel);
                m_mapOfChannels.Add(newChannel.Id, newChannel);
            }     // end each channel in the sequence
        }         // default Color Organ Band
Exemplo n.º 3
0
        /// <summary>
        /// Create an instance of a color organ band.
        /// </summary>
        /// <param name="xmlData"></param>
        public ColorOrganBand(XmlNode xmlData,
                              Dictionary <string, FrequencyBand> frequencyBands,
                              EventSequence newSequence,
                              ColorOrgan colorOrgan)
        {
            // save the sequence data
            Sequence = newSequence;

            m_colorOrgan = colorOrgan;

            m_frequencyBands = frequencyBands;

            // Set the name for this Color Band
            m_id = DateTime.Now.ToString("yyyyMMddHHmmssffffff", System.Globalization.CultureInfo.InvariantCulture);
            Name = "All Frequencies" + m_id;

            // parse the XML file
            m_id = Xml.GetNodeAlways(xmlData, m_xmlName_id, m_id).InnerText;
            Name = Xml.GetNodeAlways(xmlData, m_xmlName_name, Name).InnerText;
            bool.TryParse(Xml.GetNodeAlways(xmlData, m_xmlName_usePeakLevels, m_usePeakLevels.ToString()).InnerText, out m_usePeakLevels);
            m_minBinVariableRange = float.Parse(Xml.GetNodeAlways(xmlData, m_xmlName_minBinVariableRange, m_minBinVariableRange.ToString()).InnerText);
            m_maxBinVariableRange = float.Parse(Xml.GetNodeAlways(xmlData, m_xmlName_maxBinVariableRange, m_maxBinVariableRange.ToString()).InnerText);
            bool.TryParse(Xml.GetNodeAlways(xmlData, m_xmlName_clearChannelsOnWrite, m_clearChannelsOnWrite.ToString()).InnerText, out m_clearChannelsOnWrite);

            // convert the list of Frequency bands into a list we can use
            buildMapOfFrequencyBands(false);

            // mark the frequency bands that are a member of this color organ band
            XmlNodeList frequencyBandNodes = xmlData.SelectNodes(m_xmlName_mapOfFrequencyBands + "/*");

            foreach (XmlNode xmlFrequencyBandNode in frequencyBandNodes)
            {
                string frequencyBandName = xmlFrequencyBandNode.InnerText;
                m_mapOfFrequencyBands[frequencyBandName].Member = true;
                m_energySumAvg += m_mapOfFrequencyBands[frequencyBandName].Avg;
                m_energyPeak    = Math.Max(m_energyPeak, m_mapOfFrequencyBands[frequencyBandName].Peak);
                m_energyMin     = Math.Min(m_energyMin, m_mapOfFrequencyBands[frequencyBandName].Min);
                m_energyCount++;
            }             // end build member list

            // build a list of the current channels
            foreach (Vixen.Channel channel in Sequence.Channels)
            {
                ColorOrganChannel newChannel = new ColorOrganChannel(channel);
                m_mapOfChannels.Add(newChannel.Id, newChannel);
            }             // end each channel in the sequence

            // mark the channels that are a member of this color organ band
            XmlNodeList channelNodes = xmlData.SelectNodes(m_xmlName_mapOfChannels + "/*");

            foreach (XmlNode xmlChannelNode in channelNodes)
            {
                // is this channel still in the list of channels?
                if (true == m_mapOfChannels.ContainsKey(xmlChannelNode.InnerText))
                {
                    // mark the channel as active
                    m_mapOfChannels[xmlChannelNode.InnerText].Member = true;
                }
            }     // end build member list
        }         // ColorOrganBand(xml)
Exemplo n.º 4
0
        public ColorOrganForm(ref ColorOrgan colorOrgan)
        {
            InitializeComponent();

            // save the reference to the color organ data.
            m_colorOrgan = colorOrgan;

            // set up the list using the latest data from
            populateColorOrganBandSelectList();

            numericUpDownStartChan.Maximum = m_colorOrgan.numChans;
        }         // ColorOrganForm
Exemplo n.º 5
0
        /// <summary>
        /// Main entry point
        /// </summary>
        /// <param name="sequence"></param>
        /// <returns></returns>
        public bool Execute(EventSequence sequence)
        {
            if (sequence == null)
            {
                throw new Exception("Color Organ add-in requires a sequence.");
            }
            if (sequence.Audio == null)
            {
                throw new Exception("Color Organ add-in requires the sequence to have audio assigned.");
            }

            // find out which version of vixen we are running on
            Process currentProcess = Process.GetCurrentProcess();

#if VIXEN_VERSION_2_1
            if ((2 != currentProcess.MainModule.FileVersionInfo.FileMajorPart) ||
                (1 != currentProcess.MainModule.FileVersionInfo.FileMinorPart))
            {
                throw new Exception("Color Organ add-in does not support this version of Vixen.");
            }
#elif VIXEN_VERSION_2_5
            if ((2 != currentProcess.MainModule.FileVersionInfo.FileMajorPart) ||
                (5 != currentProcess.MainModule.FileVersionInfo.FileMinorPart))
            {
                throw new Exception("Color Organ add-in does not support this version of Vixen.");
            }
#else
#error "Unsupported Vixen build version"
#endif

            ColorOrgan     colorOrgan       = new ColorOrgan(ref m_dataNode, sequence);
            ColorOrganForm colorOrganDialog = new ColorOrganForm(ref colorOrgan);
            colorOrganDialog.ShowDialog();

            // output the color organ info
//			m_dataNode.RemoveAll();
            colorOrgan.SaveToXml(ref m_dataNode);

            colorOrganDialog.Dispose();
            return(true);
        }