85c9f98b50
* Get rid of #if wxUSE_SOUND from header. wx/sound.h checks this already. * Get rid of pragma interface/implementation. Apple GCC dislikes them anyway. * Allow source file to use precompiled headers (wx/wxprec.h) * Include only needed AppKit/Foundation headers, not AppKit/AppKit.h. * Implement simple constructors inline in header. * Get rid of m_sndname and m_waveLength instance variables. They aren't used. * Add copy constructor (why not). * Move implementation of byte-array constructor into LoadWAV for consistency with UNIX wxSound. * LoadWAV (what was in the constructor) now properly allocs, inits, and releases NSData. The old code for this was not valid. * Rename lastSound to s_currentSound. * Rename isLastSoundLooping to s_loopCurrentSound. * Ignore the sound:didFinishPlaying: delegate message if it is received for an NSSound other than s_currentSound. * Create should not Stop the current sound. * Don't use NSBundle to get a resource sound but use [NSSound soundNamed:] which will include system sounds. * Playing a sound synchronously uses wxEventLoop::Dispatch which will really block (not spin the CPU like Yield). The sound is considered finished playing when s_currentSound is set to something else. In order to make sure we don't get stuck in this event loop the delegate calls wxApp::WakeUpIdle if it releases s_currentSound. * Have IsPlaying() check to make sure s_currentSound is not nil since only messages returning another object or void are allowed to be sent to nil objects. Changes involving retain/release * Get rid of comment about tricky API, it's not. * Get rid of isLastSoundInScope. Cocoa has proper reference counting. * Add SetNSSound which, like the rest of wxCocoa, retains/releases appropriately, sets the delegate, and logs when WXTRACE=COCOA_RetainRelease. * Destructor does SetNSSound(nil) which will always release the NSSound. Create and LoadWAV use SetNSSound method like the rest of wxCocoa. * Make the delegate always release s_currentSound if not (or if done) looping. DoPlay sets s_currentSound to m_cocoaNSSound after retaining it so that the delegate can always safely release it. * Stop, like everything else, does not need check of isLastSoundInScope git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30043 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 |
||
---|---|---|
.. | ||
app.h | ||
autorelease.h | ||
bitmap.h | ||
bmpbuttn.h | ||
brush.h | ||
button.h | ||
checkbox.h | ||
checklst.h | ||
choice.h | ||
clipbrd.h | ||
colordlg.h | ||
colour.h | ||
combobox.h | ||
control.h | ||
cursor.h | ||
dataform.h | ||
dataobj2.h | ||
dataobj.h | ||
dc.h | ||
dcclient.h | ||
dcmemory.h | ||
dcscreen.h | ||
dialog.h | ||
display.h | ||
drawer.h | ||
filedlg.h | ||
font.h | ||
fontdlg.h | ||
frame.h | ||
gauge.h | ||
gdiobj.h | ||
glcanvas.h | ||
icon.h | ||
listbox.h | ||
log.h | ||
mbarman.h | ||
mdi.h | ||
menu.h | ||
menuitem.h | ||
msgdlg.h | ||
notebook.h | ||
NSApplication.h | ||
NSBox.h | ||
NSButton.h | ||
NSControl.h | ||
NSMenu.h | ||
NSPanel.h | ||
NSScroller.h | ||
NSTableDataSource.h | ||
NSTableView.h | ||
NSTabView.h | ||
NSTextField.h | ||
NSView.h | ||
NSWindow.h | ||
ObjcAssociate.h | ||
ObjcPose.h | ||
ObjcRef.h | ||
pen.h | ||
radiobox.h | ||
radiobut.h | ||
region.h | ||
scrolbar.h | ||
slider.h | ||
sound.h | ||
spinbutt.h | ||
statbmp.h | ||
statbox.h | ||
statline.h | ||
stattext.h | ||
string.h | ||
taskbar.h | ||
textctrl.h | ||
toolbar.h | ||
tooltip.h | ||
toplevel.h | ||
window.h |