package jp.kshoji.blemidi.service;
import android.annotation.TargetApi;
import android.content.Intent;
import android.os.Binder;
import android.os.Build;
import android.os.IBinder;
import android.support.annotation.NonNull;
import jp.kshoji.blemidi.peripheral.BleMidiPeripheralProvider;
/**
* Service for BLE MIDI Peripheral
*
* @author K.Shoji
*/
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public final class BleMidiPeripheralService extends AbstractBleMidiService {
private BleMidiPeripheralProvider midiProvider = null;
/**
* Binder for this Service
*/
public class LocalBinder extends Binder {
/**
* Get the Service
*
* @return the Service
*/
@NonNull
public BleMidiPeripheralService getService() {
return BleMidiPeripheralService.this;
}
}
private final IBinder binder = new LocalBinder();
@Override
public IBinder onBind(Intent intent) {
return binder;
}
@Override
protected void onStart() {
midiProvider = new BleMidiPeripheralProvider(this);
midiProvider.setOnMidiDeviceAttachedListener(serviceMidiDeviceAttachedListener);
midiProvider.setOnMidiDeviceDetachedListener(serviceMidiDeviceDetachedListener);
}
@Override
public void onDestroy() {
super.onDestroy();
stopAdvertising();
}
/**
* Starts advertising
*/
public void startAdvertising() {
if (midiProvider != null) {
midiProvider.startAdvertising();
}
}
/**
* Stops advertising
*/
public void stopAdvertising() {
if (midiProvider != null) {
midiProvider.stopAdvertising();
}
}
}