1414
1515#include < string>
1616
17- #include < dirent.h>
18- 1917const float FPS = 60 ;
2018
2119struct projectMApp
@@ -144,6 +142,17 @@ void keyHandler(const SDL_Event& sdl_evt)
144142 projectm_key_handler (app.pm , evt, key, mod);
145143}
146144
145+ void presetSwitchedEvent (bool isHardCut, unsigned int index, void * context)
146+ {
147+ auto presetName = projectm_get_preset_name (app.pm , index);
148+ SDL_LogInfo (SDL_LOG_CATEGORY_APPLICATION, " Displaying preset: %s\n " , presetName);
149+ 150+ std::string newTitle = " projectM ➫ " + std::string (presetName);
151+ projectm_free_string (presetName);
152+ 153+ SDL_SetWindowTitle (app.win , newTitle.c_str ());
154+ }
155+ 147156void renderFrame ()
148157{
149158 SDL_Event evt;
@@ -220,28 +229,27 @@ int main(int argc, char* argv[])
220229 }
221230
222231 app.settings .mesh_x = 48 ;
223- app.settings .mesh_y = 32 ;
232+ app.settings .mesh_y = 48 ;
224233 app.settings .fps = FPS;
225234 app.settings .texture_size = 1024 ;
226235 app.settings .window_width = width;
227236 app.settings .window_height = height;
228237 app.settings .soft_cut_duration = 3 ; // seconds
229- app.settings .preset_duration = 5 ; // seconds
230- app.settings .beat_sensitivity = 0.8 ;
238+ app.settings .preset_duration = 30 ; // seconds
239+ app.settings .beat_sensitivity = 0.9 ;
231240 app.settings .aspect_correction = 1 ;
232241 app.settings .easter_egg = 0 ; // ???
233242 app.settings .shuffle_enabled = 1 ;
234243 app.settings .soft_cut_ratings_enabled = 1 ; // ???
235244 app.settings .preset_url = projectm_alloc_string (8 );
236- strncpy (app.settings .preset_url , " presets" , 8 );
245+ strncpy (app.settings .preset_url , " / presets" , 8 );
237246
238247 // init projectM
239248 app.pm = projectm_create_settings (&(app.settings ), PROJECTM_FLAG_NONE);
240- printf (" init projectM\n " );
241249 projectm_select_random_preset (app.pm , true );
242- printf (" select random\n " );
243250 projectm_set_window_size (app.pm , width, height);
244- printf (" resetGL\n " );
251+ projectm_set_preset_switched_event_callback (app.pm , &presetSwitchedEvent, nullptr );
252+ printf (" projectM initialized.\n " );
245253
246254 // get an audio input device
247255 if (!selectAudioInput (&app))
@@ -250,29 +258,6 @@ int main(int argc, char* argv[])
250258 return 1 ;
251259 }
252260
253- // Allocate a new a stream given the current directory name
254- DIR* m_dir;
255- if ((m_dir = opendir (" /" )) == nullptr )
256- {
257- printf (" error opening /\n " );
258- }
259- else
260- {
261- struct dirent * dir_entry;
262- while ((dir_entry = readdir (m_dir)) != nullptr )
263- {
264- printf (" %s\n " , dir_entry->d_name );
265- }
266- }
267- 268- auto playlistSize = projectm_get_playlist_size (app.pm );
269- for (unsigned int i = 0 ; i < playlistSize; i++)
270- {
271- auto presetName = projectm_get_preset_name (app.pm , i);
272- printf (" %u\t %s\n " , i, presetName);
273- projectm_free_string (presetName);
274- }
275- 276261 emscripten_set_main_loop (renderFrame, 0 , 0 );
277262
278263 return 0 ;
0 commit comments