LoginSignup
2
0

More than 1 year has passed since last update.

current で mixer ライブラリが追加された

Posted at

14-current では mixer が新しくなってます

 14-current では mixer コマンドが新しいバージョンに変わっています。
 mixer コマンドが新しくなった、というのは実際には表面的な話で、mixer のユーザーランドライブラリ(/usr/lib/libmixer.so)が新たに作られたのが主要な出来事です。新たなライブラリが出来たため、mixer(8) コマンド(/usr/bin/mixer)はそれを呼び出す形で完全に書き直されました。今まではmixer操作用のユーザーランドライブラリはなかったんですね。

新たな mixer ライブラリ/コマンド は FreeBSD Summer of Code 2021 の成果物

 mixer の新たなライブラリ/コマンドの開発は、Google Summer of Codeの FreeBSD 部門の 5つのプロジェクトのうちの一つだったようです。 Google Summer of Code は Googleが指定した課題をクリアした学生さんに賞金を支払うというイベントですね。

 FreeBSD Summer of Code の mixer プロジェクトのページは以下です。

mixerコマンドはこんな感じ

 mixerコマンドを実際に実行してみるとこんな感じです。ボリューム値が0.00〜1.00になってます。

newmixer.png

 今までの mixer コマンドはこんな感じで各ボリューム値は整数ですね。
 ボリュームの変更も従来と違い、例えば vol 要素のボリュームを変更する場合は


左右同じ値(50%)
mixer vol.volume=0.5
左右別指定(40%:60%)
mixer vol.volume=0.4:0.6

となります。mute指定する場合は


mixr vol.mute=1

で、1をセットするとmuteになります。

また -o オプションで、


mixer -o > mixersetting

で mixer 設定をmixersetting ファイルに保存できます(従来の -s オプションに相当)。
設定を再度 restore するには


mixer `cat mixersetting`

とします。

細かな使い方は man (man 8 mixer)を参照してください。

ユーザーランドライブラリでプログラミングで扱いやすく

 新たに追加された mixer のユーザーランドライブラリのC言語での使い方は man に書かれています。

スクリーンショット_2021-12-08_23-11-47.png

 mixer.hを include して、mixer_open で得られるmixer 構造体に対して操作を行い mixer_close するという感じで操作できるようです。

 実際の書き方は ExAMPLES の項目のコードが参考になります。実際のコードがなによりわかりやすいですね。

スクリーンショット_2021-12-08_23-12-22.png

 この man の全体はこちら (man 3 mixer)

FreeBSD Summer of Code 他のプロジェクト

mixer 以外の FreeBSD Summer of Code 2021 のプロジェクトの一覧はこちらです。

コンソールで CJK を入力できるようにする Input Method(開発者は中国語圏の人なので日本語は試してなさそうですが)

や、XFS を fuse でmountして読めるようにするプロジェクト

とか色々おもしろそうです。mixer と違って current にマージされてないので簡単には試せなさそうですが。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0