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)43u32 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)82void 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)102bool Debug_GetWarningFlag( DebugWarningFlag warning ) 103 { 104 u32 bitFlag = GetWarningBitFlag( warning ); 105 106 return ( gWarningFlag & bitFlag ) == bitFlag; 107 } 108 Debug_GetDebugWarningFlagFromSoundType(DebugSoundType type)109DebugWarningFlag 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)125const 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