01: /*
02: * Copyright 1990-2006 Sun Microsystems, Inc. All Rights Reserved.
03: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
04: *
05: * This program is free software; you can redistribute it and/or
06: * modify it under the terms of the GNU General Public License version
07: * 2 only, as published by the Free Software Foundation.
08: *
09: * This program is distributed in the hope that it will be useful, but
10: * WITHOUT ANY WARRANTY; without even the implied warranty of
11: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12: * General Public License version 2 for more details (a copy is
13: * included at /legal/license.txt).
14: *
15: * You should have received a copy of the GNU General Public License
16: * version 2 along with this work; if not, write to the Free Software
17: * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
18: * 02110-1301 USA
19: *
20: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
21: * Clara, CA 95054 or visit www.sun.com if you need additional
22: * information or have any questions.
23: */
24: package com.sun.mmedia.rtsp.protocol;
25:
26: import java.util.*;
27:
28: public class Message {
29: private byte data[];
30: private int type;
31: private Object parameter;
32:
33: public Message(byte data[]) {
34: this .data = data;
35:
36: parseData();
37: }
38:
39: private void parseData() {
40: String message = new String(data);
41:
42: int index = message.indexOf(' ');
43:
44: message = message.substring(0, index);
45:
46: type = new MessageType(message).getType();
47:
48: switch (type) {
49: case MessageType.DESCRIBE:
50: parameter = (Object) new DescribeMessage(data);
51: break;
52: case MessageType.SETUP:
53: parameter = (Object) new SetupMessage(data);
54: break;
55: case MessageType.PLAY:
56: parameter = (Object) new PlayMessage(data);
57: break;
58: case MessageType.PAUSE:
59: parameter = (Object) new PauseMessage(data);
60: break;
61: case MessageType.TEARDOWN:
62: parameter = (Object) new TeardownMessage(data);
63: break;
64: case MessageType.OPTIONS:
65: parameter = (Object) new OptionsMessage(data);
66: break;
67: case MessageType.RESPONSE:
68: parameter = (Object) new ResponseMessage(data);
69: break;
70: case MessageType.SET_PARAMETER:
71: parameter = (Object) new SetParameterMessage(data);
72: break;
73: default:
74: System.out.println("Unknown msg type: " + type);
75: break;
76: }
77: }
78:
79: public int getType() {
80: return type;
81: }
82:
83: public Object getParameter() {
84: return parameter;
85: }
86: }
|