You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(5) |
Jul
(22) |
Aug
(97) |
Sep
(33) |
Oct
(30) |
Nov
(79) |
Dec
(41) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(85) |
Feb
(21) |
Mar
(94) |
Apr
(83) |
May
(159) |
Jun
(30) |
Jul
(41) |
Aug
(11) |
Sep
(30) |
Oct
(46) |
Nov
(93) |
Dec
(21) |
2009 |
Jan
|
Feb
(4) |
Mar
(14) |
Apr
(15) |
May
(23) |
Jun
(18) |
Jul
(17) |
Aug
(40) |
Sep
(26) |
Oct
(23) |
Nov
(38) |
Dec
(30) |
2010 |
Jan
(26) |
Feb
(10) |
Mar
(3) |
Apr
(13) |
May
(23) |
Jun
(17) |
Jul
(11) |
Aug
(10) |
Sep
(23) |
Oct
(17) |
Nov
(2) |
Dec
(20) |
2011 |
Jan
(6) |
Feb
(8) |
Mar
(10) |
Apr
(15) |
May
(2) |
Jun
|
Jul
(5) |
Aug
(2) |
Sep
(3) |
Oct
(5) |
Nov
(8) |
Dec
(10) |
2012 |
Jan
(3) |
Feb
(31) |
Mar
(52) |
Apr
(26) |
May
(27) |
Jun
(16) |
Jul
(17) |
Aug
(5) |
Sep
(41) |
Oct
(5) |
Nov
(9) |
Dec
(5) |
2013 |
Jan
(4) |
Feb
(6) |
Mar
(12) |
Apr
(30) |
May
(9) |
Jun
(17) |
Jul
(15) |
Aug
(34) |
Sep
(29) |
Oct
(38) |
Nov
(5) |
Dec
(9) |
2014 |
Jan
(7) |
Feb
(9) |
Mar
(13) |
Apr
(2) |
May
(39) |
Jun
(4) |
Jul
|
Aug
|
Sep
(5) |
Oct
|
Nov
|
Dec
|
From: <tr...@ff...> - 2014-09-28 16:08:20
|
Author: philippe Date: 2014-09-28 09:08:13 -0700 (Sun, 28 Sep 2014) New Revision: 2548 Modified: trunk/libffado/support/mixer-qt4/ffado/mixer/Saffire_Pro40_monitoring.ui trunk/libffado/support/mixer-qt4/ffado/mixer/saffire_dice.py Log: Saffire Pro 40: introduce the ADAT as SPDIF switch as a control of ffado mixer, including routing update. Modified: trunk/libffado/support/mixer-qt4/ffado/mixer/Saffire_Pro40_monitoring.ui =================================================================== --- trunk/libffado/support/mixer-qt4/ffado/mixer/Saffire_Pro40_monitoring.ui 2014-09-28 16:03:17 UTC (rev 2547) +++ trunk/libffado/support/mixer-qt4/ffado/mixer/Saffire_Pro40_monitoring.ui 2014-09-28 16:08:13 UTC (rev 2548) @@ -1417,72 +1417,33 @@ <property name="geometry"> <rect> <x>880</x> - <y>20</y> + <y>60</y> <width>201</width> - <height>231</height> + <height>141</height> </rect> </property> - <layout class="QGridLayout" name="LineInSwitchesMain"> + <layout class="QGridLayout" name="GlobalSwitchesMain"> <item row="0" column="0"> - <widget class="QGroupBox" name="LineInSwitches"> + <widget class="QGroupBox" name="GlobalSwitches"> <property name="enabled"> <bool>true</bool> </property> <property name="title"> - <string>Line/In switches</string> + <string/> </property> - <widget class="QCheckBox" name="LineInstSwitch_1"> + <widget class="QCheckBox" name="AdatSpdif"> <property name="geometry"> <rect> <x>20</x> - <y>40</y> + <y>10</y> <width>171</width> <height>30</height> </rect> </property> <property name="text"> - <string>Instrument Line/In 1</string> + <string>ADAT as SPDIF</string> </property> </widget> - <widget class="QCheckBox" name="LineInstSwitch_2"> - <property name="geometry"> - <rect> - <x>20</x> - <y>80</y> - <width>171</width> - <height>30</height> - </rect> - </property> - <property name="text"> - <string>Instrument Line/In 2</string> - </property> - </widget> - <widget class="QCheckBox" name="HiLoGain_3"> - <property name="geometry"> - <rect> - <x>20</x> - <y>130</y> - <width>151</width> - <height>30</height> - </rect> - </property> - <property name="text"> - <string>Hi gain Line/In 3</string> - </property> - </widget> - <widget class="QCheckBox" name="HiLoGain_4"> - <property name="geometry"> - <rect> - <x>20</x> - <y>180</y> - <width>151</width> - <height>30</height> - </rect> - </property> - <property name="text"> - <string>Hi gain Line/In 4</string> - </property> - </widget> </widget> </item> </layout> Modified: trunk/libffado/support/mixer-qt4/ffado/mixer/saffire_dice.py =================================================================== --- trunk/libffado/support/mixer-qt4/ffado/mixer/saffire_dice.py 2014-09-28 16:03:17 UTC (rev 2547) +++ trunk/libffado/support/mixer-qt4/ffado/mixer/saffire_dice.py 2014-09-28 16:08:13 UTC (rev 2548) @@ -248,8 +248,10 @@ p = LineInfo(widget.LineVolume_10, DiscreteControl(self.hw, self.hw.basepath+"/EAP/Monitoring/LineOut/Volume10")) self.LineVolumes.append(p) - # No Line/Inst switch control from interface for Pro40 - widget.LineInSwitches.setVisible(False) + # Adat/Spdif switch control from interface for Pro40 + self.adatSpdifInterface = BooleanControl(self.hw, self.hw.basepath+"/EAP/Monitoring/AdatSpdif/State") + widget.AdatSpdif.setChecked(self.adatSpdifInterface.selected()) + self.connect(widget.AdatSpdif, QtCore.SIGNAL("toggled(bool)"), self.adatSpdifToggle) else: # Line/Inst and Hi/Lo switches for Pro14 and 24 @@ -303,6 +305,12 @@ def dimToggle(self, dim): self.dimInterface.select(dim) self.DimLevel.setEnabled(dim) + def adatSpdifToggle(self, spdif): + self.adatSpdifInterface.select(spdif) + # FIXME + # Here we should consider that router configuration has changed inside the device + # so that the device has to be rediscovered by the dbus (as it is the case when + self.onSamplerateChange() def HWToggle(self, HW): for i in range(self.nbLines): |
From: <tr...@ff...> - 2014-09-28 16:03:25
|
Author: philippe Date: 2014-09-28 09:03:17 -0700 (Sun, 28 Sep 2014) New Revision: 2547 Modified: trunk/libffado/src/dice/focusrite/focusrite_eap.h trunk/libffado/src/dice/focusrite/saffire_pro40.cpp trunk/libffado/src/dice/focusrite/saffire_pro40.h Log: Saffire Pro 40: introduce detection of ADAT as SPDIF switch register; introduce accounting for routing; prepare control switch for ffado-mixer. Modified: trunk/libffado/src/dice/focusrite/focusrite_eap.h =================================================================== --- trunk/libffado/src/dice/focusrite/focusrite_eap.h 2014-09-24 17:32:13 UTC (rev 2546) +++ trunk/libffado/src/dice/focusrite/focusrite_eap.h 2014-09-28 16:03:17 UTC (rev 2547) @@ -45,6 +45,7 @@ // One register for each #define FOCUSRITE_EAP_GLOBAL_MUTE_SWITCH_VALUE 1 #define FOCUSRITE_EAP_GLOBAL_DIM_SWITCH_VALUE 1 +#define FOCUSRITE_EAP_ADATSPDIF_SWITCH_VALUE 1 // Per Line/Out switch monitor registers; bit encoding // Each register controls two (left and rigth) Line/Out Modified: trunk/libffado/src/dice/focusrite/saffire_pro40.cpp =================================================================== --- trunk/libffado/src/dice/focusrite/saffire_pro40.cpp 2014-09-24 17:32:13 UTC (rev 2546) +++ trunk/libffado/src/dice/focusrite/saffire_pro40.cpp 2014-09-28 16:03:17 UTC (rev 2547) @@ -30,23 +30,44 @@ namespace Dice { namespace Focusrite { +// ADAT as SPDIF state +bool SaffirePro40::SaffirePro40EAP::getADATSPDIF_state() { + quadlet_t state_tmp; + bool adatspdif = false; + + if (!readReg(Dice::EAP::eRT_Application, SAFFIRE_PRO40_REGISTER_APP_ADATSPDIF_SWITCH_CONTROL, + &state_tmp)) { + debugWarning("Could not read ADAT/SPDIF switch register: assume ADAT \n"); + } + else { + adatspdif = (state_tmp&FOCUSRITE_EAP_ADATSPDIF_SWITCH_VALUE)?true:false; + } + return adatspdif; +} + // // Under 48kHz Saffire pro 40 has // - 8 analogic inputs (mic/line) -// - 8 ADAT inputs +// - 8 ADAT inputs or 2 optical SPDIF inputs // - 2 SPDIF inputs // - 20 ieee1394 inputs // - 18 mixer inputs // // - 10 analogic outputs -// - 8 ADAT outputs +// - 8 ADAT outputs or 0 optical SPDIF outputs // - 2 SPDIF outputs // - 20 ieee1394 outputs // - 16 mixer outputs // void SaffirePro40::SaffirePro40EAP::setupSources_low() { + bool adatspdif = getADATSPDIF_state(); + addSource("SPDIF/In", 0, 2, eRS_AES, 1); - addSource("ADAT/In", 0, 8, eRS_ADAT, 1); + if (!adatspdif) { + addSource("ADAT/In", 0, 8, eRS_ADAT, 1); + } else { + addSource("SPDIF/In", 4, 2, eRS_AES, 3); + } addSource("Mic/Lin/Inst", 0, 2, eRS_InS1, 1); addSource("Mic/Lin/In", 2, 6, eRS_InS1, 3); addSource("Mixer/Out", 0, 16, eRS_Mixer, 1); @@ -56,8 +77,12 @@ } void SaffirePro40::SaffirePro40EAP::setupDestinations_low() { + bool adatspdif = getADATSPDIF_state(); + addDestination("SPDIF/Out", 0, 2, eRD_AES, 1); - addDestination("ADAT/Out", 0, 8, eRD_ADAT, 1); + if (!adatspdif) { + addDestination("ADAT/Out", 0, 8, eRD_ADAT, 1); + } addDestination("Line/Out", 0, 2, eRD_InS0, 1); addDestination("Line/Out", 0, 8, eRD_InS1, 3); addDestination("Mixer/In", 0, 16, eRD_Mixer0, 1); @@ -84,8 +109,14 @@ // - 16 mixer outputs // void SaffirePro40::SaffirePro40EAP::setupSources_mid() { + bool adatspdif = getADATSPDIF_state(); + addSource("SPDIF/In", 0, 2, eRS_AES, 1); - addSource("ADAT/In", 0, 4, eRS_ADAT, 1); + if (!adatspdif) { + addSource("ADAT/In", 0, 4, eRS_ADAT, 1); + } else { + addSource("SPDIF/In", 4, 2, eRS_AES, 3); + } addSource("Mic/Lin/Inst", 0, 2, eRS_InS1, 1); addSource("Mic/Lin/In", 2, 6, eRS_InS1, 3); addSource("Mixer/Out", 0, 16, eRS_Mixer, 1); @@ -94,8 +125,12 @@ } void SaffirePro40::SaffirePro40EAP::setupDestinations_mid() { + bool adatspdif = getADATSPDIF_state(); + addDestination("SPDIF/Out", 0, 2, eRD_AES, 1); - addDestination("ADAT/Out", 0, 4, eRD_ADAT, 1); + if (!adatspdif) { + addDestination("ADAT/Out", 0, 4, eRD_ADAT, 1); + } addDestination("Line/Out", 0, 2, eRD_InS0, 1); addDestination("Line/Out", 0, 8, eRD_InS1, 3); addDestination("Mixer/In", 0, 16, eRD_Mixer0, 1); @@ -239,6 +274,26 @@ /** * Pro 40 Monitor section */ +// Subclassed switch +SaffirePro40::SaffirePro40EAP::Switch::Switch(Dice::Focusrite::FocusriteEAP* eap, std::string name, + size_t offset, int activevalue, size_t msgset_offset, int msgset_value) + : FocusriteEAP::Switch(eap, name, offset, activevalue, msgset_offset, msgset_value) + , m_eap(eap) + , m_name(name) + , m_offset(offset) + , m_activevalue(activevalue) + , m_msgset_offset(msgset_offset) + , m_msgset_value(msgset_value) +{ + debugOutput( DEBUG_LEVEL_VERBOSE, "Create Pro 40 Switch %s)\n", m_name.c_str()); +} + +bool SaffirePro40::SaffirePro40EAP::Switch::select(bool n) { + bool is_selected = FocusriteEAP::Switch::select(n); + m_eap->update(); + return is_selected; +} + SaffirePro40::SaffirePro40EAP::MonitorSection::MonitorSection(Dice::Focusrite::FocusriteEAP* eap, std::string name) : Control::Container(eap, name) , m_eap(eap) @@ -254,6 +309,17 @@ SAFFIRE_PRO40_MESSAGE_SET_GLOBAL_DIM_MUTE_SWITCH); grp_globalmute->addElement(mute); + // ADAT as optical SPDIF switch control + Control::Container* grp_adatspdif = new Control::Container(m_eap, "AdatSpdif"); + addElement(grp_adatspdif); + SaffirePro40::SaffirePro40EAP::Switch* adatspdif = + new SaffirePro40::SaffirePro40EAP::Switch( + m_eap, "State", + SAFFIRE_PRO40_REGISTER_APP_ADATSPDIF_SWITCH_CONTROL, + FOCUSRITE_EAP_ADATSPDIF_SWITCH_VALUE, + SAFFIRE_PRO40_REGISTER_APP_MESSAGE_SET, + SAFFIRE_PRO40_MESSAGE_SET_INSTLINE); + grp_adatspdif->addElement(adatspdif); // Global Dim control Control::Container* grp_globaldim = new Control::Container(m_eap, "GlobalDim"); Modified: trunk/libffado/src/dice/focusrite/saffire_pro40.h =================================================================== --- trunk/libffado/src/dice/focusrite/saffire_pro40.h 2014-09-24 17:32:13 UTC (rev 2546) +++ trunk/libffado/src/dice/focusrite/saffire_pro40.h 2014-09-28 16:03:17 UTC (rev 2547) @@ -58,8 +58,11 @@ #define SAFFIRE_PRO40_REGISTER_APP_LINEOUT_MONITOR_VOLUME 0x14 #define SAFFIRE_PRO40_REGISTER_APP_LINEOUT_MONITOR_SWITCH 0x28 -// Switch control (per line/out mute, dim and mono) +// Switch controls +// per line/out mute, dim and mono #define SAFFIRE_PRO40_REGISTER_APP_LINEOUT_SWITCH_CONTROL 0x3C +// ADAT as SPDIF +#define SAFFIRE_PRO40_REGISTER_APP_ADATSPDIF_SWITCH_CONTROL 0x5C // Message set // The location of the message register and the values for each setting @@ -95,6 +98,9 @@ private: class SaffirePro40EAP : public FocusriteEAP { + private: + // Adat as Spdif register state required to adapt the router settings + bool getADATSPDIF_state(); public: SaffirePro40EAP(Dice::Device& dev) : FocusriteEAP(dev) { } @@ -109,6 +115,22 @@ void setupDefaultRouterConfig_mid(); void setupDefaultRouterConfig_high(); + // Pro 40 requires a specific switch which updates the view of the routing + // (essentially the ADAT/SPDIF switch) + class Switch : public FocusriteEAP::Switch + { + public: + Switch(Dice::Focusrite::FocusriteEAP*, std::string, size_t, int, size_t, int); + bool select(bool); + private: + Dice::Focusrite::FocusriteEAP* m_eap; + std::string m_name; + size_t m_offset; + int m_activevalue; + size_t m_msgset_offset; + int m_msgset_value; + }; + class MonitorSection : public Control::Container { public: @@ -116,6 +138,7 @@ private: Dice::Focusrite::FocusriteEAP* m_eap; }; + }; Dice::EAP* createEAP(); |
From: <tr...@ff...> - 2014-09-24 17:32:29
|
Author: philippe Date: 2014-09-24 10:32:13 -0700 (Wed, 24 Sep 2014) New Revision: 2546 Modified: trunk/libffado/support/mixer-qt4/ffado/widgets/matrixmixer.py Log: MatrixMixer: add the requirement of pressing the Control key for having mouse wheel controlling the value inside a box rather than scrolling the window. Modified: trunk/libffado/support/mixer-qt4/ffado/widgets/matrixmixer.py =================================================================== --- trunk/libffado/support/mixer-qt4/ffado/widgets/matrixmixer.py 2014-09-13 03:17:30 UTC (rev 2545) +++ trunk/libffado/support/mixer-qt4/ffado/widgets/matrixmixer.py 2014-09-24 17:32:13 UTC (rev 2546) @@ -213,6 +213,17 @@ del self.tmpvalue ev.accept() + # Wheel event is mainly for scrolling inside the mixer window + # Additionnaly press Control key for wheel controling the values + def wheelEvent (self, ev): + if (ev.modifiers() & Qt.Qt.ControlModifier): + tmpvalue = self.value() + change = ev.delta()/8 + self.setValue( tmpvalue + math.copysign(pow(abs(change), 2), change) ) + ev.accept() + else: + ev.ignore() + def paintEvent(self, ev): p = QtGui.QPainter(self) rect = self.rect() |
From: <tr...@ff...> - 2014-09-13 03:42:05
|
Author: jwoithe Date: 2014-09-12 20:15:13 -0700 (Fri, 12 Sep 2014) New Revision: 2544 Modified: trunk/libffado/src/fireworks/efc/efc_cmds_ioconfig.cpp Log: fireworks: fix initialisation of the EFC play/record maps. Problem spotted by David Binderman, via contact form. Thanks David. Modified: trunk/libffado/src/fireworks/efc/efc_cmds_ioconfig.cpp =================================================================== --- trunk/libffado/src/fireworks/efc/efc_cmds_ioconfig.cpp 2014-06-02 00:08:29 UTC (rev 2543) +++ trunk/libffado/src/fireworks/efc/efc_cmds_ioconfig.cpp 2014-09-13 03:15:13 UTC (rev 2544) @@ -179,8 +179,8 @@ m_category_id = EFC_CAT_IO_CONFIG; m_reg = eCR_IsocMap; m_type = eCT_Get; - memset(m_playmap, EFC_MAX_ISOC_MAP_ENTRIES, 0); - memset(m_recmap, EFC_MAX_ISOC_MAP_ENTRIES, 0); + memset(m_playmap, 0, sizeof(m_playmap)); + memset(m_recmap, 0, sizeof(m_recmap)); } bool EfcIsocMapIOConfigCmd::serialize( Util::Cmd::IOSSerialize& se ) |
From: <tr...@ff...> - 2014-09-13 03:27:47
|
Author: jwoithe Date: 2014-09-12 20:17:30 -0700 (Fri, 12 Sep 2014) New Revision: 2545 Modified: branches/2.2.x/libffado/src/fireworks/efc/efc_cmds_ioconfig.cpp Log: fireworks: fix initialisation of the EFC play/record maps. Problem spotted by David Binderman, via contact form. Thanks David. Backport from r2544 in trunk. Modified: branches/2.2.x/libffado/src/fireworks/efc/efc_cmds_ioconfig.cpp =================================================================== --- branches/2.2.x/libffado/src/fireworks/efc/efc_cmds_ioconfig.cpp 2014-09-13 03:15:13 UTC (rev 2544) +++ branches/2.2.x/libffado/src/fireworks/efc/efc_cmds_ioconfig.cpp 2014-09-13 03:17:30 UTC (rev 2545) @@ -179,8 +179,8 @@ m_category_id = EFC_CAT_IO_CONFIG; m_reg = eCR_IsocMap; m_type = eCT_Get; - memset(m_playmap, EFC_MAX_ISOC_MAP_ENTRIES, 0); - memset(m_recmap, EFC_MAX_ISOC_MAP_ENTRIES, 0); + memset(m_playmap, 0, sizeof(m_playmap)); + memset(m_recmap, 0, sizeof(m_recmap)); } bool EfcIsocMapIOConfigCmd::serialize( Util::Cmd::IOSSerialize& se ) |
From: <tr...@ff...> - 2014-06-02 00:08:36
|
Author: jwoithe Date: 2014-06-01 17:08:29 -0700 (Sun, 01 Jun 2014) New Revision: 2543 Added: tags/2.2.1/ Log: Tag version 2.2.1. This bugfix version fixes DEBUG=no compilation failures. |
From: <tr...@ff...> - 2014-06-02 00:01:35
|
Author: jwoithe Date: 2014-06-01 17:01:27 -0700 (Sun, 01 Jun 2014) New Revision: 2542 Modified: branches/2.2.x/libffado/SConstruct Log: 2.2.x: bump version number to 2.2.1 Modified: branches/2.2.x/libffado/SConstruct =================================================================== --- branches/2.2.x/libffado/SConstruct 2014-06-02 00:00:10 UTC (rev 2541) +++ branches/2.2.x/libffado/SConstruct 2014-06-02 00:01:27 UTC (rev 2542) @@ -24,7 +24,7 @@ # FFADO_API_VERSION = "9" -FFADO_VERSION="2.2.0" +FFADO_VERSION="2.2.1" from subprocess import Popen, PIPE import os |
From: <tr...@ff...> - 2014-06-02 00:00:18
|
Author: jwoithe Date: 2014-06-01 17:00:10 -0700 (Sun, 01 Jun 2014) New Revision: 2541 Modified: branches/2.2.x/libffado/src/libieee1394/IsoHandlerManager.cpp branches/2.2.x/libffado/src/libieee1394/test-cyclecalc.cpp branches/2.2.x/libffado/src/libstreaming/amdtp/AmdtpReceiveStreamProcessor.cpp branches/2.2.x/libffado/src/libstreaming/amdtp/AmdtpTransmitStreamProcessor.cpp branches/2.2.x/libffado/src/libutil/TimestampedBuffer.cpp Log: Fix DEBUG=no compilation errors. Backport from r2540 in trunk. Modified: branches/2.2.x/libffado/src/libieee1394/IsoHandlerManager.cpp =================================================================== --- branches/2.2.x/libffado/src/libieee1394/IsoHandlerManager.cpp 2014-06-01 23:49:28 UTC (rev 2540) +++ branches/2.2.x/libffado/src/libieee1394/IsoHandlerManager.cpp 2014-06-02 00:00:10 UTC (rev 2541) @@ -1021,8 +1021,12 @@ { IsoHandler *h = getHandlerForStream(stream); if (h) { + #ifdef DEBUG debugOutputShort( DEBUG_LEVEL_NORMAL, " Packets, Dropped, Skipped : %d, %d, %d\n", h->m_packets, h->m_dropped, h->m_skipped); + #else + debugOutputShort( DEBUG_LEVEL_NORMAL, " Packets : %d\n", h->m_packets); + #endif } else { debugError("No handler for stream %p??\n", stream); } Modified: branches/2.2.x/libffado/src/libieee1394/test-cyclecalc.cpp =================================================================== --- branches/2.2.x/libffado/src/libieee1394/test-cyclecalc.cpp 2014-06-01 23:49:28 UTC (rev 2540) +++ branches/2.2.x/libffado/src/libieee1394/test-cyclecalc.cpp 2014-06-02 00:00:10 UTC (rev 2541) @@ -38,12 +38,11 @@ * */ - #ifdef DEBUG + #ifdef DEBUG_MESSAGES uint32_t now_ctr = 0x140001DA; uint64_t now = CYCLE_TIMER_TO_TICKS(0x140001DA); unsigned int cycle = 7968; uint16_t syt = 0x583B; - #endif debugOutput(DEBUG_LEVEL_VERBOSE,"NOW_CTR : %08X (%03us %04uc %04ut)\n", now_ctr, @@ -63,16 +62,16 @@ (unsigned int)CYCLE_TIMER_GET_OFFSET(syt)); debugOutput(DEBUG_LEVEL_VERBOSE,"CYCLE : %uc\n", cycle); - #ifdef DEBUG uint64_t calc_ts = sytRecvToFullTicks(syt, cycle, now_ctr); - #endif debugOutput(DEBUG_LEVEL_VERBOSE,"CALC_TS : %011"PRIu64" (%03us %04uc %04ut)\n", calc_ts, (unsigned int)TICKS_TO_SECS(calc_ts), (unsigned int)TICKS_TO_CYCLES(calc_ts), (unsigned int)TICKS_TO_OFFSET(calc_ts)); - + #else + printf("DEBUG_MESSAGES not enabled for build. This program won't show anything without it.\n"); + #endif // BL: 1211722982: Debug (IsoHandler.cpp)[ 420] putPacket: received packet: length=168, channel=0, cycle=7968 // BL: 1211723031: Debug (cycletimer.h)[ 308] sytRecvToFullTicks: SYT=583B CY=7968 CTR=140001DA Modified: branches/2.2.x/libffado/src/libstreaming/amdtp/AmdtpReceiveStreamProcessor.cpp =================================================================== --- branches/2.2.x/libffado/src/libstreaming/amdtp/AmdtpReceiveStreamProcessor.cpp 2014-06-01 23:49:28 UTC (rev 2540) +++ branches/2.2.x/libffado/src/libstreaming/amdtp/AmdtpReceiveStreamProcessor.cpp 2014-06-02 00:00:10 UTC (rev 2541) @@ -290,7 +290,9 @@ for (i = 0; i < m_nb_audio_ports; i++) { struct _MBLA_port_cache &p = m_audio_ports.at(i); target_event = (quadlet_t *)(data + i); +#ifdef DEBUG assert(nevents + offset <= p.buffer_size ); +#endif if(p.buffer && p.enabled) { quadlet_t *buffer = (quadlet_t *)(p.buffer); @@ -324,7 +326,9 @@ for (i = 0; i < m_nb_audio_ports; i++) { struct _MBLA_port_cache &p = m_audio_ports.at(i); target_event = (quadlet_t *)(data + i); +#ifdef DEBUG assert(nevents + offset <= p.buffer_size ); +#endif if(p.buffer && p.enabled) { float *buffer = (float *)(p.buffer); @@ -361,7 +365,9 @@ for (i = 0; i < m_nb_audio_ports; i++) { struct _MBLA_port_cache &p = m_audio_ports.at(i); target_event = (quadlet_t *)(data + i); +#ifdef DEBUG assert(nevents + offset <= p.buffer_size ); +#endif if(p.buffer && p.enabled) { quadlet_t *buffer = (quadlet_t *)(p.buffer); @@ -395,7 +401,9 @@ for (i = 0; i < m_nb_audio_ports; i++) { struct _MBLA_port_cache &p = m_audio_ports.at(i); target_event = (quadlet_t *)(data + i); +#ifdef DEBUG assert(nevents + offset <= p.buffer_size ); +#endif if(p.buffer && p.enabled) { float *buffer = (float *)(p.buffer); Modified: branches/2.2.x/libffado/src/libstreaming/amdtp/AmdtpTransmitStreamProcessor.cpp =================================================================== --- branches/2.2.x/libffado/src/libstreaming/amdtp/AmdtpTransmitStreamProcessor.cpp 2014-06-01 23:49:28 UTC (rev 2540) +++ branches/2.2.x/libffado/src/libstreaming/amdtp/AmdtpTransmitStreamProcessor.cpp 2014-06-02 00:00:10 UTC (rev 2541) @@ -648,7 +648,9 @@ for (; i < (int)m_nb_audio_ports; i++) { struct _MBLA_port_cache &p = m_audio_ports.at(i); target_event = (quadlet_t *)(data + i); +#ifdef DEBUG assert(nevents + offset <= p.buffer_size ); +#endif if(likely(p.buffer && p.enabled)) { float *buffer = (float *)(p.buffer); @@ -831,7 +833,9 @@ for (; i < ((int)m_nb_audio_ports); i++) { struct _MBLA_port_cache &p = m_audio_ports.at(i); target_event = (quadlet_t *)(data + i); +#ifdef DEBUG assert(nevents + offset <= p.buffer_size ); +#endif if(likely(p.buffer && p.enabled)) { uint32_t *buffer = (uint32_t *)(p.buffer); @@ -916,7 +920,9 @@ for (i = 0; i < m_nb_audio_ports; i++) { struct _MBLA_port_cache &p = m_audio_ports.at(i); target_event = (quadlet_t *)(data + i); +#ifdef DEBUG assert(nevents + offset <= p.buffer_size ); +#endif if(likely(p.buffer && p.enabled)) { quadlet_t *buffer = (quadlet_t *)(p.buffer); @@ -957,7 +963,9 @@ for (i = 0; i < m_nb_audio_ports; i++) { struct _MBLA_port_cache &p = m_audio_ports.at(i); target_event = (quadlet_t *)(data + i); +#ifdef DEBUG assert(nevents + offset <= p.buffer_size ); +#endif if(likely(p.buffer && p.enabled)) { quadlet_t *buffer = (quadlet_t *)(p.buffer); Modified: branches/2.2.x/libffado/src/libutil/TimestampedBuffer.cpp =================================================================== --- branches/2.2.x/libffado/src/libutil/TimestampedBuffer.cpp 2014-06-01 23:49:28 UTC (rev 2540) +++ branches/2.2.x/libffado/src/libutil/TimestampedBuffer.cpp 2014-06-02 00:00:10 UTC (rev 2541) @@ -1148,7 +1148,9 @@ this, m_framecounter, getBufferFill()); debugOutputShort( DEBUG_LEVEL_NORMAL, " Timestamps : head: "TIMESTAMP_FORMAT_SPEC", Tail: "TIMESTAMP_FORMAT_SPEC", Next tail: "TIMESTAMP_FORMAT_SPEC"\n", ts_head, m_buffer_tail_timestamp, m_buffer_next_tail_timestamp); +#ifdef DEBUG debugOutputShort( DEBUG_LEVEL_NORMAL, " Head - Tail : "TIMESTAMP_FORMAT_SPEC" (%f frames)\n", diff, diff/m_dll_e2*m_update_period); +#endif debugOutputShort( DEBUG_LEVEL_NORMAL, " DLL Rate : %f (%f)\n", m_dll_e2, m_dll_e2/m_update_period); debugOutputShort( DEBUG_LEVEL_NORMAL, " DLL Bandwidth : %10e 1/ticks (%f Hz)\n", getBandwidth(), getBandwidth() * TICKS_PER_SECOND); } |
From: <tr...@ff...> - 2014-06-01 23:49:36
|
Author: jwoithe Date: 2014-06-01 16:49:28 -0700 (Sun, 01 Jun 2014) New Revision: 2540 Modified: trunk/libffado/src/libieee1394/IsoHandlerManager.cpp trunk/libffado/src/libieee1394/test-cyclecalc.cpp trunk/libffado/src/libstreaming/amdtp/AmdtpReceiveStreamProcessor.cpp trunk/libffado/src/libstreaming/amdtp/AmdtpTransmitStreamProcessor.cpp trunk/libffado/src/libutil/TimestampedBuffer.cpp Log: Fix compilation when DEBUG is not defined. The fixes in the amdtp streaming module are from Phil. It is not clear how these problems have been missed. The amdtp assert's reference of buffer_size for example has been in the code base since 2.0 days, so a non-debug build which included amdtp has probably been broken for quite some time. Modified: trunk/libffado/src/libieee1394/IsoHandlerManager.cpp =================================================================== --- trunk/libffado/src/libieee1394/IsoHandlerManager.cpp 2014-05-31 10:35:38 UTC (rev 2539) +++ trunk/libffado/src/libieee1394/IsoHandlerManager.cpp 2014-06-01 23:49:28 UTC (rev 2540) @@ -1021,8 +1021,12 @@ { IsoHandler *h = getHandlerForStream(stream); if (h) { + #ifdef DEBUG debugOutputShort( DEBUG_LEVEL_NORMAL, " Packets, Dropped, Skipped : %d, %d, %d\n", h->m_packets, h->m_dropped, h->m_skipped); + #else + debugOutputShort( DEBUG_LEVEL_NORMAL, " Packets : %d\n", h->m_packets); + #endif } else { debugError("No handler for stream %p??\n", stream); } Modified: trunk/libffado/src/libieee1394/test-cyclecalc.cpp =================================================================== --- trunk/libffado/src/libieee1394/test-cyclecalc.cpp 2014-05-31 10:35:38 UTC (rev 2539) +++ trunk/libffado/src/libieee1394/test-cyclecalc.cpp 2014-06-01 23:49:28 UTC (rev 2540) @@ -38,12 +38,11 @@ * */ - #ifdef DEBUG + #ifdef DEBUG_MESSAGES uint32_t now_ctr = 0x140001DA; uint64_t now = CYCLE_TIMER_TO_TICKS(0x140001DA); unsigned int cycle = 7968; uint16_t syt = 0x583B; - #endif debugOutput(DEBUG_LEVEL_VERBOSE,"NOW_CTR : %08X (%03us %04uc %04ut)\n", now_ctr, @@ -63,16 +62,16 @@ (unsigned int)CYCLE_TIMER_GET_OFFSET(syt)); debugOutput(DEBUG_LEVEL_VERBOSE,"CYCLE : %uc\n", cycle); - #ifdef DEBUG uint64_t calc_ts = sytRecvToFullTicks(syt, cycle, now_ctr); - #endif debugOutput(DEBUG_LEVEL_VERBOSE,"CALC_TS : %011"PRIu64" (%03us %04uc %04ut)\n", calc_ts, (unsigned int)TICKS_TO_SECS(calc_ts), (unsigned int)TICKS_TO_CYCLES(calc_ts), (unsigned int)TICKS_TO_OFFSET(calc_ts)); - + #else + printf("DEBUG_MESSAGES not enabled for build. This program won't show anything without it.\n"); + #endif // BL: 1211722982: Debug (IsoHandler.cpp)[ 420] putPacket: received packet: length=168, channel=0, cycle=7968 // BL: 1211723031: Debug (cycletimer.h)[ 308] sytRecvToFullTicks: SYT=583B CY=7968 CTR=140001DA Modified: trunk/libffado/src/libstreaming/amdtp/AmdtpReceiveStreamProcessor.cpp =================================================================== --- trunk/libffado/src/libstreaming/amdtp/AmdtpReceiveStreamProcessor.cpp 2014-05-31 10:35:38 UTC (rev 2539) +++ trunk/libffado/src/libstreaming/amdtp/AmdtpReceiveStreamProcessor.cpp 2014-06-01 23:49:28 UTC (rev 2540) @@ -290,7 +290,9 @@ for (i = 0; i < m_nb_audio_ports; i++) { struct _MBLA_port_cache &p = m_audio_ports.at(i); target_event = (quadlet_t *)(data + i); +#ifdef DEBUG assert(nevents + offset <= p.buffer_size ); +#endif if(p.buffer && p.enabled) { quadlet_t *buffer = (quadlet_t *)(p.buffer); @@ -324,7 +326,9 @@ for (i = 0; i < m_nb_audio_ports; i++) { struct _MBLA_port_cache &p = m_audio_ports.at(i); target_event = (quadlet_t *)(data + i); +#ifdef DEBUG assert(nevents + offset <= p.buffer_size ); +#endif if(p.buffer && p.enabled) { float *buffer = (float *)(p.buffer); @@ -361,7 +365,9 @@ for (i = 0; i < m_nb_audio_ports; i++) { struct _MBLA_port_cache &p = m_audio_ports.at(i); target_event = (quadlet_t *)(data + i); +#ifdef DEBUG assert(nevents + offset <= p.buffer_size ); +#endif if(p.buffer && p.enabled) { quadlet_t *buffer = (quadlet_t *)(p.buffer); @@ -395,7 +401,9 @@ for (i = 0; i < m_nb_audio_ports; i++) { struct _MBLA_port_cache &p = m_audio_ports.at(i); target_event = (quadlet_t *)(data + i); +#ifdef DEBUG assert(nevents + offset <= p.buffer_size ); +#endif if(p.buffer && p.enabled) { float *buffer = (float *)(p.buffer); Modified: trunk/libffado/src/libstreaming/amdtp/AmdtpTransmitStreamProcessor.cpp =================================================================== --- trunk/libffado/src/libstreaming/amdtp/AmdtpTransmitStreamProcessor.cpp 2014-05-31 10:35:38 UTC (rev 2539) +++ trunk/libffado/src/libstreaming/amdtp/AmdtpTransmitStreamProcessor.cpp 2014-06-01 23:49:28 UTC (rev 2540) @@ -648,7 +648,9 @@ for (; i < (int)m_nb_audio_ports; i++) { struct _MBLA_port_cache &p = m_audio_ports.at(i); target_event = (quadlet_t *)(data + i); +#ifdef DEBUG assert(nevents + offset <= p.buffer_size ); +#endif if(likely(p.buffer && p.enabled)) { float *buffer = (float *)(p.buffer); @@ -831,7 +833,9 @@ for (; i < ((int)m_nb_audio_ports); i++) { struct _MBLA_port_cache &p = m_audio_ports.at(i); target_event = (quadlet_t *)(data + i); +#ifdef DEBUG assert(nevents + offset <= p.buffer_size ); +#endif if(likely(p.buffer && p.enabled)) { uint32_t *buffer = (uint32_t *)(p.buffer); @@ -916,7 +920,9 @@ for (i = 0; i < m_nb_audio_ports; i++) { struct _MBLA_port_cache &p = m_audio_ports.at(i); target_event = (quadlet_t *)(data + i); +#ifdef DEBUG assert(nevents + offset <= p.buffer_size ); +#endif if(likely(p.buffer && p.enabled)) { quadlet_t *buffer = (quadlet_t *)(p.buffer); @@ -957,7 +963,9 @@ for (i = 0; i < m_nb_audio_ports; i++) { struct _MBLA_port_cache &p = m_audio_ports.at(i); target_event = (quadlet_t *)(data + i); +#ifdef DEBUG assert(nevents + offset <= p.buffer_size ); +#endif if(likely(p.buffer && p.enabled)) { quadlet_t *buffer = (quadlet_t *)(p.buffer); Modified: trunk/libffado/src/libutil/TimestampedBuffer.cpp =================================================================== --- trunk/libffado/src/libutil/TimestampedBuffer.cpp 2014-05-31 10:35:38 UTC (rev 2539) +++ trunk/libffado/src/libutil/TimestampedBuffer.cpp 2014-06-01 23:49:28 UTC (rev 2540) @@ -1148,7 +1148,9 @@ this, m_framecounter, getBufferFill()); debugOutputShort( DEBUG_LEVEL_NORMAL, " Timestamps : head: "TIMESTAMP_FORMAT_SPEC", Tail: "TIMESTAMP_FORMAT_SPEC", Next tail: "TIMESTAMP_FORMAT_SPEC"\n", ts_head, m_buffer_tail_timestamp, m_buffer_next_tail_timestamp); +#ifdef DEBUG debugOutputShort( DEBUG_LEVEL_NORMAL, " Head - Tail : "TIMESTAMP_FORMAT_SPEC" (%f frames)\n", diff, diff/m_dll_e2*m_update_period); +#endif debugOutputShort( DEBUG_LEVEL_NORMAL, " DLL Rate : %f (%f)\n", m_dll_e2, m_dll_e2/m_update_period); debugOutputShort( DEBUG_LEVEL_NORMAL, " DLL Bandwidth : %10e 1/ticks (%f Hz)\n", getBandwidth(), getBandwidth() * TICKS_PER_SECOND); } |
From: <tr...@ff...> - 2014-05-31 10:35:45
|
Author: jwoithe Date: 2014-05-31 03:35:38 -0700 (Sat, 31 May 2014) New Revision: 2539 Added: tags/2.2.0/ Log: Tag FFADO version 2.2.0 |
From: <tr...@ff...> - 2014-05-31 10:34:39
|
Author: jwoithe Date: 2014-05-31 03:34:33 -0700 (Sat, 31 May 2014) New Revision: 2538 Modified: trunk/libffado/SConstruct Log: Bump trunk version number to next development version (2.2.9999) for post-2.2.0 work without the extraneous code inadvertently included in r2536. Modified: trunk/libffado/SConstruct =================================================================== --- trunk/libffado/SConstruct 2014-05-31 10:33:39 UTC (rev 2537) +++ trunk/libffado/SConstruct 2014-05-31 10:34:33 UTC (rev 2538) @@ -24,7 +24,7 @@ # FFADO_API_VERSION = "9" -FFADO_VERSION="2.1.9999" +FFADO_VERSION="2.2.9999" from subprocess import Popen, PIPE import os |
From: <tr...@ff...> - 2014-05-31 10:33:46
|
Author: jwoithe Date: 2014-05-31 03:33:39 -0700 (Sat, 31 May 2014) New Revision: 2537 Modified: trunk/libffado/SConstruct trunk/libffado/src/libieee1394/IsoHandlerManager.cpp Log: Revert r2536 since it contained experimental debug code not appropriate to trunk. Modified: trunk/libffado/SConstruct =================================================================== --- trunk/libffado/SConstruct 2014-05-31 10:28:22 UTC (rev 2536) +++ trunk/libffado/SConstruct 2014-05-31 10:33:39 UTC (rev 2537) @@ -24,7 +24,7 @@ # FFADO_API_VERSION = "9" -FFADO_VERSION="2.2.9999" +FFADO_VERSION="2.1.9999" from subprocess import Popen, PIPE import os Modified: trunk/libffado/src/libieee1394/IsoHandlerManager.cpp =================================================================== --- trunk/libffado/src/libieee1394/IsoHandlerManager.cpp 2014-05-31 10:28:22 UTC (rev 2536) +++ trunk/libffado/src/libieee1394/IsoHandlerManager.cpp 2014-05-31 10:33:39 UTC (rev 2537) @@ -1607,20 +1607,12 @@ return RAW1394_ISO_OK; } -int cbuf[0x100], cbuf_i=0; -int rbuf[0x100]; - enum raw1394_iso_disposition IsoHandlerManager::IsoHandler::getPacket(unsigned char *data, unsigned int *length, unsigned char *tag, unsigned char *sy, int cycle, unsigned int dropped, unsigned int skipped) { uint32_t pkt_ctr; - -int local_cbuf_i = cbuf_i; -cbuf[cbuf_i] = cycle; -cbuf_i = (cbuf_i+1) & 0xff; - if (cycle < 0) { // mark invalid pkt_ctr = 0xFFFFFFFF; @@ -1720,12 +1712,6 @@ if (dropped_cycles < 0) { debugWarning("(%p) dropped < 1 (%d), cycle: %d, last_cycle: %d, dropped: %d, skipped: %d\n", this, dropped_cycles, cycle, m_last_cycle, dropped, skipped); -debugOutput(DEBUG_LEVEL_VERBOSE, "m_deferred_cycles=%d\n", m_deferred_cycles); -signed int ii = cbuf_i; -do { - debugOutput(DEBUG_LEVEL_VERBOSE, " cycle %d, return %d\n", cbuf[ii], rbuf[ii]); - ii = (ii+1)&0xff; -} while (ii != cbuf_i); } if (dropped_cycles > 0) { debugOutput(DEBUG_LEVEL_VERBOSE, @@ -1764,11 +1750,9 @@ } else m_deferred_cycles++; } -rbuf[local_cbuf_i] = retval; return retval; } -rbuf[local_cbuf_i] = 0x12345678; if (cycle >= 0) m_last_cycle = cycle; |
From: <tr...@ff...> - 2014-05-31 10:28:29
|
Author: jwoithe Date: 2014-05-31 03:28:22 -0700 (Sat, 31 May 2014) New Revision: 2536 Modified: trunk/libffado/SConstruct trunk/libffado/src/libieee1394/IsoHandlerManager.cpp Log: Bump trunk version number to next development version (2.2.9999) for post-2.2.0 work. Modified: trunk/libffado/SConstruct =================================================================== --- trunk/libffado/SConstruct 2014-05-31 10:27:27 UTC (rev 2535) +++ trunk/libffado/SConstruct 2014-05-31 10:28:22 UTC (rev 2536) @@ -24,7 +24,7 @@ # FFADO_API_VERSION = "9" -FFADO_VERSION="2.1.9999" +FFADO_VERSION="2.2.9999" from subprocess import Popen, PIPE import os Modified: trunk/libffado/src/libieee1394/IsoHandlerManager.cpp =================================================================== --- trunk/libffado/src/libieee1394/IsoHandlerManager.cpp 2014-05-31 10:27:27 UTC (rev 2535) +++ trunk/libffado/src/libieee1394/IsoHandlerManager.cpp 2014-05-31 10:28:22 UTC (rev 2536) @@ -1607,12 +1607,20 @@ return RAW1394_ISO_OK; } +int cbuf[0x100], cbuf_i=0; +int rbuf[0x100]; + enum raw1394_iso_disposition IsoHandlerManager::IsoHandler::getPacket(unsigned char *data, unsigned int *length, unsigned char *tag, unsigned char *sy, int cycle, unsigned int dropped, unsigned int skipped) { uint32_t pkt_ctr; + +int local_cbuf_i = cbuf_i; +cbuf[cbuf_i] = cycle; +cbuf_i = (cbuf_i+1) & 0xff; + if (cycle < 0) { // mark invalid pkt_ctr = 0xFFFFFFFF; @@ -1712,6 +1720,12 @@ if (dropped_cycles < 0) { debugWarning("(%p) dropped < 1 (%d), cycle: %d, last_cycle: %d, dropped: %d, skipped: %d\n", this, dropped_cycles, cycle, m_last_cycle, dropped, skipped); +debugOutput(DEBUG_LEVEL_VERBOSE, "m_deferred_cycles=%d\n", m_deferred_cycles); +signed int ii = cbuf_i; +do { + debugOutput(DEBUG_LEVEL_VERBOSE, " cycle %d, return %d\n", cbuf[ii], rbuf[ii]); + ii = (ii+1)&0xff; +} while (ii != cbuf_i); } if (dropped_cycles > 0) { debugOutput(DEBUG_LEVEL_VERBOSE, @@ -1750,9 +1764,11 @@ } else m_deferred_cycles++; } +rbuf[local_cbuf_i] = retval; return retval; } +rbuf[local_cbuf_i] = 0x12345678; if (cycle >= 0) m_last_cycle = cycle; |
From: <tr...@ff...> - 2014-05-31 10:27:34
|
Author: jwoithe Date: 2014-05-31 03:27:27 -0700 (Sat, 31 May 2014) New Revision: 2535 Modified: branches/2.2.x/libffado/SConstruct Log: Formally set version number to 2.2.0 Modified: branches/2.2.x/libffado/SConstruct =================================================================== --- branches/2.2.x/libffado/SConstruct 2014-05-31 10:24:39 UTC (rev 2534) +++ branches/2.2.x/libffado/SConstruct 2014-05-31 10:27:27 UTC (rev 2535) @@ -24,7 +24,7 @@ # FFADO_API_VERSION = "9" -FFADO_VERSION="2.1.9999" +FFADO_VERSION="2.2.0" from subprocess import Popen, PIPE import os |
From: <tr...@ff...> - 2014-05-31 10:24:48
|
Author: jwoithe Date: 2014-05-31 03:24:39 -0700 (Sat, 31 May 2014) New Revision: 2534 Added: branches/2.2.x/ Log: Create branch from trunk for FFADO 2.2.x |
From: <tr...@ff...> - 2014-05-23 14:42:11
|
Author: jwoithe Date: 2014-05-23 07:42:03 -0700 (Fri, 23 May 2014) New Revision: 2533 Modified: trunk/libffado/src/libstreaming/rme/RmeReceiveStreamProcessor.cpp trunk/libffado/src/libstreaming/rme/RmeTransmitStreamProcessor.cpp Log: rme: clean up debugging code in the streaming code and clarify comments. Modified: trunk/libffado/src/libstreaming/rme/RmeReceiveStreamProcessor.cpp =================================================================== --- trunk/libffado/src/libstreaming/rme/RmeReceiveStreamProcessor.cpp 2014-05-23 14:26:21 UTC (rev 2532) +++ trunk/libffado/src/libstreaming/rme/RmeReceiveStreamProcessor.cpp 2014-05-23 14:42:03 UTC (rev 2533) @@ -135,13 +135,13 @@ unsigned char tag, unsigned char sy, uint32_t pkt_ctr) { - int64_t pkt_timestamp; + int64_t pkt_timestamp; -// For testing -static signed int rep = 0; -if (rep == 0) { - debugOutput(DEBUG_LEVEL_VERBOSE, "first data packet header, len=%d\n", length); -} + // To assist with debugging + static signed int rep = 0; + if (rep == 0) { + debugOutput(DEBUG_LEVEL_VERBOSE, "first data packet header, len=%d\n", length); + } if (length > 0) { // The iso data blocks from the RMEs comprise 24-bit audio @@ -151,13 +151,6 @@ // varies: 7 for 1x rates, 15 for 2x rates and 25 for 4x rates. // quadlet_t *quadlet = (quadlet_t *)data; - // Don't even attempt to process a packet if it isn't what we expect - // from an RME. For now the only condition seems to be a tag of 0 - // but this is still to be confirmed under all conditions. -// if (tag!=1) { -// return eCRV_Invalid; -// } - // Timestamps are not transmitted explicitly by the RME interfaces // so we have to fake it in order to fit in with the rest of the // FFADO infrastructure. The cycle timer at the time of the @@ -188,6 +181,8 @@ m_last_timestamp = pkt_timestamp; +// Retain this as it might be helpful for future development. +// //if (rep == 0) { // debugOutput(DEBUG_LEVEL_VERBOSE, " timestamp: %lld, ct=%08x (%03ld,%04ld,%04ld)\n", m_last_timestamp, pkt_ctr, // CYCLE_TIMER_GET_SECS(pkt_ctr), CYCLE_TIMER_GET_CYCLES(pkt_ctr), CYCLE_TIMER_GET_OFFSET(pkt_ctr)); @@ -200,7 +195,8 @@ // n_hw_tx_buffer_samples = adata[7] & 0xff; // debugOutput(DEBUG_LEVEL_VERBOSE, " hw tx: 0x%02x\n", n_hw_tx_buffer_samples); //} -rep=1; + + rep=1; return eCRV_OK; } else { return eCRV_Invalid; @@ -223,8 +219,8 @@ // m_event_size should never be zero unsigned int n_events = length / m_event_size; -// for testing -static signed int rep = 0; + // To assist with debugging + static signed int rep = 0; // we have to keep in mind that there are also // some packets buffered by the ISO layer, @@ -240,11 +236,12 @@ } #endif -// For testing -if (rep == 0) { - debugOutput(DEBUG_LEVEL_VERBOSE, "data packet data, length=%d, ev_size=%d, n_events=%d\n", length, m_event_size, n_events); - rep = 1; -} + // For debugging + if (rep == 0) { + debugOutput(DEBUG_LEVEL_VERBOSE, "data packet data, length=%d, ev_size=%d, n_events=%d\n", length, m_event_size, n_events); + rep = 1; + } + if(m_data_buffer->writeFrames(n_events, (char *)data, m_last_timestamp)) { return eCRV_OK; } else { @@ -372,6 +369,11 @@ // Zero the buffer memset(buffer, 0, nevents*sizeof(*buffer)); + // This code comes directly from the MOTU driver and is retained for + // reference. In the long run it will not be used because the RME + // does not use the iso stream to send MIDI data. Instead an ARM + // is needed. + // // Get MIDI bytes if present in any frames within the packet. RME MIDI // data is sent as part of a 3-byte sequence starting at the port's // position. Some RMEs (eg: the 828MkII) send more than one MIDI byte @@ -389,7 +391,7 @@ while (j < nevents) { /* Most events don't have MIDI data bytes */ -// if (unlikely((*src & RME_KEY_MASK_MIDI) == RME_KEY_MASK_MIDI)) { + // if (unlikely((*src & RME_KEY_MASK_MIDI) == RME_KEY_MASK_MIDI)) { if (0) { // A MIDI byte is in *(src+2). Bit 24 is used to flag MIDI data // as present once the data makes it to the output buffer. Modified: trunk/libffado/src/libstreaming/rme/RmeTransmitStreamProcessor.cpp =================================================================== --- trunk/libffado/src/libstreaming/rme/RmeTransmitStreamProcessor.cpp 2014-05-23 14:26:21 UTC (rev 2532) +++ trunk/libffado/src/libstreaming/rme/RmeTransmitStreamProcessor.cpp 2014-05-23 14:42:03 UTC (rev 2533) @@ -292,9 +292,6 @@ RmeTransmitStreamProcessor::generatePacketData ( unsigned char *data, unsigned int *length) { - // Size of a single data frame in quadlets -// unsigned dbs = m_event_size / 4; - // Flag the successful start of streaming so generateEmptyPacketHeader() // knows that true empty packets are now required. streaming_has_run=1; @@ -305,37 +302,18 @@ signed n_events = getNominalFramesPerPacket(); if (m_data_buffer->readFrames(n_events, (char *)(data))) { -// float ticks_per_frame = m_Parent.getDeviceManager().getStreamProcessorManager().getSyncSource().getTicksPerFrame(); -// for (int i=0; i < n_events; i++, quadlet += dbs) { -// int64_t ts_frame = addTicks(m_last_timestamp, (unsigned int)lrintf(i * ticks_per_frame)); -// *quadlet = CondSwapToBus32(fullTicksToSph(ts_frame)); -// } - // FIXME: temporary -// if (*length > 0) { -// memset(data, *length, 0); -// } -// -// 1 kHz tone into ch7 (phones L) for testing -{ -static signed int dpy = 0; -float ticks_per_frame = m_Parent.getDeviceManager().getStreamProcessorManager().getSyncSource().getTicksPerFrame(); - signed int i, int_tpf = lrintf(ticks_per_frame); -//signed int j; -// quadlet_t *sample = (quadlet_t *)data; - quadlet_t *sample = (quadlet_t *)data + 6; -if (dpy==0) { - debugOutput(DEBUG_LEVEL_NORMAL, "ticks per frame: %d %d %d (len=%d)\n", int_tpf, n_events, m_event_size, *length); -} -if (++dpy == 8000) -dpy=0; + // 1 kHz tone into ch7 (phones L) for testing, but only if a debug + // level is set. #if TESTTONE if (getDebugLevel() > 0) { + float ticks_per_frame = m_Parent.getDeviceManager().getStreamProcessorManager().getSyncSource().getTicksPerFrame(); + signed int int_tpf = lrintf(ticks_per_frame); + quadlet_t *sample = (quadlet_t *)data + 6; + signed int i; for (i=0; i<n_events; i++, sample+=m_event_size/4) { static signed int a_cx = 0; signed int val = lrintf(0x7fffff*sin((1000.0*2.0*M_PI/24576000.0)*a_cx)); -//for (j=0; j<18;j++) -//*(sample+j) = val << 8; *sample = val << 8; if ((a_cx+=int_tpf) >= 24576000) { a_cx -= 24576000; @@ -343,7 +321,6 @@ } } #endif -} return eCRV_OK; } |
From: <tr...@ff...> - 2014-05-23 14:26:30
|
Author: jwoithe Date: 2014-05-23 07:26:21 -0700 (Fri, 23 May 2014) New Revision: 2532 Modified: trunk/libffado/src/libstreaming/motu/MotuReceiveStreamProcessor.cpp trunk/libffado/src/libstreaming/motu/MotuTransmitStreamProcessor.cpp Log: motu: tidy debug output code and better comment its intent. Remove old commented out debug code which has no ongoing purpose. Modified: trunk/libffado/src/libstreaming/motu/MotuReceiveStreamProcessor.cpp =================================================================== --- trunk/libffado/src/libstreaming/motu/MotuReceiveStreamProcessor.cpp 2014-05-23 13:28:39 UTC (rev 2531) +++ trunk/libffado/src/libstreaming/motu/MotuReceiveStreamProcessor.cpp 2014-05-23 14:26:21 UTC (rev 2532) @@ -117,11 +117,6 @@ bool MotuReceiveStreamProcessor::prepareChild() { debugOutput( DEBUG_LEVEL_VERBOSE, "Preparing (%p)...\n", this); - - // prepare the framerate estimate - // FIXME: not needed anymore? - //m_ticks_per_frame = (TICKS_PER_SECOND*1.0) / ((float)m_Parent.getDeviceManager().getStreamProcessorManager().getNominalRate()); - return true; } @@ -179,11 +174,12 @@ uint32_t last_sph = CondSwapFromBus32(*(quadlet_t *)(data+8+(n_events-1)*m_event_size)); m_last_timestamp = sphRecvToFullTicks(last_sph, m_Parent.get1394Service().getCycleTimer()); - // For debugging only - to be removed once Ultralite mk3 issues have been - // resolved. JMW, 31 May 2010. + // To assist in debugging the packet format from new devices, periodically + // dump a packet when debug is active. Originally written to debug the + // Ultralite mk3 it has been retained since it could prove useful in + // future. if ((!len_shown || pktcx==0) && getDebugLevel()>0 ) { unsigned int i; -// debugOutput(DEBUG_LEVEL_VERBOSE,"Packet from MOTU: length=%d, eventsize=%d, n_events=%d\n", length, m_event_size, n_events); fprintf(stderr, "Packet from MOTU: length=%d, eventsize=%d, n_events=%d\n", length, m_event_size, n_events); for (i=0; i<length; i++) { if ((i&0x000f) == 0) @@ -196,11 +192,14 @@ } fprintf(stderr, "\n"); } -// For testing 828mk1, dump incoming packet roughly once a second -if (++pktcx == 8000) - pktcx=0; + // Print packet contents once per second + if (++pktcx == 8000) + pktcx=0; + // For now suppress packet printing after the first packet len_shown = 1; + + // If debug is active print the first 20 packet timestamps. if (ts_print_cx<20 && getDebugLevel()>0 ) { debugOutput(DEBUG_LEVEL_VERBOSE,"last ts=0x%08x\n", last_sph); ts_print_cx++; Modified: trunk/libffado/src/libstreaming/motu/MotuTransmitStreamProcessor.cpp =================================================================== --- trunk/libffado/src/libstreaming/motu/MotuTransmitStreamProcessor.cpp 2014-05-23 13:28:39 UTC (rev 2531) +++ trunk/libffado/src/libstreaming/motu/MotuTransmitStreamProcessor.cpp 2014-05-23 14:26:21 UTC (rev 2532) @@ -322,17 +322,10 @@ } #endif -//fprintf(stderr,"tx: %d/%d\n", -// TICKS_TO_CYCLES(fullTicksToSph(m_last_timestamp)), -// TICKS_TO_OFFSET(fullTicksToSph(m_last_timestamp))); // Set up each frames's SPH. -//fprintf(stderr,"tpf=%f\n", ticks_per_frame); for (int i=0; i < n_events; i++, quadlet += dbs) { int64_t ts_frame = addTicks(m_last_timestamp, (unsigned int)lrintf(i * ticks_per_frame)); *quadlet = CondSwapToBus32(fullTicksToSph(ts_frame)); -//fprintf(stderr,"tx: %d/%d\n", -// CYCLE_TIMER_GET_CYCLES(fullTicksToSph(ts_frame)), -// CYCLE_TIMER_GET_OFFSET(fullTicksToSph(ts_frame))); } /* Zero any pad bytes which, due to their number not being a multiple @@ -348,25 +341,29 @@ } } -{ -static signed int pktcx = 0; -unsigned int i; - if (pktcx==0 && getDebugLevel()>0 ) { - fprintf(stderr, "Packet to MOTU: length=%d, eventsize=%d, n_events=%d\n", *length, m_event_size, n_events); - for (i=0; i<*length; i++) { - if ((i&0x000f) == 0) - fprintf(stderr, "%08x ", i); - fprintf(stderr, "%02x ", data[i]); - if ((i&0x000f) == 7) - fprintf(stderr, "- "); - if ((i&0x000f) == 0xf) - fprintf(stderr, "\n"); - } - fprintf(stderr, "\n"); - } - if (++pktcx == 8000) - pktcx=0; -} + /* To assist in verifying packet contents being sent to the + * interface, periodically print the data being sent when a debug + * mode is active. + */ + if (getDebugLevel() > 0) { + static signed int pktcx = 0; + unsigned int i; + if (pktcx == 0) { + fprintf(stderr, "Packet to MOTU: length=%d, eventsize=%d, n_events=%d\n", *length, m_event_size, n_events); + for (i=0; i<*length; i++) { + if ((i&0x000f) == 0) + fprintf(stderr, "%08x ", i); + fprintf(stderr, "%02x ", data[i]); + if ((i&0x000f) == 7) + fprintf(stderr, "- "); + if ((i&0x000f) == 0xf) + fprintf(stderr, "\n"); + } + fprintf(stderr, "\n"); + } + if (++pktcx == 8000) + pktcx=0; + } return eCRV_OK; } |
From: <tr...@ff...> - 2014-05-23 13:28:47
|
Author: jwoithe Date: 2014-05-23 06:28:39 -0700 (Fri, 23 May 2014) New Revision: 2531 Modified: trunk/libffado/src/motu/motu_controls.cpp Log: motu: remove some FIXME comments which are now no longer relevant. The current approach of reading device registers seems to work fine. For the purposes of the controls there is little justification at present in complicating things by trying to interface with the information delivered by the receive stream processor, especially since it's not always active or accessible in the mixer context. Modified: trunk/libffado/src/motu/motu_controls.cpp =================================================================== --- trunk/libffado/src/motu/motu_controls.cpp 2014-05-17 00:38:31 UTC (rev 2530) +++ trunk/libffado/src/motu/motu_controls.cpp 2014-05-23 13:28:39 UTC (rev 2531) @@ -112,8 +112,6 @@ return 0; } - // FIXME: we could just read the appropriate mixer status field from the - // receive stream processor once we work out an efficient way to do this. val = m_parent.ReadRegister(m_register); return (val & m_value_mask) != 0; } @@ -162,8 +160,6 @@ return 0; } - // FIXME: we could just read the appropriate mixer status field from the - // receive stream processor once we work out an efficient way to do this. val = m_parent.ReadRegister(m_register); return val & 0xff; } @@ -212,8 +208,6 @@ return 0; } - // FIXME: we could just read the appropriate mixer status field from the - // receive stream processor once we work out an efficient way to do this. val = m_parent.ReadRegister(m_register); return ((val >> 8) & 0xff) - 0x40; } @@ -326,8 +320,6 @@ debugOutput(DEBUG_LEVEL_VERBOSE, "ignoring control marked as non-existent\n"); return 0; } - // FIXME: we could just read the appropriate mixer status field from the - // receive stream processor once we work out an efficient way to do this. val = m_parent.ReadRegister(reg) & 0xff; debugOutput(DEBUG_LEVEL_VERBOSE, "ChannelFader getValue for row %d col %d = %u\n", @@ -381,8 +373,6 @@ return 0; } - // FIXME: we could just read the appropriate mixer status field from the - // receive stream processor once we work out an efficient way to do this. val = m_parent.ReadRegister(reg); val = ((val >> 8) & 0xff) - 0x40; @@ -454,8 +444,6 @@ return 0; } - // FIXME: we could just read the appropriate mixer status field from the - // receive stream processor once we work out an efficient way to do this. val = m_parent.ReadRegister(reg); val = (val & m_value_mask) != 0; @@ -509,8 +497,6 @@ return 0; } - // FIXME: we could just read the appropriate mixer status field from the - // receive stream processor once we work out an efficient way to do this. val = m_parent.ReadRegister(m_register); return val & 0xff; } @@ -563,8 +549,6 @@ return 0; } - // FIXME: we could just read the appropriate mixer status field from the - // receive stream processor once we work out an efficient way to do this. val = m_parent.ReadRegister(m_register); return (val & 0x00001000) != 0; } @@ -621,8 +605,6 @@ debugOutput(DEBUG_LEVEL_WARNING, "use of MOTU_CTRL_NONE in non-matrix control\n"); return true; } - // FIXME: we could just read the appropriate mixer status field from the - // receive stream processor once we work out an efficient way to do this. val = m_parent.ReadRegister(m_register); return (val >> 8) & 0x0f; } @@ -664,8 +646,6 @@ unsigned int val; debugOutput(DEBUG_LEVEL_VERBOSE, "getValue for phones destination\n"); - // FIXME: we could just read the appropriate mixer status field from the - // receive stream processor once we work out an efficient way to do this. val = m_parent.ReadRegister(MOTU_REG_ROUTE_PORT_CONF); return val & 0x0f; } @@ -705,8 +685,6 @@ unsigned int dir, omode_a; debugOutput(DEBUG_LEVEL_VERBOSE, "getValue for optical mode %d\n", m_register); - // FIXME: we could just read the appropriate mixer status field from the - // receive stream processor once we work out an efficient way to do this. dir = (m_register==MOTU_CTRL_DIR_IN)?MOTU_DIR_IN:MOTU_DIR_OUT; m_parent.getOpticalMode(dir, &omode_a, NULL); switch (omode_a) { |
From: <tr...@ff...> - 2014-05-17 00:38:39
|
Author: jwoithe Date: 2014-05-16 17:38:31 -0700 (Fri, 16 May 2014) New Revision: 2530 Modified: trunk/libffado/configuration Log: configuration: add entry for Presonus StudioLive 1602, provided by Ulrich-Lorenz Schl?\195?\188ter. Modified: trunk/libffado/configuration =================================================================== --- trunk/libffado/configuration 2014-05-14 03:29:04 UTC (rev 2529) +++ trunk/libffado/configuration 2014-05-17 00:38:31 UTC (rev 2530) @@ -143,6 +143,13 @@ modelname = "STUDIOLIVE_2442"; driver = "DICE"; }, +{ # Entry for StudioLive 1602, from Ulrich-Lorenz Schl vendorid = 0x00000A92; + modelid = 0x00000013; + vendorname = "PreSonus"; + modelname = "STUDIOLIVE_1602"; + driver = "DICE"; +}, { vendorid = 0x000aac; modelid = 0x00000003; |
From: <tr...@ff...> - 2014-05-14 03:29:11
|
Author: jwoithe Date: 2014-05-13 20:29:04 -0700 (Tue, 13 May 2014) New Revision: 2529 Modified: trunk/libffado/src/bebob/maudio/special_avdevice.cpp Log: m-audio: remove a rogue extended character introduced inadvertently in r2521. It went unnoticed because it displayed as a space in my editor. Modified: trunk/libffado/src/bebob/maudio/special_avdevice.cpp =================================================================== --- trunk/libffado/src/bebob/maudio/special_avdevice.cpp 2014-05-13 12:31:43 UTC (rev 2528) +++ trunk/libffado/src/bebob/maudio/special_avdevice.cpp 2014-05-14 03:29:04 UTC (rev 2529) @@ -239,7 +239,7 @@ data[i] = CondSwapToBus32(data[i]); } - trials = 0; + trials = 0; do { if (get1394Service().write(nodeId, addr, length, (fb_quadlet_t*)data)) break; |
From: <tr...@ff...> - 2014-05-13 12:31:53
|
Author: jwoithe Date: 2014-05-13 05:31:43 -0700 (Tue, 13 May 2014) New Revision: 2528 Modified: trunk/libffado/src/libieee1394/IsoHandlerManager.cpp trunk/libffado/src/libieee1394/IsoHandlerManager.h Log: IsoHandler::getPacket(): when keeping tabs of the last cycle, allow for cases where the m_Client indicates that handling of the cycle should be deferred. If this is ignored and m_last_cycle is set regardless, the dropped packet logic will be triggered when the cycle is requested again at some later time because the cycle count - when compared to the stored m_last_cycle - will appear to have gone backwards. This may go some way toward addressing ticket #379, although at the time of writing this is yet to be confirmed. Modified: trunk/libffado/src/libieee1394/IsoHandlerManager.cpp =================================================================== --- trunk/libffado/src/libieee1394/IsoHandlerManager.cpp 2014-05-09 13:06:38 UTC (rev 2527) +++ trunk/libffado/src/libieee1394/IsoHandlerManager.cpp 2014-05-13 12:31:43 UTC (rev 2528) @@ -1310,6 +1310,7 @@ , m_skipped( 0 ) , m_min_ahead( 7999 ) #endif + , m_deferred_cycles( 0 ) { pthread_mutex_init(&m_disable_lock, NULL); } @@ -1684,6 +1685,9 @@ } #endif + if (m_last_cycle == -1) + m_deferred_cycles = 0; + // keep track of dropped cycles int dropped_cycles = 0; if (m_last_cycle != cycle && m_last_cycle != -1) { @@ -1692,6 +1696,12 @@ // since those are not dropped, but only delayed dropped_cycles -= skipped; + // Correct for cycles previously seen but deferred + if (dropped_cycles == 0) + m_deferred_cycles = 0; + else + dropped_cycles -= m_deferred_cycles; + #ifdef DEBUG if(skipped) { debugOutput(DEBUG_LEVEL_VERY_VERBOSE, @@ -1711,17 +1721,13 @@ } #endif } - if (cycle >= 0) { - m_last_cycle = cycle; - - #ifdef DEBUG -/* int ahead = diffCycles(cycle, now_cycles); - if (ahead < m_min_ahead) m_min_ahead = ahead; -*/ - #endif - } #ifdef DEBUG +// if (cycle >= 0) { +// int ahead = diffCycles(cycle, now_cycles); +// if (ahead < m_min_ahead) m_min_ahead = ahead; +// } + if (dropped > 0) { debugOutput(DEBUG_LEVEL_VERBOSE, "(%p) OHCI issue on cycle %u (dropped_cycles=%d, last_cycle=%u, dropped=%d, skipped: %d)\n", @@ -1738,9 +1744,18 @@ this, getTypeString(), *length, m_max_packet_size); } #endif - return retval; + if (cycle >= 0) { + if (retval!=RAW1394_ISO_DEFER && retval!=RAW1394_ISO_AGAIN) { + m_last_cycle = cycle; + } else + m_deferred_cycles++; + } + return retval; } + if (cycle >= 0) + m_last_cycle = cycle; + *tag = 0; *sy = 0; *length = 0; Modified: trunk/libffado/src/libieee1394/IsoHandlerManager.h =================================================================== --- trunk/libffado/src/libieee1394/IsoHandlerManager.h 2014-05-09 13:06:38 UTC (rev 2527) +++ trunk/libffado/src/libieee1394/IsoHandlerManager.h 2014-05-13 12:31:43 UTC (rev 2528) @@ -233,6 +233,7 @@ unsigned int m_skipped; int m_min_ahead; #endif + unsigned int m_deferred_cycles; protected: DECLARE_DEBUG_MODULE; |
From: <tr...@ff...> - 2014-05-09 13:06:45
|
Author: jwoithe Date: 2014-05-09 06:06:38 -0700 (Fri, 09 May 2014) New Revision: 2527 Modified: trunk/libffado/SConstruct Log: scons: the 'unused-but-set-variable' added in gcc 4.6 triggers warnings when compiling code generated by dbusxx-xml2cpp (such as controlserver-glue.h). This is caused by numerous instances of the call.reader() return value being stored but not used. Since we can do nothing about this, suppress this warning when compiling dbus-related files. This change plus those in r2522 to r2526 inclusive allow FFADO to compile without warnings, at least under gcc 4.7.x. Modified: trunk/libffado/SConstruct =================================================================== --- trunk/libffado/SConstruct 2014-05-09 12:21:02 UTC (rev 2526) +++ trunk/libffado/SConstruct 2014-05-09 13:06:38 UTC (rev 2527) @@ -400,6 +400,12 @@ # always true env['DBUS1_FLAGS'] += " -DDBUS_HAS_THREADS_INIT_DEFAULT" + # The controlserver-glue.h file generated by dbusxx-xml2cpp generates + # a large number of instances where call.reader()'s return value is + # stored (in ri) but not used. This generates a compiler warning which + # we can do nothing about. Therefore when compiling dbus-related + # code, suppress the "set but not used" warning. + env['DBUS1_FLAGS'] += " -Wno-unused-but-set-variable" config_guess = conf.ConfigGuess() |
From: <tr...@ff...> - 2014-05-09 12:21:09
|
Author: jwoithe Date: 2014-05-09 05:21:02 -0700 (Fri, 09 May 2014) New Revision: 2526 Modified: trunk/libffado/src/libstreaming/amdtp/AmdtpReceiveStreamProcessor.cpp Log: amdtp: remove a 'set but not used' warning associated with a variable which is only used when extreme debugging is enabled by making the entire code block conditional on DEBUG_EXTREME_ENABLE. Modified: trunk/libffado/src/libstreaming/amdtp/AmdtpReceiveStreamProcessor.cpp =================================================================== --- trunk/libffado/src/libstreaming/amdtp/AmdtpReceiveStreamProcessor.cpp 2014-05-09 12:17:37 UTC (rev 2525) +++ trunk/libffado/src/libstreaming/amdtp/AmdtpReceiveStreamProcessor.cpp 2014-05-09 12:21:02 UTC (rev 2526) @@ -208,7 +208,7 @@ // frames, meaning that we might receive // this packet x*syt_interval*ticks_per_frame // later than expected (the real receive time) - #ifdef DEBUG + #if DEBUG_EXTREME_ENABLE static int64_t last_t = Util::SystemTimeSource::getCurrentTime(); int64_t now_t = Util::SystemTimeSource::getCurrentTime(); if(isRunning()) { @@ -220,7 +220,9 @@ m_last_timestamp, now_t-last_t, m_data_buffer->getBufferFill());*/ } last_t = now_t; + #endif + #ifdef DEBUG // check whether nevents is a multiple of 8. if (nevents & 0x7) { debugError("Invalid nevents value for AMDTP (%u)\n", nevents); |
From: <tr...@ff...> - 2014-05-09 12:17:44
|
Author: jwoithe Date: 2014-05-09 05:17:37 -0700 (Fri, 09 May 2014) New Revision: 2525 Modified: trunk/libffado/src/libstreaming/rme/RmeTransmitStreamProcessor.cpp Log: rme: remove some calculations related to silent transmit packets which are not actually used when dealing with silent packets. Modified: trunk/libffado/src/libstreaming/rme/RmeTransmitStreamProcessor.cpp =================================================================== --- trunk/libffado/src/libstreaming/rme/RmeTransmitStreamProcessor.cpp 2014-05-09 12:10:51 UTC (rev 2524) +++ trunk/libffado/src/libstreaming/rme/RmeTransmitStreamProcessor.cpp 2014-05-09 12:17:37 UTC (rev 2525) @@ -470,9 +470,7 @@ *length = 0; uint64_t presentation_time; - unsigned int presentation_cycle; - int cycles_until_presentation; - + uint64_t transmit_at_time; unsigned int transmit_at_cycle; int cycles_until_transmit; @@ -487,9 +485,10 @@ presentation_time = addTicks(m_last_timestamp, (unsigned int)lrintf(n_events * ticks_per_frame)); transmit_at_time = substractTicks(presentation_time, RME_TRANSMIT_TRANSFER_DELAY); - presentation_cycle = (unsigned int)(TICKS_TO_CYCLES(presentation_time)); transmit_at_cycle = (unsigned int)(TICKS_TO_CYCLES(transmit_at_time)); - cycles_until_presentation = diffCycles(presentation_cycle, cycle); + // Not currently used for silent packets: + // unsigned int presentation_cycle = (unsigned int)(TICKS_TO_CYCLES(presentation_time)); + // int cycles_until_presentation = diffCycles(presentation_cycle, cycle); cycles_until_transmit = diffCycles(transmit_at_cycle, cycle); if (cycles_until_transmit < 0) |
From: <tr...@ff...> - 2014-05-09 12:10:58
|
Author: jwoithe Date: 2014-05-09 05:10:51 -0700 (Fri, 09 May 2014) New Revision: 2524 Modified: trunk/libffado/src/libstreaming/StreamProcessorManager.cpp Log: StreamProcessorManager: when variables or actions are taken which only have an effect via debugOutputExtreme(), enclose them in '#if DEBUG_EXTREME_ENABLE' conditionals. This prevents some compiler warnings and removes otherwise dead code from the common case where DEBUG_EXTREME_ENABLE is not enabled. Modified: trunk/libffado/src/libstreaming/StreamProcessorManager.cpp =================================================================== --- trunk/libffado/src/libstreaming/StreamProcessorManager.cpp 2014-05-09 12:01:49 UTC (rev 2523) +++ trunk/libffado/src/libstreaming/StreamProcessorManager.cpp 2014-05-09 12:10:51 UTC (rev 2524) @@ -633,7 +633,7 @@ uint64_t ticks_at_period_margin = ticks_at_period + m_sync_delay; uint64_t pred_system_time_at_xfer = m_SyncSource->getParent().get1394Service().getSystemTimeForCycleTimerTicks(ticks_at_period_margin); - #ifdef DEBUG + #if DEBUG_EXTREME_ENABLE int64_t now = Util::SystemTimeSource::getCurrentTime(); debugOutputExtreme(DEBUG_LEVEL_VERBOSE, "CTR pred: %"PRId64", syncdelay: %"PRId64", diff: %"PRId64"\n", ticks_at_period, ticks_at_period_margin, ticks_at_period_margin-ticks_at_period ); debugOutputExtreme(DEBUG_LEVEL_VERBOSE, "PREWAIT pred: %"PRId64", now: %"PRId64", wait: %"PRId64"\n", pred_system_time_at_xfer, now, pred_system_time_at_xfer-now ); @@ -642,7 +642,7 @@ // wait until it's time to transfer Util::SystemTimeSource::SleepUsecAbsolute(pred_system_time_at_xfer); - #ifdef DEBUG + #if DEBUG_EXTREME_ENABLE now = Util::SystemTimeSource::getCurrentTime(); debugOutputExtreme(DEBUG_LEVEL_VERBOSE, "POSTWAIT pred: %"PRId64", now: %"PRId64", excess: %"PRId64"\n", pred_system_time_at_xfer, now, now-pred_system_time_at_xfer ); #endif @@ -1227,7 +1227,7 @@ uint64_t ticks_at_period_margin = ticks_at_period + m_sync_delay; uint64_t pred_system_time_at_xfer = m_SyncSource->getParent().get1394Service().getSystemTimeForCycleTimerTicks(ticks_at_period_margin); - #ifdef DEBUG + #if DEBUG_EXTREME_ENABLE int64_t now = Util::SystemTimeSource::getCurrentTime(); debugOutputExtreme(DEBUG_LEVEL_VERBOSE, "CTR pred: %"PRId64", syncdelay: %"PRId64", diff: %"PRId64"\n", ticks_at_period, ticks_at_period_margin, ticks_at_period_margin-ticks_at_period ); debugOutputExtreme(DEBUG_LEVEL_VERBOSE, "PREWAIT pred: %"PRId64", now: %"PRId64", wait: %"PRId64"\n", pred_system_time_at_xfer, now, pred_system_time_at_xfer-now ); @@ -1236,13 +1236,13 @@ // wait until it's time to transfer Util::SystemTimeSource::SleepUsecAbsolute(pred_system_time_at_xfer); - #ifdef DEBUG + #if DEBUG_EXTREME_ENABLE now = Util::SystemTimeSource::getCurrentTime(); debugOutputExtreme(DEBUG_LEVEL_VERBOSE, "POSTWAIT pred: %"PRId64", now: %"PRId64", excess: %"PRId64"\n", pred_system_time_at_xfer, now, now-pred_system_time_at_xfer ); #endif // the period should be ready now - #ifdef DEBUG + #if DEBUG_EXTREME_ENABLE int rcv_fills[10]; int xmt_fills[10]; int i; @@ -1378,7 +1378,7 @@ "transfer period %d at %"PRIu64" ticks...\n", m_nbperiods, m_time_of_transfer); - #ifdef DEBUG + #if DEBUG_EXTREME_ENABLE int rcv_bf=0, xmt_bf=0; for ( StreamProcessorVectorIterator it = m_ReceiveProcessors.begin(); it != m_ReceiveProcessors.end(); @@ -1393,7 +1393,9 @@ debugOutputExtreme( DEBUG_LEVEL_VERY_VERBOSE, "XF at %011"PRIu64" ticks, RBF=%d, XBF=%d, SUM=%d...\n", m_time_of_transfer, rcv_bf, xmt_bf, rcv_bf+xmt_bf); + #endif + #ifdef DEBUG // check if xruns occurred on the Iso side. // also check if xruns will occur should we transfer() now for ( StreamProcessorVectorIterator it = m_ReceiveProcessors.begin(); |