# DSGetChannel

Requests the status of a channel.

### Synopsis

`int32 DSGetChannel (Item msgItem, DSRequestMsgPtr reqMsg, DSStreamCBPtr streamCBPtr, DSDataType streamType, long channelNumber, long* channelStatusPtr)`

### Description

Requests the status of the specified stream channel from the DataStreamer. `DSGetChannel()` writes the status of the channel to the variable pointed to by `channelStatusPtr`.

`DSGetChannel()` sets the members of the message data structure required to request the status of the channel. (The message is the `DSRequestMsg` identified by `reqMsg`). If a message is specified, `DSGetChannel()` sends the message and returns immediately. If no message is specified (if `reqMsg` is `NULL`), `DSGetChannel()` creates a message, sends it to the DataStreamer, and waits until the message has been received before returning.

### Arguments

`msgItem`
  Item of the message.

`reqMsg`
  Pointer to the `DSRequestMsg` message that is formatted and sent to the DataStreamer. A value of `NULL` forces creation of an internal `DSRequestMsg` message and synchronous operation.

`streamCBPtr`
  Pointer to the stream context block.

`streamType`
  Type of stream to which the request applies.

`channelNumber`
  Number of the logical channel whose status is being requested.

`channelStatusPtr`
  Pointer to the channel status word (where the result will be returned).

### Messages

The members of `reqMsg` are set to the following values:

`whatToDo`
  kDSOpGetChannel

`msg.getChannel.streamType`

`msg.getChannel.channelNumber`

`msg.getChannel.channelStatusPtr`

### Return Value

Value
  Error Condition

0
  None

These values are returned if the DataStreamer encounters an error while processing the message request:

kDSInvalidDSRequest
  Invalid message (whatToDo set to invalid value)

kDSNoReplyPortErr
  Could not locate item of the reply port

-1
  Could not locate pointer to msgItem

(Portfolio error code)
  `SendMsg()` or `WaitPort()` failed

The DataStreamer checks the validity of messages only if message checking is enabled when the DataStreamer is compiled (if the `VALIDATE_REQUEST_CODE` symbol is enabled).

See "Error Messages" in the 3DO Portfolio Reference Manual for a listing of error messages returned by `SendMsg()` and `WaitPort()`.

### Associated Files

DataStreamLib.h

### See Also

`DSSetChannel`