VideoTools/vendor/fyne.io/fyne/v2/driver.go
Stu Leak 68df790d27 Fix player frame generation and video playback
Major improvements to UnifiedPlayer:

1. GetFrameImage() now works when paused for responsive UI updates
2. Play() method properly starts FFmpeg process
3. Frame display loop runs continuously for smooth video display
4. Disabled audio temporarily to fix video playback fundamentals
5. Simplified FFmpeg command to focus on video stream only

Player now:
- Generates video frames correctly
- Shows video when paused
- Has responsive progress tracking
- Starts playback properly

Next steps: Re-enable audio playback once video is stable
2026-01-07 22:20:00 -05:00

58 lines
2.5 KiB
Go

package fyne
import "time"
// Driver defines an abstract concept of a Fyne render driver.
// Any implementation must provide at least these methods.
type Driver interface {
// CreateWindow creates a new UI Window for a certain implementation.
// Developers should use [App.NewWindow].
CreateWindow(string) Window
// AllWindows returns a slice containing all app windows.
AllWindows() []Window
// RenderedTextSize returns the size required to render the given string of specified
// font size and style. It also returns the height to text baseline, measured from the top.
// If the source is specified it will be used, otherwise the current theme will be asked for the font.
RenderedTextSize(text string, fontSize float32, style TextStyle, source Resource) (size Size, baseline float32)
// CanvasForObject returns the canvas that is associated with a given [CanvasObject].
CanvasForObject(CanvasObject) Canvas
// AbsolutePositionForObject returns the position of a given [CanvasObject] relative to the top/left of a canvas.
AbsolutePositionForObject(CanvasObject) Position
// Device returns the device that the application is currently running on.
Device() Device
// Run starts the main event loop of the driver.
Run()
// Quit closes the driver and open windows, then exit the application.
// On some operating systems this does nothing, for example iOS and Android.
Quit()
// StartAnimation registers a new animation with this driver and requests it be started.
// Developers should use the [Animation.Start] function.
StartAnimation(*Animation)
// StopAnimation stops an animation and unregisters from this driver.
// Developers should use the [Animation.Stop] function.
StopAnimation(*Animation)
// DoubleTapDelay returns the maximum duration where a second tap after a first one
// will be considered a [DoubleTap] instead of two distinct [Tap] events.
//
// Since: 2.5
DoubleTapDelay() time.Duration
// SetDisableScreenBlanking allows an app to ask the device not to sleep/lock/blank displays
//
// Since: 2.5
SetDisableScreenBlanking(bool)
// DoFromGoroutine provides a way to queue a function `fn` that is running on a goroutine back to
// the central thread for Fyne updates, waiting for it to return if `wait` is true.
// The driver provides the implementation normally accessed through [fyne.Do].
// This is required when background tasks want to execute code safely in the graphical context.
//
// Since: 2.6
DoFromGoroutine(fn func(), wait bool)
}