aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFredrik Modéen <fredrik@modeen.se>2012-07-24 00:05:56 +0000
committerFredrik Modéen <fredrik@modeen.se>2012-07-24 00:07:19 +0000
commit1615cec9ccc313a086192c0775fdc32bb267a260 (patch)
tree31941d3b3d32a61d47888cbd569f777c91e3c6dc
parent48b4d20480441b4525de6b90cab9539a834ab8fd (diff)
Fixing #7984 and some code guidelines.hrev44392
-rw-r--r--src/apps/codycam/CodyCam.cpp45
-rw-r--r--src/apps/codycam/CodyCam.h9
2 files changed, 37 insertions, 17 deletions
diff --git a/src/apps/codycam/CodyCam.cpp b/src/apps/codycam/CodyCam.cpp
index 2b79880cd9..a00dfd80d3 100644
--- a/src/apps/codycam/CodyCam.cpp
+++ b/src/apps/codycam/CodyCam.cpp
@@ -65,7 +65,6 @@ ErrorAlert(const char* message, status_t err, BWindow *window = NULL)
alert->Go();
printf("%s\n%s [%lx]", message, strerror(err), err);
-// be_app->PostMessage(B_QUIT_REQUESTED);
}
@@ -122,13 +121,15 @@ AddTranslationItems(BMenu* intoMenu, uint32 fromType)
// functions for EnumeratedStringValueSettings
-const char* CaptureRateAt(int32 i)
+const char*
+CaptureRateAt(int32 i)
{
return (i >= 0 && i < kCaptureRatesCount) ? kCaptureRates[i].name : NULL;
}
-const char* UploadClientAt(int32 i)
+const char*
+UploadClientAt(int32 i)
{
return (i >= 0 && i < kUploadClientsCount) ? kUploadClients[i] : NULL;
}
@@ -200,7 +201,8 @@ CodyCam::ReadyToRun()
(const char*) B_TRANSLATE_SYSTEM_NAME("CodyCam"), B_TITLED_WINDOW,
B_NOT_ZOOMABLE | B_AUTO_UPDATE_SIZE_LIMITS, &fPort);
- _SetUpNodes();
+ if(_SetUpNodes() != B_OK)
+ fWindow->ToggleMenuOnOff();
((VideoWindow*)fWindow)->ApplyControls();
}
@@ -490,33 +492,33 @@ VideoWindow::VideoWindow(BRect frame, const char* title, window_type type,
BMenuBar* menuBar = new BMenuBar(BRect(0, 0, 0, 0), "menu bar");
BMenuItem* menuItem;
- BMenu* menu = new BMenu(B_TRANSLATE("File"));
+ fMenu = new BMenu(B_TRANSLATE("File"));
menuItem = new BMenuItem(B_TRANSLATE("Video settings"),
new BMessage(msg_video), 'P');
menuItem->SetTarget(be_app);
- menu->AddItem(menuItem);
+ fMenu->AddItem(menuItem);
- menu->AddSeparatorItem();
+ fMenu->AddSeparatorItem();
menuItem = new BMenuItem(B_TRANSLATE("Start video"),
new BMessage(msg_start), 'A');
menuItem->SetTarget(be_app);
- menu->AddItem(menuItem);
+ fMenu->AddItem(menuItem);
menuItem = new BMenuItem(B_TRANSLATE("Stop video"),
new BMessage(msg_stop), 'O');
menuItem->SetTarget(be_app);
- menu->AddItem(menuItem);
+ fMenu->AddItem(menuItem);
- menu->AddSeparatorItem();
+ fMenu->AddSeparatorItem();
menuItem = new BMenuItem(B_TRANSLATE("Quit"),
new BMessage(B_QUIT_REQUESTED), 'Q');
menuItem->SetTarget(be_app);
- menu->AddItem(menuItem);
+ fMenu->AddItem(menuItem);
- menuBar->AddItem(menu);
+ menuBar->AddItem(fMenu);
/* add some controls */
_BuildCaptureControls();
@@ -717,6 +719,7 @@ VideoWindow::_BuildCaptureControls()
// FTP setup box
fFtpSetupBox = new BBox("FTP Setup", B_WILL_DRAW);
+ fFtpSetupBox->SetLabel(B_TRANSLATE("Output"));
fUploadClientMenu = new BPopUpMenu(B_TRANSLATE("Send to" B_UTF8_ELLIPSIS));
for (int i = 0; i < kUploadClientsCount; i++) {
@@ -724,14 +727,12 @@ VideoWindow::_BuildCaptureControls()
m->AddInt32("client", i);
fUploadClientMenu->AddItem(new BMenuItem(kUploadClients[i], m));
}
+
fUploadClientMenu->SetTargetForItems(this);
fUploadClientMenu->FindItem(fUploadClientSetting->Value())->SetMarked(true);
fUploadClientSelector = new BMenuField("UploadClient", NULL,
fUploadClientMenu);
- fFtpSetupBox->SetLabel(B_TRANSLATE("Output"));
- // this doesn't work with the layout manager
- // fFtpSetupBox->SetLabel(fUploadClientSelector);
fUploadClientSelector->SetLabel(B_TRANSLATE("Type:"));
BGridLayout *ftpLayout = new BGridLayout(kXBuffer, 0);
@@ -875,6 +876,20 @@ VideoWindow::_QuitSettings()
}
+void
+VideoWindow::ToggleMenuOnOff()
+{
+ BMenuItem* item = fMenu->FindItem(msg_video);
+ item->SetEnabled(!item->IsEnabled());
+
+ item = fMenu->FindItem(msg_start);
+ item->SetEnabled(!item->IsEnabled());
+
+ item = fMenu->FindItem(msg_stop);
+ item->SetEnabled(!item->IsEnabled());
+}
+
+
// #pragma mark -
diff --git a/src/apps/codycam/CodyCam.h b/src/apps/codycam/CodyCam.h
index b87f4c327e..c6bd96393a 100644
--- a/src/apps/codycam/CodyCam.h
+++ b/src/apps/codycam/CodyCam.h
@@ -84,6 +84,8 @@ const char* kUploadClients[] = {
const int32 kUploadClientsCount = sizeof(kUploadClients) / sizeof(char*);
+class VideoWindow;
+class ControlWindow;
class CodyCam : public BApplication {
public:
@@ -104,9 +106,9 @@ private:
VideoConsumer* fVideoConsumer;
media_output fProducerOut;
media_input fConsumerIn;
- BWindow* fWindow;
+ VideoWindow* fWindow;
port_id fPort;
- BWindow* fVideoControlWindow;
+ ControlWindow* fVideoControlWindow;
};
@@ -124,6 +126,7 @@ public:
BView* VideoView();
BStringView* StatusLine();
+ void ToggleMenuOnOff();
private:
void _BuildCaptureControls();
@@ -159,6 +162,8 @@ private:
ftp_msg_info fFtpInfo;
Settings* fSettings;
+
+ BMenu* fMenu;
StringValueSetting* fServerSetting;
StringValueSetting* fLoginSetting;