Previous day | Jump to hour: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | Next day

Seconds: Show Hide | Joins: Show Hide | View raw
Font: Serif Sans-Serif Monospace | Size: Small Medium Large

Click in the nick column to highlight everything a person has said.
The Logo icon identifies that the person is a core developer (has commit access).

Notice: Only Gecko based browsers prior to FF4 support the multipart/mixed "server push" method used by this log reader to auto-update. Since you do not appear to use such a browser, this page will simply show the current log, and not automatically update.

#rockbox log for 2014-06-13

00:02:19 Join Strife89 [0] (~Strife89@adsl-98-80-200-248.mcn.bellsouth.net)
00:11:02 Quit pamaury (Ping timeout: 240 seconds)
00:15:50 Nick DormantBrain is now known as SuperBrainAK (~andy@2001:470:8:a61::5f92:59a1)
00:18:55***Saving seen data "./dancer.seen"
00:21:44 Quit ender` (Quit: Be wary of strong drink. It can make you shoot at tax collectors and miss.-- Robert A. Heinlein)
00:24:00 Quit kuldeepdhaka (Ping timeout: 244 seconds)
00:28:42sakaxi have the latest nano2g build before it was excluded and all worked fine except the usb charging mode
00:29:13sakaxit's still a great device, would be nice to have a fully working nano 2g rockbox in the future :D
00:34:54TheSevensakax: I'm working on that :)
00:35:05TheSevenespecially the USB mess
00:35:19sakaxhighly appreciated TheSeven! :-)
00:35:45sakaxit's still a great device, the nano2g
00:36:31 Quit bertrik (Read error: Connection reset by peer)
00:38:39TheSevenis my assumption correct, that if I have a HID-enabled device and click any clickwheel buttons or spin the wheel, I should see any reaction on ubuntu? (something on /dev/input/event*, or a UI reaction, e.g. system volume control)
00:41:04TheSevenright now I can't seem to get any reaction at all, despite seeing interrupt packets in wireshark (usbmon)
00:48:05 Quit edhelas (Ping timeout: 245 seconds)
00:48:36 Nick [Saint_] is now known as [Saint] (~saint@rockbox/staff/saint)
00:51:08[Saint]TheSeven: If you haven't touched the default settings, then, yes the clickwheel on HID enabled iPods should operate as a volume control.
00:51:27 Join bluebrother [0] (~dom@rockbox/developer/bluebrother)
00:51:28TheSevenand ubuntu typically reacts to these events in some way?
00:51:46[Saint]Settings - General Settings - System - USb Keypad Mode
00:52:02[Saint]and, yes. it'll use libnotify to draw a volume popup window.
00:52:19TheSevenwhat should valid hid traffic look like? I'm getting a bunch of 5 byte interrupt packets, which looks good to me, but then again I don't really know how the HID protocol works
00:52:25[Saint]Rather, it _should_.
00:52:34[Saint]I have no idea, sorry.
00:52:44[Saint]USB is far from my speciality.
00:53:00TheSeventhat question wasn't directed to you specifically ;)
00:53:33[Saint]Ah. Sorry. Still waiting for my morning coffee to kick in and make me a functional human, still catching up. ;)
00:54:15 Quit fs-bluebot (Ping timeout: 264 seconds)
00:54:18 Quit bluebrother^ (Ping timeout: 240 seconds)
00:54:47[Saint]The thing I can answer is that, by default, the HID keypad mode in Rockbox is "Multimedia", which most obviously, allows the iPod to control system media volume.
00:55:12[Saint]And displays a popup using libnotify displaying the current volume level as it is being changed.
00:55:45[Saint]Next/Prev/Play/Pause all behave exactly how you would expect them too, also.
00:56:05[Saint]Or _should_.
00:56:42 Join fs-bluebot [0] (~fs-bluebo@g224239053.adsl.alicedsl.de)
01:00
01:26:34 Join Misanthropos [0] (~Misanthro@frnk-5f7474fe.pool.mediaWays.net)
01:31:08 Quit RiD (Quit: A good plan today is better than a perfect plan tomorrow.)
01:42:25 Quit Misanthropos (Ping timeout: 255 seconds)
01:47:46 Join krnlyng [0] (~liar@83.175.90.24)
02:00
02:18:58***Saving seen data "./dancer.seen"
02:43:29 Quit [Saint] (Ping timeout: 240 seconds)
02:46:44 Quit ZincAlloy (Quit: Leaving.)
03:00
03:00:01 Quit AlexP (Remote host closed the connection)
03:43:15 Nick SuperBrainAK is now known as DormantBrain (~andy@2001:470:8:a61::5f92:59a1)
03:43:29 Join ungali [0] (~ungali@unaffiliated/ungali)
03:58:39 Quit mc2739 (Ping timeout: 240 seconds)
04:00
04:01:03 Join mc2739 [0] (~mc2739@rockbox/developer/mc2739)
04:16:58 Join ygrek [0] (~user@108.59.6.97)
04:19:02***Saving seen data "./dancer.seen"
04:22:48 Quit pixelma (Disconnected by services)
04:22:48 Join pixelma_ [0] (pixelma@rockbox/staff/pixelma)
04:22:50 Join amiconn_ [0] (quassel@rockbox/developer/amiconn)
04:22:50 Quit amiconn (Disconnected by services)
04:22:50 Nick pixelma_ is now known as pixelma (pixelma@rockbox/staff/pixelma)
04:22:52 Nick amiconn_ is now known as amiconn (quassel@rockbox/developer/amiconn)
04:25:39 Quit ygrek (Ping timeout: 272 seconds)
04:40:20 Quit ungali (Quit: ungali)
04:47:24 Join ygrek [0] (~user@108.59.6.97)
05:00
05:04:16 Nick DormantBrain is now known as SuperBrainAK (~andy@2001:470:8:a61::5f92:59a1)
05:19:03 Quit TheSeven (Ping timeout: 260 seconds)
05:20:02 Join TheSeven [0] (~quassel@rockbox/developer/TheSeven)
05:35:30 Nick SuperBrainAK is now known as DormantBrain (~andy@2001:470:8:a61::5f92:59a1)
05:57:54 Join steffengy [0] (~quassel@p5088F45E.dip0.t-ipconnect.de)
05:59:23 Quit Strife89 (Ping timeout: 272 seconds)
06:00
06:00:56 Quit steffengy1 (Ping timeout: 252 seconds)
06:11:15 Nick DormantBrain is now known as SuperBrainAK (~andy@2001:470:8:a61::5f92:59a1)
06:19:04***Saving seen data "./dancer.seen"
06:34:15 Join [Saint] [0] (~saint@rockbox/staff/saint)
06:46:56 Quit Guest70275 (Read error: Connection reset by peer)
06:47:12 Join Guest70275 [0] (Slayer@c-69-143-187-144.hsd1.va.comcast.net)
06:47:41 Quit albb0920 (Ping timeout: 245 seconds)
06:54:09 Join albb0920 [0] (~albb0920@alice.mgt.ncu.edu.tw)
07:00
07:00:34 Join kugel [0] (~kugel@avm-guido.avm.de)
07:00:34 Quit kugel (Changing host)
07:00:34 Join kugel [0] (~kugel@rockbox/developer/kugel)
07:28:25 Join [Saint_] [0] (~saint@rockbox/staff/saint)
07:29:17 Quit [Saint] (Ping timeout: 264 seconds)
07:44:19 Quit Prodicus (Ping timeout: 240 seconds)
07:45:10 Join Prodicus [0] (~chatzilla@2605:a601:561:7701:8431:5de7:11bf:be30)
07:48:18 Join edhelas [0] (~edhelas@77-173-104-232.ip.telfort.nl)
07:53:55 Quit Prodicus (Ping timeout: 240 seconds)
08:00
08:15:16 Quit derf (Ping timeout: 264 seconds)
08:17:41 Quit scorche (Quit: blah)
08:17:47 Quit ygrek (Ping timeout: 244 seconds)
08:19:05***Saving seen data "./dancer.seen"
08:29:06 Join ender` [0] (krneki@foo.eternallybored.org)
08:32:10 Quit edhelas (Ping timeout: 240 seconds)
08:32:47 Join scorche [0] (~scorche@rockbox/administrator/scorche)
08:49:54 Join petur [0] (~petur@rockbox/developer/petur)
09:00
09:12:24 Join edhelas [0] (~edhelas@2001:981:e7ba:1:863a:4bff:fe85:8a3c)
09:28:07 Join einhirn [0] (~Miranda@bsod.rz.tu-clausthal.de)
09:32:26 Join ygrek [0] (~user@108.59.6.97)
09:33:00 Join Zagor [0] (~bjst@2a01:2b0:3041:3018:3e97:eff:fe18:a3e)
09:33:00 Quit Zagor (Changing host)
09:33:00 Join Zagor [242] (~bjst@rockbox/developer/Zagor)
09:34:34 Join pamaury [0] (~quassel@rockbox/developer/pamaury)
09:56:17 Quit pamaury (Ping timeout: 264 seconds)
09:56:47 Join pamaury [0] (~quassel@rockbox/developer/pamaury)
10:00
10:19:09***Saving seen data "./dancer.seen"
10:22:40 Quit K1773R (Excess Flood)
10:23:43 Join K1773R [0] (~K1773R@unaffiliated/k1773r)
10:26:22 Join wodz [0] (~wodz@iwl138.internetdsl.tpnet.pl)
10:27:45 Quit Scr0mple (Read error: Connection reset by peer)
10:30:18 Quit jhMikeS (Ping timeout: 255 seconds)
10:31:42 Quit K1773R (Excess Flood)
10:32:13 Join K1773R [0] (~K1773R@unaffiliated/k1773r)
11:00
11:01:14 Quit fragilematter (Quit: Leaving.)
11:19:23 Nick SuperBrainAK is now known as DormantBrain (~andy@2001:470:8:a61::5f92:59a1)
11:25:33 Quit pamaury (Ping timeout: 240 seconds)
11:26:13 Join pamaury [0] (~quassel@rockbox/developer/pamaury)
12:00
12:19:10***Saving seen data "./dancer.seen"
12:32:24copperI managed to completely destroy my iPod's display
12:32:35copperI think that, subconsciouly, I _wanted_ to destroy it
12:51:37 Quit pamaury (Ping timeout: 244 seconds)
12:57:04 Quit kugel (Quit: leaving)
13:00
13:34:40 Quit ygrek (Ping timeout: 252 seconds)
13:46:04 Join AlexP [0] (~alex@rockbox/staff/AlexP)
14:00
14:19:11***Saving seen data "./dancer.seen"
14:35:57TheSevencopper: how did you do that?
14:36:17 Quit ender` (Quit: We live in an age when pizza gets to your home before the police. -- Jeff Marder)
14:36:28TheSevengevaerts: hm, I still have some mess in the control EP handling from what it looks like, causing some trouble on windows
14:36:52TheSevenIIUC there are generally 3 cases:
14:36:52TheSevena. SETUP => ACK(IN)
14:36:52TheSevenb. SETUP => DATA(IN) => ACK(OUT)
14:36:52DBUGEnqueued KICK TheSeven
14:36:52TheSevenc. SETUP => DATA(OUT) => ACK(IN)
14:37:33TheSevenwe must at any time be able to receive a new SETUP packet without waiting for other interaction from the host
14:37:45edhelasI think that the adapter that I bought yesterday have a hardware issue, it's weird that linux and windows cannot access to the partition table of the card
14:37:47TheSevenand we should, IIUC, STALL every non-setup packet that we don't expect
14:38:09TheSevenin conclusion I think that this is the correct order to do things for the three cases:
14:38:09TheSevena: 1. SETUP IRQ => 2. STALL OUT, 3. RECV SETUP, 4. SEND ACK IN => 5.XFER_COMPLETE(IN) => 6. STALL IN
14:38:09TheSevenb: 1. SETUP IRQ => 2. RECV SETUP, 3. SEND DATA IN => 4. XFER_COMPLETE(IN) => 5. STALL IN, 6. RECV ACK OUT => 7. XFER_COMPLETE(OUT) => 8.STALL OUT
14:38:09TheSevenc: 1. SETUP IRQ => 2. RECV DATA OUT => 3. XFER_COMPLETE(OUT) => 4. STALL OUT, 5. RECV SETUP, 6. SEND ACK IN => 7. XFER_COMPLETE(IN) => 8.STALL IN
14:38:28TheSevendoes this make sense? anything that I overlooked?
14:39:35TheSevenedhelas: through the ipod, or through a CF reader? if the ipod itself cannot access any sectors on it (which is something that we've seen before), then it of course won't matter what's trying to access them through that ipod
14:40:12edhelasyeah trought the iPod
14:40:29edhelasI still need to find a CF reader to test it
14:41:06TheSeventhis looks like an incompatibility between either the ipod (or its firmware) and the CF adapter, or between the CF adapter and the microSD card
14:41:30edhelasI've tried with 3 differents microsd cards from different brands
14:42:26wodzedhelas: I warned you
14:42:33 Part Nei
14:42:43TheSevenwhich makes the incompatibility on the ipod side of the adapter more likely
14:43:08edhelasyes, I'll try to return the adapter to the shop ;)
14:43:24TheSevenin the above sequences I assume that RECV SETUP will cause the hardware to accept SETUP packets, but NAK everything else, and that RECV DATA OUT will accept both SETUP and DATA packets. A RECV SETUP in combination with a STALL OUT will accept SETUP, but STALL everything else.
14:46:02gevaertsTheSeven: to be honest, I really don't remember the details of that sort of thing. I never really knew them in the first place even
14:46:18CtcpIgnored 1 channel CTCP requests in 0 seconds at the last flood
14:46:18*gevaerts has always worked at a slightly higher level
14:47:11wodzTheSeven: are you sure you properly handle ZLPs? Mistreatment of thouse can give symptoms of partially working driver.
14:47:19TheSevenI remember that we reordered receiving ACKs and sending responses to fix some problems with nano2g at that point. given the above, I don't think this should be necessary. it seems more like we overlooked something else back then.
14:47:28TheSevenwodz: ZLPs?
14:47:36wodzzero length packets
14:47:52TheSevenI think those are handled correctly, yes
14:48:27TheSevenmaybe not in some corner cases, but what we're seeing here is even less subtle ;)
14:49:27TheSevenone area where a ZLP problem could exist is if we have a descriptor of 64 bytes length, but get a >64 byte GET for it, we might have to send a ZLP to make it a short transfer instead of making the host wait forever
14:50:24TheSevennot sure if that is handled right, with the above sequence we would probably STALL it instead of generating a short transfer
14:50:38wodzTheSeven: IIRC the reordering was to avoid race condition where we send response and waited for ACK which we missed due to being slow in configuring core for receive
14:51:09TheSeventhe thing is that the core should NAK these ACKs until we're ready
14:51:26TheSevenback then it STALLed them for some reason, which suggests that we messed up something else
14:51:38wodzin perfect world yes
14:52:00TheSevenright now we might be ACKing things that we haven't fully processed, or are while we're even still waiting for data
14:52:24TheSeventhis is also one of the reasons for this confusing EP0 state machine, which waits for ACK and DATA in parallel
14:52:36TheSevenI have a feeling that this area needs some major rework
14:53:13 Join amayer [0] (~amayer@mail.weberadvertising.com)
14:53:14TheSevenI should probably revert the reordering from back then in my local tree and check if I get it to work
14:53:41TheSevencommitting that would break USB_S3C6400X for sure, but the goal is to get rid of that one anyway
14:56:34TheSevento fix the 64 byte descriptor corner case, out case b should probably look like this:
14:56:35TheSevenb: 1. SETUP IRQ => 2. RECV SETUP, 3. SEND DATA IN => 4. XFER_COMPLETE(IN) => 5. SEND ZLP IN, 6. RECV ACK OUT => 7. XFER_COMPLETE(x:IN/OUT) => 8.STALL x => GOTO 7
14:56:54*TheSeven needs to have a look at emcore's usb driver
14:57:01TheSevenor rather USB protocol core
15:00
15:00:48 Quit krnlyng (Read error: Connection reset by peer)
15:02:30 Join krnlyng [0] (~liar@83.175.90.24)
15:11:57 Quit wodz (Quit: Leaving)
15:19:35 Quit tchan (Quit: WeeChat 0.4.3)
15:27:09 Join Prodicus [0] (~chatzilla@2605:a601:561:7701:314c:2960:91ff:1a39)
15:39:41TheSevenhow should a premature ACK before finishing a multi-packet IN transfer be handled? Keep NAKing? STALL? Stop IN transfer?
15:40:32 Join ygrek [0] (~user@108.59.6.97)
15:43:32 Quit krnlyng (Ping timeout: 240 seconds)
15:50:05 Join tchan [0] (~tchan@lunar-linux/developer/tchan)
16:00
16:01:20 Quit petur (Quit: *plop*)
16:19:14***Saving seen data "./dancer.seen"
16:26:52 Quit [Saint_] (Ping timeout: 264 seconds)
16:27:02 Join derf [0] (~derf@static-108-18-126-14.washdc.fios.verizon.net)
16:54:36 Quit edhelas (Ping timeout: 252 seconds)
17:00
17:02:16 Quit einhirn (Quit: Miranda IM! Smaller, Faster, Easier. http://miranda-im.org)
17:05:53 Quit Zagor (Quit: Clint excited)
17:07:17 Join ZincAlloy [0] (~Adium@pD9EE8239.dip0.t-ipconnect.de)
17:24:21TheSevenseems like my nano2g's LCD is failing :/
17:29:06 Quit the-kyle (Remote host closed the connection)
17:29:28 Join the-kyle [0] (~kyle@kyle.tk)
17:46:14 Quit sakax (Ping timeout: 276 seconds)
17:46:37 Quit copper (Ping timeout: 240 seconds)
17:53:39 Join copper [0] (~copper@unaffiliated/copper)
18:00
18:13:24 Quit ygrek (Ping timeout: 272 seconds)
18:16:20 Join edhelas [0] (~edhelas@77-173-104-232.ip.telfort.nl)
18:19:16***Saving seen data "./dancer.seen"
18:44:07 Join y4n [0] (~y4n@unaffiliated/y4ndexx)
18:55:46 Quit AlexP (Remote host closed the connection)
18:56:32 Join ygrek [0] (~user@108.59.6.97)
18:57:19 Join AlexP [0] (~alex@rockbox/staff/AlexP)
19:00
19:06:22TheSevendid anyone ever hear about any issues with nano2g LCDs being just white?
19:06:49*TheSeven guesses it's related to timing of LCD init somehow, but this has only started recently without any changes...
19:10:39copperAssuming that Rockbox can control volume on the headphone amp (after the DAC), wouldn't it make sense to apply Replaygain on the amp, rather than on the PCM signal before the DAC?
19:14:00copperah, but that would "reset" volume after each song
19:14:07coppermeh
19:15:00copperunless Rockbox saves the delta and applies that delta whenever necessary (new song)
19:24:19 Join krnlyng [0] (~liar@83.175.90.24)
19:31:29 Join rockboxman [0] (2ed07326@gateway/web/freenode/ip.46.208.115.38)
19:33:50rockboxmanIf I had an ipod I'd want to destroy it too. I mean really no micro usb socket, no microSd card slot. pah!
19:34:08 Quit rockboxman (Client Quit)
19:34:31copperlol
19:35:15*TheSeven still likes the idea of abusing an ipod classic as a virtual usb cd burner, burning .iso files :)
19:41:54copperwhat.
19:42:12copperI will not stand this MADNESS
19:49:54 Quit ZincAlloy (Quit: Leaving.)
19:50:46 Join wodz [0] (~wodz@iwl138.internetdsl.tpnet.pl)
19:50:55 Join kugel [0] (~kugel@rockbox/developer/kugel)
19:51:42kugelWelcome from Warszawa!
19:52:32TheSeven"request_handler_endoint_drivers". hm...
19:53:40 Quit ygrek (Ping timeout: 255 seconds)
19:57:39 Join ZincAlloy [0] (~Adium@pD9EE8239.dip0.t-ipconnect.de)
20:00
20:03:59 Join jhMikeS [0] (~jethead71@c-68-43-2-35.hsd1.mi.comcast.net)
20:03:59 Quit jhMikeS (Changing host)
20:03:59 Join jhMikeS [0] (~jethead71@rockbox/developer/jhMikeS)
20:04:28 Join bertrik [0] (~quassel@rockbox/developer/bertrik)
20:10:52 Quit copper (Remote host closed the connection)
20:11:55 Join RiD [0] (Ghost@bl22-56-229.dsl.telepac.pt)
20:17:05 Join copper [0] (~copper@unaffiliated/copper)
20:19:19***Saving seen data "./dancer.seen"
20:27:40 Quit bertrik (Remote host closed the connection)
20:39:35 Join Misanthropos [0] (~Misanthro@frnk-4d008bae.pool.mediaWays.net)
20:41:38kugeljhMikeS: ping
20:42:17TheSevengevaerts: does the first hid event somehow make rockbox re-enumerate on usb?
20:42:35TheSevenit seems to briefly soft disconnect as soon as I touch the clickwheel
20:57:35*TheSeven wonders if this is some kind of ESD impact from touching the device
21:00
21:01:38TheSevenfinally making some progress over here :)
21:12:16 Join MMlosh [0] (~MMlosh@2001:470:6f:23:c61:5fb0:b12:10e0)
21:17:42 Quit Misanthropos (Ping timeout: 272 seconds)
21:21:21TheSevenmy little USB analyzer just revealed some valuable information: nano2g USB is failing on the PHY level already
21:21:21TheSevencombined with it working fine in PIO mode, I conclude that something's wrong with the AHB master config
21:24:27kugelwow, if you thought pamaury must have a lot of daps, double that number and you're closer :)
21:25:11copper?
21:30:25 Join ender` [0] (krneki@foo.eternallybored.org)
21:58:49 Join petur [0] (~petur@rockbox/developer/petur)
22:00
22:01:46 Quit froggyman (Ping timeout: 252 seconds)
22:05:42 Nick DormantBrain is now known as SuperBrainAK (~andy@2001:470:8:a61::5f92:59a1)
22:08:20 Join froggyman [0] (~frogs@unaffiliated/froggyman)
22:10:03 Nick SuperBrainAK is now known as DormantBrain (~andy@2001:470:8:a61::5f92:59a1)
22:12:26 Nick DormantBrain is now known as SuperBrainAK (~andy@2001:470:8:a61::5f92:59a1)
22:13:40 Quit edhelas (Ping timeout: 264 seconds)
22:19:22***Saving seen data "./dancer.seen"
22:23:55gevaertsTheSeven: it shouldn't do that, and I don't remember ever seeing that on ARC
22:24:16TheSevenI don't remember seeing it either, before hooking it up to that logic analyzer
22:24:24TheSevenso I guess it's just a flaky connection
22:27:25 Join bertrik [0] (~bertrik@rockbox/developer/bertrik)
22:41:54 Join pamaury [0] (~quassel@rockbox/developer/pamaury)
22:51:08 Join edhelas [0] (~edhelas@77-173-104-232.ip.telfort.nl)
22:54:56TheSevenhm, reseating the LCD connector didn't help with that problem... I've ordered a replacement LCD for like 4.50€ now
22:58:30TheSevenWTF. now, after reassembling the ipod, and rebooting it several times, it came back up.
23:00
23:02:47 Join lebellium [0] (~chatzilla@89-93-178-161.hfc.dyn.abo.bbox.fr)
23:04:14TheSevenhm, and now it doesn't work again
23:04:18RiDlolz
23:04:46wodzTheSeven: I have n2g in front of me waiting to test new driver if you want
23:08:05 Quit amayer (Quit: Leaving)
23:08:24TheSevenwodz: it seems to be working in PIO mode, but with DMA it fails to send the zero-length ACK for SET ADDRESS
23:08:36TheSeven(and no, it doesn't send it to the wrong address ;)
23:10:51TheSevenok, I think I found the cause
23:11:02TheSevenit's that DMA endpoint chaining thing again
23:11:12TheSevenseems like the classic just ignores that, while the nano is picky ;)
23:13:29TheSevenwodz: does LCD sleep (or rather waking up from it) work on your nano2g?
23:13:40TheSeventhat's where the trouble with my display started
23:14:17wodzyeah the screen is sleeping/wakeup correctly
23:14:57*user890104 looks for a n2g in his box of junk hardware
23:48:40 Join saratoga [0] (123e1ce5@gateway/web/freenode/ip.18.62.28.229)
23:49:14saratogaTheSeven: I sent funman my Nano2G a while ago, if he still has it maybe he could mail it to you (i think you're both in EU?)
23:49:27 Quit ender` (Quit: The curious thing about .Net is that it allows you to use any language you want, as long as it's C#.)
23:49:48TheSevenI don't think that's necessary, I'll just have to wait those ~3 weeks for that LCD to ship from china
23:50:23TheSevenuntil then I have a fully working device, except for the display. which is a bit annoying, but works somewhat ;)

Previous day | Next day