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)41u32 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)80void 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)100bool Debug_GetWarningFlag( DebugWarningFlag warning ) 101 { 102 u32 bitFlag = GetWarningBitFlag( warning ); 103 104 return ( gWarningFlag & bitFlag ) == bitFlag; 105 } 106 Debug_GetDebugWarningFlagFromSoundType(DebugSoundType type)107DebugWarningFlag 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)123const 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