Found the best solution.
1. Purchase a western digital wdtv live with slingplayer app built in.
2. Hook the wdtv into the hdmi in
3. Go to xbox one settings for cable provider pick your zip code or location and cable company.
for cable box put remote code 2558 (this is the wdtv universal remote code).
4. On the wdtv have it autoload into slingplayer app.
You are all set.
XBOX one will now think your wdtv is the cable box.
When you tell cordona or xbox to go to HBO, it sends the channel code (specific for your location) to your wdtv which then sends the channel code to your slingbox which then changes your cable box channel. It is pretty seamless.
Specifically using the xbox one's guide which is way better than the slingplayer guide. Also, is when you snap the tv it doesn't have issues, but some apps have issues when you snap.
Downside, is you have to buy another media player,
Was originally considering an amazon fire tv or fire stick, but then i would have to do all the remote control from amazon remote, as it is bluetooth.
Alternatively, you could get the full sized firetv, and install an IR dongle and then somehow set up the IP remote. But this would require programming the dongle to accept commands from say your cable box's remote, so you could put the cable box code into xbox. This is much more difficult. Also the roku maybe controlled by IR, and may have better luckw ith sync issues.
The only thing that upsets me is that the slingplayer apps on wdtv every 2-3 hours or so, has sync issues. Whereas I think the android and ios apps, will resync. so for wdtv, you just need to change channel. and come back to the one you were watching, and it resyncs.