part of #722
This commit is contained in:
parent
6700878ccb
commit
7b79a6835e
8 changed files with 95 additions and 0 deletions
|
@ -11,4 +11,8 @@
|
|||
|
||||
<rdsContainer>
|
||||
<rdsItem key="PS" value="BBC Four" enabled="1" />
|
||||
<rdsItem key="RT" value="C. Monster - Monsterpiece Theater"
|
||||
enabled="1" />
|
||||
<rdsItem key="RT" value="Acme Birdseed for the discerning coyote"
|
||||
enabled="0" />
|
||||
</rdsContainer>
|
||||
|
|
|
@ -271,6 +271,20 @@ class OptionsContainer
|
|||
getRdsEnabled(Ptr<const Glib::ustring>::Ref key)
|
||||
throw (std::invalid_argument);
|
||||
|
||||
/**
|
||||
* Get a string containing all the RDS values.
|
||||
* This string can be sent to the RDS encoder.
|
||||
*
|
||||
* @return a string which can be sent to the RDS encoder;
|
||||
* a 0 pointer if no RDS options have been defined.
|
||||
*/
|
||||
Ptr<Glib::ustring>::Ref
|
||||
getCompleteRdsString(void) throw ()
|
||||
{
|
||||
return rdsContainer ? rdsContainer->toString()
|
||||
: Ptr<Glib::ustring>::Ref();
|
||||
}
|
||||
|
||||
/**
|
||||
* Save the options to a file.
|
||||
*
|
||||
|
|
|
@ -201,6 +201,14 @@ class RdsContainer : public Configurable
|
|||
getRdsEnabled(Ptr<const Glib::ustring>::Ref key)
|
||||
throw (std::invalid_argument);
|
||||
|
||||
/**
|
||||
* Convert the object to a string.
|
||||
*
|
||||
* @return a string which can be sent to the RDS encoder.
|
||||
*/
|
||||
Ptr<Glib::ustring>::Ref
|
||||
toString(void) throw ();
|
||||
|
||||
/**
|
||||
* Convert the object to XML.
|
||||
*
|
||||
|
|
|
@ -241,6 +241,14 @@ class RdsItem : public Configurable
|
|||
touched = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert the object to a string.
|
||||
*
|
||||
* @return a string which can be sent to the RDS encoder.
|
||||
*/
|
||||
Ptr<Glib::ustring>::Ref
|
||||
toString(void) throw ();
|
||||
|
||||
/**
|
||||
* Convert the object to XML.
|
||||
*
|
||||
|
|
|
@ -155,6 +155,24 @@ RdsContainer :: getRdsEnabled(Ptr<const Glib::ustring>::Ref key)
|
|||
}
|
||||
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* Convert the object to a string.
|
||||
*----------------------------------------------------------------------------*/
|
||||
Ptr<Glib::ustring>::Ref
|
||||
RdsContainer :: toString(void) throw ()
|
||||
{
|
||||
Ptr<Glib::ustring>::Ref rdsString(new Glib::ustring);
|
||||
|
||||
RdsItemListType::const_iterator it;
|
||||
for(it = rdsItemList.begin(); it != rdsItemList.end(); ++it) {
|
||||
Ptr<RdsItem>::Ref rdsItem = *it;
|
||||
rdsString->append(*rdsItem->toString());
|
||||
}
|
||||
|
||||
return rdsString;
|
||||
}
|
||||
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* Convert the object to XML.
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#endif
|
||||
|
||||
#include <fstream>
|
||||
#include <iostream>
|
||||
|
||||
#include "RdsContainerTest.h"
|
||||
|
||||
|
@ -133,3 +134,17 @@ RdsContainerTest :: firstTest(void)
|
|||
CPPUNIT_ASSERT(enabled);
|
||||
}
|
||||
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* Test the toString() method.
|
||||
*----------------------------------------------------------------------------*/
|
||||
void
|
||||
RdsContainerTest :: toStringTest(void)
|
||||
throw (CPPUNIT_NS::Exception)
|
||||
{
|
||||
Ptr<const Glib::ustring>::Ref string = rdsContainer->toString();
|
||||
CPPUNIT_ASSERT(string);
|
||||
CPPUNIT_ASSERT(*string == "PS=BBC Four\n"
|
||||
"RT=C. Monster - Monsterpiece Theater\n");
|
||||
}
|
||||
|
||||
|
|
|
@ -72,6 +72,7 @@ class RdsContainerTest : public BaseTestMethod
|
|||
{
|
||||
CPPUNIT_TEST_SUITE(RdsContainerTest);
|
||||
CPPUNIT_TEST(firstTest);
|
||||
CPPUNIT_TEST(toStringTest);
|
||||
CPPUNIT_TEST_SUITE_END();
|
||||
|
||||
private:
|
||||
|
@ -91,6 +92,14 @@ class RdsContainerTest : public BaseTestMethod
|
|||
void
|
||||
firstTest(void) throw (CPPUNIT_NS::Exception);
|
||||
|
||||
/**
|
||||
* Test the toString() method.
|
||||
*
|
||||
* @exception CPPUNIT_NS::Exception on test failures.
|
||||
*/
|
||||
void
|
||||
toStringTest(void) throw (CPPUNIT_NS::Exception);
|
||||
|
||||
|
||||
public:
|
||||
|
||||
|
|
|
@ -122,6 +122,25 @@ RdsItem :: configure(const xmlpp::Element & element)
|
|||
}
|
||||
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* Convert the object to a string.
|
||||
*----------------------------------------------------------------------------*/
|
||||
Ptr<Glib::ustring>::Ref
|
||||
RdsItem :: toString(void) throw ()
|
||||
{
|
||||
Ptr<Glib::ustring>::Ref rdsString(new Glib::ustring);
|
||||
|
||||
if (enabled) {
|
||||
rdsString->append(*key);
|
||||
rdsString->append("=");
|
||||
rdsString->append(*value);
|
||||
rdsString->append("\n");
|
||||
}
|
||||
|
||||
return rdsString;
|
||||
}
|
||||
|
||||
|
||||
/*------------------------------------------------------------------------------
|
||||
* Convert the object to XML.
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue