2508271258
撥放器更新至 4.0測試版 軟體版本2.10
This commit is contained in:
parent
2466c8cb6a
commit
2b25b14047
6
NuGet.Config
Normal file
6
NuGet.Config
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<packageSources>
|
||||
<add key="videolan-preview" value="https://f.feedz.io/videolan/preview/nuget/index.json" />
|
||||
</packageSources>
|
||||
</configuration>
|
@ -55,7 +55,7 @@ namespace DualScreenDemo
|
||||
private Button musicDownButton;
|
||||
private Button micUpButton;
|
||||
private Button micDownButton;
|
||||
private Button originalSongButton;
|
||||
public Button originalSongButton;
|
||||
private Button replayButton;
|
||||
public Button pauseButton;
|
||||
public Button playButton;
|
||||
@ -210,7 +210,7 @@ namespace DualScreenDemo
|
||||
private Timer autoRefreshTimer;
|
||||
private Timer timerCountdown;
|
||||
string Rtime;
|
||||
bool test = true;
|
||||
bool test = false;
|
||||
//private Label pageNumberLabel; // 添加頁碼標籤
|
||||
public PrimaryForm()
|
||||
{
|
||||
|
@ -14,7 +14,7 @@ namespace DualScreenDemo
|
||||
private static PrimaryForm primaryForm; // 儲存實例的參考
|
||||
public static Room room = new Room();
|
||||
|
||||
public static string verSion = "Server V2.9 202508221643";
|
||||
public static string verSion = "Server V2.10 202508270919";
|
||||
|
||||
[STAThread]
|
||||
static void Main()
|
||||
|
@ -1,29 +1,9 @@
|
||||
using System.IO;
|
||||
using LibVLCSharp.Shared;
|
||||
using DirectShowLib;
|
||||
using LibVLCSharp;
|
||||
|
||||
namespace DualScreenDemo.Services
|
||||
{
|
||||
public static class ControlExtensions
|
||||
{
|
||||
public static Task InvokeAsync(this Control control, Func<Task> func)
|
||||
{
|
||||
var tcs = new TaskCompletionSource<object>();
|
||||
control.BeginInvoke(new Action(async () =>
|
||||
{
|
||||
try
|
||||
{
|
||||
await func();
|
||||
tcs.SetResult(null);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
tcs.SetException(ex);
|
||||
}
|
||||
}));
|
||||
return tcs.Task;
|
||||
}
|
||||
}
|
||||
|
||||
public class MediaService : IDisposable
|
||||
{
|
||||
private LibVLC _libVLC;
|
||||
@ -36,7 +16,7 @@ namespace DualScreenDemo.Services
|
||||
Core.Initialize();
|
||||
_libVLC = new LibVLC(
|
||||
// "--verbose=-1",
|
||||
enableDebugLogs: true,
|
||||
// enableDebugLogs: true,
|
||||
"--audio-time-stretch",
|
||||
"--vout=automatic",
|
||||
"--h264-fps=30",
|
||||
@ -46,10 +26,10 @@ namespace DualScreenDemo.Services
|
||||
"--audio-time-stretch"
|
||||
);
|
||||
|
||||
_libVLC.Log += (sender, args) =>
|
||||
{
|
||||
Console.WriteLine($"[{args.Level}] {args.Message}");
|
||||
};
|
||||
// _libVLC.Log += (sender, args) =>
|
||||
// {
|
||||
// Console.WriteLine($"[{args.Level}] {args.Message}");
|
||||
// };
|
||||
|
||||
_mediaPlayer = new MediaPlayer(_libVLC);
|
||||
_mediaPlayer.AspectRatio = "16:9";
|
||||
@ -80,7 +60,7 @@ namespace DualScreenDemo.Services
|
||||
|
||||
public bool IsAtEnd()
|
||||
{
|
||||
if (_mediaPlayer.State == VLCState.Ended)
|
||||
if (_mediaPlayer.State == VLCState.Stopped)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
@ -97,40 +77,17 @@ namespace DualScreenDemo.Services
|
||||
private bool _isTransitioning = false;
|
||||
|
||||
|
||||
|
||||
|
||||
public void LoadMedia(string filePath, int audioTrackIndex = 0)
|
||||
{
|
||||
try
|
||||
{
|
||||
// _mediaPlayer.Stop();
|
||||
_mediaPlayer.Stop();
|
||||
_media?.Dispose();
|
||||
_media = new Media(_libVLC, filePath, FromType.FromPath);
|
||||
_media = new Media(filePath, FromType.FromPath);
|
||||
_mediaPlayer.Play(addMediaOption(_media, audioTrackIndex));
|
||||
_mediaPlayer.Stopped += (s, e) => Console.WriteLine("Player Stopped");
|
||||
|
||||
// _mediaPlayer.EndReached += async(s, e) =>
|
||||
// {
|
||||
// if (_isTransitioning) return;
|
||||
// _isTransitioning = true;
|
||||
|
||||
// try
|
||||
// {
|
||||
// await VideoPlayerForm.Instance.InvokeAsync(async () =>
|
||||
// {
|
||||
// await VideoPlayerForm.Instance.PlayNextSong();
|
||||
// await Task.Delay(2000); // Optional delay
|
||||
// });
|
||||
// }
|
||||
// catch (Exception ex)
|
||||
// {
|
||||
// Console.WriteLine($"Error during transition: {ex.Message}");
|
||||
// }
|
||||
// finally
|
||||
// {
|
||||
// _isTransitioning = false;
|
||||
// }
|
||||
// };
|
||||
_mediaPlayer.Fullscreen=true;
|
||||
_mediaPlayer.Mute = false;
|
||||
// _mediaPlayer.Stopped += (s, e) => Console.WriteLine("Player Stopped");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@ -142,11 +99,13 @@ namespace DualScreenDemo.Services
|
||||
private Media addMediaOption(Media media, int audioTrackIndex)
|
||||
{
|
||||
media.AddOption(":avcodec-hw=dxva2");
|
||||
media.AddOption($":drop-late-frames");
|
||||
media.AddOption(":drop-late-frames");
|
||||
media.AddOption(":audio-output=directsound");
|
||||
media.AddOption(":network-caching=300");
|
||||
media.AddOption(":live-caching=300");
|
||||
media.AddOption(":file-caching=300");
|
||||
media.AddOption(":clock-jitter=0");
|
||||
media.AddOption(":clock-synchro=0");
|
||||
media.AddOption($":audio-track={audioTrackIndex}");
|
||||
return media;
|
||||
}
|
||||
@ -164,20 +123,20 @@ namespace DualScreenDemo.Services
|
||||
|
||||
if (media == null) return result;
|
||||
|
||||
if (!media.IsParsed)
|
||||
media.Parse(MediaParseOptions.ParseLocal);
|
||||
//if (!media.IsParsed)
|
||||
// media.Parse(MediaParseOptions.ParseLocal);
|
||||
|
||||
var tracks = media.Tracks;
|
||||
if (tracks == null) return result;
|
||||
//var tracks = media.Tracks;
|
||||
// if (tracks == null) return result;
|
||||
|
||||
foreach (var track in tracks.Where(t => t.TrackType == TrackType.Audio))
|
||||
{
|
||||
result.Add(new TrackDescription
|
||||
{
|
||||
Id = track.Id,
|
||||
Name = !string.IsNullOrEmpty(track.Language) ? track.Language : $"Audio Track {track.Id}"
|
||||
});
|
||||
}
|
||||
// foreach (var track in tracks.Where(t => t.TrackType == TrackType.Audio))
|
||||
// {
|
||||
// result.Add(new TrackDescription
|
||||
// {
|
||||
// Id = track.Id,
|
||||
// Name = !string.IsNullOrEmpty(track.Language) ? track.Language : $"Audio Track {track.Id}"
|
||||
// });
|
||||
// }
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -185,12 +144,12 @@ namespace DualScreenDemo.Services
|
||||
{
|
||||
var audioTracks = GetAudioTracks();
|
||||
if (trackIndex < 0 || trackIndex >= audioTracks.Count) return;
|
||||
_mediaPlayer.SetAudioTrack(audioTracks[trackIndex].Id);
|
||||
//_mediaPlayer.SetAudioTrack(audioTracks[trackIndex].Id);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Volume
|
||||
public void SetVolume(int volume) => _mediaPlayer.Volume = volume;
|
||||
public void SetVolume(int volume) => _mediaPlayer.SetVolume(volume);
|
||||
public int GetVolume() => _mediaPlayer.Volume;
|
||||
public bool Mute(bool isMuted)
|
||||
{
|
||||
|
@ -2,7 +2,8 @@ using System.Runtime.InteropServices;
|
||||
using DBObj;
|
||||
using OverlayFormObj;
|
||||
using DualScreenDemo.Services;
|
||||
using LibVLCSharp.WinForms;
|
||||
using LibVLCSharp;
|
||||
|
||||
namespace DualScreenDemo
|
||||
{
|
||||
public class VideoPlayerForm : Form
|
||||
@ -348,12 +349,23 @@ namespace DualScreenDemo
|
||||
{
|
||||
string pathToPlay = song.getFile();
|
||||
_mediaService0.LoadMedia(pathToPlay, 0);
|
||||
_mediaService0.Player.Media.AddOption(":no-audio");
|
||||
_mediaService0.Player.AspectRatio = "8:5";
|
||||
// _mediaService0.Player.Scale = 1.5f;
|
||||
_mediaService1.LoadMedia(pathToPlay, song.isPublicSong ? 0 : 1);
|
||||
// Play();
|
||||
// Thread.Sleep(100);
|
||||
|
||||
// isVocalRemoved = true;
|
||||
Mute(isMuted);
|
||||
if (song.isPublicSong)
|
||||
{
|
||||
PrimaryForm.Instance.originalSongButton.Click -= PrimaryForm.Instance.OriginalSongButton_Click;
|
||||
}
|
||||
else
|
||||
{
|
||||
PrimaryForm.Instance.originalSongButton.Click -= PrimaryForm.Instance.OriginalSongButton_Click;
|
||||
PrimaryForm.Instance.originalSongButton.Click += PrimaryForm.Instance.OriginalSongButton_Click;
|
||||
}
|
||||
isVocalRemoved = true;
|
||||
if (isMuted) { Mute(true); }
|
||||
|
||||
// 音量處理
|
||||
SetVolume(100 + song.getBasic().getDbChange());
|
||||
Task.Run(() => Thread.Sleep(100));
|
||||
@ -361,17 +373,10 @@ namespace DualScreenDemo
|
||||
if (isSyncToPrimaryMonitor) SyncToPrimaryMonitor();
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
catch (Exception ex)
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(ex.Message);
|
||||
Program.WriteLog(ex.ToString());
|
||||
Stop();
|
||||
_mediaService0.Dispose();
|
||||
_mediaService1.Dispose();
|
||||
_mediaService0 = new MediaService();
|
||||
_mediaService1 = new MediaService();
|
||||
this.Invoke(VideoPlayerForm_Shown);
|
||||
InitializeAndPlayMedia(song);
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
@ -493,12 +498,13 @@ namespace DualScreenDemo
|
||||
{
|
||||
if (isMuted)
|
||||
{
|
||||
_mediaService0.Mute(true);
|
||||
// _mediaService0.Mute(true);
|
||||
_mediaService1.Mute(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
_ToggleVocalRemoval(isVocalRemoved);
|
||||
// _ToggleVocalRemoval(isVocalRemoved);
|
||||
_mediaService1.Mute(false);
|
||||
}
|
||||
return isMuted;
|
||||
}
|
||||
@ -512,19 +518,27 @@ namespace DualScreenDemo
|
||||
{
|
||||
return _mediaService1.GetVolume();
|
||||
}
|
||||
|
||||
private bool isVocalRemoved = true;
|
||||
public void ToggleVocalRemoval()
|
||||
{
|
||||
isVocalRemoved = _ToggleVocalRemoval(!isVocalRemoved);
|
||||
if (isVocalRemoved)
|
||||
{
|
||||
|
||||
_mediaService1.Player.Select(TrackType.Audio, "audio/2");
|
||||
|
||||
isVocalRemoved = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
_mediaService1.Player.Select(TrackType.Audio, "audio/1,audio/3");
|
||||
// _mediaService1.Player.Select(TrackType.Audio, "audio/3");
|
||||
isVocalRemoved = true;
|
||||
}
|
||||
// isVocalRemoved = _ToggleVocalRemoval(!isVocalRemoved);
|
||||
OverlayForm.MainForm.ShowTopRightLabelTime(isVocalRemoved ? "無人聲" : "有人聲");
|
||||
}
|
||||
private bool _ToggleVocalRemoval(bool isVocal)
|
||||
{
|
||||
|
||||
_mediaService0.Mute(isVocal);
|
||||
_mediaService1.Mute(!isVocal);
|
||||
return isVocal;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -13,15 +13,16 @@
|
||||
<ApplicationManifest>app.manifest</ApplicationManifest> <!-- 確保這一行引用了 manifest 文件 -->
|
||||
<UseWindowsForms>true</UseWindowsForms>
|
||||
<NoWarn>CS8618,CS8602,CS8622,CS8625,CS8600,CS8603,CS8601,CS8604,CS4014</NoWarn>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="LibVLCSharp" Version="3.9.4" />
|
||||
<PackageReference Include="LibVLCSharp.WinForms" Version="3.9.4" />
|
||||
<PackageReference Include="LibVLCSharp" Version="4.0.0-alpha-20250825-9139" />
|
||||
<PackageReference Include="LibVLCSharp.WinForms" Version="4.0.0-alpha-20250825-9139" />
|
||||
<PackageReference Include="MySqlConnector" Version="2.4.0" />
|
||||
<PackageReference Include="System.Data.SQLite.Core" Version="1.0.117" />
|
||||
<PackageReference Include="System.IO.Ports" Version="9.0.3" />
|
||||
<PackageReference Include="VideoLAN.LibVLC.Windows" Version="3.0.21" />
|
||||
<PackageReference Include="VideoLAN.LibVLC.Windows" Version="4.0.0-alpha-20250825" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="AxInterop.WMPLib">
|
||||
|
216
superstar.csproj.user
Normal file
216
superstar.csproj.user
Normal file
@ -0,0 +1,216 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup />
|
||||
<ItemGroup>
|
||||
<Compile Update="ImagePanel.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Update="OverlayFormObj\OverlayForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="OverlayFormObj\OverlayForm.Helpers.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="OverlayFormObj\OverlayForm.Labels.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\CategorySearch\PrimaryForm.CategorySearch.ChinaSongs.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\CategorySearch\PrimaryForm.CategorySearch.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\CategorySearch\PrimaryForm.CategorySearch.LoveDuet.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\CategorySearch\PrimaryForm.CategorySearch.MedleyDance.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\CategorySearch\PrimaryForm.CategorySearch.Nineties.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\CategorySearch\PrimaryForm.CategorySearch.NostalgicSongs.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\CategorySearch\PrimaryForm.CategorySearch.TalentShow.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\CategorySearch\PrimaryForm.CategorySearch.VietnameseSongs.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\GroupSearch\PrimaryForm.GroupSearch.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\GroupSearch\PrimaryForm.GroupSearch.GuoYu.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\GroupSearch\PrimaryForm.GroupSearch.HanYu.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\GroupSearch\PrimaryForm.GroupSearch.RiYu.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\GroupSearch\PrimaryForm.GroupSearch.TaiYu.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\GroupSearch\PrimaryForm.GroupSearch.YingYu.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\GroupSearch\PrimaryForm.GroupSearch.YueYu.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\HotSong\PrimaryForm.HotSong.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\HotSong\PrimaryForm.HotSongChinese.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\HotSong\PrimaryForm.HotSongEnglish.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\HotSong\PrimaryForm.HotSongJapanese.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\HotSong\PrimaryForm.HotSongKorean.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\HotSong\PrimaryForm.HotSongMandarinNew.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\HotSong\PrimaryForm.HotSongTaiwanese.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\HotSong\PrimaryForm.HotSongTaiwaneseNew.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\LanguageSearch\PrimaryForm.LanguageSearch.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\LanguageSearch\PrimaryForm.LanguageSearch.GuoYu.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\LanguageSearch\PrimaryForm.LanguageSearch.HanYu.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\LanguageSearch\PrimaryForm.LanguageSearch.KeYu.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\LanguageSearch\PrimaryForm.LanguageSearch.RiYu.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\LanguageSearch\PrimaryForm.LanguageSearch.TaiYu.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\LanguageSearch\PrimaryForm.LanguageSearch.YingWen.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\LanguageSearch\PrimaryForm.LanguageSearch.YueYu.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\NewSongAlert\PrimaryForm.NewSongAlert.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\NewSongAlert\PrimaryForm.NewSongAlertCantonese.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\NewSongAlert\PrimaryForm.NewSongAlertChinese.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\NewSongAlert\PrimaryForm.NewSongAlertEnglish.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\NewSongAlert\PrimaryForm.NewSongAlertJapanese.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\NewSongAlert\PrimaryForm.NewSongAlertKorean.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\NewSongAlert\PrimaryForm.NewSongAlertTaiwanese.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\PrimaryForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\PrimaryForm.Favorite.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\PrimaryForm.MultiPagePanel.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\PrimaryForm.OrderedSongs.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\PrimaryForm.Promotions.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\PrimaryForm.PromotionsAndMenuPanel.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\PrimaryForm.QRCode.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\PrimaryForm.SequenceManager.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\PrimaryForm.SoundEffects.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\PrimaryForm.SQLSearch.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\PrimaryForm.SyncScreen.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\PrimaryForm.ToggleLight.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\PrimaryForm.VodScreen.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\SingerSearch\PrimaryForm.SingerSearch.BopomofoSearch.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\SingerSearch\PrimaryForm.SingerSearch.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\SingerSearch\PrimaryForm.SingerSearch.EnglishSearch.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\SingerSearch\PrimaryForm.SingerSearch.HandwritingSearch.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\SingerSearch\PrimaryForm.SingerSearch.PinyinSearch.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\SingerSearch\PrimaryForm.SingerSearch.WordCountSearch.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\SongSearch\PrimaryForm.SongSearch.BopomofoSearch.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\SongSearch\PrimaryForm.SongSearch.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\SongSearch\PrimaryForm.SongSearch.EnglishSearch.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\SongSearch\PrimaryForm.SongSearch.HandwritingSearch.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\SongSearch\PrimaryForm.SongSearch.NumberSearch.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\SongSearch\PrimaryForm.SongSearch.PinyinSearch.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PrimaryFormParts\SongSearch\PrimaryForm.SongSearch.WordCountSearch.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="PromotionsAndMenuPanel.cs">
|
||||
<SubType>Component</SubType>
|
||||
</Compile>
|
||||
<Compile Update="VideoPlayerForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
</Project>
|
Loading…
x
Reference in New Issue
Block a user