
- •Приложение Глобальные функции acmDriverAdd
- •AcmDriverEnum
- •AcmDriverEnumCallback
- •AcmDriverPriority
- •AcmDriverProc
- •AcmDriverRemove
- •AcmFilterChoose
- •AcmFilterChooseHookProc
- •AcmFilterEnum
- •AcmFilterEnumCallback
- •AcmFilterTagEnum
- •AcmFilterTagEnumCallback
- •AcmFormatChoose
- •AcmFormatChooseHookProc
- •AcmFormatEnum
- •AcmFormatEnumCallback
- •AcmFormatSuggest
- •AcmFormatTagDetails
- •AcmFormatTagEnum
- •AcmFormatTagEnumCallback
- •AcmMetrics
- •AcmStreamClose
- •AcmStreamConvert
- •AcmStreamConvertCallback
- •AcmStreamOpen
- •AcmStreamPrepareHeader
- •AcmStreamSize
- •AcmStreamUnprepareHeader
- •AfxGetApp
- •AfxGetInstanceHandle
- •AfxGetInstanceHandle
- •AuxGetDevCaps
- •AuxGetNumDevs
- •AuxGetVolume
- •AuxSetVolume
- •CoCreateInstance
- •CoInitialize
- •CommDlgExtendedError
- •CopyMemory
- •CoUninitialize
- •CreateEvent
- •CreateWaitableTimer
- •CreateWindowEx
- •DirectDrawCreate
- •DirectSoundCaptureCreate
- •DirectSoundCaptureEnumerate
- •DirectSoundCreate
- •DirectSoundEnumerate
- •DsEnumCallback
- •EnableWindow
- •FillMemory
- •FormatMessage
- •GetCurrentDirectory
- •GetDiskFreeSpace
- •GetDlgItem
- •GetLastError
- •GetOpenFileName
- •GetOpenFileNamePreview
- •GetSaveFileName
- •GetSaveFileNamePreview
- •GetTickCount
- •GetWindowRect
- •KillTimer
- •MciGetCreatorTask
- •MciGetDeviceId
- •MciGetErrorString
- •MciGetYieldProc
- •MciSendCommand
- •MciSendString
- •MciSetYieldProc
- •MciWndCreate
- •MciWndRegisterClass
- •MessageBeep
- •MessageBox
- •MmioAdvance
- •MmioAscend
- •MmioClose
- •MmioCreateChunk
- •MmioDescend
- •MmioFlush
- •MmioGetInfo
- •MmioInstallIoProc
- •MmioOpen
- •MmioProc
- •MmioRead
- •MmioRename
- •MmioSeek
- •MmioSendMessage
- •MmioSetBuffer
- •MmioSetInfo
- •MmioStringToFourcc
- •MmioWrite
- •MsgWaitForMultipleObjects
- •OutputDebugString
- •PlaySound
- •PulseEvent
- •QueryPerformanceCounter
- •QueryPerformanceFrequency
- •RegisterWindowMessage
- •ResetEvent
- •SetCurrentDirectory
- •SetCursor
- •SetDiBitsToDevice
- •SetEvent
- •SetTimer
- •SndPlaySound
- •TimeBeginPeriod
- •TimeEndPeriod
- •TimeGetDevCaps
- •TimeGetSystemTime
- •TimeGetTime
- •TimeKillEvent
- •TimeProc
- •TimerProc
- •TimeSetEvent
- •WaitForSingleObject
- •WaveInAddBuffer
- •WaveInGetDevCaps
- •WaveInGetErrorText
- •WaveInGetNumDevs
- •WaveInOpen
- •WaveInPrepareHeader
- •WaveInProc
- •WaveInReset
- •WaveInStart
- •WaveInStop
- •WaveInUnprepareHeader
- •WaveOutBreakLoop
- •WaveOutClose
- •WaveOutGetDevCaps
- •WaveOutGetErrorText
- •WaveOutGetNumDevs
- •WaveOutGetPitch
- •WaveOutGetPlaybackRate
- •WaveOutGetPosition
- •WaveOutGetVolume
- •WaveOutOpen
- •WaveOutPause
- •WaveOutPrepareHeader
- •WaveOutProc
- •WaveOutReset
- •WaveOutRestart
- •WaveOutSetPitch
- •WaveOutSetPlaybackRate
- •WaveOutSetVolume
- •WaveOutUnprepareHeader
- •WaveOutWrite
- •WinHelp
- •ZeroMemory
- •Интерфейсы
- •IDirectSound
- •IDirectSound::Compact
- •IDirectSound::CreateSoundBuffer
- •IDirectSound::DuplicateSoundBuffer
- •IDirectSound::GetCaps
- •IDirectSound::GetSpeakerConfig
- •IDirectSound::Initialize
- •IDirectSound::SetCooperativeLevel
- •IDirectSound::SetSpeakerConfig
- •IDirectSoundBuffer
- •IDirectSoundBuffer::GetCaps
- •IDirectSoundBuffer::GetCurrentPosition
- •IDirectSoundBuffer::GetFormat
- •IDirectSoundBuffer::GetFrequency
- •IDirectSoundBuffer::GetPan
- •IDirectSoundBuffer::GetStatus
- •IDirectSoundBuffer::GetVolume
- •IDirectSoundBuffer::Lock
- •IDirectSoundBuffer::Play
- •IDirectSoundBuffer::Restore
- •IDirectSoundBuffer::SetCurrentPosition
- •IDirectSoundBuffer::SetFormat
- •IDirectSoundBuffer::SetFrequency
- •IDirectSoundBuffer::SetPan
- •IDirectSoundBuffer::SetVolume
- •IDirectSoundBuffer::Stop
- •IDirectSoundBuffer::Unlock
- •IDirectSoundCapture
- •IDirectSoundCapture::CreateCaptureBuffer
- •IDirectSoundCapture::GetCaps
- •IDirectSoundCaptureBuffer
- •IDirectSoundCaptureBuffer::GetCaps
- •IDirectSoundCaptureBuffer::GetCurrentPosition
- •IDirectSoundCaptureBuffer::GetFormat
- •IDirectSoundCaptureBuffer::GetStatus
- •IDirectSoundCaptureBuffer::Lock
- •IDirectSoundCaptureBuffer::Start
- •IDirectSoundCaptureBuffer::Stop
- •IDirectSoundCaptureBuffer::Unlock
- •IDirectSoundNotify
- •IDirectSoundNotify::SetNotificationPositions
- •IKsPropertySet
- •IKsPropertySet::Get
- •IKsPropertySet::QuerySupport
- •IKsPropertySet::Set
- •IUnknown
- •Реализация
- •Использование
- •IUnknown::AddRef
- •IUnknown::QueryInterface
- •IUnknown::Release
- •Классы cArchive
- •CArchive::Read
- •CArchive::Write
- •CBitmap
- •CBitmap::CreateCompatibleBitmap
- •CBitmap::GetBitmapBits
- •CBitmap::SetBitmapBits
- •CCmdUi::ContinueRouting
- •CCmdUi::Enable
- •CCmdUi::SetCheck
- •Cdc::Attach
- •Cdc::BitBlt
- •Cdc::CreateCompatibleDc
- •Cdc::Detach
- •Cdc::EndDoc
- •Cdc::EndPage
- •Cdc::FillRect
- •Cdc::GetDeviceCaps
- •Cdc::GetSafeHdc
- •Cdc::GetTextExtent
- •Cdc::IsPrinting
- •Cdc::LineTo
- •Cdc::Rectangle
- •Cdc::SelectClipRgn
- •Cdc::SelectObject
- •Cdc::SetMapMode
- •Cdc::SetTextAlign
- •Cdc::SetViewportOrg
- •Cdc::StartDoc
- •Cdc::StartPage
- •CDialog
- •CDialog::OnCancel
- •CDialog::DoModal
- •CDialog::EndDialog
- •CDialog::OnInitDialog
- •CDialog::OnOk
- •CDocument
- •CDocument::GetFile
- •CDocument::GetPathName
- •CDocument::OnNewDocument
- •CDocument::ReleaseFile
- •CDocument::SetModifiedFlag
- •CDocument::UpdateAllViews
- •CFile::cFile
- •CFile::Close
- •CFile::GetFilePath
- •CFile::GetLength
- •CFile::Open
- •CFile::Read
- •CFile::Remove
- •CFile::Seek
- •CFile::SeekToBegin
- •CFile::SetLength
- •CFile::Write
- •CFrameWnd
- •CFrameWnd::Create
- •CFrameWnd::DockControlBar
- •CFrameWnd::EnableDocking
- •CFrameWnd::LoadBarState
- •CFrameWnd::LoadFrame
- •CFrameWnd::OnCreateClient
- •CFrameWnd::SaveBarState
- •CFrameWnd::SetActiveView
- •CFrameWnd::ShowControlBar
- •CObArray
- •CObArray::Add
- •CObArray::GetSize
- •CObArray::operator [ ]
- •CObArray::RemoveAll
- •CObArray::SetSize
- •CPropertyPage
- •CPropertyPage::OnSetActive
- •CPropertyPage::OnWizardBack
- •CPropertyPage::OnWizardFinish
- •CPropertyPage::OnWizardNext
- •CPropertySheet
- •CPropertySheet::AddPage
- •CPropertySheet::Construct
- •CPropertySheet::cPropertySheet
- •CPropertySheet::DoModal
- •CPropertySheet::GetPageIndex
- •CPropertySheet::SetActivePage
- •CPropertySheet::SetFinishText
- •CPropertySheet::SetTitle
- •CPropertySheet::SetWizardButtons
- •CPropertySheet::SetWizardMode
- •CRect::NormalizeRect
- •CRect::OffsetRect
- •CRect::PtInRect
- •CRect::SetRect
- •CRgn::CreateRectRgnIndirect
- •CSliderCtrl
- •CSliderCtrl::GetPos
- •CSliderCtrl::SetLineSize
- •CSliderCtrl::SetPageSize
- •CSliderCtrl::SetPos
- •CSliderCtrl::SetRange
- •CSliderCtrl::SetTicFreq
- •CSplitterWnd
- •CSplitterWnd::CreateStatic
- •CSplitterWnd::CreateView
- •CSplitterWnd::GetPane
- •CStatusBar
- •CStatusBar::CommandToIndex
- •CStatusBar::Create
- •CStatusBar::SetIndicators
- •CStatusBar::SetPaneInfo
- •CStatusBar::SetPaneText
- •CString
- •CString::Empty
- •CString::Format
- •CString::GetBuffer
- •CString::IsEmpty
- •CString::LoadString
- •CString::MakeReverse
- •CString::ReleaseBuffer
- •CView::DoPreparePrinting
- •CView::GetDocument
- •CView::OnBeginPrinting
- •CView::OnDraw
- •CView::OnInitialUpdate
- •CView::OnPrepareDc
- •CView::OnPreparePrinting
- •CView::OnPrint
- •CView::OnUpdate
- •CWinApp
- •CWinApp::AddDocTemplate
- •CWinApp::Enable3dControls
- •CWinApp::GetProfileInt
- •CWinApp::GetProfileString
- •CWinApp::InitInstance
- •CWinApp::LoadIcon
- •CWinApp::LoadStandardCursor
- •CWinApp::OpenDocumentFile
- •CWinApp::SetRegistryKey
- •CWinApp::WriteProfileInt
- •CWinApp::WriteProfileString
- •CWnd::DoDataExchange
- •CWnd::EnableWindow
- •CWnd::GetClientRect
- •CWnd::GetDlgItem
- •CWnd::GetParent
- •CWnd::GetParentFrame
- •CWnd::GetParentOwner
- •CWnd::GetSafeHwnd
- •CWnd::Invalidate
- •CWnd::IsDlgButtonChecked
- •CWnd::OnHScroll
- •CWnd::OnKillFocus
- •CWnd::OnSetFocus
- •CWnd::SetScrollInfo
- •CWnd::SetScrollPos
- •CWnd::ShowScrollBar
- •CWnd::UpdateData
- •Команды mci break
- •Capability
- •Sysinfo
- •Макросы mci_hms_hour
- •Mci_hms_minute
- •Mci_hms_second
- •Mci_make_hms
- •Mci_make_msf
- •Mci_make_tmsf
- •Mci_msf_frame
- •Mci_msf_minute
- •Mci_msf_second
- •Mci_tmsf_frame
- •Mci_tmsf_minute
- •Mci_tmsf_second
- •Mci_tmsf_track
- •MciWndCanConfig
- •MciWndCanEject
- •MciWndCanPlay
- •MciWndCanRecord
- •MciWndCanSave
- •MciWndCanWindow
- •MciWndChangeStyles
- •MciWndClose
- •MciWndDestroy
- •MciWndEnd
- •MciWndGetActiveTimer
- •MciWndGetAlias
- •MciWndGetDevice
- •MciWndGetDeviceId
- •MciWndGetEnd
- •MciWndGetError
- •MciWndGetFileName
- •MciWndGetInactiveTimer
- •MciWndGetLength
- •MciWndGetPosition
- •MciWndGetPositionString
- •MciWndGetRepeat
- •MciWndGetSpeed
- •MciWndGetStart
- •MciWndGetStyles
- •MciWndGetTimeFormat
- •MciWndGetVolume
- •MciWndHome
- •MciWndNew
- •MciWndOpen
- •MciWndOpenDialog
- •MciWndOpenInterface
- •MciWndPause
- •MciWndPlay
- •MciWndPlayFrom
- •MciWndPlayFromTo
- •MciWndPlayReverse
- •MciWndPlayTo
- •MciWndRecord
- •MciWndResume
- •MciWndReturnString
- •MciWndSave
- •MciWndSaveDialog
- •MciWndSeek
- •MciWndSendString
- •MciWndSetActiveTimer
- •MciWndSetInactiveTimer
- •MciWndSetOwner
- •MciWndSetRepeat
- •MciWndSetSpeed
- •MciWndSetTimeFormat
- •MciWndSetTimers
- •MciWndSetVolume
- •MciWndStep
- •MciWndStop
- •MciWndUseFrames
- •MciWndUseTime
- •MmioFourcc
- •Массивы patcharray
- •Keyarray
- •Сообщения mci_break
- •Mci_close
- •Mci_getdevcaps
- •Mci_index
- •Mci_open
- •Mci_pause
- •Mci_play
- •Mci_record
- •Mci_reserve
- •Mci_resume
- •Mci_save
- •Mci_seek
- •Mci_setaudio
- •Mci_status
- •Mci_stop
- •Mciwndm_can_config
- •Mciwndm_can_eject.
- •Mciwndm_can_play
- •Mciwndm_can_record
- •Mciwndm_can_save
- •Mciwndm_can_window
- •Mciwndm_changestyles
- •Mciwndm_getactivetimer
- •Mciwndm_getalias
- •Mciwndm_getdevice
- •Mciwndm_getdeviceid
- •Mciwndm_getend
- •Mciwndm_geterror
- •Mciwndm_getfilename
- •Mciwndm_getinactivetimer
- •Mciwndm_getlength
- •Mciwndm_getposition
- •Mciwndm_getrepeat
- •Mciwndm_getspeed
- •Mciwndm_getstart
- •Mciwndm_getstyles
- •Mciwndm_gettimeformat
- •Mciwndm_getvolume
- •Mciwndm_new
- •Mciwndm_notifyerror
- •Mciwndm_notifymedia
- •Mciwndm_notifymode
- •Mciwndm_notifypos
- •Mciwndm_open
- •Mciwndm_openinterface
- •Mciwndm_playfrom
- •Mciwndm_playreverse
- •Mciwndm_playto
- •Mciwndm_returnstring
- •Mciwndm_sendstring
- •Mciwndm_setactivetimer
- •Mciwndm_setinactivetimer
- •Mciwndm_setowner
- •Mciwndm_setrepeat
- •Mciwndm_setspeed
- •Mciwndm_settimeformat
- •Mciwndm_settimers
- •Mciwndm_setvolume
- •Mm_acm_formatchoose
- •Mm_mcinotify
- •Mm_mcisignal
- •Mm_wim_close
- •Mm_wim_data
- •Mm_wim_open
- •Mm_wom_close
- •Mm_wom_done
- •Mm_wom_open
- •Mmiom_close
- •Mmiom_open
- •Mmiom_read
- •Mmiom_rename
- •Mmiom_seek
- •Mmiom_write
- •Mmiom_writeflush
- •Wm_close
- •Wm_timer
- •Структуры acmdriverdetails
- •Acmfilterchoose
- •Acmformatchoose
- •Acmfilterdetails
- •Acmfiltertagdetails
- •Acmformatdetails
- •Acmformattagdetails
- •Acmstreamheader
- •Auxcaps
- •Bitmapinfo
- •Bitmapinfoheader
- •Createstruct
- •Dsbcaps
- •Dsbpositionnotify
- •Dsbufferdesc
- •Dscbcaps
- •Dscbufferdesc
- •Dsccaps
- •Logfont
- •Mci_break_parms
- •Mci_dgv_cue_parms
- •Mci_dgv_open_parms
- •Mci_dgv_pause_parms
- •Mci_dgv_play_parms
- •Mci_dgv_record_parms
- •Mci_dgv_reserve_parms
- •Mci_dgv_save_parms
- •Mci_dgv_set_parms
- •Mci_dgv_status_parms
- •Mci_generic_parms
- •Mci_getdevcaps_parms
- •Mci_open_parms
- •Mci_ovly_open_parms
- •Mci_ovly_save_parms
- •Mci_play_parms
- •Mci_record_parms
- •Mci_save_parms
- •Mci_seek_parms
- •Mci_seq_set_parms
- •Mci_set_parms
- •Mci_status_parms
- •Mci_vcr_cue_parms
- •Mci_vcr_play_parms
- •Mci_vcr_record_parms
- •Mci_vcr_seek_parms
- •Mci_vcr_set_parms
- •Mci_vcr_status_parms
- •Mci_vd_play_parms
- •Mci_wave_open_parms
- •Mci_wave_set_parms
- •Mmckinfo
- •Mmioinfo
- •Openfilename
- •Rgbquad
- •Scrollinfo
- •Security_attributes
- •Timecaps
- •Wavefilter
- •Waveformatex
- •Wavehdr
- •Waveincaps
- •Waveoutcaps
IDirectSoundBuffer::GetVolume
HRESULT GetVolume( LPLONG lplVolume );
Возвращаемое значение
В случае успешного завершения возвращает значение DS_OK. В противном случае возвращаемое значение может принимать одно из следующих значений:
DSERR_CONTROLUNAVAIL — требуемый элемент управления (уровень воспроизведения, стерео баланс и т.д.) отсутствует.
DSERR_INVALIDPARAM — один или несколько аргументов метода имеют недопустимые значения.
DSERR_PRIOLEVELNEEDED — вызывающее приложение имеет недостаточно высокий уровень приоритета для вызова данной функции.
Аргументы
lplVolume — указатель на переменную, в которую будет записан уровень воспроизведения, установленный для данного объекта DirectSoundBuffer.
Примечание
Метод IDirectSoundBuffer::GetVolume позволяет получить значение уровня воспроизведения, установленное для данного объекта DirectSoundBuffer.
Уровень воспроизведения задаётся в сотых долях децибела (дБ). Уровень воспроизведения должен находиться в пределах между DSBVOLUME_MIN (тишина) и DSBVOLUME_MAX (отсутствие ослабления). В настоящее время значения этих величин определены в файле заголовка Dsound.h как -10 000 и 0 соответственно. Уровню DSBVOLUME_MAX соответствует исходный уровень воспроизводимого звукового сигнала. Значению DSBVOLUME_MIN соответствует ослабление сигнала на 100 дБ. Теоретический динамический диапазон 16-разрядных звуковых карт, реализуемый при выводе через них меандра, составляет 90 дБ, поэтому значению DSBVOLUME_MIN в большинстве случаев соответствует вывод нулевого сигнала. Собственные шумы аналоговой части звуковых карт дополнительно снижают их динамический диапазон. Для исключения искажений, возникающих при ограничении сигнала, DirectSound не поддерживает его усиление.
IDirectSoundBuffer::Lock
HRESULT Lock( DWORD dwWriteCursor, DWORD dwWriteBytes, LPVOID lplpvAudioPtr1, LPDWORD lpdwAudioBytes1, LPVOID lplpvAudioPtr2, LPDWORD lpdwAudioBytes2, DWORD dwFlags );
Возвращаемое значение
В случае успешного завершения возвращает значение DS_OK. В противном случае возвращаемое значение может принимать одно из следующих значений:
DSERR_BUFFERLOST — память, выделенная под буфер, освобождена и должна быть выделена заново.
DSERR_INVALIDCALL — вызов данной функции недопустим при текущем состоянии объекта.
DSERR_INVALIDPARAM — один или несколько аргументов метода имеют недопустимые значения.
DSERR_PRIOLEVELNEEDED — вызывающее приложение имеет недостаточно высокий уровень приоритета для вызова данной функции.
Аргументы
dwWriteCursor — смещение начала заблокированной области от начала буфера, выраженное в байтах. Значение данного аргумента игнорируется, если в аргументе dwFlags установлен флаг DSBLOCK_FROMWRITECURSOR.
dwWriteBytes — размер заблокированной области, выраженный в байтах. Следует помнить, что аудио буфер является циклическим.
lplpvAudioPtr1 — адрес указателя на первый заблокированный блок аудио буфера.
lpdwAudioBytes1 — указатель на переменную, в которую будет записан размер первого заблокированного блока аудио буфера. Если значение данного аргумента меньше значения аргумента dwWriteBytes, то аргумент lplpvAudioPtr2 содержит указатель на второй блок аудио информации.
lplpvAudioPtr2 — адрес указателя на второй заблокированный блок аудио буфера. Если данный аргумент имеет нулевое значение, аргумент lplpvAudioPtr1 содержит указатель на весь заблокированный блок аудио буфера.
lpdwAudioBytes2 — указатель на переменную, в которую будет записан размер второго заблокированного блока аудио буфера. Если аргумент lplpvAudioPtr2 имеет нулевое значение, то данный аргумент тоже должен иметь нулевое значение.
dwFlags — флаги, определяющие режим блокировки. Является комбинацией следующих значений:
DSBLOCK_FROMWRITECURSOR — производит блокировку, начиная с текущей позиции записи, исключая необходимость вызова метода IDirectSoundBuffer::GetCurrentPosition. При установке данного флага значение аргумента dwWriteCursor игнорируется.
DSBLOCK_ENTIREBUFFER — блокирует весь буфер. При установке данного флага значение аргумента dwWriteBytes игнорируется
Примечание
Метод IDirectSoundBuffer::Lock позволяет получит корректный указатель на данные, расположенные в аудио буфере. Входной информацией данного метода является смещение и размер блокируемой области, а выходной информацией — два указателя, используемые для записи и размеры соответствующих им буферов. Использование двух указателей связано с тем, что аудио буфер является циклическим. Если выделяемый блок памяти не фрагментирован, то аргумент lplpvAudioBytes2 имеет нулевое значение. В противном случае в этот аргумент записывается указатель на начало аудио буфера. Если приложение записывает нулевые значения в аргументы lplpvAudioPtr2 и lpdwAudioBytes2, DirectSound не блокирует вторую часть буфера.
После вызова функции IDirectSoundBuffer::Lock приложение должно записать информацию по полученным адресам и вызвать метод IDirectSoundBuffer::Unlock, для передачи данных буферов DirectSound. При блокировке аудио буфера на длительное время курсор воспроизведения может обратиться к заблокированной области памяти, что может привести к выводу на воспроизведение случайного шума.
Указатели, возвращаемые данным методом, могут использоваться только для записи информации. При попытке считывания информации по данным адресам, возможно, получение некорректных данных. Например, при размещении буфера на звуковой плате обращение будет производиться к временному буферу, размещённому в оперативной памяти. При вызове метода IDirectSoundBuffer::Unlock содержимое данного буфера будет записано в память звуковой карты.