- 积分
- 9
- 实力分
- 点
- 金钱数
- 两
- 技术分
- 分
- 贡献分
- 分
|
发表于 2008-7-20 18:39:18
|
显示全部楼层
修改了一下alarm(ELF多时间闹钟)的源码,S68上用着不错,但遇到个问题
ELF可以设置多时间闹钟,最多可以设置5个闹钟,试过几个alarm,总有问题:
1、到时间后,闹钟只响铃一次(即0.5秒的声音文件,只响铃0。5秒),原因:从SVN上下载了alarm的源码看了一下,发现原代码里repeat_num=1,把这个数字改成0应该就可以了,目前我是改成100在用。
2、S68上不能用,因为对Newsgold机型,默认的磁盘是“4”,而S68的默认磁盘是“0”
以上问题,已解决,但现在遇到一个问题:响铃声音不能最大。
bcfg里可以设置,默认的范围是0~50,设置值不同,响铃大小有变化,但是,总是不能达到声音的最大音量。不知道怎么解决。
源码:
void Play(const char *fname)
{
FSTATS fstats;
unsigned int err;
if (GetFileStats(fname,&fstats,&err)!=-1)
{
PLAYFILE_OPT _sfo1;
WSHDR* sndPath=AllocWS(128);
WSHDR* sndFName=AllocWS(128);
char s[128];
const char *p=strrchr(fname,'\\')+1;
str_2ws(sndFName,p,128);
strncpy(s,fname,p-fname);
s[p-fname]='\0';
str_2ws(sndPath,s,128);
zeromem(&_sfo1,sizeof(PLAYFILE_OPT));
_sfo1.repeat_num=1;
_sfo1.time_between_play=0;
_sfo1.play_first=0;
_sfo1.volume=sndVolume;
如果能够把响铃音量调整为最大音量,或者调整为渐进增大,就完美了,望高手改进一下,或者指点一下,我来动手。
[ 本帖最后由 tournet 于 2008-7-20 18:45 编辑 ] |
|