/* * Copyright (C) 2013-2014 Sony Computer Science Laboratories, Inc. All Rights Reserved. * Copyright (C) 2014 Sony Corporation. All Rights Reserved. */ package com.sonycsl.Kadecot.device.echo.generator; import android.content.Context; import com.sonycsl.Kadecot.core.Dbg; import com.sonycsl.Kadecot.device.DeviceDatabase; import com.sonycsl.Kadecot.device.DeviceManager; import com.sonycsl.Kadecot.device.echo.EchoDeviceData; import com.sonycsl.Kadecot.device.echo.EchoDeviceDatabase; import com.sonycsl.Kadecot.device.echo.EchoManager; import com.sonycsl.echo.EchoUtils; import org.json.JSONObject; public class EchoHandler { protected final Context mContext; private static EchoHandler sInstance = null; private EchoDeviceDatabase mEchoDeviceDatabase; private EchoManager mEchoManager; private EchoHandler(Context context) { mContext = context.getApplicationContext(); } public static synchronized EchoHandler getInstance(Context context) { if (sInstance == null) { sInstance = new EchoHandler(context); sInstance.init(); } return sInstance; } protected void init() { mEchoDeviceDatabase = EchoDeviceDatabase.getInstance(mContext); mEchoManager = EchoManager.getInstance(mContext); } // 返り値はinstanceCode.0はfault // EchoDeviceAgentを作ってDatabaseに加える public byte generateDevice(short echoClassCode, long generatorId) { Dbg.print(generatorId); return mEchoManager.generateDevice(echoClassCode, generatorId); } public void addEchoDeviceGenerator(EchoDeviceGenerator gen) { mEchoManager.addEchoDeviceGenerator(gen); } public EchoDeviceData getDeviceData(String nickname) { return mEchoDeviceDatabase.getDeviceData(DeviceDatabase.getInstance(mContext) .getDeviceData(nickname)); } public EchoDeviceData getDeviceData(long deviceId) { return mEchoDeviceDatabase.getDeviceData(DeviceDatabase.getInstance(mContext) .getDeviceData(deviceId)); } public EchoDeviceData getLocalDeviceData(int echoObjectCode) { return mEchoDeviceDatabase.getDeviceData(EchoDeviceDatabase.LOCAL_ADDRESS, EchoUtils .getEchoClassCodeFromObjectCode(echoObjectCode) & 0xFFFF, EchoUtils .getInstanceCodeFromObjectCode(echoObjectCode) & 0xFF); } public JSONObject getDeviceInfo(EchoDeviceData data) { return DeviceManager.getInstance(mContext).getDeviceInfo(data.deviceId, 0); } }