fix play music then changing tabs

This commit is contained in:
2026-03-28 21:56:42 +03:00
parent e45b65af23
commit 29ff210adb
6 changed files with 15 additions and 23 deletions

View File

@@ -34,12 +34,12 @@ namespace monitor::components
void audio::init(std::string snapshot_id, std::filesystem::path file)
{
m_player.stop();
m_current_audio = music{ .m_id = snapshot_id, .m_current_time = sf::Time(), .m_file = file };
m_audio_data[snapshot_id] = m_current_audio;
m_audio_data[snapshot_id] = music{ .m_id = snapshot_id, .m_current_time = sf::Time(), .m_file = file };
}
void audio::change(std::string snapshot_id)
{
hack::log()(m_current_audio.m_current_time.asSeconds());
m_audio_data[m_current_audio.m_id].m_current_time = m_current_audio.m_current_time;
m_player.stop();
m_current_audio = m_audio_data[snapshot_id];
@@ -51,7 +51,7 @@ namespace monitor::components
{
m_current_audio.m_current_time = time;
// HERE
// начинаем тут, делаем установку мсаркера проигрывания
// начинаем тут, делаем установку маркера проигрывания
VE::event e { utils::event_type::INCREMENT_MARKER_AUDIO_POSITION, pos };
EMIT(e);
}

View File

@@ -27,21 +27,15 @@ namespace monitor::components
switch (type)
{
case utils::event_type::SET_AUDIO_STATUS:
{
m_status = std::any_cast<utils::var::STATUS>(e.m_data);
break;
}
case utils::event_type::SET_AUDIO_FILE:
case utils::event_type::INIT_AUDIO:
{
auto [snapshot_id, file] = std::any_cast<std::pair<std::string, std::filesystem::path>>(e.m_data);
m_status = utils::var::STATUS::ACTIVE;
init(snapshot_id, file);
change(snapshot_id);
break;
}
case utils::event_type::CHANGE_AUDIO_FILE:
case utils::event_type::CHANGE_AUDIO:
{
auto snapshot_id = std::any_cast<std::string>(e.m_data);
change(snapshot_id);

View File

@@ -33,10 +33,7 @@ namespace monitor::components
m_setup = setup;
m_base_plugins.init(m_snapshot_id, m_setup);
VE::event e1 { utils::event_type::SET_AUDIO_STATUS, utils::var::STATUS::ACTIVE };
EMIT(e1);
VE::event e2 { utils::event_type::SET_AUDIO_FILE, std::pair<std::string, std::filesystem::path>(m_snapshot_id, setup.m_file) };
EMIT(e2);
VE::event e { utils::event_type::INIT_AUDIO, std::pair<std::string, std::filesystem::path>(m_snapshot_id, setup.m_file) };
EMIT(e);
}
}

View File

@@ -31,7 +31,8 @@ namespace monitor::components
VE::event e0 { utils::event_type::CREATE_SNAPSHOT_COMPLETED, nullptr };
EMIT(e0);
m_current_open_index = m_snapshots.size() - 1 ;
change_tab(m_snapshots.size() - 1);
}
void tabs::change_tab(std::size_t i)
@@ -40,7 +41,8 @@ namespace monitor::components
m_snapshots[i]->set_status(utils::var::STATUS::ACTIVE);
m_current_open_index = i;
VE::event e { utils::event_type::CHANGE_AUDIO_FILE, m_snapshots[i]->m_snapshot_id };
// send to: components/audio
VE::event e { utils::event_type::CHANGE_AUDIO, m_snapshots[i]->m_snapshot_id };
EMIT(e);
};
}

View File

@@ -15,7 +15,7 @@ namespace monitor::libs
// сделать выбор устройства из интерфейса
// поставь, то которое есть в списке устройств
for (auto& d : devices) std::cout << d << std::endl;
std::string target_device = devices[2];
std::string target_device = devices[1];
if (sf::PlaybackDevice::setDevice(target_device))
hack::log()("Устройство успешно установлено: ", target_device);
else

View File

@@ -8,9 +8,8 @@ namespace monitor::utils
CREATE_SNAPSHOT_COMPLETED,
STATUS_PROCESS,
STATUS_COMPLETED,
SET_AUDIO_STATUS,
SET_AUDIO_FILE,
CHANGE_AUDIO_FILE,
INIT_AUDIO,
CHANGE_AUDIO,
/// делать