Make a choice of the encoder in the form
Made a choice of the encoder by categories: video, audio and photo.
This commit is contained in:
64
internal/gui/view/convertor/encoders/h264_nvenc/view.go
Normal file
64
internal/gui/view/convertor/encoders/h264_nvenc/view.go
Normal file
@@ -0,0 +1,64 @@
|
||||
package h264_nvenc
|
||||
|
||||
import (
|
||||
"fyne.io/fyne/v2/container"
|
||||
"fyne.io/fyne/v2/lang"
|
||||
"fyne.io/fyne/v2/widget"
|
||||
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/internal/ffmpeg/encoder"
|
||||
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/internal/ffmpeg/encoder/h264_nvenc"
|
||||
)
|
||||
|
||||
func View(encoder encoder.EncoderContract) []*widget.FormItem {
|
||||
items := []*widget.FormItem{}
|
||||
|
||||
items = append(items, presetParameter(encoder)...)
|
||||
|
||||
return items
|
||||
}
|
||||
|
||||
func presetParameter(encoder encoder.EncoderContract) []*widget.FormItem {
|
||||
parameter, err := encoder.GetParameter("preset")
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
presets := map[string]string{}
|
||||
presetsForSelect := []string{}
|
||||
presetDefault := ""
|
||||
|
||||
for _, name := range h264_nvenc.Presets {
|
||||
title := name
|
||||
presetsForSelect = append(presetsForSelect, name)
|
||||
presets[title] = name
|
||||
if name == parameter.Get() {
|
||||
presetDefault = title
|
||||
}
|
||||
}
|
||||
|
||||
elementSelect := widget.NewSelect(presetsForSelect, func(s string) {
|
||||
if presets[s] == "" {
|
||||
return
|
||||
}
|
||||
parameter.Set(presets[s])
|
||||
})
|
||||
elementSelect.SetSelected(presetDefault)
|
||||
elementSelect.Hide()
|
||||
|
||||
checkboxTitle := lang.L("parameterCheckbox")
|
||||
elementCheckbox := widget.NewCheck(checkboxTitle, func(b bool) {
|
||||
if b == true {
|
||||
parameter.SetEnable()
|
||||
elementSelect.Show()
|
||||
return
|
||||
}
|
||||
parameter.SetDisable()
|
||||
elementSelect.Hide()
|
||||
})
|
||||
|
||||
return []*widget.FormItem{
|
||||
{
|
||||
Text: lang.L("formPreset"),
|
||||
Widget: container.NewVBox(elementCheckbox, elementSelect),
|
||||
},
|
||||
}
|
||||
}
|
64
internal/gui/view/convertor/encoders/libx264/view.go
Normal file
64
internal/gui/view/convertor/encoders/libx264/view.go
Normal file
@@ -0,0 +1,64 @@
|
||||
package libx264
|
||||
|
||||
import (
|
||||
"fyne.io/fyne/v2/container"
|
||||
"fyne.io/fyne/v2/lang"
|
||||
"fyne.io/fyne/v2/widget"
|
||||
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/internal/ffmpeg/encoder"
|
||||
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/internal/ffmpeg/encoder/libx264"
|
||||
)
|
||||
|
||||
func View(encoder encoder.EncoderContract) []*widget.FormItem {
|
||||
items := []*widget.FormItem{}
|
||||
|
||||
items = append(items, presetParameter(encoder)...)
|
||||
|
||||
return items
|
||||
}
|
||||
|
||||
func presetParameter(encoder encoder.EncoderContract) []*widget.FormItem {
|
||||
parameter, err := encoder.GetParameter("preset")
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
presets := map[string]string{}
|
||||
presetsForSelect := []string{}
|
||||
presetDefault := ""
|
||||
|
||||
for _, name := range libx264.Presets {
|
||||
title := lang.L("preset_" + name)
|
||||
presetsForSelect = append(presetsForSelect, title)
|
||||
presets[title] = name
|
||||
if name == parameter.Get() {
|
||||
presetDefault = title
|
||||
}
|
||||
}
|
||||
|
||||
elementSelect := widget.NewSelect(presetsForSelect, func(s string) {
|
||||
if presets[s] == "" {
|
||||
return
|
||||
}
|
||||
parameter.Set(presets[s])
|
||||
})
|
||||
elementSelect.SetSelected(presetDefault)
|
||||
elementSelect.Hide()
|
||||
|
||||
checkboxTitle := lang.L("parameterCheckbox")
|
||||
elementCheckbox := widget.NewCheck(checkboxTitle, func(b bool) {
|
||||
if b == true {
|
||||
parameter.SetEnable()
|
||||
elementSelect.Show()
|
||||
return
|
||||
}
|
||||
parameter.SetDisable()
|
||||
elementSelect.Hide()
|
||||
})
|
||||
|
||||
return []*widget.FormItem{
|
||||
{
|
||||
Text: lang.L("formPreset"),
|
||||
Widget: container.NewVBox(elementCheckbox, elementSelect),
|
||||
},
|
||||
}
|
||||
}
|
64
internal/gui/view/convertor/encoders/libx265/view.go
Normal file
64
internal/gui/view/convertor/encoders/libx265/view.go
Normal file
@@ -0,0 +1,64 @@
|
||||
package libx265
|
||||
|
||||
import (
|
||||
"fyne.io/fyne/v2/container"
|
||||
"fyne.io/fyne/v2/lang"
|
||||
"fyne.io/fyne/v2/widget"
|
||||
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/internal/ffmpeg/encoder"
|
||||
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/internal/ffmpeg/encoder/libx265"
|
||||
)
|
||||
|
||||
func View(encoder encoder.EncoderContract) []*widget.FormItem {
|
||||
items := []*widget.FormItem{}
|
||||
|
||||
items = append(items, presetParameter(encoder)...)
|
||||
|
||||
return items
|
||||
}
|
||||
|
||||
func presetParameter(encoder encoder.EncoderContract) []*widget.FormItem {
|
||||
parameter, err := encoder.GetParameter("preset")
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
presets := map[string]string{}
|
||||
presetsForSelect := []string{}
|
||||
presetDefault := ""
|
||||
|
||||
for _, name := range libx265.Presets {
|
||||
title := lang.L("preset_" + name)
|
||||
presetsForSelect = append(presetsForSelect, title)
|
||||
presets[title] = name
|
||||
if name == parameter.Get() {
|
||||
presetDefault = title
|
||||
}
|
||||
}
|
||||
|
||||
elementSelect := widget.NewSelect(presetsForSelect, func(s string) {
|
||||
if presets[s] == "" {
|
||||
return
|
||||
}
|
||||
parameter.Set(presets[s])
|
||||
})
|
||||
elementSelect.SetSelected(presetDefault)
|
||||
elementSelect.Hide()
|
||||
|
||||
checkboxTitle := lang.L("parameterCheckbox")
|
||||
elementCheckbox := widget.NewCheck(checkboxTitle, func(b bool) {
|
||||
if b == true {
|
||||
parameter.SetEnable()
|
||||
elementSelect.Show()
|
||||
return
|
||||
}
|
||||
parameter.SetDisable()
|
||||
elementSelect.Hide()
|
||||
})
|
||||
|
||||
return []*widget.FormItem{
|
||||
{
|
||||
Text: lang.L("formPreset"),
|
||||
Widget: container.NewVBox(elementCheckbox, elementSelect),
|
||||
},
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user