Android Open Source - remoteyourcam-usb Eos Event Check Command






From Project

Back to project page remoteyourcam-usb.

License

The source code is released under:

Apache License

If you think the Android project remoteyourcam-usb listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/**
 * Copyright 2013 Nils Assbeck, Guersel Ayaz and Michael Zoech
 *//from  w w  w.  java2 s . com
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.remoteyourcam.usb.ptp.commands.eos;

import java.nio.ByteBuffer;

import android.util.Log;

import com.remoteyourcam.usb.AppConfig;
import com.remoteyourcam.usb.ptp.EosCamera;
import com.remoteyourcam.usb.ptp.PacketUtil;
import com.remoteyourcam.usb.ptp.PtpCamera.IO;
import com.remoteyourcam.usb.ptp.PtpConstants;
import com.remoteyourcam.usb.ptp.PtpConstants.Event;
import com.remoteyourcam.usb.ptp.PtpConstants.Operation;
import com.remoteyourcam.usb.ptp.PtpConstants.Property;
import com.remoteyourcam.usb.ptp.PtpConstants.Response;

public class EosEventCheckCommand extends EosCommand {

    private static final String TAG = EosEventCheckCommand.class.getSimpleName();

    public EosEventCheckCommand(EosCamera camera) {
        super(camera);
    }

    @Override
    public void exec(IO io) {
        io.handleCommand(this);
        if (responseCode == Response.DeviceBusy) {
            camera.onDeviceBusy(this, false);
        }
    }

    @Override
    public void encodeCommand(ByteBuffer b) {
        encodeCommand(b, Operation.EosEventCheck);
    }

    @Override
    protected void decodeData(ByteBuffer b, int length) {
        while (b.position() < length) {
            int eventLength = b.getInt();
            int event = b.getInt();
            if (AppConfig.LOG) {
                Log.i(TAG, "event length " + eventLength);
                Log.i(TAG, "event type " + PtpConstants.eventToString(event));
            }
            switch (event) {
            case Event.EosObjectAdded: {
                int objectHandle = b.getInt();
                int storageId = b.getInt();
                int objectFormat = b.getShort();
                skip(b, eventLength - 18);
                camera.onEventDirItemCreated(objectHandle, storageId, objectFormat, "TODO");
                break;
            }
            case Event.EosDevicePropChanged: {
                int property = b.getInt();
                if (AppConfig.LOG) {
                    Log.i(TAG, "property " + PtpConstants.propertyToString(property));
                }
                switch (property) {
                case Property.EosApertureValue:
                case Property.EosShutterSpeed:
                case Property.EosIsoSpeed:
                case Property.EosWhitebalance:
                case Property.EosEvfOutputDevice:
                case Property.EosShootingMode:
                case Property.EosAvailableShots:
                case Property.EosColorTemperature:
                case Property.EosAfMode:
                case Property.EosMeteringMode:
                case Property.EosExposureCompensation:
                case Property.EosPictureStyle:
                case Property.EosEvfMode: {
                    int value = b.getInt();
                    if (AppConfig.LOG) {
                        Log.i(TAG, "value " + value);
                    }
                    camera.onPropertyChanged(property, value);
                    break;
                }
                default:
                    if (AppConfig.LOG && eventLength <= 200) {
                        PacketUtil.logHexdump(TAG, b.array(), b.position(), eventLength - 12);
                    }
                    skip(b, eventLength - 12);
                    break;
                }
                break;
            }
            case Event.EosDevicePropDescChanged: {
                int property = b.getInt();
                if (AppConfig.LOG) {
                    Log.i(TAG, "property " + PtpConstants.propertyToString(property));
                }
                switch (property) {
                case Property.EosApertureValue:
                case Property.EosShutterSpeed:
                case Property.EosIsoSpeed:
                case Property.EosMeteringMode:
                case Property.EosPictureStyle:
                case Property.EosExposureCompensation:
                case Property.EosColorTemperature:
                case Property.EosWhitebalance: {
                    /* int dataType = */b.getInt();
                    int num = b.getInt();
                    if (AppConfig.LOG) {
                        Log.i(TAG, "property desc with num " + num);
                    }
                    if (eventLength != 20 + 4 * num) {
                        if (AppConfig.LOG) {
                            Log.i(TAG, String.format("Event Desc length invalid should be %d but is %d", 20 + 4 * num,
                                    eventLength));
                            PacketUtil.logHexdump(TAG, b.array(), b.position() - 20, eventLength);
                        }
                    }
                    int[] values = new int[num];
                    for (int i = 0; i < num; ++i) {
                        values[i] = b.getInt();
                    }
                    if (eventLength != 20 + 4 * num) {
                        for (int i = 20 + 4 * num; i < eventLength; ++i) {
                            b.get();
                        }
                    }
                    camera.onPropertyDescChanged(property, values);
                    break;
                }
                default:
                    if (AppConfig.LOG && eventLength <= 50) {
                        PacketUtil.logHexdump(TAG, b.array(), b.position(), eventLength - 12);
                    }
                    skip(b, eventLength - 12);
                }
                break;
            }
            case Event.EosBulbExposureTime: {
                int seconds = b.getInt();
                camera.onBulbExposureTime(seconds);
                break;
            }
            case Event.EosCameraStatus: {
                // 0 - capture stopped
                // 1 - capture started
                int status = b.getInt();
                camera.onEventCameraCapture(status != 0);
                break;
            }
            case Event.EosWillSoonShutdown: {
                /* int seconds = */b.getInt();
                //TODO
                break;
            }
            default:
                //                if (BuildConfig.LOG) {
                //                    PacketUtil.logHexdump(b.array(), b.position(), eventLength - 8);
                //                }
                skip(b, eventLength - 8);
                break;
            }
        }
    }

