1fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng/* 2fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * Copyright (C) 2011 The Android Open Source Project 3fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * 4fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * Licensed under the Apache License, Version 2.0 (the "License"); 5fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * you may not use this file except in compliance with the License. 6fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * You may obtain a copy of the License at 7fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * 8fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * http://www.apache.org/licenses/LICENSE-2.0 9fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * 10fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * Unless required by applicable law or agreed to in writing, software 11fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * distributed under the License is distributed on an "AS IS" BASIS, 12fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * See the License for the specific language governing permissions and 14fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * limitations under the License. 15fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng */ 16fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng 17fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Chengpackage com.android.videoeditor.widgets; 18fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng 19fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Chengimport com.android.videoeditor.service.MovieMediaItem; 20fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng 21fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng/** 22fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * Listener that listens to state changes of {@link MediaLinearLayout}. 23fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng */ 24fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Chengpublic interface MediaLinearLayoutListener { 25fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng /** 26fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * Request scrolling by an offset amount 27fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * 28fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * @param scrollBy The amount to scroll 29fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * @param smooth true to scroll smoothly 30fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng */ 31fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng void onRequestScrollBy(int scrollBy, boolean smooth); 32fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng 33fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng /** 34fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * Request scrolling to a specified time position 35fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * 36fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * @param scrollToTime The scroll position 37fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * @param smooth true to scroll smoothly 38fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng */ 39fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng void onRequestMovePlayhead(long scrollToTime, boolean smooth); 40fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng 41fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng /** 42fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * Add a new media item 43fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * 44fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * @param afterMediaItemId Add media item after this media item id 45fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng */ 46fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng void onAddMediaItem(String afterMediaItemId); 47fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng 48fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng /** 49fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * A media item enters trimming mode 50fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * 51fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * @param mediaItem The media item 52fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng */ 53fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng void onTrimMediaItemBegin(MovieMediaItem mediaItem); 54fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng 55fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng /** 56fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * A media item is being trimmed 57fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * 58fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * @param mediaItem The media item 59fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * @param timeMs The time where the trim occurs 60fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng */ 61fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng void onTrimMediaItem(MovieMediaItem mediaItem, long timeMs); 62fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng 63fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng /** 64fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * A media has been trimmed 65fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * 66fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * @param mediaItem The media item 67fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng * @param timeMs The time where the trim occurs 68fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng */ 69fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng void onTrimMediaItemEnd(MovieMediaItem mediaItem, long timeMs); 70fe7b065c18808ac3bd15ea5a1248b3af66b50fb7Shih-chia Cheng} 71