0
0
mirror of https://github.com/Nimac0/SDL_Minigame synced 2026-01-12 13:43:41 +00:00
SDL_Minigame/classSoundManager.html

362 lines
22 KiB
HTML

<!-- HTML header for doxygen 1.10.0-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=11" />
<meta name="generator" content="Doxygen 1.12.0" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>VEGO-Engine: SoundManager Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<script type="text/javascript" src="doxygen-awesome-darkmode-toggle.js"></script>
<script type="text/javascript">
DoxygenAwesomeDarkModeToggle.init()
</script>
<script type="text/javascript" src="doxygen-awesome-fragment-copy-button.js"></script>
<script type="text/javascript">
DoxygenAwesomeFragmentCopyButton.init()
</script>
<script type="text/javascript" src="doxygen-awesome-paragraph-link.js"></script>
<script type="text/javascript">
DoxygenAwesomeParagraphLink.init()
</script>
<script type="text/javascript" src="doxygen-awesome-interactive-toc.js"></script>
<script type="text/javascript">
DoxygenAwesomeInteractiveToc.init()
</script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
<link href="doxygen-awesome-sidebar-only.css" rel="stylesheet" type="text/css"/>
<link href="doxygen-awesome-sidebar-only-darkmode-toggle.css" rel="stylesheet" type="text/css"/>
<link href="custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top">
<!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">VEGO-Engine
<span id="projectnumber">&#160;0.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.12.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search',true);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('classSoundManager.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="classSoundManager-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">SoundManager Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Handles music and sound.
<a href="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="SoundManager_8h_source.html">SoundManager.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for SoundManager:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classSoundManager__coll__graph.svg" width="339" height="332"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aa8fa91c619fec47d8c94d46cb5eafee5" id="r_aa8fa91c619fec47d8c94d46cb5eafee5"><td class="memItemLeft" align="right" valign="top"><a id="aa8fa91c619fec47d8c94d46cb5eafee5" name="aa8fa91c619fec47d8c94d46cb5eafee5"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>SoundManager</b> (<a class="el" href="classSoundManager.html">SoundManager</a> const &amp;)=delete</td></tr>
<tr class="separator:aa8fa91c619fec47d8c94d46cb5eafee5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c1b1a903d6f644f69d23d81b00f2960" id="r_a8c1b1a903d6f644f69d23d81b00f2960"><td class="memItemLeft" align="right" valign="top"><a id="a8c1b1a903d6f644f69d23d81b00f2960" name="a8c1b1a903d6f644f69d23d81b00f2960"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="classSoundManager.html">SoundManager</a> const &amp;)=delete</td></tr>
<tr class="separator:a8c1b1a903d6f644f69d23d81b00f2960"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7400b9492a9abbff59600d3466463f7" id="r_ab7400b9492a9abbff59600d3466463f7"><td class="memItemLeft" align="right" valign="top">Mix_Music *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab7400b9492a9abbff59600d3466463f7">loadMusic</a> (const char *fileName)</td></tr>
<tr class="memdesc:ab7400b9492a9abbff59600d3466463f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads music from a file (mp3) <br /></td></tr>
<tr class="separator:ab7400b9492a9abbff59600d3466463f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1709ad13be7aa35945288fe7881ef886" id="r_a1709ad13be7aa35945288fe7881ef886"><td class="memItemLeft" align="right" valign="top">Mix_Chunk *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1709ad13be7aa35945288fe7881ef886">loadSound</a> (const char *fileName)</td></tr>
<tr class="memdesc:a1709ad13be7aa35945288fe7881ef886"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads sound effects from a file (wav) <br /></td></tr>
<tr class="separator:a1709ad13be7aa35945288fe7881ef886"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a868041e81dbc012629f78063201acc02" id="r_a868041e81dbc012629f78063201acc02"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a868041e81dbc012629f78063201acc02">playSound</a> (<a class="el" href="classGameInternal.html">GameInternal</a> *game, std::string sound, bool canOverlap, int loops, int volume, int channel)</td></tr>
<tr class="memdesc:a868041e81dbc012629f78063201acc02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles playing of sound effects. <br /></td></tr>
<tr class="separator:a868041e81dbc012629f78063201acc02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6e691964b526b134495b7bcc60e3745" id="r_ad6e691964b526b134495b7bcc60e3745"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad6e691964b526b134495b7bcc60e3745">playMusic</a> (<a class="el" href="classGameInternal.html">GameInternal</a> *game, std::string sound, int loops, int volume, int ms)</td></tr>
<tr class="memdesc:ad6e691964b526b134495b7bcc60e3745"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles playing of music. <br /></td></tr>
<tr class="separator:ad6e691964b526b134495b7bcc60e3745"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af99aee751f8300ba4041af004a97d319" id="r_af99aee751f8300ba4041af004a97d319"><td class="memItemLeft" align="right" valign="top"><a id="af99aee751f8300ba4041af004a97d319" name="af99aee751f8300ba4041af004a97d319"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><b>setSoundVolume</b> (int volume, int channel)</td></tr>
<tr class="memdesc:af99aee751f8300ba4041af004a97d319"><td class="mdescLeft">&#160;</td><td class="mdescRight">Volume handling for sound effects (either all or on a specific channel) <br /></td></tr>
<tr class="separator:af99aee751f8300ba4041af004a97d319"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5ad38c2322c75ba5481c60c4c26e0e8" id="r_ac5ad38c2322c75ba5481c60c4c26e0e8"><td class="memItemLeft" align="right" valign="top"><a id="ac5ad38c2322c75ba5481c60c4c26e0e8" name="ac5ad38c2322c75ba5481c60c4c26e0e8"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><b>setMusicVolume</b> (int volume)</td></tr>
<tr class="memdesc:ac5ad38c2322c75ba5481c60c4c26e0e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Volume handling for music track. <br /></td></tr>
<tr class="separator:ac5ad38c2322c75ba5481c60c4c26e0e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8031476c2ccd2dd1c40a39a102bc5844" id="r_a8031476c2ccd2dd1c40a39a102bc5844"><td class="memItemLeft" align="right" valign="top"><a id="a8031476c2ccd2dd1c40a39a102bc5844" name="a8031476c2ccd2dd1c40a39a102bc5844"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><b>pauseSound</b> (int channel)</td></tr>
<tr class="memdesc:a8031476c2ccd2dd1c40a39a102bc5844"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles pausing sound effects (either all or on a specific channel) <br /></td></tr>
<tr class="separator:a8031476c2ccd2dd1c40a39a102bc5844"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5071bf5e87394afdb1e4148227ffc3ea" id="r_a5071bf5e87394afdb1e4148227ffc3ea"><td class="memItemLeft" align="right" valign="top"><a id="a5071bf5e87394afdb1e4148227ffc3ea" name="a5071bf5e87394afdb1e4148227ffc3ea"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><b>pauseMusic</b> ()</td></tr>
<tr class="memdesc:a5071bf5e87394afdb1e4148227ffc3ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles pausing music track. <br /></td></tr>
<tr class="separator:a5071bf5e87394afdb1e4148227ffc3ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac24dc06983603020f6556273d3c78df3" id="r_ac24dc06983603020f6556273d3c78df3"><td class="memItemLeft" align="right" valign="top"><a id="ac24dc06983603020f6556273d3c78df3" name="ac24dc06983603020f6556273d3c78df3"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><b>restartSound</b> (int channel)</td></tr>
<tr class="memdesc:ac24dc06983603020f6556273d3c78df3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles resuming sound effects (either all or on a specific channel) <br /></td></tr>
<tr class="separator:ac24dc06983603020f6556273d3c78df3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaca970232ead83c6c107331f3d9ee0db" id="r_aaca970232ead83c6c107331f3d9ee0db"><td class="memItemLeft" align="right" valign="top"><a id="aaca970232ead83c6c107331f3d9ee0db" name="aaca970232ead83c6c107331f3d9ee0db"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><b>restartMusic</b> ()</td></tr>
<tr class="memdesc:aaca970232ead83c6c107331f3d9ee0db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles resuming music track. <br /></td></tr>
<tr class="separator:aaca970232ead83c6c107331f3d9ee0db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea6a94c8b5456812c49115baa7534bf7" id="r_aea6a94c8b5456812c49115baa7534bf7"><td class="memItemLeft" align="right" valign="top"><a id="aea6a94c8b5456812c49115baa7534bf7" name="aea6a94c8b5456812c49115baa7534bf7"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><b>fadeOutMusic</b> (int ms)</td></tr>
<tr class="memdesc:aea6a94c8b5456812c49115baa7534bf7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles fading out a music track. <br /></td></tr>
<tr class="separator:aea6a94c8b5456812c49115baa7534bf7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:ab7a859cf5fbb6a95cc2cc7d660ae7474" id="r_ab7a859cf5fbb6a95cc2cc7d660ae7474"><td class="memItemLeft" align="right" valign="top"><a id="ab7a859cf5fbb6a95cc2cc7d660ae7474" name="ab7a859cf5fbb6a95cc2cc7d660ae7474"></a>
std::map&lt; const char *, Mix_Music * &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>music_cache</b></td></tr>
<tr class="separator:ab7a859cf5fbb6a95cc2cc7d660ae7474"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3dddd57a27730d6fb7fd33695f68140" id="r_ab3dddd57a27730d6fb7fd33695f68140"><td class="memItemLeft" align="right" valign="top"><a id="ab3dddd57a27730d6fb7fd33695f68140" name="ab3dddd57a27730d6fb7fd33695f68140"></a>
std::map&lt; const char *, Mix_Chunk * &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>sound_cache</b></td></tr>
<tr class="separator:ab3dddd57a27730d6fb7fd33695f68140"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Handles music and sound. </p>
<p><a class="el" href="classSoundManager.html" title="Handles music and sound.">SoundManager</a> handles loading in music and sound effects from files, playing music and sound effects and toggling the audio volume. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="ab7400b9492a9abbff59600d3466463f7" name="ab7400b9492a9abbff59600d3466463f7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab7400b9492a9abbff59600d3466463f7">&#9670;&#160;</a></span>loadMusic()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">Mix_Music * SoundManager::loadMusic </td>
<td>(</td>
<td class="paramtype">const char *</td> <td class="paramname"><span class="paramname"><em>fileName</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Loads music from a file (mp3) </p>
<dl class="section return"><dt>Returns</dt><dd>a pointer to Mix_Music </dd></dl>
<dl class="section see"><dt>See also</dt><dd>AssetManager::AddMusic(std::string id, const char* path) </dd></dl>
</div>
</div>
<a id="a1709ad13be7aa35945288fe7881ef886" name="a1709ad13be7aa35945288fe7881ef886"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1709ad13be7aa35945288fe7881ef886">&#9670;&#160;</a></span>loadSound()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">Mix_Chunk * SoundManager::loadSound </td>
<td>(</td>
<td class="paramtype">const char *</td> <td class="paramname"><span class="paramname"><em>fileName</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Loads sound effects from a file (wav) </p>
<dl class="section return"><dt>Returns</dt><dd>a pointer to Mix_Chunk </dd></dl>
<dl class="section see"><dt>See also</dt><dd>AssetManager::AddSound(std::string id, const char* path) </dd></dl>
</div>
</div>
<a id="ad6e691964b526b134495b7bcc60e3745" name="ad6e691964b526b134495b7bcc60e3745"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad6e691964b526b134495b7bcc60e3745">&#9670;&#160;</a></span>playMusic()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void SoundManager::playMusic </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classGameInternal.html">GameInternal</a> *</td> <td class="paramname"><span class="paramname"><em>game</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string</td> <td class="paramname"><span class="paramname"><em>sound</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>loops</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>volume</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>ms</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Handles playing of music. </p>
<p>Handles how often track can loop, as well as the volume at which the specified track should play and if it fades in. </p>
</div>
</div>
<a id="a868041e81dbc012629f78063201acc02" name="a868041e81dbc012629f78063201acc02"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a868041e81dbc012629f78063201acc02">&#9670;&#160;</a></span>playSound()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void SoundManager::playSound </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classGameInternal.html">GameInternal</a> *</td> <td class="paramname"><span class="paramname"><em>game</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string</td> <td class="paramname"><span class="paramname"><em>sound</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>canOverlap</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>loops</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>volume</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>channel</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Handles playing of sound effects. </p>
<p>Handles if sounds can overlap, how often they can loop, as well as the volume at which the specified sound effect should play and on which channel the soundeffect should play. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>include/<a class="el" href="SoundManager_8h_source.html">SoundManager.h</a></li>
<li>src/<b>SoundManager.cpp</b></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="classSoundManager.html">SoundManager</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0 </li>
</ul>
</div>
</body>
</html>