示例#1
0
void JpwordReader::upLevel(){
	AudioInfo* info = current();
	if (info != NULL && info->getLevel() + 1 >= MAX_LEVEL) {
		levels.remove(*info);
		info->setLevel(info->getLevel()+1);
		levels.add(*info);
		mCourseState.setCurrentToLast(levelList().size());
		freshView();
	}
}
already_AddRefed<MediaDataDecoder>
AgnosticDecoderModule::CreateAudioDecoder(const AudioInfo& aConfig,
                                          FlushableTaskQueue* aAudioTaskQueue,
                                          MediaDataDecoderCallback* aCallback)
{
  RefPtr<MediaDataDecoder> m;

  if (VorbisDataDecoder::IsVorbis(aConfig.mMimeType)) {
    m = new VorbisDataDecoder(*aConfig.GetAsAudioInfo(),
                              aAudioTaskQueue,
                              aCallback);
  } else if (OpusDataDecoder::IsOpus(aConfig.mMimeType)) {
    m = new OpusDataDecoder(*aConfig.GetAsAudioInfo(),
                            aAudioTaskQueue,
                            aCallback);
  }

  return m.forget();
}
示例#3
0
void LevelsInfo::add(AudioInfo& ai){
	vector<AudioInfo>& auL = levelListMap[ai.getLevel()];
	auL.push_back(ai);

    vector<AudioInfo> & aL = levelList(-1);
	if(find(aL.begin(),aL.end(),ai)==aL.end())
    {
        levelList(-1).push_back(ai);
    }
}
already_AddRefed<MediaDataDecoder>
AgnosticDecoderModule::CreateAudioDecoder(const AudioInfo& aConfig,
                                          TaskQueue* aTaskQueue,
                                          MediaDataDecoderCallback* aCallback,
                                          DecoderDoctorDiagnostics* aDiagnostics)
{
  RefPtr<MediaDataDecoder> m;

  if (VorbisDataDecoder::IsVorbis(aConfig.mMimeType)) {
    m = new VorbisDataDecoder(*aConfig.GetAsAudioInfo(),
                              aTaskQueue,
                              aCallback);
  } else if (OpusDataDecoder::IsOpus(aConfig.mMimeType)) {
    m = new OpusDataDecoder(*aConfig.GetAsAudioInfo(),
                            aTaskQueue,
                            aCallback);
  } else if (WaveDataDecoder::IsWave(aConfig.mMimeType)) {
    m = new WaveDataDecoder(*aConfig.GetAsAudioInfo(), aCallback);
  }

  return m.forget();
}
示例#5
0
void LevelsInfo::remove(AudioInfo& ai){
	vector<AudioInfo> auL = levelListMap[ai.getLevel()];
    vector<AudioInfo>::iterator m = find(auL.begin(), auL.end(), ai);
    if(m==auL.end())
    {
        IOUtils::log("AudioInfo matched not found!");
    }else
    {
        auL.erase(m);
    }

	vector<AudioInfo> aL = levelList(-1);
    m = find(aL.begin(), aL.end(), ai);
    if(m==aL.end())
    {
        IOUtils::log("AudioInfo matched not found in ALL level list!");
    }else
    {
        //aL.erase(m);
    }
}
示例#6
0
void JpwordReader::loadMp3(LevelsInfo lvs, int courseNo){
	string path = CourseUtils::unzippedDirPath(courseNo);
	IOUtils::log("load mp3 from path " + path);
	vector<string> extnames;
	extnames.push_back("mp3");
	vector<string> fpsFound = IOUtils::findFiles(path,extnames);
	for (unsigned i = 0; i < fpsFound.size(); i++) {
		int cn = CourseUtils::courseNoOf(fpsFound[i]);
		int un = UnitUtils::unitNoOf(fpsFound[i]);
		//TODO FIX

		AudioInfo ai;
		ai.setMp3Path(fpsFound[i]);
		ai.setName(IOUtils::fileBaseName(fpsFound[i]));
		ai.setCourseNo(cn);
		ai.setUnitNo(un);
		ai.setLevel(0);
		lvs.add(ai);
	}
	//IOUtils::log("from path total " + infoList.size() + " mp3 loaded.");
}
示例#7
0
void JpwordReader::playMp3(){
	AudioInfo* info = current();
	if(info != NULL){
		mOsSupport.playMp3(info->getMp3Path());
	}
}