Mercurial > mplayer.hg
comparison command.c @ 25462:3e033aabc9d2
Combine common code for check whether chapter is available.
author | ulion |
---|---|
date | Sat, 22 Dec 2007 06:20:48 +0000 |
parents | 7ef04742572c |
children | 2a0982bac1b0 |
comparison
equal
deleted
inserted
replaced
25461:7ef04742572c | 25462:3e033aabc9d2 |
---|---|
383 float next_pts = 0; | 383 float next_pts = 0; |
384 int chapter_num; | 384 int chapter_num; |
385 int step_all; | 385 int step_all; |
386 char *chapter_name = NULL; | 386 char *chapter_name = NULL; |
387 | 387 |
388 chapter = demuxer_get_current_chapter(mpctx->demuxer); | |
389 if (chapter < 0) | |
390 return M_PROPERTY_UNAVAILABLE; | |
391 | |
388 switch (action) { | 392 switch (action) { |
389 case M_PROPERTY_GET: | 393 case M_PROPERTY_GET: |
390 chapter = demuxer_get_current_chapter(mpctx->demuxer); | |
391 if (chapter < 0) | |
392 return M_PROPERTY_UNAVAILABLE; | |
393 if (!arg) | 394 if (!arg) |
394 return M_PROPERTY_ERROR; | 395 return M_PROPERTY_ERROR; |
395 *(int *) arg = chapter; | 396 *(int *) arg = chapter; |
396 return M_PROPERTY_OK; | 397 return M_PROPERTY_OK; |
397 case M_PROPERTY_PRINT: { | 398 case M_PROPERTY_PRINT: { |
398 if (!arg) | 399 if (!arg) |
399 return M_PROPERTY_ERROR; | 400 return M_PROPERTY_ERROR; |
400 chapter = demuxer_get_current_chapter(mpctx->demuxer); | |
401 if (chapter < 0) | |
402 return M_PROPERTY_UNAVAILABLE; | |
403 chapter_name = demuxer_chapter_display_name(mpctx->demuxer, chapter); | 401 chapter_name = demuxer_chapter_display_name(mpctx->demuxer, chapter); |
404 if (!chapter_name) | 402 if (!chapter_name) |
405 return M_PROPERTY_UNAVAILABLE; | 403 return M_PROPERTY_UNAVAILABLE; |
406 *(char **) arg = chapter_name; | 404 *(char **) arg = chapter_name; |
407 return M_PROPERTY_OK; | 405 return M_PROPERTY_OK; |
408 } | 406 } |
409 case M_PROPERTY_SET: | 407 case M_PROPERTY_SET: |
410 if (!arg) | 408 if (!arg) |
411 return M_PROPERTY_ERROR; | 409 return M_PROPERTY_ERROR; |
412 M_PROPERTY_CLAMP(prop, *(int*)arg); | 410 M_PROPERTY_CLAMP(prop, *(int*)arg); |
413 chapter = demuxer_get_current_chapter(mpctx->demuxer); | |
414 if (chapter < 0) | |
415 return M_PROPERTY_UNAVAILABLE; | |
416 step_all = *(int *)arg - (chapter + 1); | 411 step_all = *(int *)arg - (chapter + 1); |
417 chapter += step_all; | 412 chapter += step_all; |
418 break; | 413 break; |
419 case M_PROPERTY_STEP_UP: | 414 case M_PROPERTY_STEP_UP: |
420 case M_PROPERTY_STEP_DOWN: { | 415 case M_PROPERTY_STEP_DOWN: { |
421 step_all = (arg && *(int*)arg != 0 ? *(int*)arg : 1) | 416 step_all = (arg && *(int*)arg != 0 ? *(int*)arg : 1) |
422 * (action == M_PROPERTY_STEP_UP ? 1 : -1); | 417 * (action == M_PROPERTY_STEP_UP ? 1 : -1); |
423 chapter = demuxer_get_current_chapter(mpctx->demuxer); | |
424 if (chapter < 0) | |
425 return M_PROPERTY_UNAVAILABLE; | |
426 chapter += step_all; | 418 chapter += step_all; |
427 if (chapter < 0) | 419 if (chapter < 0) |
428 chapter = 0; | 420 chapter = 0; |
429 break; | 421 break; |
430 } | 422 } |