1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-07-27 17:42:27 -04:00
Commit Graph

263 Commits

Author SHA1 Message Date
Davide Gerhard
2e04d2fe9d
fix windows code to build with MSVC
- remove __attribute__((unused)) not supported on MSVC
- remove  __attribute((unused)) not supported on MSVC
- add symbol exports to RemoteDataReadQueue and RemoteDataQueue
- add export symbols to sdrsrv
2019-05-28 15:19:19 +02:00
Davide Gerhard
94d03f9004
remove useless CMAKE_CURRENT_BINARY_DIR 2019-05-21 20:19:30 +02:00
Davide Gerhard
23498ab24b
manage "correctly" plugins/pluginssrv folders 2019-05-21 20:19:25 +02:00
Davide Gerhard
dcfb7f6c97
cmake: full refactor to remove qmake and use cmake on all platforms 2019-05-21 20:19:25 +02:00
Davide Gerhard
fd642496b8
remove qmake project files
move to cmake only building system
2019-05-21 20:19:18 +02:00
f4exb
7e128335f1 Propagate change to channel UIs 2019-05-09 21:07:05 +02:00
f4exb
a5e9f251ef Single channel API 2019-05-09 17:27:12 +02:00
f4exb
9e628917dc Removed all obsolete references to devicesourceapi.h and devicesinkapi.h 2019-05-09 12:10:27 +02:00
f4exb
89e53cf179 Single DeviceAPI interface (1) 2019-05-08 22:11:53 +02:00
f4exb
54e46837dd REST API: changed binary tx parameter to ternary direction parameter (0: rx, 1: tx, 2: any) 2019-05-07 14:43:38 +02:00
f4exb
d504b060f9 REST API: added missing bits in some modulators and demodulators for reverse API 2019-04-20 19:53:16 +02:00
f4exb
ef15157a50 Fixed incomplete copyright headers (1) 2019-04-11 06:39:30 +02:00
f4exb
4e4d293e01 Reverse API originator information: implemented in all channel Rx plugins 2019-03-25 13:53:48 +01:00
f4exb
66efc10006 Merge branch 'dev' 2018-12-28 11:08:44 +01:00
ZigaS
b743943c70 Update to Qt 5.12.0.
Project files with MacOS clang RPATH to use proper paths for shared objects.
Minor path updates in favor of loading plugin libs.
Deployment script packaging using Qt way(macdeployqt).
2018-12-27 09:48:30 +01:00
f4exb
d13fb41927 Reverse API: channels: updated plugin versions 2018-12-24 14:52:53 +01:00
f4exb
98ae61f4e0 Reverse API: BFM demod 2018-12-22 07:16:15 +01:00
f4exb
2e58818776 Reverse API: right click dialog on start/stop button. Apply to RTL-SDR 2018-12-17 00:34:14 +01:00
f4exb
0e75cc3709 Wndows builds: removed reference to now obsolete MinGW64 toolchain 2018-12-14 17:49:06 +01:00
f4exb
4a69a7d39f Adaptation of cmake files to MSVC 2018-12-02 03:06:04 +01:00
f4exb
98a193e591 BFM demod: fixed iterator in RDS parser 2018-11-13 16:01:33 +01:00
f4exb
1dc466e604 Windows: MSVC2017: adapt channel analyzer, AM and ATV demods plugin modules 2018-11-13 16:02:26 +01:00
f4exb
dc2f25a00b Windows: MSVC2017: fixed more attribute unused cases (1) 2018-11-13 00:45:03 +01:00
f4exb
5771ef4783 Foolproof AudioFifo to try fix issue #210. Consequently removed useless timeout parameter on read and write methods 2018-09-12 15:30:53 +02:00
f4exb
f58cc3cc07 Renamed UDPSink to UDPSource 2018-09-11 22:36:16 +02:00
f4exb
f368c62329 Fixed power display going to floor value in some demods 2018-08-05 12:44:06 +02:00
Edouard GRIFFITHS
ea83e43d09 New Windows build 2018-07-11 18:05:05 +02:00
f4exb
d5f153ff75 Spectrum: added log/linear control 2018-07-04 23:11:28 +02:00
f4exb
5e1699c981 Bumped plugins version 2018-07-02 02:37:56 +02:00
f4exb
56e49baa3b Spectrum averaging: fixed average (1) 2018-07-01 02:16:59 +02:00
f4exb
e9658e0346 Spectrum averaging (2): moving average 2018-06-30 22:30:42 +02:00
f4exb
1eb8716a9f Fixes for Arch. Manual merge of pull request #183. DATV demod: fixed some of ffmpeg deprecation warnings 2018-06-13 00:20:51 +02:00
f4exb
f76fafe826 Windows build fix 2018-06-10 12:17:26 +02:00
f4exb
1770192116 Server: added WFM demod plugin 2018-05-29 11:14:24 +02:00
f4exb
c31a34ea41 BFM demod: code cosmetic changes 2018-05-29 10:59:30 +02:00
f4exb
f11cda633d BFM demod: fixed squelch to be compatible with server mode 2018-05-29 00:14:45 +02:00
f4exb
a8966789c0 Server: added BFM demod plugin 2018-05-28 11:52:24 +02:00
f4exb
e27ca22c86 BFM demod: fixed report mapper 2018-05-28 11:43:24 +02:00
f4exb
0c328546b0 WFM demod: implemeted WEB API 2018-05-25 10:08:47 +02:00
f4exb
c961fa368d Web API: fixes in BFM demod and HackRF input 2018-05-25 02:02:21 +02:00
f4exb
72e58534e3 Web API: BFM and DSD demod fixes. SSB demod: change clipping limiter constants 2018-05-24 18:23:08 +02:00
f4exb
8d7b581879 BFM demod: implemeted WEB API 2018-05-23 14:56:29 +02:00
beta-tester
8dca2d7b28 uniformed date format in Broadcast FM Demod 2018-05-11 11:35:10 +02:00
f4exb
c43ecc8afe Channel Rx plugins: use liberation font 2018-05-05 18:12:05 +02:00
f4exb
e206d65283
Merge pull request #162 from jigpu/spelling-fixes
Spelling fixes
2018-04-22 07:45:20 +02:00
f4exb
a099b05fb6
Merge pull request #164 from jigpu/memleak-fixes
Memleak fixes
2018-04-22 07:40:58 +02:00
Jason Gerecke
1eaae0de30 BFM demod: Delete the SpectrumVis when destroying BFMDemodGUI
Take care of a pair of memory leaks that occur when the BFM demod GUI
is closed.

==786== 19,952 (24 direct, 19,928 indirect) bytes in 1 blocks are definitely lost in loss record 7,065 of 7,081
==786==    at 0x4C2D54F: operator new(unsigned long) (vg_replace_malloc.c:334)
==786==    by 0x54C82ED: allocate (new_allocator.h:111)
==786==    by 0x54C82ED: allocate (alloc_traits.h:436)
==786==    by 0x54C82ED: _M_get_node (stl_list.h:383)
==786==    by 0x54C82ED: _M_create_node<FFTWEngine::Plan* const&> (stl_list.h:572)
==786==    by 0x54C82ED: _M_insert<FFTWEngine::Plan* const&> (stl_list.h:1801)
==786==    by 0x54C82ED: push_back (stl_list.h:1118)
==786==    by 0x54C82ED: FFTWEngine::configure(int, bool) (fftwengine.cpp:35)
==786==    by 0x4F4590B: SpectrumVis::handleConfigure(int, int, FFTWindow::Function) (spectrumvis.cpp:206)
==786==    by 0x4F459EE: SpectrumVis::handleMessage(Message const&) (spectrumvis.cpp:170)
==786==    by 0x548346C: BasebandSampleSink::handleInputMessages() (basebandsamplesink.cpp:21)
==786==    by 0x69E1615: QMetaObject::activate(QObject*, int, int, void**) (in /usr/lib/libQt5Core.so.5.10.1)
==786==    by 0x5497D4B: MessageQueue::push(Message*, bool) (messagequeue.cpp:52)
==786==    by 0x33F9D61A: BFMDemodGUI::BFMDemodGUI(PluginAPI*, DeviceUISet*, BasebandSampleSink*, QWidget*) (bfmdemodgui.cpp:352)
==786==    by 0x33F9D985: BFMDemodGUI::create(PluginAPI*, DeviceUISet*, BasebandSampleSink*) (bfmdemodgui.cpp:50)
==786==    by 0x33FB035D: non-virtual thunk to BFMPlugin::createRxChannelGUI(DeviceUISet*, BasebandSampleSink*) (bfmplugin.cpp:57)
==786==    by 0x4F47F19: DeviceUISet::loadRxChannelSettings(Preset const*, PluginAPI*) (deviceuiset.cpp:201)
==786==    by 0x4EA51EA: MainWindow::loadPresetSettings(Preset const*, int) (mainwindow.cpp:575)
==786==    by 0x4EAC81B: MainWindow::MainWindow(qtwebapp::LoggerWithFile*, MainParser const&, QWidget*) (mainwindow.cpp:176)
==786==    by 0x10A49B: runQtApplication(int, char**, qtwebapp::LoggerWithFile*) (main.cpp:120)
==786==    by 0x109B38: main (main.cpp:131)
==786==
==786== 54,096 (112 direct, 53,984 indirect) bytes in 1 blocks are definitely lost in loss record 7,075 of 7,081
==786==    at 0x4C2D54F: operator new(unsigned long) (vg_replace_malloc.c:334)
==786==    by 0x69E9162: QObject::QObject(QObject*) (in /usr/lib/libQt5Core.so.5.10.1)
==786==    by 0x5497BEE: MessageQueue::MessageQueue(QObject*) (messagequeue.cpp:26)
==786==    by 0x54834FF: BasebandSampleSink::BasebandSampleSink() (basebandsamplesink.cpp:6)
==786==    by 0x4F45A29: SpectrumVis::SpectrumVis(float, GLSpectrum*) (spectrumvis.cpp:26)
==786==    by 0x33F9D53C: BFMDemodGUI::BFMDemodGUI(PluginAPI*, DeviceUISet*, BasebandSampleSink*, QWidget*) (bfmdemodgui.cpp:342)
==786==    by 0x33F9D985: BFMDemodGUI::create(PluginAPI*, DeviceUISet*, BasebandSampleSink*) (bfmdemodgui.cpp:50)
==786==    by 0x33FB035D: non-virtual thunk to BFMPlugin::createRxChannelGUI(DeviceUISet*, BasebandSampleSink*) (bfmplugin.cpp:57)
==786==    by 0x4F47F19: DeviceUISet::loadRxChannelSettings(Preset const*, PluginAPI*) (deviceuiset.cpp:201)
==786==    by 0x4EA51EA: MainWindow::loadPresetSettings(Preset const*, int) (mainwindow.cpp:575)
==786==    by 0x4EAC81B: MainWindow::MainWindow(qtwebapp::LoggerWithFile*, MainParser const&, QWidget*) (mainwindow.cpp:176)
==786==    by 0x10A49B: runQtApplication(int, char**, qtwebapp::LoggerWithFile*) (main.cpp:120)
==786==    by 0x109B38: main (main.cpp:131)
2018-04-21 18:56:21 -07:00
Jason Gerecke
141997475c BFM demod: RDS demod: Initialize RDSDemod array elements
The m_parms.tot_errs array is not initialized prior to its first use
in the RDSDemod::biphase function. ASAN does not pick up on this
directly, but instead reports it as follows (note that ASAN fills
memory with 0xBE and -1094795586 is 0xBEBEBEBE):

    ./plugins/channelrx/demodbfm/rdsdemod.cpp:159:95: runtime error: signed
    integer overflow: -1094795586 + -1094795586 cannot be represented in type
    'int'

The m_parms.subcarr_bb array does not appear to be read prior to
initialization, but we initialize it to zero anyway for the sake
of good hygiene.
2018-04-21 18:54:19 -07:00
Jason Gerecke
f6ea7b216e Fix spelling errors present in UI files 2018-04-21 18:44:54 -07:00
f4exb
5c51297717 Moved FFT filter destruction at end of the mod or demod destructor 2018-04-18 22:20:47 +02:00
f4exb
01798c9d15 BFM demod: RDS parser: fixed compiler warning 2018-04-15 22:03:31 +02:00
f4exb
a37443fe58 BFM demod: bumped version 2018-04-12 00:13:40 +02:00
f4exb
2d0e0290a0 BFM demod: fixed RDS parser bug when processing optional content (issue #157) 2018-04-12 00:12:51 +02:00
f4exb
8dfdc1086c PVS-Studio static analysis corrections (4) 2018-04-04 23:39:31 +02:00
f4exb
53beb8a92d Removed UDP address and port from Channel marker 2018-03-30 19:06:27 +02:00
f4exb
3b882e78b4 BFM demod: removed UDP/RTP copy audio entirely 2018-03-28 09:43:33 +02:00
f4exb
44b4b3cc85 Multiple audio support: WFM demodulator 2018-03-28 07:44:54 +02:00
f4exb
ae0470218c Multiple audio support: BFM demodulator 2018-03-27 23:57:29 +02:00
f4exb
ebf3b1fc4b RTP fixes 2018-03-27 09:04:10 +02:00
f4exb
6f8d546ab7 BFM demod: removed copy to UDP/RTP 2018-03-27 00:30:21 +02:00
f4exb
745e187e2b Multiple audio support: extend audio output information to UDP/RTP information. New audio preferences dialog 2018-03-25 11:50:34 +02:00
f4exb
7aaa230eb4 Multiple audio support: added ability to manage more than one audio output 2018-03-24 23:50:28 +01:00
f4exb
15e62814de Multiple audio support: removed audio methods from DSP engine and use AudioDeviceManager instead 2018-03-24 03:36:49 +01:00
f4exb
170c59de43 Channel Rx demods: in constructor make sure the thread is launched when all members have been properly initialized (i.e. do it last) 2018-03-16 10:24:19 +01:00
f4exb
b2e446afcc Windows build: new location for export header 2018-03-10 20:32:46 +01:00
f4exb
dc9cb0463f BFM demod: implement RTP over UDP for audio copy 2018-03-10 07:03:11 +01:00
f4exb
28e9df5fe8 Clang clean compile 2018-03-04 01:47:51 +01:00
f4exb
2e5cfcafee PVS-Studio static analysis corrections (3) issue #137 2018-02-24 10:29:27 +01:00
f4exb
2b846f5d28 PVS-Studio static analysis corrections (2) issue #137 2018-02-22 03:04:42 +01:00
f4exb
67e664ef06 Fixed memory leak with handling of DSPSignalNotification message in modulators and demodulators. Removed reference to unused PIDController class 2018-02-14 20:11:36 +01:00
f4exb
0d2c0ca117 Revert "BFM demod: implemented use RTP protocol for audio over UDP"
This reverts commit d946ceffc8.
2018-02-06 01:18:13 +01:00
f4exb
dda124f1fb Revert "AM, BFM demods: use button switch for RTP switch"
This reverts commit 2ee3161b50.
2018-02-06 01:17:52 +01:00
f4exb
2ee3161b50 AM, BFM demods: use button switch for RTP switch 2018-02-05 18:25:31 +01:00
f4exb
d946ceffc8 BFM demod: implemented use RTP protocol for audio over UDP 2018-02-05 18:19:32 +01:00
f4exb
b0a97510e2 Moving average cleanup 2018-02-03 10:33:02 +01:00
f4exb
a47587e16f Specify Scope and Spectrum Vis floating point sample scale 2018-01-22 14:07:24 +01:00
f4exb
2ddcb8c358 Differentiate Rx and Tx DSP sample sizes 2018-01-22 08:46:05 +01:00
f4exb
491b8a6d33 Replaced hardcoded bit scaling literals by defines 2018-01-21 10:57:04 +01:00
f4exb
bde2f3447e BFM demod: fixed pilot power GUI display 2018-01-13 04:04:34 +01:00
f4exb
6885dd1fe6 All concerned demods: call applyChannelSettings with force=true at construction and start. 2018-01-09 00:59:10 +01:00
f4exb
0c39c9dfd3 BFM demod: RDSTMC: use char* instead of std::string for constant array 2017-12-31 11:54:56 +01:00
f4exb
ffa24cde9b BFM demod: RDSTMC: specify 0 value in array initialization 2017-12-31 11:45:47 +01:00
f4exb
723df69943 BFM and DSD demod: gcc7 warnings fixes 2017-12-31 03:16:30 +01:00
f4exb
3f96ce4187 BFM demod: set -fno-var-tracking-assignments for rdstmc.cpp as it makes compilation very busy and memory hungry for nothing. May fix compilation on RPi3 2017-12-31 02:14:46 +01:00
f4exb
d476736487 Demods : use specific method to apply channelizer sample rate and frequency offset changes. Separate this data from settings 2017-12-29 11:04:47 +01:00
f4exb
e39e080cc0 Channel source/sink APIs: removed useless getDeltaFrequency pure virtual method 2017-12-29 05:22:26 +01:00
f4exb
324aaa86b6 Plugins: cppcheck corrections 2017-12-29 03:22:04 +01:00
f4exb
31aacc9571 Plugin interface: simplify createRxChannelGUI 2017-12-23 10:32:02 +01:00
f4exb
703aa21159 Plugin interface: simplify createRxChannel 2017-12-23 09:54:42 +01:00
f4exb
514e408aac Server: Web API: /sdrangel/deviceset/{deviceSetIndex}/channel POST implementation and rework in the PluginInterface 2017-12-23 05:56:40 +01:00
f4exb
9dd707896d Use a name field in channels to be used in headless version to replace the GUI object name that was used as the name field 2017-12-20 23:57:06 +01:00
f4exb
e1ad61d692 Bumped version of all channel plugins 2017-12-18 00:06:01 +01:00
f4exb
6d12443100 Server: changes to support DeviceSet 2017-12-17 23:15:42 +01:00
f4exb
02e0945368 Web API: implemented /sdrangel/channels: Get a list of channel plugins available in this instance 2017-11-23 01:19:32 +01:00
f4exb
dc50ba1249 Web API: report Rx channel info summary 2017-11-19 18:18:17 +01:00
f4exb
b91ad7c4b7 Web API: added channel enumeration in /sdrangel GET. Partial implementation in channel plugins 2017-11-19 03:38:07 +01:00
f4exb
3db655fe61 Highlight demod frame when the marker is highlighted on the spectrum 2017-11-14 22:58:35 +01:00
f4exb
f6337e4597 Bumped version to 3.8.4 2017-11-14 01:50:14 +01:00
f4exb
a182656294 BFM Demod: applied new channel marker signal handling 2017-11-14 01:23:01 +01:00
f4exb
8958edd4be BFM demod: fixed spectrum gui update when channel sample rate changes 2017-11-12 14:58:52 +01:00
f4exb
c4e26bf66d Rx channel plugins: use the demodulator constructor separated from the demodulator GUI constructor 2017-11-09 01:03:05 +01:00
f4exb
4ad038ed9d Created demod constructor method in all Rx channel plugins 2017-11-08 14:23:49 +01:00
f4exb
76bf0ad104 Rx plugins: removed useless create method in private slot 2017-11-08 00:03:12 +01:00
f4exb
9ff05baa70 Renamed createRxChannel to createRxChannelGUI to described only the GUI will be created there in the future 2017-11-07 23:49:27 +01:00
f4exb
95f9df8396 Moved m_deviceAPI->addThreadedSource at the end of the constructor sequence in all channel plugins 2017-11-06 01:39:44 +01:00
f4exb
7370eba0f7 Bumped version to v3.8.0 2017-11-01 14:58:36 +01:00
f4exb
e206fc84a8 Create channel registration methods for the Tx part in DeviceUISet 2017-10-31 22:37:57 +01:00
f4exb
a61bb04dac Rx Channel plugins now handled via DeviceUISet 2017-10-31 08:24:05 +01:00
f4exb
a106deeaf7 Make a static getter of Main Window reference as it is de facto a singleton. Use it in place of plugin API getter 2017-10-24 13:45:10 +02:00
f4exb
fa77ca3fb6 Code re-organization in two libraries sdrbase and sdrgui in view of core / GUI split 2017-10-22 19:12:43 +02:00
f4exb
e36a6a0eb7 BFM demod: bumped version 2017-10-21 10:35:49 +02:00
f4exb
32f284a0de BFM demod: fixed missing channel configuration message handling 2017-10-21 10:35:03 +02:00
f4exb
8c2483a850 Demod GUI corrections 2017-10-12 01:21:30 +02:00
f4exb
f19572ed0e BFM plugin: fixed channel marker save to settings 2017-10-08 03:47:18 +02:00
f4exb
6095cf549c BFM demod: use settings in the demod 2017-10-01 20:17:20 +02:00
f4exb
5192d7fe59 BFM demod: use settings in the GUI only 2017-10-01 19:20:56 +02:00
f4exb
edd0adde3b BFM demod: created a settings class 2017-10-01 17:54:48 +02:00
f4exb
f10d486b28 BFM demod: fixed segfault 2017-10-01 16:02:34 +02:00
f4exb
b646d0c89f BFM demod: GUI and demod separation 2017-10-01 12:48:31 +02:00
f4exb
a9d1b2ef65 BFM demod: moved RDS parser in the demod 2017-10-01 11:50:16 +02:00
f4exb
0b6eb2129a Reset PluginInstanceGUI to its original name 2017-09-26 00:22:08 +02:00
f4exb
da8857e0e1 Windows build fixes 2017-09-23 17:19:58 +02:00
f4exb
a9a514993b Windows build: corrections for the new tool chain 2017-09-18 13:41:08 +02:00
f4exb
2b4f8a0f55 Implemented GUI input message queue and interface 2017-09-16 22:23:31 +02:00
f4exb
1d4cb21bb5 Separate construction/destruction for the source input plugin core and the GUI 2017-09-16 10:45:08 +02:00
f4exb
a6d6a717ae GUI segregation: renamed PluginGUI interface to PluginInstanceUI 2017-09-03 19:55:00 +02:00
f4exb
70de05f060 DSD demodulator: use channel marker serializer/deserializer 2017-08-26 14:36:38 +02:00
f4exb
7af90583fe BFM demodulator: use channel marker serializer/deserializer 2017-08-26 14:30:55 +02:00
f4exb
27d504e1ac AM demod: implement copy audio to UDP and basic channel settings dialog 2017-08-26 05:32:01 +02:00
f4exb
3b03da44b9 BFM demod: serialize/deserialize all channel marker parameters 2017-08-26 03:56:03 +02:00
f4exb
d84b69633c DSD and BFM demods: fixed UDP copy button tooltip when port changes 2017-08-25 18:58:53 +02:00
f4exb
8a60af3e52 BFM demod: added basic channel settings dialog and copy audio to UDP option 2017-08-25 18:56:43 +02:00
f4exb
511686f820 Use new audio fifo based on audio sample type 2017-08-25 00:02:49 +02:00
f4exb
d98d8757b0 Moved audio sample definitions to dsp types definitions 2017-08-24 15:24:28 +02:00
f4exb
3a3d8e3dcb activated compiler warnings 2017-05-25 20:13:34 +02:00
f4exb
1899ca788c BFM demod: use ValueDialZ for channel delta frequency value dial 2017-05-17 23:52:10 +02:00
f4exb
579c05cfe5 Use doubles for all power calculations 2017-05-16 23:39:49 +02:00
f4exb
dafad384c8 Merged Sigysmund changes for Mac OS Sierra on v3.4.5 2017-05-16 23:01:44 +02:00
f4exb
bb849623bd updated value dials with Windows compatible font and pointing hand 2017-05-16 22:35:44 +02:00
f4exb
007ea19e36 Bumped version to 3.5.0 2017-05-16 18:38:39 +02:00
f4exb
6f9ef0eaf9 New value dial color schemes: propagate to all active plugins 2017-05-16 18:27:36 +02:00
f4exb
416817d0b8 Mods and demods: prevent returning null or infinite values for squared magnitude 2017-05-16 17:46:44 +02:00
f4exb
c9368a4dc0 Unixify some files 2017-05-16 16:16:05 +02:00
ZigaS
27aab58d92 MacOS(sierra) development environment.
Updated qmake project configs.
Deploy & Run script.
For now only hardware supported is HackRF.
2017-05-15 12:32:16 +02:00
f4exb
ffb6ad3009 Use double storage type for all moving average instances 2017-05-12 00:03:56 +02:00
f4exb
cf267b1254 Code warnings in Eclipse cleanup 2017-05-05 10:40:45 +02:00
f4exb
376df032f5 BFM Demod: since channel marker and window title have fixed colors set both once in the constructor 2017-03-18 17:55:28 +01:00
f4exb
0ad22f3cd4 BFM demod: fixed requiredBW method 2017-01-08 20:11:01 +01:00
f4exb
25e171bf90 Signal meter: adjust font 2016-12-07 02:53:10 +01:00
f4exb
dc13a62820 BFM demod GUI: adjust minimum size 2016-12-07 02:29:32 +01:00