Exemplo n.º 1
0
 public PassWave( int sampleLength, int sampleRate, WaveShapes.WaveGenerator wave, WaveKeyframe[] keyframes )
 {
     m_sampleLength  = sampleLength;
     m_sampleRate    = sampleRate;
     m_waveGenerator = wave;
     m_keyframes		= keyframes;
 }
Exemplo n.º 2
0
 public void SetTarget( WaveKeyframe target )
 {
     m_target = target;
 }
Exemplo n.º 3
0
        private static PassWave ParseWave( XmlNode node, int sampleRate, int sampleLength, Dictionary< string, ObservableProperty< float > > paramList )
        {
            XmlNodeList	keyframeNodes = node.SelectNodes( "Key" );
            WaveKeyframe[] keyframes = new WaveKeyframe[ keyframeNodes.Count + 1 ];

            keyframes[ 0 ] = ParseWaveKeyframe( node );

            for ( int i = 0; i < keyframeNodes.Count; i++ )
            {
                keyframes[ i + 1 ] = ParseWaveKeyframe( keyframeNodes[ i ] );
            }

            // Parse bindings
            XmlNodeList bindingNodes = node.SelectNodes( "Bind" );

            foreach( XmlNode bindingNode in bindingNodes )
            {
                int 	targetKey;
                string  sourceKey;

                if ( !TryParseString( bindingNode, "source", out sourceKey ) )
                {
                    continue;
                }

                if ( !paramList.ContainsKey( sourceKey ) )
                {
                    continue;
                }

                if ( !TryParseInt( bindingNode, "target", out targetKey ) )
                {
                    continue;
                }

                // Parse binding
                WaveKeyframeDataBinding binding = ParseWaveKeyframeDataBinding( bindingNode );

                if ( binding == null )
                {
                    continue;
                }

                binding.SetSource( paramList[ sourceKey ] );
                binding.SetTarget( keyframes[ targetKey ] );

                keyframes[ targetKey ].AddDataBinding( binding );
            }

            return new PassWave( sampleLength, sampleRate, ParseWaveShape( node ), keyframes );
        }