BililiveRecorder/BililiveRecorder.Core/IRoom.cs
2021-04-21 23:18:23 +08:00

40 lines
1.2 KiB
C#

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