/// <summary>
        /// Return any features required by
        /// </summary>
        /// <param name="data"></param>
        /// <param name="module"></param>
        /// <returns></returns>
        public static ClipFeatures GetMissingClipFeatures(LipSyncData data, AutoSyncModule module)
        {
            var          req         = module.GetCompatibilityRequirements();
            ClipFeatures metCriteria = 0;

            if (data.clip)
            {
                metCriteria |= ClipFeatures.AudioClip;
            }

            if (!string.IsNullOrEmpty(data.transcript))
            {
                metCriteria |= ClipFeatures.Transcript;
            }

            if (data.phonemeData != null && data.phonemeData.Length > 0)
            {
                metCriteria |= ClipFeatures.Phonemes;
            }

            if (data.emotionData != null && data.emotionData.Length > 0)
            {
                metCriteria |= ClipFeatures.Emotions;
            }

            if (data.gestureData != null && data.gestureData.Length > 0)
            {
                metCriteria |= ClipFeatures.Gestures;
            }


            // Compare masks
            return((req & metCriteria) ^ req);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Check if the supplied LipSyncData clip is compatible with a particular module.
        /// </summary>
        /// <param name="data"></param>
        /// <param name="module"></param>
        /// <returns></returns>
        public static bool CheckIsClipCompatible(LipSyncData data, AutoSyncModule module)
        {
            var          req         = module.GetCompatibilityRequirements();
            ClipFeatures metCriteria = 0;

            if (data.clip)
            {
                metCriteria |= ClipFeatures.AudioClip;
            }

            if (!string.IsNullOrEmpty(data.transcript))
            {
                metCriteria |= ClipFeatures.Transcript;
            }

            if (data.phonemeData != null && data.phonemeData.Length > 0)
            {
                metCriteria |= ClipFeatures.Phonemes;
            }

            if (data.emotionData != null && data.emotionData.Length > 0)
            {
                metCriteria |= ClipFeatures.Emotions;
            }

            if (data.gestureData != null && data.gestureData.Length > 0)
            {
                metCriteria |= ClipFeatures.Gestures;
            }

            // Compare masks
            var isFeatureCompatible = ((req & metCriteria) ^ req) == ClipFeatures.None;

            if (isFeatureCompatible)
            {
                if ((req & ClipFeatures.AudioClip) == ClipFeatures.AudioClip)
                {
                    var outcome = true;

                    return(outcome);
                }

                return(true);
            }
            else
            {
                return(false);
            }
        }
Exemplo n.º 3
0
    private ClipFeatures GetMissingClipFeaturesInClipEditor(List <AutoSyncModule> modules, int index)
    {
        var          module      = modules[index];
        var          req         = module.GetCompatibilityRequirements();
        ClipFeatures metCriteria = 0;

        // Find which criteria are met, or will be met once the module chain has run as far as the provided index.

        for (int i = 0; i < index; i++)
        {
            metCriteria |= modules[i].GetOutputCompatibility();
        }

        if (clip)
        {
            metCriteria |= ClipFeatures.AudioClip;
        }

        if (!string.IsNullOrEmpty(setup.Transcript))
        {
            metCriteria |= ClipFeatures.Transcript;
        }

        if (setup.PhonemeData != null && setup.PhonemeData.Count > 0)
        {
            metCriteria |= ClipFeatures.Phonemes;
        }

        if (setup.EmotionData != null && setup.EmotionData.Count > 0)
        {
            metCriteria |= ClipFeatures.Emotions;
        }

        if (setup.GestureData != null && setup.GestureData.Count > 0)
        {
            metCriteria |= ClipFeatures.Gestures;
        }

        // Compare masks
        var inBoth = req & metCriteria;

        return(inBoth ^ req);
    }
Exemplo n.º 4
0
 public ASProcessDelegateData(bool success, string message, ClipFeatures addedFeatures)
 {
     this.success       = success;
     this.message       = message;
     this.addedFeatures = addedFeatures;
 }