Skip to content

Asset.Sound ​

アセット関連 / サウンドを担当するクラス

所属:assetのAPI解説 · 全モジュール索引

読み方 ​

このページは実ファイルから生成したソース照合用資料です。公開関数の引数・戻り値の型、オーバーロード、列挙値を確認できます。public/protected/privateを区別し、privateメンバーを呼び出し例に使わないでください。コメントは原文であり、古い説明や誤記を含む場合があります。利用条件・訂正は上記のAPI解説と既知の制約を優先してください。

元ファイル:ProjectName/code/Asset/Sound/Sound.ixx。確認基準:08f9fa53。

インターフェースとインライン実装 ​

cpp
export module Asset.Sound;

import <memory>;
import <unordered_map>;
import <string>;

import Asset.AssetBase;
import Asset.DivisionGraph;
export import Asset.SoundDef;
import MyLib.Math.Vector2;

/// <summary>
/// アセット関連
/// </summary>
export namespace asset
{
    /// <summary>
    /// サウンドを担当するクラス
    /// </summary>
    export class Sound final :public AssetBase
    {
        // 前方宣言
        struct SoundInfo;

    public:
        /// <summary>
        /// コンストラクタ
        /// </summary>
        Sound() = default;

        /// <summary>
        /// デストラクタ
        /// </summary>
        ~Sound();

        /// <summary>
        /// ハンドル生成
        /// </summary>
        /// <param name="soundName">サウンド名</param>
        /// <param name="fileName">ファイル名</param>
        void CreateHandle(std::string soundName, std::string fileName) override;

        /// <summary>
        /// ハンドル生成(非同期)
        /// </summary>
        /// <param name="soundName">サウンド名</param>
        /// <param name="fileName">ファイル名</param>
        void CreateHandleAsync(std::string soundName, std::string fileName) override;

        /// <summary>
        /// サウンド追加
        /// </summary>
        /// <param name="soundDef">サウンド定義</param>
        /// <param name="fileName">ファイル名</param>
        void AddSound(const SoundDef& soundDef, std::string fileName = "");

        /// <summary>
        /// ハンドル削除
        /// </summary>
        /// <param name="name">削除するサウンド名</param>
        void DeleteHandle(std::string soundName) override;

        /// <summary>
        /// サウンド削除
        /// </summary>
        /// <param name="animName">削除するサウンド名</param>
        void DeleteSound(const std::string& soundName);

        /// <summary>
        /// サウンド取得
        /// </summary>
        /// <param name="animName">取得するアニメーション</param>
        /// <returns>取得対象のアニメーション</returns>
        const SoundInfo GetSound(const std::string& soundName) const
        {
            if (m_sounds.find(soundName) != m_sounds.end())
            {
                return m_sounds.at(soundName);
            }
            return {};
        }

    private:
        /// <summary>
        /// サウンド情報
        /// </summary>
        struct SoundInfo
        {
            int handle = -1;    // ハンドル
            SoundDef soundDef;  // サウンド定義
        };
        std::unordered_map<std::string, SoundInfo> m_sounds;  // サウンド群
    };
}

コード確認基準:08f9fa53 · C++実機検証は別途実施