LibretroAdmin
ffd3d195b5
Another C++ comment that had to be converted to C-style comment
2022-10-29 19:18:22 +02:00
LibretroAdmin
8825eea884
Style nits
2022-10-29 19:13:17 +02:00
LibretroAdmin
55daddf286
* Fix C++ comments - turn them into C comments for C files
...
* Some other additional style nits along the way
2022-10-29 19:05:39 +02:00
Kangmo-Ahn
3a744b7dae
Extended character ime ( #14559 )
...
* Update Makefile
* Update win32_common.c
* Update input_driver.c
* Update gfx_thumbnail_path.c
2022-10-29 19:01:30 +02:00
LibretroAdmin
4854643ead
(input_driver.c) Small cleanups
2022-10-29 18:52:10 +02:00
LibretroAdmin
22f43a4b75
C89_BUILD buildfix
2022-10-20 04:30:28 +02:00
Dyllan Kobal
6ade32336a
Fixed error for UWP
2022-10-19 18:52:21 +02:00
Dyllan Kobal
55ce774527
Fixed the way devices were previously indexed
2022-10-19 18:52:21 +02:00
Keith Bowes
72a076a58d
Fixed compiling with --disable-menu ( #14535 )
2022-10-19 03:30:52 +02:00
neil4
b98c53ddb7
Improve haptic feedback for input overlays ( #14517 )
...
Repurpose vibrate_on_keypress to enable device's standard keypress feedback on overlay key/button state changes
- Add keypress_vibrate function ptr to input_driver_t (only implemented on Android for now)
- (Android) Remove APP_CMD_VIBRATE_KEYPRESS
- (Android) Add doHapticFeedback, called directly to avoid latency
2022-10-16 09:58:09 +02:00
LibretroAdmin
e62abac647
Add BSV movie flags
2022-10-15 14:32:26 +02:00
LibretroAdmin
076a1a398c
(Runloop) Turn some boolean variables into flags
2022-10-10 04:37:17 +02:00
LibretroAdmin
d506210fbe
(menu_driver.c) Use flags instead of bools ( #14500 )
...
* (menu_driver.c) Use flags instead of bools
2022-10-08 22:52:18 +02:00
LibretroAdmin
fcbd72dbf3
Use flags pt4 ( #14497 )
...
* * Use flags for rarch_state
* Get rid of ^M linebreaks in retroarch_types.h
* Buildfixes for consoles
* (audio driver) use flags instead of bools
* (video) Use flags instead of bools
* Rewrite input driver state bools into flags
2022-10-08 10:39:15 +02:00
LibretroAdmin
60030e373e
Reduce snprintfs + assorted cleanups ( #14369 )
...
* Reduce snprintf and/or use them only for concatenating the
string formatting of numbers/values
* Reduce snprintfs
* Use snprintf for concatenation at parts
* * We don't need to NULL-terminate strings that get passed to strlcpy/strlcat
and friends
* Use snprintf for concatenation in certain instances
* Do away with some string intermediary copies where we can avoid it
* Fix warning unused variable
* * Reduce snprintf calls
* Rewrite snprintf calls into strlcpy where possible
* Use snprintf for concatenation when necessary
* Do away with some string intermediary copies in task_translation.c
* run_translation_service - make switch slightly smaller
2022-09-01 04:17:07 +02:00
LibretroAdmin
eaae2aec46
Increase the size of formatted_number to 16 so we no longer get
...
-Wformat-truncation warnings (state slot would be way too big though
regardless, even the current cap at 999 is ridiculous)
2022-08-27 15:45:49 +02:00
LibretroAdmin
25b76fdb54
input_keyboard_osk_event_append and others: don't call strlen
...
implicitly, always leave it up to caller
font_driver_get_message_width - try to avoid scenario where 'len'
is 0
2022-08-27 15:13:56 +02:00
LibretroAdmin
61e24132bf
(task_save.c) Simplification in control flow
...
(snprintf) Try to reduce or simplify snprintf calls, only tend to
use it for processing integers/numbers and avoid it for regular
string concatenation (NOTE: we try to be a bit safer about it to
address earlier cited criticism, although we don't consider concatenating
3 or 4 characters at the end to be insecure)
(msg_hash_to_str) Try to avoid duplicate calls to the same localized
string when we can just cache the results once instead locally
2022-08-27 07:55:02 +02:00
LibretroAdmin
10a351228b
* Rewrite some snprintfs
...
* task_steam.c - add license header
2022-08-20 19:17:28 +02:00
LibretroAdmin
4c7e316aa2
Turn functions static
2022-08-17 16:47:44 +02:00
LibretroAdmin
94ed25be56
Cleanups ( #14296 )
...
- (database_info.c) Optimizations for database_info_build_query_enum() -
it would call strlcat at the very least 3 times, normally more than that.
Every strlcat call is at least one or more strlens. Reduce it all down
to manual string concatenation and one strlcat
- (database_info_build_query_enum) - always NULL terminates string so no need for NULL termination done by callee
* (menu_displaylist) use smaller strings for basename paths, remove one unnecessary string
in menu_displaylist.c function
- (disk_index_file.c) Avoid another trivial string concatenation by doing
it manually after fill_pathname_join_special
- (fill_pathname_join_delim) since fill_pathname_join_delim() now has a return value, use it for
string concatenation
- (platform_unix) - Use BUFSIZ as size for a buffer in system_property_get
- some other trivial strlcat usage replacements
2022-08-06 18:04:40 +02:00
LibretroAdmin
b2634ea588
* Create fill_pathname_join_special - and specify fill_pathname_join
...
as deprecated.
* Use fill_pathname_join_special in the vast majority of cases where
we can ensure out_path is a new empty string
* Get rid of some extension concatenation with strlcat where encountered
* Some general cleanups with NULL termination of strings that get immediately
passed to strlcpy/strlcpy-adjacent functions
2022-08-04 14:19:38 +02:00
Cthulhu-throwaway
9b10579a54
(Network) Fix getaddrinfo_retro ( #14261 )
2022-07-31 11:22:28 +02:00
libretroadmin
8ac1a36259
Don't do NULL termination on strings when passing to strlcpy and/or
...
a file_path function that calls strlcpy under the hood
2022-07-26 07:01:10 +02:00
libretroadmin
a6a4b845a4
Some string simplifications - don't NULL terminate if we pass
...
string to strlcpy and/or a file_path function using strlcpy under
the hood - don't do strlcpy for trivial setting of 2/3 char strings
2022-07-25 04:39:08 +02:00
LibretroAdmin
29774f5b7a
Small opts ( #14186 )
...
* (joypad_connection) Small optimizations -
* Turn functions static where possible
* Hose strlen call out of loop
* (input_driver.c) General cleanups:
* Some small code/style nits
task_screenshot.c:
* Move widget callback function for screenshots to task_screenshot.c
(file_path.c):
* Turn get_pathname_num_slashes into static function
* path_linked_list_free - always returns true, so get rid of return value
* path_linked_list_new - fix function signature
* path_get_archive_delim - do not NULL-terminate string, already done by strlcpy later on
General:
* Slight optimizations - use int/size_t for loop counter variable instead of unsigned
* Take advantage of fact that strlcpy already NULL-terminates, so don't do this explicitly
outside if we're just going to end up calling strlcpy/fill_pathname_join on it anyway
2022-07-19 10:01:33 +02:00
libretroadmin
0a12062e1c
Remove unnecessary content_crc in bsv_movie_init_playback
2022-07-17 04:26:49 +02:00
libretroadmin
f7194e167f
use path_basename_nocompression where it is safe to do so
2022-07-12 19:14:12 +02:00
libretroadmin
d706c9c5bf
Start deprecating trivial functions in file_path.c
2022-07-11 19:56:46 +02:00
sonninnos
53be17aee2
Block pointer input when overlay is pressed
2022-06-16 16:49:51 +03:00
libretroadmin
c9149895f5
(GCC12) Get rid of warning: the comparison will always evaluate as 'true' for the pointer operand in 'binds + (sizetype)((long long unsigned int)port * 4032)' must not be NULL [-Waddress]
2022-06-04 08:50:35 +02:00
jdgleaver
dbcce3f564
Analog button mapping fixes ( #13913 )
2022-05-05 20:47:23 +02:00
Tony
044e1ec655
(WinRaw) Fix multiple light guns ( #13840 )
...
* (WinRaw) Fix multiple light guns
* Strip non-ASCII characters from mouse display names
2022-04-08 21:46:00 +02:00
sonninnos
6fcf291df4
Fix analog stick not working with 'Unified Menu Controls'
2022-03-24 13:46:57 +01:00
jdgleaver
ea77410037
Add 'Manage Remap Files' submenu + automatically save input remaps when closing content
2022-03-16 18:59:49 +01:00
jdgleaver
b08314cf60
Prevent 'global' configuration of input libretro device type
2022-03-15 17:43:28 +01:00
twinaphex
9bcee062ff
Cleanups/warnings
2022-03-07 19:32:01 +01:00
twinaphex
5241d3e5d6
Cleanups
2022-01-20 06:09:43 +01:00
twinaphex
cc756e4126
Silence some warnings
2022-01-19 19:08:22 +01:00
Cthulhu-throwaway
9579810579
Build fix for --disable-menu ( #13419 )
2021-12-26 15:18:57 +01:00
twinaphex
b4137915e8
Move code to proper locations
2021-11-23 16:58:36 +01:00
twinaphex
c2c36177b8
Move two variables to input_driver.c
2021-11-22 15:26:54 +01:00
Autechre
2b87cd9313
Create runloop.c and split up runloop code to this new file; ( #13269 )
...
* Create runloop.c and split up runloop code to this new file;
retroarch.c now 207Kb and runloop.c 301Kb
* Define empty runloop_secondary_core_destroy
2021-11-22 03:27:23 +01:00
twinaphex
f4c5852cfa
Move state from global_t to input_state_t
2021-11-09 06:27:43 +01:00
twinaphex
f671ce4f8c
Move global->name to runloop_st
2021-11-09 06:03:00 +01:00
twinaphex
88c771fc66
Cleanups
2021-11-07 01:44:45 +01:00
twinaphex
61d30cdc31
Move input code from retroarch.c to input_driver.c
2021-11-06 04:34:54 +01:00
twinaphex
db9283b57c
Silence some warnings
2021-11-05 04:49:26 +01:00
Jamiras
088aa7dcb9
add github action for c89 build ( #13186 )
...
* add retroarch.yml
* fix c89 errors
* attempt to add dependencies
* update comments
2021-11-05 00:05:13 +01:00
twinaphex
1a78d91348
MSVC buildfix
2021-11-03 16:50:41 +01:00
Autechre
80e0114ccf
Move collect_system_input to input_driver.c ( #13183 )
2021-11-03 16:48:57 +01:00
gblues
1ef78d3e3d
Any pad can control the menu ( #13173 )
...
* Any pad can control the menu
== DETAILS
I am not sure I've quite got it so that any pad can *open* the
menu, but I do have it so any pad can control it.
- split out the input processing into a separate method
- track down and squish some hairy bugs that boiled down to
bad pointer math
- it looks like `menu_driver.c` has a mix of line endings, so I
ran it through `dos2unix` so it has consistent line endings
again.
- verified that this change did not impact actual cores
* optimize out cumulative_bits
* Incorporate PR feedback
Many thanks to @jdgleaver for providing these optimizations.
* apply one more optimization
2021-11-03 16:32:15 +01:00
twinaphex
1dc77507a8
Fix command stdin - courtesy of Cthulhu
2021-10-19 22:23:07 +02:00
Autechre
514534f99b
Move more state to runloop_state ( #13124 )
...
* Move more state to runloop state
* remove unused variable
* Cleanup
* Move more state to runloop_state
* Remove unused variable
* Cleanups
* move input_remapping functions over to input_driver.c
* Some buildfixes
2021-10-18 15:23:22 +02:00
twinaphex
9184d0e114
Move hid_data to input_st
2021-10-15 16:31:31 +02:00
twinaphex
f070da6dfc
Move code to menu_driver.c and input_driver.c
2021-10-13 15:40:01 +02:00
Autechre
0a888f7868
Move video state to gfx/video_driver.c - reduces filesize of retroarch.c to 809kb ( #13104 )
...
* Move video state to gfx/video_driver.c - reduces filesize of retroarch.c
to 809Kb
2021-10-13 14:56:22 +02:00
twinaphex
3d710db798
input_state_wrapper symbol name was causing collisions with certain
...
cores on statically linked platforms
2021-10-08 12:50:45 +02:00
twinaphex
e39bc07e31
Fix implicit declaration
2021-10-08 06:57:37 +02:00
twinaphex
61ee2274e6
Move more code over to input_driver.c - BSV code in particular but
...
also input state function callbacks - retroarch.c code size reduced
to 874Kb
2021-10-06 05:57:39 +02:00
Nathan Strong
5da1cd08ff
Unify the HID driver architecture
...
== DETAILS
When I first implemented the Wii U HID architecture, I ended up
having to design my own implementation because, at the time, I did
not have a way to read the HID device string to allow the existing
code to successfully detect the gamepad.
After spending some time experimenting, I've figured out how to
do this. And that means I can better align the HID driver with other
platforms.
change summary:
- create a single state structure for all three sub-types of wiiu pads
(kpad, wpad, and hid)
- eliminate confusing duplicate pad lists
- eliminate confusing duplicate HID pad drivers (ds3, gamecube
adapter, etc)
- ensure the ds3 driver still works
2021-10-05 09:23:08 -07:00
Nathan Strong
9edb449471
wip commit
2021-10-05 09:10:41 -07:00
twinaphex
fde3406d1b
Get rid of input_event_get_osk_ptr/get_osk_grid
2021-10-01 07:37:33 +02:00
Autechre
8807e2957e
Input refactors pt3 ( #13053 )
...
* Move more internal state over to input_driver.c and menu_driver.c -
retroarch.c now down to 893kb
- Remove now unused p_rarch pointers in functions
2021-10-01 07:18:30 +02:00
twinaphex
e9a4e811ac
Move more code and variables from rarch_state out to input_driver
...
and menu_driver
2021-10-01 00:41:50 +02:00
twinaphex
12c81bc073
Replace input_state_get_ptr call
2021-09-30 21:31:37 +02:00
twinaphex
dbe414e1e1
move input_poll_overlay to input_driver.c
2021-09-30 21:29:35 +02:00
twinaphex
ddceb51f89
Get rid of some needless getters/setters
2021-09-30 21:10:12 +02:00
twinaphex
ef875f6102
Create input_state_get_ptr - move to input_driver.c -
...
also moved over the functions that had a dependence on this
state - retroarch.c reduced to 979kb now
2021-09-30 20:54:56 +02:00
Ben Hamilton (Ben Gertzfield)
1970786932
New feature: Use gamepad combo to quit Retroarch ( #13017 )
...
* Refactor menu toggle combo button logic to allow quit combo button
* Quit gamepad combo
* Fixes from @jdgleaver
2021-09-24 18:30:46 +02:00
twinaphex
d2af43d457
Cleanups
2021-09-20 21:08:53 +02:00
twinaphex
eb895f9947
move more code out of retroarch.c
2021-09-18 21:14:15 +02:00
twinaphex
90775e7306
Silence warnings/errors
2021-09-13 20:30:22 +02:00
twinaphex
3c69a941da
Move code over to input_driver.c
2021-09-13 18:33:53 +02:00
twinaphex
ad4b51b903
Move cde from retroarch.c to input_driver.c
2021-09-12 19:27:12 +02:00
twinaphex
b5138b6122
Move input_config_get_bind_string to input_driver.c
2021-09-12 17:41:00 +02:00
twinaphex
6c79cebc6e
Move input_overlay_auto_rotate_ out of retroarch.c and into
...
input_driver.c
2021-09-09 14:24:42 +02:00
twinaphex
81e7dab159
Move code out of retroarch.c and into input_driver.c
2021-09-09 14:11:46 +02:00
Michael Burgardt
303d17e2e6
Rebase 'Add generic rumble gain to input settings' by davidgfnet
2021-09-08 19:52:32 +02:00
twinaphex
c9e587a5a7
Move more input code over to input_driver.c from retroarch.c
2021-09-07 14:55:37 +02:00
twinaphex
276b4fd72c
Move more code over from retroarch.c to input_driver.c
2021-09-07 13:08:31 +02:00
twinaphex
67defbcf26
Transfer code over from retroarch.c to input_driver.c
2021-09-07 12:42:03 +02:00
twinaphex
3a78b46862
Move code to input_driver.c
2021-09-07 10:17:06 +02:00
twinaphex
722166cb15
Move functions from retroarch.c to input_driver.c
2021-09-07 07:11:42 +02:00
twinaphex
7c665702a8
Move input_driver_toggle_button_combo to input_driver.c
2021-09-07 06:50:18 +02:00
twinaphex
0194ce91bf
Get rid of getters/setters in big driver files from now
2021-08-26 13:27:44 +02:00
Mark W. Kidd
5f834a8cb3
input_driver refactor
2021-08-19 20:02:39 -04:00
Autechre
ae327a769b
Revert "input refactoring: create input_driver.c"
2021-08-18 18:45:53 +02:00
Mark W. Kidd
5a8920c862
input_driver refactor
2021-08-17 08:56:29 -04:00
twinaphex
b9c33713b4
Merge input_driver.c with retroarch.c
2019-06-17 18:59:56 +02:00
twinaphex
ce51cf6b33
Simplify BSV code
2019-06-17 02:23:06 +02:00
twinaphex
db87e050d5
Merge movie.c into retroarch.c
2019-06-16 16:52:48 +02:00
twinaphex
8bb74d0776
Added new hotkey AI Service and added requested
...
variables for OCR
2019-06-06 03:41:40 +02:00
twinaphex
4c3e0d44b8
Revert "Start using string_is_equal_memcmp and"
...
This reverts commit 26d6aee1eb
.
2019-04-29 04:04:33 +02:00
twinaphex
26d6aee1eb
Start using string_is_equal_memcmp and
...
string_is_equal_memcmp_fast
2019-04-28 17:23:11 +02:00
twinaphex
b41384a0d0
(input_driver) Cleanups
2019-04-22 00:05:12 +02:00
twinaphex
b0b1b0b782
(input_driver) Cleanup
2019-04-21 16:57:35 +02:00
twinaphex
8165b43170
(input_driver) Further simplifications
2019-04-21 16:30:12 +02:00
twinaphex
7ae0c6b2c1
(input_driver.c) Simplifications
2019-04-21 16:19:48 +02:00
twinaphex
8312d67a11
(input_driver.c) Further simplifications
2019-04-21 16:13:11 +02:00
twinaphex
b6fd875230
(input_driver.c) Simplifications
2019-04-21 15:48:56 +02:00
twinaphex
f6fec009d2
input_config_get_prefix becomes static function
2019-04-21 07:56:20 +02:00
twinaphex
a79eec8698
(input_driver.c) Cleanup
2019-04-21 07:46:52 +02:00
twinaphex
af2805406d
Move more functionality to input_driver.c ; make more functions static
2019-04-21 07:30:14 +02:00
twinaphex
270e95bc97
Turn a lot of input_config_parse functions static
2019-04-21 06:42:13 +02:00
Brad Parker
e0b59f13e2
no analog/sensitivity correction for analog buttons
2019-04-09 23:17:11 -04:00
Brad Parker
8639018976
use proper scaled radial deadzone calculation
2019-03-29 14:07:35 -04:00
Brad Parker
e7891b8c1a
add analog deadzone and sensitivity options, rename axis threshold
2019-03-25 23:22:19 -04:00
Brad Parker
19ced73596
add hotkey to toggle netplay hosting
2019-03-09 17:48:03 -05:00
Brad Parker
4bb81bbb1b
add F10 hotkey to send debug info, fix F3 hotkey for FPS toggle when inside menu
2019-03-09 16:03:17 -05:00
Brad Parker
10df615d14
add "Send Debug Info" option under Help
2019-03-07 19:17:54 -05:00
twinaphex
ebae7ebc79
Input driver - Get rid of 'own driver' mechanism
2019-02-27 17:17:34 +01:00
twinaphex
1daaf7385c
9PS2) Silence some warnings
2019-02-14 07:20:44 +01:00
Twinaphex
cb596aec3a
Merge pull request #7820 from meepingsnesroms/master
...
Buttons are only 16 bits so only use uint16_t to prevent wasting 6 bytes
2019-01-13 04:55:34 +01:00
twinaphex
c98b2e2292
Buildfixes and more static code analysis warning fixes
2019-01-10 22:24:43 +01:00
twinaphex
b9ff2e4de1
Fix some static code analysis warnings from MSVC 2017
2019-01-10 21:47:15 +01:00
Twinaphex
40997473ed
Merge branch 'master' into orbis2
2019-01-08 20:18:08 +01:00
orbea
bfc366decc
Squeeze extra blank lines with cat(1).
...
Example:
find . -type f -iname '*.c' | while read -r i; do
cat -s "$i" > "$i.new"
mv "$i.new" "$i"
done
2019-01-08 11:04:58 -08:00
Francisco José García García
4ad083cb97
[ORBIS] Update input driver
2018-12-30 14:00:18 +01:00
Francisco José García García
9c5a934529
[ORBIS] Untested input driver
2018-12-30 01:29:34 +01:00
krzys-h
f6c8a0c5c2
Add UWP input driver
...
Keyboard, mouse and touch support: done
2018-12-28 22:09:30 +01:00
krzys-h
b201d669b5
First iteration of UWP support
...
Enough to kind of run
Working drivers: xinput, d3d11
Still missing: input driver with keyboard support, audio driver
2018-12-28 22:09:22 +01:00
meepingsnesroms
a6f097c873
Buttons are only 16 bits so only use uint16_t to prevent wasting 6 bytes
2018-12-25 14:33:43 -08:00
jdgleaver
f68d756af3
(RGUI) Add user index label to control menu entries
2018-12-19 12:19:29 +00:00
Tatsuya79
d52b38eadc
Add FPS counter hotkey.
2018-11-29 13:12:11 +01:00
Tatsuya79
1e5192462e
Analog stick to trigger remap functionality.
2018-11-10 17:27:14 +01:00
Francisco Javier Trujillo Mata
fc9cd8f639
JoyPad implemented
2018-11-09 22:40:50 +01:00
Francisco Javier Trujillo Mata
8a0266cf8d
PS2 Input looks to be ready
2018-11-09 22:40:50 +01:00
Francisco Javier Trujillo Mata
0880bd00b0
PS2 is compiling with null drivers
2018-11-09 22:40:50 +01:00
Stuart Carnie
5c1075127b
chore(metal): Separate legacy GL and Metal source
...
* Forks of Cocoa / Cocoa Touch to *_metal.* version
* Reverted original GL Cocoa / Cocoa Touch versions
* GL and Metal projects still build
2018-11-04 20:50:50 -07:00
twinaphex
cb8148878c
Add hotkeys for 'Toggle Recording' / 'Toggle Streaming'
2018-09-18 08:52:09 +02:00
radius
1c85058e72
[recording] rename bsv recording from movie to input replay
2018-09-15 21:47:23 -05:00
Gregor Richards
af357c1afe
Fix input when the joypad driver is NULL.
2018-06-01 23:22:04 -04:00
Twinaphex
909ffd4de4
Update input_driver.c
2018-05-03 15:28:26 +02:00
twinaphex
28025802da
Try to fix build failure
2018-05-03 13:11:38 +02:00
radius
7bdbd005a8
fix #6700
2018-05-02 23:32:40 -05:00
twinaphex
eac899f573
Try to fix build for targets that don't have HAvE_OVERLAY defined
2018-05-02 13:52:27 +02:00
radius
3304dad729
fix #6631
2018-05-01 18:09:04 -05:00
Brad Parker
a1aefc901c
Qt WIMP GUI
2018-04-30 14:33:05 -04:00
gblues
fb5b31faf3
Merge branch 'master' into gblues/hid
2018-04-14 14:18:03 -07:00
twinaphex
0fb766b921
Move variables
2018-04-09 16:15:31 +02:00
twinaphex
be5057eafc
Cleanups
2018-04-09 00:38:44 +02:00
twinaphex
a5c7b79842
Move BIT256_CLEAR_ALL_PTR outside of function
2018-04-09 00:34:07 +02:00
twinaphex
7b5a0bf706
Move clear operation outside of keys_pressed functions
2018-04-09 00:31:03 +02:00
radius
968c692a04
remap-redux: allow the menu to display manual keybinds
2018-04-08 14:50:30 -05:00
twinaphex
1dd73f86b7
Simplify this code somewhat
2018-04-08 21:45:10 +02:00
twinaphex
24b694d674
Grab joypad_driver only once
2018-04-08 21:07:04 +02:00
twinaphex
30090db941
Simplify input_get_state_for_port for analogs
2018-04-08 21:04:42 +02:00
twinaphex
0ed69fd170
Simplify input_state analog code remapping somewhat
2018-04-08 20:49:02 +02:00
twinaphex
a82bb0ec94
Create special type input_bits_t
2018-04-08 20:21:12 +02:00