/// <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); }
/// <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); } }
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); }
public ASProcessDelegateData(bool success, string message, ClipFeatures addedFeatures) { this.success = success; this.message = message; this.addedFeatures = addedFeatures; }