首页 > 代码库 > AndroidFM模块学习之四源码分析(九)
AndroidFM模块学习之四源码分析(九)
接上一篇,接下来我们看看android\vendor\qcom\opensource\fm\fmapp2\src\com\caf\fmradio\PresetList.java
定义一个List列表List<PresetStation>mPresetList = new ArrayList<PresetStation>();
同步电台数量
public synchronized int getStationCount(){ return mPresetList.size(); }
获得电台名字
public synchronized String getStationName(int stationNum){ String name = ""; if (mPresetList.size() > stationNum){ name = mPresetList.get(stationNum).getName(); } return name; }
获取电台频率
public synchronized int getStationFrequency(int stationNum){ int frequency = 102100; if (mPresetList.size() > stationNum){ frequency = mPresetList.get(stationNum).getFrequency(); } return frequency; }
设置电台频率
public synchronized void setStationFrequency(int stationNum, int frequency){ PresetStation mStation = mPresetList.get(stationNum); mStation.setFrequency(frequency); }
设置电台名字
public synchronized void setStationName(int stationNum, String name){ PresetStation mStation = mPresetList.get(stationNum); mStation.setName(name); }
通过ID得到电台
public synchronized PresetStation getStationFromIndex(int index){ int totalPresets = mPresetList.size(); PresetStation station = null; if (index < totalPresets) { station = mPresetList.get(index); } return station; }
通过频率得到电台
public synchronized PresetStation getStationFromFrequency(int frequency){ int totalPresets = mPresetList.size(); for (int presetNum = 0; presetNum < totalPresets; presetNum++ ) { PresetStation station = mPresetList.get(presetNum); if (station != null) { if(frequency == station.getFrequency()) { return station; } } } return null; }
添加电台名字和频率
public synchronized PresetStation addStation(String name, int freq){ PresetStation addStation = new PresetStation(name, freq); if(addStation != null) { mPresetList.add(addStation); } return addStation; }
添加电台
public synchronized PresetStation addStation(PresetStation station){ PresetStation addStation = null; if(station != null) { addStation = new PresetStation (station); mPresetList.add(addStation); } return addStation; }
删除电台
public synchronized void removeStation(int index){ int totalPresets = mPresetList.size(); if((index >= 0) && (index < totalPresets)) { mPresetList.remove(index); } }
清除调频列表
public synchronized void clear(){ mPresetList.clear(); }
/ *如果用户选择一个新电台在这个列表中,将调用这个函数来更新列表。
* /
public synchronized boolean setSelectedStation(PresetStation selectStation){ int totalPresets = mPresetList.size(); if (selectStation != null) { for (int presetNum = 0; presetNum < totalPresets; presetNum++ ) { PresetStation station = mPresetList.get(presetNum); if (station != null) { if(selectStation.getFrequency() == station.getFrequency()) { if(selectStation.getName().equalsIgnoreCase(station.getName())) { mCurrentStation = presetNum; return true; } } } } } return false; }
/ *检查是否有相同电台存在在列表中
* /
public synchronized boolean sameStationExists(PresetStation compareStation){ int totalPresets = mPresetList.size(); if (compareStation != null) { for (int presetNum = 0; presetNum < totalPresets; presetNum++ ) { PresetStation station = mPresetList.get(presetNum); if (station != null) { if(compareStation.getFrequency() == station.getFrequency()) { return true; } } } } return false; }
/ *如果用户在这个列表中选择一个新电台,将调用这个例程
*更新列表。
* /
public synchronized boolean setSelectedStation(int stationIndex){ boolean foundStation = false; int totalPresets = mPresetList.size(); if (stationIndex < totalPresets) { mCurrentStation = stationIndex; foundStation = true; } return foundStation; }
选择电台
<pre name="code" class="java">public synchronized void selectStation(PresetStation selectStation){ int totalPresets = mPresetList.size(); if (selectStation != null) { for (int presetNum = 0; presetNum < totalPresets; presetNum++ ) { PresetStation station = mPresetList.get(presetNum); if (station != null) { if(selectStation.getFrequency() == station.getFrequency()) { mCurrentStation = presetNum; return; } } } } }
获取选择的站
public synchronized PresetStation getSelectedStation(){ int totalPresets = mPresetList.size(); PresetStation station = null; if (mCurrentStation < totalPresets) { station = mPresetList.get(mCurrentStation); } return station; }
选择下一个电台
public synchronized PresetStation selectNextStation(){ int totalPresets = mPresetList.size(); PresetStation station = null; if(totalPresets > 0) { mCurrentStation ++; if ( (mCurrentStation) >= totalPresets) { mCurrentStation =0; } station = mPresetList.get(mCurrentStation); } return station; }
选择上一个电台
public synchronized PresetStation selectPrevStation(){ int totalPresets = mPresetList.size(); PresetStation station = null; if(totalPresets > 0) { mCurrentStation --; if ( mCurrentStation < 0) { mCurrentStation = totalPresets-1; } station = mPresetList.get(mCurrentStation); } return station; }
AndroidFM模块学习之四源码分析(九)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。