## Class asio_device

hamigaki::audio::asio_device —

## Synopsis

    class asio_device {
    public:
      // construct/copy/destruct
      explicit asio_device(const uuid&, void* = 0);

      // modifier
      void create_buffer(long, long);
      void rate(double);
      std::void buffer_size(streamsize);

      // queries
      double rate();
      asio_source get_source(std::size_t);
      asio_sink get_sink(std::size_t);
      std::size_t source_channels() const;
      std::size_t sink_channels() const;
      std::streamsize buffer_size() const;
      asio_buffer_info buffer_info() const;
    };

## Description

### `asio_device` construct/copy/destruct

1.     explicit asio_device(const uuid& clsid, void* hwnd = 0);

   Effects: | `clsid`で識別されるASIOデバイスをオープンする。

### `asio_device` modifier

1.     void create_buffer(long in_channels, long out_channels);

   Effects: | 入力チャンネル数=`in_channels`、出力チャンネル数=`out_channels`でASIOバッファを作成する。

2.     void rate(double r);

   Effects: | サンプリング周波数を`r`Hzに設定する。

3.     std::void buffer_size(streamsize n);

   Effects: | バッファサイズを`n`サンプル分に設定する。

### `asio_device` queries

1.     double rate();

   Returns: | サンプリング周波数。

2.     asio_source get_source(std::size_t idx);

   Returns: | `idx`チャンネル目のasio_source。

3.     asio_sink get_sink(std::size_t idx);

   Returns: | `idx`チャンネル目のasio_sink。

4.     std::size_t source_channels() const;

   Returns: | 入力チャンネルの数。

5.     std::size_t sink_channels() const;

   Returns: | 出力チャンネルの数。

6.     std::streamsize buffer_size() const;

   Returns: | バッファサイズ。単位はサンプル。

7.     asio_buffer_info buffer_info() const;

   Returns: | バッファ情報。

| 製作著作 © 2006-2008 Takeshi Mouri