{\r
\r
if (args.Length() == 1 && args[0]->IsBoolean()) {\r
- auto fade = args[1]->ToBoolean()->BooleanValue();\r
+ auto fade = args[0]->ToBoolean()->BooleanValue();\r
ResourceManager::music()->Stop(fade);\r
}else if(args.Length() == 0) {\r
- ResourceManager::music()->Stop(false);\r
+ ResourceManager::music()->Stop(true);\r
}\r
\r
return Undefined();\r
extern int LoadFile(const TCHAR *FilePath, void **FileImageAddr, int *FileSize);
+
Music::Music() :
bgm_handle_(),
se_handle_(),
-prev_bgm_(-1),
-present_bgm_(-1),
-requested_bgm_(-1),
-music_paths_(),
crossfade_now_(false),
-fade_count_(0)
+fade_out_(false),
+fade_count_(-1),
+present_bgm_(-1),
+prev_bgm_(-1),
+requested_bgm_(-1)
{
}
{
StopSoundMem(present_bgm_);
}
- crossfade_now_ = fadeout;
+ if(crossfade_now_)
+ {
+ StopSoundMem(present_bgm_);
+ present_bgm_ = requested_bgm_;
+ }
+ crossfade_now_ = false;
+ fade_out_ = fadeout;
+ fadeout_count_ = GetVolumeSoundMem(present_bgm_);
fade_count_ = 0;
+ requested_bgm_ = -1;
}
void Music::PlaySE(tstring name)
crossfade_now_ = true;
}
}
- if(!crossfade_now_)return;
- if(CheckHandleASyncLoad(requested_bgm_) == false && requested_bgm_ != -1)
+ if(CheckHandleASyncLoad(requested_bgm_) == false && requested_bgm_ != -1 && crossfade_now_)
{
if(fade_count_ == 0)PlaySoundMem(requested_bgm_,DX_PLAYTYPE_LOOP);
+ ChangeVolumeSoundMem((int)((90.0-(double)fade_count_)/0.9),present_bgm_);
+ ChangeVolumeSoundMem((int)((double)fade_count_/0.9),requested_bgm_);
+ ++fade_count_;
if(fade_count_ >= 90)
{
ChangeVolumeSoundMem(100,requested_bgm_);
fade_count_ = 0;
crossfade_now_ = false;
}
- ChangeVolumeSoundMem((int)((double)fade_count_/0.9),requested_bgm_);
+ }
+ if(fade_out_ == true)
+ {
+ if(fadeout_count_ >= 90)
+ {
+ StopSoundMem(present_bgm_);
+ ChangeVolumeSoundMem(100,present_bgm_);
+ present_bgm_ = -1;
+ fadeout_count_ = 0;
+ fade_out_ = false;
+ requested_bgm_ = -1;
+ }
ChangeVolumeSoundMem((int)((90.0-(double)fade_count_)/0.9),present_bgm_);
- ++fade_count_;
+ ++fadeout_count_;
}
}
/***MetaData***
{
- "name": "BGM\83\8a\83X\83g",
+ "name": "BGMリスト",
"icon": "icon.png",
"api_version": 1
}
Music.onReload = function () {
list.clearItems();
-
var even_line = false;
var music_names = Music.all();
for (var i = 0; i < music_names.length; i++) {
})
);
})(music_names[i])
- }
+}
+ list.addItem(
+ new UI.Label({
+ docking: UI.DOCKING_TOP | UI.DOCKING_LEFT | UI.DOCKING_RIGHT,
+ text: "再生停止",
+ bgcolor: ((even_line = !even_line) ? "#EEAFEECC" : "#FFFFFFCC"),
+ onclick: function () {
+ Music.stop(true)
+ }
+ })
+ );
}
Music.onReload();