A place to put some widgets for super secret projects.
Go to file
Martyn 84f7cb4069 Move the stuff to the widget, not the player 2022-02-12 17:30:42 +01:00
examples Renaming to a more appropriate name 2022-02-11 20:07:21 +01:00
pkg Move the stuff to the widget, not the player 2022-02-12 17:30:42 +01:00
.gitignore Initial commit 2021-12-10 18:19:52 +00:00
LICENSE Initial commit 2021-12-10 18:19:52 +00:00
README.md Renaming to a more appropriate name 2022-02-11 20:07:21 +01:00
cgo.go A horrible list of dependencies 2021-12-12 12:20:57 +01:00
go.mod rebase why 2022-02-11 19:32:22 +01:00
go.sum rebase why 2022-02-11 19:32:22 +01:00



A place to put some widgets for super secret projects. Each has an example in examples/. What's in here?


A "progressbar" that displays a VUMeter. Right now, it's like a progressbar with a different renderer, but it has these extra fields you can mess with to change it's display :

Field Type Effect Values
OptimumValueMin float64 Start of the "yellow" range default:75 (expecting %)
OptimumValueMax float64 End of the "yellow" range default:85 (expecting %)
VUMeterDirection iota(int64) Direction of the VUMeter default: VUMeterHorizontal, alternative VUMeterVertical


A webcam component that displays frames from a selected webcam. Right now, it's based on gocv.io (may change later) and displays a scaled image based on frames from the webcam. It uses a ticker to update itself at a framerate you can specify.

!!! Warning gocv is a CGO library that is a PAIN to get working especially with other CGO libraries like portaudio - this is not "just reference the fyne webcam widget and done". You will almost certainly have to do stuff to your build system to make this work.

Here are the fields you can play with :

Field Type Effect Values
WebcamID int64 The numeric ID of the webcam, this may or may not have gaps, there's no way to learn the name of the webcams, and you might or might not find the webcam ¯\_(ツ)_/¯ default: 0
UpdateFPS int64 FPS for when to get new frames and display them. You might regret setting this higher than your cam can provide. How do we find out what that is? No idea! default:25


Coming soon!


Same general code as vidplayback but buffers the ENTIRE file to allow for seeking. I do NOT recommend this for general playback but for some purposes, this will suffice.

Audio Waveform

A widget to display an audio waveform plot of []int32 data

Field Type Effect Values
audioData []int32 The data to display in the widget default: []int32{}
StretchSamples bool Resample the samples to fit the widget size or not default:false
TransparentBackground bool Don't draw a background rectangle default:false
OverrideForeground bool Set the foreground color manually, false = use theme foreground default:false
OverrideForegroundColor color.Color Color to override the theme with default:Black
OverrideBackground bool Set the background color manually, false = use theme background default:false
OverrideBackgroundColor color.Color Color to override the theme with default:White
SetMinSize(size) fyne.Size Same as image.SetMinsize() default:200x64


A layout to have floating controls in any of 9 places overlayed onto another widget/container. Takes exactly TWO renderable objects (canvas.Object or descendants) and overlays them so you can have for example, a close button top right of your full-screen app, or a play button in the middle of your video.

Field Type Effect Values
FloatingControlsLocation iota The location to put the controls over Default: FloatingControlsTopRight Alternatives:FloatingControlsTopLeft / FloatingControlsBottomLeft / FloatingControlsBottomRight / FloatingControlsCenter / FloatingControlsTopMiddle / FloatingControlsRightMiddle / FloatingControlsBottomMiddle / FloatingControlsLeftMiddle