-
Notifications
You must be signed in to change notification settings - Fork 4.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
PR #12353 from Eran: refactor software-device, sensor.h, streaming.h
- Loading branch information
Showing
73 changed files
with
1,006 additions
and
709 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
// License: Apache 2.0. See LICENSE file in root directory. | ||
// Copyright(c) 2023 Intel Corporation. All Rights Reserved. | ||
|
||
#pragma once | ||
|
||
#include "options.h" | ||
#include "info-interface.h" | ||
#include <src/types.h> | ||
|
||
#include <vector> | ||
#include <memory> | ||
|
||
|
||
namespace librealsense { | ||
|
||
|
||
class synthetic_source_interface; | ||
class frame_holder; | ||
|
||
|
||
class processing_block_interface | ||
: public virtual options_interface | ||
, public virtual info_interface | ||
{ | ||
public: | ||
virtual ~processing_block_interface() = default; | ||
|
||
virtual void set_processing_callback( frame_processor_callback_ptr callback ) = 0; | ||
virtual void set_output_callback( frame_callback_ptr callback ) = 0; | ||
virtual void invoke( frame_holder frame ) = 0; | ||
virtual synthetic_source_interface & get_source() = 0; | ||
}; | ||
|
||
|
||
using processing_blocks = std::vector< std::shared_ptr< processing_block_interface > >; | ||
|
||
|
||
} // namespace librealsense |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
// License: Apache 2.0. See LICENSE file in root directory. | ||
// Copyright(c) 2023 Intel Corporation. All Rights Reserved. | ||
#pragma once | ||
|
||
#include "recommended-proccesing-blocks-interface.h" | ||
#include "extension.h" | ||
|
||
|
||
namespace librealsense | ||
{ | ||
class recommended_proccesing_blocks_base : public virtual recommended_proccesing_blocks_interface, public virtual recordable<recommended_proccesing_blocks_interface> | ||
{ | ||
public: | ||
recommended_proccesing_blocks_base(recommended_proccesing_blocks_interface* owner) | ||
:_owner(owner) | ||
{} | ||
|
||
virtual processing_blocks get_recommended_processing_blocks() const override { return _owner->get_recommended_processing_blocks(); }; | ||
|
||
virtual void create_snapshot(std::shared_ptr<recommended_proccesing_blocks_interface>& snapshot) const override | ||
{ | ||
snapshot = std::make_shared<recommended_proccesing_blocks_snapshot>(get_recommended_processing_blocks()); | ||
} | ||
|
||
virtual void enable_recording(std::function<void(const recommended_proccesing_blocks_interface&)> recording_function) override {} | ||
|
||
private: | ||
recommended_proccesing_blocks_interface* _owner; | ||
}; | ||
|
||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
// License: Apache 2.0. See LICENSE file in root directory. | ||
// Copyright(c) 2023 Intel Corporation. All Rights Reserved. | ||
|
||
#pragma once | ||
|
||
#include "processing-block-interface.h" | ||
#include "extension.h" | ||
|
||
#include <functional> | ||
#include <vector> | ||
|
||
|
||
namespace librealsense { | ||
|
||
|
||
class recommended_proccesing_blocks_interface | ||
{ | ||
public: | ||
virtual ~recommended_proccesing_blocks_interface() = default; | ||
|
||
virtual processing_blocks get_recommended_processing_blocks() const = 0; | ||
}; | ||
|
||
MAP_EXTENSION( RS2_EXTENSION_RECOMMENDED_FILTERS, librealsense::recommended_proccesing_blocks_interface ); | ||
|
||
|
||
class recommended_proccesing_blocks_snapshot | ||
: public recommended_proccesing_blocks_interface | ||
, public extension_snapshot | ||
{ | ||
public: | ||
recommended_proccesing_blocks_snapshot( const processing_blocks & blocks ) | ||
: _blocks( blocks ) | ||
{ | ||
} | ||
|
||
virtual processing_blocks get_recommended_processing_blocks() const override { return _blocks; } | ||
|
||
void update( std::shared_ptr< extension_snapshot > ext ) override {} | ||
|
||
processing_blocks _blocks; | ||
}; | ||
|
||
|
||
} // namespace librealsense |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
// License: Apache 2.0. See LICENSE file in root directory. | ||
// Copyright(c) 2023 Intel Corporation. All Rights Reserved. | ||
|
||
#pragma once | ||
|
||
#include "info-interface.h" | ||
#include "options.h" | ||
#include "recommended-proccesing-blocks-interface.h" | ||
|
||
#include "tagged-profile.h" | ||
|
||
#include <vector> | ||
#include <memory> | ||
|
||
|
||
namespace librealsense { | ||
|
||
|
||
class stream_profile_interface; | ||
class device_interface; | ||
|
||
|
||
class sensor_interface | ||
: public virtual info_interface | ||
, public virtual options_interface | ||
, public virtual recommended_proccesing_blocks_interface | ||
{ | ||
public: | ||
virtual ~sensor_interface() = default; | ||
|
||
virtual device_interface & get_device() = 0; | ||
|
||
using stream_profiles = std::vector< std::shared_ptr< stream_profile_interface > >; | ||
|
||
virtual stream_profiles get_stream_profiles( int tag = profile_tag::PROFILE_TAG_ANY ) const = 0; | ||
virtual stream_profiles get_active_streams() const = 0; | ||
virtual stream_profiles const & get_raw_stream_profiles() const = 0; | ||
|
||
virtual void open( const stream_profiles & requests ) = 0; | ||
virtual void start( frame_callback_ptr callback ) = 0; | ||
virtual void stop() = 0; | ||
virtual void close() = 0; | ||
|
||
virtual bool is_streaming() const = 0; | ||
|
||
virtual notifications_callback_ptr get_notifications_callback() const = 0; | ||
virtual void register_notifications_callback( notifications_callback_ptr callback ) = 0; | ||
|
||
virtual int register_before_streaming_changes_callback( std::function< void( bool ) > callback ) = 0; | ||
virtual void unregister_before_start_callback( int token ) = 0; | ||
|
||
virtual frame_callback_ptr get_frames_callback() const = 0; | ||
virtual void set_frames_callback( frame_callback_ptr cb ) = 0; | ||
}; | ||
|
||
|
||
} // namespace librealsense |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
// License: Apache 2.0. See LICENSE file in root directory. | ||
// Copyright(c) 2023 Intel Corporation. All Rights Reserved. | ||
#pragma once | ||
|
||
#include <librealsense2/h/rs_sensor.h> | ||
#include <memory> | ||
#include <vector> | ||
|
||
|
||
namespace librealsense { | ||
|
||
|
||
class stream_interface : public std::enable_shared_from_this< stream_interface > | ||
{ | ||
public: | ||
virtual ~stream_interface() = default; | ||
|
||
virtual int get_stream_index() const = 0; | ||
virtual void set_stream_index( int index ) = 0; | ||
|
||
virtual int get_unique_id() const = 0; | ||
virtual void set_unique_id( int uid ) = 0; | ||
|
||
virtual rs2_stream get_stream_type() const = 0; | ||
virtual void set_stream_type( rs2_stream stream ) = 0; | ||
}; | ||
|
||
|
||
// TODO this should be find_stream | ||
stream_interface * find_profile( rs2_stream stream, int index, std::vector< stream_interface * > const & profiles ); | ||
|
||
|
||
} // namespace librealsense |
Oops, something went wrong.