当前位置: 首页>>代码示例>>C++>>正文


C++ audio_format类代码示例

本文整理汇总了C++中audio_format的典型用法代码示例。如果您正苦于以下问题:C++ audio_format类的具体用法?C++ audio_format怎么用?C++ audio_format使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了audio_format类的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: audio_membuffer

 audio_membuffer(audio_format aud_fmt, float seconds) : audio_data(0),
                                                        aud_info(aud_fmt),
                                                        buf_size(0),
                                                        init_size(0)
 {
     /* Allocs memory for audio recording the specified number of seconds */
     init_size = (unsigned int)((float)aud_info.byte_rate() * seconds <= 0 ? 1 : seconds);
     alloc_mem_(init_size);
 }
开发者ID:GYGit,项目名称:reactos,代码行数:9,代码来源:audio_membuffer.hpp

示例2: create_buffer

		// directsound_audio_stream::create_buffer()
		void directsound_audio_stream::create_buffer(directsound_instance& instance, audio_format const& format) {
			WAVEFORMATEX waveFormat;
			waveFormat.wFormatTag = WAVE_FORMAT_PCM;
			waveFormat.nChannels = format.channels();
			waveFormat.nSamplesPerSec = format.frequency();
			waveFormat.nAvgBytesPerSec = format.bytes_per_second();
			waveFormat.nBlockAlign = static_cast<WORD>(format.bytes_per_frame());
			waveFormat.wBitsPerSample = format.bits_per_sample();
			waveFormat.cbSize = 0;

			DSBUFFERDESC bufferDesc;
			bufferDesc.dwSize = sizeof(DSBUFFERDESC);
			bufferDesc.dwFlags = DSBCAPS_GLOBALFOCUS | DSBCAPS_GETCURRENTPOSITION2;
			bufferDesc.dwReserved = 0;
			bufferDesc.dwBufferBytes = static_cast<DWORD>( BufferSize_seconds.count() * format.bytes_per_second() );
			bufferDesc.guid3DAlgorithm = DS3DALG_DEFAULT;
			bufferDesc.lpwfxFormat = &waveFormat;
			LPDIRECTSOUNDBUFFER ptr = nullptr;
			if( FAILED(instance.ptr()->CreateSoundBuffer(&bufferDesc, &ptr, nullptr)) ) {
				throw directsound_exception{};
			}
			ptr->SetFormat(&waveFormat);
			_buffer = buffer_ptr{ ptr };

			clear_entire_buffer();
			_state = audio_stream_state::ready;
		}
开发者ID:fr00b0,项目名称:chirp,代码行数:28,代码来源:directsound_backend.cpp

示例3: audio_membuffer

 audio_membuffer( audio_format aud_fmt, unsigned int seconds )
     : audio_data( 0 ), aud_info( aud_fmt ), buf_size( 0 ),
     init_size( 0 )
 {  
     
     //
     // Allocs memory for audio recording
     // the specified number of seconds.
     //
     init_size = aud_info.byte_rate() * seconds;
     alloc_mem_( init_size );
 
 }
开发者ID:HBelusca,项目名称:NasuTek-Odyssey,代码行数:13,代码来源:audio_membuffer.hpp

示例4: samplevalue_max

        unsigned int samplevalue_max( void )
        {

            if ( aud_info.bits() == 16 )
                return (unsigned int )65535;

            else if ( aud_info.bits() == 8 )
                return (unsigned int)255;

            else 
                return 0;
        }
开发者ID:HBelusca,项目名称:NasuTek-Odyssey,代码行数:12,代码来源:audio_wavein.hpp

示例5: samples_received

        unsigned int samples_received( void ) const
        {


            return ( aud_info.samples_in_bytes( bytes_received ));

        }
开发者ID:HBelusca,项目名称:NasuTek-Odyssey,代码行数:7,代码来源:audio_membuffer.hpp

示例6: tot_samples_buf

        unsigned tot_samples_buf( void )
        {


            return aud_info.samples_in_bytes( mb_size );


        }
开发者ID:HBelusca,项目名称:NasuTek-Odyssey,代码行数:8,代码来源:audio_wavein.hpp

示例7: nsample

        unsigned int nsample ( unsigned int nsamp )
        {


            unsigned int svalue;



            if ( aud_info.bits() == 16 )
                svalue = ( unsigned int )  abs( *(( short * ) (main_buffer + aud_info.bytes_in_samples( nsamp ))));
            else if ( aud_info.bits() == 8 )
               svalue = (unsigned int)(( ptrdiff_t ) *(main_buffer + aud_info.bytes_in_samples( nsamp )));

            else 
                svalue = 0;

            return svalue;

        }
开发者ID:HBelusca,项目名称:NasuTek-Odyssey,代码行数:19,代码来源:audio_wavein.hpp

示例8:

        audio_membuffer( void )
            : audio_data( 0 ), aud_info( _AUDIO_DEFAULT_FORMAT ),
            buf_size( 0 ), init_size( 0 )
        {  
            
            //
            // Allocs memory for at least 1 or some seconds
            // of recording.
            //
            init_size = ( unsigned int )
                (( float )aud_info.byte_rate() * _AUDIO_DEFAULT_BUFSECS );


            alloc_mem_( init_size );

        
        }
开发者ID:HBelusca,项目名称:NasuTek-Odyssey,代码行数:17,代码来源:audio_membuffer.hpp

示例9: total_samples

        unsigned int total_samples( void ) const
        {

            return ( aud_info.samples_in_seconds( fseconds_total() ));

        }
开发者ID:HBelusca,项目名称:NasuTek-Odyssey,代码行数:6,代码来源:audio_membuffer.hpp

示例10: fseconds_recorded

 //returns the float number of seconds
 //that has been recorded
 float fseconds_recorded( void ) const
 { return ( float )(( float ) bytes_received / 
                 ( float ) aud_info.byte_rate()); }
开发者ID:HBelusca,项目名称:NasuTek-Odyssey,代码行数:5,代码来源:audio_membuffer.hpp

示例11: fseconds_total

 //returns the float number of seconds
 //that the buffer can record
 float fseconds_total( void ) const
 { return ( float )(( float ) buf_size / 
                 ( float ) aud_info.byte_rate()); }
开发者ID:HBelusca,项目名称:NasuTek-Odyssey,代码行数:5,代码来源:audio_membuffer.hpp

示例12: seconds_recorded

 //returns the integer number of seconds
 //that the buffer can record
 unsigned int seconds_recorded( void ) const
 { return bytes_received / aud_info.byte_rate(); }
开发者ID:HBelusca,项目名称:NasuTek-Odyssey,代码行数:4,代码来源:audio_membuffer.hpp

示例13: seconds_total

 //returns the integer number of seconds
 //that the buffer can record
 unsigned int seconds_total( void ) const
 { return buf_size / aud_info.byte_rate(); }
开发者ID:HBelusca,项目名称:NasuTek-Odyssey,代码行数:4,代码来源:audio_membuffer.hpp


注:本文中的audio_format类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。