Skip to content

Commit d98d6dd

Browse files
feat: lookup param format in a map instead of hardcoding -- to all options
1 parent ec401f4 commit d98d6dd

File tree

2 files changed

+90
-5
lines changed

2 files changed

+90
-5
lines changed

lib/models/settings_model.dart

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,80 @@ class SettingsModel {
311311
);
312312
}
313313

314+
static Map<String, String> get paramsLookUpMap {
315+
return {
316+
'out': '-out=',
317+
'in': '-in=',
318+
'outputfilename': '-o',
319+
'fixptsjumps': '-fixptsjumps',
320+
'append': '--append',
321+
'outInterval': '--outinterval',
322+
'segmentonkeyonly': '--segmentonkeyonly',
323+
'goptime': '--goptime',
324+
'nogoptime': '--nogoptime',
325+
'fixpadding': '--fixpadding',
326+
'freqEs15': '-90090',
327+
'stream': '--stream',
328+
'videoedited': '--videoedited',
329+
'usepicorder': '--usepicorder',
330+
'myth': '-myth',
331+
'nomyth': '-nomyth',
332+
'wtvconvertfix': '-wtvconvertfix',
333+
'wtvmpeg2': '-wtvmpeg2',
334+
'program_number': '--program-number',
335+
'autoprogram': '-autoprogram',
336+
'multiprogram': '-multiprogram',
337+
'datapid': '-datapid',
338+
'hauppauge': '--hauppauge',
339+
'mp4vidtrack': '-mp4vidtrack',
340+
'noautotimeref': '-noautotimeref',
341+
'noscte20': '--noscte20',
342+
'webvttcss': '--webvtt-create-css',
343+
'analyzevideo': '--analyzevideo',
344+
'notimestamp': '--no-timestamp-map',
345+
'nolevdist': '-nolevdist',
346+
'minlevdist': '-levdistmincnt',
347+
'maxlevdist': '-levdistmaxpct',
348+
'chapters': '-chapters',
349+
'bom': '-bom',
350+
'nobom': '-nobom',
351+
'nofontcolor': '--nofontcolor',
352+
'nohtmlescape': '--nohtmlescape',
353+
'notypesetting': '--notypesetting',
354+
'trim': '-trim',
355+
'defaultcolor': '--defaultcolor',
356+
'sentencecap': '--sentencecap',
357+
'kf': '--kf',
358+
'splitbysentence': '--splitbysentence',
359+
'datets': '-datets',
360+
'sects': '-sects',
361+
'latrusmap': '-latrusmap',
362+
'xds': '=xds',
363+
'lf': '-lf',
364+
'df': '-df',
365+
'autodash': '- autodash',
366+
'xmltv': '-xmltv',
367+
'xmltvliveinterval': '-xmltvliveinterval',
368+
'xmltvoutputinterval': '-xmltvoutputinterval',
369+
'xmltvonlycurrent': '-xmltvonlycurrent',
370+
'sem': '-sem',
371+
'quantmode': '-quant',
372+
'oem': '-oem',
373+
'bufferinput': '--bufferinput',
374+
'nobufferinput': '-nobufferinput',
375+
'buffersize': '--buffersize',
376+
'koc': '-koc',
377+
'dru': '-dru',
378+
'norollup': '--norollup',
379+
'delay': '-delay',
380+
'startat': '-startat',
381+
'endat': '-endat',
382+
'tpage': '-tpage',
383+
'teletext': '-teletext',
384+
'noteletext': '-noteletext',
385+
};
386+
}
387+
314388
Map<String, dynamic> toJson() {
315389
return {
316390
'out': out,
@@ -466,6 +540,7 @@ class SettingsModel {
466540
return 'SettingsModel(out: $out, inp: $inp, outputfilename: $outputfilename, fixptsjumps: $fixptsjumps, append: $append, outInterval: $outInterval, segmentonkeyonly: $segmentonkeyonly, goptime: $goptime, nogoptime: $nogoptime, fixpadding: $fixpadding, freqEs15: $freqEs15, stream: $stream, videoedited: $videoedited, usepicorder: $usepicorder, myth: $myth, nomyth: $nomyth, wtvconvertfix: $wtvconvertfix, wtvmpeg2: $wtvmpeg2, program_number: $program_number, autoprogram: $autoprogram, multiprogram: $multiprogram, datapid: $datapid, hauppauge: $hauppauge, mp4vidtrack: $mp4vidtrack, noautotimeref: $noautotimeref, noscte20: $noscte20, webvttcss: $webvttcss, analyzevideo: $analyzevideo, notimestamp: $notimestamp, nolevdist: $nolevdist, minlevdist: $minlevdist, maxlevdist: $maxlevdist, chapters: $chapters, bom: $bom, nobom: $nobom, encoder: $encoder, nofontcolor: $nofontcolor, nohtmlescape: $nohtmlescape, notypesetting: $notypesetting, trim: $trim, defaultcolor: $defaultcolor, sentencecap: $sentencecap, kf: $kf, splitbysentence: $splitbysentence, datets: $datets, sects: $sects, latrusmap: $latrusmap, xds: $xds, lf: $lf, df: $df, autodash: $autodash, xmltv: $xmltv, xmltvliveinterval: $xmltvliveinterval, xmltvoutputinterval: $xmltvoutputinterval, xmltvonlycurrent: $xmltvonlycurrent, sem: $sem, quantmode: $quantmode, oem: $oem, bufferinput: $bufferinput, nobufferinput: $nobufferinput, buffersize: $buffersize, koc: $koc, dru: $dru, norollup: $norollup, delay: $delay, startat: $startat, endat: $endat, tpage: $tpage, teletext: $teletext, noteletext: $noteletext)';
467541
}
468542

543+
/// returns all toggeles which are enabled (excluding textfields)
469544
List<String> get enabledSettings {
470545
List<String> enabledSettings = [];
471546
toJson().forEach((key, value) {
@@ -476,6 +551,7 @@ class SettingsModel {
476551
return enabledSettings;
477552
}
478553

554+
/// return all textfields and dropdowns which are not empty or not set to default
479555
List<Map<String, String>> get enabledtextfields {
480556
List<Map<String, String>> enabledtextfields = [];
481557
toJson().forEach(

lib/repositories/settings_repository.dart

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,24 +56,33 @@ class SettingsRepository {
5656

5757
List<String> getParamsList(SettingsModel settings, {String filePath = ''}) {
5858
List<String> paramsList = [];
59+
5960
paramsList.addAll(
60-
settings.enabledSettings.map((param) => '--' + param).toList(),
61+
settings.enabledSettings
62+
.map((param) => SettingsModel.paramsLookUpMap[param]!),
6163
);
64+
6265
settings.enabledtextfields.forEach((param) {
63-
if (param.keys.first != 'encoder') {
66+
if (param.keys.first != 'encoder' &&
67+
param.keys.first != 'out' &&
68+
param.keys.first != 'inp') {
6469
// no --encoder direct -latin1 or -utf8
65-
paramsList.add(' --' + param.keys.first);
70+
// -out=format
71+
paramsList.add(SettingsModel.paramsLookUpMap[param.keys.first]!);
6672
}
6773
if (param.keys.first == 'outputfilename' && filePath.isNotEmpty) {
6874
paramsList.add(
6975
'${filePath.substring(0, filePath.lastIndexOf(RegExp(r'(\\|\/)')))}/${param.values.first}');
7076
} else if (param.keys.first == 'encoder') {
71-
paramsList.add('--' + param.values.first);
77+
paramsList.add('-' + param.values.first);
78+
} else if (param.keys.first == 'out' || param.keys.first == 'inp') {
79+
paramsList.add('-' + param.keys.first + '=' + param.values.first);
7280
} else {
7381
paramsList.add(param.values.first);
7482
}
7583
});
76-
// print(paramsList); [--autoprogram, --outputfilename, ewf, --defaultcolor, #FFFFFF, --delay, 22]
84+
// print(paramsList);
85+
// [--append, -autoprogram, -out=webvtt, -utf8]
7786
return paramsList;
7887
}
7988

0 commit comments

Comments
 (0)