michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #pragma once michael@0: michael@0: #include "CC_Common.h" michael@0: michael@0: extern "C" michael@0: { michael@0: #include "ccapi_types.h" michael@0: } michael@0: michael@0: namespace CSF michael@0: { michael@0: michael@0: class ECC_API CC_Device michael@0: { michael@0: public: michael@0: NS_INLINE_DECL_THREADSAFE_REFCOUNTING(CC_Device) michael@0: protected: michael@0: CC_Device() {} michael@0: michael@0: public: michael@0: virtual ~CC_Device() {} michael@0: michael@0: virtual std::string toString() = 0; michael@0: michael@0: virtual CC_DeviceInfoPtr getDeviceInfo () = 0; michael@0: michael@0: /** michael@0: Create a call on the device. Line selection is on the first available line. michael@0: Lines that have their MNC reached will be skipped. If you have a specific line michael@0: you want to make a call on (assuming the device has more than available) then michael@0: you should use CC_Line::createCall() to do that. michael@0: michael@0: @return CC_CallPtr - the created call object wrapped in a smart_ptr. michael@0: */ michael@0: virtual CC_CallPtr createCall() = 0; michael@0: michael@0: virtual void enableVideo(bool enable) = 0; michael@0: virtual void enableCamera(bool enable) = 0; michael@0: virtual void setDigestNamePasswd (char *name, char *pw) = 0; michael@0: michael@0: private: michael@0: // Cannot copy - clients should be passing the pointer not the object. michael@0: CC_Device& operator=(const CC_Device& rhs); michael@0: CC_Device(const CC_Device&); michael@0: }; michael@0: }