Cleanup header by moving OS X specific stuff into .cpp.

This commit is contained in:
Steve Checkoway
2008-07-14 13:00:06 +00:00
parent 665bd80520
commit eb60477d69
2 changed files with 39 additions and 33 deletions
@@ -15,32 +15,47 @@
#include <paths.h> #include <paths.h>
#include <unistd.h> #include <unistd.h>
OSStatus MemoryCardDriverThreaded_MacOSX::VolumeChanged( EventHandlerCallRef ref, EventRef event, void *p ) class MemoryCardDriverThreaded_MacOSX::Helper
{ {
MemoryCardDriverThreaded_MacOSX *This = (MemoryCardDriverThreaded_MacOSX *)p; public:
LockMut( This->m_ChangedLock ); Helper( MemoryCardDriverThreaded_MacOSX *driver )
{
This->m_bChanged = true; m_HandlerUPP = NewEventHandlerUPP( VolumesChanged );
return eventNotHandledErr; // let others do something 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" ) MemoryCardDriverThreaded_MacOSX::MemoryCardDriverThreaded_MacOSX() : m_ChangedLock( "MC changed lock" )
{ {
m_bChanged = true; m_bChanged = true;
m_HandlerUPP = NewEventHandlerUPP( VolumeChanged ); m_pHelper = new Helper( this );
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 );
} }
MemoryCardDriverThreaded_MacOSX::~MemoryCardDriverThreaded_MacOSX() MemoryCardDriverThreaded_MacOSX::~MemoryCardDriverThreaded_MacOSX()
{ {
RemoveEventHandler( m_Handler ); delete m_pHelper;
DisposeEventHandlerUPP( m_HandlerUPP );
} }
void MemoryCardDriverThreaded_MacOSX::Unmount( UsbStorageDevice *pDevice ) 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. * All rights reserved.
* *
* Permission is hereby granted, free of charge, to any person obtaining a * Permission is hereby granted, free of charge, to any person obtaining a
@@ -4,16 +4,6 @@
#include "MemoryCardDriver.h" #include "MemoryCardDriver.h"
#include "RageThreads.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 class MemoryCardDriverThreaded_MacOSX : public MemoryCardDriver
{ {
public: public:
@@ -28,12 +18,13 @@ protected:
bool TestWrite( UsbStorageDevice *pDevice ); bool TestWrite( UsbStorageDevice *pDevice );
private: 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; bool m_bChanged;
RageMutex m_ChangedLock; RageMutex m_ChangedLock;
EventHandlerUPP m_HandlerUPP; class Helper;
EventHandlerRef m_Handler; friend class Helper;
Helper *m_pHelper;
}; };
#ifdef ARCH_MEMORY_CARD_DRIVER #ifdef ARCH_MEMORY_CARD_DRIVER
@@ -45,7 +36,7 @@ private:
#endif #endif
/* /*
* (c) 2005-2006 Steve Checkoway * (c) 2005-2006, 2008 Steve Checkoway
* All rights reserved. * All rights reserved.
* *
* Permission is hereby granted, free of charge, to any person obtaining a * Permission is hereby granted, free of charge, to any person obtaining a