audio.gadget: create/dispose clip on graft/ungraft
parent
273b5115bf
commit
9ee314b906
|
@ -1,13 +1,13 @@
|
||||||
USING: accessors audio audio.engine combinators images.loader
|
USING: accessors audio audio.engine combinators destructors
|
||||||
images.viewer init kernel locals namespaces ui.gadgets
|
images.loader images.viewer init kernel locals namespaces
|
||||||
ui.gadgets.buttons ui.gadgets.panes ;
|
ui.gadgets ui.gadgets.buttons ui.gadgets.panes ;
|
||||||
FROM: ui.gadgets.buttons.private => border-button-theme ;
|
FROM: ui.gadgets.buttons.private => border-button-theme ;
|
||||||
FROM: audio.engine.private => make-engine-current ;
|
FROM: audio.engine.private => make-engine-current ;
|
||||||
IN: audio.gadget
|
IN: audio.gadget
|
||||||
|
|
||||||
TUPLE: audio-gadget < button
|
TUPLE: audio-gadget < button
|
||||||
play-label pause-label
|
play-label pause-label
|
||||||
audio-clip state ;
|
audio audio-clip state ;
|
||||||
|
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
|
||||||
|
@ -64,12 +64,24 @@ PRIVATE>
|
||||||
pause-label-image get-global <image-gadget> :> pause-label
|
pause-label-image get-global <image-gadget> :> pause-label
|
||||||
play-label [ click-audio-gadget ] audio-gadget new-button
|
play-label [ click-audio-gadget ] audio-gadget new-button
|
||||||
border-button-theme
|
border-button-theme
|
||||||
gadget-audio-engine get-global f audio t <static-audio-clip>
|
audio >>audio
|
||||||
>>audio-clip
|
|
||||||
paused >>state
|
paused >>state
|
||||||
play-label >>play-label
|
play-label >>play-label
|
||||||
pause-label >>pause-label ;
|
pause-label >>pause-label ;
|
||||||
|
|
||||||
|
M: audio-gadget graft*
|
||||||
|
[ call-next-method ] [
|
||||||
|
dup audio>>
|
||||||
|
[ gadget-audio-engine get-global f ] dip f <static-audio-clip>
|
||||||
|
>>audio-clip
|
||||||
|
drop
|
||||||
|
] bi ;
|
||||||
|
|
||||||
|
M: audio-gadget ungraft*
|
||||||
|
[ pause-audio-gadget ]
|
||||||
|
[ audio-clip>> dispose ]
|
||||||
|
[ call-next-method ] tri ;
|
||||||
|
|
||||||
: audio. ( audio -- )
|
: audio. ( audio -- )
|
||||||
<audio-gadget> gadget. ;
|
<audio-gadget> gadget. ;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue