annotate command.c.tmp @ 22479:a99ddf2ece25

Change to match current command.c (same functionality). The versions compile to the same code on my machine except for one test instruction that has its operands swapped and conditional jump changed accordingly.
author uau
date Fri, 09 Mar 2007 12:39:34 +0000
parents 3501ae650b23
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1 #include <stdlib.h>
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
2 #include <inttypes.h>
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
3 #include <unistd.h>
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
4
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
5 #include "config.h"
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
6 #include "input/input.h"
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
7 #include "stream/stream.h"
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
8 #include "libmpdemux/demuxer.h"
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
9 #include "libmpdemux/stheader.h"
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
10 #include "mplayer.h"
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
11 #include "libvo/sub.h"
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
12 #include "m_option.h"
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
13 #include "m_property.h"
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
14 #include "help_mp.h"
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
15 #include "metadata.h"
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
16 #include "libmpcodecs/mp_image.h"
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
17 #include "libmpcodecs/vf.h"
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
18 #include "libmpcodecs/vd.h"
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
19 #include "libvo/video_out.h"
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
20 #include "playtree.h"
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
21 #include "libao2/audio_out.h"
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
22 #include "mpcommon.h"
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
23 #include "mixer.h"
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
24 #include "libmpdemux/matroska.h"
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
25 #include "libmpcodecs/dec_video.h"
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
26 #include "vobsub.h"
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
27 #include "spudec.h"
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
28 #ifdef USE_TV
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
29 #include "stream/tv.h"
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
30 #endif
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
31 #ifdef USE_RADIO
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
32 #include "stream/stream_radio.h"
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
33 #endif
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
34 #ifdef HAS_DVBIN_SUPPORT
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
35 #include "stream/dvbin.h"
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
36 #endif
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
37 #ifdef USE_DVDREAD
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
38 #include "stream/stream_dvd.h"
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
39 #endif
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
40 #ifdef USE_DVDNAV
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
41 #include "stream/stream_dvdnav.h"
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
42 #endif
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
43 #ifdef USE_ASS
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
44 #include "libass/ass.h"
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
45 #include "libass/ass_mp.h"
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
46 #endif
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
47 #ifdef HAVE_NEW_GUI
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
48 #include "Gui/interface.h"
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
49 #endif
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
50
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
51 #include "mp_core.h"
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
52
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
53 #define ROUND(x) ((int)((x)<0 ? (x)-0.5 : (x)+0.5))
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
54
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
55 static void rescale_input_coordinates(int ix, int iy, double *dx, double *dy)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
56 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
57 //remove the borders, if any, and rescale to the range [0,1],[0,1]
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
58 if (vo_fs) { //we are in full-screen mode
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
59 if (vo_screenwidth > vo_dwidth) //there are borders along the x axis
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
60 ix -= (vo_screenwidth - vo_dwidth) / 2;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
61 if (vo_screenheight > vo_dheight) //there are borders along the y axis (usual way)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
62 iy -= (vo_screenheight - vo_dheight) / 2;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
63
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
64 if (ix < 0 || ix > vo_dwidth) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
65 *dx = *dy = -1.0;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
66 return;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
67 } //we are on one of the borders
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
68 if (iy < 0 || iy > vo_dheight) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
69 *dx = *dy = -1.0;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
70 return;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
71 } //we are on one of the borders
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
72 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
73
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
74 *dx = (double) ix / (double) vo_dwidth;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
75 *dy = (double) iy / (double) vo_dheight;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
76
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
77 mp_msg(MSGT_CPLAYER, MSGL_V,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
78 "\r\nrescaled coordinates: %.3lf, %.3lf, screen (%d x %d), vodisplay: (%d, %d), fullscreen: %d\r\n",
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
79 *dx, *dy, vo_screenwidth, vo_screenheight, vo_dwidth,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
80 vo_dheight, vo_fs);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
81 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
82
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
83 static int sub_source(MPContext * mpctx)
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
84 {
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
85 int source = -1;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
86 int top = -1;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
87 int i;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
88 for (i = 0; i < SUB_SOURCES; i++) {
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
89 int j = mpctx->global_sub_indices[i];
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
90 if ((j >= 0) && (j > top) && (mpctx->global_sub_pos >= j)) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
91 source = i;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
92 top = j;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
93 }
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
94 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
95 return source;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
96 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
97
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
98 /**
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
99 * \brief Log the currently displayed subtitle to a file
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
100 *
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
101 * Logs the current or last displayed subtitle together with filename
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
102 * and time information to ~/.mplayer/subtitle_log
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
103 *
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
104 * Intended purpose is to allow convenient marking of bogus subtitles
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
105 * which need to be fixed while watching the movie.
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
106 */
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
107
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
108 static void log_sub(void)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
109 {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
110 char *fname;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
111 FILE *f;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
112 int i;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
113
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
114 if (subdata == NULL || vo_sub_last == NULL)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
115 return;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
116 fname = get_path("subtitle_log");
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
117 f = fopen(fname, "a");
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
118 if (!f)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
119 return;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
120 fprintf(f, "----------------------------------------------------------\n");
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
121 if (subdata->sub_uses_time) {
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
122 fprintf(f,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
123 "N: %s S: %02ld:%02ld:%02ld.%02ld E: %02ld:%02ld:%02ld.%02ld\n",
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
124 filename, vo_sub_last->start / 360000,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
125 (vo_sub_last->start / 6000) % 60,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
126 (vo_sub_last->start / 100) % 60, vo_sub_last->start % 100,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
127 vo_sub_last->end / 360000, (vo_sub_last->end / 6000) % 60,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
128 (vo_sub_last->end / 100) % 60, vo_sub_last->end % 100);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
129 } else {
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
130 fprintf(f, "N: %s S: %ld E: %ld\n", filename, vo_sub_last->start,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
131 vo_sub_last->end);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
132 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
133 for (i = 0; i < vo_sub_last->lines; i++) {
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
134 fprintf(f, "%s\n", vo_sub_last->text[i]);
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
135 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
136 fclose(f);
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
137 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
138
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
139
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
140 /// \defgroup Properties
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
141 ///@{
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
142
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
143 /// \defgroup GeneralProperties General properties
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
144 /// \ingroup Properties
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
145 ///@{
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
146
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
147 /// OSD level (RW)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
148 static int mp_property_osdlevel(m_option_t * prop, int action, void *arg,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
149 MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
150 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
151 return m_property_choice(prop, action, arg, &osd_level);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
152 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
153
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
154 /// Playback speed (RW)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
155 static int mp_property_playback_speed(m_option_t * prop, int action,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
156 void *arg, MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
157 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
158 switch (action) {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
159 case M_PROPERTY_SET:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
160 if (!arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
161 return M_PROPERTY_ERROR;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
162 M_PROPERTY_CLAMP(prop, *(float *) arg);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
163 playback_speed = *(float *) arg;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
164 build_afilter_chain(mpctx->sh_audio, &ao_data);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
165 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
166 case M_PROPERTY_STEP_UP:
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
167 case M_PROPERTY_STEP_DOWN:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
168 playback_speed += (arg ? *(float *) arg : 0.1) *
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
169 (action == M_PROPERTY_STEP_DOWN ? -1 : 1);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
170 M_PROPERTY_CLAMP(prop, playback_speed);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
171 build_afilter_chain(mpctx->sh_audio, &ao_data);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
172 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
173 }
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
174 return m_property_float_range(prop, action, arg, &playback_speed);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
175 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
176
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
177 /// filename with path (RO)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
178 static int mp_property_path(m_option_t * prop, int action, void *arg,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
179 MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
180 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
181 return m_property_string_ro(prop, action, arg, filename);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
182 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
183
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
184 /// filename without path (RO)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
185 static int mp_property_filename(m_option_t * prop, int action, void *arg,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
186 MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
187 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
188 char *f;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
189 if (!filename)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
190 return M_PROPERTY_UNAVAILABLE;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
191 if (((f = strrchr(filename, '/')) || (f = strrchr(filename, '\\'))) && f[1])
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
192 f++;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
193 else
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
194 f = filename;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
195 return m_property_string_ro(prop, action, arg, f);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
196 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
197
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
198 /// Demuxer name (RO)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
199 static int mp_property_demuxer(m_option_t * prop, int action, void *arg,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
200 MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
201 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
202 if (!mpctx->demuxer)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
203 return M_PROPERTY_UNAVAILABLE;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
204 return m_property_string_ro(prop, action, arg,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
205 (char *) mpctx->demuxer->desc->name);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
206 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
207
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
208 /// Position in the stream (RW)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
209 static int mp_property_stream_pos(m_option_t * prop, int action, void *arg,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
210 MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
211 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
212 if (!mpctx->demuxer || !mpctx->demuxer->stream)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
213 return M_PROPERTY_UNAVAILABLE;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
214 if (!arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
215 return M_PROPERTY_ERROR;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
216 switch (action) {
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
217 case M_PROPERTY_GET:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
218 *(off_t *) arg = stream_tell(mpctx->demuxer->stream);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
219 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
220 case M_PROPERTY_SET:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
221 M_PROPERTY_CLAMP(prop, *(off_t *) arg);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
222 stream_seek(mpctx->demuxer->stream, *(off_t *) arg);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
223 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
224 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
225 return M_PROPERTY_NOT_IMPLEMENTED;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
226 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
227
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
228 /// Stream start offset (RO)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
229 static int mp_property_stream_start(m_option_t * prop, int action,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
230 void *arg, MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
231 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
232 if (!mpctx->demuxer || !mpctx->demuxer->stream)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
233 return M_PROPERTY_UNAVAILABLE;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
234 switch (action) {
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
235 case M_PROPERTY_GET:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
236 *(off_t *) arg = mpctx->demuxer->stream->start_pos;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
237 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
238 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
239 return M_PROPERTY_NOT_IMPLEMENTED;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
240 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
241
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
242 /// Stream end offset (RO)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
243 static int mp_property_stream_end(m_option_t * prop, int action, void *arg,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
244 MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
245 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
246 if (!mpctx->demuxer || !mpctx->demuxer->stream)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
247 return M_PROPERTY_UNAVAILABLE;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
248 switch (action) {
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
249 case M_PROPERTY_GET:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
250 *(off_t *) arg = mpctx->demuxer->stream->end_pos;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
251 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
252 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
253 return M_PROPERTY_NOT_IMPLEMENTED;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
254 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
255
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
256 /// Stream length (RO)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
257 static int mp_property_stream_length(m_option_t * prop, int action,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
258 void *arg, MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
259 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
260 if (!mpctx->demuxer || !mpctx->demuxer->stream)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
261 return M_PROPERTY_UNAVAILABLE;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
262 switch (action) {
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
263 case M_PROPERTY_GET:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
264 *(off_t *) arg =
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
265 mpctx->demuxer->stream->end_pos - mpctx->demuxer->stream->start_pos;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
266 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
267 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
268 return M_PROPERTY_NOT_IMPLEMENTED;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
269 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
270
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
271 /// Media length in seconds (RO)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
272 static int mp_property_length(m_option_t * prop, int action, void *arg,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
273 MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
274 {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
275 double len;
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
276
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
277 if (!mpctx->demuxer ||
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
278 !(int) (len = demuxer_get_time_length(mpctx->demuxer)))
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
279 return M_PROPERTY_UNAVAILABLE;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
280
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
281 switch (action) {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
282 case M_PROPERTY_PRINT:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
283 if (!arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
284 return M_PROPERTY_ERROR;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
285 else {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
286 int h, m, s = len;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
287 h = s / 3600;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
288 s -= h * 3600;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
289 m = s / 60;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
290 s -= m * 60;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
291 *(char **) arg = malloc(20);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
292 if (h > 0)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
293 sprintf(*(char **) arg, "%d:%02d:%02d", h, m, s);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
294 else if (m > 0)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
295 sprintf(*(char **) arg, "%d:%02d", m, s);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
296 else
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
297 sprintf(*(char **) arg, "%d", s);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
298 return M_PROPERTY_OK;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
299 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
300 break;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
301 }
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
302 return m_property_double_ro(prop, action, arg, len);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
303 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
304
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
305 ///@}
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
306
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
307 /// \defgroup AudioProperties Audio properties
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
308 /// \ingroup Properties
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
309 ///@{
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
310
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
311 /// Volume (RW)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
312 static int mp_property_volume(m_option_t * prop, int action, void *arg,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
313 MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
314 {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
315
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
316 if (!mpctx->sh_audio)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
317 return M_PROPERTY_UNAVAILABLE;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
318
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
319 switch (action) {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
320 case M_PROPERTY_GET:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
321 if (!arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
322 return M_PROPERTY_ERROR;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
323 mixer_getbothvolume(&mpctx->mixer, arg);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
324 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
325 case M_PROPERTY_PRINT:{
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
326 float vol;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
327 if (!arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
328 return M_PROPERTY_ERROR;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
329 mixer_getbothvolume(&mpctx->mixer, &vol);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
330 return m_property_float_range(prop, action, arg, &vol);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
331 }
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
332 case M_PROPERTY_STEP_UP:
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
333 case M_PROPERTY_STEP_DOWN:
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
334 case M_PROPERTY_SET:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
335 break;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
336 default:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
337 return M_PROPERTY_NOT_IMPLEMENTED;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
338 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
339
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
340 if (mpctx->edl_muted)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
341 return M_PROPERTY_DISABLED;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
342 mpctx->user_muted = 0;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
343
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
344 switch (action) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
345 case M_PROPERTY_SET:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
346 if (!arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
347 return M_PROPERTY_ERROR;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
348 M_PROPERTY_CLAMP(prop, *(float *) arg);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
349 mixer_setvolume(&mpctx->mixer, *(float *) arg, *(float *) arg);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
350 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
351 case M_PROPERTY_STEP_UP:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
352 if (arg && *(float *) arg <= 0)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
353 mixer_decvolume(&mpctx->mixer);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
354 else
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
355 mixer_incvolume(&mpctx->mixer);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
356 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
357 case M_PROPERTY_STEP_DOWN:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
358 if (arg && *(float *) arg <= 0)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
359 mixer_incvolume(&mpctx->mixer);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
360 else
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
361 mixer_decvolume(&mpctx->mixer);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
362 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
363 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
364 return M_PROPERTY_NOT_IMPLEMENTED;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
365 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
366
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
367 /// Mute (RW)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
368 static int mp_property_mute(m_option_t * prop, int action, void *arg,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
369 MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
370 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
371
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
372 if (!mpctx->sh_audio)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
373 return M_PROPERTY_UNAVAILABLE;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
374
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
375 switch (action) {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
376 case M_PROPERTY_SET:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
377 if (mpctx->edl_muted)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
378 return M_PROPERTY_DISABLED;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
379 if (!arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
380 return M_PROPERTY_ERROR;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
381 if ((!!*(int *) arg) != mpctx->mixer.muted)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
382 mixer_mute(&mpctx->mixer);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
383 mpctx->user_muted = mpctx->mixer.muted;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
384 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
385 case M_PROPERTY_STEP_UP:
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
386 case M_PROPERTY_STEP_DOWN:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
387 if (mpctx->edl_muted)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
388 return M_PROPERTY_DISABLED;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
389 mixer_mute(&mpctx->mixer);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
390 mpctx->user_muted = mpctx->mixer.muted;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
391 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
392 case M_PROPERTY_PRINT:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
393 if (!arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
394 return M_PROPERTY_ERROR;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
395 if (mpctx->edl_muted) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
396 *(char **) arg = strdup(MSGTR_EnabledEdl);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
397 return M_PROPERTY_OK;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
398 }
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
399 default:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
400 return m_property_flag(prop, action, arg, &mpctx->mixer.muted);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
401
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
402 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
403 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
404
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
405 /// Audio delay (RW)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
406 static int mp_property_audio_delay(m_option_t * prop, int action,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
407 void *arg, MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
408 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
409 if (!(mpctx->sh_audio && mpctx->sh_video))
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
410 return M_PROPERTY_UNAVAILABLE;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
411 switch (action) {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
412 case M_PROPERTY_SET:
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
413 case M_PROPERTY_STEP_UP:
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
414 case M_PROPERTY_STEP_DOWN:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
415 if (!arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
416 return M_PROPERTY_ERROR;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
417 else {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
418 float delay = audio_delay;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
419 m_property_delay(prop, action, arg, &audio_delay);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
420 if (mpctx->sh_audio)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
421 mpctx->sh_audio->delay -= audio_delay - delay;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
422 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
423 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
424 default:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
425 return m_property_delay(prop, action, arg, &audio_delay);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
426 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
427 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
428
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
429 /// Audio codec tag (RO)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
430 static int mp_property_audio_format(m_option_t * prop, int action,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
431 void *arg, MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
432 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
433 if (!mpctx->sh_audio)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
434 return M_PROPERTY_UNAVAILABLE;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
435 return m_property_int_ro(prop, action, arg, mpctx->sh_audio->format);
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
436 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
437
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
438 /// Audio bitrate (RO)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
439 static int mp_property_audio_bitrate(m_option_t * prop, int action,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
440 void *arg, MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
441 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
442 if (!mpctx->sh_audio)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
443 return M_PROPERTY_UNAVAILABLE;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
444 return m_property_int_ro(prop, action, arg, mpctx->sh_audio->i_bps);
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
445 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
446
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
447 /// Samplerate (RO)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
448 static int mp_property_samplerate(m_option_t * prop, int action, void *arg,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
449 MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
450 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
451 if (!mpctx->sh_audio)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
452 return M_PROPERTY_UNAVAILABLE;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
453 return m_property_int_ro(prop, action, arg, mpctx->sh_audio->samplerate);
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
454 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
455
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
456 /// Number of channels (RO)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
457 static int mp_property_channels(m_option_t * prop, int action, void *arg,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
458 MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
459 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
460 if (!mpctx->sh_audio)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
461 return M_PROPERTY_UNAVAILABLE;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
462 switch (action) {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
463 case M_PROPERTY_PRINT:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
464 if (!arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
465 return M_PROPERTY_ERROR;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
466 switch (mpctx->sh_audio->channels) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
467 case 1:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
468 *(char **) arg = strdup("mono");
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
469 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
470 case 2:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
471 *(char **) arg = strdup("stereo");
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
472 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
473 default:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
474 *(char **) arg = malloc(32);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
475 sprintf(*(char **) arg, "%d channels", mpctx->sh_audio->channels);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
476 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
477 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
478 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
479 return m_property_int_ro(prop, action, arg, mpctx->sh_audio->channels);
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
480 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
481
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
482 /// Selected audio id (RW)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
483 static int mp_property_audio(m_option_t * prop, int action, void *arg,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
484 MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
485 {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
486 int current_id = -1, tmp;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
487
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
488 switch (action) {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
489 case M_PROPERTY_GET:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
490 if (!mpctx->sh_audio)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
491 return M_PROPERTY_UNAVAILABLE;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
492 if (!arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
493 return M_PROPERTY_ERROR;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
494 *(int *) arg = audio_id;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
495 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
496 case M_PROPERTY_PRINT:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
497 if (!mpctx->sh_audio)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
498 return M_PROPERTY_UNAVAILABLE;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
499 if (!arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
500 return M_PROPERTY_ERROR;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
501
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
502 if (audio_id < 0)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
503 *(char **) arg = strdup(MSGTR_Disabled);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
504 else {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
505 char lang[40] = MSGTR_Unknown;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
506 if (mpctx->demuxer->type == DEMUXER_TYPE_MATROSKA)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
507 demux_mkv_get_audio_lang(mpctx->demuxer, audio_id, lang, 9);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
508 #ifdef USE_DVDREAD
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
509 else if (mpctx->stream->type == STREAMTYPE_DVD) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
510 int code = dvd_lang_from_aid(mpctx->stream, audio_id);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
511 if (code) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
512 lang[0] = code >> 8;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
513 lang[1] = code;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
514 lang[2] = 0;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
515 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
516 }
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
517 #endif
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
518
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
519 #ifdef USE_DVDNAV
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
520 else if (mpctx->stream->type == STREAMTYPE_DVDNAV)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
521 dvdnav_lang_from_aid(mpctx->stream, audio_id, lang);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
522 #endif
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
523 *(char **) arg = malloc(64);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
524 snprintf(*(char **) arg, 64, "(%d) %s", audio_id, lang);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
525 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
526 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
527
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
528 case M_PROPERTY_STEP_UP:
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
529 case M_PROPERTY_SET:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
530 if (action == M_PROPERTY_SET && arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
531 tmp = *((int *) arg);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
532 else
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
533 tmp = -1;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
534 current_id = mpctx->demuxer->audio->id;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
535 audio_id = demuxer_switch_audio(mpctx->demuxer, tmp);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
536 if (audio_id == -2
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
537 || (audio_id > -1
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
538 && mpctx->demuxer->audio->id != current_id && current_id != -2))
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
539 uninit_player(INITED_AO | INITED_ACODEC);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
540 if (audio_id > -1 && mpctx->demuxer->audio->id != current_id) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
541 sh_audio_t *sh2;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
542 sh2 = mpctx->demuxer->a_streams[mpctx->demuxer->audio->id];
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
543 if (sh2) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
544 sh2->ds = mpctx->demuxer->audio;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
545 mpctx->sh_audio = sh2;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
546 reinit_audio_chain();
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
547 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
548 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
549 mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AUDIO_TRACK=%d\n", audio_id);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
550 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
551 default:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
552 return M_PROPERTY_NOT_IMPLEMENTED;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
553 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
554
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
555 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
556
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
557 /// Selected video id (RW)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
558 static int mp_property_video(m_option_t * prop, int action, void *arg,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
559 MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
560 {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
561 int current_id = -1, tmp;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
562
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
563 switch (action) {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
564 case M_PROPERTY_GET:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
565 if (!mpctx->sh_video)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
566 return M_PROPERTY_UNAVAILABLE;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
567 if (!arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
568 return M_PROPERTY_ERROR;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
569 *(int *) arg = video_id;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
570 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
571 case M_PROPERTY_PRINT:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
572 if (!mpctx->sh_video)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
573 return M_PROPERTY_UNAVAILABLE;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
574 if (!arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
575 return M_PROPERTY_ERROR;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
576
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
577 if (video_id < 0)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
578 *(char **) arg = strdup(MSGTR_Disabled);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
579 else {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
580 char lang[40] = MSGTR_Unknown;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
581 *(char **) arg = malloc(64);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
582 snprintf(*(char **) arg, 64, "(%d) %s", video_id, lang);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
583 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
584 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
585
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
586 case M_PROPERTY_STEP_UP:
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
587 case M_PROPERTY_SET:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
588 current_id = mpctx->demuxer->video->id;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
589 if (action == M_PROPERTY_SET && arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
590 tmp = *((int *) arg);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
591 else
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
592 tmp = -1;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
593 video_id = demuxer_switch_video(mpctx->demuxer, tmp);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
594 if (video_id == -2
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
595 || (video_id > -1 && mpctx->demuxer->video->id != current_id
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
596 && current_id != -2))
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
597 uninit_player(INITED_VCODEC |
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
598 (fixed_vo && video_id != -2 ? 0 : INITED_VO));
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
599 if (video_id > -1 && mpctx->demuxer->video->id != current_id) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
600 sh_video_t *sh2;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
601 sh2 = mpctx->demuxer->v_streams[mpctx->demuxer->video->id];
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
602 if (sh2) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
603 sh2->ds = mpctx->demuxer->video;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
604 mpctx->sh_video = sh2;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
605 reinit_video_chain();
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
606 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
607 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
608 mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VIDEO_TRACK=%d\n", video_id);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
609 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
610
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
611 default:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
612 return M_PROPERTY_NOT_IMPLEMENTED;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
613 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
614 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
615
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
616 static int mp_property_program(m_option_t * prop, int action, void *arg,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
617 MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
618 {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
619 demux_program_t prog;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
620
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
621 switch (action) {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
622 case M_PROPERTY_STEP_UP:
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
623 case M_PROPERTY_SET:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
624 if (action == M_PROPERTY_SET && arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
625 prog.progid = *((int *) arg);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
626 else
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
627 prog.progid = -1;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
628 if (demux_control
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
629 (mpctx->demuxer, DEMUXER_CTRL_IDENTIFY_PROGRAM,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
630 &prog) == DEMUXER_CTRL_NOTIMPL)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
631 return M_PROPERTY_ERROR;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
632
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
633 mp_property_do("switch_audio", M_PROPERTY_SET, &prog.aid, mpctx);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
634 mp_property_do("switch_video", M_PROPERTY_SET, &prog.vid, mpctx);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
635 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
636
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
637 default:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
638 return M_PROPERTY_NOT_IMPLEMENTED;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
639 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
640 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
641
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
642 ///@}
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
643
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
644 /// \defgroup VideoProperties Video properties
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
645 /// \ingroup Properties
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
646 ///@{
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
647
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
648 /// Fullscreen state (RW)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
649 static int mp_property_fullscreen(m_option_t * prop, int action, void *arg,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
650 MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
651 {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
652
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
653 if (!mpctx->video_out)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
654 return M_PROPERTY_UNAVAILABLE;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
655
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
656 switch (action) {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
657 case M_PROPERTY_SET:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
658 if (!arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
659 return M_PROPERTY_ERROR;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
660 M_PROPERTY_CLAMP(prop, *(int *) arg);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
661 if (vo_fs == !!*(int *) arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
662 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
663 case M_PROPERTY_STEP_UP:
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
664 case M_PROPERTY_STEP_DOWN:
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
665 #ifdef HAVE_NEW_GUI
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
666 if (use_gui)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
667 guiGetEvent(guiIEvent, (char *) MP_CMD_GUI_FULLSCREEN);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
668 else
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
669 #endif
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
670 if (vo_config_count)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
671 mpctx->video_out->control(VOCTRL_FULLSCREEN, 0);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
672 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
673 default:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
674 return m_property_flag(prop, action, arg, &vo_fs);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
675 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
676 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
677
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
678 static int mp_property_deinterlace(m_option_t * prop, int action,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
679 void *arg, MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
680 {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
681 int deinterlace;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
682 vf_instance_t *vf;
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
683 if (!mpctx->sh_video || !mpctx->sh_video->vfilter)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
684 return M_PROPERTY_UNAVAILABLE;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
685 vf = mpctx->sh_video->vfilter;
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
686 switch (action) {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
687 case M_PROPERTY_GET:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
688 if (!arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
689 return M_PROPERTY_ERROR;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
690 vf->control(vf, VFCTRL_GET_DEINTERLACE, arg);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
691 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
692 case M_PROPERTY_SET:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
693 if (!arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
694 return M_PROPERTY_ERROR;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
695 M_PROPERTY_CLAMP(prop, *(int *) arg);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
696 vf->control(vf, VFCTRL_SET_DEINTERLACE, arg);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
697 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
698 case M_PROPERTY_STEP_UP:
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
699 case M_PROPERTY_STEP_DOWN:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
700 vf->control(vf, VFCTRL_GET_DEINTERLACE, &deinterlace);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
701 deinterlace = !deinterlace;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
702 vf->control(vf, VFCTRL_SET_DEINTERLACE, &deinterlace);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
703 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
704 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
705 return M_PROPERTY_NOT_IMPLEMENTED;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
706 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
707
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
708 /// Panscan (RW)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
709 static int mp_property_panscan(m_option_t * prop, int action, void *arg,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
710 MPContext * mpctx)
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
711 {
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
712
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
713 if (!mpctx->video_out
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
714 || mpctx->video_out->control(VOCTRL_GET_PANSCAN, NULL) != VO_TRUE)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
715 return M_PROPERTY_UNAVAILABLE;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
716
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
717 switch (action) {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
718 case M_PROPERTY_SET:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
719 if (!arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
720 return M_PROPERTY_ERROR;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
721 M_PROPERTY_CLAMP(prop, *(float *) arg);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
722 vo_panscan = *(float *) arg;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
723 mpctx->video_out->control(VOCTRL_SET_PANSCAN, NULL);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
724 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
725 case M_PROPERTY_STEP_UP:
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
726 case M_PROPERTY_STEP_DOWN:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
727 vo_panscan += (arg ? *(float *) arg : 0.1) *
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
728 (action == M_PROPERTY_STEP_DOWN ? -1 : 1);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
729 if (vo_panscan > 1)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
730 vo_panscan = 1;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
731 else if (vo_panscan < 0)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
732 vo_panscan = 0;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
733 mpctx->video_out->control(VOCTRL_SET_PANSCAN, NULL);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
734 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
735 default:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
736 return m_property_float_range(prop, action, arg, &vo_panscan);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
737 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
738 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
739
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
740 /// Helper to set vo flags.
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
741 /** \ingroup PropertyImplHelper
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
742 */
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
743 static int mp_property_vo_flag(m_option_t * prop, int action, void *arg,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
744 int vo_ctrl, int *vo_var, MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
745 {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
746
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
747 if (!mpctx->video_out)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
748 return M_PROPERTY_UNAVAILABLE;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
749
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
750 switch (action) {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
751 case M_PROPERTY_SET:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
752 if (!arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
753 return M_PROPERTY_ERROR;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
754 M_PROPERTY_CLAMP(prop, *(int *) arg);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
755 if (*vo_var == !!*(int *) arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
756 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
757 case M_PROPERTY_STEP_UP:
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
758 case M_PROPERTY_STEP_DOWN:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
759 if (vo_config_count)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
760 mpctx->video_out->control(vo_ctrl, 0);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
761 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
762 default:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
763 return m_property_flag(prop, action, arg, vo_var);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
764 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
765 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
766
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
767 /// Window always on top (RW)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
768 static int mp_property_ontop(m_option_t * prop, int action, void *arg,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
769 MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
770 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
771 return mp_property_vo_flag(prop, action, arg, VOCTRL_ONTOP, &vo_ontop,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
772 mpctx);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
773 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
774
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
775 /// Display in the root window (RW)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
776 static int mp_property_rootwin(m_option_t * prop, int action, void *arg,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
777 MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
778 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
779 return mp_property_vo_flag(prop, action, arg, VOCTRL_ROOTWIN,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
780 &vo_rootwin, mpctx);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
781 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
782
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
783 /// Show window borders (RW)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
784 static int mp_property_border(m_option_t * prop, int action, void *arg,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
785 MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
786 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
787 return mp_property_vo_flag(prop, action, arg, VOCTRL_BORDER,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
788 &vo_border, mpctx);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
789 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
790
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
791 /// Framedropping state (RW)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
792 static int mp_property_framedropping(m_option_t * prop, int action,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
793 void *arg, MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
794 {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
795
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
796 if (!mpctx->sh_video)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
797 return M_PROPERTY_UNAVAILABLE;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
798
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
799 switch (action) {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
800 case M_PROPERTY_PRINT:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
801 if (!arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
802 return M_PROPERTY_ERROR;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
803 *(char **) arg = strdup(frame_dropping == 1 ? MSGTR_Enabled :
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
804 (frame_dropping == 2 ? MSGTR_HardFrameDrop :
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
805 MSGTR_Disabled));
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
806 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
807 default:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
808 return m_property_choice(prop, action, arg, &frame_dropping);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
809 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
810 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
811
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
812 /// Color settings, try to use vf/vo then fall back on TV. (RW)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
813 static int mp_property_gamma(m_option_t * prop, int action, void *arg,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
814 MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
815 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
816 int *gamma = prop->priv, r;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
817
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
818 if (!mpctx->sh_video)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
819 return M_PROPERTY_UNAVAILABLE;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
820
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
821 if (gamma[0] == 1000) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
822 gamma[0] = 0;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
823 get_video_colors(mpctx->sh_video, prop->name, gamma);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
824 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
825
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
826 switch (action) {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
827 case M_PROPERTY_SET:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
828 if (!arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
829 return M_PROPERTY_ERROR;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
830 M_PROPERTY_CLAMP(prop, *(int *) arg);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
831 *gamma = *(int *) arg;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
832 r = set_video_colors(mpctx->sh_video, prop->name, *gamma);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
833 if (r <= 0)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
834 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
835 return r;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
836 case M_PROPERTY_GET:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
837 if (!arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
838 return M_PROPERTY_ERROR;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
839 r = get_video_colors(mpctx->sh_video, prop->name, arg);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
840 if (r <= 0)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
841 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
842 return r;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
843 case M_PROPERTY_STEP_UP:
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
844 case M_PROPERTY_STEP_DOWN:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
845 *gamma += (arg ? *(int *) arg : 1) *
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
846 (action == M_PROPERTY_STEP_DOWN ? -1 : 1);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
847 M_PROPERTY_CLAMP(prop, *gamma);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
848 r = set_video_colors(mpctx->sh_video, prop->name, *gamma);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
849 if (r <= 0)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
850 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
851 return r;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
852 default:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
853 return M_PROPERTY_NOT_IMPLEMENTED;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
854 }
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
855
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
856 #ifdef USE_TV
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
857 if (mpctx->demuxer->type == DEMUXER_TYPE_TV) {
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
858 int l = strlen(prop->name);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
859 char tv_prop[3 + l + 1];
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
860 sprintf(tv_prop, "tv_%s", prop->name);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
861 return mp_property_do(tv_prop, action, arg, mpctx);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
862 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
863 #endif
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
864
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
865 return M_PROPERTY_UNAVAILABLE;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
866 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
867
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
868 /// VSync (RW)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
869 static int mp_property_vsync(m_option_t * prop, int action, void *arg,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
870 MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
871 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
872 return m_property_flag(prop, action, arg, &vo_vsync);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
873 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
874
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
875 /// Video codec tag (RO)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
876 static int mp_property_video_format(m_option_t * prop, int action,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
877 void *arg, MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
878 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
879 if (!mpctx->sh_video)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
880 return M_PROPERTY_UNAVAILABLE;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
881 return m_property_int_ro(prop, action, arg, mpctx->sh_video->format);
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
882 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
883
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
884 /// Video bitrate (RO)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
885 static int mp_property_video_bitrate(m_option_t * prop, int action,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
886 void *arg, MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
887 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
888 if (!mpctx->sh_video)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
889 return M_PROPERTY_UNAVAILABLE;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
890 return m_property_int_ro(prop, action, arg, mpctx->sh_video->i_bps);
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
891 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
892
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
893 /// Video display width (RO)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
894 static int mp_property_width(m_option_t * prop, int action, void *arg,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
895 MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
896 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
897 if (!mpctx->sh_video)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
898 return M_PROPERTY_UNAVAILABLE;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
899 return m_property_int_ro(prop, action, arg, mpctx->sh_video->disp_w);
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
900 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
901
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
902 /// Video display height (RO)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
903 static int mp_property_height(m_option_t * prop, int action, void *arg,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
904 MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
905 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
906 if (!mpctx->sh_video)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
907 return M_PROPERTY_UNAVAILABLE;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
908 return m_property_int_ro(prop, action, arg, mpctx->sh_video->disp_h);
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
909 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
910
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
911 /// Video fps (RO)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
912 static int mp_property_fps(m_option_t * prop, int action, void *arg,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
913 MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
914 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
915 if (!mpctx->sh_video)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
916 return M_PROPERTY_UNAVAILABLE;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
917 return m_property_float_ro(prop, action, arg, mpctx->sh_video->fps);
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
918 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
919
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
920 /// Video aspect (RO)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
921 static int mp_property_aspect(m_option_t * prop, int action, void *arg,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
922 MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
923 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
924 if (!mpctx->sh_video)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
925 return M_PROPERTY_UNAVAILABLE;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
926 return m_property_float_ro(prop, action, arg, mpctx->sh_video->aspect);
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
927 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
928
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
929 ///@}
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
930
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
931 /// \defgroup SubProprties Subtitles properties
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
932 /// \ingroup Properties
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
933 ///@{
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
934
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
935 /// Text subtitle position (RW)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
936 static int mp_property_sub_pos(m_option_t * prop, int action, void *arg,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
937 MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
938 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
939 if (!mpctx->sh_video)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
940 return M_PROPERTY_UNAVAILABLE;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
941
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
942 switch (action) {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
943 case M_PROPERTY_SET:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
944 if (!arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
945 return M_PROPERTY_ERROR;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
946 case M_PROPERTY_STEP_UP:
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
947 case M_PROPERTY_STEP_DOWN:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
948 vo_osd_changed(OSDTYPE_SUBTITLE);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
949 default:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
950 return m_property_int_range(prop, action, arg, &sub_pos);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
951 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
952 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
953
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
954 /// Selected subtitles (RW)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
955 static int mp_property_sub(m_option_t * prop, int action, void *arg,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
956 MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
957 {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
958 demux_stream_t *const d_sub = mpctx->d_sub;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
959 const int global_sub_size = mpctx->global_sub_size;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
960 int source = -1, reset_spu = 0;
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
961 char *sub_name;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
962
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
963 if (global_sub_size <= 0)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
964 return M_PROPERTY_UNAVAILABLE;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
965
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
966 switch (action) {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
967 case M_PROPERTY_GET:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
968 if (!arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
969 return M_PROPERTY_ERROR;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
970 *(int *) arg = mpctx->global_sub_pos;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
971 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
972 case M_PROPERTY_PRINT:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
973 if (!arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
974 return M_PROPERTY_ERROR;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
975 *(char **) arg = malloc(64);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
976 (*(char **) arg)[63] = 0;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
977 sub_name = 0;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
978 if (subdata)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
979 sub_name = subdata->filename;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
980 #ifdef USE_ASS
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
981 if (ass_track && ass_track->name)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
982 sub_name = ass_track->name;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
983 #endif
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
984 if (sub_name) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
985 char *tmp, *tmp2;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
986 tmp = sub_name;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
987 if ((tmp2 = strrchr(tmp, '/')))
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
988 tmp = tmp2 + 1;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
989
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
990 snprintf(*(char **) arg, 63, "(%d) %s%s",
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
991 mpctx->set_of_sub_pos + 1,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
992 strlen(tmp) < 20 ? "" : "...",
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
993 strlen(tmp) < 20 ? tmp : tmp + strlen(tmp) - 19);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
994 return M_PROPERTY_OK;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
995 }
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
996 #ifdef USE_DVDNAV
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
997 if (mpctx->stream->type == STREAMTYPE_DVDNAV) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
998 if (vo_spudec && dvdsub_id >= 0) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
999 unsigned char lang[3];
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1000 if (dvdnav_lang_from_sid(mpctx->stream, dvdsub_id, lang)) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1001 snprintf(*(char **) arg, 63, "(%d) %s", dvdsub_id, lang);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1002 return M_PROPERTY_OK;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1003 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1004 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1005 }
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1006 #endif
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1007
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1008 if (mpctx->demuxer->type == DEMUXER_TYPE_MATROSKA && dvdsub_id >= 0) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1009 char lang[40] = MSGTR_Unknown;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1010 demux_mkv_get_sub_lang(mpctx->demuxer, dvdsub_id, lang, 9);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1011 snprintf(*(char **) arg, 63, "(%d) %s", dvdsub_id, lang);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1012 return M_PROPERTY_OK;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1013 }
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1014 #ifdef HAVE_OGGVORBIS
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1015 if (mpctx->demuxer->type == DEMUXER_TYPE_OGG && d_sub && dvdsub_id >= 0) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1016 char *lang = demux_ogg_sub_lang(mpctx->demuxer, dvdsub_id);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1017 if (!lang)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1018 lang = MSGTR_Unknown;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1019 snprintf(*(char **) arg, 63, "(%d) %s", dvdsub_id, lang);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1020 return M_PROPERTY_OK;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1021 }
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1022 #endif
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1023 if (vo_vobsub && vobsub_id >= 0) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1024 const char *language = MSGTR_Unknown;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1025 language = vobsub_get_id(vo_vobsub, (unsigned int) vobsub_id);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1026 snprintf(*(char **) arg, 63, "(%d) %s",
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1027 vobsub_id, language ? language : MSGTR_Unknown);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1028 return M_PROPERTY_OK;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1029 }
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1030 #ifdef USE_DVDREAD
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1031 if (vo_spudec && mpctx->stream->type == STREAMTYPE_DVD
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1032 && dvdsub_id >= 0) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1033 char lang[3];
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1034 int code = dvd_lang_from_sid(mpctx->stream, dvdsub_id);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1035 lang[0] = code >> 8;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1036 lang[1] = code;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1037 lang[2] = 0;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1038 snprintf(*(char **) arg, 63, "(%d) %s", dvdsub_id, lang);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1039 return M_PROPERTY_OK;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1040 }
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1041 #endif
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1042 if (dvdsub_id >= 0) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1043 snprintf(*(char **) arg, 63, "(%d) %s", dvdsub_id, MSGTR_Unknown);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1044 return M_PROPERTY_OK;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1045 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1046 snprintf(*(char **) arg, 63, MSGTR_Disabled);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1047 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1048
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1049 case M_PROPERTY_SET:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1050 if (!arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1051 return M_PROPERTY_ERROR;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1052 if (*(int *) arg < -1)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1053 *(int *) arg = -1;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1054 else if (*(int *) arg >= global_sub_size)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1055 *(int *) arg = global_sub_size - 1;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1056 mpctx->global_sub_pos = *(int *) arg;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1057 break;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1058 case M_PROPERTY_STEP_UP:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1059 mpctx->global_sub_pos += 2;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1060 mpctx->global_sub_pos =
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1061 (mpctx->global_sub_pos % (global_sub_size + 1)) - 1;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1062 break;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1063 case M_PROPERTY_STEP_DOWN:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1064 mpctx->global_sub_pos += global_sub_size + 1;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1065 mpctx->global_sub_pos =
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1066 (mpctx->global_sub_pos % (global_sub_size + 1)) - 1;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1067 break;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1068 default:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1069 return M_PROPERTY_NOT_IMPLEMENTED;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1070 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1071
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1072 if (mpctx->global_sub_pos >= 0)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1073 source = sub_source(mpctx);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1074
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1075 mp_msg(MSGT_CPLAYER, MSGL_DBG3,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1076 "subtitles: %d subs, (v@%d s@%d d@%d), @%d, source @%d\n",
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1077 global_sub_size,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1078 mpctx->global_sub_indices[SUB_SOURCE_VOBSUB],
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1079 mpctx->global_sub_indices[SUB_SOURCE_SUBS],
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1080 mpctx->global_sub_indices[SUB_SOURCE_DEMUX],
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1081 mpctx->global_sub_pos, source);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1082
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1083 mpctx->set_of_sub_pos = -1;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1084 subdata = NULL;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1085 vo_sub_last = vo_sub = NULL;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1086
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1087 vobsub_id = -1;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1088 dvdsub_id = -1;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1089 if (d_sub) {
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1090 if (d_sub->id > -2)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1091 reset_spu = 1;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1092 d_sub->id = -2;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1093 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1094 #ifdef USE_ASS
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1095 ass_track = 0;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1096 #endif
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1097
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1098 if (source == SUB_SOURCE_VOBSUB) {
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1099 vobsub_id =
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1100 mpctx->global_sub_pos -
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1101 mpctx->global_sub_indices[SUB_SOURCE_VOBSUB];
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1102 } else if (source == SUB_SOURCE_SUBS) {
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1103 mpctx->set_of_sub_pos =
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1104 mpctx->global_sub_pos - mpctx->global_sub_indices[SUB_SOURCE_SUBS];
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1105 #ifdef USE_ASS
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1106 if (ass_enabled && mpctx->set_of_ass_tracks[mpctx->set_of_sub_pos])
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1107 ass_track = mpctx->set_of_ass_tracks[mpctx->set_of_sub_pos];
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1108 else
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1109 #endif
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1110 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1111 subdata = mpctx->set_of_subtitles[mpctx->set_of_sub_pos];
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1112 vo_osd_changed(OSDTYPE_SUBTITLE);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1113 }
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1114 } else if (source == SUB_SOURCE_DEMUX) {
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1115 dvdsub_id =
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1116 mpctx->global_sub_pos - mpctx->global_sub_indices[SUB_SOURCE_DEMUX];
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1117 if (d_sub) {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1118 #ifdef USE_DVDREAD
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1119 if (vo_spudec && mpctx->stream->type == STREAMTYPE_DVD) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1120 d_sub->id = dvdsub_id;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1121 }
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1122 #endif
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1123
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1124 #ifdef USE_DVDNAV
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1125 if (vo_spudec && mpctx->stream->type == STREAMTYPE_DVDNAV) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1126 d_sub->id = dvdsub_id;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1127 }
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1128 #endif
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1129 if (mpctx->stream->type != STREAMTYPE_DVD
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1130 && mpctx->stream->type != STREAMTYPE_DVDNAV) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1131 int i = 0;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1132 for (d_sub->id = 0; d_sub->id < MAX_S_STREAMS; d_sub->id++) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1133 if (mpctx->demuxer->s_streams[d_sub->id]) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1134 if (i == dvdsub_id)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1135 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1136 i++;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1137 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1138 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1139 d_sub->sh = mpctx->demuxer->s_streams[d_sub->id];
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1140 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1141 if (mpctx->demuxer->type == DEMUXER_TYPE_MATROSKA)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1142 d_sub->id = demux_mkv_change_subs(mpctx->demuxer, dvdsub_id);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1143 if (d_sub->sh && d_sub->id >= 0) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1144 sh_sub_t *sh = d_sub->sh;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1145 if (sh->type == 'v')
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1146 init_vo_spudec();
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1147 #ifdef USE_ASS
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1148 else if (ass_enabled && sh->type == 'a')
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1149 ass_track = sh->ass_track;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1150 #endif
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1151 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1152 }
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1153 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1154 #ifdef USE_DVDREAD
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1155 if (vo_spudec
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1156 && (mpctx->stream->type == STREAMTYPE_DVD
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1157 || mpctx->stream->type == STREAMTYPE_DVDNAV)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1158 && dvdsub_id < 0 && reset_spu) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1159 dvdsub_id = -2;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1160 d_sub->id = dvdsub_id;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1161 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1162 #endif
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1163 update_subtitles(mpctx->sh_video, d_sub, 1);
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1164
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1165 return M_PROPERTY_OK;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1166 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1167
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1168 /// Subtitle delay (RW)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1169 static int mp_property_sub_delay(m_option_t * prop, int action, void *arg,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1170 MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1171 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1172 if (!mpctx->sh_video)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1173 return M_PROPERTY_UNAVAILABLE;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1174 return m_property_delay(prop, action, arg, &sub_delay);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1175 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1176
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1177 /// Alignment of text subtitles (RW)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1178 static int mp_property_sub_alignment(m_option_t * prop, int action,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1179 void *arg, MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1180 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1181 char *name[] = { MSGTR_Top, MSGTR_Center, MSGTR_Bottom };
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1182
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1183 if (!mpctx->sh_video || mpctx->global_sub_pos < 0
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1184 || sub_source(mpctx) != SUB_SOURCE_SUBS)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1185 return M_PROPERTY_UNAVAILABLE;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1186
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1187 switch (action) {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1188 case M_PROPERTY_PRINT:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1189 if (!arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1190 return M_PROPERTY_ERROR;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1191 M_PROPERTY_CLAMP(prop, sub_alignment);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1192 *(char **) arg = strdup(name[sub_alignment]);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1193 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1194 case M_PROPERTY_SET:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1195 if (!arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1196 return M_PROPERTY_ERROR;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1197 case M_PROPERTY_STEP_UP:
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1198 case M_PROPERTY_STEP_DOWN:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1199 vo_osd_changed(OSDTYPE_SUBTITLE);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1200 default:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1201 return m_property_choice(prop, action, arg, &sub_alignment);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1202 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1203 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1204
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1205 /// Subtitle visibility (RW)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1206 static int mp_property_sub_visibility(m_option_t * prop, int action,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1207 void *arg, MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1208 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1209 if (!mpctx->sh_video)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1210 return M_PROPERTY_UNAVAILABLE;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1211
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1212 switch (action) {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1213 case M_PROPERTY_SET:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1214 if (!arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1215 return M_PROPERTY_ERROR;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1216 case M_PROPERTY_STEP_UP:
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1217 case M_PROPERTY_STEP_DOWN:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1218 vo_osd_changed(OSDTYPE_SUBTITLE);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1219 if (vo_spudec)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1220 vo_osd_changed(OSDTYPE_SPU);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1221 default:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1222 return m_property_flag(prop, action, arg, &sub_visibility);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1223 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1224 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1225
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1226 /// Show only forced subtitles (RW)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1227 static int mp_property_sub_forced_only(m_option_t * prop, int action,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1228 void *arg, MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1229 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1230 if (!vo_spudec)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1231 return M_PROPERTY_UNAVAILABLE;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1232
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1233 switch (action) {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1234 case M_PROPERTY_SET:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1235 if (!arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1236 return M_PROPERTY_ERROR;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1237 case M_PROPERTY_STEP_UP:
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1238 case M_PROPERTY_STEP_DOWN:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1239 m_property_flag(prop, action, arg, &forced_subs_only);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1240 spudec_set_forced_subs_only(vo_spudec, forced_subs_only);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1241 return M_PROPERTY_OK;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1242 default:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1243 return m_property_flag(prop, action, arg, &forced_subs_only);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1244 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1245
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1246 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1247
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1248 ///@}
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1249
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1250 /// \defgroup TVProperties TV properties
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1251 /// \ingroup Properties
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1252 ///@{
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1253
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1254 #ifdef USE_TV
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1255
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1256 /// TV color settings (RW)
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1257 static int mp_property_tv_color(m_option_t * prop, int action, void *arg,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1258 MPContext * mpctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1259 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1260 int r, val;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1261 tvi_handle_t *tvh = mpctx->demuxer->priv;
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1262 if (mpctx->demuxer->type != DEMUXER_TYPE_TV || !tvh)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1263 return M_PROPERTY_UNAVAILABLE;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1264
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1265 switch (action) {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1266 case M_PROPERTY_SET:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1267 if (!arg)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1268 return M_PROPERTY_ERROR;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1269 M_PROPERTY_CLAMP(prop, *(int *) arg);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1270 return tv_set_color_options(tvh, (int) prop->priv, *(int *) arg);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1271 case M_PROPERTY_GET:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1272 return tv_get_color_options(tvh, (int) prop->priv, arg);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1273 case M_PROPERTY_STEP_UP:
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1274 case M_PROPERTY_STEP_DOWN:
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1275 if ((r = tv_get_color_options(tvh, (int) prop->priv, &val)) >= 0) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1276 if (!r)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1277 return M_PROPERTY_ERROR;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1278 val += (arg ? *(int *) arg : 1) *
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1279 (action == M_PROPERTY_STEP_DOWN ? -1 : 1);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1280 M_PROPERTY_CLAMP(prop, val);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1281 return tv_set_color_options(tvh, (int) prop->priv, val);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1282 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1283 return M_PROPERTY_ERROR;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1284 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1285 return M_PROPERTY_NOT_IMPLEMENTED;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1286 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1287
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1288 #endif
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1289
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1290 ///@}
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1291
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1292 /// All properties available in MPlayer.
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1293 /** \ingroup Properties
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1294 */
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1295 static m_option_t mp_properties[] = {
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1296 // General
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1297 { "osdlevel", mp_property_osdlevel, CONF_TYPE_INT,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1298 M_OPT_RANGE, 0, 3, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1299 { "speed", mp_property_playback_speed, CONF_TYPE_FLOAT,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1300 M_OPT_RANGE, 0.01, 100.0, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1301 { "filename", mp_property_filename, CONF_TYPE_STRING,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1302 0, 0, 0, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1303 { "path", mp_property_path, CONF_TYPE_STRING,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1304 0, 0, 0, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1305 { "demuxer", mp_property_demuxer, CONF_TYPE_STRING,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1306 0, 0, 0, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1307 { "stream_pos", mp_property_stream_pos, CONF_TYPE_POSITION,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1308 M_OPT_MIN, 0, 0, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1309 { "stream_start", mp_property_stream_start, CONF_TYPE_POSITION,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1310 M_OPT_MIN, 0, 0, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1311 { "stream_end", mp_property_stream_end, CONF_TYPE_POSITION,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1312 M_OPT_MIN, 0, 0, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1313 { "stream_length", mp_property_stream_length, CONF_TYPE_POSITION,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1314 M_OPT_MIN, 0, 0, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1315 { "length", mp_property_length, CONF_TYPE_DOUBLE,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1316 0, 0, 0, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1317
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1318 // Audio
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1319 { "volume", mp_property_volume, CONF_TYPE_FLOAT,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1320 M_OPT_RANGE, 0, 100, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1321 { "mute", mp_property_mute, CONF_TYPE_FLAG,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1322 M_OPT_RANGE, 0, 1, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1323 { "audio_delay", mp_property_audio_delay, CONF_TYPE_FLOAT,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1324 M_OPT_RANGE, -100, 100, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1325 { "audio_format", mp_property_audio_format, CONF_TYPE_INT,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1326 0, 0, 0, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1327 { "audio_bitrate", mp_property_audio_bitrate, CONF_TYPE_INT,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1328 0, 0, 0, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1329 { "samplerate", mp_property_samplerate, CONF_TYPE_INT,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1330 0, 0, 0, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1331 { "channels", mp_property_channels, CONF_TYPE_INT,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1332 0, 0, 0, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1333 { "switch_audio", mp_property_audio, CONF_TYPE_INT,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1334 CONF_RANGE, -2, MAX_A_STREAMS - 1, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1335
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1336 // Video
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1337 { "fullscreen", mp_property_fullscreen, CONF_TYPE_FLAG,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1338 M_OPT_RANGE, 0, 1, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1339 { "deinterlace", mp_property_deinterlace, CONF_TYPE_FLAG,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1340 M_OPT_RANGE, 0, 1, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1341 { "ontop", mp_property_ontop, CONF_TYPE_FLAG,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1342 M_OPT_RANGE, 0, 1, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1343 { "rootwin", mp_property_rootwin, CONF_TYPE_FLAG,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1344 M_OPT_RANGE, 0, 1, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1345 { "border", mp_property_border, CONF_TYPE_FLAG,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1346 M_OPT_RANGE, 0, 1, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1347 { "framedropping", mp_property_framedropping, CONF_TYPE_INT,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1348 M_OPT_RANGE, 0, 2, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1349 { "gamma", mp_property_gamma, CONF_TYPE_INT,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1350 M_OPT_RANGE, -100, 100, &vo_gamma_gamma },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1351 { "brightness", mp_property_gamma, CONF_TYPE_INT,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1352 M_OPT_RANGE, -100, 100, &vo_gamma_brightness },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1353 { "contrast", mp_property_gamma, CONF_TYPE_INT,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1354 M_OPT_RANGE, -100, 100, &vo_gamma_contrast },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1355 { "saturation", mp_property_gamma, CONF_TYPE_INT,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1356 M_OPT_RANGE, -100, 100, &vo_gamma_saturation },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1357 { "hue", mp_property_gamma, CONF_TYPE_INT,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1358 M_OPT_RANGE, -100, 100, &vo_gamma_hue },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1359 { "panscan", mp_property_panscan, CONF_TYPE_FLOAT,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1360 M_OPT_RANGE, 0, 1, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1361 { "vsync", mp_property_vsync, CONF_TYPE_FLAG,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1362 M_OPT_RANGE, 0, 1, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1363 { "video_format", mp_property_video_format, CONF_TYPE_INT,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1364 0, 0, 0, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1365 { "video_bitrate", mp_property_video_bitrate, CONF_TYPE_INT,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1366 0, 0, 0, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1367 { "width", mp_property_width, CONF_TYPE_INT,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1368 0, 0, 0, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1369 { "height", mp_property_height, CONF_TYPE_INT,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1370 0, 0, 0, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1371 { "fps", mp_property_fps, CONF_TYPE_FLOAT,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1372 0, 0, 0, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1373 { "aspect", mp_property_aspect, CONF_TYPE_FLOAT,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1374 0, 0, 0, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1375 { "switch_video", mp_property_video, CONF_TYPE_INT,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1376 CONF_RANGE, -2, MAX_V_STREAMS - 1, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1377 { "switch_program", mp_property_program, CONF_TYPE_INT,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1378 CONF_RANGE, -1, 65535, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1379
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1380 // Subs
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1381 { "sub", mp_property_sub, CONF_TYPE_INT,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1382 M_OPT_MIN, -1, 0, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1383 { "sub_delay", mp_property_sub_delay, CONF_TYPE_FLOAT,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1384 0, 0, 0, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1385 { "sub_pos", mp_property_sub_pos, CONF_TYPE_INT,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1386 M_OPT_RANGE, 0, 100, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1387 { "sub_alignment", mp_property_sub_alignment, CONF_TYPE_INT,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1388 M_OPT_RANGE, 0, 2, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1389 { "sub_visibility", mp_property_sub_visibility, CONF_TYPE_FLAG,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1390 M_OPT_RANGE, 0, 1, NULL },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1391 { "sub_forced_only", mp_property_sub_forced_only, CONF_TYPE_FLAG,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1392 M_OPT_RANGE, 0, 1, NULL },
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1393
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1394 #ifdef USE_TV
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1395 { "tv_brightness", mp_property_tv_color, CONF_TYPE_INT,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1396 M_OPT_RANGE, -100, 100, (void *) TV_COLOR_BRIGHTNESS },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1397 { "tv_contrast", mp_property_tv_color, CONF_TYPE_INT,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1398 M_OPT_RANGE, -100, 100, (void *) TV_COLOR_CONTRAST },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1399 { "tv_saturation", mp_property_tv_color, CONF_TYPE_INT,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1400 M_OPT_RANGE, -100, 100, (void *) TV_COLOR_SATURATION },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1401 { "tv_hue", mp_property_tv_color, CONF_TYPE_INT,
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1402 M_OPT_RANGE, -100, 100, (void *) TV_COLOR_HUE },
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1403 #endif
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1404
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1405 { NULL, NULL, NULL, 0, 0, 0, NULL }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1406 };
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1407
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1408
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1409 m_option_t *mp_property_find(const char *name)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1410 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1411 return m_option_list_find(mp_properties, name);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1412 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1413
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1414 int mp_property_do(const char *name, int action, void *val, void *ctx)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1415 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1416 m_option_t *p = mp_property_find(name);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1417 if (!p)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1418 return M_PROPERTY_UNAVAILABLE;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1419 return m_property_do(p, action, val, ctx);
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1420 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1421
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1422 char *property_expand_string(MPContext * mpctx, char *str)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1423 {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1424 return m_properties_expand_string(mp_properties, str, mpctx);
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1425 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1426
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1427 void property_print_help(void)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1428 {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1429 m_properties_print_help_list(mp_properties);
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1430 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1431
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1432
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1433 ///@}
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1434 // Properties group
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1435
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1436
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1437 /**
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1438 * \defgroup Command2Property Command to property bridge
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1439 *
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1440 * It is used to handle most commands that just set a property
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1441 * and optionally display something on the OSD.
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1442 * Two kinds of commands are handled: adjust or toggle.
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1443 *
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1444 * Adjust commands take 1 or 2 parameters: <value> <abs>
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1445 * If <abs> is non-zero the property is set to the given value
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1446 * otherwise it is adjusted.
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1447 *
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1448 * Toggle commands take 0 or 1 parameters. With no parameter
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1449 * or a value less than the property minimum it just steps the
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1450 * property to its next value. Otherwise it sets it to the given
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1451 * value.
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1452 *
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1453 *@{
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1454 */
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1455
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1456 /// List of the commands that can be handled by setting a property.
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1457 static struct {
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1458 /// property name
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1459 const char *name;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1460 /// cmd id
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1461 int cmd;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1462 /// set/adjust or toggle command
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1463 int toggle;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1464 /// progressbar type
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1465 int osd_progbar;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1466 /// osd msg id if it must be shared
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1467 int osd_id;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1468 /// osd msg template
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1469 const char *osd_msg;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1470 } set_prop_cmd[] = {
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1471 // audio
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1472 { "volume", MP_CMD_VOLUME, 0, OSD_VOLUME, -1, MSGTR_Volume },
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1473 { "mute", MP_CMD_MUTE, 1, 0, -1, MSGTR_MuteStatus },
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1474 { "audio_delay", MP_CMD_AUDIO_DELAY, 0, 0, -1, MSGTR_AVDelayStatus },
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1475 { "switch_audio", MP_CMD_SWITCH_AUDIO, 1, 0, -1, MSGTR_OSDAudio },
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1476 // video
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1477 { "fullscreen", MP_CMD_VO_FULLSCREEN, 1, 0, -1, NULL },
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1478 { "panscan", MP_CMD_PANSCAN, 0, OSD_PANSCAN, -1, MSGTR_Panscan },
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1479 { "ontop", MP_CMD_VO_ONTOP, 1, 0, -1, MSGTR_OnTopStatus },
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1480 { "rootwin", MP_CMD_VO_ROOTWIN, 1, 0, -1, MSGTR_RootwinStatus },
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1481 { "border", MP_CMD_VO_BORDER, 1, 0, -1, MSGTR_BorderStatus },
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1482 { "framedropping", MP_CMD_FRAMEDROPPING, 1, 0, -1, MSGTR_FramedroppingStatus },
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1483 { "gamma", MP_CMD_GAMMA, 0, OSD_BRIGHTNESS, -1, MSGTR_Gamma },
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1484 { "brightness", MP_CMD_BRIGHTNESS, 0, OSD_BRIGHTNESS, -1, MSGTR_Brightness },
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1485 { "contrast", MP_CMD_CONTRAST, 0, OSD_CONTRAST, -1, MSGTR_Contrast },
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1486 { "saturation", MP_CMD_SATURATION, 0, OSD_SATURATION, -1, MSGTR_Saturation },
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1487 { "hue", MP_CMD_HUE, 0, OSD_HUE, -1, MSGTR_Hue },
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1488 { "vsync", MP_CMD_SWITCH_VSYNC, 1, 0, -1, MSGTR_VSyncStatus },
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1489 // subs
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1490 { "sub", MP_CMD_SUB_SELECT, 1, 0, -1, MSGTR_SubSelectStatus },
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1491 { "sub_pos", MP_CMD_SUB_POS, 0, 0, -1, MSGTR_SubPosStatus },
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1492 { "sub_alignment", MP_CMD_SUB_ALIGNMENT, 1, 0, -1, MSGTR_SubAlignStatus },
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1493 { "sub_delay", MP_CMD_SUB_DELAY, 0, 0, OSD_MSG_SUB_DELAY, MSGTR_SubDelayStatus },
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1494 { "sub_visibility", MP_CMD_SUB_VISIBILITY, 1, 0, -1, MSGTR_SubVisibleStatus },
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1495 { "sub_forced_only", MP_CMD_SUB_FORCED_ONLY, 1, 0, -1, MSGTR_SubForcedOnlyStatus },
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1496 #ifdef USE_TV
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1497 { "tv_brightness", MP_CMD_TV_SET_BRIGHTNESS, 0, OSD_BRIGHTNESS, -1, MSGTR_Brightness },
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1498 { "tv_hue", MP_CMD_TV_SET_HUE, 0, OSD_HUE, -1, MSGTR_Hue },
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1499 { "tv_saturation", MP_CMD_TV_SET_SATURATION, 0, OSD_SATURATION, -1, MSGTR_Saturation },
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1500 { "tv_contrast", MP_CMD_TV_SET_CONTRAST, 0, OSD_CONTRAST, -1, MSGTR_Contrast },
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1501 #endif
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1502 { NULL, 0, 0, 0, -1, NULL }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1503 };
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1504
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1505
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1506 /// Handle commands that set a property.
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1507 static int set_property_command(MPContext * mpctx, mp_cmd_t * cmd)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1508 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1509 int i, r;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1510 m_option_t *prop;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1511
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1512 // look for the command
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1513 for (i = 0; set_prop_cmd[i].name; i++)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1514 if (set_prop_cmd[i].cmd == cmd->id)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1515 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1516 if (!set_prop_cmd[i].name)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1517 return 0;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1518
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1519 // get the property
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1520 prop = mp_property_find(set_prop_cmd[i].name);
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1521 if (!prop)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1522 return 0;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1523
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1524 // toggle command
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1525 if (set_prop_cmd[i].toggle) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1526 // set to value
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1527 if (cmd->nargs > 0 && cmd->args[0].v.i >= prop->min)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1528 r = m_property_do(prop, M_PROPERTY_SET, &cmd->args[0].v.i, mpctx);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1529 else
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1530 r = m_property_do(prop, M_PROPERTY_STEP_UP, NULL, mpctx);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1531 } else if (cmd->args[1].v.i) //set
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1532 r = m_property_do(prop, M_PROPERTY_SET, &cmd->args[0].v, mpctx);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1533 else // adjust
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1534 r = m_property_do(prop, M_PROPERTY_STEP_UP, &cmd->args[0].v, mpctx);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1535
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1536 if (r <= 0)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1537 return 1;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1538
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1539 if (set_prop_cmd[i].osd_progbar) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1540 if (prop->type == CONF_TYPE_INT) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1541 if (m_property_do(prop, M_PROPERTY_GET, &r, mpctx) > 0)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1542 set_osd_bar(set_prop_cmd[i].osd_progbar,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1543 set_prop_cmd[i].osd_msg, prop->min, prop->max, r);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1544 } else if (prop->type == CONF_TYPE_FLOAT) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1545 float f;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1546 if (m_property_do(prop, M_PROPERTY_GET, &f, mpctx) > 0)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1547 set_osd_bar(set_prop_cmd[i].osd_progbar,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1548 set_prop_cmd[i].osd_msg, prop->min, prop->max, f);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1549 } else
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1550 mp_msg(MSGT_CPLAYER, MSGL_ERR,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1551 "Property use an unsupported type.\n");
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1552 return 1;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1553 }
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1554
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1555 if (set_prop_cmd[i].osd_msg) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1556 char *val = m_property_print(prop, mpctx);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1557 if (val) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1558 set_osd_msg(set_prop_cmd[i].osd_id >=
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1559 0 ? set_prop_cmd[i].osd_id : OSD_MSG_PROPERTY + i,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1560 1, osd_duration, set_prop_cmd[i].osd_msg, val);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1561 free(val);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1562 }
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1563 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1564 return 1;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1565 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1566
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1567
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1568 int run_command(MPContext * mpctx, mp_cmd_t * cmd)
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1569 {
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1570 sh_audio_t * const sh_audio = mpctx->sh_audio;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1571 sh_video_t * const sh_video = mpctx->sh_video;
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1572 int brk_cmd = 0;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1573 if (!set_property_command(mpctx, cmd))
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1574 switch (cmd->id) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1575 case MP_CMD_SEEK:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1576 float v;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1577 int abs;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1578 if (sh_video)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1579 mpctx->osd_show_percentage = sh_video->fps;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1580 v = cmd->args[0].v.f;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1581 abs = (cmd->nargs > 1) ? cmd->args[1].v.i : 0;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1582 if (abs == 2) { /* Absolute seek to a specific timestamp in seconds */
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1583 abs_seek_pos = 1;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1584 if (sh_video)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1585 mpctx->osd_function =
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1586 (v > sh_video->pts) ? OSD_FFW : OSD_REW;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1587 rel_seek_secs = v;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1588 } else if (abs) { /* Absolute seek by percentage */
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1589 abs_seek_pos = 3;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1590 if (sh_video)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1591 mpctx->osd_function = OSD_FFW; // Direction isn't set correctly
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1592 rel_seek_secs = v / 100.0;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1593 } else {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1594 rel_seek_secs += v;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1595 mpctx->osd_function = (v > 0) ? OSD_FFW : OSD_REW;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1596 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1597 brk_cmd = 1;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1598 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1599 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1600
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1601 case MP_CMD_SET_PROPERTY:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1602 m_option_t *prop = mp_property_find(cmd->args[0].v.s);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1603 if (!prop)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1604 mp_msg(MSGT_CPLAYER, MSGL_WARN,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1605 "Unknown property: '%s'\n", cmd->args[0].v.s);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1606 else if (m_property_parse(prop, cmd->args[1].v.s, mpctx) <= 0)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1607 mp_msg(MSGT_CPLAYER, MSGL_WARN,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1608 "Failed to set property '%s' to '%s'.\n",
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1609 cmd->args[0].v.s, cmd->args[1].v.s);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1610 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1611 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1612
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1613 case MP_CMD_STEP_PROPERTY:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1614 m_option_t *prop = mp_property_find(cmd->args[0].v.s);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1615 float arg = cmd->args[1].v.f;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1616 if (!prop)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1617 mp_msg(MSGT_CPLAYER, MSGL_WARN,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1618 "Unknown property: '%s'\n", cmd->args[0].v.s);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1619 else if (m_property_do
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1620 (prop, M_PROPERTY_STEP_UP,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1621 arg ? &arg : NULL, mpctx) <= 0)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1622 mp_msg(MSGT_CPLAYER, MSGL_WARN,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1623 "Failed to increment property '%s' by %f.\n",
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1624 cmd->args[0].v.s, arg);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1625 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1626 break;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1627
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1628 case MP_CMD_GET_PROPERTY:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1629 m_option_t *prop;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1630 void *val;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1631 char *tmp;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1632 prop = mp_property_find(cmd->args[0].v.s);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1633 if (!prop) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1634 mp_msg(MSGT_CPLAYER, MSGL_WARN,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1635 "Unknown property: '%s'\n", cmd->args[0].v.s);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1636 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1637 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1638 /* Use m_option_print directly to get easily parseable values. */
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1639 val = calloc(1, prop->type->size);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1640 if (m_property_do(prop, M_PROPERTY_GET, val, mpctx) <= 0) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1641 mp_msg(MSGT_CPLAYER, MSGL_WARN,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1642 "Failed to get value of property '%s'.\n",
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1643 cmd->args[0].v.s);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1644 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1645 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1646 tmp = m_option_print(prop, val);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1647 if (!tmp || tmp == (char *) -1) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1648 mp_msg(MSGT_CPLAYER, MSGL_WARN,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1649 "Failed to print value of property '%s'.\n",
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1650 cmd->args[0].v.s);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1651 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1652 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1653 mp_msg(MSGT_GLOBAL, MSGL_INFO, "ANS_%s=%s\n",
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1654 cmd->args[0].v.s, tmp);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1655 free(tmp);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1656 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1657 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1658
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1659 case MP_CMD_EDL_MARK:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1660 if (edl_fd) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1661 float v = sh_video ? sh_video->pts :
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1662 playing_audio_pts(sh_audio, mpctx->d_audio,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1663 mpctx->audio_out);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1664
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1665 if (mpctx->begin_skip == MP_NOPTS_VALUE) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1666 mpctx->begin_skip = v;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1667 mp_msg(MSGT_CPLAYER, MSGL_INFO, MSGTR_EdloutStartSkip);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1668 } else {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1669 if (mpctx->begin_skip > v)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1670 mp_msg(MSGT_CPLAYER, MSGL_WARN, MSGTR_EdloutBadStop);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1671 else {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1672 fprintf(edl_fd, "%f %f %d\n", mpctx->begin_skip, v, 0);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1673 mp_msg(MSGT_CPLAYER, MSGL_INFO, MSGTR_EdloutEndSkip);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1674 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1675 mpctx->begin_skip = MP_NOPTS_VALUE;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1676 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1677 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1678 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1679
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1680 case MP_CMD_SWITCH_RATIO:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1681 if (cmd->nargs == 0 || cmd->args[0].v.f == -1)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1682 movie_aspect = (float) sh_video->disp_w / sh_video->disp_h;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1683 else
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1684 movie_aspect = cmd->args[0].v.f;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1685 mpcodecs_config_vo(sh_video, sh_video->disp_w, sh_video->disp_h, 0);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1686 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1687
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1688 case MP_CMD_SPEED_INCR:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1689 float v = cmd->args[0].v.f;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1690 playback_speed += v;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1691 build_afilter_chain(sh_audio, &ao_data);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1692 set_osd_msg(OSD_MSG_SPEED, 1, osd_duration, MSGTR_OSDSpeed,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1693 playback_speed);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1694 } break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1695
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1696 case MP_CMD_SPEED_MULT:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1697 float v = cmd->args[0].v.f;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1698 playback_speed *= v;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1699 build_afilter_chain(sh_audio, &ao_data);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1700 set_osd_msg(OSD_MSG_SPEED, 1, osd_duration, MSGTR_OSDSpeed,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1701 playback_speed);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1702 } break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1703
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1704 case MP_CMD_SPEED_SET:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1705 float v = cmd->args[0].v.f;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1706 playback_speed = v;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1707 build_afilter_chain(sh_audio, &ao_data);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1708 set_osd_msg(OSD_MSG_SPEED, 1, osd_duration, MSGTR_OSDSpeed,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1709 playback_speed);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1710 } break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1711
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1712 case MP_CMD_FRAME_STEP:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1713 case MP_CMD_PAUSE:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1714 cmd->pausing = 1;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1715 brk_cmd = 1;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1716 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1717
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1718 case MP_CMD_FILE_FILTER:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1719 file_filter = cmd->args[0].v.i;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1720 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1721
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1722 case MP_CMD_QUIT:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1723 exit_player_with_rc(MSGTR_Exit_quit,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1724 (cmd->nargs > 0) ? cmd->args[0].v.i : 0);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1725
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1726 case MP_CMD_PLAY_TREE_STEP:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1727 int n = cmd->args[0].v.i == 0 ? 1 : cmd->args[0].v.i;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1728 int force = cmd->args[1].v.i;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1729
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1730 #ifdef HAVE_NEW_GUI
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1731 if (use_gui) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1732 int i = 0;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1733 if (n > 0)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1734 for (i = 0; i < n; i++)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1735 mplNext();
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1736 else
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1737 for (i = 0; i < -1 * n; i++)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1738 mplPrev();
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1739 } else
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1740 #endif
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1741 {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1742 if (!force && mpctx->playtree_iter) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1743 play_tree_iter_t *i =
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1744 play_tree_iter_new_copy(mpctx->playtree_iter);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1745 if (play_tree_iter_step(i, n, 0) ==
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1746 PLAY_TREE_ITER_ENTRY)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1747 mpctx->eof =
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1748 (n > 0) ? PT_NEXT_ENTRY : PT_PREV_ENTRY;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1749 play_tree_iter_free(i);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1750 } else
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1751 mpctx->eof = (n > 0) ? PT_NEXT_ENTRY : PT_PREV_ENTRY;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1752 if (mpctx->eof)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1753 mpctx->play_tree_step = n;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1754 brk_cmd = 1;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1755 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1756 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1757 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1758
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1759 case MP_CMD_PLAY_TREE_UP_STEP:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1760 int n = cmd->args[0].v.i > 0 ? 1 : -1;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1761 int force = cmd->args[1].v.i;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1762
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1763 if (!force && mpctx->playtree_iter) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1764 play_tree_iter_t *i =
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1765 play_tree_iter_new_copy(mpctx->playtree_iter);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1766 if (play_tree_iter_up_step(i, n, 0) == PLAY_TREE_ITER_ENTRY)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1767 mpctx->eof = (n > 0) ? PT_UP_NEXT : PT_UP_PREV;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1768 play_tree_iter_free(i);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1769 } else
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1770 mpctx->eof = (n > 0) ? PT_UP_NEXT : PT_UP_PREV;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1771 brk_cmd = 1;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1772 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1773 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1774
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1775 case MP_CMD_PLAY_ALT_SRC_STEP:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1776 if (mpctx->playtree_iter && mpctx->playtree_iter->num_files > 1) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1777 int v = cmd->args[0].v.i;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1778 if (v > 0
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1779 && mpctx->playtree_iter->file <
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1780 mpctx->playtree_iter->num_files)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1781 mpctx->eof = PT_NEXT_SRC;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1782 else if (v < 0 && mpctx->playtree_iter->file > 1)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1783 mpctx->eof = PT_PREV_SRC;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1784 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1785 brk_cmd = 1;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1786 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1787
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1788 case MP_CMD_SUB_STEP:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1789 if (sh_video) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1790 int movement = cmd->args[0].v.i;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1791 step_sub(subdata, sh_video->pts, movement);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1792 #ifdef USE_ASS
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1793 if (ass_track)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1794 sub_delay +=
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1795 ass_step_sub(ass_track,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1796 (sh_video->pts +
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1797 sub_delay) * 1000 + .5, movement) / 1000.;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1798 #endif
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1799 set_osd_msg(OSD_MSG_SUB_DELAY, 1, osd_duration,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1800 MSGTR_OSDSubDelay, ROUND(sub_delay * 1000));
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1801 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1802 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1803
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1804 case MP_CMD_SUB_LOG:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1805 log_sub();
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1806 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1807
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1808 case MP_CMD_OSD:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1809 int v = cmd->args[0].v.i;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1810 int max = (term_osd
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1811 && !sh_video) ? MAX_TERM_OSD_LEVEL : MAX_OSD_LEVEL;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1812 if (osd_level > max)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1813 osd_level = max;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1814 if (v < 0)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1815 osd_level = (osd_level + 1) % (max + 1);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1816 else
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1817 osd_level = v > max ? max : v;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1818 /* Show OSD state when disabled, but not when an explicit
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1819 argument is given to the OSD command, i.e. in slave mode. */
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1820 if (v == -1 && osd_level <= 1)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1821 set_osd_msg(OSD_MSG_OSD_STATUS, 0, osd_duration,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1822 MSGTR_OSDosd,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1823 osd_level ? MSGTR_OSDenabled :
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1824 MSGTR_OSDdisabled);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1825 else
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1826 rm_osd_msg(OSD_MSG_OSD_STATUS);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1827 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1828 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1829
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1830 case MP_CMD_OSD_SHOW_TEXT:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1831 set_osd_msg(OSD_MSG_TEXT, cmd->args[2].v.i,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1832 (cmd->args[1].v.i <
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1833 0 ? osd_duration : cmd->args[1].v.i),
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1834 "%-.63s", cmd->args[0].v.s);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1835 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1836
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1837 case MP_CMD_OSD_SHOW_PROPERTY_TEXT:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1838 char *txt = m_properties_expand_string(mp_properties,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1839 cmd->args[0].v.s,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1840 mpctx);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1841 /* if no argument supplied take default osd_duration, else <arg> ms. */
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1842 if (txt) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1843 set_osd_msg(OSD_MSG_TEXT, cmd->args[2].v.i,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1844 (cmd->args[1].v.i <
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1845 0 ? osd_duration : cmd->args[1].v.i),
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1846 "%-.63s", txt);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1847 free(txt);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1848 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1849 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1850 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1851
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1852 case MP_CMD_LOADFILE:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1853 play_tree_t *e = play_tree_new();
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1854 play_tree_add_file(e, cmd->args[0].v.s);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1855
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1856 if (cmd->args[1].v.i) // append
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1857 play_tree_append_entry(mpctx->playtree, e);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1858 else {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1859 // Go back to the starting point.
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1860 while (play_tree_iter_up_step
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1861 (mpctx->playtree_iter, 0, 1) != PLAY_TREE_ITER_END)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1862 /* NOP */ ;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1863 play_tree_free_list(mpctx->playtree->child, 1);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1864 play_tree_set_child(mpctx->playtree, e);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1865 play_tree_iter_step(mpctx->playtree_iter, 0, 0);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1866 mpctx->eof = PT_NEXT_SRC;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1867 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1868 brk_cmd = 1;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1869 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1870 break;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1871
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1872 case MP_CMD_LOADLIST:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1873 play_tree_t *e = parse_playlist_file(cmd->args[0].v.s);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1874 if (!e)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1875 mp_msg(MSGT_CPLAYER, MSGL_ERR,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1876 MSGTR_PlaylistLoadUnable, cmd->args[0].v.s);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1877 else {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1878 if (cmd->args[1].v.i) // append
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1879 play_tree_append_entry(mpctx->playtree, e);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1880 else {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1881 // Go back to the starting point.
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1882 while (play_tree_iter_up_step
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1883 (mpctx->playtree_iter, 0, 1)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1884 != PLAY_TREE_ITER_END)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1885 /* NOP */ ;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1886 play_tree_free_list(mpctx->playtree->child, 1);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1887 play_tree_set_child(mpctx->playtree, e);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1888 play_tree_iter_step(mpctx->playtree_iter, 0, 0);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1889 mpctx->eof = PT_NEXT_SRC;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1890 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1891 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1892 brk_cmd = 1;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1893 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1894 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1895
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1896 #ifdef USE_RADIO
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1897 case MP_CMD_RADIO_STEP_CHANNEL:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1898 if (mpctx->demuxer->stream->type == STREAMTYPE_RADIO) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1899 int v = cmd->args[0].v.i;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1900 if (v > 0)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1901 radio_step_channel(mpctx->demuxer->stream,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1902 RADIO_CHANNEL_HIGHER);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1903 else
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1904 radio_step_channel(mpctx->demuxer->stream,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1905 RADIO_CHANNEL_LOWER);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1906 if (radio_get_channel_name(mpctx->demuxer->stream)) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1907 set_osd_msg(OSD_MSG_RADIO_CHANNEL, 1, osd_duration,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1908 MSGTR_OSDChannel,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1909 radio_get_channel_name(mpctx->demuxer->stream));
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1910 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1911 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1912 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1913
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1914 case MP_CMD_RADIO_SET_CHANNEL:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1915 if (mpctx->demuxer->stream->type == STREAMTYPE_RADIO) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1916 radio_set_channel(mpctx->demuxer->stream, cmd->args[0].v.s);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1917 if (radio_get_channel_name(mpctx->demuxer->stream)) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1918 set_osd_msg(OSD_MSG_RADIO_CHANNEL, 1, osd_duration,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1919 MSGTR_OSDChannel,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1920 radio_get_channel_name(mpctx->demuxer->stream));
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1921 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1922 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1923 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1924
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1925 case MP_CMD_RADIO_SET_FREQ:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1926 if (mpctx->demuxer->stream->type == STREAMTYPE_RADIO)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1927 radio_set_freq(mpctx->demuxer->stream, cmd->args[0].v.f);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1928 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1929
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1930 case MP_CMD_RADIO_STEP_FREQ:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1931 if (mpctx->demuxer->stream->type == STREAMTYPE_RADIO)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1932 radio_step_freq(mpctx->demuxer->stream, cmd->args[0].v.f);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1933 break;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
1934 #endif
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1935
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1936 #ifdef USE_TV
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1937 case MP_CMD_TV_SET_FREQ:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1938 if (mpctx->file_format == DEMUXER_TYPE_TV)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1939 tv_set_freq((tvi_handle_t *) (mpctx->demuxer->priv),
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1940 cmd->args[0].v.f * 16.0);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1941 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1942
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1943 case MP_CMD_TV_SET_NORM:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1944 if (mpctx->file_format == DEMUXER_TYPE_TV)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1945 tv_set_norm((tvi_handle_t *) (mpctx->demuxer->priv),
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1946 cmd->args[0].v.s);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1947 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1948
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1949 case MP_CMD_TV_STEP_CHANNEL:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1950 if (mpctx->file_format == DEMUXER_TYPE_TV) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1951 int v = cmd->args[0].v.i;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1952 if (v > 0) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1953 tv_step_channel((tvi_handle_t *) (mpctx->
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1954 demuxer->priv),
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1955 TV_CHANNEL_HIGHER);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1956 } else {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1957 tv_step_channel((tvi_handle_t *) (mpctx->
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1958 demuxer->priv),
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1959 TV_CHANNEL_LOWER);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1960 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1961 if (tv_channel_list) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1962 set_osd_msg(OSD_MSG_TV_CHANNEL, 1, osd_duration,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1963 MSGTR_OSDChannel, tv_channel_current->name);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1964 //vo_osd_changed(OSDTYPE_SUBTITLE);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1965 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1966 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1967 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1968 #ifdef HAS_DVBIN_SUPPORT
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1969 if ((mpctx->stream->type == STREAMTYPE_DVB)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1970 && mpctx->stream->priv) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1971 dvb_priv_t *priv = (dvb_priv_t *) mpctx->stream->priv;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1972 if (priv->is_on) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1973 int dir;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1974 int v = cmd->args[0].v.i;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1975
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1976 mpctx->last_dvb_step = v;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1977 if (v > 0)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1978 dir = DVB_CHANNEL_HIGHER;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1979 else
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1980 dir = DVB_CHANNEL_LOWER;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1981
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1982
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1983 if (dvb_step_channel(priv, dir))
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1984 mpctx->eof = mpctx->dvbin_reopen = 1;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1985 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1986 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1987 #endif /* HAS_DVBIN_SUPPORT */
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1988 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1989
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1990 case MP_CMD_TV_SET_CHANNEL:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1991 if (mpctx->file_format == DEMUXER_TYPE_TV) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1992 tv_set_channel((tvi_handle_t *) (mpctx->demuxer->priv),
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1993 cmd->args[0].v.s);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1994 if (tv_channel_list) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1995 set_osd_msg(OSD_MSG_TV_CHANNEL, 1, osd_duration,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1996 MSGTR_OSDChannel, tv_channel_current->name);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1997 //vo_osd_changed(OSDTYPE_SUBTITLE);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1998 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
1999 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2000 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2001
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2002 #ifdef HAS_DVBIN_SUPPORT
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2003 case MP_CMD_DVB_SET_CHANNEL:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2004 if ((mpctx->stream->type == STREAMTYPE_DVB)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2005 && mpctx->stream->priv) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2006 dvb_priv_t *priv = (dvb_priv_t *) mpctx->stream->priv;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2007 if (priv->is_on) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2008 if (priv->list->current <= cmd->args[0].v.i)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2009 mpctx->last_dvb_step = 1;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2010 else
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2011 mpctx->last_dvb_step = -1;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2012
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2013 if (dvb_set_channel
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2014 (priv, cmd->args[1].v.i, cmd->args[0].v.i))
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2015 mpctx->eof = mpctx->dvbin_reopen = 1;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2016 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2017 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2018 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2019 #endif /* HAS_DVBIN_SUPPORT */
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2020
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2021 case MP_CMD_TV_LAST_CHANNEL:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2022 if (mpctx->file_format == DEMUXER_TYPE_TV) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2023 tv_last_channel((tvi_handle_t *) (mpctx->demuxer->priv));
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2024 if (tv_channel_list) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2025 set_osd_msg(OSD_MSG_TV_CHANNEL, 1, osd_duration,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2026 MSGTR_OSDChannel, tv_channel_current->name);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2027 //vo_osd_changed(OSDTYPE_SUBTITLE);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2028 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2029 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2030 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2031
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2032 case MP_CMD_TV_STEP_NORM:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2033 if (mpctx->file_format == DEMUXER_TYPE_TV)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2034 tv_step_norm((tvi_handle_t *) (mpctx->demuxer->priv));
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2035 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2036
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2037 case MP_CMD_TV_STEP_CHANNEL_LIST:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2038 if (mpctx->file_format == DEMUXER_TYPE_TV)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2039 tv_step_chanlist((tvi_handle_t *) (mpctx->demuxer->priv));
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2040 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2041 #endif /* USE_TV */
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
2042
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2043 case MP_CMD_SUB_LOAD:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2044 if (sh_video) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2045 int n = mpctx->set_of_sub_size;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2046 add_subtitles(cmd->args[0].v.s, sh_video->fps, 0);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2047 if (n != mpctx->set_of_sub_size) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2048 if (mpctx->global_sub_indices[SUB_SOURCE_SUBS] < 0)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2049 mpctx->global_sub_indices[SUB_SOURCE_SUBS] =
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2050 mpctx->global_sub_size;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2051 ++mpctx->global_sub_size;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2052 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2053 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2054 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2055
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2056 case MP_CMD_SUB_REMOVE:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2057 if (sh_video) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2058 int v = cmd->args[0].v.i;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2059 sub_data *subd;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2060 if (v < 0) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2061 for (v = 0; v < mpctx->set_of_sub_size; ++v) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2062 subd = mpctx->set_of_subtitles[v];
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2063 mp_msg(MSGT_CPLAYER, MSGL_STATUS,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2064 MSGTR_RemovedSubtitleFile, v + 1,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2065 filename_recode(subd->filename));
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2066 sub_free(subd);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2067 mpctx->set_of_subtitles[v] = NULL;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2068 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2069 mpctx->global_sub_indices[SUB_SOURCE_SUBS] = -1;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2070 mpctx->global_sub_size -= mpctx->set_of_sub_size;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2071 mpctx->set_of_sub_size = 0;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2072 if (mpctx->set_of_sub_pos >= 0) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2073 mpctx->global_sub_pos = -2;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2074 vo_sub_last = vo_sub = NULL;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2075 vo_osd_changed(OSDTYPE_SUBTITLE);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2076 vo_update_osd(sh_video->disp_w, sh_video->disp_h);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2077 mp_input_queue_cmd(mp_input_parse_cmd("sub_select"));
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2078 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2079 } else if (v < mpctx->set_of_sub_size) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2080 subd = mpctx->set_of_subtitles[v];
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2081 mp_msg(MSGT_CPLAYER, MSGL_STATUS,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2082 MSGTR_RemovedSubtitleFile, v + 1,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2083 filename_recode(subd->filename));
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2084 sub_free(subd);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2085 if (mpctx->set_of_sub_pos == v) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2086 mpctx->global_sub_pos = -2;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2087 vo_sub_last = vo_sub = NULL;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2088 vo_osd_changed(OSDTYPE_SUBTITLE);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2089 vo_update_osd(sh_video->disp_w, sh_video->disp_h);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2090 mp_input_queue_cmd(mp_input_parse_cmd("sub_select"));
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2091 } else if (mpctx->set_of_sub_pos > v) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2092 --mpctx->set_of_sub_pos;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2093 --mpctx->global_sub_pos;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2094 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2095 while (++v < mpctx->set_of_sub_size)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2096 mpctx->set_of_subtitles[v - 1] =
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2097 mpctx->set_of_subtitles[v];
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2098 --mpctx->set_of_sub_size;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2099 --mpctx->global_sub_size;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2100 if (mpctx->set_of_sub_size <= 0)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2101 mpctx->global_sub_indices[SUB_SOURCE_SUBS] = -1;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2102 mpctx->set_of_subtitles[mpctx->set_of_sub_size] = NULL;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2103 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2104 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2105 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2106
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2107 case MP_CMD_GET_SUB_VISIBILITY:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2108 if (sh_video) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2109 mp_msg(MSGT_GLOBAL, MSGL_INFO,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2110 "ANS_SUB_VISIBILITY=%d\n", sub_visibility);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2111 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2112 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2113
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2114 case MP_CMD_SCREENSHOT:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2115 if (vo_config_count) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2116 mp_msg(MSGT_CPLAYER, MSGL_INFO, "sending VFCTRL_SCREENSHOT!\n");
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2117 if (CONTROL_OK !=
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2118 ((vf_instance_t *) sh_video->vfilter)->
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2119 control(sh_video->vfilter, VFCTRL_SCREENSHOT,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2120 &cmd->args[0].v.i))
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2121 mpctx->video_out->control(VOCTRL_SCREENSHOT, NULL);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2122 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2123 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2124
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2125 case MP_CMD_VF_CHANGE_RECTANGLE:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2126 set_rectangle(sh_video, cmd->args[0].v.i, cmd->args[1].v.i);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2127 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2128
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2129 case MP_CMD_GET_TIME_LENGTH:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2130 mp_msg(MSGT_GLOBAL, MSGL_INFO, "ANS_LENGTH=%.2lf\n",
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2131 demuxer_get_time_length(mpctx->demuxer));
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2132 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2133 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2134
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2135 case MP_CMD_GET_FILENAME:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2136 mp_msg(MSGT_GLOBAL, MSGL_INFO, "ANS_FILENAME='%s'\n",
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2137 get_metadata(META_NAME));
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2138 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2139 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2140
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2141 case MP_CMD_GET_VIDEO_CODEC:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2142 char *inf = get_metadata(META_VIDEO_CODEC);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2143 if (!inf)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2144 inf = strdup("");
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2145 mp_msg(MSGT_GLOBAL, MSGL_INFO, "ANS_VIDEO_CODEC='%s'\n", inf);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2146 free(inf);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2147 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2148 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2149
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2150 case MP_CMD_GET_VIDEO_BITRATE:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2151 char *inf = get_metadata(META_VIDEO_BITRATE);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2152 if (!inf)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2153 inf = strdup("");
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2154 mp_msg(MSGT_GLOBAL, MSGL_INFO, "ANS_VIDEO_BITRATE='%s'\n", inf);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2155 free(inf);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2156 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2157 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2158
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2159 case MP_CMD_GET_VIDEO_RESOLUTION:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2160 char *inf = get_metadata(META_VIDEO_RESOLUTION);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2161 if (!inf)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2162 inf = strdup("");
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2163 mp_msg(MSGT_GLOBAL, MSGL_INFO,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2164 "ANS_VIDEO_RESOLUTION='%s'\n", inf);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2165 free(inf);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2166 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2167 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2168
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2169 case MP_CMD_GET_AUDIO_CODEC:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2170 char *inf = get_metadata(META_AUDIO_CODEC);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2171 if (!inf)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2172 inf = strdup("");
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2173 mp_msg(MSGT_GLOBAL, MSGL_INFO, "ANS_AUDIO_CODEC='%s'\n", inf);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2174 free(inf);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2175 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2176 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2177
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2178 case MP_CMD_GET_AUDIO_BITRATE:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2179 char *inf = get_metadata(META_AUDIO_BITRATE);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2180 if (!inf)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2181 inf = strdup("");
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2182 mp_msg(MSGT_GLOBAL, MSGL_INFO, "ANS_AUDIO_BITRATE='%s'\n", inf);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2183 free(inf);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2184 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2185 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2186
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2187 case MP_CMD_GET_AUDIO_SAMPLES:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2188 char *inf = get_metadata(META_AUDIO_SAMPLES);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2189 if (!inf)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2190 inf = strdup("");
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2191 mp_msg(MSGT_GLOBAL, MSGL_INFO, "ANS_AUDIO_SAMPLES='%s'\n", inf);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2192 free(inf);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2193 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2194 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2195
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2196 case MP_CMD_GET_META_TITLE:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2197 char *inf = get_metadata(META_INFO_TITLE);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2198 if (!inf)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2199 inf = strdup("");
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2200 mp_msg(MSGT_GLOBAL, MSGL_INFO, "ANS_META_TITLE='%s'\n", inf);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2201 free(inf);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2202 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2203 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2204
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2205 case MP_CMD_GET_META_ARTIST:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2206 char *inf = get_metadata(META_INFO_ARTIST);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2207 if (!inf)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2208 inf = strdup("");
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2209 mp_msg(MSGT_GLOBAL, MSGL_INFO, "ANS_META_ARTIST='%s'\n", inf);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2210 free(inf);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2211 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2212 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2213
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2214 case MP_CMD_GET_META_ALBUM:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2215 char *inf = get_metadata(META_INFO_ALBUM);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2216 if (!inf)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2217 inf = strdup("");
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2218 mp_msg(MSGT_GLOBAL, MSGL_INFO, "ANS_META_ALBUM='%s'\n", inf);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2219 free(inf);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2220 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2221 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2222
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2223 case MP_CMD_GET_META_YEAR:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2224 char *inf = get_metadata(META_INFO_YEAR);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2225 if (!inf)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2226 inf = strdup("");
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2227 mp_msg(MSGT_GLOBAL, MSGL_INFO, "ANS_META_YEAR='%s'\n", inf);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2228 free(inf);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2229 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2230 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2231
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2232 case MP_CMD_GET_META_COMMENT:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2233 char *inf = get_metadata(META_INFO_COMMENT);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2234 if (!inf)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2235 inf = strdup("");
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2236 mp_msg(MSGT_GLOBAL, MSGL_INFO, "ANS_META_COMMENT='%s'\n", inf);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2237 free(inf);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2238 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2239 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2240
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2241 case MP_CMD_GET_META_TRACK:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2242 char *inf = get_metadata(META_INFO_TRACK);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2243 if (!inf)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2244 inf = strdup("");
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2245 mp_msg(MSGT_GLOBAL, MSGL_INFO, "ANS_META_TRACK='%s'\n", inf);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2246 free(inf);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2247 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2248 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2249
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2250 case MP_CMD_GET_META_GENRE:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2251 char *inf = get_metadata(META_INFO_GENRE);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2252 if (!inf)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2253 inf = strdup("");
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2254 mp_msg(MSGT_GLOBAL, MSGL_INFO, "ANS_META_GENRE='%s'\n", inf);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2255 free(inf);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2256 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2257 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2258
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2259 case MP_CMD_GET_VO_FULLSCREEN:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2260 if (mpctx->video_out && vo_config_count)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2261 mp_msg(MSGT_GLOBAL, MSGL_INFO, "ANS_VO_FULLSCREEN=%d\n", vo_fs);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2262 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2263
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2264 case MP_CMD_GET_PERCENT_POS:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2265 mp_msg(MSGT_GLOBAL, MSGL_INFO, "ANS_PERCENT_POSITION=%d\n",
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2266 demuxer_get_percent_pos(mpctx->demuxer));
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2267 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2268
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2269 case MP_CMD_GET_TIME_POS:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2270 float pos = 0;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2271 if (sh_video)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2272 pos = sh_video->pts;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2273 else if (sh_audio && mpctx->audio_out)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2274 pos =
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2275 playing_audio_pts(sh_audio, mpctx->d_audio,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2276 mpctx->audio_out);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2277 mp_msg(MSGT_GLOBAL, MSGL_INFO, "ANS_TIME_POSITION=%.1f\n", pos);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2278 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2279 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2280
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2281 case MP_CMD_RUN:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2282 #ifndef __MINGW32__
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2283 if (!fork()) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2284 execl("/bin/sh", "sh", "-c", cmd->args[0].v.s, NULL);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2285 exit(0);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2286 }
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
2287 #endif
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2288 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2289
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2290 case MP_CMD_KEYDOWN_EVENTS:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2291 mplayer_put_key(cmd->args[0].v.i);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2292 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2293
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2294 case MP_CMD_SEEK_CHAPTER:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2295 int seek = cmd->args[0].v.i;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2296 int abs = (cmd->nargs > 1) ? cmd->args[1].v.i : 0;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2297 int chap;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2298 float next_pts = 0;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2299 int num_chapters;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2300 char *chapter_name;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2301
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2302 rel_seek_secs = 0;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2303 abs_seek_pos = 0;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2304 chap =
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2305 demuxer_seek_chapter(mpctx->demuxer, seek, abs,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2306 &next_pts, &num_chapters,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2307 &chapter_name);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2308 if (chap != -1) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2309 if (next_pts > -1.0) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2310 abs_seek_pos = 1;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2311 rel_seek_secs = next_pts;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2312 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2313 if (chapter_name) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2314 set_osd_msg(OSD_MSG_TEXT, 1, osd_duration,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2315 MSGTR_OSDChapter, chap + 1, chapter_name);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2316 free(chapter_name);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2317 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2318 } else {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2319 if (seek > 0)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2320 rel_seek_secs = 1000000000.;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2321 else
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2322 set_osd_msg(OSD_MSG_TEXT, 1, osd_duration,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2323 MSGTR_OSDChapter, 0, MSGTR_Unknown);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2324 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2325 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2326 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2327 break;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
2328
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2329 case MP_CMD_SET_MOUSE_POS:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2330 int button = -1, pointer_x, pointer_y;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2331 double dx, dy;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2332 pointer_x = cmd->args[0].v.i;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2333 pointer_y = cmd->args[1].v.i;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2334 rescale_input_coordinates(pointer_x, pointer_y, &dx, &dy);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2335 #ifdef USE_DVDNAV
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2336 if (mpctx->stream->type == STREAMTYPE_DVDNAV
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2337 && dx > 0.0 && dy > 0.0) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2338 pointer_x = (int) (dx * (double) sh_video->disp_w);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2339 pointer_y = (int) (dy * (double) sh_video->disp_h);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2340 mp_dvdnav_update_mouse_pos(mpctx->stream,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2341 pointer_x, pointer_y, &button);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2342 if (button > 0)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2343 set_osd_msg(OSD_MSG_TEXT, 1, osd_duration,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2344 "Selected button number %d", button);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2345 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2346 #endif
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2347 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2348 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2349
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2350 #ifdef USE_DVDNAV
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2351 case MP_CMD_DVDNAV:{
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2352 int button = -1;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2353 if (mpctx->stream->type != STREAMTYPE_DVDNAV)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2354 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2355
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2356 if (mp_dvdnav_handle_input
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2357 (mpctx->stream, cmd->args[0].v.i, &button)) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2358 uninit_player(INITED_ALL - (INITED_STREAM | INITED_INPUT |
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2359 (fixed_vo ? INITED_VO : 0)));
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2360 brk_cmd = 2;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2361 } else if (button > 0)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2362 set_osd_msg(OSD_MSG_TEXT, 1, osd_duration,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2363 "Selected button number %d", button);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2364 }
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2365 break;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2366 #endif
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2367
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2368 default:
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2369 #ifdef HAVE_NEW_GUI
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2370 if ((use_gui) && (cmd->id > MP_CMD_GUI_EVENTS))
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2371 guiGetEvent(guiIEvent, (char *) cmd->id);
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2372 else
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2373 #endif
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2374 mp_msg(MSGT_CPLAYER, MSGL_V,
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2375 "Received unknown cmd %s\n", cmd->name);
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
2376 }
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2377
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2378 switch (cmd->pausing) {
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2379 case 1: // "pausing"
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2380 mpctx->osd_function = OSD_PAUSE;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
2381 break;
22479
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2382 case 3: // "pausing_toggle"
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2383 mpctx->was_paused = !mpctx->was_paused;
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2384 // fall through
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2385 case 2: // "pausing_keep"
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2386 if (mpctx->was_paused)
a99ddf2ece25 Change to match current command.c (same functionality).
uau
parents: 22478
diff changeset
2387 mpctx->osd_function = OSD_PAUSE;
22478
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
2388 }
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
2389 return brk_cmd;
3501ae650b23 Add alternative way to create command.c to svn history,
uau
parents:
diff changeset
2390 }