#import <CoreFoundation/CoreFoundation.h>
#import <Celestial/AVController.h>
#include <stdlib.h>
#include <stdio.h>
int main (int argc, char **argv)
{
NSAutoreleasePool *pool = [ [ NSAutoreleasePool alloc ] init ];
AVController * av = [ [ AVController alloc ] init ];
float target;
int count = 0, retval = 0;
if (argc < 2)
{
fprintf(stderr, "usage: volume [percentage]\n");
retval = -1;
goto cleanup;
}
target = strtod(argv[1], NULL) / 100;
if ((target < 0.0) || (target > 1.0))
{
fprintf(stderr, "Volume must be a positive percentage not greater than 100\n");
retval -1;
goto cleanup;
}
printf("Setting volume to %f\n", target);
/* Only try 25 times to set the volume, else give up */
/* (Have to do this because celestial is odd) */
while (++count < 25)
{
[ av setVolume: target ];
/* Give 50 microseconds to settle */
usleep(50000);
if ([ av volume ] == target)
break;
}
if (count >= 25)
{
fprintf(stderr, "Could not set volume\n");
retval = -1;
}
cleanup:
[ av release ];
[ pool release ];
return retval;
}