hakeの日記

Windows環境でプログラミングの勉強をしています。

zvol 0.0.2

SHOUTcast Playerにて音量調節を行う際にTKvolの代替物として作ったのですが、なにやらサムさんのところで単体としてお使いいただいている模様。記事を読ませていただき、う〜ん、やっぱり絶対値指定があった方が良いですよね。
というわけで以下の様に変更してみました。別館のSHOUTcasyPlayerのページからダウンロードして下さい。

  • 絶対値による音量指定を可能にした


指定する数値に+/−の記号を付けると相対値、記号なしだと絶対値になります。

$ zvol 50   ←音量を絶対値指定(範囲は0〜100)
$ zvol +10   ←音量を相対値指定

例によって、ZPlayerのソースのqtopia_volume.h、qtopia_volume.cppと下記のzvol.cppをdev_img1.6でコンパイルしました。Atmarkさん、阿川さん ならびにTKmix さんに感謝です。

#include <stdio.h>
#include <stdlib.h>
#include <qpe/qpeapplication.h>
#include <qpe/config.h>
#include "qtopia_volume.h"

void setVolumeR(int v)
{
	int setLevel = (QtopiaVolume::getCurrentLevel() + v);
	if (setLevel < 0)
		setLevel = 0;
	if (setLevel > 100)
		setLevel = 100;

	QtopiaVolume::setLevel(setLevel);
}

void setVolumeA(int v)
{
	int setLevel = v;
	if (setLevel < 0)
		setLevel = 0;
	if (setLevel > 100)
		setLevel = 100;

	QtopiaVolume::setLevel(setLevel);
}

int main(int argc, char **argv )
{
	if (argc < 2)
		exit(1);

	QPEApplication a( argc, argv );
	int val;
	val = atoi(argv[1]);
	if ((argv[1][0] == '+') || (argv[1][0] == '-'))
		setVolumeR(val);
	else
		setVolumeA(val);
}