diff options
Diffstat (limited to 'Src/alac/factory_alac.cpp')
-rw-r--r-- | Src/alac/factory_alac.cpp | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/Src/alac/factory_alac.cpp b/Src/alac/factory_alac.cpp new file mode 100644 index 00000000..b2dbdfcc --- /dev/null +++ b/Src/alac/factory_alac.cpp @@ -0,0 +1,72 @@ +/* copyright 2006 Ben Allison */ +#include "factory_alac.h" +#include "ALACMP4Decoder.h" + +static const char serviceName[] = "ALAC Decoder"; +static const char testString[] = "alac"; + +// {47ADFABA-BDB5-4e2e-A91F-BC184C123DE9} +static const GUID api_downloads_GUID= { 0x47adfaba, 0xbdb5, 0x4e2e, { 0xa9, 0x1f, 0xbc, 0x18, 0x4c, 0x12, 0x3d, 0xe9 } }; + +FOURCC ALACFactory::GetServiceType() +{ + return WaSvc::MP4AUDIODECODER; +} + +const char *ALACFactory::GetServiceName() +{ + return serviceName; +} + +GUID ALACFactory::GetGUID() +{ + return api_downloads_GUID; +} + +void *ALACFactory::GetInterface(int global_lock) +{ + MP4AudioDecoder *ifc=new ALACMP4Decoder; +// if (global_lock) +// WASABI_API_SVC->service_lock(this, (void *)ifc); + return ifc; +} + +int ALACFactory::SupportNonLockingInterface() +{ + return 1; +} + +int ALACFactory::ReleaseInterface(void *ifc) +{ + //WASABI_API_SVC->service_unlock(ifc); + MP4AudioDecoder *decoder = static_cast<MP4AudioDecoder *>(ifc); + ALACMP4Decoder *aacPlusDecoder = static_cast<ALACMP4Decoder *>(decoder); + delete aacPlusDecoder; + return 1; +} + +const char *ALACFactory::GetTestString() +{ + return testString; +} + +int ALACFactory::ServiceNotify(int msg, int param1, int param2) +{ + return 1; +} + +#ifdef CBCLASS +#undef CBCLASS +#endif + +#define CBCLASS ALACFactory +START_DISPATCH; +CB( WASERVICEFACTORY_GETSERVICETYPE, GetServiceType ) +CB( WASERVICEFACTORY_GETSERVICENAME, GetServiceName ) +CB( WASERVICEFACTORY_GETGUID, GetGUID ) +CB( WASERVICEFACTORY_GETINTERFACE, GetInterface ) +CB( WASERVICEFACTORY_SUPPORTNONLOCKINGGETINTERFACE, SupportNonLockingInterface ) +CB( WASERVICEFACTORY_RELEASEINTERFACE, ReleaseInterface ) +CB( WASERVICEFACTORY_GETTESTSTRING, GetTestString ) +CB( WASERVICEFACTORY_SERVICENOTIFY, ServiceNotify ) +END_DISPATCH; |