diff options
author | Chris Sherlock <chris.sherlock@collabora.com> | 2015-03-02 17:09:28 +1100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2015-03-11 18:38:29 +0100 |
commit | 84206b23bd2bf5abfe4d6653866a1f0a2c03cb8e (patch) | |
tree | 1beedd94dad7bb6107a21a582737375712e7d2a5 | |
parent | 4c11ac451a00e552899429253652a6423829573b (diff) |
avmedia: use constructor syntax for avmedia.component
Change-Id: Ia4572e10fb97a5e88f08341d8a1c8af87e68904c
Signed-off-by: Stephan Bergmann <sbergman@redhat.com>
-rw-r--r-- | avmedia/source/framework/soundhandler.cxx | 52 | ||||
-rw-r--r-- | avmedia/source/framework/soundhandler.hxx | 3 | ||||
-rw-r--r-- | avmedia/util/avmedia.component | 3 |
3 files changed, 11 insertions, 47 deletions
diff --git a/avmedia/source/framework/soundhandler.cxx b/avmedia/source/framework/soundhandler.cxx index f820e9c5ce37..2995acf47f4d 100644 --- a/avmedia/source/framework/soundhandler.cxx +++ b/avmedia/source/framework/soundhandler.cxx @@ -142,30 +142,6 @@ OUString SoundHandler::impl_getStaticImplementationName() return IMPLEMENTATIONNAME_SOUNDHANDLER; } -css::uno::Reference< css::uno::XInterface > SAL_CALL SoundHandler::impl_createInstance( const css::uno::Reference< css::lang::XMultiServiceFactory >& xServiceManager ) throw( css::uno::Exception ) -{ - /* create new instance of service */ - SoundHandler* pClass = new SoundHandler( xServiceManager ); - /* hold it alive by increasing his ref count!!! */ - css::uno::Reference< css::uno::XInterface > xService( static_cast< ::cppu::OWeakObject* >(pClass), css::uno::UNO_QUERY ); - /* initialize new service instance ... he can use his own refcount ... we hold it! */ - pClass->impl_initService(); - /* return new created service as reference */ - return xService; -} - -css::uno::Reference< css::lang::XSingleServiceFactory > SoundHandler::impl_createFactory( const css::uno::Reference< css::lang::XMultiServiceFactory >& xServiceManager ) -{ - css::uno::Reference< css::lang::XSingleServiceFactory > xReturn ( cppu::createSingleFactory ( - xServiceManager, - SoundHandler::impl_getStaticImplementationName(), - SoundHandler::impl_createInstance, - SoundHandler::impl_getStaticSupportedServiceNames() - ) - ); - return xReturn; -} - void SAL_CALL SoundHandler::impl_initService() { } @@ -379,27 +355,17 @@ IMPL_LINK_NOARG(SoundHandler, implts_PlayerNotify) } // namespace framework -extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL avmedia_component_getFactory(const sal_Char* pImplementationName, void* pServiceManager, void* /*pRegistryKey*/ ) + +extern "C" SAL_DLLPUBLIC_EXPORT ::com::sun::star::uno::XInterface* SAL_CALL +com_sun_star_comp_framework_SoundHandler_get_implementation(::com::sun::star::uno::XComponentContext* context, + ::com::sun::star::uno::Sequence<css::uno::Any> const &) { - void* pReturn = NULL; - if (pServiceManager != NULL ) - { - /* Define variables which are used in following macros. */ - css::uno::Reference< ::com::sun::star::lang::XSingleServiceFactory > xFactory; - css::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xServiceManager; - xServiceManager = reinterpret_cast< ::com::sun::star::lang::XMultiServiceFactory* >( pServiceManager ) ; + css::uno::Reference< css::lang::XMultiServiceFactory> xSM(context->getServiceManager(), css::uno::UNO_QUERY_THROW); + avmedia::SoundHandler* pClass = new avmedia::SoundHandler( xSM ); + pClass->impl_initService(); + return cppu::acquire( pClass ); +} - if ( avmedia::SoundHandler::impl_getStaticImplementationName().equals( OUString::createFromAscii( pImplementationName ) ) ) - xFactory = avmedia::SoundHandler::impl_createFactory( xServiceManager ); - if ( xFactory.is() ) - { - xFactory->acquire(); - pReturn = xFactory.get(); - } - } - /* Return with result of this operation. */ - return pReturn; -} /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/avmedia/source/framework/soundhandler.hxx b/avmedia/source/framework/soundhandler.hxx index fd3706fcb862..2a39c9dabd13 100644 --- a/avmedia/source/framework/soundhandler.hxx +++ b/avmedia/source/framework/soundhandler.hxx @@ -91,9 +91,6 @@ class SoundHandler : // interfaces /* Helper for XServiceInfo */ static css::uno::Sequence< OUString > SAL_CALL impl_getStaticSupportedServiceNames( ); static OUString SAL_CALL impl_getStaticImplementationName ( ); - /* Helper for registry */ - static css::uno::Reference< css::uno::XInterface > SAL_CALL impl_createInstance ( const css::uno::Reference< css::lang::XMultiServiceFactory >& xServiceManager ) throw( css::uno::Exception ); - static css::uno::Reference< css::lang::XSingleServiceFactory > SAL_CALL impl_createFactory ( const css::uno::Reference< css::lang::XMultiServiceFactory >& xServiceManager ); /* Helper for initialization of service by using own reference! */ void SAL_CALL impl_initService ( ); diff --git a/avmedia/util/avmedia.component b/avmedia/util/avmedia.component index 94e46f9a7fa6..eec2b9a2ff6d 100644 --- a/avmedia/util/avmedia.component +++ b/avmedia/util/avmedia.component @@ -19,7 +19,8 @@ <component loader="com.sun.star.loader.SharedLibrary" environment="@CPPU_ENV@" prefix="avmedia" xmlns="http://openoffice.org/2010/uno-components"> - <implementation name="com.sun.star.comp.framework.SoundHandler"> + <implementation name="com.sun.star.comp.framework.SoundHandler" + constructor="com_sun_star_comp_framework_SoundHandler_get_implementation"> <service name="com.sun.star.frame.ContentHandler"/> </implementation> </component> |