-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathmain.cpp
More file actions
124 lines (79 loc) · 3.18 KB
/
Copy pathmain.cpp
File metadata and controls
124 lines (79 loc) · 3.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#include <CoreFoundation/CoreFoundation.h>
#include <iostream>
#include "AudioPlayer.h"
int main() {
const char *fn = "music.mp3";
AudioPlayer* ap = AudioPlayer::file(fn);
if(!ap) {
std::cerr << "Error loading audio" << std::endl;
return 1;
}
ap->play();
char indic[] = { '|', '/', '-', '\\' };
int i = 0;
do { // 5
// std::cout << "Loop." << std::endl;
CFRunLoopRunInMode ( // 6
kCFRunLoopDefaultMode, // 7
0.25, // 8
false // 9
);
std::cout << "\rPlaying.. " << indic[i];
double d = ap->progress();
double min = floor(d/60);
double sec = floor(fmod(d,60));
std::cout << " " << min << ":" << sec;
d = ap->duration();
min = floor(d/60);
sec = floor(fmod(d,60));
std::cout << " " << min << ":" << sec;
std::cout << std::flush;
if(ap->progress() > 5) {
ap->seek(rand()/(float(RAND_MAX))*ap->duration());
}
i = (i+1)%4;
} while (ap->isPlaying());
delete ap;
#if 0
// std::cout << "dataformat " << aqData.mDataFormat << std::endl;
std::cout << "bufferbytesize " << aqData.bufferByteSize << std::endl;
std::cout << "numpacketstoread " << aqData.mNumPacketsToRead << std::endl;
std::cout << "maxpacketsz " << maxPacketSize << std::endl;
std::cout << "df bpp " << aqData.mDataFormat.mBytesPerPacket << std::endl;
std::cout << "df fpp " << aqData.mDataFormat.mFramesPerPacket << std::endl;
unsigned int running =0;
sz = 4;
status = AudioFileGetProperty ( // 9
aqData.mAudioFile, // 10
kAudioQueueProperty_IsRunning , // 11
&running, // 12
&sz // 13
);
std::cout << "Running: " << running << std::endl;
running =0;
sz = 4;
status = AudioFileGetProperty ( // 9
aqData.mAudioFile, // 10
kAudioQueueProperty_IsRunning , // 11
&running, // 12
&sz // 13
);
std::cout << "Running: " << running << std::endl;
return 0;
do { // 5
// std::cout << "Loop." << std::endl;
CFRunLoopRunInMode ( // 6
kCFRunLoopDefaultMode, // 7
0.25, // 8
false // 9
);
} while (aqData.mIsRunning);
CFRunLoopRunInMode ( // 10
kCFRunLoopDefaultMode,
1,
false
);
std::cout << "Done." << std::endl;
return 0;
#endif
}