gosu 0.7.18 → 0.7.19

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. data/COPYING.txt +1 -1
  2. data/Gosu/GraphicsBase.hpp +4 -2
  3. data/Gosu/IO.hpp +2 -9
  4. data/Gosu/Math.hpp +8 -6
  5. data/Gosu/Version.hpp +2 -2
  6. data/GosuImpl/Graphics/Common.hpp +4 -3
  7. data/GosuImpl/Graphics/DrawOp.hpp +4 -0
  8. data/GosuImpl/Graphics/Graphics.cpp +1 -1
  9. data/GosuImpl/Graphics/Image.cpp +1 -1
  10. data/GosuImpl/Graphics/LargeImageData.cpp +1 -1
  11. data/GosuImpl/Graphics/TexChunk.cpp +1 -1
  12. data/GosuImpl/Graphics/TextTouch.mm +79 -8
  13. data/GosuImpl/Graphics/Texture.cpp +15 -1
  14. data/GosuImpl/IO.cpp +10 -0
  15. data/GosuImpl/InputTouch.mm +10 -1
  16. data/GosuImpl/RubyGosu.swg +7 -13
  17. data/GosuImpl/RubyGosu_wrap.cxx +52 -22
  18. data/GosuImpl/Sockets/CommSocket.cpp +4 -3
  19. data/GosuImpl/Sockets/ListenerSocket.cpp +0 -1
  20. data/GosuImpl/Sockets/MessageSocket.cpp +8 -16
  21. data/GosuImpl/Sockets/Sockets.hpp +0 -1
  22. data/GosuImpl/WindowTouch.mm +2 -1
  23. data/Rakefile +3 -2
  24. data/lib/gosu.rb +3 -0
  25. data/lib/gosu/patches.rb +13 -2
  26. data/lib/gosu/swig_patches.rb +21 -0
  27. data/linux/extconf.rb +1 -1
  28. data/reference/cpp/_graphics_base_8hpp.html +3 -2
  29. data/reference/cpp/_graphics_base_8hpp_source.html +31 -30
  30. data/reference/cpp/_i_o_8hpp_source.html +49 -56
  31. data/reference/cpp/_math_8hpp.html +6 -6
  32. data/reference/cpp/_math_8hpp_source.html +63 -63
  33. data/reference/cpp/_version_8hpp.html +4 -4
  34. data/reference/cpp/_version_8hpp_source.html +2 -2
  35. data/reference/cpp/class_gosu_1_1_buffer.html +2 -6
  36. data/reference/cpp/class_gosu_1_1_file.html +1 -1
  37. data/reference/cpp/namespace_gosu.html +60 -57
  38. data/reference/cpp/namespacemembers.html +2 -0
  39. data/reference/cpp/namespacemembers_0x62.html +2 -2
  40. data/reference/cpp/namespacemembers_0x64.html +2 -0
  41. data/reference/cpp/namespacemembers_0x67.html +0 -2
  42. data/reference/cpp/namespacemembers_0x72.html +2 -2
  43. data/reference/cpp/namespacemembers_eval.html +4 -2
  44. data/reference/cpp/namespacemembers_func.html +4 -4
  45. data/reference/rdoc/classes/Gosu.html +1546 -0
  46. data/reference/rdoc/classes/Gosu/Color.html +660 -0
  47. data/reference/rdoc/classes/Gosu/Font.html +545 -0
  48. data/reference/rdoc/classes/Gosu/GLTexInfo.html +412 -0
  49. data/reference/rdoc/classes/Gosu/Image.html +706 -0
  50. data/reference/rdoc/classes/Gosu/Sample.html +476 -0
  51. data/reference/rdoc/classes/Gosu/SampleInstance.html +523 -0
  52. data/reference/rdoc/classes/Gosu/Song.html +568 -0
  53. data/reference/rdoc/classes/Gosu/TextInput.html +444 -0
  54. data/reference/rdoc/classes/Gosu/Window.html +911 -0
  55. data/reference/rdoc/classes/Numeric.html +479 -0
  56. data/reference/rdoc/created.rid +1 -0
  57. data/reference/rdoc/files/COPYING_txt.html +391 -0
  58. data/reference/rdoc/files/README_txt.html +387 -0
  59. data/reference/rdoc/files/reference/Deployment on OS X_rdoc.html +381 -0
  60. data/reference/rdoc/files/reference/Deployment on Windows_rdoc.html +385 -0
  61. data/reference/rdoc/files/reference/Drawing with Colors_rdoc.html +363 -0
  62. data/reference/rdoc/files/reference/Order of Corners_rdoc.html +358 -0
  63. data/reference/rdoc/files/reference/Tileability_rdoc.html +374 -0
  64. data/reference/rdoc/files/reference/Z Ordering_rdoc.html +361 -0
  65. data/reference/rdoc/files/reference/gosu_rb.html +348 -0
  66. data/reference/rdoc/fr_class_index.html +12 -0
  67. data/reference/rdoc/fr_file_index.html +10 -0
  68. data/reference/rdoc/fr_method_index.html +66 -0
  69. data/reference/rdoc/index.html +1 -0
  70. data/reference/rdoc/rdoc-style.css +320 -0
  71. metadata +29 -11
  72. data/GosuImpl/ObjGosu/ObjGosu.mm +0 -36
  73. data/GosuImpl/ObjGosu/ObjGosuColor.mm +0 -84
  74. data/GosuImpl/ObjGosu/ObjGosuFont.mm +0 -42
  75. data/GosuImpl/ObjGosu/ObjGosuImage.h +0 -7
  76. data/GosuImpl/ObjGosu/ObjGosuImage.mm +0 -65
  77. data/GosuImpl/ObjGosu/ObjGosuSample.mm +0 -32
  78. data/GosuImpl/ObjGosu/ObjGosuSong.mm +0 -43
  79. data/GosuImpl/ObjGosu/ObjGosuWindow.h +0 -32
  80. data/GosuImpl/ObjGosu/ObjGosuWindow.mm +0 -155
