Skip to content

Feature/mobile projection 2#2155

Merged
Jack-Byrne merged 24 commits intodevelopfrom
feature/mobile_projection_2
Jun 13, 2018
Merged

Feature/mobile projection 2#2155
Jack-Byrne merged 24 commits intodevelopfrom
feature/mobile_projection_2

Conversation

@LuxoftAKutsan
Copy link
Contributor

@LuxoftAKutsan LuxoftAKutsan commented Apr 24, 2018

Fixes #2129

This PR is ready for review.

Risk

This PR makes major API changes.

Testing Plan

Tested with ATF : https://github.com/smartdevicelink/sdl_atf/tree/develop
ATF Scripts are "PASSED" from smartdevicelink/sdl_atf_test_scripts#1879.

Manual testing:
Used HMI from: smartdevicelink/sdl_hmi#53

Summary

Implementation of proposal https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0150-video-streaming-state.md

Changelog

Breaking Changes
Enhancements
Bug Fixes

Tasks Remaining:

CLA

@EKuliiev EKuliiev force-pushed the feature/mobile_projection_2 branch 2 times, most recently from 4f7b4af to ea47b07 Compare April 25, 2018 10:59
* @brief The HmiState class
* Handle Hmi state of application (hmi level,
* Handle HMI state of application (HMI level,
* audio streaming state, system context)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • video streaming state

return false;
namespace {
bool IsStateChanged(const HmiState& old_state, const HmiState& new_state) {
return std::make_tuple(old_state.hmi_level(),
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what's the benefit of using std::make_tuple() != std::make_tuple() comparing to the (condition 1 || condition 2 || condition 3 || condition 4) here?
I thought it can only make final binary code bigger.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@yang1070 , this is common technik(since C++11) to compare complex objects, to make it easier to write a correct operators(==,!=,<,<=,>,>=) than rolling it yourself, to provide more readable code.
http://en.cppreference.com/w/cpp/utility/tuple/operator_cmp

@EKuliiev EKuliiev force-pushed the feature/mobile_projection_2 branch 4 times, most recently from 8276621 to 0a2489f Compare May 17, 2018 14:58
@EKuliiev EKuliiev force-pushed the feature/mobile_projection_2 branch from 0a2489f to 43bdbd3 Compare May 17, 2018 15:03
EKuliiev added 2 commits May 18, 2018 17:23
Fix HMI state resolver according to requirments of 'Mobile Projection Phase 2'

DEPRECATED NaviStreamingHmiState(uint32_t app_id,
const ApplicationManager& app_mngr);
DEPRECATED VideoStreamingHmiState(uint32_t app_id,

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

DEPRECATED a new VideoStreamingHmiState?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@yang1070 , agree. done
see cf144fc

: HmiState(app, app_mngr, STATE_ID_VIDEO_STREAMING) {}

DEPRECATED NaviStreamingHmiState::NaviStreamingHmiState(
DEPRECATED VideoStreamingHmiState::VideoStreamingHmiState(
Copy link

@yang1070 yang1070 May 18, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

does not make sense to DEPRECATED a new function name. remove the function completely.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@yang1070 , agree. done
see cf144fc

ApplicationSharedPtr app,
const mobile_apis::HMILevel::eType hmi_level) const;

mobile_apis::VideoStreamingState::eType CalcVideoState(

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

missing description of the function?

Copy link

@yang1070 yang1070 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code change looks good,

@vkushnirenko-luxoft
Copy link
Contributor

Rebuild required

@yang1070
Copy link

@theresalech Ford reviewed and approve this change

@theresalech theresalech requested a review from jacobkeeler May 22, 2018 19:35
@AStasiuk
Copy link

@EKuliiev and @LuxoftAKutsan are working on fixing issue from Zhimin:

when 2nd app is in FULL, the 1st app shall be in LIMITED hmi level if either it is AUDIBLE or STREAMABLE or both.
If an app is in BACKGROUND, it shall be neither AUDIBLE, nor STREAMABLE.

But I have seen BACKGROUND app still is STREAMABLE or AUDIBLE during test.

@theresalech theresalech removed the request for review from jacobkeeler May 24, 2018 15:32
@EKuliiev EKuliiev force-pushed the feature/mobile_projection_2 branch from 37ed8a5 to 6cc4375 Compare May 25, 2018 16:16
@yang1070
Copy link

@theresalech Ford has tested and reviewed this work. Ford approve this change and it is ready for Livio to review. Thanks,

@@ -0,0 +1,76 @@
/**
\page application_manager Application Manager Detailed Design
## Table of contents
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this information should be added to a different repository: https://github.com/smartdevicelink/sdl_core_documentation

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JackLivio sdl_documentation contains the high-level Software Architecture design.
This is rather a low-level detailed design, that actually generated by Doxygen from the code.
Such implementation details should not be in SAD (software architecture design), the should be in SDD.

, app_mngr_(app_mngr)
, hmi_level_(mobile_apis::HMILevel::INVALID_ENUM)
, audio_streaming_state_(mobile_apis::AudioStreamingState::INVALID_ENUM)
, video_streaming_state_(mobile_apis::VideoStreamingState::INVALID_ENUM)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This modifies a deprecated method. The next version of SDL Core is 5.0 a major version change. The DEPRECATED tag can be removed

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JackLivio , agree.
see 3cec396

, app_mngr_(app_mngr)
, hmi_level_(mobile_apis::HMILevel::INVALID_ENUM)
, audio_streaming_state_(mobile_apis::AudioStreamingState::INVALID_ENUM)
, video_streaming_state_(mobile_apis::VideoStreamingState::INVALID_ENUM)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This modifies a deprecated method. The next version of SDL Core is 5.0 a major version change. The DEPRECATED tag can be removed

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JackLivio , agree.
see 3cec396

@EKuliiev EKuliiev force-pushed the feature/mobile_projection_2 branch from bc04fef to 3cec396 Compare June 6, 2018 16:46
@Jack-Byrne Jack-Byrne merged commit aaadc90 into develop Jun 13, 2018
@Jack-Byrne Jack-Byrne deleted the feature/mobile_projection_2 branch June 13, 2018 14:30
@jacobkeeler jacobkeeler mentioned this pull request Sep 11, 2018
1 task
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants