BililiveRecorder/BililiveRecorder.Core/IRecorder.cs

29 lines
1.1 KiB
C#
Raw Normal View History

2020-11-27 18:51:02 +08:00
using System;
2021-02-23 18:03:37 +08:00
using System.Collections.ObjectModel;
2018-11-28 22:29:35 +08:00
using System.ComponentModel;
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;
2018-11-28 22:29:35 +08:00
namespace BililiveRecorder.Core
{
2021-02-23 18:03:37 +08:00
public interface IRecorder : INotifyPropertyChanged, IDisposable
2018-11-28 22:29:35 +08:00
{
2021-12-19 21:10:34 +08:00
ConfigV3 Config { get; }
2021-02-23 18:03:37 +08:00
ReadOnlyObservableCollection<IRoom> Rooms { get; }
2018-11-28 22:29:35 +08:00
2021-02-23 18:03:37 +08:00
event EventHandler<AggregatedRoomEventArgs<RecordSessionStartedEventArgs>>? RecordSessionStarted;
event EventHandler<AggregatedRoomEventArgs<RecordSessionEndedEventArgs>>? RecordSessionEnded;
event EventHandler<AggregatedRoomEventArgs<RecordFileOpeningEventArgs>>? RecordFileOpening;
event EventHandler<AggregatedRoomEventArgs<RecordFileClosedEventArgs>>? RecordFileClosed;
2021-12-19 00:56:41 +08:00
event EventHandler<AggregatedRoomEventArgs<IOStatsEventArgs>>? IOStats;
2021-02-23 18:03:37 +08:00
event EventHandler<AggregatedRoomEventArgs<RecordingStatsEventArgs>>? RecordingStats;
event EventHandler<IRoom> StreamStarted;
2018-11-28 22:29:35 +08:00
2021-05-30 19:16:20 +08:00
IRoom AddRoom(int roomid);
IRoom AddRoom(int roomid, bool enabled);
2021-02-23 18:03:37 +08:00
void RemoveRoom(IRoom room);
2018-11-28 22:29:35 +08:00
2021-02-23 18:03:37 +08:00
void SaveConfig();
2018-11-28 22:29:35 +08:00
}
}