Introduce encoder modules for various codecs and formats (e.g., h264_nvenc, libx264, libmp3lame). Add `Convertor` logic to retrieve supported formats via FFmpeg utilities and manage encoders for audio, video, and image processing.
82 lines
2.2 KiB
Go
82 lines
2.2 KiB
Go
package application
|
|
|
|
import (
|
|
"fyne.io/fyne/v2"
|
|
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/internal/application/convertor"
|
|
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/internal/application/setting"
|
|
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/internal/ffmpeg"
|
|
)
|
|
|
|
type AppContract interface {
|
|
FyneApp() fyne.App
|
|
GetSetting() setting.SettingContract
|
|
GetProgressBarService() convertor.ProgressBarContract
|
|
GetFFmpegService() ffmpeg.UtilitiesContract
|
|
GetConvertorService() convertor.ConvertorContract
|
|
GetItemsToConvert() convertor.ItemsToConvertContract
|
|
GetQueueService() convertor.QueueListContract
|
|
Run()
|
|
}
|
|
|
|
type application struct {
|
|
fyneApp fyne.App
|
|
setting setting.SettingContract
|
|
progressBarService convertor.ProgressBarContract
|
|
ffmpegService ffmpeg.UtilitiesContract
|
|
itemsToConvert convertor.ItemsToConvertContract
|
|
queueService convertor.QueueListContract
|
|
convertorService convertor.ConvertorContract
|
|
}
|
|
|
|
func NewApp(
|
|
fyneApp fyne.App,
|
|
setting setting.SettingContract,
|
|
progressBarService convertor.ProgressBarContract,
|
|
ffmpegService ffmpeg.UtilitiesContract,
|
|
itemsToConvert convertor.ItemsToConvertContract,
|
|
queueService convertor.QueueListContract,
|
|
convertorService convertor.ConvertorContract,
|
|
) AppContract {
|
|
return &application{
|
|
fyneApp: fyneApp,
|
|
setting: setting,
|
|
progressBarService: progressBarService,
|
|
ffmpegService: ffmpegService,
|
|
itemsToConvert: itemsToConvert,
|
|
queueService: queueService,
|
|
convertorService: convertorService,
|
|
}
|
|
}
|
|
|
|
func (a *application) FyneApp() fyne.App {
|
|
return a.fyneApp
|
|
}
|
|
|
|
func (a *application) GetSetting() setting.SettingContract {
|
|
return a.setting
|
|
}
|
|
|
|
func (a *application) GetProgressBarService() convertor.ProgressBarContract {
|
|
return a.progressBarService
|
|
}
|
|
|
|
func (a *application) GetFFmpegService() ffmpeg.UtilitiesContract {
|
|
return a.ffmpegService
|
|
}
|
|
|
|
func (a *application) GetItemsToConvert() convertor.ItemsToConvertContract {
|
|
return a.itemsToConvert
|
|
}
|
|
|
|
func (a *application) GetQueueService() convertor.QueueListContract {
|
|
return a.queueService
|
|
}
|
|
|
|
func (a *application) GetConvertorService() convertor.ConvertorContract {
|
|
return a.convertorService
|
|
}
|
|
|
|
func (a *application) Run() {
|
|
a.fyneApp.Run()
|
|
}
|