# HG changeset patch # User ib # Date 1407342938 0 # Node ID c63629427fdedd6f8845e25a8dc35ba24a9f4788 # Parent 67efc9d84be2546e7bb4e72cdd73d10340842b5b Apply skin defaults in Win32 GUI. The starting defaults for volume, balance and movie position are defined in the skin used by the GUI. So far, the Win32 GUI has completely ignored these. Based on a patch by Stephen Sheldon, sfsheldo gmail com. diff -r 67efc9d84be2 -r c63629427fde gui/win32/gui.c --- a/gui/win32/gui.c Wed Aug 06 13:03:22 2014 +0000 +++ b/gui/win32/gui.c Wed Aug 06 16:35:38 2014 +0000 @@ -237,6 +237,20 @@ return -1; } +static void get_widgetvalue(skin_t *skin, int event, float *value) +{ + unsigned int i; + + if (!skin) return; + + for (i=0; iwidgetcount; i++) + if (skin->widgets[i]->msg == event) + { + *value = skin->widgets[i]->value; + return; + } +} + static void uninit(gui_t *gui) { if(gui->skin) destroy_window(gui); @@ -1659,6 +1673,17 @@ /* enable drag and drop support */ DragAcceptFiles(gui->mainwindow, TRUE); + /* set defaults */ + gui->default_volume = 50.0f; + gui->default_balance = 50.0f; + + /* get defaults from skin */ + get_widgetvalue(gui->skin, evSetVolume, &gui->default_volume); + get_widgetvalue(gui->skin, evSetBalance, &gui->default_balance); + get_widgetvalue(gui->skin, evSetMoviePosition, &guiInfo.Position); + + if (guiInfo.Position) gui->playercontrol(evSetMoviePosition); + updatedisplay(gui, gui->mainwindow); /* display */ diff -r 67efc9d84be2 -r c63629427fde gui/win32/gui.h --- a/gui/win32/gui.h Wed Aug 06 13:03:22 2014 +0000 +++ b/gui/win32/gui.h Wed Aug 06 16:35:38 2014 +0000 @@ -85,6 +85,9 @@ int playlistwindow; int aboutwindow; + float default_volume; + float default_balance; + skin_t *skin; playlist_t *playlist; diff -r 67efc9d84be2 -r c63629427fde gui/win32/interface.c --- a/gui/win32/interface.c Wed Aug 06 13:03:22 2014 +0000 +++ b/gui/win32/interface.c Wed Aug 06 16:35:38 2014 +0000 @@ -537,6 +537,9 @@ /* Wait until the gui is created */ while(!mygui) Sleep(100); mp_msg(MSGT_GPLAYER, MSGL_V, "[GUI] GUI thread started.\n"); + + guiInfo.Volume = mygui->default_volume; + guiInfo.Balance = mygui->default_balance; } void guiDone(void) @@ -636,6 +639,8 @@ guiInfo.AudioChannels = 0; guiInfo.AudioPassthrough = FALSE; } + guiSetEvent(evSetVolume); + guiSetEvent(evSetBalance); if(IsWindowVisible(mygui->videowindow) && !guiInfo.VideoWindow) ShowWindow(mygui->videowindow, SW_HIDE); break;