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