Rename SensorChannel to BitTube

This commit is contained in:
Mathias Agopian 2011-10-20 18:42:02 -07:00
parent 6651db884e
commit 5cae0d0699
7 changed files with 55 additions and 32 deletions

View File

@ -28,14 +28,15 @@ namespace android {
// ----------------------------------------------------------------------------
class Parcel;
class SensorChannel : public RefBase
class BitTube : public RefBase
{
public:
SensorChannel();
SensorChannel(const Parcel& data);
virtual ~SensorChannel();
BitTube();
BitTube(const Parcel& data);
virtual ~BitTube();
status_t initCheck() const;
int getFd() const;
ssize_t write(void const* vaddr, size_t size);
ssize_t read(void* vaddr, size_t size);

View File

@ -28,14 +28,14 @@
namespace android {
// ----------------------------------------------------------------------------
class SensorChannel;
class BitTube;
class ISensorEventConnection : public IInterface
{
public:
DECLARE_META_INTERFACE(SensorEventConnection);
virtual sp<SensorChannel> getSensorChannel() const = 0;
virtual sp<BitTube> getSensorChannel() const = 0;
virtual status_t enableDisable(int handle, bool enabled) = 0;
virtual status_t setEventRate(int handle, nsecs_t ns) = 0;
};

View File

@ -24,7 +24,7 @@
#include <utils/RefBase.h>
#include <utils/Timers.h>
#include <gui/SensorChannel.h>
#include <gui/BitTube.h>
// ----------------------------------------------------------------------------
@ -71,7 +71,7 @@ public:
private:
sp<Looper> getLooper() const;
sp<ISensorEventConnection> mSensorEventConnection;
sp<SensorChannel> mSensorChannel;
sp<BitTube> mSensorChannel;
mutable Mutex mLock;
mutable sp<Looper> mLooper;
};

View File

@ -2,11 +2,11 @@ LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:= \
BitTube.cpp \
ISensorEventConnection.cpp \
ISensorServer.cpp \
ISurfaceTexture.cpp \
Sensor.cpp \
SensorChannel.cpp \
SensorEventQueue.cpp \
SensorManager.cpp \
SurfaceTexture.cpp \

View File

@ -24,12 +24,12 @@
#include <binder/Parcel.h>
#include <gui/SensorChannel.h>
#include <gui/BitTube.h>
namespace android {
// ----------------------------------------------------------------------------
SensorChannel::SensorChannel()
BitTube::BitTube()
: mSendFd(-1), mReceiveFd(-1)
{
int fds[2];
@ -38,17 +38,26 @@ SensorChannel::SensorChannel()
mSendFd = fds[1];
fcntl(mReceiveFd, F_SETFL, O_NONBLOCK);
fcntl(mSendFd, F_SETFL, O_NONBLOCK);
} else {
mReceiveFd = -errno;
LOGE("BitTube: pipe creation failed (%s)", strerror(-mReceiveFd));
}
}
SensorChannel::SensorChannel(const Parcel& data)
BitTube::BitTube(const Parcel& data)
: mSendFd(-1), mReceiveFd(-1)
{
mReceiveFd = dup(data.readFileDescriptor());
fcntl(mReceiveFd, F_SETFL, O_NONBLOCK);
if (mReceiveFd >= 0) {
fcntl(mReceiveFd, F_SETFL, O_NONBLOCK);
} else {
mReceiveFd = -errno;
LOGE("BitTube(Parcel): can't dup filedescriptor (%s)",
strerror(-mReceiveFd));
}
}
SensorChannel::~SensorChannel()
BitTube::~BitTube()
{
if (mSendFd >= 0)
close(mSendFd);
@ -57,28 +66,41 @@ SensorChannel::~SensorChannel()
close(mReceiveFd);
}
int SensorChannel::getFd() const
status_t BitTube::initCheck() const
{
if (mReceiveFd < 0) {
return status_t(mReceiveFd);
}
return NO_ERROR;
}
int BitTube::getFd() const
{
return mReceiveFd;
}
ssize_t SensorChannel::write(void const* vaddr, size_t size)
ssize_t BitTube::write(void const* vaddr, size_t size)
{
ssize_t len = ::write(mSendFd, vaddr, size);
if (len < 0)
return -errno;
return len;
ssize_t err, len;
do {
len = ::write(mSendFd, vaddr, size);
err = len < 0 ? errno : 0;
} while (err == EINTR);
return err == 0 ? len : -err;
}
ssize_t SensorChannel::read(void* vaddr, size_t size)
ssize_t BitTube::read(void* vaddr, size_t size)
{
ssize_t len = ::read(mReceiveFd, vaddr, size);
if (len < 0)
return -errno;
return len;
ssize_t err, len;
do {
len = ::read(mReceiveFd, vaddr, size);
err = len < 0 ? errno : 0;
} while (err == EINTR);
return err == 0 ? len : -err;
}
status_t SensorChannel::writeToParcel(Parcel* reply) const
status_t BitTube::writeToParcel(Parcel* reply) const
{
if (mReceiveFd < 0)
return -EINVAL;

View File

@ -25,7 +25,7 @@
#include <binder/IInterface.h>
#include <gui/ISensorEventConnection.h>
#include <gui/SensorChannel.h>
#include <gui/BitTube.h>
namespace android {
// ----------------------------------------------------------------------------
@ -44,12 +44,12 @@ public:
{
}
virtual sp<SensorChannel> getSensorChannel() const
virtual sp<BitTube> getSensorChannel() const
{
Parcel data, reply;
data.writeInterfaceToken(ISensorEventConnection::getInterfaceDescriptor());
remote()->transact(GET_SENSOR_CHANNEL, data, &reply);
return new SensorChannel(reply);
return new BitTube(reply);
}
virtual status_t enableDisable(int handle, bool enabled)
@ -83,7 +83,7 @@ status_t BnSensorEventConnection::onTransact(
switch(code) {
case GET_SENSOR_CHANNEL: {
CHECK_INTERFACE(ISensorEventConnection, data, reply);
sp<SensorChannel> channel(getSensorChannel());
sp<BitTube> channel(getSensorChannel());
channel->writeToParcel(reply);
return NO_ERROR;
} break;

View File

@ -24,7 +24,7 @@
#include <utils/Looper.h>
#include <gui/Sensor.h>
#include <gui/SensorChannel.h>
#include <gui/BitTube.h>
#include <gui/SensorEventQueue.h>
#include <gui/ISensorEventConnection.h>
@ -104,7 +104,7 @@ status_t SensorEventQueue::waitForEvent() const
do {
result = looper->pollOnce(-1);
if (result == ALOOPER_EVENT_ERROR) {
LOGE("SensorChannel::waitForEvent error (errno=%d)", errno);
LOGE("SensorEventQueue::waitForEvent error (errno=%d)", errno);
result = -EPIPE; // unknown error, so we make up one
break;
}