Cleanup header by moving OS X specific stuff into .cpp.
This commit is contained in:
@@ -15,32 +15,47 @@
|
||||
#include <paths.h>
|
||||
#include <unistd.h>
|
||||
|
||||
OSStatus MemoryCardDriverThreaded_MacOSX::VolumeChanged( EventHandlerCallRef ref, EventRef event, void *p )
|
||||
class MemoryCardDriverThreaded_MacOSX::Helper
|
||||
{
|
||||
MemoryCardDriverThreaded_MacOSX *This = (MemoryCardDriverThreaded_MacOSX *)p;
|
||||
LockMut( This->m_ChangedLock );
|
||||
|
||||
This->m_bChanged = true;
|
||||
return eventNotHandledErr; // let others do something
|
||||
}
|
||||
public:
|
||||
Helper( MemoryCardDriverThreaded_MacOSX *driver )
|
||||
{
|
||||
m_HandlerUPP = NewEventHandlerUPP( VolumesChanged );
|
||||
EventTypeSpec types[] = { { kEventClassVolume, kEventVolumeMounted },
|
||||
{ kEventClassVolume, kEventVolumeUnmounted } };
|
||||
UInt32 numTypes = sizeof(types)/sizeof(types[0]);
|
||||
OSStatus ret = InstallApplicationEventHandler( m_HandlerUPP, numTypes, types, driver, &m_Handler );
|
||||
ASSERT( ret == noErr );
|
||||
}
|
||||
|
||||
~Helper()
|
||||
{
|
||||
RemoveEventHandler( m_Handler );
|
||||
DisposeEventHandlerUPP( m_HandlerUPP );
|
||||
}
|
||||
|
||||
private:
|
||||
static OSStatus VolumesChanged( EventHandlerCallRef ref, EventRef event, void *p )
|
||||
{
|
||||
MemoryCardDriverThreaded_MacOSX *driver = (MemoryCardDriverThreaded_MacOSX *)p;
|
||||
LockMut( driver->m_ChangedLock );
|
||||
driver->m_bChanged = true;
|
||||
return eventNotHandledErr; // let others do something
|
||||
}
|
||||
|
||||
EventHandlerUPP m_HandlerUPP;
|
||||
EventHandlerRef m_Handler;
|
||||
};
|
||||
|
||||
MemoryCardDriverThreaded_MacOSX::MemoryCardDriverThreaded_MacOSX() : m_ChangedLock( "MC changed lock" )
|
||||
{
|
||||
m_bChanged = true;
|
||||
m_HandlerUPP = NewEventHandlerUPP( VolumeChanged );
|
||||
|
||||
EventTypeSpec types[] = { { kEventClassVolume, kEventVolumeMounted },
|
||||
{ kEventClassVolume, kEventVolumeUnmounted } };
|
||||
UInt32 numTypes = sizeof(types)/sizeof(types[0]);
|
||||
OSStatus ret = InstallApplicationEventHandler( m_HandlerUPP, numTypes, types, this, &m_Handler );
|
||||
|
||||
ASSERT( ret == noErr );
|
||||
m_pHelper = new Helper( this );
|
||||
}
|
||||
|
||||
MemoryCardDriverThreaded_MacOSX::~MemoryCardDriverThreaded_MacOSX()
|
||||
{
|
||||
RemoveEventHandler( m_Handler );
|
||||
DisposeEventHandlerUPP( m_HandlerUPP );
|
||||
delete m_pHelper;
|
||||
}
|
||||
|
||||
void MemoryCardDriverThreaded_MacOSX::Unmount( UsbStorageDevice *pDevice )
|
||||
@@ -209,7 +224,7 @@ bool MemoryCardDriverThreaded_MacOSX::TestWrite( UsbStorageDevice *pDevice )
|
||||
}
|
||||
|
||||
/*
|
||||
* (c) 2005-2006 Steve Checkoway
|
||||
* (c) 2005-2006, 2008 Steve Checkoway
|
||||
* All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
|
||||
@@ -4,16 +4,6 @@
|
||||
#include "MemoryCardDriver.h"
|
||||
#include "RageThreads.h"
|
||||
|
||||
|
||||
// I can't include <Carbon/Carbon.h> because Style conflicts.
|
||||
typedef struct OpaqueEventHandlerRef *EventHandlerRef;
|
||||
typedef struct OpaqueEventHandlerCallRef *EventHandlerCallRef;
|
||||
typedef struct OpaqueEventRef *EventRef;
|
||||
typedef long int OSStatus;
|
||||
typedef OSStatus (*EventHandlerProcPtr)( EventHandlerCallRef inHandlerCallRef,
|
||||
EventRef inEvent, void * inUserData );
|
||||
typedef EventHandlerProcPtr EventHandlerUPP;
|
||||
|
||||
class MemoryCardDriverThreaded_MacOSX : public MemoryCardDriver
|
||||
{
|
||||
public:
|
||||
@@ -28,12 +18,13 @@ protected:
|
||||
bool TestWrite( UsbStorageDevice *pDevice );
|
||||
|
||||
private:
|
||||
static OSStatus VolumeChanged( EventHandlerCallRef ref, EventRef event, void *p );
|
||||
|
||||
MemoryCardDriverThreaded_MacOSX( const MemoryCardDriverThreaded_MacOSX &m );
|
||||
MemoryCardDriverThreaded_MacOSX &operator=( const MemoryCardDriverThreaded_MacOSX &m );
|
||||
bool m_bChanged;
|
||||
RageMutex m_ChangedLock;
|
||||
EventHandlerUPP m_HandlerUPP;
|
||||
EventHandlerRef m_Handler;
|
||||
class Helper;
|
||||
friend class Helper;
|
||||
Helper *m_pHelper;
|
||||
};
|
||||
|
||||
#ifdef ARCH_MEMORY_CARD_DRIVER
|
||||
@@ -45,7 +36,7 @@ private:
|
||||
#endif
|
||||
|
||||
/*
|
||||
* (c) 2005-2006 Steve Checkoway
|
||||
* (c) 2005-2006, 2008 Steve Checkoway
|
||||
* All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
|
||||
Reference in New Issue
Block a user