Merge pull request #4793 from 21pages/fix
hide recording button if using av1
This commit is contained in:
commit
08132bb98a
@ -434,7 +434,7 @@ class _RemoteToolbarState extends State<RemoteToolbar> {
|
|||||||
toolbarItems.add(_ChatMenu(id: widget.id, ffi: widget.ffi));
|
toolbarItems.add(_ChatMenu(id: widget.id, ffi: widget.ffi));
|
||||||
toolbarItems.add(_VoiceCallMenu(id: widget.id, ffi: widget.ffi));
|
toolbarItems.add(_VoiceCallMenu(id: widget.id, ffi: widget.ffi));
|
||||||
}
|
}
|
||||||
toolbarItems.add(_RecordMenu());
|
toolbarItems.add(_RecordMenu(ffi: widget.ffi));
|
||||||
toolbarItems.add(_CloseMenu(id: widget.id, ffi: widget.ffi));
|
toolbarItems.add(_CloseMenu(id: widget.id, ffi: widget.ffi));
|
||||||
return Column(
|
return Column(
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
@ -1219,7 +1219,8 @@ class _ResolutionsMenuState extends State<_ResolutionsMenu> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (final r in resolutions) {
|
for (final r in resolutions) {
|
||||||
if (r.width == _localResolution!.width && r.height == _localResolution!.height) {
|
if (r.width == _localResolution!.width &&
|
||||||
|
r.height == _localResolution!.height) {
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1467,16 +1468,17 @@ class _VoiceCallMenu extends StatelessWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class _RecordMenu extends StatelessWidget {
|
class _RecordMenu extends StatelessWidget {
|
||||||
const _RecordMenu({Key? key}) : super(key: key);
|
final FFI ffi;
|
||||||
|
const _RecordMenu({Key? key, required this.ffi}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
var ffi = Provider.of<FfiModel>(context);
|
var ffiModel = Provider.of<FfiModel>(context);
|
||||||
var recordingModel = Provider.of<RecordingModel>(context);
|
var recordingModel = Provider.of<RecordingModel>(context);
|
||||||
final visible =
|
final visible =
|
||||||
recordingModel.start || ffi.permissions['recording'] != false;
|
recordingModel.start || ffiModel.permissions['recording'] != false;
|
||||||
if (!visible) return Offstage();
|
if (!visible) return Offstage();
|
||||||
return _IconMenuButton(
|
final menuButton = _IconMenuButton(
|
||||||
assetName: 'assets/rec.svg',
|
assetName: 'assets/rec.svg',
|
||||||
tooltip: recordingModel.start
|
tooltip: recordingModel.start
|
||||||
? 'Stop session recording'
|
? 'Stop session recording'
|
||||||
@ -1489,6 +1491,14 @@ class _RecordMenu extends StatelessWidget {
|
|||||||
? _ToolbarTheme.hoverRedColor
|
? _ToolbarTheme.hoverRedColor
|
||||||
: _ToolbarTheme.hoverBlueColor,
|
: _ToolbarTheme.hoverBlueColor,
|
||||||
);
|
);
|
||||||
|
return ChangeNotifierProvider.value(
|
||||||
|
value: ffi.qualityMonitorModel,
|
||||||
|
child: Consumer<QualityMonitorModel>(
|
||||||
|
builder: (context, model, child) => Offstage(
|
||||||
|
// If already started, AV1->Hidden/Stop, Other->Start, same as actual
|
||||||
|
offstage: model.data.codecFormat == 'AV1',
|
||||||
|
child: menuButton,
|
||||||
|
)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -101,6 +101,9 @@ impl DerefMut for Recorder {
|
|||||||
|
|
||||||
impl Recorder {
|
impl Recorder {
|
||||||
pub fn new(mut ctx: RecorderContext) -> ResultType<Self> {
|
pub fn new(mut ctx: RecorderContext) -> ResultType<Self> {
|
||||||
|
if ctx.format == CodecFormat::AV1 {
|
||||||
|
bail!("not support av1 recording");
|
||||||
|
}
|
||||||
ctx.set_filename()?;
|
ctx.set_filename()?;
|
||||||
let recorder = match ctx.format {
|
let recorder = match ctx.format {
|
||||||
CodecFormat::VP8 | CodecFormat::VP9 => Recorder {
|
CodecFormat::VP8 | CodecFormat::VP9 => Recorder {
|
||||||
|
@ -144,7 +144,7 @@ class Header: Reactor.Component {
|
|||||||
<span #action>{svg_action}</span>
|
<span #action>{svg_action}</span>
|
||||||
<span #display>{svg_display}</span>
|
<span #display>{svg_display}</span>
|
||||||
<span #keyboard>{svg_keyboard}</span>
|
<span #keyboard>{svg_keyboard}</span>
|
||||||
{recording_enabled ? <span #recording>{recording ? svg_recording_on : svg_recording_off}</span> : ""}
|
{recording_enabled && qualityMonitorData[4] != "AV1" ? <span #recording>{recording ? svg_recording_on : svg_recording_off}</span> : ""}
|
||||||
{this.renderKeyboardPop()}
|
{this.renderKeyboardPop()}
|
||||||
{this.renderDisplayPop()}
|
{this.renderDisplayPop()}
|
||||||
{this.renderActionPop()}
|
{this.renderActionPop()}
|
||||||
|
@ -522,6 +522,7 @@ handler.updateQualityStatus = function(speed, fps, delay, bitrate, codec_format)
|
|||||||
bitrate ? qualityMonitorData[3] = bitrate:null;
|
bitrate ? qualityMonitorData[3] = bitrate:null;
|
||||||
codec_format ? qualityMonitorData[4] = codec_format:null;
|
codec_format ? qualityMonitorData[4] = codec_format:null;
|
||||||
qualityMonitor.update();
|
qualityMonitor.update();
|
||||||
|
if (codec_format) header.update();
|
||||||
}
|
}
|
||||||
|
|
||||||
handler.setPermission = function(name, enabled) {
|
handler.setPermission = function(name, enabled) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user