    private void skip(ByteBuffer b, int length) {
        for (int i = 0; i < length; ++i) {
            b.get();
        }
    }
}




Java Source Code List

com.remoteyourcam.usb.AbstractRycApplication.java
com.remoteyourcam.usb.AppConfig.java
com.remoteyourcam.usb.AppSettings.java
com.remoteyourcam.usb.GestureDetector.java
com.remoteyourcam.usb.MainActivity.java
com.remoteyourcam.usb.PictureView.java
com.remoteyourcam.usb.PropertyAdapter.java
com.remoteyourcam.usb.PropertyData.java
com.remoteyourcam.usb.PropertyDisplayer.java
com.remoteyourcam.usb.PropertyToggle.java
com.remoteyourcam.usb.RycApplication.java
com.remoteyourcam.usb.activities.AppSettingsActivity.java
com.remoteyourcam.usb.ptp.Camera.java
com.remoteyourcam.usb.ptp.EosCamera.java
com.remoteyourcam.usb.ptp.EosConstants.java
com.remoteyourcam.usb.ptp.FocusPoint.java
com.remoteyourcam.usb.ptp.NikonCamera.java
com.remoteyourcam.usb.ptp.PacketUtil.java
com.remoteyourcam.usb.ptp.PtpAction.java
com.remoteyourcam.usb.ptp.PtpCamera.java
com.remoteyourcam.usb.ptp.PtpConstants.java
com.remoteyourcam.usb.ptp.PtpPropertyHelper.java
com.remoteyourcam.usb.ptp.PtpService.java
com.remoteyourcam.usb.ptp.PtpUsbConnection.java
com.remoteyourcam.usb.ptp.PtpUsbService.java
com.remoteyourcam.usb.ptp.WorkerNotifier.java
com.remoteyourcam.usb.ptp.commands.CloseSessionCommand.java
com.remoteyourcam.usb.ptp.commands.Command.java
com.remoteyourcam.usb.ptp.commands.GetDeviceInfoCommand.java
com.remoteyourcam.usb.ptp.commands.GetDevicePropDescCommand.java
com.remoteyourcam.usb.ptp.commands.GetDevicePropValueCommand.java
com.remoteyourcam.usb.ptp.commands.GetObjectCommand.java
com.remoteyourcam.usb.ptp.commands.GetObjectHandlesCommand.java
com.remoteyourcam.usb.ptp.commands.GetObjectInfoCommand.java
com.remoteyourcam.usb.ptp.commands.GetStorageIdsCommand.java
com.remoteyourcam.usb.ptp.commands.GetStorageInfoCommand.java
com.remoteyourcam.usb.ptp.commands.GetStorageInfosAction.java
com.remoteyourcam.usb.ptp.commands.GetThumb.java
com.remoteyourcam.usb.ptp.commands.InitiateCaptureCommand.java
com.remoteyourcam.usb.ptp.commands.OpenSessionCommand.java
com.remoteyourcam.usb.ptp.commands.RetrieveAddedObjectInfoAction.java
com.remoteyourcam.usb.ptp.commands.RetrieveImageAction.java
com.remoteyourcam.usb.ptp.commands.RetrieveImageInfoAction.java
com.remoteyourcam.usb.ptp.commands.RetrievePictureAction.java
com.remoteyourcam.usb.ptp.commands.SetDevicePropValueCommand.java
com.remoteyourcam.usb.ptp.commands.SimpleCommand.java
com.remoteyourcam.usb.ptp.commands.eos.EosCommand.java
com.remoteyourcam.usb.ptp.commands.eos.EosEventCheckCommand.java
com.remoteyourcam.usb.ptp.commands.eos.EosGetLiveViewPictureCommand.java
com.remoteyourcam.usb.ptp.commands.eos.EosOpenSessionAction.java
com.remoteyourcam.usb.ptp.commands.eos.EosSetExtendedEventInfoCommand.java
com.remoteyourcam.usb.ptp.commands.eos.EosSetLiveViewAction.java
com.remoteyourcam.usb.ptp.commands.eos.EosSetPcModeCommand.java
com.remoteyourcam.usb.ptp.commands.eos.EosSetPropertyCommand.java
com.remoteyourcam.usb.ptp.commands.eos.EosTakePictureCommand.java
com.remoteyourcam.usb.ptp.commands.nikon.NikonAfDriveCommand.java
com.remoteyourcam.usb.ptp.commands.nikon.NikonAfDriveDeviceReadyCommand.java
com.remoteyourcam.usb.ptp.commands.nikon.NikonCloseSessionAction.java
com.remoteyourcam.usb.ptp.commands.nikon.NikonCommand.java
com.remoteyourcam.usb.ptp.commands.nikon.NikonEventCheckCommand.java
com.remoteyourcam.usb.ptp.commands.nikon.NikonGetLiveViewImageAction.java
com.remoteyourcam.usb.ptp.commands.nikon.NikonGetLiveViewImageCommand.java
com.remoteyourcam.usb.ptp.commands.nikon.NikonGetVendorPropCodesCommand.java
com.remoteyourcam.usb.ptp.commands.nikon.NikonOpenSessionAction.java
com.remoteyourcam.usb.ptp.commands.nikon.NikonStartLiveViewAction.java
com.remoteyourcam.usb.ptp.commands.nikon.NikonStopLiveViewAction.java
com.remoteyourcam.usb.ptp.model.DeviceInfo.java
com.remoteyourcam.usb.ptp.model.DevicePropDesc.java
com.remoteyourcam.usb.ptp.model.LiveViewData.java
com.remoteyourcam.usb.ptp.model.ObjectInfo.java
com.remoteyourcam.usb.ptp.model.StorageInfo.java
com.remoteyourcam.usb.util.DimenUtil.java
com.remoteyourcam.usb.util.NotificationIds.java
com.remoteyourcam.usb.util.PackageUtil.java
com.remoteyourcam.usb.view.AspectRatioImageView.java
com.remoteyourcam.usb.view.BaseFragment.java
com.remoteyourcam.usb.view.GalleryAdapter.java
com.remoteyourcam.usb.view.GalleryFragment.java
com.remoteyourcam.usb.view.PictureFragment.java
com.remoteyourcam.usb.view.SessionActivity.java
com.remoteyourcam.usb.view.SessionFragment.java
com.remoteyourcam.usb.view.SessionView.java
com.remoteyourcam.usb.view.StorageAdapter.java
com.remoteyourcam.usb.view.TabletSessionFragment.java
com.remoteyourcam.usb.view.ThumbnailAdapter.java
com.remoteyourcam.usb.view.WebViewDialogFragment.java