> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GetShapeDmaNumChannels

> GetShapeDmaNumChannels

# GetShapeDmaNumChannels

Direct Memory Access (DMA) オーディオ バッファー内のチャネル数を取得します。

## 構文

```cpp theme={null}
UINT32 GetShapeDmaNumChannels(  
         const SHAPE_DMA_CONTEXT* context  
)  
```

### パラメーター

*context*   \_In\_\
型: [SHAPE\_DMA\_CONTEXT\*](/reference/audio/shapedmacontext/structs/shape_dma_context)

[SHAPE\_DMA\_CONTEXT](/reference/audio/shapedmacontext/structs/shape_dma_context) 構造体へのポインター。

### 戻り値

型: UINT32

チャネル数。

## 解説

DMA システムは、float と整数の自動変換 (float から整数、および整数から float) を伴う読み書き機能をサポートします。DMA システムは、128 サンプル ブロックのデインターリーブされたサンプルを含む循環バッファーを使用します。

DMA プロセッサにより、Scalable Hardware Audio Processing Engine (SHAPE) は、ミックス バッファーからメイン システム メモリへのデータの送信、およびさらなる処理のためのメイン システムからミックス バッファーへのデータの取得を行えます。DMA はブロック単位で行われ、一度に 1 オーディオ フレーム分のデータを転送します。ブロック インターリーブ データを扱えるようにするため、サンプルの読み書き時にシステム メモリ内でスキップするオーディオ フレーム ブロック数 (ベース アドレスからの) を指定するスキップ値があります。したがって、マルチチャネル ストリームではチャネルごとに 1 つの DMA コンテキストが必要になります。

オーディオ データ サンプルは常に 32 ビット値として読み書きされ、整数または float のいずれかで、[SHAPE\_DMA\_CONTEXT](/reference/audio/shapedmacontext/structs/shape_dma_context) 構造体の `floatConvert` フラグで指定します。DMA の方向 (読み取り/書き込み) は、DMA コンテキストではなく DMA コマンドで指定されることに注意してください。これによりデータ帯域幅の削減に寄与します。DMA エンジンは信号処理を行いませんが、float から整数への変換 (または整数から float への変換) を実行できます。これにより、アプリケーションの CPU は浮動小数点形式でデータ サンプルを処理できます。

DMA バッファーのサイズは次の式で計算できます。

```cpp theme={null}
fullBufferSizeInBytes = 128 * 4 * numChannels * numFrames  
```

読み取りポインターと書き込みポインターは次のようにインクリメントされます。

```cpp theme={null}
readPointer = (readPointer + 1) % numFrames 

writePointer = (writePointer + 1) % numFrames  
```

オーディオ バッファー内のアドレスは次のように計算します。

```cpp theme={null}
readAddress = audioBuffer + (128 * 4 * ((readPointer * numChannels) + channel))   

writeAddress = audioBuffer + (128 * 4 * ((writePointer * numChannels) + channel))  
```

## 要件

**ヘッダー:** shapedmacontext.h

**サポートされるプラットフォーム:** XBOX One ファミリ本体および XBOX Series 本体

## 関連項目

[SHAPE\_DMA\_CONTEXT](/reference/audio/shapedmacontext/structs/shape_dma_context)\
[ShapeDmaContext](/reference/audio/shapedmacontext/shapedmacontext_members)


## Related topics

- [ShapeDmaContext](/ja-jp/reference/audio/shapedmacontext/shapedmacontext_members.md)
- [SetShapeDmaNumChannels](/ja-jp/reference/audio/shapedmacontext/functions/setshapedmanumchannels.md)
- [GetShapeDmaChannel](/ja-jp/reference/audio/shapedmacontext/functions/getshapedmachannel.md)
- [GetShapeXmaNumChannels](/ja-jp/reference/audio/shapexmacontext/functions/getshapexmanumchannels.md)
- [GetShapeDmaNumBytes](/ja-jp/reference/audio/shapedmacontext/functions/getshapedmanumbytes.md)
