1 /*---------------------------------------------------------------------------*
2   Project:  NintendoWare
3   File:     snd_Debug.cpp
4 
5   Copyright (C)2009-2010 Nintendo Co., Ltd./HAL Laboratory, Inc.  All rights reserved.
6 
7   These coded instructions, statements, and computer programs contain
8   proprietary information of Nintendo of America Inc. and/or Nintendo
9   Company Ltd., and are protected by Federal copyright law.  They may
10   not be disclosed to third parties or copied or duplicated in any form,
11   in whole or in part, without the prior written consent of Nintendo.
12 
13   $Revision: 13145 $
14  *---------------------------------------------------------------------------*/
15 
16 #include "precompiled.h"
17 
18 #include <nw/snd/snd_Debug.h>
19 
20 #include <nn/types.h>
21 #include <nw/assert.h>
22 
23 namespace nw {
24 namespace snd {
25 
26 namespace {
27 
28 const u32 NOT_ENOUGH_SEQSOUND    = 0x00000001;
29 const u32 NOT_ENOUGH_STRMSOUND   = 0x00000002;
30 const u32 NOT_ENOUGH_WAVESOUND   = 0x00000004;
31 const u32 NOT_ENOUGH_SEQTRACK    = 0x00000008;
32 const u32 NOT_ENOUGH_STRMCHANNEL = 0x00000010;
33 const u32 NOT_ENOUGH_INSTANCE    = NOT_ENOUGH_SEQSOUND |
34                                    NOT_ENOUGH_STRMSOUND |
35                                    NOT_ENOUGH_WAVESOUND |
36                                    NOT_ENOUGH_SEQTRACK |
37                                    NOT_ENOUGH_STRMCHANNEL;
38 
39 u32 gWarningFlag = NOT_ENOUGH_INSTANCE;
40 
GetWarningBitFlag(DebugWarningFlag warning)41 u32 GetWarningBitFlag( DebugWarningFlag warning )
42 {
43     u32 bitFlag = 0;
44     switch ( warning )
45     {
46     case DEBUG_WARNING_NOT_ENOUGH_INSTANCE:
47         bitFlag = NOT_ENOUGH_INSTANCE;
48         break;
49     case DEBUG_WARNING_NOT_ENOUGH_SEQSOUND:
50         bitFlag = NOT_ENOUGH_SEQSOUND;
51         break;
52     case DEBUG_WARNING_NOT_ENOUGH_STRMSOUND:
53         bitFlag = NOT_ENOUGH_STRMSOUND;
54         break;
55     case DEBUG_WARNING_NOT_ENOUGH_WAVESOUND:
56         bitFlag = NOT_ENOUGH_WAVESOUND;
57         break;
58     case DEBUG_WARNING_NOT_ENOUGH_SEQTRACK:
59         bitFlag = NOT_ENOUGH_SEQTRACK;
60         break;
61     case DEBUG_WARNING_NOT_ENOUGH_STRMCHANNEL:
62         bitFlag = NOT_ENOUGH_STRMCHANNEL;
63         break;
64     }
65     return bitFlag;
66 }
67 
68 } // anonymous namespace
69 
70 /*---------------------------------------------------------------------------*
71   Name:         Debug_SetWarningFlag
72 
73   Description:  警告メッセージの出力を設定する
74 
75   Arguments:    warning -   警告メッセージの種類
76                 enable -    出力するなら true
77 
78   Returns:      なし
79  *---------------------------------------------------------------------------*/
Debug_SetWarningFlag(DebugWarningFlag warning,bool enable)80 void Debug_SetWarningFlag( DebugWarningFlag warning, bool enable )
81 {
82     u32 bitFlag = GetWarningBitFlag( warning );
83 
84     if ( enable )
85     {
86         gWarningFlag |= bitFlag;
87     }
88     else
89     {
90         gWarningFlag &= ~bitFlag;
91     }
92 }
93 
94 
95 /* ========================================================================
96         非公開
97    ======================================================================== */
98 
99 namespace internal {
Debug_GetWarningFlag(DebugWarningFlag warning)100 bool Debug_GetWarningFlag( DebugWarningFlag warning )
101 {
102     u32 bitFlag = GetWarningBitFlag( warning );
103 
104     return ( gWarningFlag & bitFlag ) == bitFlag;
105 }
106 
Debug_GetDebugWarningFlagFromSoundType(DebugSoundType type)107 DebugWarningFlag Debug_GetDebugWarningFlagFromSoundType( DebugSoundType type )
108 {
109     switch ( type )
110     {
111     case DEBUG_SOUND_TYPE_SEQSOUND:
112         return DEBUG_WARNING_NOT_ENOUGH_SEQSOUND;
113     case DEBUG_SOUND_TYPE_STRMSOUND:
114         return DEBUG_WARNING_NOT_ENOUGH_STRMSOUND;
115     case DEBUG_SOUND_TYPE_WAVESOUND:
116         return DEBUG_WARNING_NOT_ENOUGH_WAVESOUND;
117     default:
118         NW_ASSERT( false );
119         return DEBUG_WARNING_NOT_ENOUGH_SEQSOUND;
120     }
121 }
122 
Debug_GetSoundTypeString(DebugSoundType type)123 const char* Debug_GetSoundTypeString( DebugSoundType type )
124 {
125     switch ( type )
126     {
127     case DEBUG_SOUND_TYPE_SEQSOUND:
128         return "seq";
129     case DEBUG_SOUND_TYPE_STRMSOUND:
130         return "strm";
131     case DEBUG_SOUND_TYPE_WAVESOUND:
132         return "wave";
133     default:
134         NW_ASSERT( false );
135         return "";
136     }
137 }
138 
139 } // namespace nw::snd::internal
140 } // namespace nw::snd
141 } // namespace nw
142 
143