BililiveRecorder/BililiveRecorder.Core/IRoom.cs

46 lines
1.4 KiB
C#
Raw Normal View History

2021-02-23 18:03:37 +08:00
using System;
using System.ComponentModel;
using System.Threading.Tasks;
2021-12-19 21:10:34 +08:00
using BililiveRecorder.Core.Config.V3;
2021-02-23 18:03:37 +08:00
using BililiveRecorder.Core.Event;
using Newtonsoft.Json.Linq;
2021-02-23 18:03:37 +08:00
namespace BililiveRecorder.Core
{
public interface IRoom : INotifyPropertyChanged, IDisposable
{
Guid ObjectId { get; }
RoomConfig RoomConfig { get; }
int ShortId { get; }
string Name { get; }
long Uid { get;}
2021-02-23 18:03:37 +08:00
string Title { get; }
string AreaNameParent { get; }
string AreaNameChild { get; }
JObject? RawBilibiliApiJsonData { get; }
2021-02-23 18:03:37 +08:00
bool Recording { get; }
bool Streaming { get; }
bool DanmakuConnected { get; }
2021-04-21 23:18:23 +08:00
bool AutoRecordForThisSession { get; }
2022-04-09 16:43:05 +08:00
RoomStats Stats { get; }
2021-02-23 18:03:37 +08:00
event EventHandler<RecordSessionStartedEventArgs>? RecordSessionStarted;
event EventHandler<RecordSessionEndedEventArgs>? RecordSessionEnded;
event EventHandler<RecordFileOpeningEventArgs>? RecordFileOpening;
event EventHandler<RecordFileClosedEventArgs>? RecordFileClosed;
event EventHandler<RecordingStatsEventArgs>? RecordingStats;
2021-12-19 00:56:41 +08:00
event EventHandler<IOStatsEventArgs>? IOStats;
2021-02-23 18:03:37 +08:00
void StartRecord();
void StopRecord();
void SplitOutput();
Task RefreshRoomInfoAsync();
void MarkNextRecordShouldUseRawMode();
2021-02-23 18:03:37 +08:00
}
}