diff --git a/aurora-sharp-desktop/.gitignore b/aurora-sharp-desktop/.gitignore
new file mode 100644
index 0000000..23e17b6
--- /dev/null
+++ b/aurora-sharp-desktop/.gitignore
@@ -0,0 +1,351 @@
+## Ignore Visual Studio temporary files, build results, and
+## files generated by popular Visual Studio add-ons.
+##
+## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
+
+# User-specific files
+*.rsuser
+*.suo
+*.user
+*.userosscache
+*.sln.docstates
+
+# User-specific files (MonoDevelop/Xamarin Studio)
+*.userprefs
+
+# Mono auto generated files
+mono_crash.*
+
+# Build results
+[Dd]ebug/
+[Dd]ebugPublic/
+[Rr]elease/
+[Rr]eleases/
+x64/
+x86/
+[Aa][Rr][Mm]/
+[Aa][Rr][Mm]64/
+bld/
+[Bb]in/
+[Oo]bj/
+[Ll]og/
+
+# Visual Studio 2015/2017 cache/options directory
+.vs/
+# Uncomment if you have tasks that create the project's static files in wwwroot
+#wwwroot/
+
+# Visual Studio 2017 auto generated files
+Generated\ Files/
+
+# MSTest test Results
+[Tt]est[Rr]esult*/
+[Bb]uild[Ll]og.*
+
+# NUnit
+*.VisualState.xml
+TestResult.xml
+nunit-*.xml
+
+# Build Results of an ATL Project
+[Dd]ebugPS/
+[Rr]eleasePS/
+dlldata.c
+
+# Benchmark Results
+BenchmarkDotNet.Artifacts/
+
+# .NET Core
+project.lock.json
+project.fragment.lock.json
+artifacts/
+
+# StyleCop
+StyleCopReport.xml
+
+# Files built by Visual Studio
+*_i.c
+*_p.c
+*_h.h
+*.ilk
+*.meta
+*.obj
+*.iobj
+*.pch
+*.pdb
+*.ipdb
+*.pgc
+*.pgd
+*.rsp
+*.sbr
+*.tlb
+*.tli
+*.tlh
+*.tmp
+*.tmp_proj
+*_wpftmp.csproj
+*.log
+*.vspscc
+*.vssscc
+.builds
+*.pidb
+*.svclog
+*.scc
+
+# Chutzpah Test files
+_Chutzpah*
+
+# Visual C++ cache files
+ipch/
+*.aps
+*.ncb
+*.opendb
+*.opensdf
+*.sdf
+*.cachefile
+*.VC.db
+*.VC.VC.opendb
+
+# Visual Studio profiler
+*.psess
+*.vsp
+*.vspx
+*.sap
+
+# Visual Studio Trace Files
+*.e2e
+
+# TFS 2012 Local Workspace
+$tf/
+
+# Guidance Automation Toolkit
+*.gpState
+
+# ReSharper is a .NET coding add-in
+_ReSharper*/
+*.[Rr]e[Ss]harper
+*.DotSettings.user
+
+# JustCode is a .NET coding add-in
+.JustCode
+
+# TeamCity is a build add-in
+_TeamCity*
+
+# DotCover is a Code Coverage Tool
+*.dotCover
+
+# AxoCover is a Code Coverage Tool
+.axoCover/*
+!.axoCover/settings.json
+
+# Visual Studio code coverage results
+*.coverage
+*.coveragexml
+
+# NCrunch
+_NCrunch_*
+.*crunch*.local.xml
+nCrunchTemp_*
+
+# MightyMoose
+*.mm.*
+AutoTest.Net/
+
+# Web workbench (sass)
+.sass-cache/
+
+# Installshield output folder
+[Ee]xpress/
+
+# DocProject is a documentation generator add-in
+DocProject/buildhelp/
+DocProject/Help/*.HxT
+DocProject/Help/*.HxC
+DocProject/Help/*.hhc
+DocProject/Help/*.hhk
+DocProject/Help/*.hhp
+DocProject/Help/Html2
+DocProject/Help/html
+
+# Click-Once directory
+publish/
+
+# Publish Web Output
+*.[Pp]ublish.xml
+*.azurePubxml
+# Note: Comment the next line if you want to checkin your web deploy settings,
+# but database connection strings (with potential passwords) will be unencrypted
+*.pubxml
+*.publishproj
+
+# Microsoft Azure Web App publish settings. Comment the next line if you want to
+# checkin your Azure Web App publish settings, but sensitive information contained
+# in these scripts will be unencrypted
+PublishScripts/
+
+# NuGet Packages
+*.nupkg
+# NuGet Symbol Packages
+*.snupkg
+# The packages folder can be ignored because of Package Restore
+**/[Pp]ackages/*
+# except build/, which is used as an MSBuild target.
+!**/[Pp]ackages/build/
+# Uncomment if necessary however generally it will be regenerated when needed
+#!**/[Pp]ackages/repositories.config
+# NuGet v3's project.json files produces more ignorable files
+*.nuget.props
+*.nuget.targets
+
+# Microsoft Azure Build Output
+csx/
+*.build.csdef
+
+# Microsoft Azure Emulator
+ecf/
+rcf/
+
+# Windows Store app package directories and files
+AppPackages/
+BundleArtifacts/
+Package.StoreAssociation.xml
+_pkginfo.txt
+*.appx
+*.appxbundle
+*.appxupload
+
+# Visual Studio cache files
+# files ending in .cache can be ignored
+*.[Cc]ache
+# but keep track of directories ending in .cache
+!?*.[Cc]ache/
+
+# Others
+ClientBin/
+~$*
+*~
+*.dbmdl
+*.dbproj.schemaview
+*.jfm
+*.pfx
+*.publishsettings
+orleans.codegen.cs
+
+# Including strong name files can present a security risk
+# (https://github.com/github/gitignore/pull/2483#issue-259490424)
+#*.snk
+
+# Since there are multiple workflows, uncomment next line to ignore bower_components
+# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
+#bower_components/
+
+# RIA/Silverlight projects
+Generated_Code/
+
+# Backup & report files from converting an old project file
+# to a newer Visual Studio version. Backup files are not needed,
+# because we have git ;-)
+_UpgradeReport_Files/
+Backup*/
+UpgradeLog*.XML
+UpgradeLog*.htm
+ServiceFabricBackup/
+*.rptproj.bak
+
+# SQL Server files
+*.mdf
+*.ldf
+*.ndf
+
+# Business Intelligence projects
+*.rdl.data
+*.bim.layout
+*.bim_*.settings
+*.rptproj.rsuser
+*- [Bb]ackup.rdl
+*- [Bb]ackup ([0-9]).rdl
+*- [Bb]ackup ([0-9][0-9]).rdl
+
+# Microsoft Fakes
+FakesAssemblies/
+
+# GhostDoc plugin setting file
+*.GhostDoc.xml
+
+# Node.js Tools for Visual Studio
+.ntvs_analysis.dat
+node_modules/
+
+# Visual Studio 6 build log
+*.plg
+
+# Visual Studio 6 workspace options file
+*.opt
+
+# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
+*.vbw
+
+# Visual Studio LightSwitch build output
+**/*.HTMLClient/GeneratedArtifacts
+**/*.DesktopClient/GeneratedArtifacts
+**/*.DesktopClient/ModelManifest.xml
+**/*.Server/GeneratedArtifacts
+**/*.Server/ModelManifest.xml
+_Pvt_Extensions
+
+# Paket dependency manager
+.paket/paket.exe
+paket-files/
+
+# FAKE - F# Make
+.fake/
+
+# CodeRush personal settings
+.cr/personal
+
+# Python Tools for Visual Studio (PTVS)
+__pycache__/
+*.pyc
+
+# Cake - Uncomment if you are using it
+# tools/**
+# !tools/packages.config
+
+# Tabs Studio
+*.tss
+
+# Telerik's JustMock configuration file
+*.jmconfig
+
+# BizTalk build output
+*.btp.cs
+*.btm.cs
+*.odx.cs
+*.xsd.cs
+
+# OpenCover UI analysis results
+OpenCover/
+
+# Azure Stream Analytics local run output
+ASALocalRun/
+
+# MSBuild Binary and Structured Log
+*.binlog
+
+# NVidia Nsight GPU debugger configuration file
+*.nvuser
+
+# MFractors (Xamarin productivity tool) working folder
+.mfractor/
+
+# Local History for Visual Studio
+.localhistory/
+
+# BeatPulse healthcheck temp database
+healthchecksdb
+
+# Backup folder for Package Reference Convert tool in Visual Studio 2017
+MigrationBackup/
+
+start*.sh
diff --git a/Aurora.gtk/Aurora.gtk.csproj b/aurora-sharp-desktop/Aurora.gtk/Aurora.gtk.csproj
similarity index 100%
rename from Aurora.gtk/Aurora.gtk.csproj
rename to aurora-sharp-desktop/Aurora.gtk/Aurora.gtk.csproj
diff --git a/Aurora.gtk/Helpers/Settings.cs b/aurora-sharp-desktop/Aurora.gtk/Helpers/Settings.cs
similarity index 100%
rename from Aurora.gtk/Helpers/Settings.cs
rename to aurora-sharp-desktop/Aurora.gtk/Helpers/Settings.cs
diff --git a/Aurora.gtk/LibVLCSharp.GTK.dll.config b/aurora-sharp-desktop/Aurora.gtk/LibVLCSharp.GTK.dll.config
similarity index 100%
rename from Aurora.gtk/LibVLCSharp.GTK.dll.config
rename to aurora-sharp-desktop/Aurora.gtk/LibVLCSharp.GTK.dll.config
diff --git a/Aurora.gtk/LibVLCSharp.dll.config b/aurora-sharp-desktop/Aurora.gtk/LibVLCSharp.dll.config
similarity index 100%
rename from Aurora.gtk/LibVLCSharp.dll.config
rename to aurora-sharp-desktop/Aurora.gtk/LibVLCSharp.dll.config
diff --git a/Aurora.gtk/MainWindow.cs b/aurora-sharp-desktop/Aurora.gtk/MainWindow.cs
similarity index 100%
rename from Aurora.gtk/MainWindow.cs
rename to aurora-sharp-desktop/Aurora.gtk/MainWindow.cs
diff --git a/Aurora.gtk/OpenTK.dll.config b/aurora-sharp-desktop/Aurora.gtk/OpenTK.dll.config
similarity index 100%
rename from Aurora.gtk/OpenTK.dll.config
rename to aurora-sharp-desktop/Aurora.gtk/OpenTK.dll.config
diff --git a/Aurora.gtk/Program.cs b/aurora-sharp-desktop/Aurora.gtk/Program.cs
similarity index 100%
rename from Aurora.gtk/Program.cs
rename to aurora-sharp-desktop/Aurora.gtk/Program.cs
diff --git a/Aurora.gtk/Properties/AssemblyInfo.cs b/aurora-sharp-desktop/Aurora.gtk/Properties/AssemblyInfo.cs
similarity index 100%
rename from Aurora.gtk/Properties/AssemblyInfo.cs
rename to aurora-sharp-desktop/Aurora.gtk/Properties/AssemblyInfo.cs
diff --git a/Aurora.gtk/Resources/backward.png b/aurora-sharp-desktop/Aurora.gtk/Resources/backward.png
similarity index 100%
rename from Aurora.gtk/Resources/backward.png
rename to aurora-sharp-desktop/Aurora.gtk/Resources/backward.png
diff --git a/Aurora.gtk/Resources/forwards.png b/aurora-sharp-desktop/Aurora.gtk/Resources/forwards.png
similarity index 100%
rename from Aurora.gtk/Resources/forwards.png
rename to aurora-sharp-desktop/Aurora.gtk/Resources/forwards.png
diff --git a/Aurora.gtk/Resources/like.png b/aurora-sharp-desktop/Aurora.gtk/Resources/like.png
similarity index 100%
rename from Aurora.gtk/Resources/like.png
rename to aurora-sharp-desktop/Aurora.gtk/Resources/like.png
diff --git a/Aurora.gtk/Resources/loop.png b/aurora-sharp-desktop/Aurora.gtk/Resources/loop.png
similarity index 100%
rename from Aurora.gtk/Resources/loop.png
rename to aurora-sharp-desktop/Aurora.gtk/Resources/loop.png
diff --git a/Aurora.gtk/Resources/menu.png b/aurora-sharp-desktop/Aurora.gtk/Resources/menu.png
similarity index 100%
rename from Aurora.gtk/Resources/menu.png
rename to aurora-sharp-desktop/Aurora.gtk/Resources/menu.png
diff --git a/Aurora.gtk/Resources/pause.png b/aurora-sharp-desktop/Aurora.gtk/Resources/pause.png
similarity index 100%
rename from Aurora.gtk/Resources/pause.png
rename to aurora-sharp-desktop/Aurora.gtk/Resources/pause.png
diff --git a/Aurora.gtk/Resources/play.png b/aurora-sharp-desktop/Aurora.gtk/Resources/play.png
similarity index 100%
rename from Aurora.gtk/Resources/play.png
rename to aurora-sharp-desktop/Aurora.gtk/Resources/play.png
diff --git a/Aurora.gtk/Resources/shuffle.png b/aurora-sharp-desktop/Aurora.gtk/Resources/shuffle.png
similarity index 100%
rename from Aurora.gtk/Resources/shuffle.png
rename to aurora-sharp-desktop/Aurora.gtk/Resources/shuffle.png
diff --git a/Aurora.gtk/gtk-gui/MainWindow.cs b/aurora-sharp-desktop/Aurora.gtk/gtk-gui/MainWindow.cs
similarity index 100%
rename from Aurora.gtk/gtk-gui/MainWindow.cs
rename to aurora-sharp-desktop/Aurora.gtk/gtk-gui/MainWindow.cs
diff --git a/Aurora.gtk/gtk-gui/generated.cs b/aurora-sharp-desktop/Aurora.gtk/gtk-gui/generated.cs
similarity index 100%
rename from Aurora.gtk/gtk-gui/generated.cs
rename to aurora-sharp-desktop/Aurora.gtk/gtk-gui/generated.cs
diff --git a/Aurora.gtk/gtk-gui/gui.stetic b/aurora-sharp-desktop/Aurora.gtk/gtk-gui/gui.stetic
similarity index 100%
rename from Aurora.gtk/gtk-gui/gui.stetic
rename to aurora-sharp-desktop/Aurora.gtk/gtk-gui/gui.stetic
diff --git a/Aurora.gtk/libvlc.dylib b/aurora-sharp-desktop/Aurora.gtk/libvlc.dylib
similarity index 100%
rename from Aurora.gtk/libvlc.dylib
rename to aurora-sharp-desktop/Aurora.gtk/libvlc.dylib
diff --git a/Aurora.gtk/packages.config b/aurora-sharp-desktop/Aurora.gtk/packages.config
similarity index 100%
rename from Aurora.gtk/packages.config
rename to aurora-sharp-desktop/Aurora.gtk/packages.config
diff --git a/Aurora.gtk/webkit-sharp.dll.config b/aurora-sharp-desktop/Aurora.gtk/webkit-sharp.dll.config
similarity index 100%
rename from Aurora.gtk/webkit-sharp.dll.config
rename to aurora-sharp-desktop/Aurora.gtk/webkit-sharp.dll.config
diff --git a/Aurora.sln b/aurora-sharp-desktop/Aurora.sln
similarity index 100%
rename from Aurora.sln
rename to aurora-sharp-desktop/Aurora.sln
diff --git a/Aurora.test/Aurora.test.csproj b/aurora-sharp-desktop/Aurora.test/Aurora.test.csproj
similarity index 100%
rename from Aurora.test/Aurora.test.csproj
rename to aurora-sharp-desktop/Aurora.test/Aurora.test.csproj
diff --git a/Aurora.test/ControllerTests/EventTests.cs b/aurora-sharp-desktop/Aurora.test/ControllerTests/EventTests.cs
similarity index 100%
rename from Aurora.test/ControllerTests/EventTests.cs
rename to aurora-sharp-desktop/Aurora.test/ControllerTests/EventTests.cs
diff --git a/Aurora.test/ControllerTests/MediaControllerTest.cs b/aurora-sharp-desktop/Aurora.test/ControllerTests/MediaControllerTest.cs
similarity index 100%
rename from Aurora.test/ControllerTests/MediaControllerTest.cs
rename to aurora-sharp-desktop/Aurora.test/ControllerTests/MediaControllerTest.cs
diff --git a/Aurora.test/ControllerTests/MembersControllerTest.cs b/aurora-sharp-desktop/Aurora.test/ControllerTests/MembersControllerTest.cs
similarity index 100%
rename from Aurora.test/ControllerTests/MembersControllerTest.cs
rename to aurora-sharp-desktop/Aurora.test/ControllerTests/MembersControllerTest.cs
diff --git a/Aurora.test/ControllerTests/PartyControllerTest.cs b/aurora-sharp-desktop/Aurora.test/ControllerTests/PartyControllerTest.cs
similarity index 100%
rename from Aurora.test/ControllerTests/PartyControllerTest.cs
rename to aurora-sharp-desktop/Aurora.test/ControllerTests/PartyControllerTest.cs
diff --git a/Aurora.test/ControllerTests/Setup.cs b/aurora-sharp-desktop/Aurora.test/ControllerTests/Setup.cs
similarity index 100%
rename from Aurora.test/ControllerTests/Setup.cs
rename to aurora-sharp-desktop/Aurora.test/ControllerTests/Setup.cs
diff --git a/Aurora.test/Models/CallContext.cs b/aurora-sharp-desktop/Aurora.test/Models/CallContext.cs
similarity index 100%
rename from Aurora.test/Models/CallContext.cs
rename to aurora-sharp-desktop/Aurora.test/Models/CallContext.cs
diff --git a/Aurora.test/Models/Mock/SettingsServiceMock.cs b/aurora-sharp-desktop/Aurora.test/Models/Mock/SettingsServiceMock.cs
similarity index 100%
rename from Aurora.test/Models/Mock/SettingsServiceMock.cs
rename to aurora-sharp-desktop/Aurora.test/Models/Mock/SettingsServiceMock.cs
diff --git a/Aurora.test/Resources/Jidenna/The Chief/01 A Bull's Tale.mp3 b/aurora-sharp-desktop/Aurora.test/Resources/Jidenna/The Chief/01 A Bull's Tale.mp3
similarity index 100%
rename from Aurora.test/Resources/Jidenna/The Chief/01 A Bull's Tale.mp3
rename to aurora-sharp-desktop/Aurora.test/Resources/Jidenna/The Chief/01 A Bull's Tale.mp3
diff --git a/Aurora.test/Resources/Jidenna/The Chief/02 Chief Don't Run.mp3 b/aurora-sharp-desktop/Aurora.test/Resources/Jidenna/The Chief/02 Chief Don't Run.mp3
similarity index 100%
rename from Aurora.test/Resources/Jidenna/The Chief/02 Chief Don't Run.mp3
rename to aurora-sharp-desktop/Aurora.test/Resources/Jidenna/The Chief/02 Chief Don't Run.mp3
diff --git a/Aurora.test/Resources/Jidenna/The Chief/03 Trampoline.mp3 b/aurora-sharp-desktop/Aurora.test/Resources/Jidenna/The Chief/03 Trampoline.mp3
similarity index 100%
rename from Aurora.test/Resources/Jidenna/The Chief/03 Trampoline.mp3
rename to aurora-sharp-desktop/Aurora.test/Resources/Jidenna/The Chief/03 Trampoline.mp3
diff --git a/Aurora.test/Resources/Jidenna/The Chief/04 Bambi.mp3 b/aurora-sharp-desktop/Aurora.test/Resources/Jidenna/The Chief/04 Bambi.mp3
similarity index 100%
rename from Aurora.test/Resources/Jidenna/The Chief/04 Bambi.mp3
rename to aurora-sharp-desktop/Aurora.test/Resources/Jidenna/The Chief/04 Bambi.mp3
diff --git a/Aurora.test/Resources/Jidenna/The Chief/05 Helicopters _ Beware.mp3 b/aurora-sharp-desktop/Aurora.test/Resources/Jidenna/The Chief/05 Helicopters _ Beware.mp3
similarity index 100%
rename from Aurora.test/Resources/Jidenna/The Chief/05 Helicopters _ Beware.mp3
rename to aurora-sharp-desktop/Aurora.test/Resources/Jidenna/The Chief/05 Helicopters _ Beware.mp3
diff --git a/Aurora.test/Resources/Jidenna/The Chief/06 Long Live The Chief.mp3 b/aurora-sharp-desktop/Aurora.test/Resources/Jidenna/The Chief/06 Long Live The Chief.mp3
similarity index 100%
rename from Aurora.test/Resources/Jidenna/The Chief/06 Long Live The Chief.mp3
rename to aurora-sharp-desktop/Aurora.test/Resources/Jidenna/The Chief/06 Long Live The Chief.mp3
diff --git a/Aurora.test/Resources/Jidenna/The Chief/07 2 Points.mp3 b/aurora-sharp-desktop/Aurora.test/Resources/Jidenna/The Chief/07 2 Points.mp3
similarity index 100%
rename from Aurora.test/Resources/Jidenna/The Chief/07 2 Points.mp3
rename to aurora-sharp-desktop/Aurora.test/Resources/Jidenna/The Chief/07 2 Points.mp3
diff --git a/Aurora.test/Resources/Jidenna/The Chief/08 The Let Out.mp3 b/aurora-sharp-desktop/Aurora.test/Resources/Jidenna/The Chief/08 The Let Out.mp3
similarity index 100%
rename from Aurora.test/Resources/Jidenna/The Chief/08 The Let Out.mp3
rename to aurora-sharp-desktop/Aurora.test/Resources/Jidenna/The Chief/08 The Let Out.mp3
diff --git a/Aurora.test/Resources/Jidenna/The Chief/09 Safari.mp3 b/aurora-sharp-desktop/Aurora.test/Resources/Jidenna/The Chief/09 Safari.mp3
similarity index 100%
rename from Aurora.test/Resources/Jidenna/The Chief/09 Safari.mp3
rename to aurora-sharp-desktop/Aurora.test/Resources/Jidenna/The Chief/09 Safari.mp3
diff --git a/Aurora.test/Resources/Jidenna/The Chief/10 Adaora.mp3 b/aurora-sharp-desktop/Aurora.test/Resources/Jidenna/The Chief/10 Adaora.mp3
similarity index 100%
rename from Aurora.test/Resources/Jidenna/The Chief/10 Adaora.mp3
rename to aurora-sharp-desktop/Aurora.test/Resources/Jidenna/The Chief/10 Adaora.mp3
diff --git a/Aurora.test/Resources/Jidenna/The Chief/11 Little Bit More.mp3 b/aurora-sharp-desktop/Aurora.test/Resources/Jidenna/The Chief/11 Little Bit More.mp3
similarity index 100%
rename from Aurora.test/Resources/Jidenna/The Chief/11 Little Bit More.mp3
rename to aurora-sharp-desktop/Aurora.test/Resources/Jidenna/The Chief/11 Little Bit More.mp3
diff --git a/Aurora.test/Resources/Jidenna/The Chief/12 Some Kind Of Way.mp3 b/aurora-sharp-desktop/Aurora.test/Resources/Jidenna/The Chief/12 Some Kind Of Way.mp3
similarity index 100%
rename from Aurora.test/Resources/Jidenna/The Chief/12 Some Kind Of Way.mp3
rename to aurora-sharp-desktop/Aurora.test/Resources/Jidenna/The Chief/12 Some Kind Of Way.mp3
diff --git a/Aurora.test/Resources/Jidenna/The Chief/13 White Niggas.mp3 b/aurora-sharp-desktop/Aurora.test/Resources/Jidenna/The Chief/13 White Niggas.mp3
similarity index 100%
rename from Aurora.test/Resources/Jidenna/The Chief/13 White Niggas.mp3
rename to aurora-sharp-desktop/Aurora.test/Resources/Jidenna/The Chief/13 White Niggas.mp3
diff --git a/Aurora.test/Resources/Jidenna/The Chief/14 Bully Of The Earth.mp3 b/aurora-sharp-desktop/Aurora.test/Resources/Jidenna/The Chief/14 Bully Of The Earth.mp3
similarity index 100%
rename from Aurora.test/Resources/Jidenna/The Chief/14 Bully Of The Earth.mp3
rename to aurora-sharp-desktop/Aurora.test/Resources/Jidenna/The Chief/14 Bully Of The Earth.mp3
diff --git a/Aurora.test/Resources/Mac Miller/Best Day Ever/01 Best Day Ever (Prod. By_ ID Labs).m4a b/aurora-sharp-desktop/Aurora.test/Resources/Mac Miller/Best Day Ever/01 Best Day Ever (Prod. By_ ID Labs).m4a
similarity index 100%
rename from Aurora.test/Resources/Mac Miller/Best Day Ever/01 Best Day Ever (Prod. By_ ID Labs).m4a
rename to aurora-sharp-desktop/Aurora.test/Resources/Mac Miller/Best Day Ever/01 Best Day Ever (Prod. By_ ID Labs).m4a
diff --git a/Aurora.test/Resources/Mac Miller/Best Day Ever/02 Get Up (Prod. By_ Teddy Roxpin).m4a b/aurora-sharp-desktop/Aurora.test/Resources/Mac Miller/Best Day Ever/02 Get Up (Prod. By_ Teddy Roxpin).m4a
similarity index 100%
rename from Aurora.test/Resources/Mac Miller/Best Day Ever/02 Get Up (Prod. By_ Teddy Roxpin).m4a
rename to aurora-sharp-desktop/Aurora.test/Resources/Mac Miller/Best Day Ever/02 Get Up (Prod. By_ Teddy Roxpin).m4a
diff --git a/Aurora.test/Resources/Mac Miller/Best Day Ever/03 Donald Trump (Prod. By_ Sap).m4a b/aurora-sharp-desktop/Aurora.test/Resources/Mac Miller/Best Day Ever/03 Donald Trump (Prod. By_ Sap).m4a
similarity index 100%
rename from Aurora.test/Resources/Mac Miller/Best Day Ever/03 Donald Trump (Prod. By_ Sap).m4a
rename to aurora-sharp-desktop/Aurora.test/Resources/Mac Miller/Best Day Ever/03 Donald Trump (Prod. By_ Sap).m4a
diff --git a/Aurora.test/Resources/Mac Miller/Best Day Ever/04 Oy Vey (Prod By_ ID Labs).mp3 b/aurora-sharp-desktop/Aurora.test/Resources/Mac Miller/Best Day Ever/04 Oy Vey (Prod By_ ID Labs).mp3
similarity index 100%
rename from Aurora.test/Resources/Mac Miller/Best Day Ever/04 Oy Vey (Prod By_ ID Labs).mp3
rename to aurora-sharp-desktop/Aurora.test/Resources/Mac Miller/Best Day Ever/04 Oy Vey (Prod By_ ID Labs).mp3
diff --git a/Aurora.test/Resources/Mac Miller/Best Day Ever/05 I'll Be There (feat. Phonte) (Prod. By_ Beanz 'n' Kornbread).mp3 b/aurora-sharp-desktop/Aurora.test/Resources/Mac Miller/Best Day Ever/05 I'll Be There (feat. Phonte) (Prod. By_ Beanz 'n' Kornbread).mp3
similarity index 100%
rename from Aurora.test/Resources/Mac Miller/Best Day Ever/05 I'll Be There (feat. Phonte) (Prod. By_ Beanz 'n' Kornbread).mp3
rename to aurora-sharp-desktop/Aurora.test/Resources/Mac Miller/Best Day Ever/05 I'll Be There (feat. Phonte) (Prod. By_ Beanz 'n' Kornbread).mp3
diff --git a/Aurora.test/Resources/Mac Miller/Best Day Ever/06 Wear My Hat (Prod. By_ Chuck Inglish).m4a b/aurora-sharp-desktop/Aurora.test/Resources/Mac Miller/Best Day Ever/06 Wear My Hat (Prod. By_ Chuck Inglish).m4a
similarity index 100%
rename from Aurora.test/Resources/Mac Miller/Best Day Ever/06 Wear My Hat (Prod. By_ Chuck Inglish).m4a
rename to aurora-sharp-desktop/Aurora.test/Resources/Mac Miller/Best Day Ever/06 Wear My Hat (Prod. By_ Chuck Inglish).m4a
diff --git a/Aurora.test/Resources/Mac Miller/Best Day Ever/07 Wake Up (Prod By_ Sap & ID Labs).m4a b/aurora-sharp-desktop/Aurora.test/Resources/Mac Miller/Best Day Ever/07 Wake Up (Prod By_ Sap & ID Labs).m4a
similarity index 100%
rename from Aurora.test/Resources/Mac Miller/Best Day Ever/07 Wake Up (Prod By_ Sap & ID Labs).m4a
rename to aurora-sharp-desktop/Aurora.test/Resources/Mac Miller/Best Day Ever/07 Wake Up (Prod By_ Sap & ID Labs).m4a
diff --git a/Aurora.test/Resources/Mac Miller/Best Day Ever/08 All Around The World (Prod. By_ Just Blaze).m4a b/aurora-sharp-desktop/Aurora.test/Resources/Mac Miller/Best Day Ever/08 All Around The World (Prod. By_ Just Blaze).m4a
similarity index 100%
rename from Aurora.test/Resources/Mac Miller/Best Day Ever/08 All Around The World (Prod. By_ Just Blaze).m4a
rename to aurora-sharp-desktop/Aurora.test/Resources/Mac Miller/Best Day Ever/08 All Around The World (Prod. By_ Just Blaze).m4a
diff --git a/Aurora.test/Resources/Mac Miller/Best Day Ever/09 Down The Rabbit Hole (Prod. By_ Blue of The Sore Losers).m4a b/aurora-sharp-desktop/Aurora.test/Resources/Mac Miller/Best Day Ever/09 Down The Rabbit Hole (Prod. By_ Blue of The Sore Losers).m4a
similarity index 100%
rename from Aurora.test/Resources/Mac Miller/Best Day Ever/09 Down The Rabbit Hole (Prod. By_ Blue of The Sore Losers).m4a
rename to aurora-sharp-desktop/Aurora.test/Resources/Mac Miller/Best Day Ever/09 Down The Rabbit Hole (Prod. By_ Blue of The Sore Losers).m4a
diff --git a/Aurora.test/Resources/Mac Miller/Best Day Ever/10 In The Air (Prod By_ Ritz Reynolds).m4a b/aurora-sharp-desktop/Aurora.test/Resources/Mac Miller/Best Day Ever/10 In The Air (Prod By_ Ritz Reynolds).m4a
similarity index 100%
rename from Aurora.test/Resources/Mac Miller/Best Day Ever/10 In The Air (Prod By_ Ritz Reynolds).m4a
rename to aurora-sharp-desktop/Aurora.test/Resources/Mac Miller/Best Day Ever/10 In The Air (Prod By_ Ritz Reynolds).m4a
diff --git a/Aurora.test/Resources/Mac Miller/Best Day Ever/11 Play Ya Cards (Prod By_ Chuck Inglish).m4a b/aurora-sharp-desktop/Aurora.test/Resources/Mac Miller/Best Day Ever/11 Play Ya Cards (Prod By_ Chuck Inglish).m4a
similarity index 100%
rename from Aurora.test/Resources/Mac Miller/Best Day Ever/11 Play Ya Cards (Prod By_ Chuck Inglish).m4a
rename to aurora-sharp-desktop/Aurora.test/Resources/Mac Miller/Best Day Ever/11 Play Ya Cards (Prod By_ Chuck Inglish).m4a
diff --git a/Aurora.test/Resources/Mac Miller/Best Day Ever/12 She Said (Prod By_ Khrysis).m4a b/aurora-sharp-desktop/Aurora.test/Resources/Mac Miller/Best Day Ever/12 She Said (Prod By_ Khrysis).m4a
similarity index 100%
rename from Aurora.test/Resources/Mac Miller/Best Day Ever/12 She Said (Prod By_ Khrysis).m4a
rename to aurora-sharp-desktop/Aurora.test/Resources/Mac Miller/Best Day Ever/12 She Said (Prod By_ Khrysis).m4a
diff --git a/Aurora.test/Resources/Mac Miller/Best Day Ever/13 Life Ain't Easy (Prod. By_ ID Labs).m4a b/aurora-sharp-desktop/Aurora.test/Resources/Mac Miller/Best Day Ever/13 Life Ain't Easy (Prod. By_ ID Labs).m4a
similarity index 100%
rename from Aurora.test/Resources/Mac Miller/Best Day Ever/13 Life Ain't Easy (Prod. By_ ID Labs).m4a
rename to aurora-sharp-desktop/Aurora.test/Resources/Mac Miller/Best Day Ever/13 Life Ain't Easy (Prod. By_ ID Labs).m4a
diff --git a/Aurora.test/Resources/Mac Miller/Best Day Ever/14 Snooze (Prod By_ ID Labs).m4a b/aurora-sharp-desktop/Aurora.test/Resources/Mac Miller/Best Day Ever/14 Snooze (Prod By_ ID Labs).m4a
similarity index 100%
rename from Aurora.test/Resources/Mac Miller/Best Day Ever/14 Snooze (Prod By_ ID Labs).m4a
rename to aurora-sharp-desktop/Aurora.test/Resources/Mac Miller/Best Day Ever/14 Snooze (Prod By_ ID Labs).m4a
diff --git a/Aurora.test/Resources/Mac Miller/Best Day Ever/15 Keep Floatin' (feat. Wiz Khalifa) (Prod. By_ ID Labs).mp3 b/aurora-sharp-desktop/Aurora.test/Resources/Mac Miller/Best Day Ever/15 Keep Floatin' (feat. Wiz Khalifa) (Prod. By_ ID Labs).mp3
similarity index 100%
rename from Aurora.test/Resources/Mac Miller/Best Day Ever/15 Keep Floatin' (feat. Wiz Khalifa) (Prod. By_ ID Labs).mp3
rename to aurora-sharp-desktop/Aurora.test/Resources/Mac Miller/Best Day Ever/15 Keep Floatin' (feat. Wiz Khalifa) (Prod. By_ ID Labs).mp3
diff --git a/Aurora.test/Resources/Mac Miller/Best Day Ever/16 BDE Bonus (Prod. By_ ID Labs).mp3 b/aurora-sharp-desktop/Aurora.test/Resources/Mac Miller/Best Day Ever/16 BDE Bonus (Prod. By_ ID Labs).mp3
similarity index 100%
rename from Aurora.test/Resources/Mac Miller/Best Day Ever/16 BDE Bonus (Prod. By_ ID Labs).mp3
rename to aurora-sharp-desktop/Aurora.test/Resources/Mac Miller/Best Day Ever/16 BDE Bonus (Prod. By_ ID Labs).mp3
diff --git a/aurora-sharp-desktop/Aurora/App.css b/aurora-sharp-desktop/Aurora/App.css
new file mode 100644
index 0000000..2982121
--- /dev/null
+++ b/aurora-sharp-desktop/Aurora/App.css
@@ -0,0 +1,11 @@
+.primaryColor {
+ background-color: #000000;
+}
+
+.accentColor {
+ background-color: #181818;
+}
+
+.secondAccentColor {
+ background-color: #303030
+}
\ No newline at end of file
diff --git a/aurora-sharp-desktop/Aurora/App.xaml b/aurora-sharp-desktop/Aurora/App.xaml
new file mode 100644
index 0000000..ffbf554
--- /dev/null
+++ b/aurora-sharp-desktop/Aurora/App.xaml
@@ -0,0 +1,31 @@
+
+
+
+
+ #FFFFFF
+ #000000
+ #F5C210
+ #151C25
+ #1E2634
+ #151C25
+ #44545C
+
+
+
+
+
+
\ No newline at end of file
diff --git a/aurora-sharp-desktop/Aurora/App.xaml.cs b/aurora-sharp-desktop/Aurora/App.xaml.cs
new file mode 100644
index 0000000..487ba7d
--- /dev/null
+++ b/aurora-sharp-desktop/Aurora/App.xaml.cs
@@ -0,0 +1,72 @@
+using System;
+using Aurora.Design.Views.Main;
+using Aurora.Design.Views.Albums;
+using Aurora.Design.Views.Artists;
+using Aurora.Design.Views.Party;
+using Aurora.Design.Views.Profile;
+using Aurora.Design.Views.Songs;
+using Aurora.Design.Views.Stations;
+using Aurora.Services.EventManager;
+using Aurora.Services.Server;
+using Aurora.Services.Client;
+using Autofac;
+using LibVLCSharp.Shared;
+using Xamarin.Forms;
+using Aurora.Services.Player;
+using Aurora.Services.Settings;
+using Aurora.Services.Library;
+
+namespace Aurora
+{
+ public partial class App : Application
+ {
+ private static IContainer _container;
+ public App()
+ {
+ InitializeComponent();
+ Core.Initialize();
+
+ //Register DI
+ ContainerBuilder _builder = new ContainerBuilder();
+ // _builder.RegisterInstance(new PlayerService()).SingleInstance();
+ _builder.RegisterType().As().SingleInstance();
+ _builder.RegisterType().As().SingleInstance();
+ _builder.RegisterType().As().SingleInstance();
+ _builder.RegisterType().As().SingleInstance();
+ _builder.RegisterType().As().SingleInstance();
+ _builder.RegisterType().As().SingleInstance();
+ _builder.RegisterType().SingleInstance();
+ _builder.RegisterType();
+ _builder.RegisterType();
+ _builder.RegisterType();
+ _builder.RegisterType();
+ _builder.RegisterType();
+ _builder.RegisterType();
+
+ // _builder.RegisterInstance(new SettingsService()).SingleInstance();
+ _container = _builder.Build();
+
+ MainPage = _container.Resolve();
+ }
+
+ public static IContainer Container
+ {
+ get { return _container; }
+ }
+
+ protected override void OnStart()
+ {
+ // Handle when your app starts
+ }
+
+ protected override void OnSleep()
+ {
+ // Handle when your app sleeps
+ }
+
+ protected override void OnResume()
+ {
+ // Handle when your app resumes
+ }
+ }
+}
diff --git a/aurora-sharp-desktop/Aurora/AssemblyInfo.cs b/aurora-sharp-desktop/Aurora/AssemblyInfo.cs
new file mode 100644
index 0000000..c859952
--- /dev/null
+++ b/aurora-sharp-desktop/Aurora/AssemblyInfo.cs
@@ -0,0 +1,3 @@
+using Xamarin.Forms.Xaml;
+
+[assembly: XamlCompilation(XamlCompilationOptions.Compile)]
\ No newline at end of file
diff --git a/aurora-sharp-desktop/Aurora/Aurora.csproj b/aurora-sharp-desktop/Aurora/Aurora.csproj
new file mode 100644
index 0000000..06593eb
--- /dev/null
+++ b/aurora-sharp-desktop/Aurora/Aurora.csproj
@@ -0,0 +1,85 @@
+
+
+ netstandard2.0
+ true
+
+
+ pdbonly
+ true
+
+
+
+
+
+
+
+
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Player.xaml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PreserveNewest
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/aurora-sharp-desktop/Aurora/Design/Behaviors/BehaviorBase.cs b/aurora-sharp-desktop/Aurora/Design/Behaviors/BehaviorBase.cs
new file mode 100644
index 0000000..70993eb
--- /dev/null
+++ b/aurora-sharp-desktop/Aurora/Design/Behaviors/BehaviorBase.cs
@@ -0,0 +1,42 @@
+using System;
+using Xamarin.Forms;
+
+namespace Aurora.Design.Behaviors
+{
+ public class BehaviorBase : Behavior where T : BindableObject
+ {
+ public T AssociatedObject { get; private set; }
+
+ protected override void OnAttachedTo(T bindable)
+ {
+ base.OnAttachedTo(bindable);
+ AssociatedObject = bindable;
+
+ if (bindable.BindingContext != null)
+ {
+ BindingContext = bindable.BindingContext;
+ }
+
+ bindable.BindingContextChanged += OnBindingContextChanged;
+ }
+
+ protected override void OnDetachingFrom(T bindable)
+ {
+ base.OnDetachingFrom(bindable);
+ bindable.BindingContextChanged -= OnBindingContextChanged;
+ AssociatedObject = null;
+ }
+
+ void OnBindingContextChanged(object sender, EventArgs e)
+ {
+ OnBindingContextChanged();
+ }
+
+ protected override void OnBindingContextChanged()
+ {
+ base.OnBindingContextChanged();
+ BindingContext = AssociatedObject.BindingContext;
+ }
+ }
+}
+
diff --git a/aurora-sharp-desktop/Aurora/Design/Behaviors/EventToCommandBehavior.cs b/aurora-sharp-desktop/Aurora/Design/Behaviors/EventToCommandBehavior.cs
new file mode 100644
index 0000000..b8c111a
--- /dev/null
+++ b/aurora-sharp-desktop/Aurora/Design/Behaviors/EventToCommandBehavior.cs
@@ -0,0 +1,132 @@
+using System;
+using System.Reflection;
+using System.Windows.Input;
+using Xamarin.Forms;
+
+namespace Aurora.Design.Behaviors
+{
+ public class EventToCommandBehavior : BehaviorBase
+ {
+ Delegate eventHandler;
+
+ public static readonly BindableProperty EventNameProperty = BindableProperty.Create("EventName", typeof(string), typeof(EventToCommandBehavior), null, propertyChanged: OnEventNameChanged);
+ public static readonly BindableProperty CommandProperty = BindableProperty.Create("Command", typeof(ICommand), typeof(EventToCommandBehavior), null);
+ public static readonly BindableProperty CommandParameterProperty = BindableProperty.Create("CommandParameter", typeof(object), typeof(EventToCommandBehavior), null);
+ public static readonly BindableProperty InputConverterProperty = BindableProperty.Create("Converter", typeof(IValueConverter), typeof(EventToCommandBehavior), null);
+
+ public string EventName
+ {
+ get { return (string)GetValue(EventNameProperty); }
+ set { SetValue(EventNameProperty, value); }
+ }
+
+ public ICommand Command
+ {
+ get { return (ICommand)GetValue(CommandProperty); }
+ set { SetValue(CommandProperty, value); }
+ }
+
+ public object CommandParameter
+ {
+ get { return GetValue(CommandParameterProperty); }
+ set { SetValue(CommandParameterProperty, value); }
+ }
+
+ public IValueConverter Converter
+ {
+ get { return (IValueConverter)GetValue(InputConverterProperty); }
+ set { SetValue(InputConverterProperty, value); }
+ }
+
+ protected override void OnAttachedTo(View bindable)
+ {
+ base.OnAttachedTo(bindable);
+ RegisterEvent(EventName);
+ }
+
+ protected override void OnDetachingFrom(View bindable)
+ {
+ DeregisterEvent(EventName);
+ base.OnDetachingFrom(bindable);
+ }
+
+ void RegisterEvent(string name)
+ {
+ if (string.IsNullOrWhiteSpace(name))
+ {
+ return;
+ }
+
+ EventInfo eventInfo = AssociatedObject.GetType().GetRuntimeEvent(name);
+ if (eventInfo == null)
+ {
+ throw new ArgumentException(string.Format("EventToCommandBehavior: Can't register the '{0}' event.", EventName));
+ }
+ MethodInfo methodInfo = typeof(EventToCommandBehavior).GetTypeInfo().GetDeclaredMethod("OnEvent");
+ eventHandler = methodInfo.CreateDelegate(eventInfo.EventHandlerType, this);
+ eventInfo.AddEventHandler(AssociatedObject, eventHandler);
+ }
+
+ void DeregisterEvent(string name)
+ {
+ if (string.IsNullOrWhiteSpace(name))
+ {
+ return;
+ }
+
+ if (eventHandler == null)
+ {
+ return;
+ }
+ EventInfo eventInfo = AssociatedObject.GetType().GetRuntimeEvent(name);
+ if (eventInfo == null)
+ {
+ throw new ArgumentException(string.Format("EventToCommandBehavior: Can't de-register the '{0}' event.", EventName));
+ }
+ eventInfo.RemoveEventHandler(AssociatedObject, eventHandler);
+ eventHandler = null;
+ }
+
+ void OnEvent(object sender, object eventArgs)
+ {
+ if (Command == null)
+ {
+ return;
+ }
+
+ object resolvedParameter;
+ if (CommandParameter != null)
+ {
+ resolvedParameter = CommandParameter;
+ }
+ else if (Converter != null)
+ {
+ resolvedParameter = Converter.Convert(eventArgs, typeof(object), null, null);
+ }
+ else
+ {
+ resolvedParameter = eventArgs;
+ }
+
+ if (Command.CanExecute(resolvedParameter))
+ {
+ Command.Execute(resolvedParameter);
+ }
+ }
+
+ static void OnEventNameChanged(BindableObject bindable, object oldValue, object newValue)
+ {
+ var behavior = (EventToCommandBehavior)bindable;
+ if (behavior.AssociatedObject == null)
+ {
+ return;
+ }
+
+ string oldEventName = (string)oldValue;
+ string newEventName = (string)newValue;
+
+ behavior.DeregisterEvent(oldEventName);
+ behavior.RegisterEvent(newEventName);
+ }
+ }
+}
diff --git a/aurora-sharp-desktop/Aurora/Design/Components/DataGrid/ColumnCollection.cs b/aurora-sharp-desktop/Aurora/Design/Components/DataGrid/ColumnCollection.cs
new file mode 100644
index 0000000..1906bcb
--- /dev/null
+++ b/aurora-sharp-desktop/Aurora/Design/Components/DataGrid/ColumnCollection.cs
@@ -0,0 +1,8 @@
+using System.Collections.Generic;
+
+namespace Aurora.Design.Components.DataGrid
+{
+ public sealed class ColumnCollection : List
+ {
+ }
+}
diff --git a/aurora-sharp-desktop/Aurora/Design/Components/DataGrid/DataGrid.xaml b/aurora-sharp-desktop/Aurora/Design/Components/DataGrid/DataGrid.xaml
new file mode 100644
index 0000000..d6ae78c
--- /dev/null
+++ b/aurora-sharp-desktop/Aurora/Design/Components/DataGrid/DataGrid.xaml
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/aurora-sharp-desktop/Aurora/Design/Components/DataGrid/DataGrid.xaml.cs b/aurora-sharp-desktop/Aurora/Design/Components/DataGrid/DataGrid.xaml.cs
new file mode 100644
index 0000000..fe7e878
--- /dev/null
+++ b/aurora-sharp-desktop/Aurora/Design/Components/DataGrid/DataGrid.xaml.cs
@@ -0,0 +1,756 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Collections.Specialized;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.Reflection;
+using System.Windows.Input;
+using Xamarin.Forms;
+using Aurora.Utils;
+
+namespace Aurora.Design.Components.DataGrid
+{
+ public partial class DataGrid : Grid
+ {
+ #region Private Fields
+ private ObservableCollection