diff options
Diffstat (limited to 'gr-blocks/include/gnuradio/blocks/file_meta_sink.h')
-rw-r--r-- | gr-blocks/include/gnuradio/blocks/file_meta_sink.h | 148 |
1 files changed, 74 insertions, 74 deletions
diff --git a/gr-blocks/include/gnuradio/blocks/file_meta_sink.h b/gr-blocks/include/gnuradio/blocks/file_meta_sink.h index 36d44b545a..f967ea042c 100644 --- a/gr-blocks/include/gnuradio/blocks/file_meta_sink.h +++ b/gr-blocks/include/gnuradio/blocks/file_meta_sink.h @@ -27,89 +27,89 @@ #include <gnuradio/sync_block.h> namespace gr { - namespace blocks { +namespace blocks { - const char METADATA_VERSION = 0; - const size_t METADATA_HEADER_SIZE = 149; +const char METADATA_VERSION = 0; +const size_t METADATA_HEADER_SIZE = 149; - enum gr_file_types { - GR_FILE_BYTE=0, - GR_FILE_CHAR=0, - GR_FILE_SHORT=1, - GR_FILE_INT, - GR_FILE_LONG, - GR_FILE_LONG_LONG, - GR_FILE_FLOAT, - GR_FILE_DOUBLE, - }; +enum gr_file_types { + GR_FILE_BYTE = 0, + GR_FILE_CHAR = 0, + GR_FILE_SHORT = 1, + GR_FILE_INT, + GR_FILE_LONG, + GR_FILE_LONG_LONG, + GR_FILE_FLOAT, + GR_FILE_DOUBLE, +}; + +/*! + * \brief Write stream to file with meta-data headers. + * \ingroup file_operators_blk + * + * \details + * These files represent data as binary information in between + * meta-data headers. The headers contain information about the + * type of data and properties of the data in the next segment of + * samples. The information includes: + * + * \li rx_rate (double): sample rate of data. + * \li rx_time (uint64_t, double): time stamp of first sample in segment. + * \li size (uint32_t): item size in bytes. + * \li type (::gr_file_types as int32_t): data type. + * \li cplx (bool): Is data complex? + * \li strt (uint64_t): Starting byte of data in this segment. + * \li bytes (uint64_t): Size in bytes of data in this segment. + * + * Tags can be sent to the file to update the information, which + * will create a new header. Headers are found by searching from + * the first header (at position 0 in the file) and reading where + * the data segment starts plus the data segment size. Following + * will either be a new header or EOF. + */ +class BLOCKS_API file_meta_sink : virtual public sync_block +{ +public: + // gr::blocks::file_meta_sink::sptr + typedef boost::shared_ptr<file_meta_sink> sptr; /*! - * \brief Write stream to file with meta-data headers. - * \ingroup file_operators_blk - * - * \details - * These files represent data as binary information in between - * meta-data headers. The headers contain information about the - * type of data and properties of the data in the next segment of - * samples. The information includes: + * \brief Create a meta-data file sink. * - * \li rx_rate (double): sample rate of data. - * \li rx_time (uint64_t, double): time stamp of first sample in segment. - * \li size (uint32_t): item size in bytes. - * \li type (::gr_file_types as int32_t): data type. - * \li cplx (bool): Is data complex? - * \li strt (uint64_t): Starting byte of data in this segment. - * \li bytes (uint64_t): Size in bytes of data in this segment. - * - * Tags can be sent to the file to update the information, which - * will create a new header. Headers are found by searching from - * the first header (at position 0 in the file) and reading where - * the data segment starts plus the data segment size. Following - * will either be a new header or EOF. + * \param itemsize (size_t): Size of data type. + * \param filename (string): Name of file to write data to. + * \param samp_rate (double): Sample rate of data. If sample rate will be + * set by a tag, such as rx_tag from a UHD source, this is + * basically ignored. + * \param relative_rate (double): Rate chance from source of sample + * rate tag to sink. + * \param type (gr_file_types): Data type (int, float, etc.) + * \param complex (bool): If data stream is complex + * \param max_segment_size (size_t): Length of a single segment + * before the header is repeated (in items). + * \param extra_dict: a PMT dictionary of extra + * information. + * \param detached_header (bool): Set to true to store the header + * info in a separate file (named filename.hdr) */ - class BLOCKS_API file_meta_sink : virtual public sync_block - { - public: - // gr::blocks::file_meta_sink::sptr - typedef boost::shared_ptr<file_meta_sink> sptr; - - /*! - * \brief Create a meta-data file sink. - * - * \param itemsize (size_t): Size of data type. - * \param filename (string): Name of file to write data to. - * \param samp_rate (double): Sample rate of data. If sample rate will be - * set by a tag, such as rx_tag from a UHD source, this is - * basically ignored. - * \param relative_rate (double): Rate chance from source of sample - * rate tag to sink. - * \param type (gr_file_types): Data type (int, float, etc.) - * \param complex (bool): If data stream is complex - * \param max_segment_size (size_t): Length of a single segment - * before the header is repeated (in items). - * \param extra_dict: a PMT dictionary of extra - * information. - * \param detached_header (bool): Set to true to store the header - * info in a separate file (named filename.hdr) - */ - static sptr make(size_t itemsize, - const std::string &filename, - double samp_rate=1, - double relative_rate=1, - gr_file_types type=GR_FILE_FLOAT, - bool complex=true, - size_t max_segment_size=1000000, - pmt::pmt_t extra_dict=pmt::make_dict(), - bool detached_header=false); + static sptr make(size_t itemsize, + const std::string& filename, + double samp_rate = 1, + double relative_rate = 1, + gr_file_types type = GR_FILE_FLOAT, + bool complex = true, + size_t max_segment_size = 1000000, + pmt::pmt_t extra_dict = pmt::make_dict(), + bool detached_header = false); - virtual bool open(const std::string &filename) = 0; - virtual void close() = 0; - virtual void do_update() = 0; + virtual bool open(const std::string& filename) = 0; + virtual void close() = 0; + virtual void do_update() = 0; - virtual void set_unbuffered(bool unbuffered) = 0; - }; + virtual void set_unbuffered(bool unbuffered) = 0; +}; - } /* namespace blocks */ +} /* namespace blocks */ } /* namespace gr */ #endif /* INCLUDED_BLOCKS_FILE_META_SINK_H */ |