| File src/command.cpp changed (mode: 100644) (index 7443464..e3e029a) | 
	| ... | ... | Control::set_mpd_idle_events(enum mpd_idle idle_reply) | 
	| 308 | 308 | pms->log(MSG_DEBUG, 0, "Set pending MPD IDLE events: %s\n", buffer); | pms->log(MSG_DEBUG, 0, "Set pending MPD IDLE events: %s\n", buffer); | 
	| 309 | 309 | } | } | 
	| 310 | 310 |  |  | 
	|  | 311 |  | /** | 
	|  | 312 |  | * Check if there are pending updates. | 
	|  | 313 |  | * | 
	|  | 314 |  | * Returns true if there are pending updates, false if not. | 
	|  | 315 |  | */ | 
	|  | 316 |  | bool | 
	|  | 317 |  | Control::has_pending_updates() | 
	|  | 318 |  | { | 
	|  | 319 |  | return (idle_events != 0); | 
	|  | 320 |  | } | 
	|  | 321 |  |  | 
	| 311 | 322 | /** | /** | 
	| 312 | 323 | * Run all pending updates. | * Run all pending updates. | 
	|  | 324 |  | * | 
	|  | 325 |  | * Returns true on success, false on failure. | 
	| 313 | 326 | */ | */ | 
	| 314 | 327 | bool | bool | 
	| 315 | 328 | Control::run_pending_updates() | Control::run_pending_updates() | 
|  | 
	| ... | ... | Control::run_pending_updates() | 
	| 349 | 362 | set_update_done(MPD_IDLE_DATABASE); | set_update_done(MPD_IDLE_DATABASE); | 
	| 350 | 363 | } | } | 
	| 351 | 364 |  |  | 
	|  | 365 |  | /* Hack to make has_pending_updates() work smoothly without too much | 
	|  | 366 |  | * effort. We don't care about the rest of the events, so we just | 
	|  | 367 |  | * pretend they never happened. */ | 
	|  | 368 |  | idle_events = 0; | 
	|  | 369 |  |  | 
	| 352 | 370 | return true; | return true; | 
	| 353 | 371 | } | } | 
	| 354 | 372 |  |  | 
|  | 
	| ... | ... | Control::add(Songlist * list, Song * song) | 
	| 787 | 805 |  |  | 
	| 788 | 806 | EXIT_IDLE; | EXIT_IDLE; | 
	| 789 | 807 |  |  | 
	|  | 808 |  | pms->log(MSG_DEBUG, 0, "Adding song %s to list %s\n", song->file.c_str(), list->filename.c_str()); | 
	|  | 809 |  |  | 
	| 790 | 810 | if (list == _playlist) { | if (list == _playlist) { | 
	| 791 | 811 | return mpd_run_add_id(conn->h(), song->file.c_str()); | return mpd_run_add_id(conn->h(), song->file.c_str()); | 
	| 792 | 812 | } else if (list != _library) { | } else if (list != _library) { | 
| File src/command.h changed (mode: 100644) (index 3c3c185..eabe977) | 
	| ... | ... | public: | 
	| 247 | 247 |  |  | 
	| 248 | 248 | /* IDLE dispatcher */ | /* IDLE dispatcher */ | 
	| 249 | 249 | void			set_mpd_idle_events(enum mpd_idle); | void			set_mpd_idle_events(enum mpd_idle); | 
	|  | 250 |  | bool			has_pending_updates(); | 
	| 250 | 251 | bool			run_pending_updates(); | bool			run_pending_updates(); | 
	| 251 | 252 | void			set_update_done(enum mpd_idle); | void			set_update_done(enum mpd_idle); | 
	| 252 | 253 | bool			has_finished_update(enum mpd_idle); | bool			has_finished_update(enum mpd_idle); | 
| File src/pms.cpp changed (mode: 100644) (index a0d9070..c7a4e36) | 
	| ... | ... | Pms::main() | 
	| 426 | 426 |  |  | 
	| 427 | 427 | /* Run any pending updates */ | /* Run any pending updates */ | 
	| 428 | 428 | if (!comm->run_pending_updates()) { | if (!comm->run_pending_updates()) { | 
	| 429 |  | log(MSG_DEBUG, 0, "Failed running pending updates, MPD error follows:\n"); |  | 
	|  | 429 |  | log(MSG_DEBUG, 0, "Failed running pending updates, MPD error follows in next main loop iteration\n"); | 
	| 430 | 430 | continue; | continue; | 
	| 431 | 431 | } | } | 
	| 432 | 432 |  |  | 
|  | 
	| ... | ... | Pms::main() | 
	| 502 | 502 | disp->refresh(); | disp->refresh(); | 
	| 503 | 503 |  |  | 
	| 504 | 504 |  |  | 
	| 505 |  |  |  | 
	| 506 |  |  |  | 
	| 507 | 505 | /** | /** | 
	| 508 | 506 | * Start IDLE mode and polling. Keep this code at the end of | * Start IDLE mode and polling. Keep this code at the end of | 
	| 509 | 507 | * the main loop. | * the main loop. | 
|  | 
	| ... | ... | Pms::main() | 
	| 532 | 530 | } | } | 
	| 533 | 531 | } | } | 
	| 534 | 532 |  |  | 
	| 535 |  | continue; |  | 
	| 536 |  |  |  | 
	| 537 |  |  |  | 
	| 538 |  | /* Progress to next song? */ |  | 
	| 539 |  | progress_nextsong(); |  | 
	| 540 |  |  |  | 
	| 541 | 533 | /* Draw XTerm window title */ | /* Draw XTerm window title */ | 
	|  | 534 |  | /* FIXME: only draw when needed */ | 
	| 542 | 535 | disp->set_xterm_title(); | disp->set_xterm_title(); | 
	| 543 | 536 |  |  | 
	|  | 537 |  | /* Progress to next song if applicable, and make sure we are | 
	|  | 538 |  | * synched with IDLE events before doing it. */ | 
	|  | 539 |  | if (!comm->has_pending_updates()) { | 
	|  | 540 |  | progress_nextsong(); | 
	|  | 541 |  | } | 
	|  | 542 |  |  | 
	| 544 | 543 | /* Check out mediator events */ | /* Check out mediator events */ | 
	| 545 |  | /* FIXME: add these into their appropriate places */ |  | 
	|  | 544 |  | /* FIXME: implement this functionality with ZeroMQ */ | 
	| 546 | 545 | if (mediator->changed("setting.sort")) | if (mediator->changed("setting.sort")) | 
	| 547 | 546 | comm->library()->sort(options->get_string("sort")); | comm->library()->sort(options->get_string("sort")); | 
	| 548 | 547 | else if (mediator->changed("setting.ignorecase")) | else if (mediator->changed("setting.ignorecase")) | 
|  | 
	| ... | ... | Pms::main() | 
	| 566 | 565 | if (options->get_bool("topbarclear")) | if (options->get_bool("topbarclear")) | 
	| 567 | 566 | options->topbar.clear(); | options->topbar.clear(); | 
	| 568 | 567 | } | } | 
	| 569 |  |  |  | 
	| 570 | 568 | } | } | 
	| 571 | 569 | while (!_shutdown); | while (!_shutdown); | 
	| 572 | 570 |  |  |