BililiveRecorder/BililiveRecorder.Core/IRoom.cs
genteure 2dd898ecd1
Some checks failed
Build and Test / test (ubuntu-latest) (push) Has been cancelled
Build and Test / test (windows-latest) (push) Has been cancelled
Build and Test / build_wpf (push) Has been cancelled
Build and Test / build_cli (any) (push) Has been cancelled
Build and Test / build_cli (linux-arm) (push) Has been cancelled
Build and Test / build_cli (linux-arm64) (push) Has been cancelled
Build and Test / build_cli (linux-x64) (push) Has been cancelled
Build and Test / build_cli (osx-arm64) (push) Has been cancelled
Build and Test / build_cli (osx-x64) (push) Has been cancelled
Build and Test / build_cli (win-x64) (push) Has been cancelled
Build and Test / build_docker (push) Has been cancelled
CodeQL / Analyze (csharp) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
feat: add support for recording mode fallback
2024-12-01 19:44:46 +08:00

46 lines
1.4 KiB
C#

using System;
using System.ComponentModel;
using System.Threading.Tasks;
using BililiveRecorder.Core.Config.V3;
using BililiveRecorder.Core.Event;
using Newtonsoft.Json.Linq;
namespace BililiveRecorder.Core
{
public interface IRoom : INotifyPropertyChanged, IDisposable
{
Guid ObjectId { get; }
RoomConfig RoomConfig { get; }
int ShortId { get; }
string Name { get; }
long Uid { get;}
string Title { get; }
string AreaNameParent { get; }
string AreaNameChild { get; }
JObject? RawBilibiliApiJsonData { get; }
bool Recording { get; }
bool Streaming { get; }
bool DanmakuConnected { get; }
bool AutoRecordForThisSession { get; }
RoomStats Stats { get; }
event EventHandler<RecordSessionStartedEventArgs>? RecordSessionStarted;
event EventHandler<RecordSessionEndedEventArgs>? RecordSessionEnded;
event EventHandler<RecordFileOpeningEventArgs>? RecordFileOpening;
event EventHandler<RecordFileClosedEventArgs>? RecordFileClosed;
event EventHandler<RecordingStatsEventArgs>? RecordingStats;
event EventHandler<IOStatsEventArgs>? IOStats;
void StartRecord();
void StopRecord();
void SplitOutput();
Task RefreshRoomInfoAsync();
void MarkNextRecordShouldUseRawMode();
}
}