⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cwavloader.cpp

📁 在symbian中
💻 CPP
字号:
/*
 * ======================================================================
 *  Name     : CWavLoader.cpp
 *  Part of  : SoundMixer
 *  Created  : 03/30/2006 by Forum Nokia
 *  Description:
 *     This is the project specification file for SoundMixer.
 *  Version  : 2.0.0
 *  Copyright: Forum Nokia
 * ======================================================================
 */

#include "CWavLoader.h"
#include <e32svr.h>
#include <f32file.h>
#include <aknutils.h>


CWavLoader* CWavLoader::NewL()
  {
  CWavLoader* self = NewLC();
  CleanupStack::Pop( self );
  return self;
  }


CWavLoader* CWavLoader::NewLC()
  {
  CWavLoader* self = new( ELeave )CWavLoader();
  CleanupStack::PushL( self );
  self->ConstructL();
  return self;
  }


CWavLoader::~CWavLoader()
  {
  }


CWavLoader::CWavLoader()
  {
  }


void CWavLoader::ConstructL()
  {
  }


TSample CWavLoader::LoadL( const TFileName& aFileName )
  {
  TFileName name( aFileName );
  
#ifndef __SERIES60_30__
  CompleteWithAppPath( name );
  // windows build wants to install apps on rom drive ( "z:\" )
  // but we want the data from "c:\" instead
#ifdef __WINS__
  name[ 0 ] = 'C';
#endif  // __WINS__
#endif  // !__SERIES60_30__
  
  RFs fs;
  User::LeaveIfError(fs.Connect());
  RFile file;
  CleanupClosePushL( fs );
  CleanupClosePushL( file );
  User::LeaveIfError( file.Open( fs, name, EFileStream | EFileRead ) );
  TInt size;
  User::LeaveIfError( file.Size( size ) );

  TUint8* tbuf = new( ELeave )TUint8[ size ];
  CleanupStack::PushL(tbuf);
  
  TPtr8 ptr( (TUint8*)tbuf, size );
  User::LeaveIfError( file.Read( ptr ) ); 
  
  TInt16* buf = new( ELeave )TInt16[ size ];
  TInt i;
  for( i=0; i<size; i++ )
    {
    TInt v = tbuf[ i ];
    v -= 128;
    buf[ i ] = ( TInt16 )( v * 256 );
    }

  CleanupStack::PopAndDestroy( 3 ); // fs, file
  
  TSample sample;
  sample.iData = buf;
  sample.iLength = size;
  sample.iRepStart = 0;
  sample.iRepEnd = 0;
  
  return sample;
  }
  
// End of File

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -