Arun Raghavan c4fb4e38de Update common_audio
Corresponds to upstream commit 524e9b043e7e86fd72353b987c9d5f6a1ebf83e1

Update notes:

 * Moved src/ to webrtc/ to easily diff against the third_party/webrtc
   in the chromium tree

 * ARM/NEON/MIPS support is not yet hooked up

 * Tests have not been copied
2015-10-15 16:18:25 +05:30

71 lines
2.1 KiB
C++

/*
* Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#ifndef MODULES_INTERFACE_MODULE_H_
#define MODULES_INTERFACE_MODULE_H_
#include <assert.h>
#include "typedefs.h"
namespace webrtc {
class Module {
public:
// Returns version of the module and its components.
virtual int32_t Version(char* version,
uint32_t& remaining_buffer_in_bytes,
uint32_t& position) const = 0;
// Change the unique identifier of this object.
virtual int32_t ChangeUniqueId(const int32_t id) = 0;
// Returns the number of milliseconds until the module want a worker
// thread to call Process.
virtual int32_t TimeUntilNextProcess() = 0;
// Process any pending tasks such as timeouts.
virtual int32_t Process() = 0;
protected:
virtual ~Module() {}
};
// Reference counted version of the module interface.
class RefCountedModule : public Module {
public:
// Increase the reference count by one.
// Returns the incremented reference count.
// TODO(perkj): Make this pure virtual when Chromium have implemented
// reference counting ADM and Video capture module.
virtual int32_t AddRef() {
assert(!"Not implemented.");
return 1;
}
// Decrease the reference count by one.
// Returns the decreased reference count.
// Returns 0 if the last reference was just released.
// When the reference count reach 0 the object will self-destruct.
// TODO(perkj): Make this pure virtual when Chromium have implemented
// reference counting ADM and Video capture module.
virtual int32_t Release() {
assert(!"Not implemented.");
return 1;
}
protected:
virtual ~RefCountedModule() {}
};
} // namespace webrtc
#endif // MODULES_INTERFACE_MODULE_H_