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;
|
2022-05-06 19:36:40 +08:00
|
|
|
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; }
|
2023-07-08 16:14:45 +08:00
|
|
|
long Uid { get;}
|
2021-02-23 18:03:37 +08:00
|
|
|
string Title { get; }
|
|
|
|
string AreaNameParent { get; }
|
|
|
|
string AreaNameChild { get; }
|
|
|
|
|
2022-05-06 19:36:40 +08:00
|
|
|
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();
|
2024-12-01 19:44:46 +08:00
|
|
|
|
|
|
|
void MarkNextRecordShouldUseRawMode();
|
2021-02-23 18:03:37 +08:00
|
|
|
}
|
|
|
|
}
|