/// <summary> Download and save at path clips in wav format. </summary>
 private static void DownloadWavFiles(string path, ResembleClip[] clips)
 {
     path = Utils.LocalPath(path);
     for (int i = 0; i < clips.Length; i++)
     {
         string filePath = path + "/" + clips[i].title + ".wav";
         AsyncRequest.Make(clips[i].link, filePath);
     }
     Resemble_Window.Open(Resemble_Window.Tab.Pool);
     AsyncRequest.RegisterRefreshEvent();
 }
        public override void OnInspectorGUI()
        {
            //Draw text area
            GUILayout.BeginVertical(EditorStyles.helpBox);
            DrawTextArea();
            GUILayout.EndVertical();

            //Error box
            if (request != null && request.status == AsyncRequest.Status.Error)
            {
                request.error.DrawErrorBox();
                Rect rect = GUILayoutUtility.GetLastRect();
                rect.Set(rect.x + rect.width - 70, rect.y + rect.height - 20, 68, 18);
                if (GUI.Button(rect, "Close"))
                {
                    request.status = AsyncRequest.Status.Completed;
                    AsyncRequest.RegisterRefreshEvent();
                }
            }

            //Draw audio area
            GUILayout.Space(10);
            GUILayout.BeginVertical(EditorStyles.helpBox);
            DrawAudioArea();
            GUILayout.EndVertical();

            //Draw phonemes area
            if (clip.speech.includePhonemes)
            {
                GUILayout.Space(10);
                GUILayout.BeginVertical(EditorStyles.helpBox);
                DrawPhonemesArea();
                GUILayout.EndVertical();
            }

            //Draw userdata area
            GUILayout.Space(10);
            GUILayout.BeginVertical(EditorStyles.helpBox);
            DrawUserDataArea();
            GUILayout.EndVertical();

            //Drax connection message
            Utils.ConnectionRequireMessage();
            GUILayout.Space(30);

            //TEMP (still necessary?) Keep refreshing this window
            Repaint();
        }
 public void OnEnable()
 {
     System.Reflection.FieldInfo        info  = typeof(EditorApplication).GetField("globalEventHandler", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic);
     EditorApplication.CallbackFunction value = (EditorApplication.CallbackFunction)info.GetValue(null);
     value += HandleDeleteEvent;
     info.SetValue(null, value);
     InitComponents();
     request = AsyncRequest.Get(clip.uuid);
     if (request != null && !AsyncRequest.refreshing)
     {
         AsyncRequest.RegisterRefreshEvent();
     }
     haveUserData = !string.IsNullOrEmpty(clip.userdata);
     drawer.Refresh();
     Repaint();
 }
Example #4
0
        /// <summary> Draw gui status of one request. </summary>
        private static void DrawRequestGUI(AsyncRequest request)
        {
            //Init vars
            bool error  = request.status == AsyncRequest.Status.Error;
            bool linked = request.notificationLink != null;
            Rect rect   = GUILayoutUtility.GetRect(Screen.width - 20, 40);


            //Draw box
            if (error)
            {
                EditorGUI.HelpBox(rect, request.requestName + "\n" + request.error.ToString(), MessageType.Error);
            }
            else
            {
                EditorGUI.HelpBox(rect, "", MessageType.None);
            }

            void DrawErrorButton(Rect btnRect)
            {
                if (GUI.Button(btnRect, "Close"))
                {
                    request.status = AsyncRequest.Status.Completed;
                    AsyncRequest.RegisterRefreshEvent();
                }
            }

            //Select button
            if (linked)
            {
                Rect linkRect = new Rect(rect.x + rect.width - 70, rect.y + rect.height - 20, 68, 18);
                if (GUI.Button(linkRect, "Select"))
                {
                    Selection.activeObject = request.notificationLink;
                    EditorGUIUtility.PingObject(request.notificationLink);
                }

                if (error)
                {
                    linkRect.x -= linkRect.width + 5;
                    DrawErrorButton(linkRect);
                }
            }
            else if (error)
            {
                Rect linkRect = new Rect(rect.x + rect.width - 70, rect.y + rect.height - 20, 68, 18);
                DrawErrorButton(linkRect);
            }


            if (error)
            {
                return;
            }

            //Label rect
            Rect labelRect = rect.Shrink(4); labelRect.height -= 8;

            //Draw bar
            Rect barRect = new Rect(rect.x + 5, rect.y + rect.height - 8, rect.width - 80, 4);

            EditorGUI.ProgressBar(barRect, 0, "");
            switch (request.status)
            {
            default:
                GUI.Label(labelRect, "Processing...\n" + request.requestName);
                EditorGUI.DrawRect(barRect.Shrink(1), orange);
                break;

            case AsyncRequest.Status.Downloading:
                GUI.Label(labelRect, "Downloading...\n" + request.requestName);
                EditorGUI.ProgressBar(barRect, request.downloadProgress, "");
                break;

            case AsyncRequest.Status.Completed:
                GUI.Label(labelRect, "Completed\n" + request.requestName);
                EditorGUI.DrawRect(barRect.Shrink(1), Color.green);
                break;
            }
        }