Files
Redesnigned-Finamp/lib/components/TranscodingSettingsScreen/bitrate_selector.dart
T
Zakaria d0ca84d8d2
Build / Build for Android (push) Has been cancelled
Build / Build for iOS (push) Has been cancelled
redesign app phase 1
2026-05-18 14:34:41 -04:00

52 lines
1.7 KiB
Dart

import 'package:flutter/material.dart';
import 'package:finamp/l10n/app_localizations.dart';
import 'package:hive/hive.dart';
import '../../services/finamp_settings_helper.dart';
import '../../models/finamp_models.dart';
class BitrateSelector extends StatelessWidget {
const BitrateSelector({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Column(
children: [
ListTile(
title: Text(AppLocalizations.of(context)!.bitrate),
subtitle: Text(AppLocalizations.of(context)!.bitrateSubtitle),
),
ValueListenableBuilder<Box<FinampSettings>>(
valueListenable: FinampSettingsHelper.finampSettingsListener,
builder: (context, box, child) {
final finampSettings = box.get("FinampSettings")!;
// We do all of this division/multiplication because Jellyfin wants us to specify bitrates in bits, not kilobits.
return Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Slider(
min: 64,
max: 320,
value: finampSettings.transcodeBitrate / 1000,
divisions: 8,
label: "${finampSettings.transcodeBitrate ~/ 1000}kbps",
onChanged: (value) {
FinampSettingsHelper.setTranscodeBitrate(
(value * 1000).toInt());
},
),
Text(
"${finampSettings.transcodeBitrate ~/ 1000}kbps",
style: Theme.of(context).textTheme.titleLarge,
)
],
);
},
),
],
);
}
}