本文整理汇总了C++中checkPidAndHardware函数的典型用法代码示例。如果您正苦于以下问题:C++ checkPidAndHardware函数的具体用法?C++ checkPidAndHardware怎么用?C++ checkPidAndHardware使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了checkPidAndHardware函数的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: LOG1
// stop preview mode
void CameraClient::stopPreview() {
LOG1("stopPreview (pid %d)", getCallingPid());
#ifdef QCOM_HARDWARE
disableMsgType(CAMERA_MSG_PREVIEW_METADATA);
#endif
Mutex::Autolock lock(mLock);
if (checkPidAndHardware() != NO_ERROR) return;
#ifdef OMAP_ENHANCEMENT
// According to framework documentation, preview needs
// to be started for image capture. This will make sure
// that image capture related messages get disabled if
// not done already in their respective handlers.
// If these messages come when in the midddle of
// stopping preview we will deadlock the system in
// lockIfMessageWanted().
disableMsgType(CAMERA_MSG_POSTVIEW_FRAME);
#endif
disableMsgType(CAMERA_MSG_PREVIEW_FRAME);
#ifdef QCOM_HARDWARE
//Disable picture related message types
ALOGI("stopPreview: Disable picture related messages");
int picMsgType = 0;
picMsgType = (CAMERA_MSG_SHUTTER |
CAMERA_MSG_POSTVIEW_FRAME |
CAMERA_MSG_RAW_IMAGE |
CAMERA_MSG_RAW_IMAGE_NOTIFY |
CAMERA_MSG_COMPRESSED_IMAGE);
disableMsgType(picMsgType);
#endif
mHardware->stopPreview();
mPreviewBuffer.clear();
}
开发者ID:InsomniaROM,项目名称:android_frameworks_av,代码行数:36,代码来源:CameraClient.cpp
示例2: LOG1
// enable shutter sound
status_t CameraService::Client::enableShutterSound(bool enable) {
LOG1("enableShutterSound (pid %d)", getCallingPid());
status_t result = checkPidAndHardware();
if (result != NO_ERROR) return result;
if (enable) {
mPlayShutterSound = true;
return OK;
}
// Disabling shutter sound may not be allowed. In that case only
// allow the mediaserver process to disable the sound.
char value[PROPERTY_VALUE_MAX];
property_get("ro.camera.sound.forced", value, "0");
if (strcmp(value, "0") != 0) {
// Disabling shutter sound is not allowed. Deny if the current
// process is not mediaserver.
if (getCallingPid() != getpid()) {
LOGE("Failed to disable shutter sound. Permission denied (pid %d)", getCallingPid());
return PERMISSION_DENIED;
}
}
mPlayShutterSound = false;
return OK;
}
开发者ID:28vicky,项目名称:platform_frameworks_base,代码行数:28,代码来源:CameraService.cpp
示例3: LOG1
// take a picture - image is returned in callback
status_t CameraService::Client::takePicture(int msgType) {
char prop[PROPERTY_VALUE_MAX];
LOG1("takePicture (pid %d): 0x%x", getCallingPid(), msgType);
Mutex::Autolock lock(mLock);
status_t result = checkPidAndHardware();
if (result != NO_ERROR) return result;
//zxj ++
mstopPreview = true;
//zxj --
if ((msgType & CAMERA_MSG_RAW_IMAGE) &&
(msgType & CAMERA_MSG_RAW_IMAGE_NOTIFY)) {
LOGE("CAMERA_MSG_RAW_IMAGE and CAMERA_MSG_RAW_IMAGE_NOTIFY"
" cannot be both enabled");
return BAD_VALUE;
}
// We only accept picture related message types
// and ignore other types of messages for takePicture().
int picMsgType = msgType
& (CAMERA_MSG_SHUTTER |
CAMERA_MSG_POSTVIEW_FRAME |
CAMERA_MSG_RAW_IMAGE |
CAMERA_MSG_RAW_IMAGE_NOTIFY |
CAMERA_MSG_COMPRESSED_IMAGE);
disableMsgType(CAMERA_MSG_PREVIEW_METADATA);
enableMsgType(picMsgType);
mburstCnt = mHardware->getParameters().getInt("num-snaps-per-shutter");
if(mburstCnt <= 0) mburstCnt = 1;
LOG1("mburstCnt = %d", mburstCnt);
return mHardware->takePicture();
}
开发者ID:manpham,项目名称:frameworks_base,代码行数:33,代码来源:CameraService.cpp
示例4: LOG1
status_t CameraService::Client::sendCommand(int32_t cmd, int32_t arg1, int32_t arg2) {
LOG1("sendCommand (pid %d)", getCallingPid());
int orientation;
Mutex::Autolock lock(mLock);
status_t result = checkPidAndHardware();
if (result != NO_ERROR) return result;
if (cmd == CAMERA_CMD_SET_DISPLAY_ORIENTATION) {
// The orientation cannot be set during preview.
if (mHardware->previewEnabled()) {
return INVALID_OPERATION;
}
// Mirror the preview if the camera is front-facing.
orientation = getOrientation(arg1, mCameraFacing == CAMERA_FACING_FRONT);
if (orientation == -1) return BAD_VALUE;
if (mOrientation != orientation) {
mOrientation = orientation;
if (mOverlayRef != 0) mOrientationChanged = true;
}
return OK;
}
return mHardware->sendCommand(cmd, arg1, arg2);
}
开发者ID:HyperDroid,项目名称:android_frameworks_base_deprecated,代码行数:25,代码来源:CameraService.cpp
示例5: lock
// get preview/capture parameters - key/value pairs
String8 CameraService::Client::getParameters() const {
Mutex::Autolock lock(mLock);
if (checkPidAndHardware() != NO_ERROR) return String8();
String8 params(mHardware->getParameters().flatten());
LOG1("getParameters (pid %d) (%s)", getCallingPid(), params.string());
return params;
}
开发者ID:28vicky,项目名称:platform_frameworks_base,代码行数:9,代码来源:CameraService.cpp
示例6: LOG1
status_t CameraClient::sendCommand(int32_t cmd, int32_t arg1, int32_t arg2) {
LOG1("sendCommand (pid %d)", getCallingPid());
int orientation;
Mutex::Autolock lock(mLock);
status_t result = checkPidAndHardware();
if (result != NO_ERROR) return result;
if (cmd == CAMERA_CMD_SET_DISPLAY_ORIENTATION) {
// Mirror the preview if the camera is front-facing.
orientation = getOrientation(arg1, mCameraFacing == CAMERA_FACING_FRONT);
if (orientation == -1) return BAD_VALUE;
if (mOrientation != orientation) {
mOrientation = orientation;
if (mPreviewWindow != 0) {
native_window_set_buffers_transform(mPreviewWindow.get(),
mOrientation);
}
}
return OK;
} else if (cmd == CAMERA_CMD_ENABLE_SHUTTER_SOUND) {
switch (arg1) {
case 0:
return enableShutterSound(false);
case 1:
return enableShutterSound(true);
default:
return BAD_VALUE;
}
return OK;
} else if (cmd == CAMERA_CMD_PLAY_RECORDING_SOUND) {
mCameraService->playSound(CameraService::SOUND_RECORDING);
} else if (cmd == CAMERA_CMD_SET_VIDEO_BUFFER_COUNT) {
// Silently ignore this command
return INVALID_OPERATION;
} else if (cmd == CAMERA_CMD_PING) {
// If mHardware is 0, checkPidAndHardware will return error.
return OK;
#ifdef QCOM_HARDWARE
} else if (cmd == CAMERA_CMD_HISTOGRAM_ON) {
enableMsgType(CAMERA_MSG_STATS_DATA);
} else if (cmd == CAMERA_CMD_HISTOGRAM_OFF) {
disableMsgType(CAMERA_MSG_STATS_DATA);
} else if (cmd == CAMERA_CMD_METADATA_ON) {
enableMsgType(CAMERA_MSG_META_DATA);
} else if (cmd == CAMERA_CMD_METADATA_OFF) {
disableMsgType(CAMERA_MSG_META_DATA);
} else if ( cmd == CAMERA_CMD_LONGSHOT_ON ) {
mLongshotEnabled = true;
} else if ( cmd == CAMERA_CMD_LONGSHOT_OFF ) {
mLongshotEnabled = false;
disableMsgType(CAMERA_MSG_SHUTTER);
disableMsgType(CAMERA_MSG_COMPRESSED_IMAGE);
#endif
}
return mHardware->sendCommand(cmd, arg1, arg2);
}
开发者ID:DaniBen,项目名称:frameworks_av,代码行数:58,代码来源:CameraClient.cpp
示例7: lock
// get preview/capture parameters - key/value pairs
String8 CameraClient::getParameters() const {
Mutex::Autolock lock(mLock);
// The camera service can unconditionally get the parameters at all times
if (getCallingPid() != mServicePid && checkPidAndHardware() != NO_ERROR) return String8();
String8 params(mHardware->getParameters().flatten());
LOG1("getParameters (pid %d) (%s)", getCallingPid(), params.string());
return params;
}
开发者ID:lbule,项目名称:android_frameworks_av-cm-12.1-mtk,代码行数:10,代码来源:CameraClient.cpp
示例8: lock
status_t CameraClient::setPreviewWindow(const sp<IBinder>& binder,
const sp<ANativeWindow>& window) {
Mutex::Autolock lock(mLock);
status_t result = checkPidAndHardware();
if (result != NO_ERROR) return result;
// return if no change in surface.
if (binder == mSurface) {
return NO_ERROR;
}
if (window != 0) {
result = native_window_api_connect(window.get(), NATIVE_WINDOW_API_CAMERA);
if (result != NO_ERROR) {
ALOGE("native_window_api_connect failed: %s (%d)", strerror(-result),
result);
return result;
}
}
// If preview has been already started, register preview buffers now.
if (mHardware->previewEnabled()) {
if (window != 0) {
native_window_set_scaling_mode(window.get(),
NATIVE_WINDOW_SCALING_MODE_SCALE_TO_WINDOW);
native_window_set_buffers_transform(window.get(), mOrientation);
result = mHardware->setPreviewWindow(window);
}
#ifdef QCOM_HARDWARE
#ifndef NO_UPDATE_PREVIEW
} else {
if (window != 0) {
native_window_set_buffers_transform(window.get(), mOrientation);
}
result = mHardware->setPreviewWindow(window);
#endif
#endif
}
if (result == NO_ERROR) {
// Everything has succeeded. Disconnect the old window and remember the
// new window.
disconnectWindow(mPreviewWindow);
mSurface = binder;
mPreviewWindow = window;
} else {
// Something went wrong after we connected to the new window, so
// disconnect here.
disconnectWindow(window);
}
return result;
}
开发者ID:InsomniaROM,项目名称:android_frameworks_av,代码行数:53,代码来源:CameraClient.cpp
示例9: LOG1
status_t CameraClient::sendCommand(int32_t cmd, int32_t arg1, int32_t arg2) {
LOG1("sendCommand (pid %d)", getCallingPid());
int orientation;
Mutex::Autolock lock(mLock);
status_t result = checkPidAndHardware();
if (result != NO_ERROR) return result;
if (cmd == CAMERA_CMD_SET_DISPLAY_ORIENTATION) {
//!++
LOG1("CAMERA_CMD_SET_DISPLAY_ORIENTATION - tid(%d), (degrees, mirror)=(%d, %d)", ::gettid(), arg1, mCameraFacing);
//!--
// Mirror the preview if the camera is front-facing.
orientation = getOrientation(arg1, mCameraFacing == CAMERA_FACING_FRONT);
if (orientation == -1) return BAD_VALUE;
if (mOrientation != orientation) {
mOrientation = orientation;
if (mPreviewWindow != 0) {
native_window_set_buffers_transform(mPreviewWindow.get(),
mOrientation);
}
}
return OK;
} else if (cmd == CAMERA_CMD_ENABLE_SHUTTER_SOUND) {
switch (arg1) {
case 0:
return enableShutterSound(false);
case 1:
return enableShutterSound(true);
default:
return BAD_VALUE;
}
return OK;
} else if (cmd == CAMERA_CMD_PLAY_RECORDING_SOUND) {
mCameraService->playSound(CameraService::SOUND_RECORDING);
} else if (cmd == CAMERA_CMD_SET_VIDEO_BUFFER_COUNT) {
// Silently ignore this command
return INVALID_OPERATION;
} else if (cmd == CAMERA_CMD_PING) {
// If mHardware is 0, checkPidAndHardware will return error.
return OK;
}
return mHardware->sendCommand(cmd, arg1, arg2);
}
开发者ID:lbule,项目名称:android_frameworks_av-cm-12.1-mtk,代码行数:45,代码来源:CameraClient.cpp
示例10: LOG1
// start preview or recording
status_t CameraClient::startCameraMode(camera_mode mode) {
LOG1("startCameraMode(%d)", mode);
status_t result = checkPidAndHardware();
if (result != NO_ERROR) return result;
switch(mode) {
case CAMERA_PREVIEW_MODE:
if (mSurface == 0 && mPreviewWindow == 0) {
LOG1("mSurface is not set yet.");
// still able to start preview in this case.
}
return startPreviewMode();
case CAMERA_RECORDING_MODE:
if (mSurface == 0 && mPreviewWindow == 0) {
ALOGE("mSurface or mPreviewWindow must be set before startRecordingMode.");
return INVALID_OPERATION;
}
return startRecordingMode();
default:
return UNKNOWN_ERROR;
}
}
开发者ID:brianwoo,项目名称:cm11_grouper,代码行数:23,代码来源:CameraClient.cpp
注:本文中的checkPidAndHardware函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论