Mercurial > mplayer.hg
annotate command.c @ 27985:1c77b86d355d
Remove a ColorFill that is not necessary since the surface it is used
on has exactly the same size as the video image and the video will
be copied into it before it is used the first time.
author | reimar |
---|---|
date | Mon, 24 Nov 2008 09:46:23 +0000 |
parents | 26c27a80b8af |
children | 92e770f6e890 |
rev | line source |
---|---|
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1 #include <stdlib.h> |
22478 | 2 #include <inttypes.h> |
3 #include <unistd.h> | |
22483 | 4 #include <string.h> |
22478 | 5 |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
6 #include "config.h" |
26263 | 7 #include "command.h" |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
8 #include "input/input.h" |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
9 #include "stream/stream.h" |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
10 #include "libmpdemux/demuxer.h" |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
11 #include "libmpdemux/stheader.h" |
23394
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
12 #include "codec-cfg.h" |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
13 #include "mplayer.h" |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
14 #include "libvo/sub.h" |
22478 | 15 #include "m_option.h" |
16 #include "m_property.h" | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
17 #include "help_mp.h" |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
18 #include "metadata.h" |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
19 #include "libmpcodecs/vf.h" |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
20 #include "libmpcodecs/vd.h" |
22478 | 21 #include "libvo/video_out.h" |
23725 | 22 #include "libvo/font_load.h" |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
23 #include "playtree.h" |
22478 | 24 #include "libao2/audio_out.h" |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
25 #include "mpcommon.h" |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
26 #include "mixer.h" |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
27 #include "libmpcodecs/dec_video.h" |
22478 | 28 #include "vobsub.h" |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
29 #include "spudec.h" |
24242
76f5d8892c04
Clean up the way get_path is handled: Compile get_path.c to an object to link
diego
parents:
24163
diff
changeset
|
30 #include "get_path.h" |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
27069
diff
changeset
|
31 #ifdef CONFIG_TV |
22478 | 32 #include "stream/tv.h" |
33 #endif | |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
27069
diff
changeset
|
34 #ifdef CONFIG_RADIO |
22478 | 35 #include "stream/stream_radio.h" |
36 #endif | |
27370
14c5017f40d2
Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents:
27345
diff
changeset
|
37 #ifdef CONFIG_PVR |
23244
e5e8ac0bd7fc
support for PVR channel navigation (patch by Sven Gothel <sgothel at jausoft dot com>)
ben
parents:
23077
diff
changeset
|
38 #include "stream/pvr.h" |
e5e8ac0bd7fc
support for PVR channel navigation (patch by Sven Gothel <sgothel at jausoft dot com>)
ben
parents:
23077
diff
changeset
|
39 #endif |
27370
14c5017f40d2
Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents:
27345
diff
changeset
|
40 #ifdef CONFIG_DVBIN |
22478 | 41 #include "stream/dvbin.h" |
42 #endif | |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
27069
diff
changeset
|
43 #ifdef CONFIG_DVDREAD |
22478 | 44 #include "stream/stream_dvd.h" |
45 #endif | |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
27069
diff
changeset
|
46 #ifdef CONFIG_DVDNAV |
22478 | 47 #include "stream/stream_dvdnav.h" |
48 #endif | |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
27069
diff
changeset
|
49 #ifdef CONFIG_ASS |
22478 | 50 #include "libass/ass.h" |
51 #include "libass/ass_mp.h" | |
52 #endif | |
27345
b597fd2924b4
Rename preprocessor directive HAVE_MENU --> CONFIG_MENU.
diego
parents:
27343
diff
changeset
|
53 #ifdef CONFIG_MENU |
25461 | 54 #include "m_struct.h" |
55 #include "libmenu/menu.h" | |
56 #endif | |
27343 | 57 #ifdef CONFIG_GUI |
23077 | 58 #include "gui/interface.h" |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
59 #endif |
22478 | 60 |
61 #include "mp_core.h" | |
24162 | 62 #include "mp_fifo.h" |
26095 | 63 #include "libavutil/avstring.h" |
22478 | 64 |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
65 #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
|
66 |
25461 | 67 extern int use_menu; |
68 | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
69 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
|
70 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
71 //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
|
72 if (vo_fs) { //we are in full-screen mode |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
73 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
|
74 ix -= (vo_screenwidth - vo_dwidth) / 2; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
75 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
|
76 iy -= (vo_screenheight - vo_dheight) / 2; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
77 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
78 if (ix < 0 || ix > vo_dwidth) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
79 *dx = *dy = -1.0; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
80 return; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
81 } //we are on one of the borders |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
82 if (iy < 0 || iy > vo_dheight) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
83 *dx = *dy = -1.0; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
84 return; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
85 } //we are on one of the borders |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
86 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
87 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
88 *dx = (double) ix / (double) vo_dwidth; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
89 *dy = (double) iy / (double) vo_dheight; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
90 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
91 mp_msg(MSGT_CPLAYER, MSGL_V, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
92 "\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
|
93 *dx, *dy, vo_screenwidth, vo_screenheight, vo_dwidth, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
94 vo_dheight, vo_fs); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
95 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
96 |
25129
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
97 static int sub_source_by_pos(MPContext * mpctx, int pos) |
22478 | 98 { |
99 int source = -1; | |
100 int top = -1; | |
101 int i; | |
102 for (i = 0; i < SUB_SOURCES; i++) { | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
103 int j = mpctx->global_sub_indices[i]; |
25129
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
104 if ((j >= 0) && (j > top) && (pos >= j)) { |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
105 source = i; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
106 top = j; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
107 } |
22478 | 108 } |
109 return source; | |
110 } | |
111 | |
25129
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
112 static int sub_source(MPContext * mpctx) |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
113 { |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
114 return sub_source_by_pos(mpctx, mpctx->global_sub_pos); |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
115 } |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
116 |
22478 | 117 /** |
118 * \brief Log the currently displayed subtitle to a file | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
119 * |
22478 | 120 * Logs the current or last displayed subtitle together with filename |
121 * and time information to ~/.mplayer/subtitle_log | |
122 * | |
123 * Intended purpose is to allow convenient marking of bogus subtitles | |
124 * which need to be fixed while watching the movie. | |
125 */ | |
126 | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
127 static void log_sub(void) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
128 { |
22478 | 129 char *fname; |
130 FILE *f; | |
131 int i; | |
132 | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
133 if (subdata == NULL || vo_sub_last == NULL) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
134 return; |
22478 | 135 fname = get_path("subtitle_log"); |
136 f = fopen(fname, "a"); | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
137 if (!f) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
138 return; |
22478 | 139 fprintf(f, "----------------------------------------------------------\n"); |
140 if (subdata->sub_uses_time) { | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
141 fprintf(f, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
142 "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
|
143 filename, vo_sub_last->start / 360000, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
144 (vo_sub_last->start / 6000) % 60, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
145 (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
|
146 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
|
147 (vo_sub_last->end / 100) % 60, vo_sub_last->end % 100); |
22478 | 148 } else { |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
149 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
|
150 vo_sub_last->end); |
22478 | 151 } |
152 for (i = 0; i < vo_sub_last->lines; i++) { | |
153 fprintf(f, "%s\n", vo_sub_last->text[i]); | |
154 } | |
155 fclose(f); | |
156 } | |
157 | |
158 | |
159 /// \defgroup Properties | |
160 ///@{ | |
161 | |
162 /// \defgroup GeneralProperties General properties | |
163 /// \ingroup Properties | |
164 ///@{ | |
165 | |
166 /// OSD level (RW) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
167 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
|
168 MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
169 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
170 return m_property_choice(prop, action, arg, &osd_level); |
22478 | 171 } |
172 | |
23727 | 173 /// Loop (RW) |
174 static int mp_property_loop(m_option_t * prop, int action, void *arg, | |
175 MPContext * mpctx) | |
176 { | |
177 switch (action) { | |
178 case M_PROPERTY_PRINT: | |
179 if (!arg) return M_PROPERTY_ERROR; | |
180 if (mpctx->loop_times < 0) | |
181 *(char**)arg = strdup("off"); | |
182 else if (mpctx->loop_times == 0) | |
183 *(char**)arg = strdup("inf"); | |
184 else | |
185 break; | |
186 return M_PROPERTY_OK; | |
187 } | |
188 return m_property_int_range(prop, action, arg, &mpctx->loop_times); | |
189 } | |
190 | |
22478 | 191 /// Playback speed (RW) |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
192 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
|
193 void *arg, MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
194 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
195 switch (action) { |
22478 | 196 case M_PROPERTY_SET: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
197 if (!arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
198 return M_PROPERTY_ERROR; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
199 M_PROPERTY_CLAMP(prop, *(float *) arg); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
200 playback_speed = *(float *) arg; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
201 build_afilter_chain(mpctx->sh_audio, &ao_data); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
202 return M_PROPERTY_OK; |
22478 | 203 case M_PROPERTY_STEP_UP: |
204 case M_PROPERTY_STEP_DOWN: | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
205 playback_speed += (arg ? *(float *) arg : 0.1) * |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
206 (action == M_PROPERTY_STEP_DOWN ? -1 : 1); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
207 M_PROPERTY_CLAMP(prop, playback_speed); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
208 build_afilter_chain(mpctx->sh_audio, &ao_data); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
209 return M_PROPERTY_OK; |
22478 | 210 } |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
211 return m_property_float_range(prop, action, arg, &playback_speed); |
22478 | 212 } |
213 | |
214 /// filename with path (RO) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
215 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
|
216 MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
217 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
218 return m_property_string_ro(prop, action, arg, filename); |
22478 | 219 } |
220 | |
221 /// filename without path (RO) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
222 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
|
223 MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
224 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
225 char *f; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
226 if (!filename) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
227 return M_PROPERTY_UNAVAILABLE; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
228 if (((f = strrchr(filename, '/')) || (f = strrchr(filename, '\\'))) && f[1]) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
229 f++; |
22478 | 230 else |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
231 f = filename; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
232 return m_property_string_ro(prop, action, arg, f); |
22478 | 233 } |
234 | |
235 /// Demuxer name (RO) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
236 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
|
237 MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
238 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
239 if (!mpctx->demuxer) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
240 return M_PROPERTY_UNAVAILABLE; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
241 return m_property_string_ro(prop, action, arg, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
242 (char *) mpctx->demuxer->desc->name); |
22478 | 243 } |
244 | |
245 /// Position in the stream (RW) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
246 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
|
247 MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
248 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
249 if (!mpctx->demuxer || !mpctx->demuxer->stream) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
250 return M_PROPERTY_UNAVAILABLE; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
251 if (!arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
252 return M_PROPERTY_ERROR; |
22478 | 253 switch (action) { |
254 case M_PROPERTY_GET: | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
255 *(off_t *) arg = stream_tell(mpctx->demuxer->stream); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
256 return M_PROPERTY_OK; |
22478 | 257 case M_PROPERTY_SET: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
258 M_PROPERTY_CLAMP(prop, *(off_t *) arg); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
259 stream_seek(mpctx->demuxer->stream, *(off_t *) arg); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
260 return M_PROPERTY_OK; |
22478 | 261 } |
262 return M_PROPERTY_NOT_IMPLEMENTED; | |
263 } | |
264 | |
265 /// Stream start offset (RO) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
266 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
|
267 void *arg, MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
268 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
269 if (!mpctx->demuxer || !mpctx->demuxer->stream) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
270 return M_PROPERTY_UNAVAILABLE; |
22478 | 271 switch (action) { |
272 case M_PROPERTY_GET: | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
273 *(off_t *) arg = mpctx->demuxer->stream->start_pos; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
274 return M_PROPERTY_OK; |
22478 | 275 } |
276 return M_PROPERTY_NOT_IMPLEMENTED; | |
277 } | |
278 | |
279 /// Stream end offset (RO) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
280 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
|
281 MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
282 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
283 if (!mpctx->demuxer || !mpctx->demuxer->stream) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
284 return M_PROPERTY_UNAVAILABLE; |
22478 | 285 switch (action) { |
286 case M_PROPERTY_GET: | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
287 *(off_t *) arg = mpctx->demuxer->stream->end_pos; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
288 return M_PROPERTY_OK; |
22478 | 289 } |
290 return M_PROPERTY_NOT_IMPLEMENTED; | |
291 } | |
292 | |
293 /// Stream length (RO) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
294 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
|
295 void *arg, MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
296 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
297 if (!mpctx->demuxer || !mpctx->demuxer->stream) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
298 return M_PROPERTY_UNAVAILABLE; |
22478 | 299 switch (action) { |
300 case M_PROPERTY_GET: | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
301 *(off_t *) arg = |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
302 mpctx->demuxer->stream->end_pos - mpctx->demuxer->stream->start_pos; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
303 return M_PROPERTY_OK; |
22478 | 304 } |
305 return M_PROPERTY_NOT_IMPLEMENTED; | |
306 } | |
307 | |
308 /// Media length in seconds (RO) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
309 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
|
310 MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
311 { |
22478 | 312 double len; |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
313 |
22478 | 314 if (!mpctx->demuxer || |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
315 !(int) (len = demuxer_get_time_length(mpctx->demuxer))) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
316 return M_PROPERTY_UNAVAILABLE; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
317 |
23416
ae4237717601
Move the time printing code out of the length property.
albeu
parents:
23412
diff
changeset
|
318 return m_property_time_ro(prop, action, arg, len); |
22478 | 319 } |
320 | |
23418 | 321 /// Current position in percent (RW) |
322 static int mp_property_percent_pos(m_option_t * prop, int action, | |
323 void *arg, MPContext * mpctx) { | |
324 int pos; | |
325 | |
326 if (!mpctx->demuxer) | |
327 return M_PROPERTY_UNAVAILABLE; | |
328 | |
329 switch(action) { | |
330 case M_PROPERTY_SET: | |
331 if(!arg) return M_PROPERTY_ERROR; | |
332 M_PROPERTY_CLAMP(prop, *(int*)arg); | |
333 pos = *(int*)arg; | |
334 break; | |
335 case M_PROPERTY_STEP_UP: | |
336 case M_PROPERTY_STEP_DOWN: | |
337 pos = demuxer_get_percent_pos(mpctx->demuxer); | |
338 pos += (arg ? *(int*)arg : 10) * | |
339 (action == M_PROPERTY_STEP_UP ? 1 : -1); | |
340 M_PROPERTY_CLAMP(prop, pos); | |
341 break; | |
342 default: | |
343 return m_property_int_ro(prop, action, arg, | |
344 demuxer_get_percent_pos(mpctx->demuxer)); | |
345 } | |
346 | |
25884
f6697d25b040
More places that should use SEEK_ABSOLUTE / SEEK_FACTOR
reimar
parents:
25878
diff
changeset
|
347 abs_seek_pos = SEEK_ABSOLUTE | SEEK_FACTOR; |
23418 | 348 rel_seek_secs = pos / 100.0; |
349 return M_PROPERTY_OK; | |
350 } | |
351 | |
352 /// Current position in seconds (RW) | |
353 static int mp_property_time_pos(m_option_t * prop, int action, | |
354 void *arg, MPContext * mpctx) { | |
355 if (!(mpctx->sh_video || (mpctx->sh_audio && mpctx->audio_out))) | |
356 return M_PROPERTY_UNAVAILABLE; | |
357 | |
358 switch(action) { | |
359 case M_PROPERTY_SET: | |
360 if(!arg) return M_PROPERTY_ERROR; | |
361 M_PROPERTY_CLAMP(prop, *(double*)arg); | |
25884
f6697d25b040
More places that should use SEEK_ABSOLUTE / SEEK_FACTOR
reimar
parents:
25878
diff
changeset
|
362 abs_seek_pos = SEEK_ABSOLUTE; |
23418 | 363 rel_seek_secs = *(double*)arg; |
364 return M_PROPERTY_OK; | |
365 case M_PROPERTY_STEP_UP: | |
366 case M_PROPERTY_STEP_DOWN: | |
367 rel_seek_secs += (arg ? *(double*)arg : 10.0) * | |
368 (action == M_PROPERTY_STEP_UP ? 1.0 : -1.0); | |
369 return M_PROPERTY_OK; | |
370 } | |
371 return m_property_time_ro(prop, action, arg, | |
372 mpctx->sh_video ? mpctx->sh_video->pts : | |
373 playing_audio_pts(mpctx->sh_audio, | |
374 mpctx->d_audio, | |
375 mpctx->audio_out)); | |
376 } | |
377 | |
25363 | 378 /// Current chapter (RW) |
379 static int mp_property_chapter(m_option_t *prop, int action, void *arg, | |
380 MPContext *mpctx) | |
381 { | |
27382
aff29422c652
Fixes unsafe 'chapter' command with get_property() call.
ben
parents:
27381
diff
changeset
|
382 int chapter = -1; |
25363 | 383 float next_pts = 0; |
384 int chapter_num; | |
385 int step_all; | |
386 char *chapter_name = NULL; | |
387 | |
27382
aff29422c652
Fixes unsafe 'chapter' command with get_property() call.
ben
parents:
27381
diff
changeset
|
388 if (mpctx->demuxer) |
27383 | 389 chapter = demuxer_get_current_chapter(mpctx->demuxer); |
25462
3e033aabc9d2
Combine common code for check whether chapter is available.
ulion
parents:
25461
diff
changeset
|
390 if (chapter < 0) |
3e033aabc9d2
Combine common code for check whether chapter is available.
ulion
parents:
25461
diff
changeset
|
391 return M_PROPERTY_UNAVAILABLE; |
3e033aabc9d2
Combine common code for check whether chapter is available.
ulion
parents:
25461
diff
changeset
|
392 |
25363 | 393 switch (action) { |
394 case M_PROPERTY_GET: | |
395 if (!arg) | |
396 return M_PROPERTY_ERROR; | |
25402
f8f596bad3bd
Modified for using chapter property for $(NAME:TEXT) or ?(NAME:TEXT).
ulion
parents:
25377
diff
changeset
|
397 *(int *) arg = chapter; |
25363 | 398 return M_PROPERTY_OK; |
399 case M_PROPERTY_PRINT: { | |
400 if (!arg) | |
401 return M_PROPERTY_ERROR; | |
402 chapter_name = demuxer_chapter_display_name(mpctx->demuxer, chapter); | |
403 if (!chapter_name) | |
404 return M_PROPERTY_UNAVAILABLE; | |
405 *(char **) arg = chapter_name; | |
406 return M_PROPERTY_OK; | |
407 } | |
408 case M_PROPERTY_SET: | |
409 if (!arg) | |
410 return M_PROPERTY_ERROR; | |
411 M_PROPERTY_CLAMP(prop, *(int*)arg); | |
412 step_all = *(int *)arg - (chapter + 1); | |
413 chapter += step_all; | |
414 break; | |
415 case M_PROPERTY_STEP_UP: | |
416 case M_PROPERTY_STEP_DOWN: { | |
417 step_all = (arg && *(int*)arg != 0 ? *(int*)arg : 1) | |
418 * (action == M_PROPERTY_STEP_UP ? 1 : -1); | |
419 chapter += step_all; | |
420 if (chapter < 0) | |
421 chapter = 0; | |
422 break; | |
423 } | |
424 default: | |
425 return M_PROPERTY_NOT_IMPLEMENTED; | |
426 } | |
427 rel_seek_secs = 0; | |
428 abs_seek_pos = 0; | |
429 chapter = demuxer_seek_chapter(mpctx->demuxer, chapter, 1, | |
430 &next_pts, &chapter_num, &chapter_name); | |
431 if (chapter >= 0) { | |
432 if (next_pts > -1.0) { | |
25884
f6697d25b040
More places that should use SEEK_ABSOLUTE / SEEK_FACTOR
reimar
parents:
25878
diff
changeset
|
433 abs_seek_pos = SEEK_ABSOLUTE; |
25363 | 434 rel_seek_secs = next_pts; |
435 } | |
436 if (chapter_name) | |
437 set_osd_msg(OSD_MSG_TEXT, 1, osd_duration, | |
438 MSGTR_OSDChapter, chapter + 1, chapter_name); | |
439 } | |
440 else if (step_all > 0) | |
441 rel_seek_secs = 1000000000.; | |
442 else | |
443 set_osd_msg(OSD_MSG_TEXT, 1, osd_duration, | |
444 MSGTR_OSDChapter, 0, MSGTR_Unknown); | |
445 if (chapter_name) | |
446 free(chapter_name); | |
447 return M_PROPERTY_OK; | |
448 } | |
449 | |
27635
22bdd7ba8892
slave command to get the number of chapters; patch by Kevin DeKorte - kdekorte gmail com
nicodvb
parents:
27457
diff
changeset
|
450 /// Number of chapters in file |
22bdd7ba8892
slave command to get the number of chapters; patch by Kevin DeKorte - kdekorte gmail com
nicodvb
parents:
27457
diff
changeset
|
451 static int mp_property_chapters(m_option_t *prop, int action, void *arg, |
22bdd7ba8892
slave command to get the number of chapters; patch by Kevin DeKorte - kdekorte gmail com
nicodvb
parents:
27457
diff
changeset
|
452 MPContext *mpctx) |
22bdd7ba8892
slave command to get the number of chapters; patch by Kevin DeKorte - kdekorte gmail com
nicodvb
parents:
27457
diff
changeset
|
453 { |
22bdd7ba8892
slave command to get the number of chapters; patch by Kevin DeKorte - kdekorte gmail com
nicodvb
parents:
27457
diff
changeset
|
454 if (!mpctx->demuxer) |
22bdd7ba8892
slave command to get the number of chapters; patch by Kevin DeKorte - kdekorte gmail com
nicodvb
parents:
27457
diff
changeset
|
455 return M_PROPERTY_UNAVAILABLE; |
22bdd7ba8892
slave command to get the number of chapters; patch by Kevin DeKorte - kdekorte gmail com
nicodvb
parents:
27457
diff
changeset
|
456 if (mpctx->demuxer->num_chapters == 0) |
22bdd7ba8892
slave command to get the number of chapters; patch by Kevin DeKorte - kdekorte gmail com
nicodvb
parents:
27457
diff
changeset
|
457 stream_control(mpctx->demuxer->stream, STREAM_CTRL_GET_NUM_CHAPTERS, &mpctx->demuxer->num_chapters); |
22bdd7ba8892
slave command to get the number of chapters; patch by Kevin DeKorte - kdekorte gmail com
nicodvb
parents:
27457
diff
changeset
|
458 return m_property_int_ro(prop, action, arg, mpctx->demuxer->num_chapters); |
22bdd7ba8892
slave command to get the number of chapters; patch by Kevin DeKorte - kdekorte gmail com
nicodvb
parents:
27457
diff
changeset
|
459 } |
22bdd7ba8892
slave command to get the number of chapters; patch by Kevin DeKorte - kdekorte gmail com
nicodvb
parents:
27457
diff
changeset
|
460 |
25577
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
461 /// Current dvd angle (RW) |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
462 static int mp_property_angle(m_option_t *prop, int action, void *arg, |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
463 MPContext *mpctx) |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
464 { |
27380
843db879a6b2
Fixes unsafe 'angle' command with get_property() call.
ben
parents:
27379
diff
changeset
|
465 int angle = -1; |
25577
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
466 int angles; |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
467 char *angle_name = NULL; |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
468 |
27380
843db879a6b2
Fixes unsafe 'angle' command with get_property() call.
ben
parents:
27379
diff
changeset
|
469 if (mpctx->demuxer) |
27381 | 470 angle = demuxer_get_current_angle(mpctx->demuxer); |
25577
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
471 if (angle < 0) |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
472 return M_PROPERTY_UNAVAILABLE; |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
473 angles = demuxer_angles_count(mpctx->demuxer); |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
474 if (angles <= 1) |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
475 return M_PROPERTY_UNAVAILABLE; |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
476 |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
477 switch (action) { |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
478 case M_PROPERTY_GET: |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
479 if (!arg) |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
480 return M_PROPERTY_ERROR; |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
481 *(int *) arg = angle; |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
482 return M_PROPERTY_OK; |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
483 case M_PROPERTY_PRINT: { |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
484 if (!arg) |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
485 return M_PROPERTY_ERROR; |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
486 angle_name = calloc(1, 64); |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
487 if (!angle_name) |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
488 return M_PROPERTY_UNAVAILABLE; |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
489 snprintf(angle_name, 64, "%d/%d", angle, angles); |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
490 *(char **) arg = angle_name; |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
491 return M_PROPERTY_OK; |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
492 } |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
493 case M_PROPERTY_SET: |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
494 if (!arg) |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
495 return M_PROPERTY_ERROR; |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
496 angle = *(int *)arg; |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
497 M_PROPERTY_CLAMP(prop, angle); |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
498 break; |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
499 case M_PROPERTY_STEP_UP: |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
500 case M_PROPERTY_STEP_DOWN: { |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
501 int step = 0; |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
502 if(arg) |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
503 step = *(int*)arg; |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
504 if(!step) |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
505 step = 1; |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
506 step *= (action == M_PROPERTY_STEP_UP ? 1 : -1); |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
507 angle += step; |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
508 if (angle < 1) //cycle |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
509 angle = angles; |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
510 break; |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
511 } |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
512 default: |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
513 return M_PROPERTY_NOT_IMPLEMENTED; |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
514 } |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
515 angle = demuxer_set_angle(mpctx->demuxer, angle); |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
516 set_osd_msg(OSD_MSG_TEXT, 1, osd_duration, |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
517 MSGTR_OSDAngle, angle, angles); |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
518 if (angle_name) |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
519 free(angle_name); |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
520 return M_PROPERTY_OK; |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
521 } |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
522 |
23394
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
523 /// Demuxer meta data |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
524 static int mp_property_metadata(m_option_t * prop, int action, void *arg, |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
525 MPContext * mpctx) { |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
526 m_property_action_t* ka; |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
527 char* meta; |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
528 static m_option_t key_type = |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
529 { "metadata", NULL, CONF_TYPE_STRING, 0, 0, 0, NULL }; |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
530 if (!mpctx->demuxer) |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
531 return M_PROPERTY_UNAVAILABLE; |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
532 |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
533 switch(action) { |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
534 case M_PROPERTY_GET: |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
535 if(!arg) return M_PROPERTY_ERROR; |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
536 *(char***)arg = mpctx->demuxer->info; |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
537 return M_PROPERTY_OK; |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
538 case M_PROPERTY_KEY_ACTION: |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
539 if(!arg) return M_PROPERTY_ERROR; |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
540 ka = arg; |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
541 if(!(meta = demux_info_get(mpctx->demuxer,ka->key))) |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
542 return M_PROPERTY_UNKNOWN; |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
543 switch(ka->action) { |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
544 case M_PROPERTY_GET: |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
545 if(!ka->arg) return M_PROPERTY_ERROR; |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
546 *(char**)ka->arg = meta; |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
547 return M_PROPERTY_OK; |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
548 case M_PROPERTY_GET_TYPE: |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
549 if(!ka->arg) return M_PROPERTY_ERROR; |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
550 *(m_option_t**)ka->arg = &key_type; |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
551 return M_PROPERTY_OK; |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
552 } |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
553 } |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
554 return M_PROPERTY_NOT_IMPLEMENTED; |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
555 } |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
556 |
27648
427fec163870
Add a "pause" property to allow checking if MPlayer is paused.
reimar
parents:
27635
diff
changeset
|
557 static int mp_property_pause(m_option_t * prop, int action, void *arg, |
427fec163870
Add a "pause" property to allow checking if MPlayer is paused.
reimar
parents:
27635
diff
changeset
|
558 MPContext * mpctx) |
427fec163870
Add a "pause" property to allow checking if MPlayer is paused.
reimar
parents:
27635
diff
changeset
|
559 { |
427fec163870
Add a "pause" property to allow checking if MPlayer is paused.
reimar
parents:
27635
diff
changeset
|
560 return m_property_flag_ro(prop, action, arg, mpctx->osd_function == OSD_PAUSE); |
427fec163870
Add a "pause" property to allow checking if MPlayer is paused.
reimar
parents:
27635
diff
changeset
|
561 } |
427fec163870
Add a "pause" property to allow checking if MPlayer is paused.
reimar
parents:
27635
diff
changeset
|
562 |
23394
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
563 |
22478 | 564 ///@} |
565 | |
566 /// \defgroup AudioProperties Audio properties | |
567 /// \ingroup Properties | |
568 ///@{ | |
569 | |
570 /// Volume (RW) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
571 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
|
572 MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
573 { |
22478 | 574 |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
575 if (!mpctx->sh_audio) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
576 return M_PROPERTY_UNAVAILABLE; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
577 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
578 switch (action) { |
22478 | 579 case M_PROPERTY_GET: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
580 if (!arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
581 return M_PROPERTY_ERROR; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
582 mixer_getbothvolume(&mpctx->mixer, arg); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
583 return M_PROPERTY_OK; |
22478 | 584 case M_PROPERTY_PRINT:{ |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
585 float vol; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
586 if (!arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
587 return M_PROPERTY_ERROR; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
588 mixer_getbothvolume(&mpctx->mixer, &vol); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
589 return m_property_float_range(prop, action, arg, &vol); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
590 } |
22478 | 591 case M_PROPERTY_STEP_UP: |
592 case M_PROPERTY_STEP_DOWN: | |
593 case M_PROPERTY_SET: | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
594 break; |
22478 | 595 default: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
596 return M_PROPERTY_NOT_IMPLEMENTED; |
22478 | 597 } |
598 | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
599 if (mpctx->edl_muted) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
600 return M_PROPERTY_DISABLED; |
22478 | 601 mpctx->user_muted = 0; |
602 | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
603 switch (action) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
604 case M_PROPERTY_SET: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
605 if (!arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
606 return M_PROPERTY_ERROR; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
607 M_PROPERTY_CLAMP(prop, *(float *) arg); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
608 mixer_setvolume(&mpctx->mixer, *(float *) arg, *(float *) arg); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
609 return M_PROPERTY_OK; |
22478 | 610 case M_PROPERTY_STEP_UP: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
611 if (arg && *(float *) arg <= 0) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
612 mixer_decvolume(&mpctx->mixer); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
613 else |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
614 mixer_incvolume(&mpctx->mixer); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
615 return M_PROPERTY_OK; |
22478 | 616 case M_PROPERTY_STEP_DOWN: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
617 if (arg && *(float *) arg <= 0) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
618 mixer_incvolume(&mpctx->mixer); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
619 else |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
620 mixer_decvolume(&mpctx->mixer); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
621 return M_PROPERTY_OK; |
22478 | 622 } |
623 return M_PROPERTY_NOT_IMPLEMENTED; | |
624 } | |
625 | |
626 /// Mute (RW) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
627 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
|
628 MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
629 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
630 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
631 if (!mpctx->sh_audio) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
632 return M_PROPERTY_UNAVAILABLE; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
633 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
634 switch (action) { |
22478 | 635 case M_PROPERTY_SET: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
636 if (mpctx->edl_muted) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
637 return M_PROPERTY_DISABLED; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
638 if (!arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
639 return M_PROPERTY_ERROR; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
640 if ((!!*(int *) arg) != mpctx->mixer.muted) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
641 mixer_mute(&mpctx->mixer); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
642 mpctx->user_muted = mpctx->mixer.muted; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
643 return M_PROPERTY_OK; |
22478 | 644 case M_PROPERTY_STEP_UP: |
645 case M_PROPERTY_STEP_DOWN: | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
646 if (mpctx->edl_muted) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
647 return M_PROPERTY_DISABLED; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
648 mixer_mute(&mpctx->mixer); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
649 mpctx->user_muted = mpctx->mixer.muted; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
650 return M_PROPERTY_OK; |
22478 | 651 case M_PROPERTY_PRINT: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
652 if (!arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
653 return M_PROPERTY_ERROR; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
654 if (mpctx->edl_muted) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
655 *(char **) arg = strdup(MSGTR_EnabledEdl); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
656 return M_PROPERTY_OK; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
657 } |
22478 | 658 default: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
659 return m_property_flag(prop, action, arg, &mpctx->mixer.muted); |
22478 | 660 |
661 } | |
662 } | |
663 | |
664 /// Audio delay (RW) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
665 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
|
666 void *arg, MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
667 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
668 if (!(mpctx->sh_audio && mpctx->sh_video)) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
669 return M_PROPERTY_UNAVAILABLE; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
670 switch (action) { |
22478 | 671 case M_PROPERTY_SET: |
672 case M_PROPERTY_STEP_UP: | |
25567
ca62d466a9fc
Fix property audio_delay bug when step up/down with arg value NULL.
ulion
parents:
25495
diff
changeset
|
673 case M_PROPERTY_STEP_DOWN: { |
ca62d466a9fc
Fix property audio_delay bug when step up/down with arg value NULL.
ulion
parents:
25495
diff
changeset
|
674 int ret; |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
675 float delay = audio_delay; |
25567
ca62d466a9fc
Fix property audio_delay bug when step up/down with arg value NULL.
ulion
parents:
25495
diff
changeset
|
676 ret = m_property_delay(prop, action, arg, &audio_delay); |
ca62d466a9fc
Fix property audio_delay bug when step up/down with arg value NULL.
ulion
parents:
25495
diff
changeset
|
677 if (ret != M_PROPERTY_OK) |
ca62d466a9fc
Fix property audio_delay bug when step up/down with arg value NULL.
ulion
parents:
25495
diff
changeset
|
678 return ret; |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
679 if (mpctx->sh_audio) |
22488 | 680 mpctx->delay -= audio_delay - delay; |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
681 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
682 return M_PROPERTY_OK; |
22478 | 683 default: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
684 return m_property_delay(prop, action, arg, &audio_delay); |
22478 | 685 } |
686 } | |
687 | |
688 /// Audio codec tag (RO) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
689 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
|
690 void *arg, MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
691 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
692 if (!mpctx->sh_audio) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
693 return M_PROPERTY_UNAVAILABLE; |
22478 | 694 return m_property_int_ro(prop, action, arg, mpctx->sh_audio->format); |
695 } | |
696 | |
23394
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
697 /// Audio codec name (RO) |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
698 static int mp_property_audio_codec(m_option_t * prop, int action, |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
699 void *arg, MPContext * mpctx) |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
700 { |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
701 if (!mpctx->sh_audio || !mpctx->sh_audio->codec) |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
702 return M_PROPERTY_UNAVAILABLE; |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
703 return m_property_string_ro(prop, action, arg, mpctx->sh_audio->codec->name); |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
704 } |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
705 |
22478 | 706 /// Audio bitrate (RO) |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
707 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
|
708 void *arg, MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
709 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
710 if (!mpctx->sh_audio) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
711 return M_PROPERTY_UNAVAILABLE; |
23394
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
712 return m_property_bitrate(prop, action, arg, mpctx->sh_audio->i_bps); |
22478 | 713 } |
714 | |
715 /// Samplerate (RO) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
716 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
|
717 MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
718 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
719 if (!mpctx->sh_audio) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
720 return M_PROPERTY_UNAVAILABLE; |
23396 | 721 switch(action) { |
722 case M_PROPERTY_PRINT: | |
723 if(!arg) return M_PROPERTY_ERROR; | |
724 *(char**)arg = malloc(16); | |
725 sprintf(*(char**)arg,"%d kHz",mpctx->sh_audio->samplerate/1000); | |
726 return M_PROPERTY_OK; | |
727 } | |
22478 | 728 return m_property_int_ro(prop, action, arg, mpctx->sh_audio->samplerate); |
729 } | |
730 | |
731 /// Number of channels (RO) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
732 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
|
733 MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
734 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
735 if (!mpctx->sh_audio) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
736 return M_PROPERTY_UNAVAILABLE; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
737 switch (action) { |
22478 | 738 case M_PROPERTY_PRINT: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
739 if (!arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
740 return M_PROPERTY_ERROR; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
741 switch (mpctx->sh_audio->channels) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
742 case 1: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
743 *(char **) arg = strdup("mono"); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
744 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
745 case 2: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
746 *(char **) arg = strdup("stereo"); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
747 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
748 default: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
749 *(char **) arg = malloc(32); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
750 sprintf(*(char **) arg, "%d channels", mpctx->sh_audio->channels); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
751 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
752 return M_PROPERTY_OK; |
22478 | 753 } |
754 return m_property_int_ro(prop, action, arg, mpctx->sh_audio->channels); | |
755 } | |
756 | |
23568 | 757 /// Balance (RW) |
758 static int mp_property_balance(m_option_t * prop, int action, void *arg, | |
759 MPContext * mpctx) | |
760 { | |
761 float bal; | |
762 | |
763 if (!mpctx->sh_audio || mpctx->sh_audio->channels < 2) | |
764 return M_PROPERTY_UNAVAILABLE; | |
765 | |
766 switch (action) { | |
767 case M_PROPERTY_GET: | |
768 if (!arg) | |
769 return M_PROPERTY_ERROR; | |
770 mixer_getbalance(&mpctx->mixer, arg); | |
771 return M_PROPERTY_OK; | |
772 case M_PROPERTY_PRINT: { | |
773 char** str = arg; | |
774 if (!arg) | |
775 return M_PROPERTY_ERROR; | |
776 mixer_getbalance(&mpctx->mixer, &bal); | |
777 if (bal == 0.f) | |
778 *str = strdup("center"); | |
779 else if (bal == -1.f) | |
780 *str = strdup("left only"); | |
781 else if (bal == 1.f) | |
782 *str = strdup("right only"); | |
783 else { | |
784 unsigned right = (bal + 1.f) / 2.f * 100.f; | |
785 *str = malloc(sizeof("left xxx%, right xxx%")); | |
786 sprintf(*str, "left %d%%, right %d%%", 100 - right, right); | |
787 } | |
788 return M_PROPERTY_OK; | |
789 } | |
790 case M_PROPERTY_STEP_UP: | |
791 case M_PROPERTY_STEP_DOWN: | |
792 mixer_getbalance(&mpctx->mixer, &bal); | |
793 bal += (arg ? *(float*)arg : .1f) * | |
794 (action == M_PROPERTY_STEP_UP ? 1.f : -1.f); | |
795 M_PROPERTY_CLAMP(prop, bal); | |
796 mixer_setbalance(&mpctx->mixer, bal); | |
797 return M_PROPERTY_OK; | |
798 case M_PROPERTY_SET: | |
799 if (!arg) | |
800 return M_PROPERTY_ERROR; | |
801 M_PROPERTY_CLAMP(prop, *(float*)arg); | |
802 mixer_setbalance(&mpctx->mixer, *(float*)arg); | |
803 return M_PROPERTY_OK; | |
804 } | |
805 return M_PROPERTY_NOT_IMPLEMENTED; | |
806 } | |
807 | |
22478 | 808 /// Selected audio id (RW) |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
809 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
|
810 MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
811 { |
22478 | 812 int current_id = -1, tmp; |
813 | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
814 switch (action) { |
22478 | 815 case M_PROPERTY_GET: |
25464 | 816 if (!mpctx->sh_audio) |
817 return M_PROPERTY_UNAVAILABLE; | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
818 if (!arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
819 return M_PROPERTY_ERROR; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
820 *(int *) arg = audio_id; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
821 return M_PROPERTY_OK; |
22478 | 822 case M_PROPERTY_PRINT: |
25464 | 823 if (!mpctx->sh_audio) |
824 return M_PROPERTY_UNAVAILABLE; | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
825 if (!arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
826 return M_PROPERTY_ERROR; |
22478 | 827 |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
828 if (audio_id < 0) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
829 *(char **) arg = strdup(MSGTR_Disabled); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
830 else { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
831 char lang[40] = MSGTR_Unknown; |
26083
19fa7a56ed04
Fill sh_audio_t.lang in lavf and mkv demuxers. Use it for printing audio track
eugeni
parents:
25962
diff
changeset
|
832 sh_audio_t* sh = mpctx->sh_audio; |
19fa7a56ed04
Fill sh_audio_t.lang in lavf and mkv demuxers. Use it for printing audio track
eugeni
parents:
25962
diff
changeset
|
833 if (sh && sh->lang) |
19fa7a56ed04
Fill sh_audio_t.lang in lavf and mkv demuxers. Use it for printing audio track
eugeni
parents:
25962
diff
changeset
|
834 av_strlcpy(lang, sh->lang, 40); |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
27069
diff
changeset
|
835 #ifdef CONFIG_DVDREAD |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
836 else if (mpctx->stream->type == STREAMTYPE_DVD) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
837 int code = dvd_lang_from_aid(mpctx->stream, audio_id); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
838 if (code) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
839 lang[0] = code >> 8; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
840 lang[1] = code; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
841 lang[2] = 0; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
842 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
843 } |
22478 | 844 #endif |
845 | |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
27069
diff
changeset
|
846 #ifdef CONFIG_DVDNAV |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
847 else if (mpctx->stream->type == STREAMTYPE_DVDNAV) |
26986
4bee4b9ec054
Rename some functions as they are mplayer related and not
ben
parents:
26877
diff
changeset
|
848 mp_dvdnav_lang_from_aid(mpctx->stream, audio_id, lang); |
22478 | 849 #endif |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
850 *(char **) arg = malloc(64); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
851 snprintf(*(char **) arg, 64, "(%d) %s", audio_id, lang); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
852 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
853 return M_PROPERTY_OK; |
22478 | 854 |
855 case M_PROPERTY_STEP_UP: | |
856 case M_PROPERTY_SET: | |
27379
89c03148e9a4
Fixes unsafe 'switch_audio' command with set_property() call.
ben
parents:
27370
diff
changeset
|
857 if (!mpctx->demuxer) |
89c03148e9a4
Fixes unsafe 'switch_audio' command with set_property() call.
ben
parents:
27370
diff
changeset
|
858 return M_PROPERTY_UNAVAILABLE; |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
859 if (action == M_PROPERTY_SET && arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
860 tmp = *((int *) arg); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
861 else |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
862 tmp = -1; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
863 current_id = mpctx->demuxer->audio->id; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
864 audio_id = demuxer_switch_audio(mpctx->demuxer, tmp); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
865 if (audio_id == -2 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
866 || (audio_id > -1 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
867 && mpctx->demuxer->audio->id != current_id && current_id != -2)) |
25962 | 868 uninit_player(INITIALIZED_AO | INITIALIZED_ACODEC); |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
869 if (audio_id > -1 && mpctx->demuxer->audio->id != current_id) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
870 sh_audio_t *sh2; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
871 sh2 = mpctx->demuxer->a_streams[mpctx->demuxer->audio->id]; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
872 if (sh2) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
873 sh2->ds = mpctx->demuxer->audio; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
874 mpctx->sh_audio = sh2; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
875 reinit_audio_chain(); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
876 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
877 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
878 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
|
879 return M_PROPERTY_OK; |
22478 | 880 default: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
881 return M_PROPERTY_NOT_IMPLEMENTED; |
22478 | 882 } |
883 | |
884 } | |
885 | |
886 /// Selected video id (RW) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
887 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
|
888 MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
889 { |
22478 | 890 int current_id = -1, tmp; |
891 | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
892 switch (action) { |
22478 | 893 case M_PROPERTY_GET: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
894 if (!mpctx->sh_video) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
895 return M_PROPERTY_UNAVAILABLE; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
896 if (!arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
897 return M_PROPERTY_ERROR; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
898 *(int *) arg = video_id; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
899 return M_PROPERTY_OK; |
22478 | 900 case M_PROPERTY_PRINT: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
901 if (!mpctx->sh_video) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
902 return M_PROPERTY_UNAVAILABLE; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
903 if (!arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
904 return M_PROPERTY_ERROR; |
22478 | 905 |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
906 if (video_id < 0) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
907 *(char **) arg = strdup(MSGTR_Disabled); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
908 else { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
909 char lang[40] = MSGTR_Unknown; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
910 *(char **) arg = malloc(64); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
911 snprintf(*(char **) arg, 64, "(%d) %s", video_id, lang); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
912 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
913 return M_PROPERTY_OK; |
22478 | 914 |
915 case M_PROPERTY_STEP_UP: | |
916 case M_PROPERTY_SET: | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
917 current_id = mpctx->demuxer->video->id; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
918 if (action == M_PROPERTY_SET && arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
919 tmp = *((int *) arg); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
920 else |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
921 tmp = -1; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
922 video_id = demuxer_switch_video(mpctx->demuxer, tmp); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
923 if (video_id == -2 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
924 || (video_id > -1 && mpctx->demuxer->video->id != current_id |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
925 && current_id != -2)) |
25962 | 926 uninit_player(INITIALIZED_VCODEC | |
927 (fixed_vo && video_id != -2 ? 0 : INITIALIZED_VO)); | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
928 if (video_id > -1 && mpctx->demuxer->video->id != current_id) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
929 sh_video_t *sh2; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
930 sh2 = mpctx->demuxer->v_streams[mpctx->demuxer->video->id]; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
931 if (sh2) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
932 sh2->ds = mpctx->demuxer->video; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
933 mpctx->sh_video = sh2; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
934 reinit_video_chain(); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
935 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
936 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
937 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
|
938 return M_PROPERTY_OK; |
22478 | 939 |
940 default: | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
941 return M_PROPERTY_NOT_IMPLEMENTED; |
22478 | 942 } |
943 } | |
944 | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
945 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
|
946 MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
947 { |
22478 | 948 demux_program_t prog; |
949 | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
950 switch (action) { |
22478 | 951 case M_PROPERTY_STEP_UP: |
952 case M_PROPERTY_SET: | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
953 if (action == M_PROPERTY_SET && arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
954 prog.progid = *((int *) arg); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
955 else |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
956 prog.progid = -1; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
957 if (demux_control |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
958 (mpctx->demuxer, DEMUXER_CTRL_IDENTIFY_PROGRAM, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
959 &prog) == DEMUXER_CTRL_NOTIMPL) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
960 return M_PROPERTY_ERROR; |
22478 | 961 |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
962 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
|
963 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
|
964 return M_PROPERTY_OK; |
22478 | 965 |
966 default: | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
967 return M_PROPERTY_NOT_IMPLEMENTED; |
22478 | 968 } |
969 } | |
970 | |
971 ///@} | |
972 | |
973 /// \defgroup VideoProperties Video properties | |
974 /// \ingroup Properties | |
975 ///@{ | |
976 | |
977 /// Fullscreen state (RW) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
978 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
|
979 MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
980 { |
22478 | 981 |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
982 if (!mpctx->video_out) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
983 return M_PROPERTY_UNAVAILABLE; |
22478 | 984 |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
985 switch (action) { |
22478 | 986 case M_PROPERTY_SET: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
987 if (!arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
988 return M_PROPERTY_ERROR; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
989 M_PROPERTY_CLAMP(prop, *(int *) arg); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
990 if (vo_fs == !!*(int *) arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
991 return M_PROPERTY_OK; |
22478 | 992 case M_PROPERTY_STEP_UP: |
993 case M_PROPERTY_STEP_DOWN: | |
27343 | 994 #ifdef CONFIG_GUI |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
995 if (use_gui) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
996 guiGetEvent(guiIEvent, (char *) MP_CMD_GUI_FULLSCREEN); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
997 else |
22478 | 998 #endif |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
999 if (vo_config_count) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1000 mpctx->video_out->control(VOCTRL_FULLSCREEN, 0); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1001 return M_PROPERTY_OK; |
22478 | 1002 default: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1003 return m_property_flag(prop, action, arg, &vo_fs); |
22478 | 1004 } |
1005 } | |
1006 | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1007 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
|
1008 void *arg, MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1009 { |
22478 | 1010 int deinterlace; |
1011 vf_instance_t *vf; | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1012 if (!mpctx->sh_video || !mpctx->sh_video->vfilter) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1013 return M_PROPERTY_UNAVAILABLE; |
22478 | 1014 vf = mpctx->sh_video->vfilter; |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1015 switch (action) { |
22478 | 1016 case M_PROPERTY_GET: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1017 if (!arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1018 return M_PROPERTY_ERROR; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1019 vf->control(vf, VFCTRL_GET_DEINTERLACE, arg); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1020 return M_PROPERTY_OK; |
22478 | 1021 case M_PROPERTY_SET: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1022 if (!arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1023 return M_PROPERTY_ERROR; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1024 M_PROPERTY_CLAMP(prop, *(int *) arg); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1025 vf->control(vf, VFCTRL_SET_DEINTERLACE, arg); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1026 return M_PROPERTY_OK; |
22478 | 1027 case M_PROPERTY_STEP_UP: |
1028 case M_PROPERTY_STEP_DOWN: | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1029 vf->control(vf, VFCTRL_GET_DEINTERLACE, &deinterlace); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1030 deinterlace = !deinterlace; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1031 vf->control(vf, VFCTRL_SET_DEINTERLACE, &deinterlace); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1032 return M_PROPERTY_OK; |
22478 | 1033 } |
1034 return M_PROPERTY_NOT_IMPLEMENTED; | |
1035 } | |
1036 | |
1037 /// Panscan (RW) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1038 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
|
1039 MPContext * mpctx) |
22478 | 1040 { |
1041 | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1042 if (!mpctx->video_out |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1043 || mpctx->video_out->control(VOCTRL_GET_PANSCAN, NULL) != VO_TRUE) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1044 return M_PROPERTY_UNAVAILABLE; |
22478 | 1045 |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1046 switch (action) { |
22478 | 1047 case M_PROPERTY_SET: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1048 if (!arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1049 return M_PROPERTY_ERROR; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1050 M_PROPERTY_CLAMP(prop, *(float *) arg); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1051 vo_panscan = *(float *) arg; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1052 mpctx->video_out->control(VOCTRL_SET_PANSCAN, NULL); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1053 return M_PROPERTY_OK; |
22478 | 1054 case M_PROPERTY_STEP_UP: |
1055 case M_PROPERTY_STEP_DOWN: | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1056 vo_panscan += (arg ? *(float *) arg : 0.1) * |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1057 (action == M_PROPERTY_STEP_DOWN ? -1 : 1); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1058 if (vo_panscan > 1) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1059 vo_panscan = 1; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1060 else if (vo_panscan < 0) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1061 vo_panscan = 0; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1062 mpctx->video_out->control(VOCTRL_SET_PANSCAN, NULL); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1063 return M_PROPERTY_OK; |
22478 | 1064 default: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1065 return m_property_float_range(prop, action, arg, &vo_panscan); |
22478 | 1066 } |
1067 } | |
1068 | |
1069 /// Helper to set vo flags. | |
1070 /** \ingroup PropertyImplHelper | |
1071 */ | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1072 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
|
1073 int vo_ctrl, int *vo_var, MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1074 { |
22478 | 1075 |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1076 if (!mpctx->video_out) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1077 return M_PROPERTY_UNAVAILABLE; |
22478 | 1078 |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1079 switch (action) { |
22478 | 1080 case M_PROPERTY_SET: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1081 if (!arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1082 return M_PROPERTY_ERROR; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1083 M_PROPERTY_CLAMP(prop, *(int *) arg); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1084 if (*vo_var == !!*(int *) arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1085 return M_PROPERTY_OK; |
22478 | 1086 case M_PROPERTY_STEP_UP: |
1087 case M_PROPERTY_STEP_DOWN: | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1088 if (vo_config_count) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1089 mpctx->video_out->control(vo_ctrl, 0); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1090 return M_PROPERTY_OK; |
22478 | 1091 default: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1092 return m_property_flag(prop, action, arg, vo_var); |
22478 | 1093 } |
1094 } | |
1095 | |
1096 /// Window always on top (RW) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1097 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
|
1098 MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1099 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1100 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
|
1101 mpctx); |
22478 | 1102 } |
1103 | |
1104 /// Display in the root window (RW) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1105 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
|
1106 MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1107 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1108 return mp_property_vo_flag(prop, action, arg, VOCTRL_ROOTWIN, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1109 &vo_rootwin, mpctx); |
22478 | 1110 } |
1111 | |
1112 /// Show window borders (RW) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1113 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
|
1114 MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1115 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1116 return mp_property_vo_flag(prop, action, arg, VOCTRL_BORDER, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1117 &vo_border, mpctx); |
22478 | 1118 } |
1119 | |
1120 /// Framedropping state (RW) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1121 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
|
1122 void *arg, MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1123 { |
22478 | 1124 |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1125 if (!mpctx->sh_video) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1126 return M_PROPERTY_UNAVAILABLE; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1127 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1128 switch (action) { |
22478 | 1129 case M_PROPERTY_PRINT: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1130 if (!arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1131 return M_PROPERTY_ERROR; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1132 *(char **) arg = strdup(frame_dropping == 1 ? MSGTR_Enabled : |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1133 (frame_dropping == 2 ? MSGTR_HardFrameDrop : |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1134 MSGTR_Disabled)); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1135 return M_PROPERTY_OK; |
22478 | 1136 default: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1137 return m_property_choice(prop, action, arg, &frame_dropping); |
22478 | 1138 } |
1139 } | |
1140 | |
1141 /// 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
|
1142 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
|
1143 MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1144 { |
25465
6b9447dc7590
Check availability before check argument for getting gamma properties.
ulion
parents:
25464
diff
changeset
|
1145 int *gamma = prop->priv, r, val; |
22478 | 1146 |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1147 if (!mpctx->sh_video) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1148 return M_PROPERTY_UNAVAILABLE; |
22478 | 1149 |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1150 if (gamma[0] == 1000) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1151 gamma[0] = 0; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1152 get_video_colors(mpctx->sh_video, prop->name, gamma); |
22478 | 1153 } |
1154 | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1155 switch (action) { |
22478 | 1156 case M_PROPERTY_SET: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1157 if (!arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1158 return M_PROPERTY_ERROR; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1159 M_PROPERTY_CLAMP(prop, *(int *) arg); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1160 *gamma = *(int *) arg; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1161 r = set_video_colors(mpctx->sh_video, prop->name, *gamma); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1162 if (r <= 0) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1163 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1164 return r; |
22478 | 1165 case M_PROPERTY_GET: |
25465
6b9447dc7590
Check availability before check argument for getting gamma properties.
ulion
parents:
25464
diff
changeset
|
1166 if (get_video_colors(mpctx->sh_video, prop->name, &val) > 0) { |
6b9447dc7590
Check availability before check argument for getting gamma properties.
ulion
parents:
25464
diff
changeset
|
1167 if (!arg) |
6b9447dc7590
Check availability before check argument for getting gamma properties.
ulion
parents:
25464
diff
changeset
|
1168 return M_PROPERTY_ERROR; |
6b9447dc7590
Check availability before check argument for getting gamma properties.
ulion
parents:
25464
diff
changeset
|
1169 *(int *)arg = val; |
6b9447dc7590
Check availability before check argument for getting gamma properties.
ulion
parents:
25464
diff
changeset
|
1170 return M_PROPERTY_OK; |
6b9447dc7590
Check availability before check argument for getting gamma properties.
ulion
parents:
25464
diff
changeset
|
1171 } |
6b9447dc7590
Check availability before check argument for getting gamma properties.
ulion
parents:
25464
diff
changeset
|
1172 break; |
22478 | 1173 case M_PROPERTY_STEP_UP: |
1174 case M_PROPERTY_STEP_DOWN: | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1175 *gamma += (arg ? *(int *) arg : 1) * |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1176 (action == M_PROPERTY_STEP_DOWN ? -1 : 1); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1177 M_PROPERTY_CLAMP(prop, *gamma); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1178 r = set_video_colors(mpctx->sh_video, prop->name, *gamma); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1179 if (r <= 0) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1180 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1181 return r; |
22478 | 1182 default: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1183 return M_PROPERTY_NOT_IMPLEMENTED; |
22478 | 1184 } |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1185 |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
27069
diff
changeset
|
1186 #ifdef CONFIG_TV |
22478 | 1187 if (mpctx->demuxer->type == DEMUXER_TYPE_TV) { |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1188 int l = strlen(prop->name); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1189 char tv_prop[3 + l + 1]; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1190 sprintf(tv_prop, "tv_%s", prop->name); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1191 return mp_property_do(tv_prop, action, arg, mpctx); |
22478 | 1192 } |
1193 #endif | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1194 |
22478 | 1195 return M_PROPERTY_UNAVAILABLE; |
1196 } | |
1197 | |
1198 /// VSync (RW) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1199 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
|
1200 MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1201 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1202 return m_property_flag(prop, action, arg, &vo_vsync); |
22478 | 1203 } |
1204 | |
1205 /// Video codec tag (RO) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1206 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
|
1207 void *arg, MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1208 { |
23394
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1209 char* meta; |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1210 if (!mpctx->sh_video) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1211 return M_PROPERTY_UNAVAILABLE; |
23394
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1212 switch(action) { |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1213 case M_PROPERTY_PRINT: |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1214 if (!arg) |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1215 return M_PROPERTY_ERROR; |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1216 switch(mpctx->sh_video->format) { |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1217 case 0x10000001: |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1218 meta = strdup ("mpeg1"); break; |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1219 case 0x10000002: |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1220 meta = strdup ("mpeg2"); break; |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1221 case 0x10000004: |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1222 meta = strdup ("mpeg4"); break; |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1223 case 0x10000005: |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1224 meta = strdup ("h264"); break; |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1225 default: |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1226 if(mpctx->sh_video->format >= 0x20202020) { |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1227 meta = malloc(5); |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1228 sprintf (meta, "%.4s", (char *) &mpctx->sh_video->format); |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1229 } else { |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1230 meta = malloc(20); |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1231 sprintf (meta, "0x%08X", mpctx->sh_video->format); |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1232 } |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1233 } |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1234 *(char**)arg = meta; |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1235 return M_PROPERTY_OK; |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1236 } |
22478 | 1237 return m_property_int_ro(prop, action, arg, mpctx->sh_video->format); |
1238 } | |
1239 | |
23394
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1240 /// Video codec name (RO) |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1241 static int mp_property_video_codec(m_option_t * prop, int action, |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1242 void *arg, MPContext * mpctx) |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1243 { |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1244 if (!mpctx->sh_video || !mpctx->sh_video->codec) |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1245 return M_PROPERTY_UNAVAILABLE; |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1246 return m_property_string_ro(prop, action, arg, mpctx->sh_video->codec->name); |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1247 } |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1248 |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1249 |
22478 | 1250 /// Video bitrate (RO) |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1251 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
|
1252 void *arg, MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1253 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1254 if (!mpctx->sh_video) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1255 return M_PROPERTY_UNAVAILABLE; |
23394
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
1256 return m_property_bitrate(prop, action, arg, mpctx->sh_video->i_bps); |
22478 | 1257 } |
1258 | |
1259 /// Video display width (RO) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1260 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
|
1261 MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1262 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1263 if (!mpctx->sh_video) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1264 return M_PROPERTY_UNAVAILABLE; |
22478 | 1265 return m_property_int_ro(prop, action, arg, mpctx->sh_video->disp_w); |
1266 } | |
1267 | |
1268 /// Video display height (RO) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1269 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
|
1270 MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1271 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1272 if (!mpctx->sh_video) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1273 return M_PROPERTY_UNAVAILABLE; |
22478 | 1274 return m_property_int_ro(prop, action, arg, mpctx->sh_video->disp_h); |
1275 } | |
1276 | |
1277 /// Video fps (RO) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1278 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
|
1279 MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1280 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1281 if (!mpctx->sh_video) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1282 return M_PROPERTY_UNAVAILABLE; |
22478 | 1283 return m_property_float_ro(prop, action, arg, mpctx->sh_video->fps); |
1284 } | |
1285 | |
1286 /// Video aspect (RO) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1287 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
|
1288 MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1289 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1290 if (!mpctx->sh_video) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1291 return M_PROPERTY_UNAVAILABLE; |
22478 | 1292 return m_property_float_ro(prop, action, arg, mpctx->sh_video->aspect); |
1293 } | |
1294 | |
1295 ///@} | |
1296 | |
1297 /// \defgroup SubProprties Subtitles properties | |
1298 /// \ingroup Properties | |
1299 ///@{ | |
1300 | |
1301 /// Text subtitle position (RW) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1302 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
|
1303 MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1304 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1305 if (!mpctx->sh_video) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1306 return M_PROPERTY_UNAVAILABLE; |
22478 | 1307 |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1308 switch (action) { |
22478 | 1309 case M_PROPERTY_SET: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1310 if (!arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1311 return M_PROPERTY_ERROR; |
22478 | 1312 case M_PROPERTY_STEP_UP: |
1313 case M_PROPERTY_STEP_DOWN: | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1314 vo_osd_changed(OSDTYPE_SUBTITLE); |
22478 | 1315 default: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1316 return m_property_int_range(prop, action, arg, &sub_pos); |
22478 | 1317 } |
1318 } | |
1319 | |
1320 /// Selected subtitles (RW) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1321 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
|
1322 MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1323 { |
22478 | 1324 demux_stream_t *const d_sub = mpctx->d_sub; |
1325 const int global_sub_size = mpctx->global_sub_size; | |
1326 int source = -1, reset_spu = 0; | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1327 char *sub_name; |
22478 | 1328 |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1329 if (global_sub_size <= 0) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1330 return M_PROPERTY_UNAVAILABLE; |
22478 | 1331 |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1332 switch (action) { |
22478 | 1333 case M_PROPERTY_GET: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1334 if (!arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1335 return M_PROPERTY_ERROR; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1336 *(int *) arg = mpctx->global_sub_pos; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1337 return M_PROPERTY_OK; |
22478 | 1338 case M_PROPERTY_PRINT: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1339 if (!arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1340 return M_PROPERTY_ERROR; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1341 *(char **) arg = malloc(64); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1342 (*(char **) arg)[63] = 0; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1343 sub_name = 0; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1344 if (subdata) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1345 sub_name = subdata->filename; |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
27069
diff
changeset
|
1346 #ifdef CONFIG_ASS |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1347 if (ass_track && ass_track->name) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1348 sub_name = ass_track->name; |
22478 | 1349 #endif |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1350 if (sub_name) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1351 char *tmp, *tmp2; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1352 tmp = sub_name; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1353 if ((tmp2 = strrchr(tmp, '/'))) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1354 tmp = tmp2 + 1; |
22478 | 1355 |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1356 snprintf(*(char **) arg, 63, "(%d) %s%s", |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1357 mpctx->set_of_sub_pos + 1, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1358 strlen(tmp) < 20 ? "" : "...", |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1359 strlen(tmp) < 20 ? tmp : tmp + strlen(tmp) - 19); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1360 return M_PROPERTY_OK; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1361 } |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
27069
diff
changeset
|
1362 #ifdef CONFIG_DVDNAV |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1363 if (mpctx->stream->type == STREAMTYPE_DVDNAV) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1364 if (vo_spudec && dvdsub_id >= 0) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1365 unsigned char lang[3]; |
26986
4bee4b9ec054
Rename some functions as they are mplayer related and not
ben
parents:
26877
diff
changeset
|
1366 if (mp_dvdnav_lang_from_sid(mpctx->stream, dvdsub_id, lang)) { |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1367 snprintf(*(char **) arg, 63, "(%d) %s", dvdsub_id, lang); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1368 return M_PROPERTY_OK; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1369 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1370 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1371 } |
22478 | 1372 #endif |
1373 | |
26084
ec5749eb6f5f
Fill sh_sub_t.lang in lavf, mkv and ogg demuxers. Use it for printing subtitle
eugeni
parents:
26083
diff
changeset
|
1374 if ((mpctx->demuxer->type == DEMUXER_TYPE_MATROSKA |
ec5749eb6f5f
Fill sh_sub_t.lang in lavf, mkv and ogg demuxers. Use it for printing subtitle
eugeni
parents:
26083
diff
changeset
|
1375 || mpctx->demuxer->type == DEMUXER_TYPE_LAVF |
27457
16a2329e8776
handle the lavfpref demuxer in the same way as the lavf one
aurel
parents:
27393
diff
changeset
|
1376 || mpctx->demuxer->type == DEMUXER_TYPE_LAVF_PREFERRED |
26084
ec5749eb6f5f
Fill sh_sub_t.lang in lavf, mkv and ogg demuxers. Use it for printing subtitle
eugeni
parents:
26083
diff
changeset
|
1377 || mpctx->demuxer->type == DEMUXER_TYPE_OGG) |
ec5749eb6f5f
Fill sh_sub_t.lang in lavf, mkv and ogg demuxers. Use it for printing subtitle
eugeni
parents:
26083
diff
changeset
|
1378 && d_sub && d_sub->sh && dvdsub_id >= 0) { |
ec5749eb6f5f
Fill sh_sub_t.lang in lavf, mkv and ogg demuxers. Use it for printing subtitle
eugeni
parents:
26083
diff
changeset
|
1379 const char* lang = ((sh_sub_t*)d_sub->sh)->lang; |
ec5749eb6f5f
Fill sh_sub_t.lang in lavf, mkv and ogg demuxers. Use it for printing subtitle
eugeni
parents:
26083
diff
changeset
|
1380 if (!lang) lang = MSGTR_Unknown; |
23758 | 1381 snprintf(*(char **) arg, 63, "(%d) %s", dvdsub_id, lang); |
1382 return M_PROPERTY_OK; | |
1383 } | |
26084
ec5749eb6f5f
Fill sh_sub_t.lang in lavf, mkv and ogg demuxers. Use it for printing subtitle
eugeni
parents:
26083
diff
changeset
|
1384 |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1385 if (vo_vobsub && vobsub_id >= 0) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1386 const char *language = MSGTR_Unknown; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1387 language = vobsub_get_id(vo_vobsub, (unsigned int) vobsub_id); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1388 snprintf(*(char **) arg, 63, "(%d) %s", |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1389 vobsub_id, language ? language : MSGTR_Unknown); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1390 return M_PROPERTY_OK; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1391 } |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
27069
diff
changeset
|
1392 #ifdef CONFIG_DVDREAD |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1393 if (vo_spudec && mpctx->stream->type == STREAMTYPE_DVD |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1394 && dvdsub_id >= 0) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1395 char lang[3]; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1396 int code = dvd_lang_from_sid(mpctx->stream, dvdsub_id); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1397 lang[0] = code >> 8; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1398 lang[1] = code; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1399 lang[2] = 0; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1400 snprintf(*(char **) arg, 63, "(%d) %s", dvdsub_id, lang); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1401 return M_PROPERTY_OK; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1402 } |
22478 | 1403 #endif |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1404 if (dvdsub_id >= 0) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1405 snprintf(*(char **) arg, 63, "(%d) %s", dvdsub_id, MSGTR_Unknown); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1406 return M_PROPERTY_OK; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1407 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1408 snprintf(*(char **) arg, 63, MSGTR_Disabled); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1409 return M_PROPERTY_OK; |
22478 | 1410 |
1411 case M_PROPERTY_SET: | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1412 if (!arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1413 return M_PROPERTY_ERROR; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1414 if (*(int *) arg < -1) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1415 *(int *) arg = -1; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1416 else if (*(int *) arg >= global_sub_size) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1417 *(int *) arg = global_sub_size - 1; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1418 mpctx->global_sub_pos = *(int *) arg; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1419 break; |
22478 | 1420 case M_PROPERTY_STEP_UP: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1421 mpctx->global_sub_pos += 2; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1422 mpctx->global_sub_pos = |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1423 (mpctx->global_sub_pos % (global_sub_size + 1)) - 1; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1424 break; |
22478 | 1425 case M_PROPERTY_STEP_DOWN: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1426 mpctx->global_sub_pos += global_sub_size + 1; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1427 mpctx->global_sub_pos = |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1428 (mpctx->global_sub_pos % (global_sub_size + 1)) - 1; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1429 break; |
22478 | 1430 default: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1431 return M_PROPERTY_NOT_IMPLEMENTED; |
22478 | 1432 } |
1433 | |
1434 if (mpctx->global_sub_pos >= 0) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1435 source = sub_source(mpctx); |
22478 | 1436 |
1437 mp_msg(MSGT_CPLAYER, MSGL_DBG3, | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1438 "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
|
1439 global_sub_size, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1440 mpctx->global_sub_indices[SUB_SOURCE_VOBSUB], |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1441 mpctx->global_sub_indices[SUB_SOURCE_SUBS], |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1442 mpctx->global_sub_indices[SUB_SOURCE_DEMUX], |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1443 mpctx->global_sub_pos, source); |
22478 | 1444 |
1445 mpctx->set_of_sub_pos = -1; | |
1446 subdata = NULL; | |
1447 | |
1448 vobsub_id = -1; | |
1449 dvdsub_id = -1; | |
1450 if (d_sub) { | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1451 if (d_sub->id > -2) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1452 reset_spu = 1; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1453 d_sub->id = -2; |
22478 | 1454 } |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
27069
diff
changeset
|
1455 #ifdef CONFIG_ASS |
22478 | 1456 ass_track = 0; |
1457 #endif | |
1458 | |
1459 if (source == SUB_SOURCE_VOBSUB) { | |
25251
80804f0631f4
Skip empty vobsub streams when selecting subtitles.
ulion
parents:
25215
diff
changeset
|
1460 vobsub_id = vobsub_get_id_by_index(vo_vobsub, mpctx->global_sub_pos - mpctx->global_sub_indices[SUB_SOURCE_VOBSUB]); |
22478 | 1461 } else if (source == SUB_SOURCE_SUBS) { |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1462 mpctx->set_of_sub_pos = |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1463 mpctx->global_sub_pos - mpctx->global_sub_indices[SUB_SOURCE_SUBS]; |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
27069
diff
changeset
|
1464 #ifdef CONFIG_ASS |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1465 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
|
1466 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
|
1467 else |
22478 | 1468 #endif |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1469 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1470 subdata = mpctx->set_of_subtitles[mpctx->set_of_sub_pos]; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1471 vo_osd_changed(OSDTYPE_SUBTITLE); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1472 } |
22478 | 1473 } else if (source == SUB_SOURCE_DEMUX) { |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1474 dvdsub_id = |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1475 mpctx->global_sub_pos - mpctx->global_sub_indices[SUB_SOURCE_DEMUX]; |
23599
88f55dca299b
Simplify and correct subtitle selection, no more special cases for
reimar
parents:
23573
diff
changeset
|
1476 if (d_sub && dvdsub_id < MAX_S_STREAMS) { |
88f55dca299b
Simplify and correct subtitle selection, no more special cases for
reimar
parents:
23573
diff
changeset
|
1477 int i = 0; |
88f55dca299b
Simplify and correct subtitle selection, no more special cases for
reimar
parents:
23573
diff
changeset
|
1478 // default: assume 1:1 mapping of sid and stream id |
88f55dca299b
Simplify and correct subtitle selection, no more special cases for
reimar
parents:
23573
diff
changeset
|
1479 d_sub->id = dvdsub_id; |
88f55dca299b
Simplify and correct subtitle selection, no more special cases for
reimar
parents:
23573
diff
changeset
|
1480 d_sub->sh = mpctx->demuxer->s_streams[d_sub->id]; |
25639
8a673cfc4043
Clear demuxed data when subtitle track is changed.
eugeni
parents:
25577
diff
changeset
|
1481 ds_free_packs(d_sub); |
23599
88f55dca299b
Simplify and correct subtitle selection, no more special cases for
reimar
parents:
23573
diff
changeset
|
1482 for (i = 0; i < MAX_S_STREAMS; i++) { |
88f55dca299b
Simplify and correct subtitle selection, no more special cases for
reimar
parents:
23573
diff
changeset
|
1483 sh_sub_t *sh = mpctx->demuxer->s_streams[i]; |
88f55dca299b
Simplify and correct subtitle selection, no more special cases for
reimar
parents:
23573
diff
changeset
|
1484 if (sh && sh->sid == dvdsub_id) { |
88f55dca299b
Simplify and correct subtitle selection, no more special cases for
reimar
parents:
23573
diff
changeset
|
1485 d_sub->id = i; |
88f55dca299b
Simplify and correct subtitle selection, no more special cases for
reimar
parents:
23573
diff
changeset
|
1486 d_sub->sh = sh; |
88f55dca299b
Simplify and correct subtitle selection, no more special cases for
reimar
parents:
23573
diff
changeset
|
1487 break; |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1488 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1489 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1490 if (d_sub->sh && d_sub->id >= 0) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1491 sh_sub_t *sh = d_sub->sh; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1492 if (sh->type == 'v') |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1493 init_vo_spudec(); |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
27069
diff
changeset
|
1494 #ifdef CONFIG_ASS |
25878
05cde5afd1d8
Simplify a condition that probably is not necessary at all
reimar
parents:
25854
diff
changeset
|
1495 else if (ass_enabled) |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1496 ass_track = sh->ass_track; |
22478 | 1497 #endif |
23766
f0c2f9de85ba
Make sure that sub->id is -2 and sub->sh is NULL if subtitle doesn't
reimar
parents:
23758
diff
changeset
|
1498 } else { |
f0c2f9de85ba
Make sure that sub->id is -2 and sub->sh is NULL if subtitle doesn't
reimar
parents:
23758
diff
changeset
|
1499 d_sub->id = -2; |
f0c2f9de85ba
Make sure that sub->id is -2 and sub->sh is NULL if subtitle doesn't
reimar
parents:
23758
diff
changeset
|
1500 d_sub->sh = NULL; |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1501 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1502 } |
22478 | 1503 } |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
27069
diff
changeset
|
1504 #ifdef CONFIG_DVDREAD |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1505 if (vo_spudec |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1506 && (mpctx->stream->type == STREAMTYPE_DVD |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1507 || mpctx->stream->type == STREAMTYPE_DVDNAV) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1508 && dvdsub_id < 0 && reset_spu) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1509 dvdsub_id = -2; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1510 d_sub->id = dvdsub_id; |
22478 | 1511 } |
1512 #endif | |
1513 update_subtitles(mpctx->sh_video, d_sub, 1); | |
1514 | |
1515 return M_PROPERTY_OK; | |
1516 } | |
1517 | |
25129
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1518 /// Selected sub source (RW) |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1519 static int mp_property_sub_source(m_option_t * prop, int action, void *arg, |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1520 MPContext * mpctx) |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1521 { |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1522 int source; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1523 if (!mpctx->sh_video || mpctx->global_sub_size <= 0) |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1524 return M_PROPERTY_UNAVAILABLE; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1525 |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1526 switch (action) { |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1527 case M_PROPERTY_GET: |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1528 if (!arg) |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1529 return M_PROPERTY_ERROR; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1530 *(int *) arg = sub_source(mpctx); |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1531 return M_PROPERTY_OK; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1532 case M_PROPERTY_PRINT: |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1533 if (!arg) |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1534 return M_PROPERTY_ERROR; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1535 *(char **) arg = malloc(64); |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1536 (*(char **) arg)[63] = 0; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1537 switch (sub_source(mpctx)) |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1538 { |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1539 case SUB_SOURCE_SUBS: |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1540 snprintf(*(char **) arg, 63, MSGTR_SubSourceFile); |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1541 break; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1542 case SUB_SOURCE_VOBSUB: |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1543 snprintf(*(char **) arg, 63, MSGTR_SubSourceVobsub); |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1544 break; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1545 case SUB_SOURCE_DEMUX: |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1546 snprintf(*(char **) arg, 63, MSGTR_SubSourceDemux); |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1547 break; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1548 default: |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1549 snprintf(*(char **) arg, 63, MSGTR_Disabled); |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1550 } |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1551 return M_PROPERTY_OK; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1552 case M_PROPERTY_SET: |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1553 if (!arg) |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1554 return M_PROPERTY_ERROR; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1555 M_PROPERTY_CLAMP(prop, *(int*)arg); |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1556 if (*(int *) arg < 0) |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1557 mpctx->global_sub_pos = -1; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1558 else if (*(int *) arg != sub_source(mpctx)) { |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1559 if (*(int *) arg != sub_source_by_pos(mpctx, mpctx->global_sub_indices[*(int *) arg])) |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1560 return M_PROPERTY_UNAVAILABLE; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1561 mpctx->global_sub_pos = mpctx->global_sub_indices[*(int *) arg]; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1562 } |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1563 break; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1564 case M_PROPERTY_STEP_UP: |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1565 case M_PROPERTY_STEP_DOWN: { |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1566 int step_all = (arg && *(int*)arg != 0 ? *(int*)arg : 1) |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1567 * (action == M_PROPERTY_STEP_UP ? 1 : -1); |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1568 int step = (step_all > 0) ? 1 : -1; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1569 int cur_source = sub_source(mpctx); |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1570 source = cur_source; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1571 while (step_all) { |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1572 source += step; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1573 if (source >= SUB_SOURCES) |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1574 source = -1; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1575 else if (source < -1) |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1576 source = SUB_SOURCES - 1; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1577 if (source == cur_source || source == -1 || |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1578 source == sub_source_by_pos(mpctx, mpctx->global_sub_indices[source])) |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1579 step_all -= step; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1580 } |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1581 if (source == cur_source) |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1582 return M_PROPERTY_OK; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1583 if (source == -1) |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1584 mpctx->global_sub_pos = -1; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1585 else |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1586 mpctx->global_sub_pos = mpctx->global_sub_indices[source]; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1587 break; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1588 } |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1589 default: |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1590 return M_PROPERTY_NOT_IMPLEMENTED; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1591 } |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1592 --mpctx->global_sub_pos; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1593 return mp_property_sub(prop, M_PROPERTY_STEP_UP, NULL, mpctx); |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1594 } |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1595 |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1596 /// Selected subtitles from specific source (RW) |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1597 static int mp_property_sub_by_type(m_option_t * prop, int action, void *arg, |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1598 MPContext * mpctx) |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1599 { |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1600 int source, is_cur_source, offset; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1601 if (!mpctx->sh_video || mpctx->global_sub_size <= 0) |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1602 return M_PROPERTY_UNAVAILABLE; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1603 |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1604 if (!strcmp(prop->name, "sub_file")) |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1605 source = SUB_SOURCE_SUBS; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1606 else if (!strcmp(prop->name, "sub_vob")) |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1607 source = SUB_SOURCE_VOBSUB; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1608 else if (!strcmp(prop->name, "sub_demux")) |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1609 source = SUB_SOURCE_DEMUX; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1610 else |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1611 return M_PROPERTY_ERROR; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1612 |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1613 offset = mpctx->global_sub_indices[source]; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1614 if (offset < 0 || source != sub_source_by_pos(mpctx, offset)) |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1615 return M_PROPERTY_UNAVAILABLE; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1616 |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1617 is_cur_source = sub_source(mpctx) == source; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1618 switch (action) { |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1619 case M_PROPERTY_GET: |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1620 if (!arg) |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1621 return M_PROPERTY_ERROR; |
25251
80804f0631f4
Skip empty vobsub streams when selecting subtitles.
ulion
parents:
25215
diff
changeset
|
1622 if (is_cur_source) { |
80804f0631f4
Skip empty vobsub streams when selecting subtitles.
ulion
parents:
25215
diff
changeset
|
1623 *(int *) arg = mpctx->global_sub_pos - offset; |
80804f0631f4
Skip empty vobsub streams when selecting subtitles.
ulion
parents:
25215
diff
changeset
|
1624 if (source == SUB_SOURCE_VOBSUB) |
80804f0631f4
Skip empty vobsub streams when selecting subtitles.
ulion
parents:
25215
diff
changeset
|
1625 *(int *) arg = vobsub_get_id_by_index(vo_vobsub, *(int *) arg); |
80804f0631f4
Skip empty vobsub streams when selecting subtitles.
ulion
parents:
25215
diff
changeset
|
1626 } |
80804f0631f4
Skip empty vobsub streams when selecting subtitles.
ulion
parents:
25215
diff
changeset
|
1627 else |
80804f0631f4
Skip empty vobsub streams when selecting subtitles.
ulion
parents:
25215
diff
changeset
|
1628 *(int *) arg = -1; |
25129
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1629 return M_PROPERTY_OK; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1630 case M_PROPERTY_PRINT: |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1631 if (!arg) |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1632 return M_PROPERTY_ERROR; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1633 if (is_cur_source) |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1634 return mp_property_sub(prop, M_PROPERTY_PRINT, arg, mpctx); |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1635 *(char **) arg = malloc(64); |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1636 (*(char **) arg)[63] = 0; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1637 snprintf(*(char **) arg, 63, MSGTR_Disabled); |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1638 return M_PROPERTY_OK; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1639 case M_PROPERTY_SET: |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1640 if (!arg) |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1641 return M_PROPERTY_ERROR; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1642 if (*(int *) arg >= 0) { |
25251
80804f0631f4
Skip empty vobsub streams when selecting subtitles.
ulion
parents:
25215
diff
changeset
|
1643 int index = *(int *)arg; |
80804f0631f4
Skip empty vobsub streams when selecting subtitles.
ulion
parents:
25215
diff
changeset
|
1644 if (source == SUB_SOURCE_VOBSUB) |
80804f0631f4
Skip empty vobsub streams when selecting subtitles.
ulion
parents:
25215
diff
changeset
|
1645 index = vobsub_get_index_by_id(vo_vobsub, index); |
80804f0631f4
Skip empty vobsub streams when selecting subtitles.
ulion
parents:
25215
diff
changeset
|
1646 mpctx->global_sub_pos = offset + index; |
80804f0631f4
Skip empty vobsub streams when selecting subtitles.
ulion
parents:
25215
diff
changeset
|
1647 if (index < 0 || mpctx->global_sub_pos >= mpctx->global_sub_size |
25129
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1648 || sub_source(mpctx) != source) { |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1649 mpctx->global_sub_pos = -1; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1650 *(int *) arg = -1; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1651 } |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1652 } |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1653 else |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1654 mpctx->global_sub_pos = -1; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1655 break; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1656 case M_PROPERTY_STEP_UP: |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1657 case M_PROPERTY_STEP_DOWN: { |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1658 int step_all = (arg && *(int*)arg != 0 ? *(int*)arg : 1) |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1659 * (action == M_PROPERTY_STEP_UP ? 1 : -1); |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1660 int step = (step_all > 0) ? 1 : -1; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1661 int max_sub_pos_for_source = -1; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1662 if (!is_cur_source) |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1663 mpctx->global_sub_pos = -1; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1664 while (step_all) { |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1665 if (mpctx->global_sub_pos == -1) { |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1666 if (step > 0) |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1667 mpctx->global_sub_pos = offset; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1668 else if (max_sub_pos_for_source == -1) { |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1669 // Find max pos for specific source |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1670 mpctx->global_sub_pos = mpctx->global_sub_size - 1; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1671 while (mpctx->global_sub_pos >= 0 |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1672 && sub_source(mpctx) != source) |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1673 --mpctx->global_sub_pos; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1674 } |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1675 else |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1676 mpctx->global_sub_pos = max_sub_pos_for_source; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1677 } |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1678 else { |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1679 mpctx->global_sub_pos += step; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1680 if (mpctx->global_sub_pos < offset || |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1681 mpctx->global_sub_pos >= mpctx->global_sub_size || |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1682 sub_source(mpctx) != source) |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1683 mpctx->global_sub_pos = -1; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1684 } |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1685 step_all -= step; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1686 } |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1687 break; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1688 } |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1689 default: |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1690 return M_PROPERTY_NOT_IMPLEMENTED; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1691 } |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1692 --mpctx->global_sub_pos; |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1693 return mp_property_sub(prop, M_PROPERTY_STEP_UP, NULL, mpctx); |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1694 } |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
1695 |
22478 | 1696 /// Subtitle delay (RW) |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1697 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
|
1698 MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1699 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1700 if (!mpctx->sh_video) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1701 return M_PROPERTY_UNAVAILABLE; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1702 return m_property_delay(prop, action, arg, &sub_delay); |
22478 | 1703 } |
1704 | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1705 /// Alignment of text subtitles (RW) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1706 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
|
1707 void *arg, MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1708 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1709 char *name[] = { MSGTR_Top, MSGTR_Center, MSGTR_Bottom }; |
22478 | 1710 |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1711 if (!mpctx->sh_video || mpctx->global_sub_pos < 0 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1712 || sub_source(mpctx) != SUB_SOURCE_SUBS) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1713 return M_PROPERTY_UNAVAILABLE; |
22478 | 1714 |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1715 switch (action) { |
22478 | 1716 case M_PROPERTY_PRINT: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1717 if (!arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1718 return M_PROPERTY_ERROR; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1719 M_PROPERTY_CLAMP(prop, sub_alignment); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1720 *(char **) arg = strdup(name[sub_alignment]); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1721 return M_PROPERTY_OK; |
22478 | 1722 case M_PROPERTY_SET: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1723 if (!arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1724 return M_PROPERTY_ERROR; |
22478 | 1725 case M_PROPERTY_STEP_UP: |
1726 case M_PROPERTY_STEP_DOWN: | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1727 vo_osd_changed(OSDTYPE_SUBTITLE); |
22478 | 1728 default: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1729 return m_property_choice(prop, action, arg, &sub_alignment); |
22478 | 1730 } |
1731 } | |
1732 | |
1733 /// Subtitle visibility (RW) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1734 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
|
1735 void *arg, MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1736 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1737 if (!mpctx->sh_video) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1738 return M_PROPERTY_UNAVAILABLE; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1739 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1740 switch (action) { |
22478 | 1741 case M_PROPERTY_SET: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1742 if (!arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1743 return M_PROPERTY_ERROR; |
22478 | 1744 case M_PROPERTY_STEP_UP: |
1745 case M_PROPERTY_STEP_DOWN: | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1746 vo_osd_changed(OSDTYPE_SUBTITLE); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1747 if (vo_spudec) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1748 vo_osd_changed(OSDTYPE_SPU); |
22478 | 1749 default: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1750 return m_property_flag(prop, action, arg, &sub_visibility); |
22478 | 1751 } |
1752 } | |
1753 | |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
27069
diff
changeset
|
1754 #ifdef CONFIG_ASS |
25814
4ba9b9bdf123
Add ass_use_margins command and property to shift subtitles to margins and back
eugeni
parents:
25717
diff
changeset
|
1755 /// Use margins for libass subtitles (RW) |
4ba9b9bdf123
Add ass_use_margins command and property to shift subtitles to margins and back
eugeni
parents:
25717
diff
changeset
|
1756 static int mp_property_ass_use_margins(m_option_t * prop, int action, |
4ba9b9bdf123
Add ass_use_margins command and property to shift subtitles to margins and back
eugeni
parents:
25717
diff
changeset
|
1757 void *arg, MPContext * mpctx) |
4ba9b9bdf123
Add ass_use_margins command and property to shift subtitles to margins and back
eugeni
parents:
25717
diff
changeset
|
1758 { |
4ba9b9bdf123
Add ass_use_margins command and property to shift subtitles to margins and back
eugeni
parents:
25717
diff
changeset
|
1759 if (!mpctx->sh_video) |
4ba9b9bdf123
Add ass_use_margins command and property to shift subtitles to margins and back
eugeni
parents:
25717
diff
changeset
|
1760 return M_PROPERTY_UNAVAILABLE; |
4ba9b9bdf123
Add ass_use_margins command and property to shift subtitles to margins and back
eugeni
parents:
25717
diff
changeset
|
1761 |
4ba9b9bdf123
Add ass_use_margins command and property to shift subtitles to margins and back
eugeni
parents:
25717
diff
changeset
|
1762 switch (action) { |
4ba9b9bdf123
Add ass_use_margins command and property to shift subtitles to margins and back
eugeni
parents:
25717
diff
changeset
|
1763 case M_PROPERTY_SET: |
4ba9b9bdf123
Add ass_use_margins command and property to shift subtitles to margins and back
eugeni
parents:
25717
diff
changeset
|
1764 if (!arg) |
4ba9b9bdf123
Add ass_use_margins command and property to shift subtitles to margins and back
eugeni
parents:
25717
diff
changeset
|
1765 return M_PROPERTY_ERROR; |
4ba9b9bdf123
Add ass_use_margins command and property to shift subtitles to margins and back
eugeni
parents:
25717
diff
changeset
|
1766 case M_PROPERTY_STEP_UP: |
4ba9b9bdf123
Add ass_use_margins command and property to shift subtitles to margins and back
eugeni
parents:
25717
diff
changeset
|
1767 case M_PROPERTY_STEP_DOWN: |
4ba9b9bdf123
Add ass_use_margins command and property to shift subtitles to margins and back
eugeni
parents:
25717
diff
changeset
|
1768 ass_force_reload = 1; |
4ba9b9bdf123
Add ass_use_margins command and property to shift subtitles to margins and back
eugeni
parents:
25717
diff
changeset
|
1769 default: |
4ba9b9bdf123
Add ass_use_margins command and property to shift subtitles to margins and back
eugeni
parents:
25717
diff
changeset
|
1770 return m_property_flag(prop, action, arg, &ass_use_margins); |
4ba9b9bdf123
Add ass_use_margins command and property to shift subtitles to margins and back
eugeni
parents:
25717
diff
changeset
|
1771 } |
4ba9b9bdf123
Add ass_use_margins command and property to shift subtitles to margins and back
eugeni
parents:
25717
diff
changeset
|
1772 } |
4ba9b9bdf123
Add ass_use_margins command and property to shift subtitles to margins and back
eugeni
parents:
25717
diff
changeset
|
1773 #endif |
4ba9b9bdf123
Add ass_use_margins command and property to shift subtitles to margins and back
eugeni
parents:
25717
diff
changeset
|
1774 |
22478 | 1775 /// Show only forced subtitles (RW) |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1776 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
|
1777 void *arg, MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1778 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1779 if (!vo_spudec) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1780 return M_PROPERTY_UNAVAILABLE; |
22478 | 1781 |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1782 switch (action) { |
22478 | 1783 case M_PROPERTY_SET: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1784 if (!arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1785 return M_PROPERTY_ERROR; |
22478 | 1786 case M_PROPERTY_STEP_UP: |
1787 case M_PROPERTY_STEP_DOWN: | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1788 m_property_flag(prop, action, arg, &forced_subs_only); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1789 spudec_set_forced_subs_only(vo_spudec, forced_subs_only); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1790 return M_PROPERTY_OK; |
22478 | 1791 default: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1792 return m_property_flag(prop, action, arg, &forced_subs_only); |
22478 | 1793 } |
1794 | |
1795 } | |
1796 | |
27393 | 1797 #ifdef CONFIG_FREETYPE |
23725 | 1798 /// Subtitle scale (RW) |
1799 static int mp_property_sub_scale(m_option_t * prop, int action, void *arg, | |
1800 MPContext * mpctx) | |
1801 { | |
1802 | |
1803 switch (action) { | |
1804 case M_PROPERTY_SET: | |
1805 if (!arg) | |
1806 return M_PROPERTY_ERROR; | |
1807 M_PROPERTY_CLAMP(prop, *(float *) arg); | |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
27069
diff
changeset
|
1808 #ifdef CONFIG_ASS |
25815
8920f8a26c05
sub_scale command now works with ass subtitles renderer
ben
parents:
25814
diff
changeset
|
1809 if (ass_enabled) { |
8920f8a26c05
sub_scale command now works with ass subtitles renderer
ben
parents:
25814
diff
changeset
|
1810 ass_font_scale = *(float *) arg; |
8920f8a26c05
sub_scale command now works with ass subtitles renderer
ben
parents:
25814
diff
changeset
|
1811 ass_force_reload = 1; |
8920f8a26c05
sub_scale command now works with ass subtitles renderer
ben
parents:
25814
diff
changeset
|
1812 } |
8920f8a26c05
sub_scale command now works with ass subtitles renderer
ben
parents:
25814
diff
changeset
|
1813 #endif |
25854 | 1814 text_font_scale_factor = *(float *) arg; |
1815 force_load_font = 1; | |
23725 | 1816 return M_PROPERTY_OK; |
1817 case M_PROPERTY_STEP_UP: | |
1818 case M_PROPERTY_STEP_DOWN: | |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
27069
diff
changeset
|
1819 #ifdef CONFIG_ASS |
25815
8920f8a26c05
sub_scale command now works with ass subtitles renderer
ben
parents:
25814
diff
changeset
|
1820 if (ass_enabled) { |
8920f8a26c05
sub_scale command now works with ass subtitles renderer
ben
parents:
25814
diff
changeset
|
1821 ass_font_scale += (arg ? *(float *) arg : 0.1)* |
8920f8a26c05
sub_scale command now works with ass subtitles renderer
ben
parents:
25814
diff
changeset
|
1822 (action == M_PROPERTY_STEP_UP ? 1.0 : -1.0); |
8920f8a26c05
sub_scale command now works with ass subtitles renderer
ben
parents:
25814
diff
changeset
|
1823 M_PROPERTY_CLAMP(prop, ass_font_scale); |
8920f8a26c05
sub_scale command now works with ass subtitles renderer
ben
parents:
25814
diff
changeset
|
1824 ass_force_reload = 1; |
8920f8a26c05
sub_scale command now works with ass subtitles renderer
ben
parents:
25814
diff
changeset
|
1825 } |
8920f8a26c05
sub_scale command now works with ass subtitles renderer
ben
parents:
25814
diff
changeset
|
1826 #endif |
25854 | 1827 text_font_scale_factor += (arg ? *(float *) arg : 0.1)* |
1828 (action == M_PROPERTY_STEP_UP ? 1.0 : -1.0); | |
1829 M_PROPERTY_CLAMP(prop, text_font_scale_factor); | |
1830 force_load_font = 1; | |
23725 | 1831 return M_PROPERTY_OK; |
1832 default: | |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
27069
diff
changeset
|
1833 #ifdef CONFIG_ASS |
25815
8920f8a26c05
sub_scale command now works with ass subtitles renderer
ben
parents:
25814
diff
changeset
|
1834 if (ass_enabled) |
8920f8a26c05
sub_scale command now works with ass subtitles renderer
ben
parents:
25814
diff
changeset
|
1835 return m_property_float_ro(prop, action, arg, ass_font_scale); |
8920f8a26c05
sub_scale command now works with ass subtitles renderer
ben
parents:
25814
diff
changeset
|
1836 else |
8920f8a26c05
sub_scale command now works with ass subtitles renderer
ben
parents:
25814
diff
changeset
|
1837 #endif |
25816 | 1838 return m_property_float_ro(prop, action, arg, text_font_scale_factor); |
23725 | 1839 } |
1840 } | |
23740 | 1841 #endif |
23725 | 1842 |
22478 | 1843 ///@} |
1844 | |
1845 /// \defgroup TVProperties TV properties | |
1846 /// \ingroup Properties | |
1847 ///@{ | |
1848 | |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
27069
diff
changeset
|
1849 #ifdef CONFIG_TV |
22478 | 1850 |
1851 /// TV color settings (RW) | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1852 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
|
1853 MPContext * mpctx) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1854 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1855 int r, val; |
22478 | 1856 tvi_handle_t *tvh = mpctx->demuxer->priv; |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1857 if (mpctx->demuxer->type != DEMUXER_TYPE_TV || !tvh) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1858 return M_PROPERTY_UNAVAILABLE; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1859 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1860 switch (action) { |
22478 | 1861 case M_PROPERTY_SET: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1862 if (!arg) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1863 return M_PROPERTY_ERROR; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1864 M_PROPERTY_CLAMP(prop, *(int *) arg); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1865 return tv_set_color_options(tvh, (int) prop->priv, *(int *) arg); |
22478 | 1866 case M_PROPERTY_GET: |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1867 return tv_get_color_options(tvh, (int) prop->priv, arg); |
22478 | 1868 case M_PROPERTY_STEP_UP: |
1869 case M_PROPERTY_STEP_DOWN: | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1870 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
|
1871 if (!r) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1872 return M_PROPERTY_ERROR; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1873 val += (arg ? *(int *) arg : 1) * |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1874 (action == M_PROPERTY_STEP_DOWN ? -1 : 1); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1875 M_PROPERTY_CLAMP(prop, val); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1876 return tv_set_color_options(tvh, (int) prop->priv, val); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1877 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1878 return M_PROPERTY_ERROR; |
22478 | 1879 } |
1880 return M_PROPERTY_NOT_IMPLEMENTED; | |
1881 } | |
1882 | |
1883 #endif | |
1884 | |
27370
14c5017f40d2
Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents:
27345
diff
changeset
|
1885 #ifdef CONFIG_TV_TELETEXT |
23900 | 1886 static int mp_property_teletext_common(m_option_t * prop, int action, void *arg, |
1887 MPContext * mpctx) | |
1888 { | |
1889 int val,result; | |
1890 int base_ioctl=(int)prop->priv; | |
1891 /* | |
1892 for teletext's GET,SET,STEP ioctls this is not 0 | |
1893 SET is GET+1 | |
1894 STEP is GET+2 | |
1895 */ | |
1896 tvi_handle_t *tvh = mpctx->demuxer->priv; | |
1897 if (mpctx->demuxer->type != DEMUXER_TYPE_TV || !tvh) | |
1898 return M_PROPERTY_UNAVAILABLE; | |
1899 if(!base_ioctl) | |
1900 return M_PROPERTY_ERROR; | |
1901 | |
1902 switch (action) { | |
1903 case M_PROPERTY_GET: | |
1904 if (!arg) | |
1905 return M_PROPERTY_ERROR; | |
1906 result=tvh->functions->control(tvh->priv, base_ioctl, arg); | |
1907 break; | |
1908 case M_PROPERTY_SET: | |
1909 if (!arg) | |
1910 return M_PROPERTY_ERROR; | |
1911 M_PROPERTY_CLAMP(prop, *(int *) arg); | |
1912 result=tvh->functions->control(tvh->priv, base_ioctl+1, arg); | |
1913 break; | |
1914 case M_PROPERTY_STEP_UP: | |
1915 case M_PROPERTY_STEP_DOWN: | |
1916 result=tvh->functions->control(tvh->priv, base_ioctl, &val); | |
1917 val += (arg ? *(int *) arg : 1) * (action == M_PROPERTY_STEP_DOWN ? -1 : 1); | |
1918 result=tvh->functions->control(tvh->priv, base_ioctl+1, &val); | |
1919 break; | |
1920 default: | |
1921 return M_PROPERTY_NOT_IMPLEMENTED; | |
1922 } | |
1923 | |
26759
8eff880f638c
cosmetics: Remove useless parentheses from return statements.
diego
parents:
26281
diff
changeset
|
1924 return result == TVI_CONTROL_TRUE ? M_PROPERTY_OK : M_PROPERTY_ERROR; |
23900 | 1925 } |
1926 | |
1927 static int mp_property_teletext_mode(m_option_t * prop, int action, void *arg, | |
1928 MPContext * mpctx) | |
1929 { | |
1930 tvi_handle_t *tvh = mpctx->demuxer->priv; | |
1931 int result; | |
1932 int val; | |
1933 | |
1934 //with tvh==NULL will fail too | |
1935 result=mp_property_teletext_common(prop,action,arg,mpctx); | |
1936 if(result!=M_PROPERTY_OK) | |
1937 return result; | |
1938 | |
1939 if(tvh->functions->control(tvh->priv, prop->priv, &val)==TVI_CONTROL_TRUE && val) | |
1940 mp_input_set_section("teletext"); | |
1941 else | |
1942 mp_input_set_section("tv"); | |
1943 return M_PROPERTY_OK; | |
1944 } | |
1945 | |
1946 static int mp_property_teletext_page(m_option_t * prop, int action, void *arg, | |
1947 MPContext * mpctx) | |
1948 { | |
1949 tvi_handle_t *tvh = mpctx->demuxer->priv; | |
1950 int result; | |
1951 int val; | |
27806
26c27a80b8af
Disallow the modification of teletext properties when the tv demuxer is
faust3
parents:
27650
diff
changeset
|
1952 if (mpctx->demuxer->type != DEMUXER_TYPE_TV || !tvh) |
26c27a80b8af
Disallow the modification of teletext properties when the tv demuxer is
faust3
parents:
27650
diff
changeset
|
1953 return M_PROPERTY_UNAVAILABLE; |
23900 | 1954 switch(action){ |
1955 case M_PROPERTY_STEP_UP: | |
1956 case M_PROPERTY_STEP_DOWN: | |
1957 //This should be handled separately | |
1958 val = (arg ? *(int *) arg : 1) * (action == M_PROPERTY_STEP_DOWN ? -1 : 1); | |
1959 result=tvh->functions->control(tvh->priv, TV_VBI_CONTROL_STEP_PAGE, &val); | |
1960 break; | |
1961 default: | |
1962 result=mp_property_teletext_common(prop,action,arg,mpctx); | |
1963 } | |
1964 return result; | |
1965 } | |
1966 | |
1967 | |
27370
14c5017f40d2
Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents:
27345
diff
changeset
|
1968 #endif /* CONFIG_TV_TELETEXT */ |
23900 | 1969 |
22478 | 1970 ///@} |
1971 | |
1972 /// All properties available in MPlayer. | |
1973 /** \ingroup Properties | |
1974 */ | |
25717 | 1975 static const m_option_t mp_properties[] = { |
22478 | 1976 // General |
1977 { "osdlevel", mp_property_osdlevel, CONF_TYPE_INT, | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1978 M_OPT_RANGE, 0, 3, NULL }, |
23727 | 1979 { "loop", mp_property_loop, CONF_TYPE_INT, |
1980 M_OPT_MIN, -1, 0, NULL }, | |
22478 | 1981 { "speed", mp_property_playback_speed, CONF_TYPE_FLOAT, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1982 M_OPT_RANGE, 0.01, 100.0, NULL }, |
22478 | 1983 { "filename", mp_property_filename, CONF_TYPE_STRING, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1984 0, 0, 0, NULL }, |
22478 | 1985 { "path", mp_property_path, CONF_TYPE_STRING, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1986 0, 0, 0, NULL }, |
22478 | 1987 { "demuxer", mp_property_demuxer, CONF_TYPE_STRING, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1988 0, 0, 0, NULL }, |
22478 | 1989 { "stream_pos", mp_property_stream_pos, CONF_TYPE_POSITION, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1990 M_OPT_MIN, 0, 0, NULL }, |
22478 | 1991 { "stream_start", mp_property_stream_start, CONF_TYPE_POSITION, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1992 M_OPT_MIN, 0, 0, NULL }, |
22478 | 1993 { "stream_end", mp_property_stream_end, CONF_TYPE_POSITION, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1994 M_OPT_MIN, 0, 0, NULL }, |
22478 | 1995 { "stream_length", mp_property_stream_length, CONF_TYPE_POSITION, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
1996 M_OPT_MIN, 0, 0, NULL }, |
23417 | 1997 { "length", mp_property_length, CONF_TYPE_TIME, |
1998 M_OPT_MIN, 0, 0, NULL }, | |
23418 | 1999 { "percent_pos", mp_property_percent_pos, CONF_TYPE_INT, |
2000 M_OPT_RANGE, 0, 100, NULL }, | |
2001 { "time_pos", mp_property_time_pos, CONF_TYPE_TIME, | |
2002 M_OPT_MIN, 0, 0, NULL }, | |
25363 | 2003 { "chapter", mp_property_chapter, CONF_TYPE_INT, |
2004 M_OPT_MIN, 1, 0, NULL }, | |
27635
22bdd7ba8892
slave command to get the number of chapters; patch by Kevin DeKorte - kdekorte gmail com
nicodvb
parents:
27457
diff
changeset
|
2005 { "chapters", mp_property_chapters, CONF_TYPE_INT, |
22bdd7ba8892
slave command to get the number of chapters; patch by Kevin DeKorte - kdekorte gmail com
nicodvb
parents:
27457
diff
changeset
|
2006 0, 0, 0, NULL }, |
25577
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
2007 { "angle", mp_property_angle, CONF_TYPE_INT, |
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
2008 CONF_RANGE, -2, 10, NULL }, |
23394
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
2009 { "metadata", mp_property_metadata, CONF_TYPE_STRING_LIST, |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
2010 0, 0, 0, NULL }, |
27648
427fec163870
Add a "pause" property to allow checking if MPlayer is paused.
reimar
parents:
27635
diff
changeset
|
2011 { "pause", mp_property_pause, CONF_TYPE_FLAG, |
427fec163870
Add a "pause" property to allow checking if MPlayer is paused.
reimar
parents:
27635
diff
changeset
|
2012 M_OPT_RANGE, 0, 1, NULL }, |
22478 | 2013 |
2014 // Audio | |
2015 { "volume", mp_property_volume, CONF_TYPE_FLOAT, | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2016 M_OPT_RANGE, 0, 100, NULL }, |
22478 | 2017 { "mute", mp_property_mute, CONF_TYPE_FLAG, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2018 M_OPT_RANGE, 0, 1, NULL }, |
22478 | 2019 { "audio_delay", mp_property_audio_delay, CONF_TYPE_FLOAT, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2020 M_OPT_RANGE, -100, 100, NULL }, |
22478 | 2021 { "audio_format", mp_property_audio_format, CONF_TYPE_INT, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2022 0, 0, 0, NULL }, |
23394
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
2023 { "audio_codec", mp_property_audio_codec, CONF_TYPE_STRING, |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
2024 0, 0, 0, NULL }, |
22478 | 2025 { "audio_bitrate", mp_property_audio_bitrate, CONF_TYPE_INT, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2026 0, 0, 0, NULL }, |
22478 | 2027 { "samplerate", mp_property_samplerate, CONF_TYPE_INT, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2028 0, 0, 0, NULL }, |
22478 | 2029 { "channels", mp_property_channels, CONF_TYPE_INT, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2030 0, 0, 0, NULL }, |
22478 | 2031 { "switch_audio", mp_property_audio, CONF_TYPE_INT, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2032 CONF_RANGE, -2, MAX_A_STREAMS - 1, NULL }, |
23568 | 2033 { "balance", mp_property_balance, CONF_TYPE_FLOAT, |
2034 M_OPT_RANGE, -1, 1, NULL }, | |
22478 | 2035 |
2036 // Video | |
2037 { "fullscreen", mp_property_fullscreen, CONF_TYPE_FLAG, | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2038 M_OPT_RANGE, 0, 1, NULL }, |
22478 | 2039 { "deinterlace", mp_property_deinterlace, CONF_TYPE_FLAG, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2040 M_OPT_RANGE, 0, 1, NULL }, |
22478 | 2041 { "ontop", mp_property_ontop, CONF_TYPE_FLAG, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2042 M_OPT_RANGE, 0, 1, NULL }, |
22478 | 2043 { "rootwin", mp_property_rootwin, CONF_TYPE_FLAG, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2044 M_OPT_RANGE, 0, 1, NULL }, |
22478 | 2045 { "border", mp_property_border, CONF_TYPE_FLAG, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2046 M_OPT_RANGE, 0, 1, NULL }, |
22478 | 2047 { "framedropping", mp_property_framedropping, CONF_TYPE_INT, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2048 M_OPT_RANGE, 0, 2, NULL }, |
22478 | 2049 { "gamma", mp_property_gamma, CONF_TYPE_INT, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2050 M_OPT_RANGE, -100, 100, &vo_gamma_gamma }, |
22478 | 2051 { "brightness", mp_property_gamma, CONF_TYPE_INT, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2052 M_OPT_RANGE, -100, 100, &vo_gamma_brightness }, |
22478 | 2053 { "contrast", mp_property_gamma, CONF_TYPE_INT, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2054 M_OPT_RANGE, -100, 100, &vo_gamma_contrast }, |
22478 | 2055 { "saturation", mp_property_gamma, CONF_TYPE_INT, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2056 M_OPT_RANGE, -100, 100, &vo_gamma_saturation }, |
22478 | 2057 { "hue", mp_property_gamma, CONF_TYPE_INT, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2058 M_OPT_RANGE, -100, 100, &vo_gamma_hue }, |
22478 | 2059 { "panscan", mp_property_panscan, CONF_TYPE_FLOAT, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2060 M_OPT_RANGE, 0, 1, NULL }, |
22478 | 2061 { "vsync", mp_property_vsync, CONF_TYPE_FLAG, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2062 M_OPT_RANGE, 0, 1, NULL }, |
22478 | 2063 { "video_format", mp_property_video_format, CONF_TYPE_INT, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2064 0, 0, 0, NULL }, |
23394
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
2065 { "video_codec", mp_property_video_codec, CONF_TYPE_STRING, |
d4e8613ddc95
Make all the info available via the metadata API available via properties.
albeu
parents:
23393
diff
changeset
|
2066 0, 0, 0, NULL }, |
22478 | 2067 { "video_bitrate", mp_property_video_bitrate, CONF_TYPE_INT, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2068 0, 0, 0, NULL }, |
22478 | 2069 { "width", mp_property_width, CONF_TYPE_INT, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2070 0, 0, 0, NULL }, |
22478 | 2071 { "height", mp_property_height, CONF_TYPE_INT, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2072 0, 0, 0, NULL }, |
22478 | 2073 { "fps", mp_property_fps, CONF_TYPE_FLOAT, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2074 0, 0, 0, NULL }, |
22478 | 2075 { "aspect", mp_property_aspect, CONF_TYPE_FLOAT, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2076 0, 0, 0, NULL }, |
22478 | 2077 { "switch_video", mp_property_video, CONF_TYPE_INT, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2078 CONF_RANGE, -2, MAX_V_STREAMS - 1, NULL }, |
22478 | 2079 { "switch_program", mp_property_program, CONF_TYPE_INT, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2080 CONF_RANGE, -1, 65535, NULL }, |
22478 | 2081 |
2082 // Subs | |
2083 { "sub", mp_property_sub, CONF_TYPE_INT, | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2084 M_OPT_MIN, -1, 0, NULL }, |
25129
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
2085 { "sub_source", mp_property_sub_source, CONF_TYPE_INT, |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
2086 M_OPT_RANGE, -1, SUB_SOURCES - 1, NULL }, |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
2087 { "sub_vob", mp_property_sub_by_type, CONF_TYPE_INT, |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
2088 M_OPT_MIN, -1, 0, NULL }, |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
2089 { "sub_demux", mp_property_sub_by_type, CONF_TYPE_INT, |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
2090 M_OPT_MIN, -1, 0, NULL }, |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
2091 { "sub_file", mp_property_sub_by_type, CONF_TYPE_INT, |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
2092 M_OPT_MIN, -1, 0, NULL }, |
22478 | 2093 { "sub_delay", mp_property_sub_delay, CONF_TYPE_FLOAT, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2094 0, 0, 0, NULL }, |
22478 | 2095 { "sub_pos", mp_property_sub_pos, CONF_TYPE_INT, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2096 M_OPT_RANGE, 0, 100, NULL }, |
22478 | 2097 { "sub_alignment", mp_property_sub_alignment, CONF_TYPE_INT, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2098 M_OPT_RANGE, 0, 2, NULL }, |
22478 | 2099 { "sub_visibility", mp_property_sub_visibility, CONF_TYPE_FLAG, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2100 M_OPT_RANGE, 0, 1, NULL }, |
22478 | 2101 { "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
|
2102 M_OPT_RANGE, 0, 1, NULL }, |
27393 | 2103 #ifdef CONFIG_FREETYPE |
23725 | 2104 { "sub_scale", mp_property_sub_scale, CONF_TYPE_FLOAT, |
2105 M_OPT_RANGE, 0, 100, NULL }, | |
23740 | 2106 #endif |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
27069
diff
changeset
|
2107 #ifdef CONFIG_ASS |
25814
4ba9b9bdf123
Add ass_use_margins command and property to shift subtitles to margins and back
eugeni
parents:
25717
diff
changeset
|
2108 { "ass_use_margins", mp_property_ass_use_margins, CONF_TYPE_FLAG, |
4ba9b9bdf123
Add ass_use_margins command and property to shift subtitles to margins and back
eugeni
parents:
25717
diff
changeset
|
2109 M_OPT_RANGE, 0, 1, NULL }, |
4ba9b9bdf123
Add ass_use_margins command and property to shift subtitles to margins and back
eugeni
parents:
25717
diff
changeset
|
2110 #endif |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2111 |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
27069
diff
changeset
|
2112 #ifdef CONFIG_TV |
22478 | 2113 { "tv_brightness", mp_property_tv_color, CONF_TYPE_INT, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2114 M_OPT_RANGE, -100, 100, (void *) TV_COLOR_BRIGHTNESS }, |
22478 | 2115 { "tv_contrast", mp_property_tv_color, CONF_TYPE_INT, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2116 M_OPT_RANGE, -100, 100, (void *) TV_COLOR_CONTRAST }, |
22478 | 2117 { "tv_saturation", mp_property_tv_color, CONF_TYPE_INT, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2118 M_OPT_RANGE, -100, 100, (void *) TV_COLOR_SATURATION }, |
22478 | 2119 { "tv_hue", mp_property_tv_color, CONF_TYPE_INT, |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2120 M_OPT_RANGE, -100, 100, (void *) TV_COLOR_HUE }, |
22478 | 2121 #endif |
2122 | |
27370
14c5017f40d2
Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents:
27345
diff
changeset
|
2123 #ifdef CONFIG_TV_TELETEXT |
23900 | 2124 { "teletext_page", mp_property_teletext_page, CONF_TYPE_INT, |
2125 M_OPT_RANGE, 100, 899, (void*)TV_VBI_CONTROL_GET_PAGE }, | |
2126 { "teletext_subpage", mp_property_teletext_common, CONF_TYPE_INT, | |
2127 M_OPT_RANGE, 0, 64, (void*)TV_VBI_CONTROL_GET_SUBPAGE }, | |
2128 { "teletext_mode", mp_property_teletext_mode, CONF_TYPE_FLAG, | |
2129 M_OPT_RANGE, 0, 1, (void*)TV_VBI_CONTROL_GET_MODE }, | |
2130 { "teletext_format", mp_property_teletext_common, CONF_TYPE_INT, | |
2131 M_OPT_RANGE, 0, 3, (void*)TV_VBI_CONTROL_GET_FORMAT }, | |
2132 { "teletext_half_page", mp_property_teletext_common, CONF_TYPE_INT, | |
2133 M_OPT_RANGE, 0, 2, (void*)TV_VBI_CONTROL_GET_HALF_PAGE }, | |
2134 #endif | |
2135 | |
22478 | 2136 { NULL, NULL, NULL, 0, 0, 0, NULL } |
2137 }; | |
2138 | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2139 |
23393
a5e55cb59bbc
Rework the property API to allow sub properties such as
albeu
parents:
23259
diff
changeset
|
2140 int mp_property_do(const char *name, int action, void *val, void *ctx) |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2141 { |
23393
a5e55cb59bbc
Rework the property API to allow sub properties such as
albeu
parents:
23259
diff
changeset
|
2142 return m_property_do(mp_properties, name, action, val, ctx); |
22478 | 2143 } |
2144 | |
23393
a5e55cb59bbc
Rework the property API to allow sub properties such as
albeu
parents:
23259
diff
changeset
|
2145 char* mp_property_print(const char *name, void* ctx) |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2146 { |
23393
a5e55cb59bbc
Rework the property API to allow sub properties such as
albeu
parents:
23259
diff
changeset
|
2147 char* ret = NULL; |
a5e55cb59bbc
Rework the property API to allow sub properties such as
albeu
parents:
23259
diff
changeset
|
2148 if(mp_property_do(name,M_PROPERTY_PRINT,&ret,ctx) <= 0) |
a5e55cb59bbc
Rework the property API to allow sub properties such as
albeu
parents:
23259
diff
changeset
|
2149 return NULL; |
a5e55cb59bbc
Rework the property API to allow sub properties such as
albeu
parents:
23259
diff
changeset
|
2150 return ret; |
22478 | 2151 } |
2152 | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2153 char *property_expand_string(MPContext * mpctx, char *str) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2154 { |
22478 | 2155 return m_properties_expand_string(mp_properties, str, mpctx); |
2156 } | |
2157 | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2158 void property_print_help(void) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2159 { |
22478 | 2160 m_properties_print_help_list(mp_properties); |
2161 } | |
2162 | |
2163 | |
2164 ///@} | |
2165 // Properties group | |
2166 | |
2167 | |
2168 /** | |
2169 * \defgroup Command2Property Command to property bridge | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2170 * |
22478 | 2171 * It is used to handle most commands that just set a property |
2172 * and optionally display something on the OSD. | |
2173 * Two kinds of commands are handled: adjust or toggle. | |
2174 * | |
2175 * Adjust commands take 1 or 2 parameters: <value> <abs> | |
2176 * If <abs> is non-zero the property is set to the given value | |
2177 * otherwise it is adjusted. | |
2178 * | |
2179 * Toggle commands take 0 or 1 parameters. With no parameter | |
2180 * or a value less than the property minimum it just steps the | |
2181 * property to its next value. Otherwise it sets it to the given | |
2182 * value. | |
2183 * | |
2184 *@{ | |
2185 */ | |
2186 | |
2187 /// 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
|
2188 static struct { |
22478 | 2189 /// property name |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2190 const char *name; |
22478 | 2191 /// cmd id |
2192 int cmd; | |
2193 /// set/adjust or toggle command | |
2194 int toggle; | |
2195 /// progressbar type | |
2196 int osd_progbar; | |
2197 /// osd msg id if it must be shared | |
2198 int osd_id; | |
2199 /// osd msg template | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2200 const char *osd_msg; |
22478 | 2201 } set_prop_cmd[] = { |
23727 | 2202 // general |
2203 { "loop", MP_CMD_LOOP, 0, 0, -1, MSGTR_LoopStatus }, | |
25363 | 2204 { "chapter", MP_CMD_SEEK_CHAPTER, 0, 0, -1, NULL }, |
25577
f1ea96323643
properties to get and set angle; patch by oattila chello hu
nicodvb
parents:
25567
diff
changeset
|
2205 { "angle", MP_CMD_SWITCH_ANGLE, 0, 0, -1, NULL }, |
22478 | 2206 // audio |
2207 { "volume", MP_CMD_VOLUME, 0, OSD_VOLUME, -1, MSGTR_Volume }, | |
2208 { "mute", MP_CMD_MUTE, 1, 0, -1, MSGTR_MuteStatus }, | |
2209 { "audio_delay", MP_CMD_AUDIO_DELAY, 0, 0, -1, MSGTR_AVDelayStatus }, | |
2210 { "switch_audio", MP_CMD_SWITCH_AUDIO, 1, 0, -1, MSGTR_OSDAudio }, | |
23568 | 2211 { "balance", MP_CMD_BALANCE, 0, OSD_BALANCE, -1, MSGTR_Balance }, |
22478 | 2212 // video |
2213 { "fullscreen", MP_CMD_VO_FULLSCREEN, 1, 0, -1, NULL }, | |
2214 { "panscan", MP_CMD_PANSCAN, 0, OSD_PANSCAN, -1, MSGTR_Panscan }, | |
2215 { "ontop", MP_CMD_VO_ONTOP, 1, 0, -1, MSGTR_OnTopStatus }, | |
2216 { "rootwin", MP_CMD_VO_ROOTWIN, 1, 0, -1, MSGTR_RootwinStatus }, | |
2217 { "border", MP_CMD_VO_BORDER, 1, 0, -1, MSGTR_BorderStatus }, | |
2218 { "framedropping", MP_CMD_FRAMEDROPPING, 1, 0, -1, MSGTR_FramedroppingStatus }, | |
2219 { "gamma", MP_CMD_GAMMA, 0, OSD_BRIGHTNESS, -1, MSGTR_Gamma }, | |
2220 { "brightness", MP_CMD_BRIGHTNESS, 0, OSD_BRIGHTNESS, -1, MSGTR_Brightness }, | |
2221 { "contrast", MP_CMD_CONTRAST, 0, OSD_CONTRAST, -1, MSGTR_Contrast }, | |
2222 { "saturation", MP_CMD_SATURATION, 0, OSD_SATURATION, -1, MSGTR_Saturation }, | |
2223 { "hue", MP_CMD_HUE, 0, OSD_HUE, -1, MSGTR_Hue }, | |
2224 { "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
|
2225 // subs |
22478 | 2226 { "sub", MP_CMD_SUB_SELECT, 1, 0, -1, MSGTR_SubSelectStatus }, |
25129
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
2227 { "sub_source", MP_CMD_SUB_SOURCE, 1, 0, -1, MSGTR_SubSourceStatus }, |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
2228 { "sub_vob", MP_CMD_SUB_VOB, 1, 0, -1, MSGTR_SubSelectStatus }, |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
2229 { "sub_demux", MP_CMD_SUB_DEMUX, 1, 0, -1, MSGTR_SubSelectStatus }, |
c04b64054255
Support select subtitle by source, add 4 properties:
ulion
parents:
25032
diff
changeset
|
2230 { "sub_file", MP_CMD_SUB_FILE, 1, 0, -1, MSGTR_SubSelectStatus }, |
22478 | 2231 { "sub_pos", MP_CMD_SUB_POS, 0, 0, -1, MSGTR_SubPosStatus }, |
2232 { "sub_alignment", MP_CMD_SUB_ALIGNMENT, 1, 0, -1, MSGTR_SubAlignStatus }, | |
2233 { "sub_delay", MP_CMD_SUB_DELAY, 0, 0, OSD_MSG_SUB_DELAY, MSGTR_SubDelayStatus }, | |
2234 { "sub_visibility", MP_CMD_SUB_VISIBILITY, 1, 0, -1, MSGTR_SubVisibleStatus }, | |
2235 { "sub_forced_only", MP_CMD_SUB_FORCED_ONLY, 1, 0, -1, MSGTR_SubForcedOnlyStatus }, | |
27393 | 2236 #ifdef CONFIG_FREETYPE |
23725 | 2237 { "sub_scale", MP_CMD_SUB_SCALE, 0, 0, -1, MSGTR_SubScale}, |
23740 | 2238 #endif |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
27069
diff
changeset
|
2239 #ifdef CONFIG_ASS |
25814
4ba9b9bdf123
Add ass_use_margins command and property to shift subtitles to margins and back
eugeni
parents:
25717
diff
changeset
|
2240 { "ass_use_margins", MP_CMD_ASS_USE_MARGINS, 1, 0, -1, NULL }, |
4ba9b9bdf123
Add ass_use_margins command and property to shift subtitles to margins and back
eugeni
parents:
25717
diff
changeset
|
2241 #endif |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
27069
diff
changeset
|
2242 #ifdef CONFIG_TV |
22478 | 2243 { "tv_brightness", MP_CMD_TV_SET_BRIGHTNESS, 0, OSD_BRIGHTNESS, -1, MSGTR_Brightness }, |
2244 { "tv_hue", MP_CMD_TV_SET_HUE, 0, OSD_HUE, -1, MSGTR_Hue }, | |
2245 { "tv_saturation", MP_CMD_TV_SET_SATURATION, 0, OSD_SATURATION, -1, MSGTR_Saturation }, | |
2246 { "tv_contrast", MP_CMD_TV_SET_CONTRAST, 0, OSD_CONTRAST, -1, MSGTR_Contrast }, | |
2247 #endif | |
2248 { NULL, 0, 0, 0, -1, NULL } | |
2249 }; | |
2250 | |
2251 | |
2252 /// Handle commands that set a property. | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2253 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
|
2254 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2255 int i, r; |
23393
a5e55cb59bbc
Rework the property API to allow sub properties such as
albeu
parents:
23259
diff
changeset
|
2256 m_option_t* prop; |
a5e55cb59bbc
Rework the property API to allow sub properties such as
albeu
parents:
23259
diff
changeset
|
2257 const char *pname; |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2258 |
22478 | 2259 // look for the command |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2260 for (i = 0; set_prop_cmd[i].name; i++) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2261 if (set_prop_cmd[i].cmd == cmd->id) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2262 break; |
23393
a5e55cb59bbc
Rework the property API to allow sub properties such as
albeu
parents:
23259
diff
changeset
|
2263 if (!(pname = set_prop_cmd[i].name)) |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2264 return 0; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2265 |
23393
a5e55cb59bbc
Rework the property API to allow sub properties such as
albeu
parents:
23259
diff
changeset
|
2266 if (mp_property_do(pname,M_PROPERTY_GET_TYPE,&prop,mpctx) <= 0 || !prop) |
a5e55cb59bbc
Rework the property API to allow sub properties such as
albeu
parents:
23259
diff
changeset
|
2267 return 0; |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2268 |
22478 | 2269 // toggle command |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2270 if (set_prop_cmd[i].toggle) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2271 // set to value |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2272 if (cmd->nargs > 0 && cmd->args[0].v.i >= prop->min) |
23393
a5e55cb59bbc
Rework the property API to allow sub properties such as
albeu
parents:
23259
diff
changeset
|
2273 r = mp_property_do(pname, M_PROPERTY_SET, &cmd->args[0].v.i, mpctx); |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2274 else |
23393
a5e55cb59bbc
Rework the property API to allow sub properties such as
albeu
parents:
23259
diff
changeset
|
2275 r = mp_property_do(pname, M_PROPERTY_STEP_UP, NULL, mpctx); |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2276 } else if (cmd->args[1].v.i) //set |
23393
a5e55cb59bbc
Rework the property API to allow sub properties such as
albeu
parents:
23259
diff
changeset
|
2277 r = mp_property_do(pname, M_PROPERTY_SET, &cmd->args[0].v, mpctx); |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2278 else // adjust |
23393
a5e55cb59bbc
Rework the property API to allow sub properties such as
albeu
parents:
23259
diff
changeset
|
2279 r = mp_property_do(pname, M_PROPERTY_STEP_UP, &cmd->args[0].v, mpctx); |
22479
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 if (r <= 0) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2282 return 1; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2283 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2284 if (set_prop_cmd[i].osd_progbar) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2285 if (prop->type == CONF_TYPE_INT) { |
23393
a5e55cb59bbc
Rework the property API to allow sub properties such as
albeu
parents:
23259
diff
changeset
|
2286 if (mp_property_do(pname, M_PROPERTY_GET, &r, mpctx) > 0) |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2287 set_osd_bar(set_prop_cmd[i].osd_progbar, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2288 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
|
2289 } else if (prop->type == CONF_TYPE_FLOAT) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2290 float f; |
23393
a5e55cb59bbc
Rework the property API to allow sub properties such as
albeu
parents:
23259
diff
changeset
|
2291 if (mp_property_do(pname, M_PROPERTY_GET, &f, mpctx) > 0) |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2292 set_osd_bar(set_prop_cmd[i].osd_progbar, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2293 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
|
2294 } else |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2295 mp_msg(MSGT_CPLAYER, MSGL_ERR, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2296 "Property use an unsupported type.\n"); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2297 return 1; |
22478 | 2298 } |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2299 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2300 if (set_prop_cmd[i].osd_msg) { |
23393
a5e55cb59bbc
Rework the property API to allow sub properties such as
albeu
parents:
23259
diff
changeset
|
2301 char *val = mp_property_print(pname, mpctx); |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2302 if (val) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2303 set_osd_msg(set_prop_cmd[i].osd_id >= |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2304 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
|
2305 1, osd_duration, set_prop_cmd[i].osd_msg, val); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2306 free(val); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2307 } |
22478 | 2308 } |
2309 return 1; | |
2310 } | |
2311 | |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
27069
diff
changeset
|
2312 #ifdef CONFIG_DVDNAV |
27068 | 2313 static const struct { |
2314 const char *name; | |
2315 const mp_command_type cmd; | |
2316 } mp_dvdnav_bindings[] = { | |
2317 { "up", MP_CMD_DVDNAV_UP }, | |
2318 { "down", MP_CMD_DVDNAV_DOWN }, | |
2319 { "left", MP_CMD_DVDNAV_LEFT }, | |
2320 { "right", MP_CMD_DVDNAV_RIGHT }, | |
2321 { "menu", MP_CMD_DVDNAV_MENU }, | |
2322 { "select", MP_CMD_DVDNAV_SELECT }, | |
2323 { "prev", MP_CMD_DVDNAV_PREVMENU }, | |
2324 { "mouse", MP_CMD_DVDNAV_MOUSECLICK }, | |
27069
1a6930933140
Keep old dvdnav sub-command options for a while in order
ben
parents:
27068
diff
changeset
|
2325 |
1a6930933140
Keep old dvdnav sub-command options for a while in order
ben
parents:
27068
diff
changeset
|
2326 /* |
1a6930933140
Keep old dvdnav sub-command options for a while in order
ben
parents:
27068
diff
changeset
|
2327 * keep old dvdnav sub-command options for a while in order not to |
1a6930933140
Keep old dvdnav sub-command options for a while in order
ben
parents:
27068
diff
changeset
|
2328 * break slave-mode API too suddenly. |
1a6930933140
Keep old dvdnav sub-command options for a while in order
ben
parents:
27068
diff
changeset
|
2329 */ |
1a6930933140
Keep old dvdnav sub-command options for a while in order
ben
parents:
27068
diff
changeset
|
2330 { "1", MP_CMD_DVDNAV_UP }, |
1a6930933140
Keep old dvdnav sub-command options for a while in order
ben
parents:
27068
diff
changeset
|
2331 { "2", MP_CMD_DVDNAV_DOWN }, |
1a6930933140
Keep old dvdnav sub-command options for a while in order
ben
parents:
27068
diff
changeset
|
2332 { "3", MP_CMD_DVDNAV_LEFT }, |
1a6930933140
Keep old dvdnav sub-command options for a while in order
ben
parents:
27068
diff
changeset
|
2333 { "4", MP_CMD_DVDNAV_RIGHT }, |
1a6930933140
Keep old dvdnav sub-command options for a while in order
ben
parents:
27068
diff
changeset
|
2334 { "5", MP_CMD_DVDNAV_MENU }, |
1a6930933140
Keep old dvdnav sub-command options for a while in order
ben
parents:
27068
diff
changeset
|
2335 { "6", MP_CMD_DVDNAV_SELECT }, |
1a6930933140
Keep old dvdnav sub-command options for a while in order
ben
parents:
27068
diff
changeset
|
2336 { "7", MP_CMD_DVDNAV_PREVMENU }, |
1a6930933140
Keep old dvdnav sub-command options for a while in order
ben
parents:
27068
diff
changeset
|
2337 { "8", MP_CMD_DVDNAV_MOUSECLICK }, |
27068 | 2338 { NULL, 0 } |
2339 }; | |
2340 #endif | |
22478 | 2341 |
2342 int run_command(MPContext * mpctx, mp_cmd_t * cmd) | |
2343 { | |
2344 sh_audio_t * const sh_audio = mpctx->sh_audio; | |
2345 sh_video_t * const sh_video = mpctx->sh_video; | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2346 int brk_cmd = 0; |
22478 | 2347 if (!set_property_command(mpctx, cmd)) |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2348 switch (cmd->id) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2349 case MP_CMD_SEEK:{ |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2350 float v; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2351 int abs; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2352 if (sh_video) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2353 mpctx->osd_show_percentage = sh_video->fps; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2354 v = cmd->args[0].v.f; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2355 abs = (cmd->nargs > 1) ? cmd->args[1].v.i : 0; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2356 if (abs == 2) { /* Absolute seek to a specific timestamp in seconds */ |
25884
f6697d25b040
More places that should use SEEK_ABSOLUTE / SEEK_FACTOR
reimar
parents:
25878
diff
changeset
|
2357 abs_seek_pos = SEEK_ABSOLUTE; |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2358 if (sh_video) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2359 mpctx->osd_function = |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2360 (v > sh_video->pts) ? OSD_FFW : OSD_REW; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2361 rel_seek_secs = v; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2362 } else if (abs) { /* Absolute seek by percentage */ |
25884
f6697d25b040
More places that should use SEEK_ABSOLUTE / SEEK_FACTOR
reimar
parents:
25878
diff
changeset
|
2363 abs_seek_pos = SEEK_ABSOLUTE | SEEK_FACTOR; |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2364 if (sh_video) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2365 mpctx->osd_function = OSD_FFW; // Direction isn't set correctly |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2366 rel_seek_secs = v / 100.0; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2367 } else { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2368 rel_seek_secs += v; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2369 mpctx->osd_function = (v > 0) ? OSD_FFW : OSD_REW; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2370 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2371 brk_cmd = 1; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2372 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2373 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2374 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2375 case MP_CMD_SET_PROPERTY:{ |
23393
a5e55cb59bbc
Rework the property API to allow sub properties such as
albeu
parents:
23259
diff
changeset
|
2376 int r = mp_property_do(cmd->args[0].v.s, M_PROPERTY_PARSE, |
a5e55cb59bbc
Rework the property API to allow sub properties such as
albeu
parents:
23259
diff
changeset
|
2377 cmd->args[1].v.s, mpctx); |
a5e55cb59bbc
Rework the property API to allow sub properties such as
albeu
parents:
23259
diff
changeset
|
2378 if (r == M_PROPERTY_UNKNOWN) |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2379 mp_msg(MSGT_CPLAYER, MSGL_WARN, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2380 "Unknown property: '%s'\n", cmd->args[0].v.s); |
23393
a5e55cb59bbc
Rework the property API to allow sub properties such as
albeu
parents:
23259
diff
changeset
|
2381 else if (r <= 0) |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2382 mp_msg(MSGT_CPLAYER, MSGL_WARN, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2383 "Failed to set property '%s' to '%s'.\n", |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2384 cmd->args[0].v.s, cmd->args[1].v.s); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2385 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2386 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2387 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2388 case MP_CMD_STEP_PROPERTY:{ |
23411
07741c30e64c
Fix the step_property coammand to correctly handle the step size with
albeu
parents:
23396
diff
changeset
|
2389 void* arg = NULL; |
07741c30e64c
Fix the step_property coammand to correctly handle the step size with
albeu
parents:
23396
diff
changeset
|
2390 int r,i; |
07741c30e64c
Fix the step_property coammand to correctly handle the step size with
albeu
parents:
23396
diff
changeset
|
2391 double d; |
07741c30e64c
Fix the step_property coammand to correctly handle the step size with
albeu
parents:
23396
diff
changeset
|
2392 off_t o; |
07741c30e64c
Fix the step_property coammand to correctly handle the step size with
albeu
parents:
23396
diff
changeset
|
2393 if (cmd->args[1].v.f) { |
07741c30e64c
Fix the step_property coammand to correctly handle the step size with
albeu
parents:
23396
diff
changeset
|
2394 m_option_t* prop; |
07741c30e64c
Fix the step_property coammand to correctly handle the step size with
albeu
parents:
23396
diff
changeset
|
2395 if((r = mp_property_do(cmd->args[0].v.s, |
07741c30e64c
Fix the step_property coammand to correctly handle the step size with
albeu
parents:
23396
diff
changeset
|
2396 M_PROPERTY_GET_TYPE, |
07741c30e64c
Fix the step_property coammand to correctly handle the step size with
albeu
parents:
23396
diff
changeset
|
2397 &prop, mpctx)) <= 0) |
07741c30e64c
Fix the step_property coammand to correctly handle the step size with
albeu
parents:
23396
diff
changeset
|
2398 goto step_prop_err; |
07741c30e64c
Fix the step_property coammand to correctly handle the step size with
albeu
parents:
23396
diff
changeset
|
2399 if(prop->type == CONF_TYPE_INT || |
07741c30e64c
Fix the step_property coammand to correctly handle the step size with
albeu
parents:
23396
diff
changeset
|
2400 prop->type == CONF_TYPE_FLAG) |
07741c30e64c
Fix the step_property coammand to correctly handle the step size with
albeu
parents:
23396
diff
changeset
|
2401 i = cmd->args[1].v.f, arg = &i; |
07741c30e64c
Fix the step_property coammand to correctly handle the step size with
albeu
parents:
23396
diff
changeset
|
2402 else if(prop->type == CONF_TYPE_FLOAT) |
07741c30e64c
Fix the step_property coammand to correctly handle the step size with
albeu
parents:
23396
diff
changeset
|
2403 arg = &cmd->args[1].v.f; |
07741c30e64c
Fix the step_property coammand to correctly handle the step size with
albeu
parents:
23396
diff
changeset
|
2404 else if(prop->type == CONF_TYPE_DOUBLE || |
07741c30e64c
Fix the step_property coammand to correctly handle the step size with
albeu
parents:
23396
diff
changeset
|
2405 prop->type == CONF_TYPE_TIME) |
07741c30e64c
Fix the step_property coammand to correctly handle the step size with
albeu
parents:
23396
diff
changeset
|
2406 d = cmd->args[1].v.f, arg = &d; |
07741c30e64c
Fix the step_property coammand to correctly handle the step size with
albeu
parents:
23396
diff
changeset
|
2407 else if(prop->type == CONF_TYPE_POSITION) |
07741c30e64c
Fix the step_property coammand to correctly handle the step size with
albeu
parents:
23396
diff
changeset
|
2408 o = cmd->args[1].v.f, arg = &o; |
07741c30e64c
Fix the step_property coammand to correctly handle the step size with
albeu
parents:
23396
diff
changeset
|
2409 else |
07741c30e64c
Fix the step_property coammand to correctly handle the step size with
albeu
parents:
23396
diff
changeset
|
2410 mp_msg(MSGT_CPLAYER, MSGL_WARN, |
07741c30e64c
Fix the step_property coammand to correctly handle the step size with
albeu
parents:
23396
diff
changeset
|
2411 "Ignoring step size stepping property '%s'.\n", |
07741c30e64c
Fix the step_property coammand to correctly handle the step size with
albeu
parents:
23396
diff
changeset
|
2412 cmd->args[0].v.s); |
07741c30e64c
Fix the step_property coammand to correctly handle the step size with
albeu
parents:
23396
diff
changeset
|
2413 } |
07741c30e64c
Fix the step_property coammand to correctly handle the step size with
albeu
parents:
23396
diff
changeset
|
2414 r = mp_property_do(cmd->args[0].v.s, |
23412
f6c225ffe60d
Allow setting the direction in the step_property command.
albeu
parents:
23411
diff
changeset
|
2415 cmd->args[2].v.i < 0 ? |
f6c225ffe60d
Allow setting the direction in the step_property command.
albeu
parents:
23411
diff
changeset
|
2416 M_PROPERTY_STEP_DOWN : M_PROPERTY_STEP_UP, |
23411
07741c30e64c
Fix the step_property coammand to correctly handle the step size with
albeu
parents:
23396
diff
changeset
|
2417 arg, mpctx); |
07741c30e64c
Fix the step_property coammand to correctly handle the step size with
albeu
parents:
23396
diff
changeset
|
2418 step_prop_err: |
23393
a5e55cb59bbc
Rework the property API to allow sub properties such as
albeu
parents:
23259
diff
changeset
|
2419 if (r == M_PROPERTY_UNKNOWN) |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2420 mp_msg(MSGT_CPLAYER, MSGL_WARN, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2421 "Unknown property: '%s'\n", cmd->args[0].v.s); |
23393
a5e55cb59bbc
Rework the property API to allow sub properties such as
albeu
parents:
23259
diff
changeset
|
2422 else if (r <= 0) |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2423 mp_msg(MSGT_CPLAYER, MSGL_WARN, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2424 "Failed to increment property '%s' by %f.\n", |
23411
07741c30e64c
Fix the step_property coammand to correctly handle the step size with
albeu
parents:
23396
diff
changeset
|
2425 cmd->args[0].v.s, cmd->args[1].v.f); |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2426 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2427 break; |
22478 | 2428 |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2429 case MP_CMD_GET_PROPERTY:{ |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2430 char *tmp; |
23393
a5e55cb59bbc
Rework the property API to allow sub properties such as
albeu
parents:
23259
diff
changeset
|
2431 if (mp_property_do(cmd->args[0].v.s, M_PROPERTY_TO_STRING, |
a5e55cb59bbc
Rework the property API to allow sub properties such as
albeu
parents:
23259
diff
changeset
|
2432 &tmp, mpctx) <= 0) { |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2433 mp_msg(MSGT_CPLAYER, MSGL_WARN, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2434 "Failed to get value of property '%s'.\n", |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2435 cmd->args[0].v.s); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2436 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2437 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2438 mp_msg(MSGT_GLOBAL, MSGL_INFO, "ANS_%s=%s\n", |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2439 cmd->args[0].v.s, tmp); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2440 free(tmp); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2441 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2442 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2443 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2444 case MP_CMD_EDL_MARK: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2445 if (edl_fd) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2446 float v = sh_video ? sh_video->pts : |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2447 playing_audio_pts(sh_audio, mpctx->d_audio, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2448 mpctx->audio_out); |
22478 | 2449 |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2450 if (mpctx->begin_skip == MP_NOPTS_VALUE) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2451 mpctx->begin_skip = v; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2452 mp_msg(MSGT_CPLAYER, MSGL_INFO, MSGTR_EdloutStartSkip); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2453 } else { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2454 if (mpctx->begin_skip > v) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2455 mp_msg(MSGT_CPLAYER, MSGL_WARN, MSGTR_EdloutBadStop); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2456 else { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2457 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
|
2458 mp_msg(MSGT_CPLAYER, MSGL_INFO, MSGTR_EdloutEndSkip); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2459 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2460 mpctx->begin_skip = MP_NOPTS_VALUE; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2461 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2462 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2463 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2464 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2465 case MP_CMD_SWITCH_RATIO: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2466 if (cmd->nargs == 0 || cmd->args[0].v.f == -1) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2467 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
|
2468 else |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2469 movie_aspect = cmd->args[0].v.f; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2470 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
|
2471 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2472 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2473 case MP_CMD_SPEED_INCR:{ |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2474 float v = cmd->args[0].v.f; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2475 playback_speed += v; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2476 build_afilter_chain(sh_audio, &ao_data); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2477 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
|
2478 playback_speed); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2479 } break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2480 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2481 case MP_CMD_SPEED_MULT:{ |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2482 float v = cmd->args[0].v.f; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2483 playback_speed *= v; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2484 build_afilter_chain(sh_audio, &ao_data); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2485 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
|
2486 playback_speed); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2487 } break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2488 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2489 case MP_CMD_SPEED_SET:{ |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2490 float v = cmd->args[0].v.f; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2491 playback_speed = v; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2492 build_afilter_chain(sh_audio, &ao_data); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2493 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
|
2494 playback_speed); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2495 } break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2496 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2497 case MP_CMD_FRAME_STEP: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2498 case MP_CMD_PAUSE: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2499 cmd->pausing = 1; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2500 brk_cmd = 1; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2501 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2502 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2503 case MP_CMD_FILE_FILTER: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2504 file_filter = cmd->args[0].v.i; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2505 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2506 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2507 case MP_CMD_QUIT: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2508 exit_player_with_rc(MSGTR_Exit_quit, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2509 (cmd->nargs > 0) ? cmd->args[0].v.i : 0); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2510 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2511 case MP_CMD_PLAY_TREE_STEP:{ |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2512 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
|
2513 int force = cmd->args[1].v.i; |
22478 | 2514 |
27343 | 2515 #ifdef CONFIG_GUI |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2516 if (use_gui) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2517 int i = 0; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2518 if (n > 0) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2519 for (i = 0; i < n; i++) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2520 mplNext(); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2521 else |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2522 for (i = 0; i < -1 * n; i++) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2523 mplPrev(); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2524 } else |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2525 #endif |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2526 { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2527 if (!force && mpctx->playtree_iter) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2528 play_tree_iter_t *i = |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2529 play_tree_iter_new_copy(mpctx->playtree_iter); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2530 if (play_tree_iter_step(i, n, 0) == |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2531 PLAY_TREE_ITER_ENTRY) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2532 mpctx->eof = |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2533 (n > 0) ? PT_NEXT_ENTRY : PT_PREV_ENTRY; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2534 play_tree_iter_free(i); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2535 } else |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2536 mpctx->eof = (n > 0) ? PT_NEXT_ENTRY : PT_PREV_ENTRY; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2537 if (mpctx->eof) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2538 mpctx->play_tree_step = n; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2539 brk_cmd = 1; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2540 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2541 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2542 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2543 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2544 case MP_CMD_PLAY_TREE_UP_STEP:{ |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2545 int n = cmd->args[0].v.i > 0 ? 1 : -1; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2546 int force = cmd->args[1].v.i; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2547 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2548 if (!force && mpctx->playtree_iter) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2549 play_tree_iter_t *i = |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2550 play_tree_iter_new_copy(mpctx->playtree_iter); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2551 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
|
2552 mpctx->eof = (n > 0) ? PT_UP_NEXT : PT_UP_PREV; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2553 play_tree_iter_free(i); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2554 } else |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2555 mpctx->eof = (n > 0) ? PT_UP_NEXT : PT_UP_PREV; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2556 brk_cmd = 1; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2557 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2558 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2559 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2560 case MP_CMD_PLAY_ALT_SRC_STEP: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2561 if (mpctx->playtree_iter && mpctx->playtree_iter->num_files > 1) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2562 int v = cmd->args[0].v.i; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2563 if (v > 0 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2564 && mpctx->playtree_iter->file < |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2565 mpctx->playtree_iter->num_files) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2566 mpctx->eof = PT_NEXT_SRC; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2567 else if (v < 0 && mpctx->playtree_iter->file > 1) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2568 mpctx->eof = PT_PREV_SRC; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2569 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2570 brk_cmd = 1; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2571 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2572 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2573 case MP_CMD_SUB_STEP: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2574 if (sh_video) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2575 int movement = cmd->args[0].v.i; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2576 step_sub(subdata, sh_video->pts, movement); |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
27069
diff
changeset
|
2577 #ifdef CONFIG_ASS |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2578 if (ass_track) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2579 sub_delay += |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2580 ass_step_sub(ass_track, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2581 (sh_video->pts + |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2582 sub_delay) * 1000 + .5, movement) / 1000.; |
22478 | 2583 #endif |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2584 set_osd_msg(OSD_MSG_SUB_DELAY, 1, osd_duration, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2585 MSGTR_OSDSubDelay, ROUND(sub_delay * 1000)); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2586 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2587 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2588 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2589 case MP_CMD_SUB_LOG: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2590 log_sub(); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2591 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2592 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2593 case MP_CMD_OSD:{ |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2594 int v = cmd->args[0].v.i; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2595 int max = (term_osd |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2596 && !sh_video) ? MAX_TERM_OSD_LEVEL : MAX_OSD_LEVEL; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2597 if (osd_level > max) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2598 osd_level = max; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2599 if (v < 0) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2600 osd_level = (osd_level + 1) % (max + 1); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2601 else |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2602 osd_level = v > max ? max : v; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2603 /* Show OSD state when disabled, but not when an explicit |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2604 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
|
2605 if (v == -1 && osd_level <= 1) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2606 set_osd_msg(OSD_MSG_OSD_STATUS, 0, osd_duration, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2607 MSGTR_OSDosd, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2608 osd_level ? MSGTR_OSDenabled : |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2609 MSGTR_OSDdisabled); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2610 else |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2611 rm_osd_msg(OSD_MSG_OSD_STATUS); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2612 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2613 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2614 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2615 case MP_CMD_OSD_SHOW_TEXT: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2616 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
|
2617 (cmd->args[1].v.i < |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2618 0 ? osd_duration : cmd->args[1].v.i), |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2619 "%-.63s", cmd->args[0].v.s); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2620 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2621 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2622 case MP_CMD_OSD_SHOW_PROPERTY_TEXT:{ |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2623 char *txt = m_properties_expand_string(mp_properties, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2624 cmd->args[0].v.s, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2625 mpctx); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2626 /* 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
|
2627 if (txt) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2628 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
|
2629 (cmd->args[1].v.i < |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2630 0 ? osd_duration : cmd->args[1].v.i), |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2631 "%-.63s", txt); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2632 free(txt); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2633 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2634 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2635 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2636 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2637 case MP_CMD_LOADFILE:{ |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2638 play_tree_t *e = play_tree_new(); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2639 play_tree_add_file(e, cmd->args[0].v.s); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2640 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2641 if (cmd->args[1].v.i) // append |
27649
1eee249e519d
mpctx->playtree is a node, files can not be directly appended to it,
reimar
parents:
27648
diff
changeset
|
2642 play_tree_append_entry(mpctx->playtree->child, e); |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2643 else { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2644 // Go back to the starting point. |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2645 while (play_tree_iter_up_step |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2646 (mpctx->playtree_iter, 0, 1) != PLAY_TREE_ITER_END) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2647 /* NOP */ ; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2648 play_tree_free_list(mpctx->playtree->child, 1); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2649 play_tree_set_child(mpctx->playtree, e); |
27650
99838ea34e55
Use the existing pt_iter_goto_head function instead of reimplementing it
reimar
parents:
27649
diff
changeset
|
2650 pt_iter_goto_head(mpctx->playtree_iter); |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2651 mpctx->eof = PT_NEXT_SRC; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2652 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2653 brk_cmd = 1; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2654 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2655 break; |
22478 | 2656 |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2657 case MP_CMD_LOADLIST:{ |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2658 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
|
2659 if (!e) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2660 mp_msg(MSGT_CPLAYER, MSGL_ERR, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2661 MSGTR_PlaylistLoadUnable, cmd->args[0].v.s); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2662 else { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2663 if (cmd->args[1].v.i) // append |
27649
1eee249e519d
mpctx->playtree is a node, files can not be directly appended to it,
reimar
parents:
27648
diff
changeset
|
2664 play_tree_append_entry(mpctx->playtree->child, e); |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2665 else { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2666 // Go back to the starting point. |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2667 while (play_tree_iter_up_step |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2668 (mpctx->playtree_iter, 0, 1) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2669 != PLAY_TREE_ITER_END) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2670 /* NOP */ ; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2671 play_tree_free_list(mpctx->playtree->child, 1); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2672 play_tree_set_child(mpctx->playtree, e); |
27650
99838ea34e55
Use the existing pt_iter_goto_head function instead of reimplementing it
reimar
parents:
27649
diff
changeset
|
2673 pt_iter_goto_head(mpctx->playtree_iter); |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2674 mpctx->eof = PT_NEXT_SRC; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2675 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2676 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2677 brk_cmd = 1; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2678 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2679 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2680 |
26877 | 2681 case MP_CMD_STOP: |
27392
f28981b3f233
Fix wrong behavior with slave command by going back to the starting point
ben
parents:
27383
diff
changeset
|
2682 // Go back to the starting point. |
f28981b3f233
Fix wrong behavior with slave command by going back to the starting point
ben
parents:
27383
diff
changeset
|
2683 while (play_tree_iter_up_step |
f28981b3f233
Fix wrong behavior with slave command by going back to the starting point
ben
parents:
27383
diff
changeset
|
2684 (mpctx->playtree_iter, 0, 1) != PLAY_TREE_ITER_END) |
f28981b3f233
Fix wrong behavior with slave command by going back to the starting point
ben
parents:
27383
diff
changeset
|
2685 /* NOP */ ; |
26877 | 2686 mpctx->eof = PT_STOP; |
2687 brk_cmd = 1; | |
2688 break; | |
2689 | |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
27069
diff
changeset
|
2690 #ifdef CONFIG_RADIO |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2691 case MP_CMD_RADIO_STEP_CHANNEL: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2692 if (mpctx->demuxer->stream->type == STREAMTYPE_RADIO) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2693 int v = cmd->args[0].v.i; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2694 if (v > 0) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2695 radio_step_channel(mpctx->demuxer->stream, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2696 RADIO_CHANNEL_HIGHER); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2697 else |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2698 radio_step_channel(mpctx->demuxer->stream, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2699 RADIO_CHANNEL_LOWER); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2700 if (radio_get_channel_name(mpctx->demuxer->stream)) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2701 set_osd_msg(OSD_MSG_RADIO_CHANNEL, 1, osd_duration, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2702 MSGTR_OSDChannel, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2703 radio_get_channel_name(mpctx->demuxer->stream)); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2704 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2705 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2706 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2707 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2708 case MP_CMD_RADIO_SET_CHANNEL: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2709 if (mpctx->demuxer->stream->type == STREAMTYPE_RADIO) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2710 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
|
2711 if (radio_get_channel_name(mpctx->demuxer->stream)) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2712 set_osd_msg(OSD_MSG_RADIO_CHANNEL, 1, osd_duration, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2713 MSGTR_OSDChannel, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2714 radio_get_channel_name(mpctx->demuxer->stream)); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2715 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2716 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2717 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2718 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2719 case MP_CMD_RADIO_SET_FREQ: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2720 if (mpctx->demuxer->stream->type == STREAMTYPE_RADIO) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2721 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
|
2722 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2723 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2724 case MP_CMD_RADIO_STEP_FREQ: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2725 if (mpctx->demuxer->stream->type == STREAMTYPE_RADIO) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2726 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
|
2727 break; |
22478 | 2728 #endif |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2729 |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
27069
diff
changeset
|
2730 #ifdef CONFIG_TV |
24105
9e71e0345c35
Automatic TV channels scanning ability for MPlayer.
voroshil
parents:
23900
diff
changeset
|
2731 case MP_CMD_TV_START_SCAN: |
9e71e0345c35
Automatic TV channels scanning ability for MPlayer.
voroshil
parents:
23900
diff
changeset
|
2732 if (mpctx->file_format == DEMUXER_TYPE_TV) |
9e71e0345c35
Automatic TV channels scanning ability for MPlayer.
voroshil
parents:
23900
diff
changeset
|
2733 tv_start_scan((tvi_handle_t *) (mpctx->demuxer->priv),1); |
9e71e0345c35
Automatic TV channels scanning ability for MPlayer.
voroshil
parents:
23900
diff
changeset
|
2734 break; |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2735 case MP_CMD_TV_SET_FREQ: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2736 if (mpctx->file_format == DEMUXER_TYPE_TV) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2737 tv_set_freq((tvi_handle_t *) (mpctx->demuxer->priv), |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2738 cmd->args[0].v.f * 16.0); |
27370
14c5017f40d2
Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents:
27345
diff
changeset
|
2739 #ifdef CONFIG_PVR |
23258
1d86fb12e4ae
cosmetic: use K&R coding style, as in reste of the file
ben
parents:
23244
diff
changeset
|
2740 else if (mpctx->stream && mpctx->stream->type == STREAMTYPE_PVR) { |
23244
e5e8ac0bd7fc
support for PVR channel navigation (patch by Sven Gothel <sgothel at jausoft dot com>)
ben
parents:
23077
diff
changeset
|
2741 pvr_set_freq (mpctx->stream, ROUND (cmd->args[0].v.f)); |
e5e8ac0bd7fc
support for PVR channel navigation (patch by Sven Gothel <sgothel at jausoft dot com>)
ben
parents:
23077
diff
changeset
|
2742 set_osd_msg (OSD_MSG_TV_CHANNEL, 1, osd_duration, "%s: %s", |
e5e8ac0bd7fc
support for PVR channel navigation (patch by Sven Gothel <sgothel at jausoft dot com>)
ben
parents:
23077
diff
changeset
|
2743 pvr_get_current_channelname (mpctx->stream), |
e5e8ac0bd7fc
support for PVR channel navigation (patch by Sven Gothel <sgothel at jausoft dot com>)
ben
parents:
23077
diff
changeset
|
2744 pvr_get_current_stationname (mpctx->stream)); |
23259 | 2745 } |
27370
14c5017f40d2
Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents:
27345
diff
changeset
|
2746 #endif /* CONFIG_PVR */ |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2747 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2748 |
22667 | 2749 case MP_CMD_TV_STEP_FREQ: |
2750 if (mpctx->file_format == DEMUXER_TYPE_TV) | |
2751 tv_step_freq((tvi_handle_t *) (mpctx->demuxer->priv), | |
2752 cmd->args[0].v.f * 16.0); | |
27370
14c5017f40d2
Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents:
27345
diff
changeset
|
2753 #ifdef CONFIG_PVR |
23258
1d86fb12e4ae
cosmetic: use K&R coding style, as in reste of the file
ben
parents:
23244
diff
changeset
|
2754 else if (mpctx->stream && mpctx->stream->type == STREAMTYPE_PVR) { |
23244
e5e8ac0bd7fc
support for PVR channel navigation (patch by Sven Gothel <sgothel at jausoft dot com>)
ben
parents:
23077
diff
changeset
|
2755 pvr_force_freq_step (mpctx->stream, ROUND (cmd->args[0].v.f)); |
e5e8ac0bd7fc
support for PVR channel navigation (patch by Sven Gothel <sgothel at jausoft dot com>)
ben
parents:
23077
diff
changeset
|
2756 set_osd_msg (OSD_MSG_TV_CHANNEL, 1, osd_duration, "%s: f %d", |
e5e8ac0bd7fc
support for PVR channel navigation (patch by Sven Gothel <sgothel at jausoft dot com>)
ben
parents:
23077
diff
changeset
|
2757 pvr_get_current_channelname (mpctx->stream), |
e5e8ac0bd7fc
support for PVR channel navigation (patch by Sven Gothel <sgothel at jausoft dot com>)
ben
parents:
23077
diff
changeset
|
2758 pvr_get_current_frequency (mpctx->stream)); |
e5e8ac0bd7fc
support for PVR channel navigation (patch by Sven Gothel <sgothel at jausoft dot com>)
ben
parents:
23077
diff
changeset
|
2759 } |
27370
14c5017f40d2
Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents:
27345
diff
changeset
|
2760 #endif /* CONFIG_PVR */ |
22667 | 2761 break; |
2762 | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2763 case MP_CMD_TV_SET_NORM: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2764 if (mpctx->file_format == DEMUXER_TYPE_TV) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2765 tv_set_norm((tvi_handle_t *) (mpctx->demuxer->priv), |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2766 cmd->args[0].v.s); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2767 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2768 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2769 case MP_CMD_TV_STEP_CHANNEL:{ |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2770 if (mpctx->file_format == DEMUXER_TYPE_TV) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2771 int v = cmd->args[0].v.i; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2772 if (v > 0) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2773 tv_step_channel((tvi_handle_t *) (mpctx-> |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2774 demuxer->priv), |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2775 TV_CHANNEL_HIGHER); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2776 } else { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2777 tv_step_channel((tvi_handle_t *) (mpctx-> |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2778 demuxer->priv), |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2779 TV_CHANNEL_LOWER); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2780 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2781 if (tv_channel_list) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2782 set_osd_msg(OSD_MSG_TV_CHANNEL, 1, osd_duration, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2783 MSGTR_OSDChannel, tv_channel_current->name); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2784 //vo_osd_changed(OSDTYPE_SUBTITLE); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2785 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2786 } |
27370
14c5017f40d2
Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents:
27345
diff
changeset
|
2787 #ifdef CONFIG_PVR |
23244
e5e8ac0bd7fc
support for PVR channel navigation (patch by Sven Gothel <sgothel at jausoft dot com>)
ben
parents:
23077
diff
changeset
|
2788 else if (mpctx->stream && |
23258
1d86fb12e4ae
cosmetic: use K&R coding style, as in reste of the file
ben
parents:
23244
diff
changeset
|
2789 mpctx->stream->type == STREAMTYPE_PVR) { |
23244
e5e8ac0bd7fc
support for PVR channel navigation (patch by Sven Gothel <sgothel at jausoft dot com>)
ben
parents:
23077
diff
changeset
|
2790 pvr_set_channel_step (mpctx->stream, cmd->args[0].v.i); |
e5e8ac0bd7fc
support for PVR channel navigation (patch by Sven Gothel <sgothel at jausoft dot com>)
ben
parents:
23077
diff
changeset
|
2791 set_osd_msg (OSD_MSG_TV_CHANNEL, 1, osd_duration, "%s: %s", |
e5e8ac0bd7fc
support for PVR channel navigation (patch by Sven Gothel <sgothel at jausoft dot com>)
ben
parents:
23077
diff
changeset
|
2792 pvr_get_current_channelname (mpctx->stream), |
e5e8ac0bd7fc
support for PVR channel navigation (patch by Sven Gothel <sgothel at jausoft dot com>)
ben
parents:
23077
diff
changeset
|
2793 pvr_get_current_stationname (mpctx->stream)); |
e5e8ac0bd7fc
support for PVR channel navigation (patch by Sven Gothel <sgothel at jausoft dot com>)
ben
parents:
23077
diff
changeset
|
2794 } |
27370
14c5017f40d2
Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents:
27345
diff
changeset
|
2795 #endif /* CONFIG_PVR */ |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2796 } |
27370
14c5017f40d2
Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents:
27345
diff
changeset
|
2797 #ifdef CONFIG_DVBIN |
25377
31e0937ebe38
dvb cleanup: call dvb_(set|step)_channel() without dereferencing stream->priv (1000l to me)
nicodvb
parents:
25363
diff
changeset
|
2798 if (mpctx->stream->type == STREAMTYPE_DVB) { |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2799 int dir; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2800 int v = cmd->args[0].v.i; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2801 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2802 mpctx->last_dvb_step = v; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2803 if (v > 0) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2804 dir = DVB_CHANNEL_HIGHER; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2805 else |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2806 dir = DVB_CHANNEL_LOWER; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2807 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2808 |
25377
31e0937ebe38
dvb cleanup: call dvb_(set|step)_channel() without dereferencing stream->priv (1000l to me)
nicodvb
parents:
25363
diff
changeset
|
2809 if (dvb_step_channel(mpctx->stream, dir)) |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2810 mpctx->eof = mpctx->dvbin_reopen = 1; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2811 } |
27370
14c5017f40d2
Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents:
27345
diff
changeset
|
2812 #endif /* CONFIG_DVBIN */ |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2813 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2814 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2815 case MP_CMD_TV_SET_CHANNEL: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2816 if (mpctx->file_format == DEMUXER_TYPE_TV) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2817 tv_set_channel((tvi_handle_t *) (mpctx->demuxer->priv), |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2818 cmd->args[0].v.s); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2819 if (tv_channel_list) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2820 set_osd_msg(OSD_MSG_TV_CHANNEL, 1, osd_duration, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2821 MSGTR_OSDChannel, tv_channel_current->name); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2822 //vo_osd_changed(OSDTYPE_SUBTITLE); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2823 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2824 } |
27370
14c5017f40d2
Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents:
27345
diff
changeset
|
2825 #ifdef CONFIG_PVR |
23258
1d86fb12e4ae
cosmetic: use K&R coding style, as in reste of the file
ben
parents:
23244
diff
changeset
|
2826 else if (mpctx->stream && mpctx->stream->type == STREAMTYPE_PVR) { |
23244
e5e8ac0bd7fc
support for PVR channel navigation (patch by Sven Gothel <sgothel at jausoft dot com>)
ben
parents:
23077
diff
changeset
|
2827 pvr_set_channel (mpctx->stream, cmd->args[0].v.s); |
e5e8ac0bd7fc
support for PVR channel navigation (patch by Sven Gothel <sgothel at jausoft dot com>)
ben
parents:
23077
diff
changeset
|
2828 set_osd_msg (OSD_MSG_TV_CHANNEL, 1, osd_duration, "%s: %s", |
e5e8ac0bd7fc
support for PVR channel navigation (patch by Sven Gothel <sgothel at jausoft dot com>)
ben
parents:
23077
diff
changeset
|
2829 pvr_get_current_channelname (mpctx->stream), |
e5e8ac0bd7fc
support for PVR channel navigation (patch by Sven Gothel <sgothel at jausoft dot com>)
ben
parents:
23077
diff
changeset
|
2830 pvr_get_current_stationname (mpctx->stream)); |
e5e8ac0bd7fc
support for PVR channel navigation (patch by Sven Gothel <sgothel at jausoft dot com>)
ben
parents:
23077
diff
changeset
|
2831 } |
27370
14c5017f40d2
Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents:
27345
diff
changeset
|
2832 #endif /* CONFIG_PVR */ |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2833 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2834 |
27370
14c5017f40d2
Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents:
27345
diff
changeset
|
2835 #ifdef CONFIG_DVBIN |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2836 case MP_CMD_DVB_SET_CHANNEL: |
25377
31e0937ebe38
dvb cleanup: call dvb_(set|step)_channel() without dereferencing stream->priv (1000l to me)
nicodvb
parents:
25363
diff
changeset
|
2837 if (mpctx->stream->type == STREAMTYPE_DVB) { |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2838 mpctx->last_dvb_step = 1; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2839 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2840 if (dvb_set_channel |
25377
31e0937ebe38
dvb cleanup: call dvb_(set|step)_channel() without dereferencing stream->priv (1000l to me)
nicodvb
parents:
25363
diff
changeset
|
2841 (mpctx->stream, cmd->args[1].v.i, cmd->args[0].v.i)) |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2842 mpctx->eof = mpctx->dvbin_reopen = 1; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2843 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2844 break; |
27370
14c5017f40d2
Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents:
27345
diff
changeset
|
2845 #endif /* CONFIG_DVBIN */ |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2846 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2847 case MP_CMD_TV_LAST_CHANNEL: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2848 if (mpctx->file_format == DEMUXER_TYPE_TV) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2849 tv_last_channel((tvi_handle_t *) (mpctx->demuxer->priv)); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2850 if (tv_channel_list) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2851 set_osd_msg(OSD_MSG_TV_CHANNEL, 1, osd_duration, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2852 MSGTR_OSDChannel, tv_channel_current->name); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2853 //vo_osd_changed(OSDTYPE_SUBTITLE); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2854 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2855 } |
27370
14c5017f40d2
Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents:
27345
diff
changeset
|
2856 #ifdef CONFIG_PVR |
23258
1d86fb12e4ae
cosmetic: use K&R coding style, as in reste of the file
ben
parents:
23244
diff
changeset
|
2857 else if (mpctx->stream && mpctx->stream->type == STREAMTYPE_PVR) { |
23244
e5e8ac0bd7fc
support for PVR channel navigation (patch by Sven Gothel <sgothel at jausoft dot com>)
ben
parents:
23077
diff
changeset
|
2858 pvr_set_lastchannel (mpctx->stream); |
e5e8ac0bd7fc
support for PVR channel navigation (patch by Sven Gothel <sgothel at jausoft dot com>)
ben
parents:
23077
diff
changeset
|
2859 set_osd_msg (OSD_MSG_TV_CHANNEL, 1, osd_duration, "%s: %s", |
e5e8ac0bd7fc
support for PVR channel navigation (patch by Sven Gothel <sgothel at jausoft dot com>)
ben
parents:
23077
diff
changeset
|
2860 pvr_get_current_channelname (mpctx->stream), |
e5e8ac0bd7fc
support for PVR channel navigation (patch by Sven Gothel <sgothel at jausoft dot com>)
ben
parents:
23077
diff
changeset
|
2861 pvr_get_current_stationname (mpctx->stream)); |
e5e8ac0bd7fc
support for PVR channel navigation (patch by Sven Gothel <sgothel at jausoft dot com>)
ben
parents:
23077
diff
changeset
|
2862 } |
27370
14c5017f40d2
Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents:
27345
diff
changeset
|
2863 #endif /* CONFIG_PVR */ |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2864 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2865 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2866 case MP_CMD_TV_STEP_NORM: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2867 if (mpctx->file_format == DEMUXER_TYPE_TV) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2868 tv_step_norm((tvi_handle_t *) (mpctx->demuxer->priv)); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2869 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2870 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2871 case MP_CMD_TV_STEP_CHANNEL_LIST: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2872 if (mpctx->file_format == DEMUXER_TYPE_TV) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2873 tv_step_chanlist((tvi_handle_t *) (mpctx->demuxer->priv)); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2874 break; |
27370
14c5017f40d2
Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents:
27345
diff
changeset
|
2875 #ifdef CONFIG_TV_TELETEXT |
23900 | 2876 case MP_CMD_TV_TELETEXT_ADD_DEC: |
2877 { | |
2878 tvi_handle_t* tvh=(tvi_handle_t *)(mpctx->demuxer->priv); | |
2879 if (mpctx->file_format == DEMUXER_TYPE_TV) | |
2880 tvh->functions->control(tvh->priv,TV_VBI_CONTROL_ADD_DEC,&(cmd->args[0].v.s)); | |
2881 break; | |
2882 } | |
24244 | 2883 case MP_CMD_TV_TELETEXT_GO_LINK: |
2884 { | |
2885 tvi_handle_t* tvh=(tvi_handle_t *)(mpctx->demuxer->priv); | |
2886 if (mpctx->file_format == DEMUXER_TYPE_TV) | |
2887 tvh->functions->control(tvh->priv,TV_VBI_CONTROL_GO_LINK,&(cmd->args[0].v.i)); | |
2888 break; | |
2889 } | |
27370
14c5017f40d2
Change a bunch of video/audio-output-specific preprocessor directives from
diego
parents:
27345
diff
changeset
|
2890 #endif /* CONFIG_TV_TELETEXT */ |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
27069
diff
changeset
|
2891 #endif /* CONFIG_TV */ |
22478 | 2892 |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2893 case MP_CMD_SUB_LOAD: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2894 if (sh_video) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2895 int n = mpctx->set_of_sub_size; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2896 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
|
2897 if (n != mpctx->set_of_sub_size) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2898 if (mpctx->global_sub_indices[SUB_SOURCE_SUBS] < 0) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2899 mpctx->global_sub_indices[SUB_SOURCE_SUBS] = |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2900 mpctx->global_sub_size; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2901 ++mpctx->global_sub_size; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2902 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2903 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2904 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2905 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2906 case MP_CMD_SUB_REMOVE: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2907 if (sh_video) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2908 int v = cmd->args[0].v.i; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2909 sub_data *subd; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2910 if (v < 0) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2911 for (v = 0; v < mpctx->set_of_sub_size; ++v) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2912 subd = mpctx->set_of_subtitles[v]; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2913 mp_msg(MSGT_CPLAYER, MSGL_STATUS, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2914 MSGTR_RemovedSubtitleFile, v + 1, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2915 filename_recode(subd->filename)); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2916 sub_free(subd); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2917 mpctx->set_of_subtitles[v] = NULL; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2918 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2919 mpctx->global_sub_indices[SUB_SOURCE_SUBS] = -1; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2920 mpctx->global_sub_size -= mpctx->set_of_sub_size; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2921 mpctx->set_of_sub_size = 0; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2922 if (mpctx->set_of_sub_pos >= 0) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2923 mpctx->global_sub_pos = -2; |
23838
8287ef1758cb
subdata must be set to NULL when the corresponding data was freed.
reimar
parents:
23837
diff
changeset
|
2924 subdata = NULL; |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2925 mp_input_queue_cmd(mp_input_parse_cmd("sub_select")); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2926 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2927 } else if (v < mpctx->set_of_sub_size) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2928 subd = mpctx->set_of_subtitles[v]; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2929 mp_msg(MSGT_CPLAYER, MSGL_STATUS, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2930 MSGTR_RemovedSubtitleFile, v + 1, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2931 filename_recode(subd->filename)); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2932 sub_free(subd); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2933 if (mpctx->set_of_sub_pos == v) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2934 mpctx->global_sub_pos = -2; |
23838
8287ef1758cb
subdata must be set to NULL when the corresponding data was freed.
reimar
parents:
23837
diff
changeset
|
2935 subdata = NULL; |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2936 mp_input_queue_cmd(mp_input_parse_cmd("sub_select")); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2937 } else if (mpctx->set_of_sub_pos > v) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2938 --mpctx->set_of_sub_pos; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2939 --mpctx->global_sub_pos; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2940 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2941 while (++v < mpctx->set_of_sub_size) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2942 mpctx->set_of_subtitles[v - 1] = |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2943 mpctx->set_of_subtitles[v]; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2944 --mpctx->set_of_sub_size; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2945 --mpctx->global_sub_size; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2946 if (mpctx->set_of_sub_size <= 0) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2947 mpctx->global_sub_indices[SUB_SOURCE_SUBS] = -1; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2948 mpctx->set_of_subtitles[mpctx->set_of_sub_size] = NULL; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2949 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2950 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2951 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2952 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2953 case MP_CMD_GET_SUB_VISIBILITY: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2954 if (sh_video) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2955 mp_msg(MSGT_GLOBAL, MSGL_INFO, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2956 "ANS_SUB_VISIBILITY=%d\n", sub_visibility); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2957 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2958 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2959 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2960 case MP_CMD_SCREENSHOT: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2961 if (vo_config_count) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2962 mp_msg(MSGT_CPLAYER, MSGL_INFO, "sending VFCTRL_SCREENSHOT!\n"); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2963 if (CONTROL_OK != |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2964 ((vf_instance_t *) sh_video->vfilter)-> |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2965 control(sh_video->vfilter, VFCTRL_SCREENSHOT, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2966 &cmd->args[0].v.i)) |
25215
5a4fad628819
Remove last remains of long-gone VOCTRL_SCREENSHOT
reimar
parents:
25129
diff
changeset
|
2967 mp_msg(MSGT_CPLAYER, MSGL_INFO, "failed (forgot -vf screenshot?)\n"); |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2968 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2969 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2970 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2971 case MP_CMD_VF_CHANGE_RECTANGLE: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2972 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
|
2973 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2974 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2975 case MP_CMD_GET_TIME_LENGTH:{ |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2976 mp_msg(MSGT_GLOBAL, MSGL_INFO, "ANS_LENGTH=%.2lf\n", |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2977 demuxer_get_time_length(mpctx->demuxer)); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2978 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2979 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2980 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2981 case MP_CMD_GET_FILENAME:{ |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2982 mp_msg(MSGT_GLOBAL, MSGL_INFO, "ANS_FILENAME='%s'\n", |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2983 get_metadata(META_NAME)); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2984 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2985 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2986 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2987 case MP_CMD_GET_VIDEO_CODEC:{ |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2988 char *inf = get_metadata(META_VIDEO_CODEC); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2989 if (!inf) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2990 inf = strdup(""); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2991 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
|
2992 free(inf); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2993 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2994 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2995 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2996 case MP_CMD_GET_VIDEO_BITRATE:{ |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2997 char *inf = get_metadata(META_VIDEO_BITRATE); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2998 if (!inf) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
2999 inf = strdup(""); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3000 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
|
3001 free(inf); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3002 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3003 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3004 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3005 case MP_CMD_GET_VIDEO_RESOLUTION:{ |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3006 char *inf = get_metadata(META_VIDEO_RESOLUTION); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3007 if (!inf) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3008 inf = strdup(""); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3009 mp_msg(MSGT_GLOBAL, MSGL_INFO, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3010 "ANS_VIDEO_RESOLUTION='%s'\n", inf); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3011 free(inf); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3012 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3013 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3014 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3015 case MP_CMD_GET_AUDIO_CODEC:{ |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3016 char *inf = get_metadata(META_AUDIO_CODEC); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3017 if (!inf) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3018 inf = strdup(""); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3019 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
|
3020 free(inf); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3021 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3022 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3023 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3024 case MP_CMD_GET_AUDIO_BITRATE:{ |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3025 char *inf = get_metadata(META_AUDIO_BITRATE); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3026 if (!inf) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3027 inf = strdup(""); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3028 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
|
3029 free(inf); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3030 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3031 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3032 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3033 case MP_CMD_GET_AUDIO_SAMPLES:{ |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3034 char *inf = get_metadata(META_AUDIO_SAMPLES); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3035 if (!inf) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3036 inf = strdup(""); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3037 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
|
3038 free(inf); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3039 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3040 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3041 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3042 case MP_CMD_GET_META_TITLE:{ |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3043 char *inf = get_metadata(META_INFO_TITLE); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3044 if (!inf) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3045 inf = strdup(""); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3046 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
|
3047 free(inf); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3048 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3049 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3050 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3051 case MP_CMD_GET_META_ARTIST:{ |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3052 char *inf = get_metadata(META_INFO_ARTIST); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3053 if (!inf) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3054 inf = strdup(""); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3055 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
|
3056 free(inf); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3057 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3058 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3059 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3060 case MP_CMD_GET_META_ALBUM:{ |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3061 char *inf = get_metadata(META_INFO_ALBUM); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3062 if (!inf) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3063 inf = strdup(""); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3064 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
|
3065 free(inf); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3066 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3067 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3068 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3069 case MP_CMD_GET_META_YEAR:{ |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3070 char *inf = get_metadata(META_INFO_YEAR); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3071 if (!inf) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3072 inf = strdup(""); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3073 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
|
3074 free(inf); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3075 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3076 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3077 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3078 case MP_CMD_GET_META_COMMENT:{ |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3079 char *inf = get_metadata(META_INFO_COMMENT); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3080 if (!inf) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3081 inf = strdup(""); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3082 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
|
3083 free(inf); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3084 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3085 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3086 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3087 case MP_CMD_GET_META_TRACK:{ |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3088 char *inf = get_metadata(META_INFO_TRACK); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3089 if (!inf) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3090 inf = strdup(""); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3091 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
|
3092 free(inf); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3093 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3094 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3095 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3096 case MP_CMD_GET_META_GENRE:{ |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3097 char *inf = get_metadata(META_INFO_GENRE); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3098 if (!inf) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3099 inf = strdup(""); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3100 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
|
3101 free(inf); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3102 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3103 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3104 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3105 case MP_CMD_GET_VO_FULLSCREEN: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3106 if (mpctx->video_out && vo_config_count) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3107 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
|
3108 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3109 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3110 case MP_CMD_GET_PERCENT_POS: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3111 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
|
3112 demuxer_get_percent_pos(mpctx->demuxer)); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3113 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3114 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3115 case MP_CMD_GET_TIME_POS:{ |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3116 float pos = 0; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3117 if (sh_video) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3118 pos = sh_video->pts; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3119 else if (sh_audio && mpctx->audio_out) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3120 pos = |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3121 playing_audio_pts(sh_audio, mpctx->d_audio, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3122 mpctx->audio_out); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3123 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
|
3124 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3125 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3126 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3127 case MP_CMD_RUN: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3128 #ifndef __MINGW32__ |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3129 if (!fork()) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3130 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
|
3131 exit(0); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3132 } |
22478 | 3133 #endif |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3134 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3135 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3136 case MP_CMD_KEYDOWN_EVENTS: |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3137 mplayer_put_key(cmd->args[0].v.i); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3138 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3139 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3140 case MP_CMD_SET_MOUSE_POS:{ |
24150
2ae4c179ea25
Fix unused variable warning when USE_DVDNAV is not defined.
diego
parents:
24105
diff
changeset
|
3141 int pointer_x, pointer_y; |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3142 double dx, dy; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3143 pointer_x = cmd->args[0].v.i; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3144 pointer_y = cmd->args[1].v.i; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3145 rescale_input_coordinates(pointer_x, pointer_y, &dx, &dy); |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
27069
diff
changeset
|
3146 #ifdef CONFIG_DVDNAV |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3147 if (mpctx->stream->type == STREAMTYPE_DVDNAV |
24163
ca9f239aaeab
Extract a poor int declaration from within the uncouth grip of an if statement
diego
parents:
24162
diff
changeset
|
3148 && dx > 0.0 && dy > 0.0) { |
24154
09006821e9d7
Move button variable into the if () where it is actually used.
diego
parents:
24150
diff
changeset
|
3149 int button = -1; |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3150 pointer_x = (int) (dx * (double) sh_video->disp_w); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3151 pointer_y = (int) (dy * (double) sh_video->disp_h); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3152 mp_dvdnav_update_mouse_pos(mpctx->stream, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3153 pointer_x, pointer_y, &button); |
25887
36bc17c090a6
show dvdnav selection in the OSD only when the osd_level>1; patch by foxcore gmail com
nicodvb
parents:
25884
diff
changeset
|
3154 if (osd_level > 1 && button > 0) |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3155 set_osd_msg(OSD_MSG_TEXT, 1, osd_duration, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3156 "Selected button number %d", button); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3157 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3158 #endif |
27345
b597fd2924b4
Rename preprocessor directive HAVE_MENU --> CONFIG_MENU.
diego
parents:
27343
diff
changeset
|
3159 #ifdef CONFIG_MENU |
25461 | 3160 if (use_menu && dx >= 0.0 && dy >= 0.0) |
3161 menu_update_mouse_pos(dx, dy); | |
3162 #endif | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3163 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3164 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3165 |
27341
e7c989f7a7c9
Start unifying names of internal preprocessor directives.
diego
parents:
27069
diff
changeset
|
3166 #ifdef CONFIG_DVDNAV |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3167 case MP_CMD_DVDNAV:{ |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3168 int button = -1; |
27068 | 3169 int i; |
3170 mp_command_type command = 0; | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3171 if (mpctx->stream->type != STREAMTYPE_DVDNAV) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3172 break; |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3173 |
27068 | 3174 for (i = 0; mp_dvdnav_bindings[i].name; i++) |
3175 if (cmd->args[0].v.s && | |
3176 !strcasecmp (cmd->args[0].v.s, | |
3177 mp_dvdnav_bindings[i].name)) | |
3178 command = mp_dvdnav_bindings[i].cmd; | |
3179 | |
3180 mp_dvdnav_handle_input(mpctx->stream,command,&button); | |
25887
36bc17c090a6
show dvdnav selection in the OSD only when the osd_level>1; patch by foxcore gmail com
nicodvb
parents:
25884
diff
changeset
|
3181 if (osd_level > 1 && button > 0) |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3182 set_osd_msg(OSD_MSG_TEXT, 1, osd_duration, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3183 "Selected button number %d", button); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3184 } |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3185 break; |
25817 | 3186 |
3187 case MP_CMD_SWITCH_TITLE: | |
3188 if (mpctx->stream->type == STREAMTYPE_DVDNAV) | |
3189 mp_dvdnav_switch_title(mpctx->stream, cmd->args[0].v.i); | |
3190 break; | |
3191 | |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3192 #endif |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3193 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3194 default: |
27343 | 3195 #ifdef CONFIG_GUI |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3196 if ((use_gui) && (cmd->id > MP_CMD_GUI_EVENTS)) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3197 guiGetEvent(guiIEvent, (char *) cmd->id); |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3198 else |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3199 #endif |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3200 mp_msg(MSGT_CPLAYER, MSGL_V, |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3201 "Received unknown cmd %s\n", cmd->name); |
22478 | 3202 } |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3203 |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3204 switch (cmd->pausing) { |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3205 case 1: // "pausing" |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3206 mpctx->osd_function = OSD_PAUSE; |
22478 | 3207 break; |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3208 case 3: // "pausing_toggle" |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3209 mpctx->was_paused = !mpctx->was_paused; |
25032
aad0f4a495ab
Fix pausing_toggle not continue play bug when it follows a pause immediately.
ulion
parents:
24244
diff
changeset
|
3210 if (mpctx->was_paused) |
aad0f4a495ab
Fix pausing_toggle not continue play bug when it follows a pause immediately.
ulion
parents:
24244
diff
changeset
|
3211 mpctx->osd_function = OSD_PAUSE; |
aad0f4a495ab
Fix pausing_toggle not continue play bug when it follows a pause immediately.
ulion
parents:
24244
diff
changeset
|
3212 else if (mpctx->osd_function == OSD_PAUSE) |
aad0f4a495ab
Fix pausing_toggle not continue play bug when it follows a pause immediately.
ulion
parents:
24244
diff
changeset
|
3213 mpctx->osd_function = OSD_PLAY; |
aad0f4a495ab
Fix pausing_toggle not continue play bug when it follows a pause immediately.
ulion
parents:
24244
diff
changeset
|
3214 break; |
22479
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3215 case 2: // "pausing_keep" |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3216 if (mpctx->was_paused) |
a99ddf2ece25
Change to match current command.c (same functionality).
uau
parents:
22478
diff
changeset
|
3217 mpctx->osd_function = OSD_PAUSE; |
22478 | 3218 } |
3219 return brk_cmd; | |
3220 } |