add: Player class
This commit is contained in:
parent
1c8de670ac
commit
665735626e
|
|
@ -65,7 +65,7 @@ void e2d::Animate::Init()
|
|||
auto target = dynamic_cast<Sprite*>(target_);
|
||||
if (target && animation_)
|
||||
{
|
||||
target->Open(animation_->GetFrames()[frame_index_]);
|
||||
target->Load(animation_->GetFrames()[frame_index_]);
|
||||
++frame_index_;
|
||||
}
|
||||
}
|
||||
|
|
@ -87,7 +87,7 @@ void e2d::Animate::Update()
|
|||
|
||||
if (target)
|
||||
{
|
||||
target->Open(frames[frame_index_]);
|
||||
target->Load(frames[frame_index_]);
|
||||
}
|
||||
|
||||
started_ += Duration(animation_->GetInterval());
|
||||
|
|
|
|||
|
|
@ -55,12 +55,12 @@ namespace e2d
|
|||
virtual ~Image();
|
||||
|
||||
// 加载图片资源
|
||||
bool Open(
|
||||
bool Load(
|
||||
const Resource& res
|
||||
);
|
||||
|
||||
// 加载图片资源
|
||||
bool Open(
|
||||
bool Load(
|
||||
const String& file_name
|
||||
);
|
||||
|
||||
|
|
@ -108,13 +108,13 @@ namespace e2d
|
|||
protected:
|
||||
E2D_DISABLE_COPY(Image);
|
||||
|
||||
// ¼ÓÔØÍ¼Æ¬×ÊÔ´
|
||||
bool Load(
|
||||
// »º´æ Bitmap ×ÊÔ´
|
||||
static bool CacheBitmap(
|
||||
const String& file_name
|
||||
);
|
||||
|
||||
// ¼ÓÔØÍ¼Æ¬×ÊÔ´
|
||||
bool Load(
|
||||
// »º´æ Bitmap ×ÊÔ´
|
||||
static bool CacheBitmap(
|
||||
const Resource& res
|
||||
);
|
||||
|
||||
|
|
@ -729,17 +729,17 @@ namespace e2d
|
|||
virtual ~Sprite();
|
||||
|
||||
// 加载图片文件
|
||||
bool Open(
|
||||
bool Load(
|
||||
const Resource& res
|
||||
);
|
||||
|
||||
// 加载图片文件
|
||||
bool Open(
|
||||
bool Load(
|
||||
const String& file_name
|
||||
);
|
||||
|
||||
// 加载图片
|
||||
bool Open(
|
||||
bool Load(
|
||||
Image * image
|
||||
);
|
||||
|
||||
|
|
|
|||
106
core/e2dtool.h
106
core/e2dtool.h
|
|
@ -86,12 +86,12 @@ namespace e2d
|
|||
virtual ~Music();
|
||||
|
||||
// 打开音乐文件
|
||||
bool Open(
|
||||
bool Load(
|
||||
const e2d::String& file_path /* 音乐文件路径 */
|
||||
);
|
||||
|
||||
// 打开音乐资源
|
||||
bool Open(
|
||||
bool Load(
|
||||
const Resource& res
|
||||
);
|
||||
|
||||
|
|
@ -134,6 +134,8 @@ namespace e2d
|
|||
IXAudio2SourceVoice * GetSourceVoice() const;
|
||||
|
||||
protected:
|
||||
E2D_DISABLE_COPY(Music);
|
||||
|
||||
bool ReadMMIO();
|
||||
|
||||
bool ResetFile();
|
||||
|
|
@ -163,6 +165,106 @@ namespace e2d
|
|||
};
|
||||
|
||||
|
||||
// 音乐播放器
|
||||
class Player
|
||||
{
|
||||
public:
|
||||
Player();
|
||||
|
||||
~Player();
|
||||
|
||||
// 预加载音乐资源
|
||||
bool Load(
|
||||
const String& file_path /* 音乐文件路径 */
|
||||
);
|
||||
|
||||
// 播放音乐
|
||||
bool Play(
|
||||
const String& file_path, /* 音乐文件路径 */
|
||||
int loop_count = 0 /* 重复播放次数,设置 -1 为循环播放 */
|
||||
);
|
||||
|
||||
// 暂停音乐
|
||||
void Pause(
|
||||
const String& file_path /* 音乐文件路径 */
|
||||
);
|
||||
|
||||
// 继续播放音乐
|
||||
void Resume(
|
||||
const String& file_path /* 音乐文件路径 */
|
||||
);
|
||||
|
||||
// 停止音乐
|
||||
void Stop(
|
||||
const String& file_path /* 音乐文件路径 */
|
||||
);
|
||||
|
||||
// 获取音乐播放状态
|
||||
bool IsPlaying(
|
||||
const String& file_path /* 音乐文件路径 */
|
||||
);
|
||||
|
||||
// 预加载音乐资源
|
||||
bool Load(
|
||||
const Resource& res /* 音乐资源 */
|
||||
);
|
||||
|
||||
// 播放音乐
|
||||
bool Play(
|
||||
const Resource& res, /* 音乐资源 */
|
||||
int loop_count = 0 /* 重复播放次数,设置 -1 为循环播放 */
|
||||
);
|
||||
|
||||
// 暂停音乐
|
||||
void Pause(
|
||||
const Resource& res /* 音乐资源 */
|
||||
);
|
||||
|
||||
// 继续播放音乐
|
||||
void Resume(
|
||||
const Resource& res /* 音乐资源 */
|
||||
);
|
||||
|
||||
// 停止音乐
|
||||
void Stop(
|
||||
const Resource& res /* 音乐资源 */
|
||||
);
|
||||
|
||||
// 获取音乐播放状态
|
||||
bool IsPlaying(
|
||||
const Resource& res /* 音乐资源 */
|
||||
);
|
||||
|
||||
// 获取音量
|
||||
float GetVolume();
|
||||
|
||||
// 设置音量
|
||||
void SetVolume(
|
||||
float volume /* 音量范围为 -224 ~ 224,0 是静音,1 是正常音量 */
|
||||
);
|
||||
|
||||
// 暂停所有音乐
|
||||
void PauseAll();
|
||||
|
||||
// 继续播放所有音乐
|
||||
void ResumeAll();
|
||||
|
||||
// 停止所有音乐
|
||||
void StopAll();
|
||||
|
||||
// 清除缓存
|
||||
static void ClearCache();
|
||||
|
||||
protected:
|
||||
E2D_DISABLE_COPY(Player);
|
||||
|
||||
protected:
|
||||
float volume_;
|
||||
|
||||
static std::map<size_t, Music*> musics_;
|
||||
};
|
||||
|
||||
|
||||
// 数据管理工具
|
||||
class Data
|
||||
{
|
||||
|
|
|
|||
|
|
@ -60,6 +60,7 @@ e2d::Game::~Game()
|
|||
SafeRelease(next_scene_);
|
||||
|
||||
Image::ClearCache();
|
||||
Player::ClearCache();
|
||||
Device::Destroy();
|
||||
|
||||
if (hwnd_)
|
||||
|
|
|
|||
|
|
@ -34,14 +34,14 @@ e2d::Image::Image(const Resource& res)
|
|||
: bitmap_(nullptr)
|
||||
, crop_rect_()
|
||||
{
|
||||
this->Open(res);
|
||||
this->Load(res);
|
||||
}
|
||||
|
||||
e2d::Image::Image(const Resource& res, const Rect& crop_rect)
|
||||
: bitmap_(nullptr)
|
||||
, crop_rect_()
|
||||
{
|
||||
this->Open(res);
|
||||
this->Load(res);
|
||||
this->Crop(crop_rect);
|
||||
}
|
||||
|
||||
|
|
@ -49,14 +49,14 @@ e2d::Image::Image(const String & file_name)
|
|||
: bitmap_(nullptr)
|
||||
, crop_rect_()
|
||||
{
|
||||
this->Open(file_name);
|
||||
this->Load(file_name);
|
||||
}
|
||||
|
||||
e2d::Image::Image(const String & file_name, const Rect & crop_rect)
|
||||
: bitmap_(nullptr)
|
||||
, crop_rect_()
|
||||
{
|
||||
this->Open(file_name);
|
||||
this->Load(file_name);
|
||||
this->Crop(crop_rect);
|
||||
}
|
||||
|
||||
|
|
@ -65,9 +65,9 @@ e2d::Image::~Image()
|
|||
SafeRelease(bitmap_);
|
||||
}
|
||||
|
||||
bool e2d::Image::Open(const Resource& res)
|
||||
bool e2d::Image::Load(const Resource& res)
|
||||
{
|
||||
if (!Image::Load(res))
|
||||
if (!Image::CacheBitmap(res))
|
||||
{
|
||||
WARN("Load Image from file failed!");
|
||||
return false;
|
||||
|
|
@ -77,14 +77,14 @@ bool e2d::Image::Open(const Resource& res)
|
|||
return true;
|
||||
}
|
||||
|
||||
bool e2d::Image::Open(const String & file_name)
|
||||
bool e2d::Image::Load(const String & file_name)
|
||||
{
|
||||
WARN_IF(file_name.IsEmpty(), "Image Open failed! Invalid file name.");
|
||||
WARN_IF(file_name.IsEmpty(), "Image Load failed! Invalid file name.");
|
||||
|
||||
if (file_name.IsEmpty())
|
||||
return false;
|
||||
|
||||
if (!Image::Load(file_name))
|
||||
if (!Image::CacheBitmap(file_name))
|
||||
{
|
||||
WARN("Load Image from file failed!");
|
||||
return false;
|
||||
|
|
@ -182,7 +182,7 @@ ID2D1Bitmap * e2d::Image::GetBitmap() const
|
|||
return bitmap_;
|
||||
}
|
||||
|
||||
bool e2d::Image::Load(const Resource& res)
|
||||
bool e2d::Image::CacheBitmap(const Resource& res)
|
||||
{
|
||||
if (bitmap_cache_.find(res.id) != bitmap_cache_.end())
|
||||
{
|
||||
|
|
@ -308,7 +308,7 @@ bool e2d::Image::Load(const Resource& res)
|
|||
return SUCCEEDED(hr);
|
||||
}
|
||||
|
||||
bool e2d::Image::Load(const String & file_name)
|
||||
bool e2d::Image::CacheBitmap(const String & file_name)
|
||||
{
|
||||
size_t hash = file_name.GetHash();
|
||||
if (bitmap_cache_.find(hash) != bitmap_cache_.end())
|
||||
|
|
@ -322,8 +322,9 @@ bool e2d::Image::Load(const String & file_name)
|
|||
// 默认搜索路径,所以需要通过 File::GetPath 获取完整路径
|
||||
String image_file_path = image_file.GetPath();
|
||||
|
||||
IWICImagingFactory *imaging_factory = Device::GetGraphics()->GetImagingFactory();
|
||||
ID2D1HwndRenderTarget* render_target = Device::GetGraphics()->GetRenderTarget();
|
||||
Graphics * graphics_device = Device::GetGraphics();
|
||||
IWICImagingFactory *imaging_factory = graphics_device->GetImagingFactory();
|
||||
ID2D1HwndRenderTarget* render_target = graphics_device->GetRenderTarget();
|
||||
IWICBitmapDecoder *decoder = nullptr;
|
||||
IWICBitmapFrameDecode *source = nullptr;
|
||||
IWICStream *stream = nullptr;
|
||||
|
|
|
|||
|
|
@ -29,32 +29,32 @@ e2d::Sprite::Sprite()
|
|||
e2d::Sprite::Sprite(Image * image)
|
||||
: image_(nullptr)
|
||||
{
|
||||
Open(image);
|
||||
Load(image);
|
||||
}
|
||||
|
||||
e2d::Sprite::Sprite(const Resource& res)
|
||||
: image_(nullptr)
|
||||
{
|
||||
Open(res);
|
||||
Load(res);
|
||||
}
|
||||
|
||||
e2d::Sprite::Sprite(const Resource& res, const Rect& crop_rect)
|
||||
: image_(nullptr)
|
||||
{
|
||||
Open(res);
|
||||
Load(res);
|
||||
Crop(crop_rect);
|
||||
}
|
||||
|
||||
e2d::Sprite::Sprite(const String & file_name)
|
||||
: image_(nullptr)
|
||||
{
|
||||
Open(file_name);
|
||||
Load(file_name);
|
||||
}
|
||||
|
||||
e2d::Sprite::Sprite(const String & file_name, const Rect & crop_rect)
|
||||
: image_(nullptr)
|
||||
{
|
||||
Open(file_name);
|
||||
Load(file_name);
|
||||
Crop(crop_rect);
|
||||
}
|
||||
|
||||
|
|
@ -63,7 +63,7 @@ e2d::Sprite::~Sprite()
|
|||
SafeRelease(image_);
|
||||
}
|
||||
|
||||
bool e2d::Sprite::Open(Image * image)
|
||||
bool e2d::Sprite::Load(Image * image)
|
||||
{
|
||||
if (image)
|
||||
{
|
||||
|
|
@ -81,7 +81,7 @@ bool e2d::Sprite::Open(Image * image)
|
|||
return false;
|
||||
}
|
||||
|
||||
bool e2d::Sprite::Open(const Resource& res)
|
||||
bool e2d::Sprite::Load(const Resource& res)
|
||||
{
|
||||
if (!image_)
|
||||
{
|
||||
|
|
@ -89,7 +89,7 @@ bool e2d::Sprite::Open(const Resource& res)
|
|||
image_->Retain();
|
||||
}
|
||||
|
||||
if (image_->Open(res))
|
||||
if (image_->Load(res))
|
||||
{
|
||||
Node::SetSize(image_->GetWidth(), image_->GetHeight());
|
||||
return true;
|
||||
|
|
@ -97,7 +97,7 @@ bool e2d::Sprite::Open(const Resource& res)
|
|||
return false;
|
||||
}
|
||||
|
||||
bool e2d::Sprite::Open(const String & file_name)
|
||||
bool e2d::Sprite::Load(const String & file_name)
|
||||
{
|
||||
if (!image_)
|
||||
{
|
||||
|
|
@ -105,7 +105,7 @@ bool e2d::Sprite::Open(const String & file_name)
|
|||
image_->Retain();
|
||||
}
|
||||
|
||||
if (image_->Open(file_name))
|
||||
if (image_->Load(file_name))
|
||||
{
|
||||
Node::SetSize(image_->GetWidth(), image_->GetHeight());
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ e2d::Music::Music(const e2d::String & file_path)
|
|||
, voice_(nullptr)
|
||||
, callback_()
|
||||
{
|
||||
this->Open(file_path);
|
||||
this->Load(file_path);
|
||||
}
|
||||
|
||||
e2d::Music::Music(const Resource& res)
|
||||
|
|
@ -78,7 +78,7 @@ e2d::Music::Music(const Resource& res)
|
|||
, voice_(nullptr)
|
||||
, callback_()
|
||||
{
|
||||
this->Open(res);
|
||||
this->Load(res);
|
||||
}
|
||||
|
||||
e2d::Music::~Music()
|
||||
|
|
@ -86,7 +86,7 @@ e2d::Music::~Music()
|
|||
Close();
|
||||
}
|
||||
|
||||
bool e2d::Music::Open(const e2d::String & file_path)
|
||||
bool e2d::Music::Load(const e2d::String & file_path)
|
||||
{
|
||||
if (opened_)
|
||||
{
|
||||
|
|
@ -95,14 +95,14 @@ bool e2d::Music::Open(const e2d::String & file_path)
|
|||
|
||||
if (file_path.IsEmpty())
|
||||
{
|
||||
WARN("Music::Open error: Invalid file name.");
|
||||
WARN("Music::Load error: Invalid file name.");
|
||||
return false;
|
||||
}
|
||||
|
||||
File music_file;
|
||||
if (!music_file.Open(file_path))
|
||||
{
|
||||
WARN("Music::Open error: File not found.");
|
||||
WARN("Music::Load error: File not found.");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -160,7 +160,7 @@ bool e2d::Music::Open(const e2d::String & file_path)
|
|||
return true;
|
||||
}
|
||||
|
||||
bool e2d::Music::Open(const Resource& res)
|
||||
bool e2d::Music::Load(const Resource& res)
|
||||
{
|
||||
if (opened_)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -0,0 +1,204 @@
|
|||
#include "..\e2dtool.h"
|
||||
|
||||
|
||||
std::map<size_t, e2d::Music*> e2d::Player::musics_;
|
||||
|
||||
e2d::Player::Player()
|
||||
: volume_(1.f)
|
||||
{
|
||||
}
|
||||
|
||||
e2d::Player::~Player()
|
||||
{
|
||||
}
|
||||
|
||||
bool e2d::Player::Load(const String & file_path)
|
||||
{
|
||||
if (file_path.IsEmpty())
|
||||
return false;
|
||||
|
||||
Music * music = new (std::nothrow) Music();
|
||||
|
||||
if (music)
|
||||
{
|
||||
if (music->Load(file_path))
|
||||
{
|
||||
music->SetVolume(volume_);
|
||||
musics_.insert(std::make_pair(file_path.GetHash(), music));
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
delete music;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool e2d::Player::Play(const String & file_path, int loop_count)
|
||||
{
|
||||
if (file_path.IsEmpty())
|
||||
return false;
|
||||
|
||||
if (Load(file_path))
|
||||
{
|
||||
auto music = musics_[file_path.GetHash()];
|
||||
if (music->Play(loop_count))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void e2d::Player::Pause(const String & file_path)
|
||||
{
|
||||
if (file_path.IsEmpty())
|
||||
return;
|
||||
|
||||
size_t hash = file_path.GetHash();
|
||||
if (musics_.end() != musics_.find(hash))
|
||||
musics_[hash]->Pause();
|
||||
}
|
||||
|
||||
void e2d::Player::Resume(const String & file_path)
|
||||
{
|
||||
if (file_path.IsEmpty())
|
||||
return;
|
||||
|
||||
size_t hash = file_path.GetHash();
|
||||
if (musics_.end() != musics_.find(hash))
|
||||
musics_[hash]->Resume();
|
||||
}
|
||||
|
||||
void e2d::Player::Stop(const String & file_path)
|
||||
{
|
||||
if (file_path.IsEmpty())
|
||||
return;
|
||||
|
||||
size_t hash = file_path.GetHash();
|
||||
if (musics_.end() != musics_.find(hash))
|
||||
musics_[hash]->Stop();
|
||||
}
|
||||
|
||||
bool e2d::Player::IsPlaying(const String & file_path)
|
||||
{
|
||||
if (file_path.IsEmpty())
|
||||
return false;
|
||||
|
||||
size_t hash = file_path.GetHash();
|
||||
if (musics_.end() != musics_.find(hash))
|
||||
return musics_[hash]->IsPlaying();
|
||||
return false;
|
||||
}
|
||||
|
||||
bool e2d::Player::Load(const Resource& res)
|
||||
{
|
||||
if (musics_.end() != musics_.find(res.id))
|
||||
return true;
|
||||
|
||||
Music * music = new (std::nothrow) Music();
|
||||
|
||||
if (music)
|
||||
{
|
||||
if (music->Load(res))
|
||||
{
|
||||
music->SetVolume(volume_);
|
||||
musics_.insert(std::make_pair(res.id, music));
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
delete music;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool e2d::Player::Play(const Resource& res, int loop_count)
|
||||
{
|
||||
if (Load(res))
|
||||
{
|
||||
auto music = musics_[res.id];
|
||||
if (music->Play(loop_count))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void e2d::Player::Pause(const Resource& res)
|
||||
{
|
||||
if (musics_.end() != musics_.find(res.id))
|
||||
musics_[res.id]->Pause();
|
||||
}
|
||||
|
||||
void e2d::Player::Resume(const Resource& res)
|
||||
{
|
||||
if (musics_.end() != musics_.find(res.id))
|
||||
musics_[res.id]->Resume();
|
||||
}
|
||||
|
||||
void e2d::Player::Stop(const Resource& res)
|
||||
{
|
||||
if (musics_.end() != musics_.find(res.id))
|
||||
musics_[res.id]->Stop();
|
||||
}
|
||||
|
||||
bool e2d::Player::IsPlaying(const Resource& res)
|
||||
{
|
||||
if (musics_.end() != musics_.find(res.id))
|
||||
return musics_[res.id]->IsPlaying();
|
||||
return false;
|
||||
}
|
||||
|
||||
float e2d::Player::GetVolume()
|
||||
{
|
||||
return volume_;
|
||||
}
|
||||
|
||||
void e2d::Player::SetVolume(float volume)
|
||||
{
|
||||
volume_ = std::min(std::max(volume, -224.f), 224.f);
|
||||
for (const auto& pair : musics_)
|
||||
{
|
||||
pair.second->SetVolume(volume_);
|
||||
}
|
||||
}
|
||||
|
||||
void e2d::Player::PauseAll()
|
||||
{
|
||||
for (const auto& pair : musics_)
|
||||
{
|
||||
pair.second->Pause();
|
||||
}
|
||||
}
|
||||
|
||||
void e2d::Player::ResumeAll()
|
||||
{
|
||||
for (const auto& pair : musics_)
|
||||
{
|
||||
pair.second->Resume();
|
||||
}
|
||||
}
|
||||
|
||||
void e2d::Player::StopAll()
|
||||
{
|
||||
for (const auto& pair : musics_)
|
||||
{
|
||||
pair.second->Stop();
|
||||
}
|
||||
}
|
||||
|
||||
void e2d::Player::ClearCache()
|
||||
{
|
||||
if (musics_.empty())
|
||||
return;
|
||||
|
||||
for (const auto& pair : musics_)
|
||||
{
|
||||
delete pair.second;
|
||||
}
|
||||
musics_.clear();
|
||||
}
|
||||
|
|
@ -62,6 +62,7 @@
|
|||
<ClCompile Include="..\..\core\tools\File.cpp" />
|
||||
<ClCompile Include="..\..\core\tools\Music.cpp" />
|
||||
<ClCompile Include="..\..\core\tools\Path.cpp" />
|
||||
<ClCompile Include="..\..\core\tools\Player.cpp" />
|
||||
<ClCompile Include="..\..\core\tools\Random.cpp" />
|
||||
<ClCompile Include="..\..\core\transitions\BoxTransition.cpp" />
|
||||
<ClCompile Include="..\..\core\transitions\EmergeTransition.cpp" />
|
||||
|
|
|
|||
|
|
@ -162,6 +162,9 @@
|
|||
<ClCompile Include="..\..\core\tools\Path.cpp">
|
||||
<Filter>tools</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\core\tools\Player.cpp">
|
||||
<Filter>tools</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\core\tools\Random.cpp">
|
||||
<Filter>tools</Filter>
|
||||
</ClCompile>
|
||||
|
|
|
|||
|
|
@ -206,6 +206,7 @@
|
|||
<ClCompile Include="..\..\core\tools\File.cpp" />
|
||||
<ClCompile Include="..\..\core\tools\Music.cpp" />
|
||||
<ClCompile Include="..\..\core\tools\Path.cpp" />
|
||||
<ClCompile Include="..\..\core\tools\Player.cpp" />
|
||||
<ClCompile Include="..\..\core\tools\Random.cpp" />
|
||||
<ClCompile Include="..\..\core\transitions\BoxTransition.cpp" />
|
||||
<ClCompile Include="..\..\core\transitions\EmergeTransition.cpp" />
|
||||
|
|
|
|||
|
|
@ -162,6 +162,9 @@
|
|||
<ClCompile Include="..\..\core\tools\Path.cpp">
|
||||
<Filter>tools</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\core\tools\Player.cpp">
|
||||
<Filter>tools</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\core\tools\Random.cpp">
|
||||
<Filter>tools</Filter>
|
||||
</ClCompile>
|
||||
|
|
|
|||
|
|
@ -239,6 +239,7 @@
|
|||
<ClCompile Include="..\..\core\tools\File.cpp" />
|
||||
<ClCompile Include="..\..\core\tools\Music.cpp" />
|
||||
<ClCompile Include="..\..\core\tools\Path.cpp" />
|
||||
<ClCompile Include="..\..\core\tools\Player.cpp" />
|
||||
<ClCompile Include="..\..\core\tools\Random.cpp" />
|
||||
<ClCompile Include="..\..\core\transitions\BoxTransition.cpp" />
|
||||
<ClCompile Include="..\..\core\transitions\EmergeTransition.cpp" />
|
||||
|
|
|
|||
|
|
@ -162,6 +162,9 @@
|
|||
<ClCompile Include="..\..\core\tools\Path.cpp">
|
||||
<Filter>tools</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\core\tools\Player.cpp">
|
||||
<Filter>tools</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\core\tools\Random.cpp">
|
||||
<Filter>tools</Filter>
|
||||
</ClCompile>
|
||||
|
|
|
|||
Loading…
Reference in New Issue