VR4RoboticArm2/VR4RoboticArm/Library/PackageCache/com.meta.xr.simulator/Editor/SyntheticEnvironments/JsonServer.cs
IonutMocanu 48cccc22ad Main2
2025-09-08 11:13:29 +03:00

83 lines
2.7 KiB
C#

/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
* All rights reserved.
*
* Licensed under the Oculus SDK License Agreement (the "License");
* you may not use the Oculus SDK except in compliance with the License,
* which is provided at the time of installation or download, or which
* otherwise accompanies this software in either electronic or hard copy form.
*
* You may obtain a copy of the License at
*
* https://developer.oculus.com/licenses/oculussdk/
*
* Unless required by applicable law or agreed to in writing, the Oculus SDK
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
using System.IO;
using UnityEditor;
namespace Meta.XR.Simulator.Editor.SyntheticEnvironments
{
internal static class JsonServer
{
private const string Name = "JSON Server";
private const string MenuPath = XRSimConstants.MenuPath + "/" + Name;
private const string Port = "33792";
#if UNITY_EDITOR_OSX
private static readonly string FullPath =
Path.GetFullPath(Path.Join(XRSimConstants.XrSimDataFolderPath,"json_synthenv_server~","json_server"));
#else
private static readonly string FullPath =
Path.GetFullPath(Path.Join(XRSimConstants.XrSimDataFolderPath, "json_synthenv_server~", "json_server.exe"));
#endif
[MenuItem(MenuPath + "/Launch JSON Server")]
private static void StartFromMenu()
{
Start(EditorUtility.OpenFilePanel("Open File", "", "json"));
}
public static void Start(string jsonPath)
{
Utils.LogUtils.ReportInfo(Name, "Launching JSON server");
var binaryPath = FullPath;
if (!Utils.SystemUtils.FileExists(binaryPath))
{
Utils.LogUtils.DisplayDialogOrError(Name, "failed to find " + binaryPath);
return;
}
if (!Utils.SystemUtils.FileExists(jsonPath))
{
if (jsonPath != "")
{
Utils.LogUtils.DisplayDialogOrError(Name, "failed to find " + jsonPath);
}
return;
}
// Always force restart JsonServers
if (Utils.ProcessUtils.GetProcessesByPort(Port).Count > 0)
{
Stop();
}
// launch the binary
Utils.ProcessUtils.LaunchProcess(binaryPath, jsonPath, Name);
}
[MenuItem(MenuPath + "/Stop JSON Server")]
public static void Stop()
{
Utils.ProcessUtils.StopProcess(Port, Name);
}
}
}