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