Cleanup header by moving OS X specific stuff into .cpp.
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user