/* * Copyright (C) 2010 The Android Open Source Project * * 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 android.media.videoeditor; import android.graphics.Rect; /** * This class represents a Ken Burns effect. * {@hide} */ public class EffectKenBurns extends Effect { /** * Instance variables */ private Rect mStartRect; private Rect mEndRect; /** * Objects of this type cannot be instantiated by using the default * constructor */ @SuppressWarnings("unused") private EffectKenBurns() { this(null, null, null, null, 0, 0); } /** * Constructor * * @param mediaItem The media item owner * @param effectId The effect id * @param startRect The start rectangle * @param endRect The end rectangle * @param startTimeMs The start time * @param durationMs The duration of the Ken Burns effect in milliseconds */ public EffectKenBurns(MediaItem mediaItem, String effectId, Rect startRect, Rect endRect, long startTimeMs, long durationMs) { super(mediaItem, effectId, startTimeMs, durationMs); if ( (startRect.width() <= 0) || (startRect.height() <= 0) ) { throw new IllegalArgumentException("Invalid Start rectangle"); } if ( (endRect.width() <= 0) || (endRect.height() <= 0) ) { throw new IllegalArgumentException("Invalid End rectangle"); } mStartRect = startRect; mEndRect = endRect; } /** * Get the start rectangle. * * @return The start rectangle */ public Rect getStartRect() { return mStartRect; } /** * Get the end rectangle. * * @return The end rectangle */ public Rect getEndRect() { return mEndRect; } /** * Get the KenBurn effect start and end rectangle coordinates * @param start The rect object to be populated with start * rectangle coordinates * * @param end The rect object to be populated with end * rectangle coordinates */ void getKenBurnsSettings(Rect start, Rect end) { start.left = getStartRect().left; start.top = getStartRect().top; start.right = getStartRect().right; start.bottom = getStartRect().bottom; end.left = getEndRect().left; end.top = getEndRect().top; end.right = getEndRect().right; end.bottom = getEndRect().bottom; } }