Browse Source

feat: take Audio m_audio_handler as a pointer

Douglas A 1 năm trước cách đây
mục cha
commit
0adb0a49f6
2 tập tin đã thay đổi với 29 bổ sung20 xóa
  1. 23 17
      src/BaseWindow.cpp
  2. 6 3
      src/BaseWindow.h

+ 23 - 17
src/BaseWindow.cpp

@@ -4,17 +4,24 @@
 
 #include <iostream>
 
-void window_resize_callback(GLFWwindow *window, int width, int height)
+void window_resize_callback(GLFWwindow *, int width, int height)
 {
     glViewport(0, 0, width, height);
 }
 
-BaseWindow::BaseWindow(int width, int height, const char *title, Color clear_color, Audio audio_handler)
-    : m_window_height(height),
-      m_window_width(width),
-      m_window_title(title),
-      m_clear_color(clear_color),
-      m_audio_handler(audio_handler) {}
+BaseWindow::BaseWindow(int width, int height, const char* title, Color clear_color, Audio* audio_handler)
+    :   m_clear_color(clear_color),
+        m_window_width(width),
+        m_window_height(height),
+        m_window_title(title),
+        m_audio_handler(audio_handler)
+    {
+
+
+
+          std::cout << "Hello from constructor\n";
+
+    }
 
 BaseWindow::~BaseWindow()
 {
@@ -76,25 +83,24 @@ int BaseWindow::run()
         // Draw IMGUI
         ImGui::Begin("Hello!");
         {
-            static int clicked = 0;
             if (ImGui::Button("Add Music"))
             {
                 fileDialog.Open();
             }
 
             static std::filesystem::path selected;
-            if (m_audio_handler.loaded_files().size() > 0)
+            if (m_audio_handler->loaded_files().size() > 0)
             {
                 if (ImGui::BeginListBox("##", ImVec2(-FLT_MIN, 5 * ImGui::GetTextLineHeightWithSpacing())))
                 {
 
-                    for (auto file : m_audio_handler.loaded_files())
+                    for (auto file : m_audio_handler->loaded_files())
                     {
                         bool is_selected = selected.compare(file);
                         if (ImGui::Selectable(file.string().c_str(), is_selected))
                         {
                             selected = file;
-                            m_audio_handler.select_file(file);
+                            m_audio_handler->select_file(file);
                         }
 
                         if (is_selected)
@@ -110,8 +116,8 @@ int BaseWindow::run()
         fileDialog.Display();
         if (fileDialog.HasSelected())
         {
-            m_audio_handler.load_file(fileDialog.GetSelected());
-            m_audio_handler.select_file(fileDialog.GetSelected());
+            m_audio_handler->load_file(fileDialog.GetSelected());
+            m_audio_handler->select_file(fileDialog.GetSelected());
             fileDialog.ClearSelected();
         }
 
@@ -119,18 +125,18 @@ int BaseWindow::run()
         {
             if (ImGui::Button("Play"))
             {
-                m_audio_handler.play();
+                m_audio_handler->play();
             }
             if (ImGui::Button("Stop"))
             {
-                m_audio_handler.stop();
+                m_audio_handler->stop();
             }
         }
         ImGui::End();
 
-        if (m_audio_handler.decoder().is_finished)
+        if (m_audio_handler->decoder().is_finished)
         {
-            m_audio_handler.next_music();
+            m_audio_handler->next_music();
         }
 
         ImGui::Render();

+ 6 - 3
src/BaseWindow.h

@@ -6,6 +6,8 @@
 #include <imgui_impl_glfw.h>
 #include <imgui_impl_opengl3.h>
 
+
+
 #include "Audio.h"
 
 
@@ -29,7 +31,8 @@ struct Color {
 class BaseWindow {
 
     public:
-    BaseWindow(int width, int height, const char* title, Color, Audio audio_handler);
+    BaseWindow(int width, int height, const char* title, Color clear_color, Audio* audio_handler)
+;
     ~BaseWindow();
     int run();
 
@@ -39,5 +42,5 @@ class BaseWindow {
     int m_window_height;
     const char* m_window_title;
     GLFWwindow* m_window{};
-    Audio m_audio_handler;
-};
+    Audio* m_audio_handler;
+};