diff --git a/Assets/OrbisModuleManager/OrbisModuleManager.ico b/Assets/OrbisLibraryManager/OrbisLibraryManager.ico similarity index 100% rename from Assets/OrbisModuleManager/OrbisModuleManager.ico rename to Assets/OrbisLibraryManager/OrbisLibraryManager.ico diff --git a/External/SimpleUI b/External/SimpleUI index c122d1a..908a1bc 160000 --- a/External/SimpleUI +++ b/External/SimpleUI @@ -1 +1 @@ -Subproject commit c122d1a82597af7d8b6bc346beb4cef6e8322892 +Subproject commit 908a1bc261473cc0304f208c7270fa3365609cb6 diff --git a/Orbis Suite 3.0.sln b/Orbis Suite 3.0.sln index b113663..1f24c79 100644 --- a/Orbis Suite 3.0.sln +++ b/Orbis Suite 3.0.sln @@ -54,6 +54,8 @@ Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "DummyInstaller", "Windows\I EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SetupBA", "Windows\Installer\SetupBA\SetupBA.csproj", "{33C378F9-36C5-4C2C-8350-FD1C8DD5AB66}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OrbisLibraryManager", "OrbisLibraryManager\OrbisLibraryManager.csproj", "{4CF615D4-CEA0-42B4-BAF8-0B9B487D48BC}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -226,6 +228,22 @@ Global {33C378F9-36C5-4C2C-8350-FD1C8DD5AB66}.Release|x64.Build.0 = Release|Any CPU {33C378F9-36C5-4C2C-8350-FD1C8DD5AB66}.Release|x86.ActiveCfg = Release|Any CPU {33C378F9-36C5-4C2C-8350-FD1C8DD5AB66}.Release|x86.Build.0 = Release|Any CPU + {4CF615D4-CEA0-42B4-BAF8-0B9B487D48BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4CF615D4-CEA0-42B4-BAF8-0B9B487D48BC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4CF615D4-CEA0-42B4-BAF8-0B9B487D48BC}.Debug|Win32.ActiveCfg = Debug|Any CPU + {4CF615D4-CEA0-42B4-BAF8-0B9B487D48BC}.Debug|Win32.Build.0 = Debug|Any CPU + {4CF615D4-CEA0-42B4-BAF8-0B9B487D48BC}.Debug|x64.ActiveCfg = Debug|Any CPU + {4CF615D4-CEA0-42B4-BAF8-0B9B487D48BC}.Debug|x64.Build.0 = Debug|Any CPU + {4CF615D4-CEA0-42B4-BAF8-0B9B487D48BC}.Debug|x86.ActiveCfg = Debug|Any CPU + {4CF615D4-CEA0-42B4-BAF8-0B9B487D48BC}.Debug|x86.Build.0 = Debug|Any CPU + {4CF615D4-CEA0-42B4-BAF8-0B9B487D48BC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4CF615D4-CEA0-42B4-BAF8-0B9B487D48BC}.Release|Any CPU.Build.0 = Release|Any CPU + {4CF615D4-CEA0-42B4-BAF8-0B9B487D48BC}.Release|Win32.ActiveCfg = Release|Any CPU + {4CF615D4-CEA0-42B4-BAF8-0B9B487D48BC}.Release|Win32.Build.0 = Release|Any CPU + {4CF615D4-CEA0-42B4-BAF8-0B9B487D48BC}.Release|x64.ActiveCfg = Release|Any CPU + {4CF615D4-CEA0-42B4-BAF8-0B9B487D48BC}.Release|x64.Build.0 = Release|Any CPU + {4CF615D4-CEA0-42B4-BAF8-0B9B487D48BC}.Release|x86.ActiveCfg = Release|Any CPU + {4CF615D4-CEA0-42B4-BAF8-0B9B487D48BC}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -244,6 +262,7 @@ Global {0978D0B2-FFA5-42B2-81AC-0CFD85DE9184} = {6046C772-BE17-4BC8-A362-AD8C77F9178E} {A37095E9-80BD-4A6B-AF8B-33D278CF92F3} = {6046C772-BE17-4BC8-A362-AD8C77F9178E} {33C378F9-36C5-4C2C-8350-FD1C8DD5AB66} = {6046C772-BE17-4BC8-A362-AD8C77F9178E} + {4CF615D4-CEA0-42B4-BAF8-0B9B487D48BC} = {8F0E1457-FB1E-47A4-9DA8-74A6B757CAA4} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {4B6EE1D0-5ADF-44A2-B6EE-E5C8E110EE47} diff --git a/OrbisLibraryManager/App.xaml b/OrbisLibraryManager/App.xaml new file mode 100644 index 0000000..e8bed8c --- /dev/null +++ b/OrbisLibraryManager/App.xaml @@ -0,0 +1,16 @@ + + + + + + + + + + + diff --git a/OrbisLibraryManager/App.xaml.cs b/OrbisLibraryManager/App.xaml.cs new file mode 100644 index 0000000..66c7bdb --- /dev/null +++ b/OrbisLibraryManager/App.xaml.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace OrbisLibraryManager +{ + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application + { + } +} diff --git a/OrbisLibraryManager/AssemblyInfo.cs b/OrbisLibraryManager/AssemblyInfo.cs new file mode 100644 index 0000000..8b5504e --- /dev/null +++ b/OrbisLibraryManager/AssemblyInfo.cs @@ -0,0 +1,10 @@ +using System.Windows; + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] diff --git a/OrbisLibraryManager/Controls/CurrentTargetDisplay.xaml b/OrbisLibraryManager/Controls/CurrentTargetDisplay.xaml new file mode 100644 index 0000000..6b4da41 --- /dev/null +++ b/OrbisLibraryManager/Controls/CurrentTargetDisplay.xaml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/OrbisLibraryManager/Controls/CurrentTargetDisplay.xaml.cs b/OrbisLibraryManager/Controls/CurrentTargetDisplay.xaml.cs new file mode 100644 index 0000000..ccf90cf --- /dev/null +++ b/OrbisLibraryManager/Controls/CurrentTargetDisplay.xaml.cs @@ -0,0 +1,112 @@ +using OrbisSuite; +using OrbisSuite.Common.Database; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace OrbisLibraryManager.Controls +{ + /// + /// Interaction logic for CurrentTargetDisplay.xaml + /// + public partial class CurrentTargetDisplay : UserControl + { + public CurrentTargetDisplay() + { + InitializeComponent(); + + OrbisLib.Instance.Events.DBTouched += Events_DBTouched; + OrbisLib.Instance.Events.TargetStateChanged += Events_TargetStateChanged; + RefreshTarget(); + } + + private void Events_TargetStateChanged(object? sender, TargetStateChangedEvent e) + { + Dispatcher.Invoke(() => { RefreshTarget(); }); + } + + private void Events_DBTouched(object? sender, DBTouchedEvent e) + { + Dispatcher.Invoke(() => { RefreshTarget(); }); + } + + private void RefreshTarget() + { + var CurrentTarget = OrbisLib.Instance.SelectedTarget.Info; + + if (CurrentTarget != null) + { + switch (CurrentTarget.Status) + { + case TargetStatusType.Offline: + CurrentTargetState.Fill = new SolidColorBrush(Color.FromRgb(255, 0, 0)); + CurrentTargetState.ToolTip = "Offline"; + break; + + case TargetStatusType.Online: + CurrentTargetState.Fill = new SolidColorBrush(Color.FromRgb(255, 140, 0)); + CurrentTargetState.ToolTip = "Online"; + break; + + case TargetStatusType.APIAvailable: + CurrentTargetState.Fill = new SolidColorBrush(Color.FromRgb(0, 128, 0)); + CurrentTargetState.ToolTip = "Online & API Available"; + break; + + default: + CurrentTargetState.Fill = new SolidColorBrush(Color.FromRgb(255, 0, 0)); + CurrentTargetState.ToolTip = "Unknown"; + break; + } + + CurrentTargetName.Text = CurrentTarget.IsDefault ? $"★{CurrentTarget.Name}" : CurrentTarget.Name; + + if (CurrentTarget.CurrentTitleID == null || !Regex.IsMatch(CurrentTarget.CurrentTitleID, @"CUSA\d{5}")) + { + CurrentTargetTitleName.Text = "Unknown Title"; + CurrentTargetTitleId.Text = "-"; + CurrentTargetTitleImage.Source = new BitmapImage(new Uri("pack://application:,,,/OrbisLibraryManager;component/Images/DefaultTitleIcon.png")); + } + else + { + var Title = new TMDB(CurrentTarget.CurrentTitleID); + Regex rgx = new Regex(@"[^0-9a-zA-Z +.:']"); + CurrentTargetTitleName.Text = Title.Names.First(); + CurrentTargetTitleId.Text = Title.NPTitleID; + var test = Title.BGM; + CurrentTargetTitleImage.Source = new BitmapImage(new Uri(Title.Icons.First())); + } + } + } + + private void CurrentTargetTitleImage_MouseDown(object sender, MouseButtonEventArgs e) + { + var CurrentTarget = OrbisLib.Instance.SelectedTarget.Info; + + if (CurrentTarget != null && CurrentTarget.CurrentTitleID != null && Regex.IsMatch(CurrentTarget.CurrentTitleID, @"CUSA\d{5}")) + { + var Title = new TMDB(CurrentTarget.CurrentTitleID); + var url = $"https://store.playstation.com/product/{Title.ContentID}/"; + + System.Diagnostics.Process.Start(new ProcessStartInfo + { + FileName = url, + UseShellExecute = true + }); + } + } + } +} diff --git a/OrbisLibraryManager/Controls/ImageButton.xaml b/OrbisLibraryManager/Controls/ImageButton.xaml new file mode 100644 index 0000000..51c73a6 --- /dev/null +++ b/OrbisLibraryManager/Controls/ImageButton.xaml @@ -0,0 +1,22 @@ + + + + + + + diff --git a/OrbisLibraryManager/Controls/ImageButton.xaml.cs b/OrbisLibraryManager/Controls/ImageButton.xaml.cs new file mode 100644 index 0000000..1e28f2a --- /dev/null +++ b/OrbisLibraryManager/Controls/ImageButton.xaml.cs @@ -0,0 +1,66 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace OrbisLibraryManager.Controls +{ + /// + /// Interaction logic for ImageButton.xaml + /// + public partial class ImageButton : UserControl + { + public event EventHandler? Click; + + public ImageButton() + { + InitializeComponent(); + } + + public string ImageSource + { + get { return (string)GetValue(ImageSourceProperty); } + set { SetValue(ImageSourceProperty, value); } + } + + public static readonly DependencyProperty ImageSourceProperty = + DependencyProperty.Register("ImageSource", typeof(string), typeof(ImageButton), new PropertyMetadata(string.Empty, ImageSource_Changed)); + + private static void ImageSource_Changed(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var currentControl = (ImageButton)d; + currentControl.ButtonImage.Source = new BitmapImage(new Uri($"pack://application:,,,{(string)e.NewValue}")); + currentControl.ButtonImage.Opacity = currentControl.IsEnabled ? 1 : 0.5; + } + + public int ImageMargin + { + get { return (int)GetValue(ImageMarginProperty); } + set { SetValue(ImageMarginProperty, value); } + } + + public static readonly DependencyProperty ImageMarginProperty = + DependencyProperty.Register("ImageMargin", typeof(int), typeof(ImageButton), new PropertyMetadata(0)); + + private void ImageButtonElement_IsEnabledChanged(object sender, DependencyPropertyChangedEventArgs e) + { + ButtonImage.Source = new BitmapImage(new Uri($"pack://application:,,,{ImageSource}")); + ButtonImage.Opacity = IsEnabled ? 1 : 0.5; + } + + private void SimpleButton_Click(object sender, RoutedEventArgs e) + { + Click?.Invoke(sender, e); + } + } +} diff --git a/OrbisLibraryManager/Images/Attached.png b/OrbisLibraryManager/Images/Attached.png new file mode 100644 index 0000000..8a0429a Binary files /dev/null and b/OrbisLibraryManager/Images/Attached.png differ diff --git a/OrbisLibraryManager/Images/DefaultTitleIcon.png b/OrbisLibraryManager/Images/DefaultTitleIcon.png new file mode 100644 index 0000000..089293a Binary files /dev/null and b/OrbisLibraryManager/Images/DefaultTitleIcon.png differ diff --git a/OrbisLibraryManager/Images/Detached.png b/OrbisLibraryManager/Images/Detached.png new file mode 100644 index 0000000..9dc8e78 Binary files /dev/null and b/OrbisLibraryManager/Images/Detached.png differ diff --git a/OrbisLibraryManager/Images/KillProcess.png b/OrbisLibraryManager/Images/KillProcess.png new file mode 100644 index 0000000..202ef8b Binary files /dev/null and b/OrbisLibraryManager/Images/KillProcess.png differ diff --git a/OrbisLibraryManager/Images/RestMode.png b/OrbisLibraryManager/Images/RestMode.png new file mode 100644 index 0000000..c0d42be Binary files /dev/null and b/OrbisLibraryManager/Images/RestMode.png differ diff --git a/OrbisLibraryManager/Images/Restart.png b/OrbisLibraryManager/Images/Restart.png new file mode 100644 index 0000000..44fb5d3 Binary files /dev/null and b/OrbisLibraryManager/Images/Restart.png differ diff --git a/OrbisLibraryManager/Images/Send.png b/OrbisLibraryManager/Images/Send.png new file mode 100644 index 0000000..2272ca5 Binary files /dev/null and b/OrbisLibraryManager/Images/Send.png differ diff --git a/OrbisLibraryManager/Images/Shutdown.png b/OrbisLibraryManager/Images/Shutdown.png new file mode 100644 index 0000000..bf3aae0 Binary files /dev/null and b/OrbisLibraryManager/Images/Shutdown.png differ diff --git a/OrbisLibraryManager/OrbisLibraryManager.csproj b/OrbisLibraryManager/OrbisLibraryManager.csproj new file mode 100644 index 0000000..ed52a8c --- /dev/null +++ b/OrbisLibraryManager/OrbisLibraryManager.csproj @@ -0,0 +1,95 @@ + + + + WinExe + net6.0-windows + enable + true + OrbisLibraryManager.ico + + + + + + + + + + + + + + + + + + + + PreserveNewest + + + PreserveNewest + + + + + + + + + + ..\External\SimpleUI\SimpleUI\bin\Debug\net6.0-windows\Microsoft.Expression.Drawing.dll + + + ..\External\SimpleUI\SimpleUI\bin\Debug\net6.0-windows\SimpleUI.dll + + + + + + + + + + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + + + + Code + + + Code + + + + + + $(DefaultXamlRuntime) + Designer + + + $(DefaultXamlRuntime) + Designer + + + + diff --git a/OrbisLibraryManager/OrbisLibraryManager.ico b/OrbisLibraryManager/OrbisLibraryManager.ico new file mode 100644 index 0000000..cb4074d Binary files /dev/null and b/OrbisLibraryManager/OrbisLibraryManager.ico differ diff --git a/OrbisLibraryManager/OrbisLibraryManager.xaml b/OrbisLibraryManager/OrbisLibraryManager.xaml new file mode 100644 index 0000000..dd05b7d --- /dev/null +++ b/OrbisLibraryManager/OrbisLibraryManager.xaml @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/OrbisLibraryManager/OrbisLibraryManager.xaml.cs b/OrbisLibraryManager/OrbisLibraryManager.xaml.cs new file mode 100644 index 0000000..2e9d419 --- /dev/null +++ b/OrbisLibraryManager/OrbisLibraryManager.xaml.cs @@ -0,0 +1,29 @@ +using SimpleUI.Controls; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace OrbisLibraryManager +{ + /// + /// Interaction logic for MainWindow.xaml + /// + public partial class MainWindow : SimpleWindow + { + public MainWindow() + { + InitializeComponent(); + } + } +} diff --git a/Playstation/OrbisToolbox-2.0/Debug.h b/Playstation/OrbisToolbox-2.0/Debug.h index 26974ff..6f31133 100644 --- a/Playstation/OrbisToolbox-2.0/Debug.h +++ b/Playstation/OrbisToolbox-2.0/Debug.h @@ -8,5 +8,7 @@ public: void HandleAPI(OrbisNetId Sock, APIPacket* Packet); private: + bool IsDebugging; + int CurrentPID; }; diff --git a/Playstation/OrbisToolbox-2.0/Version.h b/Playstation/OrbisToolbox-2.0/Version.h index 62fe041..8ebf8ed 100644 --- a/Playstation/OrbisToolbox-2.0/Version.h +++ b/Playstation/OrbisToolbox-2.0/Version.h @@ -1,11 +1,11 @@ -#pragma once -#define ORBIS_TOOLBOX_MAJOR 2 -#define ORBIS_TOOLBOX_MINOR 0 -#define ORBIS_TOOLBOX_BUILDVERSION 196 -#define stringify(a) stringify_(a) -#define stringify_(a) #a -#if defined(ORBIS_TOOLBOX_DEBUG) -#define ORBIS_TOOLBOX_BUILDSTRING ("[Orbis Toolbox " stringify(ORBIS_TOOLBOX_MAJOR) "." stringify(ORBIS_TOOLBOX_MINOR) "] Dev Build " stringify(ORBIS_TOOLBOX_BUILDVERSION) " " __DATE__ " " __TIME__) -#else -#define ORBIS_TOOLBOX_BUILDSTRING ("[Orbis Toolbox " stringify(ORBIS_TOOLBOX_MAJOR) "." stringify(ORBIS_TOOLBOX_MINOR) "] Build " stringify(ORBIS_TOOLBOX_BUILDVERSION) " " __DATE__ " " __TIME__) -#endif +#pragma once +#define ORBIS_TOOLBOX_MAJOR 2 +#define ORBIS_TOOLBOX_MINOR 0 +#define ORBIS_TOOLBOX_BUILDVERSION 198 +#define stringify(a) stringify_(a) +#define stringify_(a) #a +#if defined(ORBIS_TOOLBOX_DEBUG) +#define ORBIS_TOOLBOX_BUILDSTRING ("[Orbis Toolbox " stringify(ORBIS_TOOLBOX_MAJOR) "." stringify(ORBIS_TOOLBOX_MINOR) "] Dev Build " stringify(ORBIS_TOOLBOX_BUILDVERSION) " " __DATE__ " " __TIME__) +#else +#define ORBIS_TOOLBOX_BUILDSTRING ("[Orbis Toolbox " stringify(ORBIS_TOOLBOX_MAJOR) "." stringify(ORBIS_TOOLBOX_MINOR) "] Build " stringify(ORBIS_TOOLBOX_BUILDVERSION) " " __DATE__ " " __TIME__) +#endif diff --git a/Windows/OrbisNeighborHood/MVVM/View/DashboardView.xaml b/Windows/OrbisNeighborHood/MVVM/View/DashboardView.xaml index ba22674..97fb88d 100644 --- a/Windows/OrbisNeighborHood/MVVM/View/DashboardView.xaml +++ b/Windows/OrbisNeighborHood/MVVM/View/DashboardView.xaml @@ -399,8 +399,8 @@ diff --git a/Windows/OrbisNeighborHood/NeighborHood.xaml b/Windows/OrbisNeighborHood/NeighborHood.xaml index c0c84b5..4446609 100644 --- a/Windows/OrbisNeighborHood/NeighborHood.xaml +++ b/Windows/OrbisNeighborHood/NeighborHood.xaml @@ -70,6 +70,10 @@ + +