@@ -0,0 +1,568 @@
1
+ <html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"/><title>Class: Gosu::Song</title><link type="text/css" href="../.././rdoc-style.css" rel="stylesheet" media="screen"/><script type="text/javascript">
2
+ // Allison template
3
+ // Copyright 2007, 2008 Cloudburst, LLC. Licensed under the AFL 3. See the included LICENSE file.
4
+
5
+ var href_base = '../.././rdoc-style.css'.replace(/(.*\/).*/, '$1'); // inline js is good for something
6
+
7
+ function $(id) {
8
+ if (document.getElementById)
9
+ elem = document.getElementById(id);
10
+ else if ( document.all )
11
+ elem = eval("document.all." + id);
12
+ else
13
+ return false;
14
+ return elem;
15
+ }
16
+
17
+ function toggle(id) {
18
+ elem = $(id);
19
+ elemStyle = elem.style;
20
+ if (elemStyle.display == "block") {
21
+ elemStyle.display = "none"
22
+ } else {
23
+ elemStyle.display = "block"
24
+ }
25
+ return true;
26
+ }
27
+
28
+ function toggleText(id) {
29
+ elem = $(id)
30
+ if (m = elem.innerHTML.match(/(Hide)(.*)/)) {
31
+ elem.innerHTML = "Show" + m[2];
32
+ } else if (m = elem.innerHTML.match(/(Show)(.*)/)) {
33
+ elem.innerHTML = "Hide" + m[2];
34
+ }
35
+ return true;
36
+ }
37
+
38
+ function span(s, klass) {
39
+ return '<span class="' + klass + '">' + s + '</span>';
40
+ }
41
+
42
+ function highlightSymbols() {
43
+ pres = document.getElementsByTagName('pre');
44
+ for(var i = 0; i < pres.length; i++) {
45
+ pre = pres[i];
46
+ spans = pre.getElementsByTagName('span');
47
+ for(var k = 0; k < spans.length; k++) {
48
+ span = spans[k];
49
+ if (span.className.match(/ruby-identifier/)) {
50
+ if (span.innerHTML.match(/^:/)) {
51
+ span.className += " ruby-symbol";
52
+ }
53
+ }
54
+ }
55
+ }
56
+ }
57
+
58
+ function hasClass(obj) {
59
+ var result = false;
60
+ if (obj.getAttributeNode("class") != null) {
61
+ result = obj.getAttributeNode("class").value;
62
+ }
63
+ return result;
64
+ }
65
+
66
+ function stripe() {
67
+ var even = true;
68
+ var color = "#e4ebed";
69
+ var tables = document.getElementsByTagName('table');
70
+ if (tables.length == 0) { return; }
71
+ for (var h = 0; h < tables.length; h++) {
72
+ var trs = tables[h].getElementsByTagName("tr");
73
+ for (var i = 0; i < trs.length; i++) {
74
+ var tds = trs[i].getElementsByTagName("td");
75
+ for (var j = 0; j < tds.length; j++) {
76
+ if (hasClass(tds[j]) != "first") {
77
+ var mytd = tds[j];
78
+ if (even) {
79
+ mytd.style.backgroundColor = color;
80
+ }
81
+ }
82
+ }
83
+ even = ! even;
84
+ }
85
+ }
86
+ }
87
+
88
+ function ajaxGet(url) {
89
+ url = (href_base + url).replace('/./', '/')
90
+ var req = false;
91
+
92
+ if (window.ActiveXObject) {
93
+ try {
94
+ // stupid hack because IE7 disables local Ajax with the native xmlhttprequest object
95
+ // for security purposes. Yet ActiveX still works. Thanks, Microsoft. I hate you. Die.
96
+ req = new ActiveXObject("MSXML2.XMLHTTP.3.0");
97
+ } catch (e) {
98
+ try {
99
+ /* IE 6 and maybe 5, don't know, don't care */
100
+ req = new ActiveXObject("Msxml2.XMLHTTP");
101
+ } catch (e) {
102
+ try {
103
+ req = new ActiveXObject("Microsoft.XMLHTTP");
104
+ } catch (e) {
105
+ req = false;
106
+ }
107
+ }
108
+ }
109
+ }
110
+
111
+ /* real browsers */
112
+ if (!req && window.XMLHttpRequest) {
113
+ try {
114
+ req = new XMLHttpRequest();
115
+ } catch (e) {
116
+ req = false;
117
+ }
118
+ }
119
+
120
+ if (req) {
121
+ req.open('GET', url, false);
122
+ req.send(null);
123
+ return req.responseText;
124
+ } else {
125
+ return "Ajax error";
126
+ }
127
+ }
128
+
129
+
130
+ function addEvent(elm, evType, fn, useCapture) {
131
+ if (elm.addEventListener) {
132
+ elm.addEventListener(evType, fn, useCapture);
133
+ return true;
134
+ } else if (elm.attachEvent) {
135
+ var r = elm.attachEvent('on' + evType, fn);
136
+ return r;
137
+ } else {
138
+ elm['on' + evType] = fn;
139
+ }
140
+ }
141
+
142
+ function insertIndices() {
143
+ pages = ["class", "file", "method"]
144
+ for (x in pages) {
145
+ $(pages[x]).innerHTML += ajaxGet('fr_' + pages[x] + '_index.html').replace(/(href=")/g, '$1' + href_base);
146
+ }
147
+ /* mouseoverify method links */
148
+ links = $('method').getElementsByTagName('a');
149
+ for (var x = 0; x < links.length; x++) {
150
+ if (m = links[x].innerHTML.match(/(.*)\s\((.*)\)/)) {
151
+ links[x].innerHTML = m[1] + '<br>';
152
+ links[x].title = m[2];
153
+ }
154
+ }
155
+ /* this is stupid */
156
+ $('class').style.display = "block";
157
+ $('file').style.display = "block";
158
+
159
+ /* has to be here because IE7 does not guarantee the onLoad callback order */
160
+ abbreviateIndicesInner(["class", "file"], 25, "a");
161
+ /* same, linkTitle() depends on the class link list */
162
+ linkTitle();
163
+ }
164
+
165
+ function abbreviateIndices() {
166
+ var ids = ["defined_in", "child_of", "includes", "requires", "method", "methods"];
167
+ abbreviateIndicesInner(ids, 25, 'a');
168
+ abbreviateIndicesInner(ids, 25, 'span');
169
+ }
170
+
171
+ function abbreviateIndicesInner(indices, amount, tag) {
172
+ for (var x = 0; x < indices.length; x++) {
173
+ var the_index = $(indices[x]);
174
+ if (the_index) {
175
+ links = the_index.getElementsByTagName(tag);
176
+ for (var y = 0; y < links.length; y++) {
177
+ var link = links[y];
178
+ if (link.getElementsByTagName('span').length == 0 && link.getElementsByTagName('a').length == 0) {
179
+ // avoid nesting
180
+ link.innerHTML = link.innerHTML.replace(/<br>|\n/gi, '');
181
+ link.title = link.innerHTML;
182
+ link.innerHTML = abbreviate(link.innerHTML, amount) + '<br>';
183
+ }
184
+ }
185
+ }
186
+ }
187
+ }
188
+
189
+ function linkTitle() {
190
+
191
+ /* grab the correct title element from the index */
192
+ var index_page = ajaxGet('index.html');
193
+ title_text = index_page.match(/<title>(.*)<\/title>/m)[1];
194
+ document.title = title_text + " - " + document.title;
195
+ var p = $('header').getElementsByTagName('p')[0]
196
+ if (p.innerHTML.match(/^\s*$/)) {
197
+ p.innerHTML = title_text;
198
+ } else {
199
+ p.innerHTML = title_text + ": " + p.innerHTML;
200
+ }
201
+
202
+ /* set the link properly */
203
+ title_link = index_page.match(/<a\s+href="(.*?)"/)[1];
204
+ var element = $('title');
205
+ var item_type = "";
206
+ var item_name = "";
207
+ if (m = element.innerHTML.match(/(Class:|Module:|File:)\s*(.*)/)) {
208
+ item_type = m[1];
209
+ item_name = m[2];
210
+ } else {
211
+ item_name = element.innerHTML;
212
+ }
213
+ element.innerHTML = '<a href="' + href_base + title_link + '">' + item_type + " " + abbreviate(item_name, 45) + '</a>';
214
+ element.getElementsByTagName('a')[0].title = item_name
215
+
216
+ /* breadcrumb navigation */
217
+ items = item_name.split("::");
218
+ items_new = item_name.split("::");
219
+ file_links = $('class').getElementsByTagName('a');
220
+ for (var x = 0; x < items.length - 1; x++ ){
221
+ var item = items[x];
222
+ link = ("/classes/" + items.slice(0,x).join("/") + "/" + item + ".html").replace('//', '/');
223
+ regex = new RegExp(RegExp.escape(link) + '$');
224
+ for (var y = 0; y < file_links.length; y++) {
225
+ if (file_links[y].href.match(regex)) {
226
+ items_new[x] = '<a href="' + href_base + link + '">' + item + '</a>';
227
+ break;
228
+ }
229
+ }
230
+ }
231
+ $('item_name').innerHTML = item_type + ' ' + items_new.join(" :: ");
232
+ }
233
+
234
+ function abbreviate(s, size) {
235
+ // Try to get rid of path and extension in any case. These are not
236
+ // even interesting if there is enough space.
237
+
238
+ s = s.replace(/\..*$/, '');
239
+ s = s.replace(/.*\//g, '');
240
+
241
+ // Now this is a blatant hack.
242
+
243
+ if (s == 'gosu')
244
+ return ''; // Noone will ever see the link, harhar!
245
+
246
+ while (s.length > size) {
247
+ var old_s = s;
248
+ s = s.replace(/\s|\n/mg, '');
249
+ s = s.replace(/([A-Z])[a-z]+/m, '$1');
250
+ if (!s || old_s == s) {
251
+ return "..." + s.substring(s.length - size, s.length);
252
+ }
253
+ }
254
+ return s;
255
+ }
256
+
257
+ function disableSubmit(event) {
258
+ var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
259
+ if (keyCode == 13) {
260
+ return false;
261
+ } else {
262
+ return true;
263
+ }
264
+ }
265
+
266
+ function filterList(id, s, event) {
267
+
268
+ /* some weak escaping */
269
+ s = s.replace(/[^\w\d\.\_\-\/\:\=\[\]\?\!]/g, '');
270
+ s = RegExp.escape(s);
271
+
272
+ var show_all = false;
273
+ if (s.match(/^\s*$/)) {
274
+ show_all = true;
275
+ }
276
+
277
+ links = $(id).getElementsByTagName('a')
278
+ regex = new RegExp(s, 'i');
279
+
280
+ for (var x = 0; x < links.length; x++) {
281
+ var link = links[x];
282
+ if (show_all) {
283
+ link.style.display = 'inline';
284
+ } else {
285
+ if (link.innerHTML.match(regex)) {
286
+ link.style.display = 'inline';
287
+ } else {
288
+ link.style.display = 'none';
289
+ }
290
+ }
291
+ }
292
+ return true;
293
+ }
294
+
295
+ RegExp.escape = function(text) {
296
+ if (!arguments.callee.sRE) {
297
+ var specials = ['/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\'];
298
+ arguments.callee.sRE = new RegExp(
299
+ '(\\' + specials.join('|\\') + ')', 'g'
300
+ );
301
+ }
302
+ return text.replace(arguments.callee.sRE, '\\$1');
303
+ }
304
+
305
+ function hacks() {
306
+ // show the spacer if necessary,
307
+ divs = document.getElementsByTagName('div');
308
+ for(var x = 0; x < divs.length; x++) {
309
+ if (divs[x].className && divs[x].className.match(/top/)) {
310
+ document.getElementById('spacer').style.display = 'block';
311
+ }
312
+ }
313
+ // remove extra colons from tables
314
+ tds = document.getElementsByTagName('td');
315
+ for(var x = 0; x < tds.length; x++) {
316
+ str = tds[x].innerHTML
317
+ if (str.charAt(str.length - 1) == ":") {
318
+ tds[x].innerHTML = str.slice(0, str.length - 1)
319
+ }
320
+ }
321
+ }
322
+
323
+ addEvent(window, 'load', insertIndices, false);
324
+ addEvent(window, 'load', abbreviateIndices, false);
325
+ addEvent(window, 'load', stripe, false);
326
+ addEvent(window, 'load', highlightSymbols, false);
327
+ addEvent(window, 'load', hacks, false);
328
+ </script></head><body><div id="container"><div class="curve" id="preheader_curve_0"></div><div class="curve" id="preheader_curve_1"></div><div class="curve" id="preheader_curve_2"></div><div class="curve" id="preheader_curve_3"></div><div class="curve" id="preheader_curve_4"></div><div class="curve" id="preheader_curve_5"></div><div id="header"><span><h1 id="title">
329
+ Class: Gosu::Song
330
+ </h1></span></div><div class="clear"></div><div id="left">
331
+ <div class="navigation darker top" id="child_of"><h3>Child of</h3><span>
332
+
333
+ Object
334
+ </span></div>
335
+
336
+ <div class="navigation darker top" id="defined_in"><h3>Defined in</h3>
337
+
338
+ <a href="../../files/reference/gosu_rb.html">reference/gosu.rb</a>
339
+
340
+ </div>
341
+
342
+
343
+
344
+ <div class="navigation top" id="methods"><h3>Methods</h3>
345
+
346
+
347
+ <a href='#M000020'>
348
+ current_song<br/>
349
+ </a>
350
+
351
+
352
+
353
+
354
+ <a href='#M000021'>
355
+ new<br/>
356
+ </a>
357
+
358
+
359
+
360
+
361
+ <a href='#M000023'>
362
+ pause<br/>
363
+ </a>
364
+
365
+
366
+
367
+
368
+ <a href='#M000024'>
369
+ paused?<br/>
370
+ </a>
371
+
372
+
373
+
374
+
375
+ <a href='#M000022'>
376
+ play<br/>
377
+ </a>
378
+
379
+
380
+
381
+
382
+ <a href='#M000026'>
383
+ playing?<br/>
384
+ </a>
385
+
386
+
387
+
388
+
389
+ <a href='#M000025'>
390
+ stop<br/>
391
+ </a>
392
+
393
+
394
+ </div>
395
+ <div id="spacer"></div><div class="navigation darker index" id="class_wrapper"><div class="list_header"><h3>All classes</h3></div><div class="list_header_link"><a href="#" onclick="toggle('class'); toggleText('class_link'); return false;" id="class_link">Hide...</a></div><div class="clear"></div><div id="class"><form><label for="filter_class">Filter:&nbsp;&nbsp;</label><input type="text" onKeyUp="return filterList('class', this.value, event);" onKeyPress="return disableSubmit(event);" id="filter_class"></input></form></div></div><div class="navigation darker index" id="file_wrapper"><div class="list_header"><h3>All files</h3></div><div class="list_header_link"><a href="#" onclick="toggle('file'); toggleText('file_link'); return false;" id="file_link">Hide...</a></div><div class="clear"></div><div id="file"><form><label for="filter_file">Filter:&nbsp;&nbsp;</label><input type="text" onKeyUp="return filterList('file', this.value, event);" onKeyPress="return disableSubmit(event);" id="filter_file"></input></form></div></div><div class="navigation darker index" id="method_wrapper"><div class="list_header"><h3>All methods</h3></div><div class="list_header_link"><a href="#" onclick="toggle('method'); toggleText('method_link'); return false;" id="method_link">Show...</a></div><div class="clear"></div><div id="method"><form><label for="filter_method">Filter:&nbsp;&nbsp;</label><input type="text" onKeyUp="return filterList('method', this.value, event);" onKeyPress="return disableSubmit(event);" id="filter_method"></input></form></div></div></div><div id="content">
396
+ <div id="description"><p>
397
+ Songs are less flexible than samples in that they can only be played one at
398
+ a time and without panning or speed parameters.
399
+ </p>
400
+ </div>
401
+
402
+
403
+
404
+
405
+ <p></p>
406
+
407
+
408
+
409
+
410
+ <h1>Attributes</h1><p><table><tr><th>Name</th><th>Read/write?</th></tr>
411
+ <tr>
412
+ <td class="highlight">volume</td>
413
+
414
+
415
+
416
+
417
+ <td class="normal">RW</td>
418
+ </tr>
419
+ </table></p>
420
+
421
+
422
+ <h1>Public Class Methods</h1>
423
+
424
+
425
+ <a class="small" name="M000020"><br/></a>
426
+ <div class="method_block"><h3>
427
+ <a href='#M000020'>
428
+
429
+
430
+ current_song
431
+
432
+ ()
433
+
434
+ </a>
435
+ </h3>
436
+ <p>
437
+ Returns the song currently being played or paused, or nil if no song has
438
+ been played yet or the last song has finished playing.
439
+ </p>
440
+
441
+ <p class="source_link" id="M000020-show-link"><a href="#" onclick="toggle('M000020-source'); toggleText('M000020-link'); return false;" id="M000020-link">Show source...</a></p><div class="source" id="M000020-source"><pre><span class="ruby-comment cmt"># File reference/gosu.rb, line 304</span>
442
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">current_song</span>; <span class="ruby-keyword kw">end</span></pre></div>
443
+ </div>
444
+
445
+ <a class="small" name="M000021"><br/></a>
446
+ <div class="method_block"><h3>
447
+ <a href='#M000021'>
448
+
449
+
450
+ new
451
+
452
+ (window, filename)
453
+
454
+ </a>
455
+ </h3>
456
+
457
+ <p class="source_link" id="M000021-show-link"><a href="#" onclick="toggle('M000021-source'); toggleText('M000021-link'); return false;" id="M000021-link">Show source...</a></p><div class="source" id="M000021-source"><pre><span class="ruby-comment cmt"># File reference/gosu.rb, line 308</span>
458
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">window</span>, <span class="ruby-identifier">filename</span>); <span class="ruby-keyword kw">end</span></pre></div>
459
+ </div>
460
+
461
+
462
+ <h1>Public Instance Methods</h1>
463
+
464
+
465
+ <a class="small" name="M000023"><br/></a>
466
+ <div class="method_block"><h3>
467
+ <a href='#M000023'>
468
+
469
+
470
+ pause
471
+
472
+ ()
473
+
474
+ </a>
475
+ </h3>
476
+ <p>
477
+ Pauses playback of the song. It is not considered being played. <a
478
+ href="Song.html#M000020">current_song</a> will stay the same.
479
+ </p>
480
+
481
+ <p class="source_link" id="M000023-show-link"><a href="#" onclick="toggle('M000023-source'); toggleText('M000023-link'); return false;" id="M000023-link">Show source...</a></p><div class="source" id="M000023-source"><pre><span class="ruby-comment cmt"># File reference/gosu.rb, line 316</span>
482
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">pause</span>; <span class="ruby-keyword kw">end</span></pre></div>
483
+ </div>
484
+
485
+ <a class="small" name="M000024"><br/></a>
486
+ <div class="method_block"><h3>
487
+ <a href='#M000024'>
488
+
489
+
490
+ paused?
491
+
492
+ ()
493
+
494
+ </a>
495
+ </h3>
496
+ <p>
497
+ Returns true if the song is the current song, but in paused mode.
498
+ </p>
499
+
500
+ <p class="source_link" id="M000024-show-link"><a href="#" onclick="toggle('M000024-source'); toggleText('M000024-link'); return false;" id="M000024-link">Show source...</a></p><div class="source" id="M000024-source"><pre><span class="ruby-comment cmt"># File reference/gosu.rb, line 320</span>
501
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">paused?</span>; <span class="ruby-keyword kw">end</span></pre></div>
502
+ </div>
503
+
504
+ <a class="small" name="M000022"><br/></a>
505
+ <div class="method_block"><h3>
506
+ <a href='#M000022'>
507
+
508
+
509
+ play
510
+
511
+ (looping = false)
512
+
513
+ </a>
514
+ </h3>
515
+ <p>
516
+ Starts or resumes playback of the song. This will <a
517
+ href="Song.html#M000025">stop</a> all other songs and set the current song
518
+ to this object.
519
+ </p>
520
+
521
+ <p class="source_link" id="M000022-show-link"><a href="#" onclick="toggle('M000022-source'); toggleText('M000022-link'); return false;" id="M000022-link">Show source...</a></p><div class="source" id="M000022-source"><pre><span class="ruby-comment cmt"># File reference/gosu.rb, line 312</span>
522
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">play</span>(<span class="ruby-identifier">looping</span> = <span class="ruby-keyword kw">false</span>); <span class="ruby-keyword kw">end</span></pre></div>
523
+ </div>
524
+
525
+ <a class="small" name="M000026"><br/></a>
526
+ <div class="method_block"><h3>
527
+ <a href='#M000026'>
528
+
529
+
530
+ playing?
531
+
532
+ ()
533
+
534
+ </a>
535
+ </h3>
536
+ <p>
537
+ Returns true if the song is currently playing.
538
+ </p>
539
+
540
+ <p class="source_link" id="M000026-show-link"><a href="#" onclick="toggle('M000026-source'); toggleText('M000026-link'); return false;" id="M000026-link">Show source...</a></p><div class="source" id="M000026-source"><pre><span class="ruby-comment cmt"># File reference/gosu.rb, line 327</span>
541
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">playing?</span>; <span class="ruby-keyword kw">end</span></pre></div>
542
+ </div>
543
+
544
+ <a class="small" name="M000025"><br/></a>
545
+ <div class="method_block"><h3>
546
+ <a href='#M000025'>
547
+
548
+
549
+ stop
550
+
551
+ ()
552
+
553
+ </a>
554
+ </h3>
555
+ <p>
556
+ Stops playback of this song if it is currently played or paused.
557
+ Afterwards, <a href="Song.html#M000020">current_song</a> will return 0.
558
+ </p>
559
+
560
+ <p class="source_link" id="M000025-show-link"><a href="#" onclick="toggle('M000025-source'); toggleText('M000025-link'); return false;" id="M000025-link">Show source...</a></p><div class="source" id="M000025-source"><pre><span class="ruby-comment cmt"># File reference/gosu.rb, line 324</span>
561
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">stop</span>; <span class="ruby-keyword kw">end</span></pre></div>
562
+ </div>
563
+
564
+
565
+
566
+
567
+
568
+ </div><div class="clear" id="footer">Allison 2 &copy; 2007 <a href="http://cloudbur.st">Cloudburst, LLC</a><br/>slightly adapted for the Gosu project by Julian Raschke</div></div></body></html>