コード例 #1
0
        public float GetFeature(AudioFeaturesFlags flag)
        {
            fixed(float *fptr = &this.featureData[0])
            {
                NativeMethodsx64.RetrieveFeaturesf(this.nativePointer, new IntPtr(fptr), flag);
            }

            return(this.featureData[0]);
        }
コード例 #2
0
        public Dictionary <AudioFeaturesFlags, float> GetFeatures(AudioFeaturesFlags flags)
        {
            Dictionary <AudioFeaturesFlags, float> result = new Dictionary <AudioFeaturesFlags, float>();

            fixed(float *fptr = &this.featureData[0])
            {
                NativeMethodsx64.RetrieveFeaturesf(this.nativePointer, new IntPtr(fptr), flags);
            }

            int offset  = 0;
            int feature = 1;

            for (int i = 0; i < 11; i++)
            {
                AudioFeaturesFlags f = (AudioFeaturesFlags)feature;
                if (flags.HasFlag(f))
                {
                    result.Add(f, this.featureData[offset]);
                    offset++;
                }
                feature *= 2;
            }
            return(result);
        }