/* * Copyright (C) 2015 Iasc CHEN * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package me.iasc.microduino.bluevoice.db; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.util.Log; import java.util.ArrayList; import java.util.List; public class VoiceCmdDAO extends BleDBDAO { private final static String TAG = VoiceCmdDAO.class.getSimpleName(); private static final String WHERE_ID_EQUALS = DataBaseHelper.C_ID + " =?"; public VoiceCmdDAO(Context context) { super(context); } public long save(VoiceCmdModel cmd) { ContentValues values = new ContentValues(); values.put(DataBaseHelper.C_CODE, cmd.getCode()); values.put(DataBaseHelper.C_VOICE, cmd.getVoice()); values.put(DataBaseHelper.C_NAME, cmd.getName()); long result = database.insert(DataBaseHelper.VOICE_CMD_TABLE, null, values); Log.d("VoiceCmdDAO New Result:", "=" + result); return result; } public long update(VoiceCmdModel cmd) { ContentValues values = new ContentValues(); values.put(DataBaseHelper.C_CODE, cmd.getCode()); values.put(DataBaseHelper.C_VOICE, cmd.getVoice()); values.put(DataBaseHelper.C_NAME, cmd.getName()); long result = database.update(DataBaseHelper.VOICE_CMD_TABLE, values, WHERE_ID_EQUALS, new String[]{String.valueOf(cmd.getId())}); Log.d("VoiceCmdDAO Update Result:", "=" + result); return result; } public int deleteVoiceCmd(VoiceCmdModel cmd) { return database.delete(DataBaseHelper.VOICE_CMD_TABLE, WHERE_ID_EQUALS, new String[]{cmd.getId() + ""}); } public void deleteAll() { List<VoiceCmdModel> items = getVoiceCmds(); for (VoiceCmdModel _i : items) { deleteVoiceCmd(_i); } } public List<VoiceCmdModel> getVoiceCmds() { List<VoiceCmdModel> cmds = new ArrayList<VoiceCmdModel>(); Cursor cursor = database.query(DataBaseHelper.VOICE_CMD_TABLE, new String[]{DataBaseHelper.C_ID, DataBaseHelper.C_CODE, DataBaseHelper.C_VOICE, DataBaseHelper.C_NAME}, null, null, null, null, DataBaseHelper.C_CODE + " ASC"); while (cursor.moveToNext()) { int i = 0; VoiceCmdModel cmd = new VoiceCmdModel(); int id = cursor.getInt(i++); // Log.d(TAG, "user.id = " + id); cmd.setId(id); cmd.setCode(cursor.getString(i++)); cmd.setVoice(cursor.getString(i++)); cmd.setName(cursor.getString(i++)); Log.d(TAG, cmd.toString()); cmds.add(cmd); } return cmds; } public VoiceCmdModel getDummyVoiceCmd() { VoiceCmdModel ret = new VoiceCmdModel(); ret.setCode("ff"); ret.setVoice("pin yin"); ret.setName("名称"); return ret; } static String[][] A0_CMDS = { {"a1", "kai men", "开门"}, {"a2", "guan men", "关门"}, {"b1", "kai deng", "开灯"}, {"b2", "guan deng", "关灯"}, {"c1", "se diao yi", "灯,暖色调"}, {"c2", "se diao er", "灯,冷色调"}, {"d1", "dan se yi", "灯,红"}, {"d2", "dan se er", "灯,橙"}, {"d3", "dan se san", "灯,黄"}, {"d4", "dan se si", "灯,绿"}, {"d5", "dan se wu", "灯,青"}, {"d6", "dan se liu", "灯,蓝"}, {"d7", "dan se qi", "灯,紫"}, {"e1", "duo cai yi", "灯,多彩1"}, {"e2", "duo cai er", "灯,多彩2"}, {"f1", "mei ke", "美科"} //触发口令,用来唤醒语音识别模块 }; public void loadSamples() { VoiceCmdModel _cmd = null; for (int i = 0; i < A0_CMDS.length; i++) { _cmd = new VoiceCmdModel(); _cmd.setCode(A0_CMDS[i][0]); _cmd.setVoice(A0_CMDS[i][1]); _cmd.setName(A0_CMDS[i][2]); save(_cmd); } } }