01: /*
02: *
03: * Copyright 1990-2007 Sun Microsystems, Inc. All Rights Reserved.
04: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
05: *
06: * This program is free software; you can redistribute it and/or
07: * modify it under the terms of the GNU General Public License version
08: * 2 only, as published by the Free Software Foundation.
09: *
10: * This program is distributed in the hope that it will be useful, but
11: * WITHOUT ANY WARRANTY; without even the implied warranty of
12: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13: * General Public License version 2 for more details (a copy is
14: * included at /legal/license.txt).
15: *
16: * You should have received a copy of the GNU General Public License
17: * version 2 along with this work; if not, write to the Free Software
18: * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
19: * 02110-1301 USA
20: *
21: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
22: * Clara, CA 95054 or visit www.sun.com if you need additional
23: * information or have any questions.
24: */
25:
26: package com.sun.mmedia.protocol;
27:
28: import javax.microedition.media.Controllable;
29: import javax.microedition.media.Control;
30: import java.io.IOException;
31:
32: abstract public class DataSource implements Controllable {
33: private String sourceLocator;
34:
35: public DataSource(String locator) {
36: sourceLocator = locator;
37: }
38:
39: public String getLocator() {
40: return sourceLocator;
41: }
42:
43: public abstract String getContentType();
44:
45: public abstract void connect() throws IOException;
46:
47: public abstract void disconnect();
48:
49: public abstract void start() throws IOException;
50:
51: public abstract void stop() throws IOException;
52:
53: public abstract SourceStream[] getStreams();
54:
55: // These two methods are declared here (Controllable interface)
56: // because of a feature in KVM/VM when code is compiled with JDK 1.4
57: // Need to declare these abstract
58:
59: public abstract Control[] getControls();
60:
61: public abstract Control getControl(String controlType);
62:
63: }
|