summaryrefslogtreecommitdiffstats
path: root/input/input.h
Commit message (Collapse)AuthorAgeFilesLines
* commands: add show_tracks_osd command to display audio and subtitle tracks ↵wm42012-07-281-0/+1
| | | | | | | | | on OSD The command lists the audio and subtitle tracks in the current file on the OSD. It also marks the currently active streams. Video streams are not shown, as files with more than one video stream are exceedingly rare.
* commands: add show_chapters_osd command to display chapters on OSDwm42012-07-281-0/+2
| | | | | | | | The command lists the chapters in the current file on the OSD. It also marks the current chapter. This is actually a cheap replacement for the chapter select libmenu functionality.
* Merge remote-tracking branch 'origin/master'wm42012-04-011-4/+7
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: bstr.c bstr.h etc/input.conf input/input.c input/input.h libao2/ao_pulse.c libmpcodecs/vf_ass.c libmpcodecs/vf_vo.c libvo/gl_common.c libvo/x11_common.c mixer.c mixer.h mplayer.c
| * ao_pulse, core: make pulse thread wake up core for more dataUoti Urpala2012-03-261-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For ao_pulse, the current latency is not a good indicator of how soon the AO requires new data to avoid underflow. Add an internal pipe that can be used to wake up the input loop from select(), and make the pulseaudio main loop (which runs in a separate thread) use this mechanism when pulse requests more data. The wakeup signal currently contains no information about the reason for the wakup, but audio buffers are always filled when the event loop wakes up. Also, request a latency of 1 second from the Pulseaudio server. The default is normally significantly higher. We don't need low latency, while higher latency helps prevent underflows reduces need for wakeups.
| * input.c: simplify command definitionsUoti Urpala2012-03-251-8/+7
| | | | | | | | | | Change command definitions to allow writing the command definition table in more readable format.
* | commands: add pt_clear command to clear playlistwm42012-02-101-0/+1
| | | | | | | | | | | | | | | | | | This deletes all playlist elements, except the currently active playlist entry. NOTE: this doesn't remove parent nodes in the case when we really have a play tree (as opposed to a play list). Apparently this doesn't cause any harm.
* | input.c: simplify command definitionswm42012-01-261-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using type = -1 for terminating the command argument list was an unnecessary complication. Change it to 0 to make use of default initialization. Remove the explicit termination from the command definitions. Now the argument list is automatically terminated by C default initialization rules. Also remove other redundant {0} initializers. When an argument's default value is actually initialized to something other than 0, make the field being initialized explicit (e.g. {1} becomes {.i = 1}). Try to make use of whitespace more consistent.
* | input: fix crashes with libmenuwm42012-01-181-1/+0
|/ | | | | | | | | | | | | Note: now that libmenu has been removed, the related code in input.c has been removed. If libmenu is ever added back, a queue_remove() function that can remove any item in the input queue will be required. libmenu triggered some special case that caused crashes by double frees. In particular the queue_pop function is used, expecting to remove an element that is not necessarily always the one that queue_pop removes. Fix by adding a queue_remove functions. Rewrite the other queue functions, since these are probably buggy as well. queue_pop didn't even attempt to maintain the doubly linked list.
* libmenu: remove OSD menu functionality (--menu)Uoti Urpala2011-10-251-17/+0
| | | | | | | | | | Something like the OSD menu functionality could be useful. However the current implementation has several problems and would require a relatively large amount of work to get into good shape. As far as I know there are few users of the existing functionality. Nobody is working on the existing code and keeping it compiling at all while changing other code would require extra work. So delete the menu code and some related code elsewhere that's used by nothing else.
* input: rework event reading and command queuingUoti Urpala2011-07-171-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rework much of the logic related to reading from event sources and queuing commands. The two biggest architecture changes are: - The code buffering keycodes in mp_fifo.c is gone. Instead key input is now immediately fed to input.c and interpreted as commands, and then the commands are buffered instead. - mp_input_get_cmd() now always tries to read every available event from every event source and convert them to (buffered) commands. Before it would only process new events until one new command became available. Some relevant behavior changes: - Before commands could be lost when stream code called mp_input_check_interrupt() which read commands (to see if they were of types that triggered aborts during slow IO tasks) and then threw them away. This was especially an issue if cache was enabled and slow to read. Fixed - now it's possible to check whether there are queued commands which will abort playback of the current file without throwing other commands away. - mp_input_check_interrupt() now prints a message if it returns true. This is especially useful because the failures caused by aborted stream reads can trigger error messages from other code that was doing the read; the new message makes it more obvious what the cause of the subsequent error messages is. - It's now possible to again avoid making stdin non-blocking (which caused some issues) without reintroducing extra latency. The change will be done in a subsequent commit. - Event sources that do not support select() should now have somewhat lower latency in certain situations as they will be checked both before and after select()/sleep in input reading; before the sleep always happened first even if such sources already had queued input. Before the key fifo was also handled in this manner (first key triggered select, but if multiple were read then rest could be delayed; however in most cases this didn't add latency in practice as after central code started doing command handling it queried for further commands with a max sleep time of 0). - Key fifo limiting is more accurate now: it now counts actual commands intead of keycodes, and all queued keys are read immediately from input devices so they can be counted correctly. - Since keypresses are now interpreted immediately, commands which change keybindings will no longer affect following keypresses that have already been read before the command is executed. This should not be an issue in practice with current keybinding behavior.
* cleanup: remove some unnecessary input.[ch] typedefsUoti Urpala2011-07-161-33/+20
| | | | | | | | | | | | Remove some unnecessary typedefs and remove pointless mp_ prefix from some internal struct names. Change the type of the "close_func" pointers from "void f(int fd)" to "int f(int fd)" so that using standard close() there is valid. Delete some useless assert() statements. Move internal MP_MAX_KEY_DOWN define from input.h to input.c.
* cosmetics: reformat input.h, fix commentsUoti Urpala2011-07-161-184/+181
|
* input: rewrite -key-fifo-size limiting logicUoti Urpala2011-05-021-0/+3
| | | | | | | | | | | | | | | | | | Instead of strictly limiting the number of total entries in the internal fifo, make the overall buffer bigger and try to limit entries based on how many bound commands they're expected to generate. Now doubleclick and button down events aren't counted for that limit. Normally the sequence down-doubleclick-up generates at most one command, so this better matches the quantity we actually want to limit. Also add a mechanism to clear the button combination state kept by input.c when the fifo is full; this avoids "stuck button" problems due to button release events being dropped. The key combination state clearing is partially based on MPlayer 1 changes by Reimar Döffinger (though overall the effects of this commit are quite different). It still doesn't make "stuck button" problems completely impossible; at least if the VO gets closed while a button was down then nothing will send a button up event or reset state.
* input: move all key code lists to input/keycodes.hUoti Urpala2011-05-021-7/+0
| | | | | | | | | | | | | Move the definitions of all special key codes (those not passed by ASCII value) to input/keycodes.h. Before they were spread between osdep/keycodes.h, input/joystick.h, input/mouse.h and input/ar.h, plus some special values in input.h. This was especially inconvenient as the codes had to be coordinated to not conflict between the files. The change requires a bit of ugliness as appleir.c includes <linux/input.h> which contains various conflicting KEY_* definitions. Work around this by adding a special preprocessor variable which can be used to avoid defining these in keycodes.h.
* Add a simple capture feature (-capture)Uoti Urpala2010-11-021-0/+1
| | | | | | | | | | | | | | | | | If a specified key is pressed during playback, the current stream is captured to a file, similar to what -dumpstream achieves. original patch by Pásztor Szilárd, don tricon hu Taken from the following svn commits, but with several fixes and modifications (one obvious user-visible difference is that the default key binding is 'C', not 'c'): git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32524 b3059339-0415-0410-9bf9-f77b7e298cf2 git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32529 b3059339-0415-0410-9bf9-f77b7e298cf2 git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32530 b3059339-0415-0410-9bf9-f77b7e298cf2
* new slave command: af_cmdline, for changing audio filter optionsreimar2010-11-021-0/+1
| | | | | | | | | Add experimental af_cmdline slave command to allow changing filter options at runtime. Patch by Adrian Stutz [adrian sttz ch] git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32505 b3059339-0415-0410-9bf9-f77b7e298cf2
* Merge svn changes up to r31033Uoti Urpala2010-04-261-0/+8
|\
| * Add slave commands for loading and unloading audio filters at runtime.cehoyos2010-04-111-0/+7
| | | | | | | | | | | | | | Patch by Jehan Hysseo, hysseo zemarmot net git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31030 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Add osd_show_progression: Show progress bar and elapsed/total time.cehoyos2010-04-091-0/+1
| | | | | | | | | | | | | | Patch by Hugo Chargois, hugo D chargois A free fr git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31028 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Declare mp_input_register_options() in input/input.h.diego2010-02-141-0/+4
| | | | | | | | | | | | | | This also avoids a forward declaration in mplayer.c. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30572 b3059339-0415-0410-9bf9-f77b7e298cf2
| * whitespace cosmetics: Remove all trailing whitespace.diego2009-05-131-2/+2
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29305 b3059339-0415-0410-9bf9-f77b7e298cf2
* | input: remove unused "paused" arguments from some functionsUoti Urpala2010-04-251-2/+2
| |
* | commands: Add set_property_osd and step_property_osdUoti Urpala2009-09-191-0/+2
| |
* | Remove the internal GUIAnton Khirnov2009-07-071-13/+1
| | | | | | | | | | | | | | | | | | The GUI is badly designed and too closely coupled to the internal details of other code. The GUI code is in bad shape and unmaintained for years. There is no indication that anyone would maintain it in the future either. Even if someone did volunteer to implement a better integrated GUI having the current code in the tree probably wouldn't help much. So get rid of it.
* | Remove trailing whitespace from most filesUoti Urpala2009-07-071-2/+2
| |
* | Merge svn changes up to r28149Uoti Urpala2008-12-141-0/+18
|\|
| * Add standard GPL license header.diego2008-12-131-0/+18
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28146 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r28103Uoti Urpala2008-12-061-1/+1
|\|
| * Re-add "extern"s incorrectly removed in r28085reimar2008-12-041-1/+1
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28088 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r28087Uoti Urpala2008-12-041-1/+1
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: command.c libao2/ao_ivtv.c libao2/ao_v4l2.c libmpcodecs/dec_video.h libvo/aspect.h libvo/sub.c libvo/sub.h libvo/vo_directx.c libvo/vo_macosx.m libvo/vo_quartz.c mp_core.h mplayer.c mplayer.h osdep/getch2.h osdep/timer.h
| * Get rid of pointless 'extern' keywords.diego2008-12-031-1/+1
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28085 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Move some declarations from mplayer.c to proper headersUoti Urpala2008-08-121-0/+3
| | | | | | | | | | Declare mp_input_register_options in input.h and xscreensaver_heartbeat in x11_common.h.
* | Merge svn changes up to r27123Uoti Urpala2008-06-231-137/+140
|\| | | | | | | | | | | | | Conflicts: libmenu/menu_filesel.c libmenu/menu_pt.c
| * Change DVDNAV command key names.ben2008-06-191-9/+10
| | | | | | | | | | | | | | | | Parameters now use a string much more intuitive than previous int value. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27100 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Group all input command defines in one big enumben2008-06-181-128/+130
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27098 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Merge svn changes up to r26979Uoti Urpala2008-06-041-0/+1
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Most of the conflicts are trivial. Conflicts: Makefile cfg-mplayer.h input/input.c libmenu/vf_menu.c libmpcodecs/dec_video.c libmpcodecs/vf_expand.c libmpcodecs/vf_vo.c libmpdemux/demux_mkv.c libmpdemux/demuxer.c libmpdemux/demuxer.h libvo/vo_directfb2.c libvo/vo_gl.c libvo/vo_winvidix.c libvo/vo_xv.c libvo/vo_xvidix.c libvo/vo_xvmc.c libvo/x11_common.c mplayer.c osdep/timer-linux.c stream/cache2.c
| * Add a slave command to stop stream playback.ben2008-05-271-0/+1
| | | | | | | | | | | | | | | | | | Mostly useful when used with -idle mode. Patch by Mathieu Schroeter ( mathieu dot schroeter at gamesover dot ch ) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26909 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Move input options to option structUoti Urpala2008-04-301-1/+2
| |
* | input: Move command filedescriptor list to context structUoti Urpala2008-04-301-4/+3
| |
* | input: Move cmd_queue to context structUoti Urpala2008-04-301-3/+2
| | | | | | | | Menu instances now also need a input context pointer to queue commands.
* | input: Move key filedescriptor list to context structUoti Urpala2008-04-301-4/+4
| | | | | | | | | | The context variable is now passed to VOs too as it's now needed to add a callback on the X filedescriptor.
* | input.[ch]: Move some type definitions from .h to .cUoti Urpala2008-04-301-10/+0
| | | | | | | | These aren't used outside input.c.
* | input: Move command bind variables to context structUoti Urpala2008-04-301-4/+2
| |
* | Create a context for input.c stateUoti Urpala2008-04-301-6/+6
| | | | | | | | | | | | | | | | | | Start moving static variables to a context struct. Only autorepeat state is moved to the struct in this commit. mp_input_check_interrupt now requires the context variable. Change stream functions to pass it. It's still stored in a static variable in stream/.
* | input: Remove separate mp_input_add_event_fdUoti Urpala2008-04-291-6/+2
| | | | | | | | | | | | | | | | Use the same mp_input_add_key_fd for all uses and add a context argument to its callback that was before only in the event fd callbacks. Instead of checking in input.c whether keys were inserted to the keypress FIFO during the callback do the check in the callback before returning and set return value accordingly.
* | Add a context argument to mp_input_add_event_fd callbackUoti Urpala2008-04-231-1/+1
|/
* Add MPLAYER_ prefix to multiple inclusion guards.diego2008-02-221-3/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26061 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add new command to switch between dvdnav titlesben2008-01-241-0/+1
| | | | | | | | Based on parts of dvdnav monster patches from Otvos Attila git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25845 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add ass_use_margins command and property to shift subtitles to margins and backeugeni2008-01-231-0/+1
| | | | | | | on the fly. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25842 b3059339-0415-0410-9bf9-f77b7e298cf2
* Do not use exit_player in the signal handler, this code just can notreimar2008-01-081-0/+2
| | | | | | | | | be called from a signal handler. Instead only make the input system generate quit commands for the first CTRL+C and otherwise do getch2_disable and exit. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25651 b3059339-0415-0410-9bf9-f77b7e298cf2
* properties to change angle; patch by oattila chello hunicodvb2008-01-051-0/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25604 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add multiple inclusion guards to all header files that lack them.diego2008-01-011-0/+4
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25581 b3059339-0415-0410-9bf9-f77b7e298cf2
* From now on, libmenu does not steal all input keys from input modules.ulion2007-12-261-1/+1
| | | | git-sv