167f8e8bd8927f24147d7a1edd6ec3db1a54233b2Mike Lockwood/* 267f8e8bd8927f24147d7a1edd6ec3db1a54233b2Mike Lockwood * Copyright (C) 2014 The Android Open Source Project 367f8e8bd8927f24147d7a1edd6ec3db1a54233b2Mike Lockwood * 467f8e8bd8927f24147d7a1edd6ec3db1a54233b2Mike Lockwood * Licensed under the Apache License, Version 2.0 (the "License"); 567f8e8bd8927f24147d7a1edd6ec3db1a54233b2Mike Lockwood * you may not use this file except in compliance with the License. 667f8e8bd8927f24147d7a1edd6ec3db1a54233b2Mike Lockwood * You may obtain a copy of the License at 767f8e8bd8927f24147d7a1edd6ec3db1a54233b2Mike Lockwood * 867f8e8bd8927f24147d7a1edd6ec3db1a54233b2Mike Lockwood * http://www.apache.org/licenses/LICENSE-2.0 967f8e8bd8927f24147d7a1edd6ec3db1a54233b2Mike Lockwood * 1067f8e8bd8927f24147d7a1edd6ec3db1a54233b2Mike Lockwood * Unless required by applicable law or agreed to in writing, software 1167f8e8bd8927f24147d7a1edd6ec3db1a54233b2Mike Lockwood * distributed under the License is distributed on an "AS IS" BASIS, 1267f8e8bd8927f24147d7a1edd6ec3db1a54233b2Mike Lockwood * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1367f8e8bd8927f24147d7a1edd6ec3db1a54233b2Mike Lockwood * See the License for the specific language governing permissions and 1467f8e8bd8927f24147d7a1edd6ec3db1a54233b2Mike Lockwood * limitations under the License. 1567f8e8bd8927f24147d7a1edd6ec3db1a54233b2Mike Lockwood */ 1667f8e8bd8927f24147d7a1edd6ec3db1a54233b2Mike Lockwood 17b673770f7172d4fca9bc05de1f36bc53e93eb247Mike Lockwoodpackage android.media.midi; 1867f8e8bd8927f24147d7a1edd6ec3db1a54233b2Mike Lockwood 1967f8e8bd8927f24147d7a1edd6ec3db1a54233b2Mike Lockwood/** 2067f8e8bd8927f24147d7a1edd6ec3db1a54233b2Mike Lockwood * Interface provided by a device to allow attaching 2167f8e8bd8927f24147d7a1edd6ec3db1a54233b2Mike Lockwood * MidiReceivers to a MIDI device. 2267f8e8bd8927f24147d7a1edd6ec3db1a54233b2Mike Lockwood */ 233b7664589be22ddad34b72e11ced937d48660ebbMike Lockwoodabstract public class MidiSender { 247eb441cb4abcd3230a4d243469c5044f49e707c8Mike Lockwood 257eb441cb4abcd3230a4d243469c5044f49e707c8Mike Lockwood /** 267eb441cb4abcd3230a4d243469c5044f49e707c8Mike Lockwood * Connects a {@link MidiReceiver} to the sender 277eb441cb4abcd3230a4d243469c5044f49e707c8Mike Lockwood * 287eb441cb4abcd3230a4d243469c5044f49e707c8Mike Lockwood * @param receiver the receiver to connect 297eb441cb4abcd3230a4d243469c5044f49e707c8Mike Lockwood */ 307eb441cb4abcd3230a4d243469c5044f49e707c8Mike Lockwood public void connect(MidiReceiver receiver) { 317eb441cb4abcd3230a4d243469c5044f49e707c8Mike Lockwood if (receiver == null) { 327eb441cb4abcd3230a4d243469c5044f49e707c8Mike Lockwood throw new NullPointerException("receiver null in MidiSender.connect"); 337eb441cb4abcd3230a4d243469c5044f49e707c8Mike Lockwood } 347eb441cb4abcd3230a4d243469c5044f49e707c8Mike Lockwood onConnect(receiver); 357eb441cb4abcd3230a4d243469c5044f49e707c8Mike Lockwood } 367eb441cb4abcd3230a4d243469c5044f49e707c8Mike Lockwood 377eb441cb4abcd3230a4d243469c5044f49e707c8Mike Lockwood /** 387eb441cb4abcd3230a4d243469c5044f49e707c8Mike Lockwood * Disconnects a {@link MidiReceiver} from the sender 397eb441cb4abcd3230a4d243469c5044f49e707c8Mike Lockwood * 407eb441cb4abcd3230a4d243469c5044f49e707c8Mike Lockwood * @param receiver the receiver to disconnect 417eb441cb4abcd3230a4d243469c5044f49e707c8Mike Lockwood */ 427eb441cb4abcd3230a4d243469c5044f49e707c8Mike Lockwood public void disconnect(MidiReceiver receiver) { 437eb441cb4abcd3230a4d243469c5044f49e707c8Mike Lockwood if (receiver == null) { 447eb441cb4abcd3230a4d243469c5044f49e707c8Mike Lockwood throw new NullPointerException("receiver null in MidiSender.disconnect"); 457eb441cb4abcd3230a4d243469c5044f49e707c8Mike Lockwood } 467eb441cb4abcd3230a4d243469c5044f49e707c8Mike Lockwood onDisconnect(receiver); 477eb441cb4abcd3230a4d243469c5044f49e707c8Mike Lockwood } 487eb441cb4abcd3230a4d243469c5044f49e707c8Mike Lockwood 4978beecffc3ea477b55b65d530e4868dd44b5e71bMike Lockwood /** 5078beecffc3ea477b55b65d530e4868dd44b5e71bMike Lockwood * Called to connect a {@link MidiReceiver} to the sender 5178beecffc3ea477b55b65d530e4868dd44b5e71bMike Lockwood * 5278beecffc3ea477b55b65d530e4868dd44b5e71bMike Lockwood * @param receiver the receiver to connect 5378beecffc3ea477b55b65d530e4868dd44b5e71bMike Lockwood */ 547eb441cb4abcd3230a4d243469c5044f49e707c8Mike Lockwood abstract public void onConnect(MidiReceiver receiver); 5578beecffc3ea477b55b65d530e4868dd44b5e71bMike Lockwood 5678beecffc3ea477b55b65d530e4868dd44b5e71bMike Lockwood /** 5778beecffc3ea477b55b65d530e4868dd44b5e71bMike Lockwood * Called to disconnect a {@link MidiReceiver} from the sender 5878beecffc3ea477b55b65d530e4868dd44b5e71bMike Lockwood * 5978beecffc3ea477b55b65d530e4868dd44b5e71bMike Lockwood * @param receiver the receiver to disconnect 6078beecffc3ea477b55b65d530e4868dd44b5e71bMike Lockwood */ 617eb441cb4abcd3230a4d243469c5044f49e707c8Mike Lockwood abstract public void onDisconnect(MidiReceiver receiver); 6267f8e8bd8927f24147d7a1edd6ec3db1a54233b2Mike Lockwood} 63