| 171 | |
| 172 | |
| 173 | void RemoteZynAddSubFx::guiLoop() |
| 174 | { |
| 175 | int exitProgram = 0; |
| 176 | MasterUI * ui = NULL; |
| 177 | |
| 178 | while( !m_guiExit ) |
| 179 | { |
| 180 | if( ui ) |
| 181 | { |
| 182 | Fl::wait( m_guiSleepTime / 1000.0 ); |
| 183 | } |
| 184 | else |
| 185 | { |
| 186 | #ifdef LMMS_BUILD_WIN32 |
| 187 | Sleep( m_guiSleepTime ); |
| 188 | #else |
| 189 | usleep( m_guiSleepTime*1000 ); |
| 190 | #endif |
| 191 | } |
| 192 | if( exitProgram == 1 ) |
| 193 | { |
| 194 | pthread_mutex_lock( &m_master->mutex ); |
| 195 | sendMessage( IdHideUI ); |
| 196 | exitProgram = 0; |
| 197 | pthread_mutex_unlock( &m_master->mutex ); |
| 198 | } |
| 199 | pthread_mutex_lock( &m_guiMutex ); |
| 200 | while( m_guiMessages.size() ) |
| 201 | { |
| 202 | RemotePluginClient::message m = m_guiMessages.front(); |
| 203 | m_guiMessages.pop(); |
| 204 | switch( m.id ) |
| 205 | { |
| 206 | case IdShowUI: |
| 207 | // we only create GUI |
| 208 | if( !ui ) |
| 209 | { |
| 210 | Fl::scheme( "plastic" ); |
| 211 | ui = new MasterUI( m_master, &exitProgram ); |
| 212 | } |
| 213 | ui->showUI(); |
| 214 | ui->refresh_master_ui(); |
| 215 | break; |
| 216 | |
| 217 | case IdLoadSettingsFromFile: |
| 218 | { |
| 219 | LocalZynAddSubFx::loadXML( m.getString() ); |
| 220 | if( ui ) |
| 221 | { |
| 222 | ui->refresh_master_ui(); |
| 223 | } |
| 224 | pthread_mutex_lock( &m_master->mutex ); |
| 225 | sendMessage( IdLoadSettingsFromFile ); |
| 226 | pthread_mutex_unlock( &m_master->mutex ); |
| 227 | break; |
| 228 | } |
| 229 | |
| 230 | case IdLoadPresetFile: |