1 /* ------------------------------------------------------------------ 2 * Copyright (C) 1998-2009 PacketVideo 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 13 * express or implied. 14 * See the License for the specific language governing permissions 15 * and limitations under the License. 16 * ------------------------------------------------------------------- 17 */ 18 #ifndef PVMI_DATASTREAMUSER_INTERFACE_H_INCLUDED 19 #define PVMI_DATASTREAMUSER_INTERFACE_H_INCLUDED 20 21 #ifndef OSCL_BASE_H_INCLUDED 22 #include "oscl_base.h" 23 #endif 24 #ifndef OSCL_TYPES_H_INCLUDED 25 #include "oscl_types.h" 26 #endif 27 #ifndef PV_UUID_H_INCLUDED 28 #include "pv_uuid.h" 29 #endif 30 #ifndef PV_INTERFACE_H_INCLUDED 31 #include "pv_interface.h" 32 #endif 33 #ifndef PVMF_RETURN_CODES_H_INCLUDED 34 #include "pvmf_return_codes.h" 35 #endif 36 #ifndef PVMF_CPMPLUGIN_ACCESS_INTERFACE_FACTORY_H_INCLUDED 37 #include "pvmf_cpmplugin_access_interface_factory.h" 38 #endif 39 #ifndef PVMF_FORMAT_TYPE_H_INCLUDED 40 #include "pvmf_format_type.h" // for PvmfMimeString = OSCL_String 41 #endif 42 43 #define PVMI_DATASTREAMUSER_INTERFACE_MIMETYPE "pvxxx/pvmf/streamuser" 44 #define PVMIDatastreamuserInterfaceUuid PVUuid(0x8f5ccbd8,0x3331,0x46ec,0xad,0x6f,0x39,0xec,0x22,0x2b,0x44,0xb9) 45 46 // A PVMFDataStreamFactory is really a PVMFCPMPluginAccessInterfaceFactory. 47 typedef PVMFCPMPluginAccessInterfaceFactory PVMFDataStreamFactory; 48 49 /* This interface is implemented by objects that support having data stream factories passed to them. */ 50 51 class PVMFDataStreamReadCapacityObserver; 52 53 class PVMIDatastreamuserInterface : public PVInterface 54 { 55 public: 56 /** 57 * Provides a datastream factory along with supplemental information about how to use it. 58 * @param aFactory A reference to the factory. Provides methods to create sync or async data stream objects. 59 * @param aFactoryTag Provides information about the purpose for which this factory is being provided. 60 * @param aFactoryConfig Provides configuration information for use with the factory. 61 */ 62 virtual void PassDatastreamFactory(PVMFDataStreamFactory& aFactory, int32 aFactoryTag, const PvmfMimeString* aFactoryConfig = NULL) = 0; PassDatastreamReadCapacityObserver(PVMFDataStreamReadCapacityObserver * aObserver)63 virtual void PassDatastreamReadCapacityObserver(PVMFDataStreamReadCapacityObserver* aObserver) 64 { 65 OSCL_UNUSED_ARG(aObserver); 66 OSCL_LEAVE(OsclErrNotSupported); 67 } 68 }; 69 70 71 72 #endif //PVMI_DATASTREAMUSER_INTERFACE_H_INCLUDED 73 74 75